/* ============================================================
   TEMPLATE PREMIUM MULTI-SETTORE — foglio unico
   La palette arriva dalla config del settore (:root{
  --chiaro:#fffdfa; --tinta:#f4efe8; --riga:#ece4d9; --inchiostro:#1d1a17; --testo-2:#463f38;
  --fumo:#6c635b; --accento:#6e2f34; --scuro:#1d1a17; --cta-testo:#fdf8f2; --wa:#25d366;
  --serif:"DM Serif Display",Georgia,serif; --sans:"DM Sans",system-ui,sans-serif;
  --radius-pill:999px; --radius-foto:140px 140px 20px 20px; --radius-foto-mobile:90px 90px 16px 16px;
}
).
   ============================================================ */
:root{
  --chiaro:#fffdfa; --tinta:#f4efe8; --riga:#ece4d9; --inchiostro:#1d1a17; --testo-2:#463f38;
  --fumo:#6c635b; --accento:#6e2f34; --scuro:#1d1a17; --cta-testo:#fdf8f2; --wa:#25d366;
  --serif:"DM Serif Display",Georgia,serif; --sans:"DM Sans",system-ui,sans-serif;
  --radius-pill:999px; --radius-foto:140px 140px 20px 20px; --radius-foto-mobile:90px 90px 16px 16px;
}


*,
*::before,
*::after{box-sizing:border-box}
html{background:var(--scuro);scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--inchiostro);background:var(--chiaro);
  -webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
main{flex:1 0 auto}
p,li,td,h1,h2,h3{overflow-wrap:anywhere}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.sr-solo{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
h1,h2,h3{font-family:var(--serif);font-weight:var(--peso-titoli,400);line-height:1.04;letter-spacing:-.015em;margin:0}
h1{font-size:clamp(2rem,5.6vw,4.6rem)}
h2{font-size:clamp(1.7rem,3.6vw,3rem)}
h3{font-size:1.24rem;line-height:1.15}
p{line-height:1.65}
.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accento);font-weight:700;margin:0 0 .6rem}
.nota{font-size:.82rem;color:var(--fumo)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;
  font-weight:600;padding:16px 28px;border-radius:var(--radius-pill);min-height:48px;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.btn-primario{background:var(--wa);color:#0b2b1c}
.btn-primario:hover{background:#1eb85a;transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(37,211,102,.85)}
.btn-fantasma{color:inherit;border-bottom:1.5px solid var(--accento);padding:14px 2px;border-radius:0}
.btn-fantasma:hover{color:var(--accento)}

/* ---------- badge anteprima ---------- */
.badge{position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:80;background:var(--scuro);
  color:#f4efe8;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;padding:6px 14px;
  border-radius:0 0 8px 8px;pointer-events:none}

/* ---------- navbar ---------- */
.nav{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--chiaro) 92%,transparent);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--riga)}
.nav-in{display:flex;align-items:center;gap:clamp(12px,2.4vw,34px);min-height:74px}
.marca{text-decoration:none;line-height:1.05}
.marca strong{display:block;font-family:var(--serif);font-size:1.24rem;font-weight:400}
.marca small{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accento);margin-top:3px}
.nav-link{display:flex;gap:clamp(12px,1.6vw,24px);margin-left:auto}
.nav-link a{text-decoration:none;font-size:.9rem;font-weight:500;padding:6px 0;border-bottom:1.5px solid transparent;min-height:44px;display:inline-flex;align-items:center}
.nav-link a:hover{border-bottom-color:var(--accento)}
.burger{display:none;background:#fff;border:1px solid var(--riga);border-radius:10px;padding:0;
  min-width:48px;min-height:46px;font-size:.72rem;letter-spacing:.12em;font-weight:700;align-items:center;justify-content:center;gap:6px}
.burger:after{content:"☰";font-size:1rem;letter-spacing:0}
body.menu-aperto .burger{background:var(--scuro);color:#fff}
.lang-wrap{position:relative;display:inline-flex;align-items:center}
.lang-sel{appearance:none;background:#fff;border:1px solid var(--riga);border-radius:9px;
  padding:9px 30px 9px 12px;font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.06em;
  color:var(--inchiostro);min-height:42px;cursor:pointer}
.lang-wrap:after{content:"";position:absolute;right:12px;width:7px;height:7px;pointer-events:none;
  border-right:1.6px solid var(--fumo);border-bottom:1.6px solid var(--fumo);transform:rotate(45deg);margin-top:-3px}
@media (max-width:900px){
  .nav-in{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"marca lang burger";
    gap:10px;min-height:64px;padding-top:10px;padding-bottom:10px}
  .marca{grid-area:marca;min-width:0}
  .marca strong{font-size:1rem;line-height:1.15}
  .marca small{font-size:.56rem}
  .lang-wrap{grid-area:lang}
  .burger{grid-area:burger;display:inline-flex}
  .nav-link{grid-column:1/-1;display:none;flex-direction:column;gap:0;width:100%
    ;border-top:1px solid var(--riga);padding-top:4px;margin:4px 0 6px}
  body.menu-aperto .nav-link{display:flex}
  .nav-link a{padding:14px 2px;border-bottom:1px solid var(--riga);font-size:1rem;min-height:48px}
}
@media (min-width:901px){ .nav-link{margin-left:auto} }

/* ---------- hero ---------- */
.hero{padding:clamp(26px,4.4vw,60px) 0 clamp(38px,6vw,86px);background:linear-gradient(180deg,var(--chiaro),var(--tinta))
  ;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(24px,4vw,60px);align-items:center}
.hero h1{margin:.4rem 0 1.1rem;max-width:16ch}
.hero h1 em{font-style:italic;color:var(--accento)}
.hero .lead{font-size:clamp(1rem,1.5vw,1.2rem);color:var(--testo-2);max-width:46ch;margin:0 0 1.7rem}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-nota{margin:16px 0 0;font-size:.72rem;color:var(--fumo)}
.hero-foto{position:relative}
.hero-foto img{width:100%;height:clamp(340px,48vw,540px);object-fit:cover;border-radius:var(--radius-foto);
  box-shadow:0 30px 60px -30px rgba(20,18,16,.45)}
.timbro{position:absolute;left:-12px;bottom:24px;background:var(--chiaro);border:1px solid var(--riga);
  border-radius:16px;padding:14px 18px;max-width:230px;box-shadow:0 18px 34px -22px rgba(20,18,16,.5)}
.timbro strong{display:block;font-family:var(--serif);font-size:1.5rem;line-height:1}
.timbro span{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--fumo)}

/* ---------- prove ---------- */
.prove{border-top:1px solid var(--riga);border-bottom:1px solid var(--riga)}
.prove-in{display:grid;grid-template-columns:repeat(4,1fr)}
.prove-in div{padding:22px clamp(12px,2vw,26px);border-left:1px solid var(--riga)}
.prove-in div:first-child{border-left:0}
.prove-in strong{display:block;font-family:var(--serif);font-size:1.7rem;line-height:1}
.prove-in span{font-size:.74rem;color:var(--fumo)}

/* ---------- sezioni ---------- */
.sez{padding:clamp(52px,7.5vw,104px) 0}
.sez.alt{background:var(--tinta)}
.intestazione{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;
  margin-bottom:clamp(26px,3.6vw,48px)}
.intestazione h2{margin:0;max-width:22ch}
.intestazione p{margin:0;color:var(--fumo);max-width:38ch;font-size:.95rem}

/* manifesto */
.manifesto{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4.6vw,68px);align-items:center}
.manifesto figure{margin:0;position:relative}
.manifesto img{width:100%;height:440px;object-fit:cover;border-radius:14px}
.manifesto figcaption{position:absolute;right:-14px;bottom:-14px;background:var(--scuro);color:#f4efe8;
  font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:10px 15px;border-radius:9px}
.firme{display:flex;gap:26px;margin-top:26px;flex-wrap:wrap}
.firme div{border-left:2px solid var(--accento);padding-left:12px}
.firme strong{display:block;font-family:var(--serif);font-size:1.45rem;line-height:1}
.firme span{font-size:.74rem;color:var(--fumo)}

/* servizi */
.serv{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(15px,2.2vw,24px)}
.card{background:#fff;border:1px solid var(--riga);border-radius:16px;padding:clamp(20px,2.8vw,30px);
  display:flex;flex-direction:column;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 24px 44px -30px rgba(20,18,16,.5)}
.card .num{font-family:var(--serif);font-size:.86rem;color:var(--accento);letter-spacing:.12em;margin-bottom:13px}
.card h3{margin:0 0 9px}
.card p{color:var(--fumo);font-size:.93rem;margin:0 0 18px;flex:1}
.card .freccia{font-weight:600;font-size:.88rem;border-bottom:1.5px solid var(--accento);align-self:flex-start;padding-bottom:2px}

/* passi */
.passi{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.8vw,34px);counter-reset:p}
.passo{position:relative;padding-top:32px;border-top:1px solid var(--riga)}
.passo:before{counter-increment:p;content:counter(p);position:absolute;top:-18px;left:0;background:var(--chiaro);
  padding-right:12px;font-family:var(--serif);font-size:1.9rem;color:var(--accento)}
.passo h3{margin:0 0 7px}
.passo p{margin:0;color:var(--fumo);font-size:.93rem}

/* galleria */
.galleria{columns:3;column-gap:14px}
.galleria figure{margin:0 0 14px;break-inside:avoid;position:relative;border-radius:12px;overflow:hidden}
.galleria figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 13px 11px;font-size:.7rem;color:#fff;
  background:linear-gradient(transparent,rgba(16,14,12,.72))}

/* recensioni */
.rec{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(15px,2.2vw,22px)}
.rec blockquote{margin:0;background:#fff;border:1px solid var(--riga);border-radius:16px;padding:clamp(20px,2.8vw,28px);
  display:flex;flex-direction:column;justify-content:space-between}
.rec p{font-family:var(--serif);font-size:1.1rem;line-height:1.45;margin:0 0 16px}
.rec cite{font-style:normal;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fumo)}
.rec .stelle{color:var(--accento);letter-spacing:.15em;font-size:.78rem;margin-bottom:10px}

/* teaser listino */
.teaser{display:flex;justify-content:space-between;align-items:center;gap:clamp(18px,4vw,44px);
  background:#fff;border:1px solid var(--riga);border-radius:18px;padding:clamp(22px,3.6vw,38px);flex-wrap:wrap}
.teaser h2{margin:.3rem 0 9px;max-width:24ch}
.teaser p{margin:0;color:var(--fumo);max-width:52ch;font-size:.96rem}
.teaser-link{display:inline-flex;flex-direction:column;gap:2px;background:var(--scuro);color:#fff;text-decoration:none;
  padding:17px 28px;border-radius:var(--radius-pill);flex:0 0 auto;min-height:56px;justify-content:center}
.teaser-link:hover{background:var(--accento)}
.teaser-link small{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#cfc6bb}

/* dove siamo */
.dove{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(20px,3vw,40px);align-items:start}
.orari{list-style:none;margin:0;padding:0}
.orari li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px dashed var(--riga);font-size:.94rem}
.orari li span{color:var(--fumo);font-variant-numeric:tabular-nums}
.mappa-card{background:#fff;border:1px solid var(--riga);border-radius:16px;padding:clamp(20px,3vw,28px);text-align:center}
.mappa-card h3{margin:8px 0 6px}
.mappa-card p{margin:0 0 16px;color:var(--fumo);font-size:.9rem}
.btn-mappa{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--scuro);color:#fff;
  text-decoration:none;font-weight:600;font-size:.9rem;padding:13px 22px;border-radius:var(--radius-pill);min-height:46px}
.btn-mappa:hover{opacity:.88}
.esterni{margin-top:clamp(26px,3.6vw,44px);padding-top:clamp(20px,3vw,30px);border-top:1px solid var(--riga)}
.esterni-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:14px}
.logo{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--riga);border-radius:13px;
  padding:13px 15px;text-decoration:none;min-height:74px;transition:transform .16s ease,box-shadow .16s ease}
.logo:hover{transform:translateY(-2px);box-shadow:0 18px 30px -24px rgba(20,18,16,.55)}
.logo img{width:34px;height:34px;object-fit:contain;flex:0 0 auto}
.logo b{display:block;font-size:.9rem;line-height:1.2}
.logo small{display:block;font-size:.7rem;color:var(--fumo);line-height:1.3;margin-top:2px}

/* faq */
.faq{max-width:820px;margin:0 auto}
.faq details{border-bottom:1px solid var(--riga);padding:6px 0}
.faq summary{cursor:pointer;font-family:var(--serif);font-size:1.18rem;list-style:none;
  display:flex;justify-content:space-between;gap:14px;min-height:52px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";color:var(--accento);font-family:var(--sans)}
.faq details[open] summary:after{content:"–"}
.faq p{margin:0 0 14px;color:var(--fumo);font-size:.95rem}

/* cta finale */
.cta-finale{background:var(--accento);color:var(--cta-testo);padding:clamp(52px,7.5vw,90px) 0;text-align:center}
.cta-finale h2{max-width:24ch;margin:0 auto 13px;color:inherit}
.cta-finale p{max-width:52ch;margin:0 auto 26px;opacity:.92}
.mini-cta{margin:16px 0 0;font-size:.9rem}
.mini-cta a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* footer */
.footer{background:var(--scuro);color:#b9b0a6;padding:clamp(36px,5vw,58px) 0 22px;font-size:.87rem}
.footer-in{padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.12);display:grid;gap:20px}
.footer strong{display:block;color:#fff;font-family:var(--serif);font-size:1.3rem;margin-bottom:9px}
.footer a{color:#e3dbd1;text-decoration:none}
.footer a:hover{color:#fff;text-decoration:underline}
.footer .mini{font-size:.76rem;color:#8f867d;max-width:60ch;margin:10px 0 0}
.basso{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:16px;font-size:.76rem;color:#8f867d}
.basso a{display:inline-block;padding:6px 0}

/* ---------- tablet ---------- */
@media (max-width:980px){
  .hero-grid,.manifesto,.dove{grid-template-columns:1fr;gap:26px}
  .hero h1{font-size:clamp(1.8rem,8vw,2.9rem);max-width:100%}
  .hero .lead{max-width:100%}
  .hero-foto img{height:auto;border-radius:var(--radius-foto-mobile)}
  .timbro{position:static;margin-top:-32px;margin-left:10px;display:inline-block}
  .serv,.rec,.passi{grid-template-columns:1fr 1fr}
  .galleria{columns:2}
  .prove-in{grid-template-columns:1fr 1fr}
  .prove-in div:nth-child(3){border-left:0}
  .manifesto img{height:auto}
  .manifesto figcaption{position:static;display:inline-block;margin-top:10px;right:auto;bottom:auto}
  .esterni-grid{grid-template-columns:1fr}
  .intestazione{flex-direction:column;align-items:flex-start;gap:10px}
  .intestazione p{max-width:100%}
}
/* ---------- smartphone ---------- */
@media (max-width:640px){
  .serv,.rec,.passi,.prove-in{grid-template-columns:1fr}
  .galleria{columns:1}
  .prove-in div{border-left:0;border-top:1px solid var(--riga);padding:14px 0}
  .teaser{flex-direction:column;align-items:flex-start}
  .teaser-link{width:100%;align-items:center}
  .btn{width:100%;max-width:360px}
  .hero-cta .btn{width:100%}
  .sez{padding:44px 0}
}
@media (hover:none) and (pointer:coarse){
  .nav-link a,.footer a,.logo,.card,.teaser-link,.btn-mappa{min-height:46px}
  a[href^="tel:"],.mini-cta a,.nota a{display:inline-flex;align-items:center;min-height:44px;padding:11px 6px}
  .lista-link a{display:flex;align-items:center;min-height:46px}
  .marca{min-height:46px;display:inline-flex;flex-direction:column;justify-content:center}
  .basso a{padding:9px 6px;min-width:44px}
}

/* ---------- PAGINE INTERNE ---------- */
.testata{background:linear-gradient(180deg,var(--chiaro),var(--tinta));padding:clamp(32px,5vw,62px) 0 clamp(28px,4vw,50px);
  border-bottom:1px solid var(--riga)}
.testata h1{font-size:clamp(2rem,5vw,3.6rem);margin:.5rem 0 0;max-width:20ch}
.testata .lead{font-size:clamp(.98rem,1.4vw,1.14rem);color:var(--testo-2);max-width:56ch;margin:16px 0 0}
.nav-link a.attivo{border-bottom-color:var(--accento);color:var(--inchiostro)}
.lista{list-style:none;margin:18px 0 0;padding:0}
.lista li{position:relative;padding:9px 0 9px 24px;border-bottom:1px solid var(--riga);font-size:.95rem}
.lista li:before{content:"";position:absolute;left:0;top:17px;width:7px;height:7px;border-radius:50%;background:var(--accento)}
.lista-link{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:2px 24px}
.lista-link li{border-bottom:1px solid var(--riga);padding:12px 0}
.lista-link a{text-decoration:none;font-weight:500}
.lista-link a:hover{color:var(--accento)}
.avviso{background:#fdf3e7;border:1px solid #ecd6b8;border-radius:14px;padding:18px 20px;font-size:.94rem;
  color:#5c4a34;margin-bottom:26px}
.avviso strong{display:block;margin-bottom:4px;color:#8a5a1c}
.legale h2{margin:26px 0 8px;font-size:1.45rem}
.legale p{margin:0 0 6px;color:var(--testo-2)}
.list-tit{font-family:var(--serif);font-size:1.45rem;margin:32px 0 12px}
.tab{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}
.tab th,.tab td{text-align:left;padding:14px clamp(12px,2vw,20px);border-bottom:1px solid var(--riga);font-size:.94rem}
.tab th{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accento);background:var(--tinta)}
.tab tr:last-child td{border-bottom:0}
.tab td.dur{color:var(--fumo);white-space:nowrap}
.tab td.prezzo{font-weight:600;white-space:nowrap;color:var(--accento)}
@media (max-width:760px){
  .tab,.tab thead,.tab tbody,.tab tr,.tab td{display:block}
  .tab thead{display:none}
  .tab tr{background:#fff;border:1px solid var(--riga);border-radius:12px;padding:12px 14px;margin-bottom:10px}
  .tab td{border:0;padding:2px 0}
  .tab td:first-child{font-weight:600}
  .tab td.dur,.tab td.prezzo{display:inline-block;margin-right:14px;font-size:.88rem}
  .tab td:empty{display:none}
  .lista-link{grid-template-columns:1fr}
}

/* layout senza foto: una colonna, testo leggibile */
.manifesto.testo-solo{grid-template-columns:1fr;max-width:760px}
.manifesto.testo-solo .testo{max-width:68ch}

/* ---------- badge mobile: niente sovrapposizione alla marca ---------- */
@media (max-width:640px){
  .badge{position:static;left:auto;top:auto;transform:none;display:block;
    text-align:center;border-radius:0;letter-spacing:.14em;padding:6px 10px}
}

/* ---------- dati utili dalla scheda (pagamenti, servizi) ---------- */
.extra{max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,40px) clamp(30px,5vw,60px);
  display:grid;gap:clamp(18px,3vw,40px);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.extra h3{font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--testo-2);margin:0 0 .6rem;font-weight:600}
.extra .punti{margin:0;padding:0;list-style:none}
.extra .punti li{padding:.35rem 0;border-bottom:1px solid var(--riga);font-size:.95rem}


/* ===== VOLUME 2 ===== */
/* ==========================================================================
   VOLUME 2 — rifinitura premium del motore (vale per tutti i settori)
   Si aggiunge a template.css: alza tipografia, ritmo, galleria, recensioni,
   barra d'azione mobile e comparse allo scorrimento. Reversibile: basta
   togliere questo file dal build.
   ========================================================================== */

:root{
  --ease: cubic-bezier(.22,.61,.36,1);
  --ombra-forte: 0 42px 80px -46px rgba(24,18,12,.55);
  --ombra-media: 0 18px 40px -28px rgba(24,18,12,.45);
}

html{ scroll-behavior: smooth; }
::selection{ background: var(--accento); color: var(--cta-testo); }
a:focus-visible, button:focus-visible, summary:focus-visible, select:focus-visible{
  outline: 2px solid var(--accento); outline-offset: 3px; border-radius: 4px;
}

/* ---------- testata ---------- */
.nav{ backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px);
      border-bottom: 1px solid var(--riga); }
.nav-in{ min-height: 78px; }
.marca strong{ font-size: 1.24rem; letter-spacing: -.012em; }
.marca small{ letter-spacing: .19em; text-transform: uppercase; font-size: .58rem; opacity: .62; }
.nav-link a{ letter-spacing: .01em; }

/* ---------- occhiello con filetto ---------- */
.eyebrow{ display: inline-flex; align-items: center; gap: 10px; }
.eyebrow::before{ content: ""; width: 26px; height: 1px; background: currentColor; opacity: .55; flex: none; }

/* ---------- hero ---------- */
.hero h1{
  font-size: clamp(2.55rem, 6vw, 4.6rem);
  line-height: .97;
  letter-spacing: -.028em;
  max-width: 15ch;
  text-wrap: balance;
}
.hero .lead{ text-wrap: pretty; }
.hero-cta .btn{ font-size: .98rem; }
.hero-foto img{
  border-radius: var(--radius-foto);
  box-shadow: var(--ombra-forte);
  object-position: 50% 42%;
}
.hero-foto .timbro{ backdrop-filter: blur(8px); }

@media (min-width: 1000px){
  .hero{ padding: clamp(34px, 4.2vw, 62px) 0 clamp(52px, 6.2vw, 92px); }
  .hero-grid{ gap: clamp(36px, 5.2vw, 78px); align-items: end; }
  .hero-foto img{ height: clamp(480px, 62vh, 640px); }
}

/* ---------- numeri di prova ---------- */
.prove-in{ align-items: stretch; }
.prove-in div{ padding: clamp(20px, 2.8vw, 32px) clamp(12px, 2vw, 26px); }
.prove-in strong{ font-size: clamp(1.85rem, 3.2vw, 2.5rem); letter-spacing: -.025em; }
.prove-in span{ display: block; margin-top: 7px; font-size: .64rem; letter-spacing: .13em;
                text-transform: uppercase; color: var(--fumo); }

/* ---------- intestazioni di sezione ---------- */
.intestazione h2{ font-size: clamp(1.9rem, 4.2vw, 3rem); line-height: 1.03; letter-spacing: -.024em; text-wrap: balance; }
.intestazione p{ line-height: 1.55; }

/* ---------- servizi ---------- */
.serv .card{ position: relative; transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.serv .card .num{ font-family: var(--serif); letter-spacing: .02em; }
.serv .card:hover{ transform: translateY(-4px); box-shadow: var(--ombra-media); }

/* ---------- galleria: griglia editoriale, niente buchi ---------- */
@media (min-width: 820px){
  .galleria{
    columns: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-flow: dense;
    gap: 12px;
  }
  .galleria figure{ margin: 0; height: 100%; }
  .galleria figure img{
    width: 100%; height: 100%; display: block;
    aspect-ratio: 1 / 1; object-fit: cover;
    transition: transform .9s var(--ease);
  }
  .galleria figure.grande{ grid-column: span 2; grid-row: span 2; }
  .galleria figure.grande img{ aspect-ratio: auto; }
  .galleria figure:hover img{ transform: scale(1.045); }
}

/* ---------- recensioni: una voce guida, poi il resto ---------- */
.rec{ grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 40px); }
.rec blockquote{
  margin: 0; background: none; border: 0; border-left: 1px solid var(--riga);
  border-radius: 0; box-shadow: none; padding: 0 0 0 clamp(18px, 2.4vw, 28px);
}
.rec blockquote:first-child{ border-left: 0; padding-left: 0; }
.rec blockquote p{ font-family: var(--serif); font-size: clamp(1.08rem, 1.5vw, 1.28rem);
                   line-height: 1.42; letter-spacing: -.004em; }
.rec blockquote.guida{ grid-column: span 2; border-left: 0; padding-left: 0;
                       margin-bottom: clamp(22px, 3vw, 34px); }
.rec blockquote.guida p{ font-size: clamp(1.4rem, 2.5vw, 1.95rem); line-height: 1.26;
                         letter-spacing: -.018em; text-wrap: pretty; }
@media (max-width: 760px){
  .rec{ grid-template-columns: 1fr; }
  .rec blockquote, .rec blockquote.guida{ grid-column: auto; border-left: 0; padding-left: 0;
    border-top: 1px solid var(--riga); padding-top: 20px; margin-bottom: 0; }
  .rec blockquote:first-child{ border-top: 0; padding-top: 0; }
}

/* ---------- chiamata finale ---------- */
.cta-finale h2{ font-size: clamp(1.95rem, 4.6vw, 3.35rem); line-height: 1.02; letter-spacing: -.026em; text-wrap: balance; }
.cta-finale .btn{ padding: 16px 30px; font-size: 1rem; }

/* ---------- compara allo scorrimento ---------- */
.riv{ opacity: 0; transform: translateY(20px);
      transition: opacity .8s var(--ease), transform .8s var(--ease); }
.riv.vis{ opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){
  .riv{ opacity: 1 !important; transform: none !important; transition: none !important; }
  html{ scroll-behavior: auto; }
}

/* ---------- badge bozza: discreto, non copre la testata ---------- */
.badge{
  top: auto; bottom: 14px; left: 14px; transform: none;
  background: rgba(22,19,16,.78); color: #fff;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border-radius: 999px; padding: 7px 13px; font-size: .58rem;
  letter-spacing: .16em; opacity: .88; z-index: 90;
}

/* ---------- barra d'azione mobile ---------- */
.barra-mobile{ display: none; }
@media (max-width: 820px){
  body{ padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .barra-mobile{
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 95;
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
    background: color-mix(in srgb, var(--chiaro) 94%, transparent);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid var(--riga);
    box-shadow: 0 -10px 30px -22px rgba(0,0,0,.5);
  }
  .barra-mobile .bm{
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 3px; min-height: 50px; padding: 5px 2px; border-radius: 11px;
    text-decoration: none; color: var(--inchiostro);
    font-size: .66rem; letter-spacing: .05em; text-transform: uppercase;
  }
  .barra-mobile .bm svg{ width: 21px; height: 21px; fill: currentColor; display: block; }
  .barra-mobile .bm:active{ background: var(--tinta); }
  .barra-mobile .bm-wa{ background: #e7fbf0; color: #0a4028; }
  .barra-mobile .bm-wa img{ display: block; }
  .badge{ bottom: calc(84px + env(safe-area-inset-bottom)); left: 10px; padding: 6px 11px; font-size: .54rem; }
}

/* ---------- stampa ---------- */
@media print{
  .barra-mobile, .cta-finale .btn, .hero-cta{ display: none !important; }
  .riv{ opacity: 1 !important; transform: none !important; }
}

/* ---------- listino: prezzi veri, raggruppati ---------- */
.tab-listino{ width: 100%; border-collapse: collapse; }
.tab-listino tr.gruppo th{
  font-family: var(--serif); font-size: 1.05rem; font-weight: 400; text-align: left;
  padding: 26px 0 8px; border-bottom: 1px solid var(--inchiostro); letter-spacing: .01em;
}
.tab-listino tr.gruppo:first-child th{ padding-top: 6px; }
.tab-listino td{ padding: 12px 0; border-bottom: 1px solid var(--riga); vertical-align: top; }
.tab-listino td:last-child{ text-align: right; white-space: nowrap; }
.tab-listino td small{ display: block; opacity: .62; font-size: .78rem; margin-top: 3px; line-height: 1.35; }
.teaser-lista{ list-style: none; margin: 20px 0 0; padding: 0; }
.teaser-lista li{ display: flex; justify-content: space-between; gap: 18px; align-items: baseline;
                  padding: 9px 0; border-bottom: 1px solid var(--riga); font-size: .95rem; }
.teaser-lista li b{ font-weight: 600; white-space: nowrap; }

/* hero senza fotografia: una sola colonna, niente mezzo schermo vuoto */
.hero-grid.senza-foto{ grid-template-columns: minmax(0,1fr) !important; max-width: 720px; }
.hero-grid.senza-foto h1{ max-width: 20ch; }

/* listino su mobile: i gruppi sono intestazioni, non schede */
@media (max-width: 720px){
  .tab-listino tr.gruppo, .tab-listino tr.gruppo td, .tab-listino tr.gruppo th{
    background: none !important; border: 0 !important; box-shadow: none !important;
  }
  .tab-listino tr.gruppo th{
    padding: 22px 0 8px; font-family: var(--sans, inherit); font-size: .72rem; font-weight: 600;
    letter-spacing: .18em; text-transform: uppercase; color: var(--accento);
  }
  .tab-listino tr.gruppo:first-child th{ padding-top: 4px; }
}

/* ---------- scroll & motion (progressivo) ---------- */
body::before{ content:""; position:fixed; top:0; left:0; width:100%; height:2px; z-index:120;
  background:var(--accento); transform:scaleX(0); transform-origin:0 50%; pointer-events:none; }
@supports (animation-timeline: scroll(root block)){
  body::before{ animation:barra-cresce linear both; animation-timeline:scroll(root block); }
  @keyframes barra-cresce{ from{ transform:scaleX(0) } to{ transform:scaleX(1) } }
}

/* immagine che si apre man mano che entra nello schermo */
[data-expand]{ --p:0; width:calc(86% + 14% * var(--p)); margin-inline:auto; overflow:hidden; }
[data-expand] img{
  width:calc(100% / 1.16); margin-inline:auto;
  transform:scale(calc(1 + 0.16 * var(--p)));
  clip-path:inset(calc((1 - var(--p)) * 5%) calc((1 - var(--p)) * 4%) round 26px);
}
.manifesto figure{ overflow:hidden; }

/* parallasse sulle fotografie */
[data-parallax]{ overflow:hidden; }
[data-parallax] img{ object-fit:cover; object-position:center calc(50% + var(--py,0px)); }

/* titoli e passi che entrano con lo scroll */
@supports (animation-timeline: view()){
  .intestazione h2, .sez > .wrap > h2, .cta-finale h2, .manifesto h2{
    animation:entra-titolo linear both; animation-timeline:view(); animation-range:entry 5% cover 26%;
  }
  @keyframes entra-titolo{ from{ opacity:0; transform:translateY(22px) } to{ opacity:1; transform:none } }
  .passi .passo{ animation:passo-entra linear both; animation-timeline:view(); animation-range:entry 5% cover 32%; }
  .passi .passo:nth-child(2){ animation-range:entry 13% cover 40%; }
  .passi .passo:nth-child(3){ animation-range:entry 21% cover 48%; }
  @keyframes passo-entra{ from{ opacity:0; transform:translateY(26px) } to{ opacity:1; transform:none } }
}

@media (prefers-reduced-motion: reduce){
  body::before{ display:none }
  [data-expand]{ width:100% !important }
  [data-expand] img{ transform:none; clip-path:none }
  [data-parallax] img{ transform:none }
}

/* CTA in coda alle sezioni: sempre raggiungibile senza tornare in fondo */
.cta-inline{ display:flex; align-items:center; justify-content:space-between; gap:20px;
  margin-top:44px; padding-top:24px; border-top:1px solid var(--riga); }
.cta-inline p{ margin:0; font-size:1.02rem; color:var(--testo-2, #555); max-width:52ch; }
.cta-inline .btn{ flex:0 0 auto; }
@media (max-width:720px){
  .cta-inline{ flex-direction:column; align-items:stretch; gap:14px; margin-top:32px; }
  .cta-inline .btn{ text-align:center; }
}
