
:root{
  --paper:#eee4d3;
  --paper2:#f8f1e5;
  --ink:#201c18;
  --muted:#74695d;
  --line:#cdbfac;
  --wine:#8b3d35;
  --green:#263d31;
  --type:'Courier Prime',monospace;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
}
body.modal-open{overflow:hidden}
button,a{color:inherit}
button{font:inherit}
img{display:block;max-width:100%}

.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  min-height:96px;
  padding:14px 3vw;
  display:flex;
  align-items:center;
  gap:24px;
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(238,228,211,.97);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}

.wordmark{
  display:flex;
  align-items:center;
  gap:13px;
  min-width:0;
  text-decoration:none;
}

.brand-photo{
  width:58px;
  height:58px;
  flex:0 0 58px;
  padding:3px;
  border:1px solid #c9b9a5;
  background:#f8f0e4;
  box-shadow:0 3px 8px rgba(54,38,22,.10);
  overflow:hidden;
}

.brand-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.wordmark-text{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.wordmark-text strong{
  font:700 22px/1.05 var(--serif);
  letter-spacing:.04em;
  white-space:nowrap;
}

.wordmark-tagline{
  display:block;
  color:var(--wine);
  font:italic 500 15px/1.2 var(--serif);
  margin-top:2px;
}

.main-nav{
  margin-left:auto;
  display:flex;
  align-items:stretch;
  gap:8px;
}

.nav-item,
.nav-book{
  min-width:102px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:10px 11px;
  border:0;
  background:transparent;
  text-decoration:none;
  cursor:pointer;
  font:700 10px var(--type);
  letter-spacing:.05em;
}

.nav-item:hover,
.nav-book:hover{
  background:rgba(255,255,255,.35);
}

.nav-books{
  position:relative;
  display:flex;
  align-items:center;
  padding:13px 10px 5px;
  border:1px solid #9f907f;
  background:rgba(248,241,229,.28);
}

.nav-books>small{
  position:absolute;
  top:-11px;
  left:50%;
  transform:translateX(-50%);
  padding:0 12px;
  background:var(--paper);
  font:700 9px var(--type);
  letter-spacing:.1em;
}

.nav-riva{position:relative}

.nav-riva b{
  position:absolute;
  top:-4px;
  color:var(--wine);
  font:700 8px var(--type);
  letter-spacing:.08em;
}

.slash{
  color:#9f907f;
  align-self:center;
}

.nav-contact{border:0}

.menu-toggle{
  display:none;
  margin-left:auto;
  border:1px solid var(--line);
  background:transparent;
  padding:8px 12px;
  font:700 10px var(--type);
  cursor:pointer;
}

/* =========================================================
   HERO
   ========================================================= */
.hero.hero-v10{
  min-height:680px;
  display:grid;
  grid-template-columns:minmax(560px,1.05fr) minmax(520px,.95fr);
  gap:clamp(32px,4vw,70px);
  align-items:center;
  padding:38px 5vw 30px;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 15%,rgba(255,250,241,.85),transparent 42%),
    linear-gradient(90deg,#f1e7d6,#eadfce);
}

.hero-left{
  position:relative;
  min-width:0;
}

.desk-left{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
}

.underwood-with-paper{
  display:block;
  width:min(720px,100%);
  height:auto;
  margin:0 auto;
  object-fit:contain;
  filter:drop-shadow(0 20px 22px rgba(57,40,22,.16));
}

.hero-right{
  position:relative;
  min-height:600px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  padding-right:280px;
}

.hero-socials{
  position:relative;
  z-index:4;
  margin:0 0 20px 6px;
}

.hero-socials p{
  margin:0 0 10px;
  color:var(--wine);
  font:700 10px var(--type);
  letter-spacing:.12em;
}

.social-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:0;
}

.social-row a,
.social-row button{
  position:relative;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid #6d6257;
  background:rgba(248,241,229,.45);
  cursor:pointer;
}

.social-row svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}

.social-row .fb-author b{
  position:absolute;
  right:-3px;
  top:-5px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--wine);
  color:#fff;
  font:700 9px/16px var(--type);
  text-align:center;
}

.hero-books{
  position:relative;
  z-index:4;
  width:min(500px,100%);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.hero-book{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:10px 10px 14px;
  border:1px solid #cdbca7;
  background:#f7efe2;
  box-shadow:0 12px 22px rgba(62,42,23,.12);
  text-align:left;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease;
}

.hero-book:hover{
  transform:translateY(-4px);
  box-shadow:0 17px 27px rgba(62,42,23,.18);
}

.hero-cover{
  height:280px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#e7dece;
}

.hero-cover img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.hero-book-copy{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:10px;
  padding:12px 4px 0;
}

.hero-book-copy strong{
  font:600 1.65rem/1 var(--serif);
}

.hero-book-copy small{
  font:700 9px var(--type);
  color:var(--wine);
}

.hero-new{
  position:absolute;
  z-index:5;
  left:4px;
  top:4px;
  padding:5px 10px;
  background:var(--wine);
  color:#fff;
  font:700 9px var(--type);
  letter-spacing:.08em;
}

/* BLOCCO DECORATIVO DESTRO */
.editorial-details{
  position:absolute;
  z-index:2;
  right:-18px;
  top:5px;
  width:260px;
  height:600px;
  pointer-events:none;
}

.editorial-details .postcard{
  position:absolute;
  margin:0;
  width:180px;
  padding:9px 9px 29px;
  background:#f7efe2;
  border:1px solid #d6c7b4;
  box-shadow:0 12px 22px rgba(53,37,21,.16);
}

.editorial-details .postcard img{
  width:100%;
  height:198px;
  object-fit:cover;
}

.editorial-details .postcard figcaption{
  position:absolute;
  left:11px;
  bottom:5px;
  color:#4f473e;
  font:italic 13px/1.05 var(--serif);
}

.editorial-details .postcard-mountain{
  right:12px;
  top:0;
  transform:rotate(4deg);
  z-index:2;
}

.editorial-details .postcard-london{
  right:-4px;
  top:274px;
  transform:rotate(6deg);
  z-index:2;
}

.editorial-details .real-pen{
  position:absolute;
  right:-8px;
  bottom:-10px;
  width:245px;
  height:auto;
  max-width:none;
  z-index:1;
  mix-blend-mode:multiply;
  box-shadow:none;
}

/* =========================================================
   SEZIONI
   ========================================================= */
.section{
  padding:92px 6vw;
}

.section-heading{
  max-width:1180px;
  margin:0 auto 45px;
  display:flex;
  gap:20px;
}

.section-heading>span{
  color:var(--wine);
  font:700 11px var(--type);
}

.section-heading p{
  margin:0;
  color:var(--muted);
  font:700 10px var(--type);
  letter-spacing:.12em;
}

.section-heading h2{
  margin:4px 0;
  font:500 clamp(2rem,4vw,3.4rem)/1 var(--serif);
}

/* ROMANZI */
.books-section{background:var(--paper2)}

.book-grid{
  max-width:1180px;
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}

.book-card{
  min-height:410px;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  align-items:center;
}

.mtg-card{
  background:#211927;
  color:#f4eee4;
}

.riva-card{background:#dbe0d6}

.cover-stage{
  position:relative;
  padding:35px 18px;
}

.cover-stage img{
  max-height:300px;
  width:auto;
  margin:auto;
  filter:drop-shadow(0 16px 18px rgba(0,0,0,.27));
}

.new-badge{
  position:absolute;
  right:12px;
  top:20px;
  color:var(--wine);
  border:2px solid currentColor;
  padding:4px 8px;
  font:700 9px var(--type);
  transform:rotate(6deg);
}

.book-copy{padding:35px 30px}

.book-copy small,
.event-copy small{
  font:700 9px var(--type);
  letter-spacing:.12em;
}

.book-copy h3{
  margin:8px 0;
  font:600 3rem/1 var(--serif);
}

.book-copy .subtitle{
  font:italic 1.2rem var(--serif);
}

.book-link,
.event-link{
  border:0;
  border-bottom:1px solid currentColor;
  background:none;
  padding:3px 0;
  font:700 10px var(--type);
  cursor:pointer;
}

/* APPUNTAMENTI */
.appointments{
  background:var(--green);
  color:#f3ecdf;
}

.light>span,
.light p{color:#b7c2b9}

.event-grid{
  max-width:1180px;
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.event-card{
  display:grid;
  grid-template-columns:110px 1fr;
  background:#f2ecdf;
  color:var(--ink);
}

.event-date{
  padding:26px 10px;
  background:#d8d0c1;
  text-align:center;
}

.event-date strong{
  display:block;
  font:500 3.8rem/1 var(--serif);
}

.event-date span{
  font:700 9px var(--type);
}

.event-copy{padding:28px}
.event-copy small{color:var(--wine)}

.event-copy h3{
  margin:8px 0;
  font:600 1.8rem/1.1 var(--serif);
}

.event-copy p{
  color:var(--muted);
  font-size:.9rem;
}

/* AUTRICE */
.author-section{background:#ebe1d3}

.author-grid{
  max-width:950px;
  margin:auto;
  display:grid;
  grid-template-columns:290px 1fr;
  gap:58px;
  align-items:center;
}

.author-photo{
  margin:0;
  aspect-ratio:4/5;
  padding:8px;
  background:#f5ecdf;
  border:1px solid #cbbba8;
  box-shadow:4px 6px #d8cebd;
}

.author-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.author-copy .lead{
  font:500 1.5rem/1.4 var(--serif);
}

/* PROGETTI */
.projects-section{background:var(--paper2)}

.projects-grid{
  max-width:950px;
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}

.project-sheet{
  padding:42px;
  background:#f1eadc;
  border:1px solid var(--line);
  box-shadow:4px 6px #d8cebd;
}

.project-sheet>b{
  color:var(--wine);
  font:700 10px var(--type);
}

.project-sheet small{
  display:block;
  color:var(--muted);
  font:700 9px var(--type);
  letter-spacing:.1em;
}

.project-sheet h3{
  margin:8px 0;
  font:600 2rem var(--serif);
}

.muted{opacity:.72}

/* CONTATTI */
.contacts{
  text-align:center;
  background:#28231e;
  color:#f0e8dc;
}

.contacts>p{
  color:#c9b9a9;
  font:700 10px var(--type);
}

.contacts h2{
  font:500 clamp(2.4rem,5vw,4rem)/1 var(--serif);
}

.contact-social-row{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:30px;
}

.contact-social-row a,
.contact-social-row button{
  border:1px solid #75695c;
  background:transparent;
  color:inherit;
  padding:10px 14px;
  text-decoration:none;
  font:700 10px var(--type);
  cursor:pointer;
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
  padding:30px 4vw;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:25px;
  background:#151310;
  color:#c8bbac;
}

.footer-brand strong,
.footer-brand span{
  display:block;
}

.footer-brand strong{
  font:700 12px var(--type);
}

.footer-brand span{
  font:italic 16px var(--serif);
}

.site-footer nav{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  justify-content:center;
}

.site-footer a,
.site-footer button{
  border:0;
  background:none;
  color:inherit;
  text-decoration:none;
  font:12px var(--serif);
  cursor:pointer;
}

.site-footer>small{text-align:right}

/* =========================================================
   BOOK PICKER
   ========================================================= */
.book-picker{
  position:fixed;
  inset:0;
  z-index:90;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.book-picker.open{display:flex}

.picker-backdrop{
  position:absolute;
  inset:0;
  background:#17130fcc;
  backdrop-filter:blur(8px);
}

.picker-panel{
  position:relative;
  z-index:2;
  width:min(900px,96vw);
  padding:42px;
  background:#25211d;
  color:#f1e9dc;
  border:1px solid #8d8173;
}

.picker-close{
  position:absolute;
  right:18px;
  top:10px;
  border:0;
  background:none;
  color:#eee;
  font-size:32px;
  cursor:pointer;
}

.picker-kicker{
  text-align:center;
  font:700 10px var(--type);
}

.picker-books{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.picker-book{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:20px;
  align-items:center;
  border:1px solid #5d554c;
  background:#ffffff08;
  color:#eee;
  padding:20px;
  text-align:left;
  cursor:pointer;
}

.picker-book img{
  max-height:190px;
  width:auto;
  margin:auto;
}

.picker-book small{
  display:block;
  color:#be6a6d;
  font:700 9px var(--type);
}

.picker-book strong{
  display:block;
  font:600 2rem var(--serif);
}

.picker-book em{
  font:italic 1rem var(--serif);
  color:#c9bfb1;
}

/* =========================================================
   FULLSCREEN BOOK VIEWER
   ========================================================= */
.book-viewer{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  grid-template-rows:58px 1fr;
  background:#fff;
}

.book-viewer.open{display:grid}

.viewer-bar{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:0 18px;
  background:#1b1815;
  color:#eee;
}

.viewer-home,
.viewer-close{
  border:0;
  background:none;
  color:inherit;
  cursor:pointer;
}

.viewer-home{
  justify-self:start;
  font:700 10px var(--type);
}

.viewer-title{
  font:700 11px var(--type);
  color:#cdbfb0;
}

.viewer-close{
  justify-self:end;
  font-size:30px;
}

#bookFrame{
  width:100%;
  height:100%;
  border:0;
}

/* =========================================================
   CONTACT DIALOG
   ========================================================= */
.contact-dialog{
  width:min(620px,94vw);
  border:1px solid #a99884;
  background:#f5ede0;
  color:var(--ink);
  padding:36px;
  box-shadow:0 30px 80px #0005;
}

.contact-dialog::backdrop{
  background:#17130fcc;
  backdrop-filter:blur(6px);
}

.contact-close{
  position:absolute;
  right:15px;
  top:10px;
  border:0;
  background:none;
  font-size:30px;
  cursor:pointer;
}

.contact-kicker{
  color:var(--wine);
  font:700 10px var(--type);
}

.contact-dialog h2{
  margin:8px 0;
  font:500 2.4rem/1 var(--serif);
}

.contact-dialog form{
  display:grid;
  gap:12px;
  margin-top:22px;
}

.contact-dialog label{
  display:grid;
  gap:5px;
  font:700 10px var(--type);
}

.contact-dialog input,
.contact-dialog textarea{
  width:100%;
  border:1px solid #b9aa97;
  background:#fffaf2;
  padding:10px;
  font:15px var(--sans);
}

.privacy-check{
  grid-template-columns:auto 1fr!important;
  align-items:start;
}

.privacy-check input{
  width:auto;
  margin-top:3px;
}

.hp{
  position:absolute!important;
  left:-9999px!important;
}

.send{
  border:1px solid var(--wine);
  background:transparent;
  padding:12px;
  font:700 10px var(--type);
  cursor:pointer;
}

.status{font-size:.9rem}
.status.ok{color:#2f643d}
.status.err{color:#943a36}


/* =========================================================
   LA RIVA · USCITA 18 SETTEMBRE
   ========================================================= */

/* Il messaggio di uscita è separato dalla copertina:
   nessuna scritta viene più sovrapposta all'immagine del libro. */
.hero-book-riva{
  border:2px solid var(--wine);
  box-shadow:0 16px 30px rgba(88,44,37,.18);
}

.hero-release{
  display:grid;
  place-items:center;
  margin:-10px -10px 10px;
  padding:10px 8px 9px;
  background:var(--wine);
  color:#fff;
  text-align:center;
}

.hero-release small{
  font:700 9px/1.1 var(--type);
  letter-spacing:.12em;
}

.hero-release strong{
  display:block;
  margin-top:3px;
  font:700 clamp(1.25rem,2vw,1.75rem)/1 var(--serif);
  letter-spacing:.02em;
}

.hero-release em{
  margin-top:2px;
  font:700 11px/1 var(--type);
  font-style:normal;
  letter-spacing:.12em;
}

.hero-cover-riva{
  background:#e8dfd3;
  padding:7px;
}

.hero-cover-riva img{
  width:100%;
  height:100%;
  object-fit:contain;
}

/* Preordine leggibile e fuori dall'immagine */
.hero-preorder{
  display:block;
  padding:9px 6px 2px;
  color:var(--wine);
  text-align:center;
  font:700 9px/1.35 var(--type);
  letter-spacing:.035em;
}

/* La copertina nella sezione Romanzi è anch'essa cliccabile */
.cover-stage-link{
  width:100%;
  height:100%;
  border:0;
  background:transparent;
  cursor:pointer;
  text-align:inherit;
}

.cover-stage-link:hover img{
  transform:translateY(-4px) scale(1.015);
}

.cover-stage-link img{
  transition:transform .2s ease;
}

/* Data d'uscita molto evidente anche nella sezione 01 */
.release-box{
  margin:18px 0 20px;
  padding:14px 16px;
  background:var(--wine);
  color:#fff;
  box-shadow:3px 4px 0 rgba(80,52,42,.14);
}

.release-box span,
.release-box strong,
.release-box em{
  display:block;
}

.release-box span{
  font:700 9px/1.1 var(--type);
  letter-spacing:.13em;
}

.release-box strong{
  margin:5px 0 4px;
  font:600 clamp(1.45rem,2.2vw,2rem)/1 var(--serif);
}

.release-box em{
  font:500 12px/1.35 var(--sans);
  font-style:normal;
  opacity:.95;
}


/* =========================================================
   HEADER V17 · MENU PIÙ PULITO
   ========================================================= */
.main-nav{
  align-items:center;
  gap:4px;
}

.nav-item{
  min-width:auto;
  padding:11px 14px;
  border-radius:2px;
  font-size:10px;
  letter-spacing:.08em;
  transition:background .18s ease,color .18s ease;
}

.nav-item:hover{
  background:rgba(139,61,53,.08);
  color:var(--wine);
}

.nav-dropdown{
  position:relative;
}

.nav-dropdown-toggle{
  flex-direction:row;
  gap:7px;
}

.nav-dropdown-toggle i{
  font-style:normal;
  font-size:13px;
  transform:translateY(-1px);
}

.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:50%;
  transform:translateX(-50%) translateY(-4px);
  width:250px;
  padding:8px;
  border:1px solid var(--line);
  background:var(--paper2);
  box-shadow:0 18px 35px rgba(44,31,20,.16);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.18s ease;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}

.nav-drop-book{
  width:100%;
  display:block;
  padding:13px 14px;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
}

.nav-drop-book + .nav-drop-book{
  border-top:1px solid var(--line);
}

.nav-drop-book:hover{
  background:rgba(139,61,53,.07);
}

.nav-drop-book small{
  display:block;
  color:var(--wine);
  font:700 8px/1.2 var(--type);
  letter-spacing:.08em;
}

.nav-drop-book strong{
  display:block;
  margin-top:3px;
  font:600 1.25rem/1.1 var(--serif);
}

/* Mind the Gap 3D: centrato e leggermente più grande */
.hero-cover-mtg{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
}

.hero-cover-mtg img{
  width:auto;
  height:96%;
  max-width:96%;
  object-fit:contain;
  object-position:center;
  margin:auto;
}

.mtg-card .cover-stage-link{
  display:flex;
  align-items:center;
  justify-content:center;
}

.mtg-card .cover-stage-link img{
  max-height:325px;
  max-width:92%;
  object-fit:contain;
}

/* Contatore visite */
.footer-meta{
  justify-self:end;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
}

.visit-counter{
  color:#8f8173;
  font:700 9px/1.2 var(--type);
  letter-spacing:.05em;
}

.visit-counter b{
  color:#c8bbac;
  font-weight:700;
}

/* =========================================================
   TABLET
   ========================================================= */
@media(max-width:1100px){
  .site-header{gap:14px}
  .wordmark-text strong{font-size:19px}
  .main-nav{gap:3px}
  .nav-item,.nav-book{
    min-width:86px;
    padding:8px 7px;
    font-size:9px;
  }

  .hero.hero-v10{
    grid-template-columns:1fr 1fr;
    gap:24px;
    padding-left:3vw;
    padding-right:3vw;
  }

  .hero-right{
    padding-right:220px;
  }

  .hero-books{width:min(455px,100%)}
  .hero-cover{height:230px}

  .editorial-details{
    width:220px;
    right:-30px;
  }

  .editorial-details .postcard{width:155px}
  .editorial-details .postcard img{height:168px}
  .editorial-details .postcard-london{top:238px}
  .editorial-details .real-pen{width:215px}
}

/* =========================================================
   MOBILE / TABLET STRETTO
   ========================================================= */
@media(max-width:900px){
  .site-header{
    min-height:78px;
    padding:10px 16px;
    gap:12px;
  }

  .brand-photo{
    width:46px;
    height:46px;
    flex-basis:46px;
  }

  .wordmark-text strong{font-size:17px}
  .wordmark-tagline{font-size:13px}

  .menu-toggle{display:block}

  .main-nav{
    display:none;
    position:absolute;
    top:78px;
    left:0;
    right:0;
    margin:0;
    padding:22px 18px 26px;
    flex-direction:column;
    align-items:stretch;
    gap:8px;
    background:var(--paper2);
    border-bottom:1px solid var(--line);
  }

  .main-nav.open{display:flex}

  .nav-item{
    min-width:0;
    flex-direction:row;
    justify-content:flex-start;
    padding:11px 4px;
  }

  .nav-books{
    justify-content:center;
    padding:16px 8px 6px;
  }

  .hero.hero-v10{
    min-height:0;
    grid-template-columns:1fr;
    gap:22px;
    padding:30px 5vw 42px;
    overflow:visible;
  }

  .hero-left,
  .hero-right{
    width:100%;
    min-width:0;
  }

  .hero-right{
    min-height:0;
    padding-right:0;
    align-items:center;
  }

  .desk-left{
    width:100%;
    padding:0;
  }

  .underwood-with-paper{
    width:min(650px,100%);
  }

  .hero-socials{
    margin:0 0 18px;
    text-align:center;
  }

  .social-row{
    justify-content:center;
  }

  .hero-books{
    width:min(620px,100%);
  }

  .hero-cover{height:300px}

  /* Sul mobile il blocco decorativo entra nel normale flusso.
     Nessun absolute che possa finire fuori viewport. */
  .editorial-details{
    position:relative;
    right:auto;
    top:auto;
    width:min(560px,100%);
    height:390px;
    margin:20px auto 0;
  }

  .editorial-details .postcard{
    width:165px;
    padding:8px 8px 27px;
  }

  .editorial-details .postcard img{
    height:180px;
  }

  .editorial-details .postcard-mountain{
    left:7%;
    right:auto;
    top:0;
    transform:rotate(-4deg);
  }

  .editorial-details .postcard-london{
    right:8%;
    top:16px;
    transform:rotate(5deg);
  }

  .editorial-details .real-pen{
    width:250px;
    right:3%;
    bottom:0;
  }

  .book-grid,
  .event-grid{
    grid-template-columns:1fr;
  }

  .author-grid{
    grid-template-columns:260px 1fr;
    gap:34px;
  }
}

/* =========================================================
   SMARTPHONE
   ========================================================= */
@media(max-width:620px){
  .site-header{gap:10px}

  .brand-photo{
    width:44px;
    height:44px;
    flex-basis:44px;
  }

  .wordmark-text strong{
    font-size:15px;
    white-space:normal;
  }

  .wordmark-tagline{font-size:12px}

  .menu-toggle{
    padding:7px 9px;
    font-size:9px;
  }

  .hero.hero-v10{
    padding:24px 14px 34px;
    gap:18px;
  }

  .underwood-with-paper{
    width:100%;
    max-width:520px;
  }

  .hero-socials p{font-size:9px}

  .social-row{
    gap:9px;
  }

  .social-row a,
  .social-row button{
    width:39px;
    height:39px;
  }

  .hero-books{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .hero-cover{height:195px}

  .hero-book{
    padding:7px 7px 10px;
  }

  .hero-book-copy{
    display:block;
    padding-top:9px;
  }

  .hero-book-copy strong{
    display:block;
    font-size:1.2rem;
  }

  .hero-book-copy small{
    display:block;
    margin-top:5px;
  }

  .hero-new{
    padding:4px 7px;
    font-size:8px;
  }

  .editorial-details{
    width:100%;
    height:315px;
    margin-top:12px;
  }

  .editorial-details .postcard{
    width:140px;
    padding:7px 7px 24px;
  }

  .editorial-details .postcard img{
    height:150px;
  }

  .editorial-details .postcard figcaption{
    bottom:4px;
    font-size:11px;
  }

  .editorial-details .postcard-mountain{
    left:1%;
    top:0;
  }

  .editorial-details .postcard-london{
    right:1%;
    top:5px;
  }

  .editorial-details .real-pen{
    width:215px;
    right:0;
    bottom:0;
  }

  .section{
    padding:68px 20px;
  }

  .book-card{
    grid-template-columns:1fr;
  }

  .cover-stage{
    padding-bottom:10px;
  }

  .book-copy{
    padding:28px 24px 32px;
  }

  .book-copy h3{
    font-size:2.5rem;
  }

  .event-card{
    grid-template-columns:82px 1fr;
  }

  .event-date strong{
    font-size:3rem;
  }

  .event-copy{
    padding:22px 18px;
  }

  .author-grid,
  .projects-grid{
    grid-template-columns:1fr;
  }

  .author-photo{
    width:min(290px,100%);
    margin:auto;
  }

  .picker-panel{
    padding:36px 18px 20px;
  }

  .picker-books{
    grid-template-columns:1fr;
  }

  .picker-book{
    grid-template-columns:90px 1fr;
    padding:16px;
  }

  .picker-book img{
    max-height:140px;
  }

  .site-footer{
    grid-template-columns:1fr;
    text-align:center;
  }

  .site-footer>small{
    text-align:center;
  }

  .viewer-bar{
    grid-template-columns:1fr auto;
  }

  .viewer-title{display:none}
}

@media(max-width:420px){
  .hero-cover{height:170px}
  .editorial-details .postcard{width:126px}
  .editorial-details .postcard img{height:136px}
  .editorial-details .real-pen{width:195px}
}


@media(max-width:620px){
  .hero-release strong{
    font-size:1.28rem;
  }

  .hero-preorder{
    font-size:8px;
    padding-left:2px;
    padding-right:2px;
  }

  .release-box{
    margin-top:14px;
  }

  .release-box strong{
    font-size:1.55rem;
  }
}


@media(max-width:900px){
  .nav-dropdown{
    width:100%;
  }

  .nav-dropdown-toggle{
    width:100%;
    justify-content:flex-start;
  }

  .nav-dropdown-menu{
    position:static;
    transform:none;
    width:100%;
    margin-top:2px;
    display:block;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    box-shadow:none;
    background:rgba(255,255,255,.22);
  }

  .nav-dropdown:hover .nav-dropdown-menu,
  .nav-dropdown:focus-within .nav-dropdown-menu{
    transform:none;
  }

  .footer-meta{
    justify-self:center;
    align-items:center;
  }
}


/* =========================================================
   HEADER V18 · MENU CON SEGNI D'INCHIOSTRO
   ========================================================= */
.main-nav{
  align-items:center;
  gap:10px;
}

.nav-item{
  position:relative;
  min-width:auto;
  padding:14px 14px 12px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--ink);
  font:600 18px/1 var(--serif);
  letter-spacing:.015em;
  text-transform:none;
  overflow:visible;
}

.nav-item span{
  position:relative;
  z-index:2;
}

.nav-item:hover{
  background:transparent;
  color:var(--wine);
}

.nav-ink::after{
  content:"";
  position:absolute;
  left:13px;
  right:13px;
  bottom:6px;
  height:2px;
  background:var(--wine);
  transform:scaleX(0) rotate(-1deg);
  transform-origin:left center;
  opacity:.75;
  transition:transform .2s ease;
}

.nav-ink:hover::after,
.nav-ink:focus-visible::after{
  transform:scaleX(1) rotate(-1deg);
}

.ink-mark{
  position:absolute;
  z-index:1;
  display:block;
  width:15px;
  height:15px;
  left:50%;
  top:0;
  opacity:.55;
  transform:translate(-50%,-52%);
  transition:transform .2s ease, opacity .2s ease;
  pointer-events:none;
}

.ink-mark::before,
.ink-mark::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:var(--wine);
}

.ink-mark::before{
  width:8px;
  height:8px;
  left:3px;
  top:4px;
  box-shadow:
    -5px 3px 0 -2px var(--wine),
    6px -2px 0 -3px var(--wine),
    7px 6px 0 -3px var(--wine);
}

.ink-mark::after{
  width:3px;
  height:3px;
  left:1px;
  top:0;
  box-shadow:
    10px 1px 0 0 var(--wine),
    5px 11px 0 -1px var(--wine);
}

.ink-2{ transform:translate(-50%,-52%) rotate(16deg) scale(.92); }
.ink-3{ transform:translate(-50%,-52%) rotate(-14deg) scale(.8); }
.ink-4{ transform:translate(-50%,-52%) rotate(8deg) scale(1.05); }
.ink-5{ transform:translate(-50%,-52%) rotate(-8deg) scale(.9); }

.nav-ink:hover .ink-mark,
.nav-ink:focus-visible .ink-mark{
  opacity:.9;
}

.nav-ink:hover .ink-1,
.nav-ink:focus-visible .ink-1{ transform:translate(-50%,-52%) rotate(-5deg) scale(1.18); }
.nav-ink:hover .ink-2,
.nav-ink:focus-visible .ink-2{ transform:translate(-50%,-52%) rotate(20deg) scale(1.08); }
.nav-ink:hover .ink-3,
.nav-ink:focus-visible .ink-3{ transform:translate(-50%,-52%) rotate(-18deg) scale(.98); }
.nav-ink:hover .ink-4,
.nav-ink:focus-visible .ink-4{ transform:translate(-50%,-52%) rotate(11deg) scale(1.22); }
.nav-ink:hover .ink-5,
.nav-ink:focus-visible .ink-5{ transform:translate(-50%,-52%) rotate(-12deg) scale(1.06); }

.nav-dropdown-toggle{
  flex-direction:row;
  gap:8px;
}

.nav-caret{
  position:relative;
  z-index:2;
  font-style:normal;
  font-size:15px;
  line-height:1;
  transform:translateY(-1px);
}

.nav-dropdown-menu{
  top:calc(100% + 10px);
  width:270px;
  padding:10px;
  background:
    linear-gradient(rgba(248,241,229,.98),rgba(248,241,229,.98)),
    repeating-linear-gradient(0deg,transparent 0 27px,rgba(139,61,53,.035) 28px);
}

.nav-drop-book strong{
  font-size:1.35rem;
}

/* Mobile: il segno d'inchiostro passa a sinistra della voce */
@media(max-width:900px){
  .nav-item{
    font-size:19px;
    padding:13px 10px 13px 28px;
  }

  .ink-mark{
    left:10px;
    top:50%;
    transform:translateY(-50%) scale(.85)!important;
  }

  .nav-ink::after{
    left:28px;
    right:auto;
    width:120px;
    bottom:8px;
  }

  .nav-dropdown-toggle{
    justify-content:flex-start;
  }
}

@media(max-width:620px){
  .nav-item{
    font-size:18px;
  }
}


/* ==========================================================
   PREORDINE — badge Aculei / Amazon nel riquadro hero di La Riva
   Aggiungi questo blocco in coda a assets/css/site.css
   ========================================================== */

/* Il riquadro "La Riva" nella hero non è più un <button> unico
   (dentro un <button> non si possono mettere link veri): ora è un
   div che contiene due bottoni "apri minisito" (copertina e
   titolo) più, in mezzo, i due badge veri di preordine. */
.hero-book-open{
  display:block;
  width:100%;
  border:0;
  background:none;
  padding:0;
  margin:0;
  text-align:inherit;
  font:inherit;
  color:inherit;
  cursor:pointer;
}

.hero-preorder-links{
  text-align:center;
  margin:10px 0;
}
.hero-preorder-label{
  display:block;
  font:700 9px var(--type);
  letter-spacing:.1em;
  color:var(--muted);
  margin-bottom:8px;
}
.preorder-badges{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.preorder-badge{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--wine);
  color:var(--wine);
  background:rgba(255,255,255,.45);
  padding:8px 14px;
  font:700 10px var(--type);
  letter-spacing:.06em;
  text-decoration:none;
  cursor:pointer;
  transition:background .2s ease,color .2s ease;
}
.preorder-badge:hover,
.preorder-badge:focus-visible{
  background:var(--wine);
  color:#fff;
}
.preorder-badge img{
  height:15px;
  width:auto;
  max-width:60px;
  display:block;
  /* Se il logo è colorato e sparisce su sfondo scuro all'hover,
     puoi forzarlo in bianco con: filter:brightness(0) invert(1) */
}

@media(max-width:620px){
  .preorder-badges{gap:6px}
  .preorder-badge{padding:7px 10px;font-size:9px}
}

/* =========================================================
   V20 · APPUNTAMENTI: MESE IN LETTERE + LOCANDINA
   ========================================================= */
.event-card{
  grid-template-columns:110px minmax(0,1fr);
}

.event-card.has-poster{
  grid-template-columns:110px minmax(0,1fr) 150px;
}

.event-date{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.event-date span{
  margin-top:6px;
  font:700 10px/1.15 var(--type);
  letter-spacing:.06em;
}

.event-date em{
  margin-top:5px;
  font:700 8px/1 var(--type);
  font-style:normal;
  letter-spacing:.10em;
  color:var(--muted);
}

.event-poster{
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:12px;
  border:0;
  border-left:1px solid #d8cdbc;
  background:#ece4d7;
  cursor:pointer;
}

.event-poster img{
  display:block;
  width:100%;
  height:100%;
  max-height:190px;
  object-fit:contain;
  transition:transform .2s ease;
}

@media(hover:hover) and (pointer:fine){
  .event-poster:hover img{
    transform:scale(1.035);
  }
}

@media(max-width:1100px){
  .event-card.has-poster{
    grid-template-columns:95px minmax(0,1fr) 120px;
  }
}

@media(max-width:620px){
  .event-card,
  .event-card.has-poster{
    grid-template-columns:76px minmax(0,1fr);
  }

  .event-poster{
    grid-column:1 / -1;
    border-left:0;
    border-top:1px solid #d8cdbc;
    padding:12px;
  }

  .event-poster img{
    width:auto;
    height:auto;
    max-height:260px;
    max-width:100%;
    margin:auto;
  }

  .event-date strong{
    font-size:2.7rem;
  }

  .event-date span{
    font-size:8px;
    word-break:break-word;
    text-align:center;
  }
}


/* =========================================================
   V20 · TI CONSIGLIO
   ========================================================= */
.recommendations-section{
  background:#f4eadc;
}

.recommendations-grid{
  max-width:1180px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.recommendation-card{
  min-width:0;
  display:grid;
  grid-template-columns:125px minmax(0,1fr);
  background:#fff9ef;
  border:1px solid var(--line);
  box-shadow:4px 6px #ddd0bf;
  overflow:hidden;
}

.recommendation-cover{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:15px 10px;
  background:#e7ddcf;
}

.recommendation-cover img{
  width:100%;
  max-height:205px;
  object-fit:contain;
  filter:drop-shadow(0 9px 9px rgba(50,35,22,.18));
}

.recommendation-copy{
  min-width:0;
  padding:21px 18px 19px;
}

.recommendation-copy > small{
  color:var(--wine);
  font:700 8px/1.2 var(--type);
  letter-spacing:.1em;
}

.recommendation-copy h3{
  margin:7px 0 2px;
  font:600 1.65rem/1 var(--serif);
}

.recommendation-author{
  margin:0 0 7px;
  color:var(--muted);
  font:italic 1rem/1.25 var(--serif);
}

.recommendation-stars{
  color:#9a7134;
  letter-spacing:2px;
  font-size:15px;
}

.recommendation-short{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin:9px 0 14px;
  color:#594f45;
  font-size:12px;
  line-height:1.45;
}

.recommendation-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}

.recommendation-more,
.recommendation-amazon{
  border:0;
  border-bottom:1px solid currentColor;
  background:none;
  padding:3px 0;
  color:var(--wine);
  text-decoration:none;
  font:700 9px var(--type);
  cursor:pointer;
}

.affiliate-note{
  max-width:1180px;
  margin:18px auto 0;
  color:var(--muted);
  font-size:10px;
}


/* Popup Ti consiglio */
.recommendation-dialog{
  width:min(880px,94vw);
  max-height:90vh;
  padding:0;
  border:1px solid #a99884;
  background:#f7efe2;
  color:var(--ink);
  box-shadow:0 30px 80px #0006;
}

.recommendation-dialog::backdrop{
  background:#17130fd9;
  backdrop-filter:blur(6px);
}

.recommendation-dialog-close{
  position:absolute;
  right:13px;
  top:9px;
  z-index:3;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#2a241f;
  color:#fff;
  font-size:29px;
  line-height:1;
  cursor:pointer;
}

.recommendation-dialog-grid{
  display:grid;
  grid-template-columns:minmax(190px,270px) minmax(0,1fr);
  min-height:430px;
}

.recommendation-dialog-cover-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:38px 24px;
  background:#e6dccd;
}

.recommendation-dialog-cover-wrap img{
  width:100%;
  max-height:430px;
  object-fit:contain;
  filter:drop-shadow(0 15px 16px rgba(55,38,24,.22));
}

.recommendation-dialog-copy{
  max-height:88vh;
  overflow:auto;
  padding:42px 44px 38px;
}

.recommendation-dialog-kicker{
  margin:0 0 5px;
  color:var(--wine);
  font:700 9px var(--type);
  letter-spacing:.13em;
}

.recommendation-dialog-copy h2{
  margin:0 0 3px;
  font:600 clamp(2.2rem,4vw,3.4rem)/.95 var(--serif);
}

.recommendation-dialog-author{
  margin:0 0 11px;
  color:var(--muted);
  font:italic 1.15rem var(--serif);
}

.recommendation-dialog-section{
  margin-top:24px;
}

.recommendation-dialog-section h3{
  margin:0 0 7px;
  color:var(--wine);
  font:700 9px var(--type);
  letter-spacing:.12em;
  text-transform:uppercase;
}

.recommendation-dialog-section p{
  margin:0;
  white-space:pre-line;
}

.recommendation-dialog-amazon{
  display:inline-block;
  margin-top:27px;
  border:1px solid var(--wine);
  padding:10px 13px;
  color:var(--wine);
  text-decoration:none;
  font:700 9px var(--type);
}

@media(max-width:1000px){
  .recommendations-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:700px){
  .recommendations-grid{
    grid-template-columns:1fr;
  }

  .recommendation-card{
    grid-template-columns:105px minmax(0,1fr);
  }

  .recommendation-dialog-grid{
    grid-template-columns:1fr;
  }

  .recommendation-dialog-cover-wrap{
    padding:28px 22px 15px;
  }

  .recommendation-dialog-cover-wrap img{
    max-height:260px;
  }

  .recommendation-dialog-copy{
    padding:26px 24px 30px;
  }
}
