:root{
  --bg:#2A1418; --surface:#3D1F24; --accent:#C9A24B; --text:#EFE6D8; --text-dim:#c9beae;
  --rule: rgba(239,230,216,0.18);
}
*{box-sizing:border-box;}
html{ background:var(--bg); }
body{
  margin:0; background:var(--bg) url('media/damask-mrc-bordeaux.webp') repeat; background-size:640px 360px;
  color:var(--text); position:relative;
  font-family:'EB Garamond', serif; font-size:19px; line-height:1.7;
  transition: background .4s ease, color .4s ease;
}
h1,h2,h3{ font-family:'Cinzel', serif; font-weight:600; letter-spacing:.02em; margin:0; }
.wrap{ max-width:760px; margin:0 auto; padding:0 28px; position:relative; z-index:1; }

/* --- texture di sfondo: damasco sottile + vignettatura --- */
/* --- luce che respira: bagliore lentissimo, richiama le fiamme dell'hero --- */
@keyframes breathingLight{
  0%, 100%{ opacity:.55; transform:scale(1); }
  50%{ opacity:1; transform:scale(1.08); }
}
body::before{
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 70% 60% at 15% 10%, rgba(201,162,75,.38), transparent 62%),
    radial-gradient(ellipse 55% 50% at 88% 75%, rgba(201,162,75,.26), transparent 58%);
  animation: breathingLight 9s ease-in-out infinite;
}
body::after{
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,.35) 100%);
}

/* toggle */


/* hero */
.hero{
  position:relative; overflow:hidden; min-height:94vh; display:flex; align-items:flex-start;
  padding:0; text-align:left; isolation:isolate; z-index:0;
  background-image:url('media/sunset-hero-poster.webp'); background-size:cover; background-position:center;
}
.hero video{ position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero::before{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 35%, rgba(0,0,0,.1) 70%, var(--bg) 100%);
}
.hero-content{
  position:relative; z-index:2; max-width:640px; padding:64px 28px 0;
  opacity:0; transform:translateY(-14px); animation:heroIn 1.1s ease-out .2s forwards;
}
@keyframes heroIn{ to{ opacity:1; transform:translateY(0); } }
.hero h1{ font-size:60px; color:#F7F2E9; text-shadow:0 2px 14px rgba(0,0,0,.55); letter-spacing:.01em; }
.hero p{ margin:20px 0 0; max-width:460px; color:#e7ddc9; font-size:19px; font-style:italic; text-shadow:0 1px 8px rgba(0,0,0,.55); }
.hero .rule{ width:60px; height:1px; background:var(--accent); margin:32px 0 0; }

.hero-novita{
  position:absolute; z-index:3; right:36px; bottom:60px; width:340px;
  display:flex; gap:18px; align-items:center; text-decoration:none;
  background:var(--bg); border:1px solid rgba(255,255,255,.1);
  border-radius:6px; padding:16px 20px; transition:.2s;
}
.hero-novita:hover{ border-color:var(--accent); }
.hero-novita img{ width:64px; height:94px; object-fit:cover; border:1px solid rgba(255,255,255,.15); flex:0 0 auto; }
.hero-novita div{ display:flex; flex-direction:column; }
.hero-novita strong{ font-family:'Cinzel', serif; color:#F7F2E9; font-size:18px; font-weight:600; line-height:1.3; }
.hero-novita-cta{ color:var(--accent); font-size:13px; margin-top:8px; }
.hero-tabs{ position:absolute; z-index:3; right:36px; bottom:60px; display:flex; gap:16px; align-items:stretch; }
.hero-tabs .hero-novita{ position:static; width:340px; }
.hero-tabs .hero-evento{ width:270px; flex-direction:column; align-items:flex-start; justify-content:center; }
.hero-evento-when{ color:var(--accent); font-size:15px; font-style:italic; margin-top:8px; }
@media (max-width:1100px){
  .hero-tabs{ flex-direction:column; }
  .hero-tabs .hero-evento{ width:340px; }
}
@media (max-width:600px){
  .hero-tabs{ position:static; margin:20px 28px 0; right:auto; bottom:auto; }
  .hero-tabs .hero-novita, .hero-tabs .hero-evento{ width:auto; }
}
@media (max-width:600px){
  .hero video{ display:none; }
  .hero{ min-height:70vh; flex-direction:column; }
  .hero-content{ padding-top:40px; }
}

nav a{ color:var(--text-dim); text-decoration:none; font-size:15px; margin:0 16px; letter-spacing:.03em; }
nav a:hover{ color:var(--accent); }

.site-nav{
  position:sticky; top:0; z-index:30; background:var(--bg); border-bottom:1px solid var(--rule);
  padding:8px 28px; display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.site-nav .brand{ display:flex; align-items:center; gap:8px; text-decoration:none; flex:0 0 auto; }
.site-nav .brand img{ height:22px; width:auto; display:block; }
.site-nav .brand span{ font-family:'Cinzel', serif; font-size:14px; color:var(--text); letter-spacing:.04em; white-space:nowrap; line-height:1; }
.site-nav .site-nav-links{ display:flex; align-items:center; flex-wrap:nowrap; gap:16px; justify-content:center; line-height:1; }
.site-nav .site-nav-links a{ color:var(--text-dim); text-decoration:none; font-size:13px; letter-spacing:.03em; white-space:nowrap; }
.site-nav .site-nav-links a:hover{ color:var(--accent); }
.site-nav .site-nav-social{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.site-nav .site-nav-social a{ color:var(--text-dim); display:flex; }
.site-nav .site-nav-social a:hover{ color:var(--accent); }
.site-nav .site-nav-social svg{ width:14px; height:14px; fill:currentColor; }
@media (max-width:760px){
  .site-nav{ flex-wrap:wrap; row-gap:8px; padding:10px 20px; }
  .site-nav .site-nav-links{ flex-wrap:wrap; }
  .site-nav .brand span{ display:none; }
}

section{ padding:70px 0; border-top:1px solid var(--rule); position:relative; z-index:1; }
.lede{ font-size:20px; max-width:600px; margin-top:0; }
.lede .drop{ float:left; font-family:'Cinzel',serif; font-size:64px; line-height:.8; padding:8px 10px 0 0; color:var(--accent); }
.note{ font-size:13px; color:var(--text-dim); opacity:.6; font-style:italic; margin-top:16px; }

/* books, alternating */
.book{ display:flex; gap:40px; align-items:flex-start; margin-bottom:64px; }
.book:nth-child(even){ flex-direction:row-reverse; }
.cover{
  flex:0 0 150px; height:220px; background:var(--surface); border:1px solid var(--rule);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:14px;
  font-size:13px; color:var(--text-dim); border-radius:2px; overflow:hidden;
}
.cover img{ width:100%; height:100%; object-fit:cover; display:block; }
a.cover-link{ display:block; flex:0 0 150px; transition:opacity .25s; }
a.cover-link:hover{ opacity:.85; }
.edition-note{ font-size:12px; color:var(--text-dim); opacity:.7; margin-top:6px; }
.cover-pair{ display:flex; gap:6px; flex:0 0 auto; }
.cover-pair .cover-mini{ flex:0 0 150px; }
.cover-pair img{ width:150px; height:220px; object-fit:cover; border:1px solid var(--rule); display:block; }
.cover-pair span{ display:block; text-align:center; font-size:11px; color:var(--text-dim); opacity:.75; margin-top:6px; letter-spacing:.03em; }
.book-body{ flex:1; padding-top:6px; }
.pub{ font-size:13px; letter-spacing:.06em; color:var(--accent); margin-bottom:6px; }
.book-body .pub{ font-size:13px; letter-spacing:.06em; color:var(--accent); margin-bottom:6px; }
.book-body h3{ font-size:26px; margin-bottom:12px; }
.book-body h3 a{ color:inherit; text-decoration:none; }
.book-body h3 a:hover{ color:var(--accent); }
.book-body p{ color:var(--text-dim); font-size:17px; }
.read-more{ display:inline-block; margin-top:10px; font-size:14px; color:var(--accent); text-decoration:none; border-bottom:1px solid var(--accent); }
.read-more:hover{ opacity:.75; }
.mondadori-link{ display:inline-block; font-family:'Cinzel',serif; font-size:28px; color:var(--text); text-decoration:none; }
.mondadori-link:hover{ color:var(--accent); }

/* stats bar */
.stats{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px;
  padding:44px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  text-align:center;
}
.stats .stat{ flex:1 1 140px; }
.stats .stat .num{ font-family:'Cinzel', serif; font-size:32px; color:var(--accent); display:block; }
.stats .stat .lbl{ font-size:12px; color:var(--text-dim); letter-spacing:.04em; margin-top:6px; display:block; }

/* awards */
.awards ul{ list-style:none; padding:0; margin:0; max-width:520px; }
.awards li{ padding:14px 0; border-bottom:1px solid var(--rule); font-size:17px; color:var(--text-dim); display:flex; align-items:flex-start; gap:12px; }
.awards li:last-child{ border-bottom:none; }
.awards li svg{ flex:0 0 auto; width:20px; height:20px; margin-top:2px; stroke:var(--accent); fill:none; stroke-width:1.3; }
.awards .award-year{ color:var(--accent); font-weight:500; margin-right:6px; }
.awards .award-work{ display:block; font-size:14px; font-style:italic; color:var(--text-dim); opacity:.8; margin-top:2px; }

/* timeline verticale premi */
.timeline{ position:relative; max-width:560px; padding-left:8px; }
.timeline::before{ content:''; position:absolute; left:8px; top:6px; bottom:6px; width:1px; background:var(--rule); }
.timeline-item{ position:relative; padding:0 0 32px 36px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{
  content:''; position:absolute; left:3px; top:5px; width:11px; height:11px; border-radius:50%;
  background:var(--bg); border:2px solid var(--accent);
}
.timeline-year{ font-family:'Cinzel', serif; color:var(--accent); font-size:15px; letter-spacing:.03em; display:block; margin-bottom:5px; }
.timeline-title{ color:var(--text); font-size:17px; line-height:1.5; }
.timeline-work{ display:block; font-style:italic; color:var(--text-dim); font-size:14px; margin-top:5px; opacity:.85; }

/* autrice: foto + bio + firma */
.autrice-block{ display:flex; gap:40px; align-items:flex-start; flex-wrap:wrap; }
.autrice-photo{ flex:0 0 230px; }
.autrice-photo img{ width:230px; height:340px; object-fit:cover; border:1px solid var(--rule); display:block; }
.autrice-photo span{ display:block; text-align:center; font-size:12px; letter-spacing:.06em; color:var(--text-dim); margin-top:10px; }
.autrice-text{ flex:1; min-width:280px; }
.signature{ margin-top:26px; text-align:right; }
.signature img{ height:44px; opacity:.9; }

/* rassegna stampa */
.press ul{ list-style:none; padding:0; margin:24px 0 0; max-width:520px; }
.press li{ padding:14px 0; border-bottom:1px solid var(--rule); font-size:16px; color:var(--text-dim); font-style:italic; }
.press li:last-child{ border-bottom:none; }
.press li span.attribution{ display:block; font-size:13px; font-style:normal; color:var(--accent); margin-top:4px; }

footer{ text-align:center; padding:60px 0 80px; position:relative; z-index:1; }
footer .social{ display:flex; justify-content:center; gap:16px; margin-bottom:22px; }
footer .social a{
  color:var(--text-dim); display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border:1px solid var(--rule); border-radius:50%; transition:.2s;
}
footer .social a:hover{ color:var(--accent); border-color:var(--accent); }
footer .social svg{ width:17px; height:17px; fill:currentColor; }
footer .copy{ font-size:13px; color:var(--text-dim); opacity:.55; }

/* griglia copertine semplice, con nome sotto (riusa hover/lightbox della galleria) */
.cover-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:20px 16px; }
.cover-grid .cover-item{ text-align:center; }
.cover-grid .cover-item .gallery-item{ aspect-ratio:150/220; border-radius:2px; }
.cover-grid .cover-item p{ margin:10px 0 0; font-size:14px; color:var(--text-dim); }
.flyer-grid .cover-item .gallery-item{ aspect-ratio:3/4; }
.flyer-grid .gallery-item img{ object-fit:contain; }
.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(160px,1fr)); gap:14px; }
.gallery-item{ position:relative; overflow:hidden; border:1px solid var(--rule); border-radius:2px; cursor:pointer; aspect-ratio:4/3; background:var(--surface); }
.gallery-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.gallery-item:hover img{ transform:scale(1.06); }
.gallery-item .cap{
  position:absolute; left:0; right:0; bottom:0; padding:18px 10px 8px; font-size:12px; color:#f2ece0;
  background:linear-gradient(to top, rgba(0,0,0,.7), rgba(0,0,0,0)); opacity:0; transition:opacity .3s;
}
#lightbox{ position:fixed; inset:0; background:rgba(0,0,0,.9); display:none; align-items:center; justify-content:center; z-index:50; padding:32px; }
#lightbox.open{ display:flex; }
#lightbox img{ max-width:82vw; max-height:78vh; object-fit:contain; border:1px solid rgba(255,255,255,.15); }
#lightbox .lb-cap{ position:absolute; bottom:26px; left:0; right:0; text-align:center; color:#ece5d6; font-size:14px; font-style:italic; }
#lightbox .lb-close{ position:absolute; top:18px; right:26px; color:#ece5d6; font-size:30px; line-height:1; cursor:pointer; background:none; border:none; font-family:'EB Garamond', serif; }
#lightbox .lb-close:hover{ color:var(--accent); }
#lightbox .lb-nav{
  position:absolute; top:50%; transform:translateY(-50%); background:none; border:none;
  color:#ece5d6; font-size:38px; line-height:1; cursor:pointer; padding:10px 16px; font-family:'Cinzel',serif;
}
#lightbox .lb-nav:hover{ color:var(--accent); }
#lightbox .lb-prev{ left:6px; }
#lightbox .lb-next{ right:6px; }

/* book detail pages */
.book-hero{ display:flex; gap:48px; align-items:flex-start; padding:70px 0 40px; flex-wrap:wrap; }
.book-hero .cover-pair{ flex:0 0 auto; }
.book-hero .book-info{ flex:1; min-width:280px; }
.book-info .pub{ font-size:14px; letter-spacing:.06em; color:var(--accent); margin-bottom:10px; }
.book-info h1{ font-size:42px; margin-bottom:18px; }
.book-info p.synopsis{ font-size:18px; color:var(--text); max-width:520px; }
.back-link{ display:inline-block; margin-bottom:20px; color:var(--text-dim); text-decoration:none; font-size:14px; }
.back-link:hover{ color:var(--accent); }
.action-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:28px; }
.action-row + .action-row{ margin-top:14px; }
.action-btn{
  font-family:'EB Garamond', serif; font-size:15px; padding:11px 22px; border-radius:2px;
  text-decoration:none; text-align:center; cursor:pointer; transition:.2s; border:1px solid var(--accent);
  color:var(--bg); background:var(--accent); display:inline-flex; align-items:center; gap:8px;
}
.action-btn:hover{ opacity:.85; }
.action-btn.secondary{ background:transparent; color:var(--text); border-color:var(--rule); }
.action-btn.secondary:hover{ border-color:var(--accent); color:var(--accent); }
.action-btn.placeholder{
  background:transparent; color:var(--text-dim); border:1px dashed var(--rule);
  cursor:not-allowed; opacity:.6;
}

/* torna su */
#back-to-top{
  position:fixed; bottom:24px; right:24px; z-index:40; width:44px; height:44px; border-radius:50%;
  background:var(--surface); border:1px solid var(--rule); color:var(--text-dim);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  opacity:0; pointer-events:none; transition:opacity .25s, color .2s, border-color .2s;
}
#back-to-top.visible{ opacity:1; pointer-events:auto; }
#back-to-top:hover{ color:var(--accent); border-color:var(--accent); }
#back-to-top svg{ width:18px; height:18px; }

/* condividi */
.action-btn svg{ width:14px; height:14px; flex:0 0 auto; }
.expandable{ margin-top:34px; border-top:1px solid var(--rule); padding-top:28px; }
.expandable h2{ font-size:20px; margin-bottom:14px; }
.expandable .body-text{ display:none; color:var(--text-dim); font-size:17px; }
#autrice-continua.body-text{ font-size:20px; max-width:600px; }
.expandable .body-text.open{ display:block; }
.expandable .placeholder-text{ font-style:italic; opacity:.65; }

@media (max-width:600px){
  .hero h1{ font-size:38px; }
  .book, .book:nth-child(even){ flex-direction:column; }
  .cover, a.cover-link{ width:100%; flex:none; }
  .cover-pair .cover-mini{ flex:1 1 0; }
  .cover-pair img{ width:100%; height:auto; aspect-ratio:150/220; }
  .book-hero{ flex-direction:column; padding-top:50px; }
  .stats{ justify-content:center; }
}

/* link nelle righe sulla privacy (modulo newsletter e modulo contatti) */
#newsletter-consenso a, .contact-form .note a{ color:var(--accent); text-decoration:underline; }
#newsletter-consenso a:visited, .contact-form .note a:visited{ color:var(--accent); }
