
@import url('https://fonts.googleapis.com/css2?family=Allura&family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap');

:root{
  --paper:#f5f1e8; --paper2:#ebe5d8; --ink:#1b1d19; --muted:#66685f;
  --olive:#596044; --line:rgba(27,29,25,.17);
  --serif:"Libre Caslon Display","Baskerville","Times New Roman",serif;
  --sans:"DM Sans","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block}
.wrap{width:min(1180px,calc(100% - 52px));margin:auto}
header{position:sticky;top:0;z-index:20;background:rgba(245,241,232,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.nav{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.home .nav{justify-content:flex-end}.brand{font:400 21px var(--serif)}
.menu{display:flex;align-items:center;gap:27px;font-size:11px;letter-spacing:.11em;text-transform:uppercase}
.menu a{padding:8px 0}.nav-cta{border:1px solid var(--ink);padding:11px 14px!important}
.hero{min-height:82vh;display:grid;grid-template-columns:1.35fr .65fr;gap:80px;align-items:center;padding:92px 0 86px}
.eyebrow,.kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--olive);font-weight:600}
.hero h1,.pagehead h1{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;margin:20px 0 0}
.hero h1{font-size:clamp(62px,8vw,118px);line-height:.92;max-width:12ch}
.herocopy{font-family:var(--serif);font-size:clamp(23px,2.35vw,32px);line-height:1.32;max-width:830px;margin:34px 0 0}
.actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:36px}
.btn,.btn2,.textlink{display:inline-flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.btn{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:14px 18px}
.btn2{border:1px solid var(--ink);padding:14px 18px}
.side{border-left:1px solid var(--olive);padding:7px 0 7px 28px;color:var(--muted)}
.side strong{display:block;color:var(--ink);font:400 28px/1.18 var(--serif);margin-bottom:11px}
section{padding:102px 0;border-top:1px solid var(--line)} .soft{background:var(--paper2)} .dark{background:var(--ink);color:var(--paper)}
.dark .kicker{color:#b7bda0}.dark .muted{color:#d0cec5}
.grid2{display:grid;grid-template-columns:.72fr 1.28fr;gap:92px}
.sectiontitle{font:400 clamp(42px,5vw,70px)/1.02 var(--serif);letter-spacing:-.035em;margin:17px 0 0}
.lead{font:400 27px/1.34 var(--serif);margin:28px 0 18px}
.copy{max-width:760px;color:#3c4039}.muted{color:var(--muted)}
.textlink{margin-top:22px;border-bottom:1px solid currentColor;padding-bottom:4px}
.intro{display:grid;grid-template-columns:.82fr 1.18fr;gap:68px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:36px 0}
.intro h2{font:400 36px/1.15 var(--serif);margin:0}
.rows,.services,.principles{margin-top:50px;border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:62px .85fr 1.15fr 22px;gap:24px;padding:29px 0;border-bottom:1px solid var(--line)}
.service,.principle{display:grid;grid-template-columns:62px .82fr 1.18fr;gap:30px;padding:33px 0;border-bottom:1px solid var(--line)}
.n{font-family:var(--serif);color:var(--olive)}
.row h3,.service h3,.principle h3{font:400 30px/1.15 var(--serif);margin:0}
.row p,.service p,.principle p{margin:2px 0 0;color:var(--muted);font-size:15px}
.callout{margin-top:54px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.callout h3{font:400 34px/1.2 var(--serif);margin:0 0 14px}.callout p{max-width:830px;color:var(--muted);margin:0}
.profile{display:grid;grid-template-columns:minmax(320px,.82fr) 1.18fr;gap:82px;align-items:start}
.photo{aspect-ratio:4/5;overflow:hidden;background:#d8d2c6}.photo img{width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:grayscale(100%)}
.pagehead{padding:88px 0 64px}.pagehead h1{font-size:clamp(54px,6.6vw,92px);line-height:.96;max-width:12ch}
.pageintro{max-width:780px;font:400 26px/1.35 var(--serif);margin-top:30px}
.books{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:42px}
.book{min-height:300px;border:1px solid var(--line);padding:24px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(255,255,255,.16)}
.cover{height:190px;border:1px solid var(--line);display:grid;place-items:center;text-align:center;padding:18px;font:400 24px/1.1 var(--serif);background:var(--paper2)}
.book strong{font:400 22px var(--serif)}.book small{color:var(--muted)}
.testimonials{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:48px}
.testimonial{border:1px solid var(--line);padding:34px;background:rgba(255,255,255,.14)}
.testimonial.big p{font:400 29px/1.3 var(--serif);margin:0 0 24px}.testimonial p{margin:0 0 18px}.testimonial small{color:var(--muted)}
.notes{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:44px}
.note{background:var(--paper);padding:32px;min-height:230px}.note small{color:var(--olive);text-transform:uppercase;letter-spacing:.1em}
.note h3{font:400 30px/1.15 var(--serif);margin:22px 0 12px}.note p{color:var(--muted);font-size:15px}
.form{display:grid;gap:12px}.form label{font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.form input,.form textarea,.form select{background:transparent;border:0;border-bottom:1px solid var(--ink);padding:11px 0;font:inherit}.form textarea{min-height:120px}
footer{border-top:1px solid var(--line);padding:32px 0 42px;color:var(--muted);font-size:13px}.footer{display:flex;justify-content:space-between;gap:20px}
@media(max-width:880px){.menu a:not(.nav-cta){display:none}.hero,.grid2,.profile,.testimonials{grid-template-columns:1fr}.hero{min-height:auto;gap:50px}
.row{grid-template-columns:45px 1fr 20px}.row p{grid-column:2/3}.service,.principle{grid-template-columns:45px 1fr}.service p,.principle p{grid-column:2/3}.intro{grid-template-columns:1fr}.books,.notes{grid-template-columns:1fr}}
@media(max-width:560px){.wrap{width:min(100% - 30px,1180px)}.hero h1,.pagehead h1{font-size:52px}section{padding:74px 0}.hero{padding:74px 0}.footer{flex-direction:column}}

.hero-clean{
  grid-template-columns:1fr;
  max-width:1180px;
}
.hero-clean > div{
  max-width:980px;
}
.hero-clean h1{
  max-width:11.5ch;
}

.olive-divider{height:42px;background:var(--ink);}
@media(max-width:560px){.olive-divider{height:30px}}

/* v0.5 — home più corta, pensata come copertina + indice */

.dark-divider{
  height:44px;
  background:var(--ink);
}

.home-intro{
  padding:88px 0;
  border-top:0;
}

.home-intro-copy{
  max-width:900px;
}

.home-intro h2{
  margin:0 0 20px;
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(42px,5vw,66px);
  line-height:1;
  letter-spacing:-.035em;
}

.home-intro p{
  margin:0;
  max-width:830px;
  font-family:var(--serif);
  font-size:27px;
  line-height:1.35;
}

.home-doors{
  padding:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.door-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
}

.door{
  padding:56px 34px 62px;
  border-right:1px solid var(--line);
  min-height:330px;
}

.door:first-child{
  padding-left:0;
}

.door:last-child{
  border-right:0;
  padding-right:0;
}

.door h3{
  margin:20px 0 16px;
  font-family:var(--serif);
  font-size:36px;
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.025em;
}

.door p{
  color:var(--muted);
  max-width:310px;
}

.proof-short{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:80px;
  align-items:start;
}

.mini-proof{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.mini-book{
  min-height:210px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.18);
  padding:22px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  font-family:var(--serif);
  font-size:24px;
  line-height:1.1;
}

.mini-book small{
  margin-top:14px;
  font-family:var(--sans);
  font-size:12px;
  color:var(--muted);
}

.home-contact{
  text-align:center;
  padding:112px 0 120px;
}

.home-contact-inner{
  max-width:860px;
}

.home-contact h2{
  margin:18px 0 0;
  font-family:var(--serif);
  font-size:clamp(48px,6vw,78px);
  font-weight:400;
  line-height:1;
  letter-spacing:-.035em;
}

.home-contact p{
  max-width:700px;
  margin:26px auto 30px;
  color:var(--muted);
  font-family:var(--serif);
  font-size:24px;
  line-height:1.4;
}

@media(max-width:880px){
  .door-grid,
  .proof-short,
  .mini-proof{
    grid-template-columns:1fr;
  }

  .door{
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:44px 0;
    min-height:auto;
  }

  .door:last-child{
    border-bottom:0;
  }

  .mini-book{
    min-height:150px;
  }
}

@media(max-width:560px){
  .home-intro p{
    font-size:23px;
  }

  .dark-divider{
    height:28px;
  }
}

/* v0.5.1 */
.hero-single-link{
  margin-top:30px;
}
.home-contact-light{
  padding:88px 0 96px;
}
.home-contact-light h2{
  margin-bottom:18px;
}

/* v0.5.2 — gerarchie tipografiche e nuova porta "Dicono di me" */
.home-intro .home-name{
  font-size:clamp(34px,3.6vw,48px);
  line-height:1.08;
  letter-spacing:-.025em;
  margin-bottom:18px;
}
.pagehead .chi-title{
  font-size:clamp(46px,5.6vw,76px);
  line-height:.99;
  max-width:13ch;
}
.home-contact-light p{
  max-width:720px;
  margin:24px auto 26px;
  font-family:var(--serif);
  font-size:23px;
  line-height:1.42;
  color:var(--muted);
}

/* v0.5.3 — navigazione coerente */
.menu-unified{
  width:100%;
  display:flex;
  align-items:center;
  gap:25px;
}
.menu-unified .home-link{
  margin-right:0;
}
.menu-unified a{
  padding:8px 0;
  border-bottom:1px solid transparent;
}
.menu-unified a:hover{
  border-color:var(--ink);
}
.menu-unified .nav-cta{
  border:0 !important;
  padding:8px 0 !important;
}
.menu-unified .nav-cta:hover{
  background:transparent !important;
  color:inherit !important;
}
@media(max-width:880px){
  .nav{padding:15px 0;}
  .menu-unified{
    flex-wrap:wrap;
    gap:10px 18px;
    justify-content:flex-start;
  }
  .menu-unified .home-link{
    margin-right:0;
    width:auto;
  }
  .menu-unified a{
    display:inline-block !important;
  }
}

/* v0.5.4 — Home accanto alle altre voci */
.menu-unified{
  justify-content:flex-start;
}

/* v0.5.5 — menu compatto allineato a destra */
.nav{
  justify-content:flex-end;
}
.menu-unified{
  width:auto;
  margin-left:auto;
  justify-content:flex-end;
}
.menu-unified .home-link{
  margin-right:0;
}
@media(max-width:880px){
  .menu-unified{
    width:100%;
    justify-content:flex-end;
  }
}

.direct-email{
  margin-top:34px;
  padding-top:22px;
  border-top:1px solid var(--line);
}
.direct-email span{
  display:block;
  margin-bottom:8px;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.direct-email a{
  font-family:var(--serif);
  font-size:24px;
  border-bottom:1px solid currentColor;
}

/* v0.5.7 — più respiro nel richiamo finale dei Servizi */
.callout{
  padding-left:28px;
  padding-right:28px;
}
@media(max-width:560px){
  .callout{
    padding-left:18px;
    padding-right:18px;
  }
}

/* v0.6 */
.menu-v06{margin-left:auto;width:auto;justify-content:flex-end}
.v06-social{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:start}
.v06-quote{border-top:1px solid var(--line);padding:27px 0}
.v06-quote p{font-family:var(--serif);font-size:27px;line-height:1.35;margin:0 0 16px}
.v06-quote small{color:var(--muted)}
.v06-books{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}
.v06-book{border:1px solid var(--line);padding:18px;min-height:190px;display:flex;flex-direction:column;justify-content:flex-end}
.v06-book strong{font-family:var(--serif);font-size:21px;font-weight:400;line-height:1.1}
.v06-book small{color:var(--muted);margin-top:8px}
.v06-call{text-align:center;padding:112px 0}
.v06-call-inner{max-width:830px}
.v06-call h2{font-family:var(--serif);font-size:clamp(50px,6vw,78px);font-weight:400;line-height:1;margin:18px 0 0}
.v06-call p{font-family:var(--serif);font-size:25px;line-height:1.4;max-width:690px;margin:26px auto 30px}
.v06-light-btn{display:inline-block;border:1px solid var(--paper);padding:14px 18px;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.v06-contact-strip{padding:70px 0}
.v06-contact-inner{display:flex;justify-content:space-between;gap:40px;align-items:end}
.v06-contact-inner h2{font-family:var(--serif);font-size:42px;font-weight:400;margin:15px 0 0}
.v06-email{font-family:var(--serif);font-size:24px;border-bottom:1px solid currentColor}
.v06-booking{display:grid;grid-template-columns:.82fr 1.18fr;gap:90px;align-items:start}
.form{display:grid;gap:13px}
.form label{font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.form input,.form textarea,.form select{background:transparent;border:0;border-bottom:1px solid var(--ink);padding:12px 0;font:inherit;color:var(--ink)}
.form textarea{min-height:120px}
.form-note{font-size:13px;color:var(--muted)}
@media(max-width:900px){.v06-social,.v06-booking{grid-template-columns:1fr}.v06-books{grid-template-columns:1fr}.v06-contact-inner{display:block}.v06-email{display:inline-block;margin-top:22px}}

/* v0.6.4 — separazione coerente + CTA chiamata in oliva */
.hero{
  border-bottom:1px solid var(--line);
}

.v06-olive-btn{
  display:inline-block;
  background:var(--olive);
  color:var(--paper);
  border:1px solid var(--olive);
  padding:14px 19px;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:600;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}

.v06-olive-btn:hover{
  background:var(--paper);
  color:var(--ink);
  border-color:var(--paper);
}

/* v0.6.5 — CTA discreta nel menu + nuova gerarchia Home */
.menu-call{
  background:var(--olive);
  color:var(--paper) !important;
  border:1px solid var(--olive) !important;
  padding:10px 13px !important;
}
.menu-call:hover{
  background:transparent;
  color:var(--ink) !important;
}
.service-intro-home{
  max-width:780px;
  margin-top:22px;
  margin-bottom:0;
}

/* v0.6.6 */
.about-name{
  font-family:var(--sans);
  font-size:22px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
  margin:18px 0 20px;
}
.service[id]{
  scroll-margin-top:96px;
}

/* v0.6.7 — servizi senza numeri + approfondimenti espandibili + Chi sono a font unico */

.home-services-list{
  margin-top:46px;
  border-top:1px solid var(--line);
}
.home-service-row{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:32px;
  padding:27px 0;
  border-bottom:1px solid var(--line);
}
.home-service-row h3{
  margin:0;
  font-family:var(--serif);
  font-size:30px;
  line-height:1.15;
  font-weight:400;
}
.home-service-row p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:15px;
}

.about-single-font{
  font-family:var(--sans);
}
.about-single-font .kicker{
  font-family:var(--sans);
}
.about-single-font .about-name{
  margin:18px 0 20px;
  font-family:var(--sans);
  font-size:20px;
  line-height:1.45;
  font-weight:600;
  letter-spacing:0;
}
.about-single-font p{
  max-width:760px;
  margin:0 0 15px;
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
  color:#3c4039;
}

.service-accordion{
  border-top:1px solid var(--line);
}
.service-detail{
  border-bottom:1px solid var(--line);
}
.service-detail summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:.85fr 1.15fr auto;
  gap:30px;
  align-items:start;
  padding:32px 0;
}
.service-detail summary::-webkit-details-marker{
  display:none;
}
.service-summary-title{
  font-family:var(--serif);
  font-size:30px;
  line-height:1.15;
}
.service-summary-copy{
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
}
.service-summary-action{
  align-self:center;
  white-space:nowrap;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:600;
  border-bottom:1px solid currentColor;
  padding-bottom:3px;
}
.service-detail[open] .service-summary-action{
  font-size:0;
}
.service-detail[open] .service-summary-action::after{
  content:"Riduci −";
  font-size:11px;
}
.service-detail-body{
  max-width:790px;
  margin-left:calc(42.5% + 12px);
  padding:0 0 34px;
  color:#3c4039;
}
.service-detail-body p{
  margin:0 0 14px;
}
.service-detail[id]{
  scroll-margin-top:96px;
}

@media(max-width:900px){
  .home-service-row{
    grid-template-columns:1fr;
    gap:8px;
  }
  .service-detail summary{
    grid-template-columns:1fr;
    gap:12px;
  }
  .service-summary-action{
    justify-self:start;
  }
  .service-detail-body{
    margin-left:0;
  }
}

/* v0.6.9 — continuità tipografica negli approfondimenti dei servizi */
.service-detail-body{
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  color:var(--muted);
}
.service-detail-body p{
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  color:var(--muted);
}

/* v7 — struttura di lancio: Home più pulita, Appunti nascosti, contatti nel footer */

.home-perspective{
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
}
.home-perspective .sectiontitle{
  margin-top:0;
}
.v07-no-kicker-title{
  margin-top:0;
}

.v07-about .about-name{
  margin-top:0;
}
.v07-about p{
  font-family:var(--sans);
}

.footer-contact{
  display:flex;
  align-items:center;
  gap:10px;
}
.footer-contact a{
  border-bottom:1px solid transparent;
}
.footer-contact a:hover{
  border-color:currentColor;
}
.footer-dot{
  opacity:.55;
}

@media(max-width:560px){
  .footer-contact{
    flex-wrap:wrap;
  }
}

/* v7.2 — firma/logo tipografico a sinistra */
.nav{
  justify-content:space-between;
  gap:28px;
}
.site-signature{
  font-family:var(--sans);
  font-size:16px;
  line-height:1.2;
  white-space:nowrap;
  color:var(--ink);
  transform:translateY(1px);
}
.menu,
.menu-v06,
.menu-unified{
  margin-left:auto;
  width:auto;
  justify-content:flex-end;
}

@media(max-width:900px){
  .nav{
    align-items:flex-start;
  }
  .site-signature{
    font-size:15px;
    padding-top:8px;
  }
}

@media(max-width:650px){
  .nav{
    flex-direction:column;
    gap:8px;
    align-items:stretch;
  }
  .site-signature{
    padding-top:10px;
  }
  .menu,
  .menu-v06,
  .menu-unified{
    margin-left:0;
    justify-content:flex-start;
  }
}

/* v7.4 — nome sito nello stesso font del menu */
.site-signature{
  font-family:var(--sans);
  font-weight:600;
  letter-spacing:.02em;
}

/* v7.5 — nome in maiuscolo, peso normale */
.site-signature{
  font-family:var(--sans);
  font-weight:400;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* v7.7 — stesso font nei due capoversi della prospettiva */
.home-perspective .perspective-copy{
  font-family:var(--serif);
}

/* v7.8 — i due capoversi della prospettiva sono tipograficamente identici */
.home-perspective .lead,
.home-perspective .perspective-copy{
  font-family:var(--serif);
  font-size:27px;
  line-height:1.35;
  color:var(--ink);
  margin:28px 0 18px;
  max-width:760px;
}

/* v7.9 — chiusura della prospettiva su riga separata, stessa dimensione */
.home-perspective .perspective-final{
  font-size:27px;
  line-height:1.35;
  margin-top:4px;
  margin-bottom:18px;
}

/* v8 — testimonianze in rotazione + copertine reali */

.testimonials-section{
  overflow:hidden;
}

.testimonials-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:36px;
}

.testimonials-head .sectiontitle{
  max-width:760px;
}

.testimonial-controls{
  display:flex;
  gap:9px;
  flex:0 0 auto;
}

.testimonial-arrow{
  width:42px;
  height:42px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  font:inherit;
  font-size:18px;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}

.testimonial-arrow:hover,
.testimonial-arrow:focus-visible{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
  outline:none;
}

.testimonial-stage{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  margin-top:48px;
  opacity:1;
  transform:translateY(0);
  transition:opacity .5s ease,transform .5s ease;
}

.testimonial-stage.is-fading{
  opacity:0;
  transform:translateY(5px);
}

.testimonial-card{
  min-height:310px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.16);
  padding:34px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.testimonial-card blockquote{
  margin:0;
  font-family:var(--serif);
  font-size:25px;
  line-height:1.36;
  font-weight:400;
}

.testimonial-name{
  margin-top:26px;
  font-family:var(--sans);
  font-size:12px;
  line-height:1.4;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}

.books-block{
  margin-top:72px;
  padding-top:36px;
  border-top:1px solid var(--line);
}

.book-covers{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  margin-top:28px;
  align-items:start;
}

.book-cover-card{
  margin:0;
}

.book-cover-frame{
  aspect-ratio:2/3;
  background:rgba(255,255,255,.2);
  overflow:hidden;
  box-shadow:0 12px 26px rgba(27,29,25,.08);
}

.book-cover-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.book-cover-card figcaption{
  margin-top:15px;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.book-cover-card figcaption strong{
  font-family:var(--serif);
  font-size:20px;
  line-height:1.2;
  font-weight:400;
}

.book-cover-card figcaption span{
  font-family:var(--sans);
  font-size:13px;
  color:var(--muted);
}

@media(max-width:900px){
  .testimonial-card{
    min-height:340px;
  }
  .testimonial-card blockquote{
    font-size:23px;
  }
}

@media(max-width:720px){
  .testimonials-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .testimonial-stage{
    grid-template-columns:1fr;
  }

  .testimonial-card-b{
    display:none;
  }

  .testimonial-card{
    min-height:300px;
  }

  .book-covers{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
  }

  .book-cover-card figcaption strong{
    font-size:16px;
  }

  .book-cover-card figcaption span{
    font-size:11px;
  }
}

@media(max-width:520px){
  .book-covers{
    grid-template-columns:1fr;
    gap:28px;
  }

  .book-cover-frame{
    max-width:230px;
  }
}

@media(prefers-reduced-motion:reduce){
  .testimonial-stage{
    transition:none;
  }
}

/* v8.1 — più recensioni + quattro copertine più discrete */
.book-covers{
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  align-items:flex-start;
  margin-top:28px;
}

.book-cover-card{
  width:165px;
  max-width:165px;
  flex:0 0 165px;
}

.book-cover-frame{
  width:165px;
  aspect-ratio:2/3;
}

.book-cover-card figcaption strong{
  font-size:18px;
}

@media(max-width:720px){
  .book-covers{
    gap:18px;
  }
  .book-cover-card{
    width:145px;
    max-width:145px;
    flex-basis:145px;
  }
  .book-cover-frame{
    width:145px;
  }
}

@media(max-width:420px){
  .book-covers{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .book-cover-card{
    width:auto;
    max-width:none;
    flex-basis:auto;
  }
  .book-cover-frame{
    width:100%;
  }
}

/* v8.2 — pagina "Il mio approccio" */
.approach-section{
  padding-top:8px;
}
.approach-blocks{
  max-width:920px;
}
.approach-block{
  padding:54px 0 60px;
  border-top:1px solid var(--line);
}
.approach-block:first-child{
  border-top:0;
  padding-top:18px;
}
.approach-block h2{
  margin:0 0 26px;
  font-family:var(--serif);
  font-size:clamp(38px,4.6vw,58px);
  line-height:1.02;
  letter-spacing:-.03em;
  font-weight:400;
}
.approach-block p{
  max-width:790px;
  margin:0 0 17px;
  font-family:var(--sans);
  font-size:17px;
  line-height:1.72;
  color:#3c4039;
}
.approach-block p:last-child{
  margin-bottom:0;
}
.approach-block strong{
  font-weight:600;
  color:var(--ink);
}
.approach-actions{
  display:flex;
  gap:28px;
  align-items:center;
  padding:18px 0 84px;
  border-top:1px solid var(--line);
}
@media(max-width:650px){
  .approach-block{
    padding:42px 0 46px;
  }
  .approach-block h2{
    font-size:38px;
  }
  .approach-block p{
    font-size:16px;
    line-height:1.68;
  }
  .approach-actions{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
}

/* v8.4 — nuove aperture Approccio e Contatti */
.contacts-pagehead{
  padding-bottom:42px;
}
.contacts-intro{
  max-width:760px;
  margin:26px 0 0;
  font-family:var(--serif);
  font-size:26px;
  line-height:1.4;
}
.contacts-intro a{
  border-bottom:1px solid currentColor;
}
.contact-note{
  padding-top:4px;
}

/* v10 — prenotazione reale chiamata gratuita */
.booking-panel{
  border-top:1px solid var(--line);
  padding-top:28px;
}
.booking-panel h2{
  margin:14px 0 18px;
  font-family:var(--serif);
  font-size:34px;
  line-height:1.12;
  font-weight:400;
}
.booking-panel p{
  max-width:560px;
  line-height:1.65;
  color:var(--muted);
}
.booking-btn{
  display:inline-block;
  margin:12px 0 16px;
  text-decoration:none;
}

/* v10.2 — spaziatura dettagli chiamata + recensione Federica rivista */
.credentials{
  display:grid;
  gap:20px;
  margin-top:28px;
}
.cred{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:22px;
  align-items:start;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.cred strong{
  display:block;
}
.cred span{
  display:block;
  line-height:1.55;
}
@media(max-width:600px){
  .cred{
    grid-template-columns:1fr;
    gap:6px;
  }
}

/* v10.3 — recensione Federica letterale + spaziatura dettagli chiamata */
.credentials{
  gap:22px;
  margin-top:30px;
}
.cred{
  grid-template-columns:120px 1fr;
  column-gap:26px;
  row-gap:6px;
  padding:18px 0 0;
}

/* v10.4 — modulo Contatti pronto per Netlify Forms */
.form-honeypot{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
.form input:focus,
.form select:focus,
.form textarea:focus{
  outline:2px solid rgba(89,96,68,.35);
  outline-offset:2px;
}

/* v10.5 — informativa privacy */
.form-note a,
.booking-panel .form-note a{
  border-bottom:1px solid currentColor;
}
.privacy-pagehead{
  padding-bottom:46px;
}
.privacy-section{
  padding-top:0;
}
.privacy-copy{
  max-width:900px;
  padding-bottom:88px;
}
.privacy-copy h2{
  margin:0;
  padding-top:38px;
  border-top:1px solid var(--line);
  font-family:var(--serif);
  font-size:32px;
  line-height:1.15;
  font-weight:400;
}
.privacy-copy h2:first-child{
  border-top:0;
  padding-top:0;
}
.privacy-copy p,
.privacy-copy li{
  max-width:790px;
  font-size:16px;
  line-height:1.72;
  color:#3c4039;
}
.privacy-copy p{
  margin:14px 0 22px;
}
.privacy-copy ul{
  margin:12px 0 24px;
  padding-left:22px;
}
.privacy-copy a{
  border-bottom:1px solid currentColor;
}
.privacy-updated{
  margin-top:46px !important;
  font-size:13px !important;
  color:var(--muted) !important;
}
@media(max-width:650px){
  .privacy-copy h2{
    font-size:28px;
  }
}

/* v10.6 — copertine libri salvate localmente in assets */

/* v10.7 — SEO, semantica e performance */
.services-seo-intro{
  max-width:790px;
  margin:26px 0 0;
  font-family:var(--sans);
  font-size:18px;
  line-height:1.65;
  color:var(--muted);
}
.pagehead h1.contacts-intro{
  max-width:760px;
  margin:26px 0 0;
  font-family:var(--serif);
  font-size:26px;
  line-height:1.4;
  letter-spacing:0;
  font-weight:400;
}

/* v11 — correzione chirurgica menu tablet/mobile: nessuna modifica desktop */
@media(max-width:880px){
  .menu.menu-v06{
    flex-wrap:wrap;
    row-gap:4px;
  }
  .menu.menu-v06 a{
    display:inline-flex;
  }
}


/* v11.2 — solo mobile: testimonianze scorrevoli con swipe.
   Desktop e tablet restano invariati. */
.testimonial-mobile-strip{
  display:none;
}

@media(max-width:720px){
  .desktop-testimonial-stage-hidden-on-mobile{
    display:none !important;
  }

  .testimonial-mobile-strip{
    display:flex;
    overflow-x:auto;
    gap:16px;
    margin-top:34px;
    padding:0 0 14px;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
  }

  .testimonial-mobile-strip::-webkit-scrollbar{
    display:none;
  }

  .testimonial-mobile-card{
    flex:0 0 calc(100% - 34px);
    min-height:300px;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }

  .testimonial-controls{
    display:none;
  }
}


/* v11.3 — solo mobile: anche le copertine scorrono orizzontalmente con swipe.
   Tutto il resto resta identico alla v11.2. */
@media(max-width:720px){
  .book-covers{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    gap:16px;
    margin-top:28px;
    padding:0 0 14px;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
  }

  .book-covers::-webkit-scrollbar{
    display:none;
  }

  .book-cover-card{
    flex:0 0 150px;
    width:150px;
    max-width:150px;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }

  .book-cover-frame{
    width:150px;
  }
}

@media(max-width:420px){
  .book-covers{
    display:flex;
    grid-template-columns:none;
  }

  .book-cover-card{
    width:150px;
    max-width:150px;
    flex:0 0 150px;
  }

  .book-cover-frame{
    width:150px;
  }
}

/* v11.5 — prova visiva: header marrone caldo/desaturato.
   Tutto il resto resta identico alla v11.3. */
header{
  background:#5a463a;
  border-bottom:1px solid rgba(245,241,232,.16);
}
.site-signature,
.menu a{
  color:#f5f1e8;
}
.menu a:hover{
  border-color:#f5f1e8;
}
.menu-call{
  background:#f1ecdf !important;
  color:#3c3029 !important;
  border-color:#f1ecdf !important;
}
.menu-call:hover,
.menu-call:focus-visible{
  background:transparent !important;
  color:#f5f1e8 !important;
  border-color:#f5f1e8 !important;
}
