/* ============================================================
   letture.css — estensioni specifiche per Arcano del Giorno
   Non modifica style.css (palette COSMO): lo estende soltanto.
   ============================================================ */

/* --- ritratto con badge --- */
.hero-portrait{position:relative}
.hero-portrait img{
  display:block;width:100%;height:auto;aspect-ratio:1122/1402;
  object-fit:cover;border-radius:14px;border:1px solid var(--line);
}
.hero-portrait .badge{
  position:absolute;left:18px;bottom:18px;z-index:2;
  background:rgba(16,20,52,.82);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-radius:40px;
  padding:9px 18px;font-size:.74rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-soft);
}

/* --- filo conduttore: dal Matto al Mondo --- */
.path-note{
  display:flex;align-items:center;gap:14px;justify-content:flex-start;
  margin-top:22px;color:var(--rose);font-size:.78rem;
  letter-spacing:.18em;text-transform:uppercase;
}
.path-note .dot{width:5px;height:5px;border-radius:50%;background:var(--gold);flex:0 0 auto}
.path-note .ln{width:46px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);flex:0 0 auto}
@media(max-width:860px){.path-note{justify-content:center}}

/* --- le due letture: griglia a 2 --- */
.cards.cards-2{grid-template-columns:repeat(2,1fr);max-width:820px;margin:0 auto}
@media(max-width:760px){.cards.cards-2{grid-template-columns:1fr}}
.card .tier{font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--rose);font-weight:400}
.card .price{margin:14px 0 18px}

/* --- embed prenotazione --- */
.book-embed{
  max-width:1000px;margin:36px auto 0;border:1px solid var(--line);
  border-radius:16px;overflow:hidden;background:var(--panel);
  backdrop-filter:blur(3px);
}
.book-embed iframe{width:100%;min-height:660px;border:0;display:block}
.book-note{
  text-align:center;color:#c3bdce;font-size:.92rem;
  margin:0 auto;max-width:62ch;line-height:1.65;
}

/* --- link inline dorato --- */
.a-gold{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.a-gold:hover{color:var(--gold-soft)}

/* --- marchio nel nav --- */
.brand{display:inline-flex;align-items:center;gap:11px}
.brand-mark{display:block;width:40px;height:40px;flex:0 0 auto}
.brand-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.28rem;color:var(--cream);letter-spacing:.01em}
@media(max-width:560px){
  .brand-name{display:none}
  .brand-mark{width:34px;height:34px}
}

/* --- FAQ --- */
.faq-list{max-width:820px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-q{
  width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  background:none;border:0;cursor:pointer;text-align:left;padding:22px 4px;
  font-family:'Cormorant Garamond',Georgia,serif;font-size:1.22rem;color:var(--cream);
}
.faq-q:hover{color:var(--gold-soft)}
.faq-q .sign{flex:0 0 auto;color:var(--gold);font-family:'Jost',sans-serif;font-size:1.2rem;line-height:1.4;transition:transform .25s ease}
.faq-item.is-open .faq-q .sign{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-item.is-open .faq-a{max-height:520px}
.faq-a p{padding:0 4px 24px;margin:0;color:#c3bdce;line-height:1.7;max-width:68ch}

/* --- visual statico nell'hero (sostituisce la flip-card) --- */
.hero-visual{position:relative;justify-self:center;width:100%;max-width:420px}
.hero-visual img{
  display:block;width:100%;height:auto;aspect-ratio:928/1232;
  object-fit:cover;border-radius:14px;
  border:1px solid var(--line);
}
@media(max-width:860px){.hero-visual{max-width:320px;margin:0 auto}}

/* --- card lettura con sfondo fotografico --- */
.card-lettura{
  position:relative;display:block;overflow:hidden;isolation:isolate;
  border:1px solid var(--line);border-radius:16px;
  text-decoration:none;color:inherit;
  transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.card-lettura .card-bg{
  position:absolute;inset:0;z-index:-2;
  background-size:cover;background-position:center;
  transform:scale(1.02);
  filter:brightness(.42) saturate(.9);
  transition:filter .45s ease, transform .6s ease;
}
.card-lettura::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(16,20,52,.30) 0%,rgba(16,20,52,.78) 100%);
  transition:opacity .45s ease;
}
.card-lettura:hover .card-bg,
.card-lettura:focus-visible .card-bg{filter:brightness(.66) saturate(1);transform:scale(1.06)}
.card-lettura:hover::after,
.card-lettura:focus-visible::after{opacity:.72}
.card-lettura:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 18px 44px rgba(0,0,0,.42)}
.card-lettura:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.card-lettura .card-body{display:block;padding:34px 30px 32px}
.card-lettura .tier{
  display:block;font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;
  color:#e8dfc4;text-shadow:0 1px 3px rgba(0,0,0,.6);
}
.card-lettura h3{
  margin:10px 0 0;font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.9rem;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.55);
}
.card-lettura .price{display:block;margin:12px 0 16px}
.card-lettura .price .num{
  font-family:'Cormorant Garamond',Georgia,serif;font-size:2.5rem;
  color:var(--gold-soft);text-shadow:0 2px 6px rgba(0,0,0,.5);
}
.card-lettura .price .per{
  font-size:.9rem;color:#ded8e8;margin-left:8px;
  text-shadow:0 1px 3px rgba(0,0,0,.55);
}
.card-lettura .card-text{
  display:block;color:#eae6f2;line-height:1.66;font-size:1rem;
  text-shadow:0 1px 4px rgba(0,0,0,.6);min-height:5.1em;
}
.card-lettura .btn-inline{display:inline-block;margin-top:22px}

@media(max-width:760px){
  .card-lettura .card-text{min-height:0}
  .card-lettura .card-body{padding:28px 24px}
}
@media(prefers-reduced-motion:reduce){
  .card-lettura,.card-lettura .card-bg,.card-lettura::after{transition:none}
  .card-lettura:hover{transform:none}
}

/* nota condizioni sotto le due card */
.readings .book-note{margin-top:30px}

/* nota condizioni nell'intestazione del blocco prenota */
.readings .sec-head .book-note{margin-top:16px}

/* --- pagina di conferma prenotazione --- */
.conf-steps{
  max-width:62ch;margin:32px auto 0;text-align:left;
  border:1px solid var(--line);border-radius:14px;padding:26px 28px;
  background:rgba(30,40,98,.5);backdrop-filter:blur(3px);
}
.conf-steps p{margin:0 0 14px;color:#cdd3e6;line-height:1.7}
.conf-steps p:last-child{margin-bottom:0}

/* --- come funziona: quattro passi in riga --- */
.steps-4{grid-template-columns:repeat(4,1fr);gap:24px}
.steps-4 .step .n{font-size:2rem}
.steps-4 .step h3{font-size:1.24rem;margin:6px 0 8px}
.steps-4 .step p{font-size:.9rem;line-height:1.6}
@media(max-width:1040px){.steps-4{grid-template-columns:repeat(2,1fr);gap:28px}}
@media(max-width:600px){.steps-4{grid-template-columns:1fr;gap:24px}}

/* titolo su due righe */
.sec-head h2 br{display:block}

/* --- footer --- */
.brand-foot{display:inline-block;margin-bottom:18px}
.brand-foot img{display:block;width:240px;height:auto;max-width:100%}
.foot-brand .disclaimer{margin-bottom:12px}
.foot-brand .disclaimer:last-child{margin-bottom:0}
.foot-cities .ai-note{margin-bottom:8px}
.foot-cities .ai-note:last-child{margin-bottom:0}

/* ============ BLOG ============ */

/* --- hero articolo --- */
.post-hero{padding:60px 0 30px}
.post-hero-in{display:grid;grid-template-columns:1fr 300px;gap:52px;align-items:center}
.post-hero-copy h1{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;
  font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.16;color:var(--cream);margin:10px 0 0;
}
.post-meta{
  display:block;margin-top:16px;color:var(--rose);
  font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
}
.post-card{margin:0}
.post-card img{
  display:block;width:100%;height:auto;aspect-ratio:900/1500;
  border-radius:14px;border:1px solid var(--line);
  box-shadow:0 24px 60px rgba(0,0,0,.42);
}
@media(max-width:860px){
  .post-hero{padding:40px 0 20px}
  .post-hero-in{grid-template-columns:1fr;gap:32px}
  .post-card{max-width:220px;margin:0 auto}
}

/* --- corpo articolo --- */
.post-body{max-width:74ch;padding-bottom:20px}
.post-body h2{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;
  font-size:1.7rem;color:var(--gold-soft);margin:44px 0 16px;
}
.post-body p{color:#cfd4e4;line-height:1.82;font-size:1.04rem;margin:0 0 18px}
.post-lead{font-size:1.14rem !important;color:#e2e0ec !important;line-height:1.78 !important}
.post-body a:not([class]){color:var(--gold);text-decoration:underline;text-underline-offset:3px}

.post-cta{
  margin:48px 0 12px;padding:30px 32px;text-align:center;
  border:1px solid var(--line);border-radius:16px;
  background:rgba(30,40,98,.55);backdrop-filter:blur(3px);
}
.post-cta p{margin:0 0 20px !important;color:#e2e0ec !important}
.post-back{margin-top:36px;font-size:.95rem}

/* --- indice blog --- */
.blog-index{padding:70px 0 40px}
.post-list{max-width:900px;margin:0 auto;display:grid;gap:28px}
.post-item{
  display:grid;grid-template-columns:150px 1fr;gap:30px;align-items:center;
  text-decoration:none;color:inherit;
  border:1px solid var(--line);border-radius:16px;padding:24px;
  background:rgba(30,40,98,.42);backdrop-filter:blur(3px);
  transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;
}
.post-item:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 16px 40px rgba(0,0,0,.36)}
.post-item-img img{
  display:block;width:100%;height:auto;aspect-ratio:900/1500;
  border-radius:10px;border:1px solid var(--line);
}
.post-item-copy{display:block}
.post-item-copy h3{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;
  font-size:1.5rem;color:var(--cream);margin:8px 0 10px;line-height:1.24;
}
.post-item-somm{display:block;color:#c3bdce;line-height:1.65;font-size:.97rem;margin-bottom:14px}
.post-item .post-meta{margin-top:0}
@media(max-width:640px){
  .post-item{grid-template-columns:1fr;gap:20px}
  .post-item-img{max-width:150px}
}

/* --- fix pulsanti dentro l'articolo ---
   la regola sui link del corpo non deve toccare i bottoni:
   il testo resta indaco sul fondo oro. */
.post-body a.btn-gold{color:var(--ink);text-decoration:none}
.post-body a.btn-ghost{color:var(--cream);text-decoration:none}

/* hover piu' leggibile: oltre allo schiarimento, un alone dorato */
.btn-gold:hover,
.btn-gold:focus-visible{
  background:var(--gold-soft);
  box-shadow:0 0 0 3px rgba(205,166,74,.28), 0 10px 24px rgba(0,0,0,.3);
}
.btn-gold:focus-visible{outline:2px solid var(--cream);outline-offset:3px}

/* --- nota diritti immagini (pagine blog) --- */
.credits-tarocchi{
  max-width:70ch;margin:10px auto 0;padding:26px 20px 0;
  text-align:center;font-size:.82rem;line-height:1.7;color:#9a94a8;
  border-top:1px solid var(--line);
}
.credits-tarocchi a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.credits-tarocchi a:hover{color:var(--gold-soft)}

/* --- nota di chiusura in corsivo (rimandi tra articoli) --- */
.post-nota{
  font-style:italic;color:#b9b3c6 !important;font-size:.98rem !important;
  border-left:2px solid var(--gold);padding-left:18px;margin-top:26px !important;
}

/* ============ RECENSIONI ============ */
.rec-form-sec,.rec-lista-sec{padding:70px 0 50px}

/* --- form --- */
.rec-form{max-width:640px;margin:0 auto;display:grid;gap:20px}
.rec-form label{display:block;color:#cdd3e6;font-size:.92rem;letter-spacing:.02em}
.rec-form .opt{color:#8f8a9c;font-size:.82rem;margin-left:6px}
.rec-form input[type=text],.rec-form input[type=email],.rec-form textarea,.rec-form select{
  display:block;width:100%;margin-top:8px;
  background:rgba(16,20,52,.6);border:1px solid var(--line);border-radius:10px;
  padding:13px 15px;color:var(--cream);font-family:'Jost',sans-serif;font-size:1rem;
}
.rec-form textarea{resize:vertical;line-height:1.6}
.rec-form input:focus,.rec-form textarea:focus,.rec-form select:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(205,166,74,.18);
}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* stelle cliccabili: si disegnano da destra a sinistra */
.rec-voto{border:0;padding:0;margin:0;display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:6px}
.rec-voto legend{color:#cdd3e6;font-size:.92rem;margin-bottom:10px;float:left;width:100%}
.rec-voto input{position:absolute;opacity:0;width:1px;height:1px}
.rec-voto label{font-size:2rem;line-height:1;color:#3c4370;cursor:pointer;transition:color .15s}
.rec-voto input:checked ~ label,
.rec-voto label:hover,
.rec-voto label:hover ~ label{color:var(--gold)}
.rec-voto input:focus-visible + label{outline:2px solid var(--cream);outline-offset:2px}

.rec-consenso{display:flex;gap:12px;align-items:flex-start;font-size:.88rem;line-height:1.6;color:#b9b3c6}
.rec-consenso input{margin-top:4px;flex:0 0 auto;accent-color:var(--gold)}
.rec-form button{justify-self:start;border:0;cursor:pointer;font-family:'Jost',sans-serif}

.rec-errori{
  max-width:640px;margin:0 auto 26px;padding:18px 22px;
  border:1px solid var(--rose);border-radius:12px;background:rgba(192,160,198,.10);
}
.rec-errori p{margin:0 0 6px;color:#e8d8ec;font-size:.92rem}
.rec-errori p:last-child{margin:0}
.rec-esito{max-width:560px;margin:0 auto;text-align:center}
.rec-esito p{color:#cdd3e6;line-height:1.7;margin-bottom:14px}

/* --- lista --- */
.stelle{color:var(--gold);letter-spacing:3px;font-size:1.05rem}
.stelle .off{color:#3c4370}
.rec-media{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px;color:#cdd3e6}
.rec-lista{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
@media(max-width:760px){.rec-lista{grid-template-columns:1fr}}
.rec-item{
  margin:0;padding:28px 30px;border:1px solid var(--line);border-radius:16px;
  background:rgba(30,40,98,.45);backdrop-filter:blur(3px);
}
.rec-item blockquote{margin:14px 0 18px;padding:0;border:0;color:#dcd8e8;line-height:1.75;font-size:1rem}
.rec-item figcaption{
  color:var(--gold-soft);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
}
.rec-tipo{color:#8f8a9c;letter-spacing:.06em;text-transform:none;font-size:.82rem}

/* --- recensioni in home --- */
.rec-home{padding:20px 0 60px}
.rec-home-lista{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rec-home .rec-item{padding:24px 26px}
.rec-home .rec-item blockquote{
  font-size:.96rem;margin:12px 0 16px;
  display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;
}
@media(max-width:900px){.rec-home-lista{grid-template-columns:1fr;max-width:560px}
  .rec-home .rec-item blockquote{-webkit-line-clamp:unset}}

/* --- recensioni: visualizzazione progressiva --- */
.rec-item.is-hidden{display:none}
.rec-altre{
  max-width:900px;margin:34px auto 0;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.rec-conteggio{
  margin:0;color:#8f8a9c;font-size:.8rem;
  letter-spacing:.14em;text-transform:uppercase;
}
.rec-altre .btn-ghost{border:1px solid var(--line);background:none;cursor:pointer;font-family:'Jost',sans-serif;color:var(--cream)}
.rec-altre .btn-ghost:hover{border-color:var(--gold);color:var(--gold-soft)}

/* le recensioni che compaiono entrano con una dissolvenza breve */
@media(prefers-reduced-motion:no-preference){
  .rec-item.appena-mostrata{animation:rec-fade .35s ease both}
}
@keyframes rec-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}