/* ============================================================
   Biri's House — foglio di stile · T.H.K. Consulting Limited 2026

   Fraunces è ospitato qui: il foglio di Google bloccava il disegno per
   ~280 ms e il ripiego Georgia è più largo del vero — quando il font
   arrivava, l'h1 si accorciava di 165 px. Era l'unico salto di layout
   della pagina. Il ripiego qui sotto ha le metriche riallineate.
   ============================================================ */
@font-face{
  font-family:"Fraunces";
  src:url("/assets/font/fraunces-latin.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Fraunces ripiego";
  src:local("Georgia"),local("Times New Roman");
  size-adjust:96%;
  ascent-override:92%;
  descent-override:24%;
  line-gap-override:0%;
}

/* ============================================================
   LE TRE TONALITÀ
   Il sito ha una tinta sola per volta, in cinque gradini
   (--tinta-1 chiarissimo … --tinta-5 scuro) su neutri caldi.
   Si cambia con l'attributo data-tema sull'elemento <html>.
   Il selettore in basso a sinistra è PROVVISORIO: serve solo
   a far scegliere il cliente. Scelta la tinta, si toglie.
   ============================================================ */
:root, :root[data-tema="argilla"]{
  /* ARGILLA — terracotta caldo, il colore dei muri di casa e del cotto */
  --tinta-1:#f7efe8; --tinta-2:#ecdccf; --tinta-3:#c1906f;
  --tinta-4:#9c5b39; --tinta-5:#5b3122; --tinta-6:#42231733;
  --velo:rgba(193,144,111,.20);
  --colore-fondo:#f9f5f1; --colore-fondo-alt:#f0e8e0; --colore-carta:#fffdfa;
  --colore-testo:#2e2019; --colore-testo-tenue:#7a6659;
  --colore-bordo:#e8dcd2; --colore-bordo-forte:#cfbcab;
  --colore-occupato:#a3948a;
  --tinta-5-hover:#472619;
}

:root[data-tema="blu"]{
  /* BLU — blu polvere profondo, la tinta delle persiane e del riposo */
  --tinta-1:#edf0f4; --tinta-2:#d8dfe8; --tinta-3:#8496ac;
  --tinta-4:#465d75; --tinta-5:#243348; --tinta-6:#1a253433;
  --velo:rgba(132,150,172,.20);
  --colore-fondo:#f6f7f9; --colore-fondo-alt:#eaedf1; --colore-carta:#fffefe;
  --colore-testo:#1f2732; --colore-testo-tenue:#67717e;
  --colore-bordo:#e0e4ea; --colore-bordo-forte:#c4ccd6;
  --colore-occupato:#9a9186;
  --tinta-5-hover:#1a2637;
}

:root[data-tema="tortora"]{
  /* TORTORA — bruno caldo neutro, legno e lino */
  --tinta-1:#f3efea; --tinta-2:#e3dbd1; --tinta-3:#a89684;
  --tinta-4:#6d5d4d; --tinta-5:#3a3128; --tinta-6:#2a231b33;
  --velo:rgba(168,150,132,.20);
  --colore-fondo:#f8f5f1; --colore-fondo-alt:#ede8e1; --colore-carta:#fffefc;
  --colore-testo:#2b241c; --colore-testo-tenue:#756b5f;
  --colore-bordo:#e5ded5; --colore-bordo-forte:#cabeb0;
  --colore-occupato:#9d9284;
  --tinta-5-hover:#2c251e;
}

:root{
  /* alias d'uso: il resto del foglio non sa nulla della tinta scelta */
  --colore-fondo-scuro:var(--tinta-5);
  --colore-marchio:var(--tinta-4);
  --colore-marchio-scuro:var(--tinta-5);
  --colore-marchio-chiaro:var(--tinta-1);
  --colore-accento:var(--tinta-3);
  --colore-accento-chiaro:var(--tinta-1);

  /* tipografia */
  --font-titoli:"Fraunces","Fraunces ripiego",ui-serif,Georgia,serif;
  --font-testo:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

  --dim-1:.75rem; --dim-2:.875rem; --dim-3:1rem; --dim-4:1.125rem;
  --dim-5:clamp(1.35rem,1.1rem + .9vw,1.7rem);
  --dim-6:clamp(1.8rem,1.35rem + 1.9vw,2.9rem);
  --dim-7:clamp(2.35rem,1rem + 3.1vw,4.2rem);

  /* spazio */
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem;
  --sp-5:1.5rem; --sp-6:2rem; --sp-7:3rem; --sp-8:clamp(3.5rem,8vw,6.5rem);

  --raggio-s:8px; --raggio-m:14px; --raggio-g:24px; --raggio-tondo:999px;

  --ombra-s:0 1px 2px rgba(36,31,26,.06),0 2px 6px rgba(36,31,26,.05);
  --ombra-m:0 4px 12px rgba(36,31,26,.07),0 12px 28px rgba(36,31,26,.06);
  --ombra-g:0 12px 30px rgba(36,31,26,.10),0 30px 70px rgba(36,31,26,.10);

  --transizione:.32s cubic-bezier(.22,.61,.36,1);
  --transizione-lenta:.7s cubic-bezier(.22,.61,.36,1);
  --contenitore-max:1180px;
  --nav-h:68px;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
/* un display: esplicito batte l'attributo hidden: qui lo si rimette in riga */
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 1rem)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
body{
  font-family:var(--font-testo);
  font-size:var(--dim-3);
  line-height:1.65;
  color:var(--colore-testo);
  background:var(--colore-fondo);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{max-width:100%;height:auto;display:block}
svg{display:block;flex:none}

/* ---------- icone ---------- */
/* Un solo set a tratto, tutto in currentColor: nessun colore estraneo
   entra in pagina. Prima erano emoji, e ognuna portava i suoi colori. */
.ico{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:13px;
  background:var(--tinta-1);color:var(--tinta-4);
  transition:background var(--transizione),color var(--transizione);
}
.ico svg{width:22px;height:22px}
.ico-g{width:54px;height:54px;border-radius:16px}
.ico-g svg{width:27px;height:27px}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;padding:0}
:focus-visible{outline:3px solid var(--tinta-4);outline-offset:3px;border-radius:4px}
/* su fondo scuro l'anello in tinta-4 misurava 1,78:1 — invisibile */
.sez-prenota :focus-visible,.piede :focus-visible,.rapida :focus-visible{
  outline-color:var(--tinta-2);box-shadow:0 0 0 6px var(--tinta-5);
}

h1,h2,h3,h4{font-family:var(--font-titoli);font-weight:600;line-height:1.12;letter-spacing:-.018em;text-wrap:balance}
h1{font-size:var(--dim-7)}
h2{font-size:var(--dim-6)}
h3{font-size:var(--dim-5)}
p{text-wrap:pretty}
/* questi sono in Fraunces ma non sono h1-h4: senza, ereditano l'interlinea 1.65 */
.cal-mese,.tot-riga.finale,.nota-parcheggio strong,.piede-marchio,.nav-marchio{line-height:1.2}

/* ---------- utilità ---------- */
.contenitore{width:min(100% - 2.5rem,var(--contenitore-max));margin-inline:auto}
@media (max-width:600px){.contenitore{width:min(100% - 2rem,var(--contenitore-max))}}
.sezione{padding-block:var(--sp-8)}
/* stacco a metà del blocco più lungo: senza, sono 6000 px con lo stesso fondo */
.sezione#appartamento{background:var(--colore-fondo-alt)}
/* la barra in alto è fissa: senza questo, cliccando una voce di menu
   il titolo della sezione finisce nascosto dietro la barra */
section[id],main[id]{scroll-margin-top:calc(var(--nav-h) + 1.25rem)}
.solo-lettori{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.salta{position:absolute;left:-9999px;top:0;z-index:200;background:var(--colore-marchio);color:#fff;padding:.75rem 1.25rem;border-radius:0 0 var(--raggio-s) 0}
.salta:focus{left:0}

.occhiello{
  font-size:var(--dim-1);font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--colore-marchio);display:block;margin-bottom:var(--sp-3);
}
.intro-sez{color:var(--colore-testo-tenue);font-size:var(--dim-4);max-width:48ch;margin-top:var(--sp-4)}

/* ---------- reveal ---------- */
.reveal{opacity:0}
.reveal.in{animation:sali .58s cubic-bezier(.22,.61,.36,1) both}
@keyframes sali{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.reveal-d1{animation-delay:.08s}.reveal-d2{animation-delay:.16s}
.reveal-d3{animation-delay:.24s}.reveal-d4{animation-delay:.32s}

/* L'apertura NON passa dall'IntersectionObserver: si anima in CSS, che è già
   render-blocking. Prima restava a opacity:0 finché non arrivava main.js —
   su rete lenta, tre secondi di pagina vuota. */
.hero .reveal{opacity:0;animation:sali .5s cubic-bezier(.16,1,.3,1) both}
.hero .occhiello{animation-delay:0s}
.hero h1{animation-delay:.07s}
.hero-sub{animation-delay:.14s}
.hero-btn{animation-delay:.21s}
.hero-figura{animation-delay:.14s}
.hero-numeri{animation-delay:.28s}

/* ---------- pulsanti ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.95rem 1.7rem;border-radius:var(--raggio-tondo);
  font-weight:650;font-size:var(--dim-3);letter-spacing:-.01em;
  transition:transform var(--transizione),box-shadow var(--transizione),background var(--transizione),color var(--transizione);
  will-change:transform;text-align:center;
}
.btn svg{width:1.15em;height:1.15em;flex:none}
.btn-primario{background:var(--colore-marchio);color:#fff;box-shadow:var(--ombra-m)}
.btn-primario:hover{background:var(--colore-marchio-scuro);transform:translateY(-2px);box-shadow:var(--ombra-g)}
.btn-primario:active{transform:translateY(0)}
.btn-secondario{background:transparent;color:var(--colore-marchio);border:1.5px solid var(--tinta-2)}
.btn-secondario:hover{background:var(--tinta-1);border-color:var(--colore-marchio);transform:translateY(-2px)}
.btn-chiaro{background:var(--colore-carta);color:var(--colore-testo);border:1.5px solid var(--colore-bordo);box-shadow:var(--ombra-s)}
.btn-chiaro:hover{border-color:var(--colore-marchio);color:var(--colore-marchio);transform:translateY(-2px)}
.btn-wa{background:var(--tinta-5);color:#fff}
.btn-wa:hover{background:var(--tinta-5-hover);transform:translateY(-2px);box-shadow:var(--ombra-g)}
/* risposta al tocco: 90 ms, scala. Sotto i 100 ms si legge come lentezza. */
.btn,.cal-cella,.galleria-filtri button,.contatore button,.foto-cella,.wa-fisso{
  transition:transform .09s ease-out,background var(--transizione),color var(--transizione),
             box-shadow var(--transizione),border-color var(--transizione);
}
.btn:not(:disabled):not(.btn-disattivo):active,.cal-cella:not(:disabled):active,
.galleria-filtri button:active,.contatore button:not(:disabled):active,
.foto-cella:active,.wa-fisso:active{transform:scale(.965)}
.btn:disabled,.btn-disattivo{opacity:.42;cursor:not-allowed;transform:none!important;box-shadow:none}
.btn-disattivo:hover{transform:none!important}
.btn-grande{padding:1.1rem 2.1rem;font-size:var(--dim-4)}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed;inset:0 0 auto;height:var(--nav-h);z-index:100;
  display:flex;align-items:center;
  background:color-mix(in srgb, var(--colore-fondo) 88%, transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid transparent;
  transition:box-shadow var(--transizione),border-color var(--transizione),background var(--transizione);
}
.nav .contenitore{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}
.nav-marchio{font-family:var(--font-titoli);font-size:1.28rem;font-weight:600;color:var(--colore-testo);letter-spacing:-.02em;white-space:nowrap}
.nav-marchio span{color:var(--tinta-4)}
.nav-link{display:flex;align-items:center;gap:var(--sp-6)}
.nav-link a{font-size:var(--dim-2);font-weight:550;color:var(--colore-testo-tenue);transition:color var(--transizione);position:relative}
.nav-link a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1.5px;background:currentColor;transition:right var(--transizione)}
.nav-link a:hover{color:var(--colore-marchio)}
.nav-link a:hover::after{right:0}
.nav-cta{padding:.6rem 1.25rem;font-size:var(--dim-2);color:#fff!important}
.nav-cta:hover{color:#fff!important}
.nav-cta::after{display:none!important}

.nav.scrolled{background:color-mix(in srgb, var(--colore-fondo) 96%, transparent);box-shadow:var(--ombra-s);border-bottom-color:var(--colore-bordo)}

.apri-menu{display:none;width:44px;height:44px;flex-direction:column;justify-content:center;gap:5px;align-items:center;margin-right:-10px}
.apri-menu span{display:block;width:22px;height:2px;background:var(--colore-testo);border-radius:2px;transition:transform var(--transizione),opacity var(--transizione),background var(--transizione)}
body.menu-aperto .apri-menu span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-aperto .apri-menu span:nth-child(2){opacity:0}
body.menu-aperto .apri-menu span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width:880px){
  .apri-menu{display:flex}
  .nav-link{
    position:fixed;inset:var(--nav-h) 0 auto;flex-direction:column;align-items:stretch;gap:0;
    background:var(--colore-fondo);padding:var(--sp-4) 1.25rem var(--sp-6);
    border-bottom:1px solid var(--colore-bordo);box-shadow:var(--ombra-m);
    transform:translateY(-125%);visibility:hidden;
    transition:transform var(--transizione),visibility var(--transizione);
    max-height:calc(100dvh - var(--nav-h));overflow-y:auto;
  }
  body.menu-aperto .nav-link{transform:none;visibility:visible}
  .nav-link a{color:var(--colore-testo)!important;padding:.9rem .25rem;border-bottom:1px solid var(--colore-bordo);font-size:var(--dim-4)}
  .nav-link a::after{display:none}
  .nav-cta{margin-top:var(--sp-4);border-bottom:0!important;justify-content:center}
  body.menu-aperto{overflow:hidden}
}

/* ============================================================
   HERO — immagine contenuta, testo su fondo chiaro.
   Prima era una foto a tutto schermo con il testo sopra: non si leggeva.
   ============================================================ */
.hero{padding-top:calc(var(--nav-h) + var(--sp-7));padding-bottom:var(--sp-7);background:var(--colore-fondo)}
.hero-griglia{
  display:grid;grid-template-columns:1.02fr .98fr;
  gap:clamp(2rem,5vw,4.5rem);align-items:center;
}
.hero h1{max-width:18ch;margin-bottom:var(--sp-5)}
.hero-sub{font-size:var(--dim-4);max-width:44ch;color:var(--colore-testo-tenue);margin-bottom:var(--sp-6)}
.hero-btn{display:flex;gap:var(--sp-3);flex-wrap:wrap}

.hero-figura{
  position:relative;border-radius:var(--raggio-g);overflow:hidden;
  aspect-ratio:4/4;box-shadow:var(--ombra-g);background:var(--colore-fondo-alt);margin:0;
}
.hero-figura img{width:100%;height:100%;object-fit:cover;animation:posa 1.1s cubic-bezier(.16,1,.3,1) both}
@keyframes posa{from{transform:scale(1.055)}to{transform:none}}

.hero-numeri{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);
  border-top:1px solid var(--colore-bordo);margin-top:var(--sp-8);padding-top:var(--sp-5);
}
.hero-numeri li strong{
  display:block;font-family:var(--font-titoli);font-weight:600;line-height:1;
  font-size:clamp(1.5rem,1.1rem + 1.4vw,2.1rem);color:var(--colore-marchio);
}
.hero-numeri li span{font-size:var(--dim-2);color:var(--colore-testo-tenue);display:block;margin-top:.35rem}

@media (max-width:880px){
  .hero{padding-top:calc(var(--nav-h) + var(--sp-6))}
  .hero-griglia{grid-template-columns:1fr;gap:var(--sp-6)}
  .hero-figura{aspect-ratio:4/3.2;order:-1}
  .hero h1{max-width:none}
  .hero-numeri{grid-template-columns:repeat(2,1fr);gap:var(--sp-5) var(--sp-4);margin-top:var(--sp-7)}
}
@media (max-width:520px){.hero-btn .btn{flex:1 1 100%}}

/* ============================================================
   BARRA RAPIDA
   ============================================================ */
.rapida{background:var(--colore-fondo-scuro);color:#fff;padding-block:var(--sp-5)}
.rapida ul{display:flex;justify-content:space-between;gap:var(--sp-5);align-items:center}
.rapida li{display:flex;align-items:center;gap:.6rem;font-size:var(--dim-2);font-weight:550;white-space:nowrap}
.rapida svg{width:22px;height:22px;color:var(--tinta-3);flex:none}
@media (max-width:880px){
  .rapida ul{overflow-x:auto;justify-content:flex-start;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .rapida ul::-webkit-scrollbar{display:none}
  .rapida li{padding-right:var(--sp-2)}
}
/* sotto i 620 px va a capo invece di scorrere: quello che restava tagliato era
   «Parcheggio gratuito», cioè l'argomento più forte del sito. */
@media (max-width:620px){
  .rapida ul{flex-wrap:wrap;overflow:visible;justify-content:flex-start;gap:.75rem var(--sp-5)}
}

/* ============================================================
   AVATAR — chi ci sta bene
   ============================================================ */
.griglia-avatar{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:var(--sp-4);margin-top:var(--sp-7)}
/* fra 900 e 1080 px la quarta scheda restava sola su una riga */
@media (max-width:1080px){.griglia-avatar{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.griglia-avatar{grid-template-columns:1fr}}
.scheda-avatar{
  background:var(--colore-carta);border:1px solid var(--colore-bordo);border-radius:var(--raggio-g);
  padding:var(--sp-5) var(--sp-4);position:relative;overflow:hidden;
  transition:transform var(--transizione),box-shadow var(--transizione),border-color var(--transizione);
}
.scheda-avatar::before{
  content:"";position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--colore-marchio),var(--colore-accento));
  transform:scaleX(0);transform-origin:left;transition:transform var(--transizione-lenta);
}
.scheda-avatar:hover{transform:translateY(-5px);box-shadow:var(--ombra-g);border-color:var(--colore-bordo-forte)}
.scheda-avatar:hover::before{transform:scaleX(1)}
.scheda-avatar .ico{margin-bottom:var(--sp-4)}
.scheda-avatar:hover .ico{background:var(--tinta-4);color:#fff}
.scheda-avatar h3{font-size:var(--dim-4);margin-bottom:var(--sp-3);font-family:var(--font-testo);font-weight:700;letter-spacing:-.01em;line-height:1.3;min-height:2.6em}
.scheda-avatar p{color:var(--colore-testo-tenue);font-size:var(--dim-2);line-height:1.55}

/* mappa */


/* ============================================================
   STANZE
   ============================================================ */
.stanze{display:flex;flex-direction:column;gap:clamp(2.5rem,5vw,4rem);margin-top:var(--sp-7)}
.stanza{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:start}
.stanza:nth-child(even) .stanza-foto{order:-1}
.stanza-foto{position:relative;border-radius:var(--raggio-g);overflow:hidden;box-shadow:var(--ombra-g);aspect-ratio:16/10;background:var(--colore-fondo-alt)}
.stanza-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.stanza-foto:hover img{transform:scale(1.055)}
.stanza-foto button{position:absolute;inset:0;width:100%;height:100%}
.stanza-num{
  font-family:var(--font-titoli);font-size:var(--dim-1);font-weight:600;color:var(--colore-marchio);
  letter-spacing:.16em;text-transform:uppercase;display:block;margin-bottom:var(--sp-2);
}
.stanza-testo h3{margin-bottom:var(--sp-3)}
.stanza-testo p{color:var(--colore-testo-tenue);max-width:48ch}
.stanza-tag{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:var(--sp-4)}
.stanza-tag span{
  font-size:var(--dim-1);padding:.35rem .8rem;border-radius:var(--raggio-tondo);
  background:var(--colore-marchio-chiaro);color:var(--colore-marchio-scuro);font-weight:600;
}
@media (max-width:820px){
  .stanza{grid-template-columns:1fr;gap:var(--sp-4)}
  .stanza .stanza-foto,.stanza:nth-child(even) .stanza-foto{order:-1}
}

/* ============================================================
   GALLERIA
   ============================================================ */
.galleria-filtri{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:var(--sp-7)}
.galleria-filtri button{
  padding:.5rem 1.1rem;border-radius:var(--raggio-tondo);font-size:var(--dim-2);font-weight:600;
  border:1.5px solid var(--colore-bordo);color:var(--colore-testo-tenue);background:var(--colore-carta);
  transition:background var(--transizione),color var(--transizione),border-color var(--transizione),transform .09s ease-out;
}
.galleria-filtri button:hover{border-color:var(--colore-marchio);color:var(--colore-marchio)}
.galleria-filtri button[aria-pressed=true]{background:var(--colore-marchio);border-color:var(--colore-marchio);color:#fff}

.griglia-foto{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-3);margin-top:var(--sp-5)}
.foto-cella{
  margin:0;padding:0;border:0;display:block;width:100%;
  border-radius:var(--raggio-m);overflow:hidden;aspect-ratio:4/3;position:relative;
  background:var(--colore-fondo-alt);cursor:zoom-in;box-shadow:var(--ombra-s);
}
.foto-cella:hover{transform:translateY(-4px);box-shadow:var(--ombra-m)}
.griglia-foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.foto-cella:hover img{transform:scale(1.07)}
.foto-cella.nascosta{display:none}
/* etichetta della stanza, compare al passaggio */
.foto-eti{
  position:absolute;inset:auto 0 0;padding:1.6rem .7rem .55rem;text-align:left;
  font-size:var(--dim-1);font-weight:650;color:#fff;letter-spacing:.01em;
  background:linear-gradient(to top,rgba(20,16,12,.72),transparent);
  opacity:0;transform:translateY(6px);transition:opacity var(--transizione),transform var(--transizione);
}
.foto-cella:hover .foto-eti,.foto-cella:focus-visible .foto-eti{opacity:1;transform:none}
/* il tour: prima cella della griglia, con il suo fotogramma invece di un bottone di testo */
.foto-cella.cella-video::after{
  content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;
  width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.92);
  box-shadow:var(--ombra-m);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}
.foto-cella.cella-video .play-tri{
  position:absolute;left:50%;top:50%;translate:-46% -50%;z-index:2;
  width:19px;height:19px;color:var(--tinta-5);
}
.foto-cella.cella-video:hover::after{background:#fff}
@media (max-width:620px){
  .griglia-foto{grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}
  }

.riga-video{margin-top:var(--sp-6);display:flex;justify-content:center}

/* lightbox */
.lightbox{
  position:fixed;inset:0;z-index:300;background:rgba(14,12,10,.96);
  display:flex;align-items:center;justify-content:center;padding:var(--sp-4);
  opacity:0;visibility:hidden;transition:opacity var(--transizione),visibility var(--transizione);
}
.lightbox.aperta{opacity:1;visibility:visible}
.lightbox img,.lightbox video{max-width:min(100%,1300px);max-height:86svh;border-radius:var(--raggio-m);box-shadow:var(--ombra-g)}
.lightbox video{width:min(100%,440px)}
.lb-chiudi{position:absolute;top:1rem;right:1rem;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.6rem;display:grid;place-items:center;transition:background var(--transizione)}
.lb-chiudi:hover{background:rgba(255,255,255,.3)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.7rem;display:grid;place-items:center;transition:background var(--transizione)}
.lb-nav:hover{background:rgba(255,255,255,.3)}
.lb-prec{left:1rem}.lb-succ{right:1rem}
.lb-conta{position:absolute;bottom:1.1rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.75);font-size:var(--dim-2);font-variant-numeric:tabular-nums}
@media (max-width:600px){.lb-nav{width:44px;height:44px;font-size:1.4rem}.lb-prec{left:.4rem}.lb-succ{right:.4rem}}

/* ============================================================
   SERVIZI
   ============================================================ */
.sez-servizi{background:var(--colore-fondo-alt)}
.griglia-servizi{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-auto-rows:1fr;gap:var(--sp-3);margin-top:var(--sp-7)}
.griglia-servizi li{
  display:flex;align-items:center;gap:.75rem;padding:.95rem 1.1rem;
  background:var(--colore-carta);border:1px solid var(--colore-bordo);border-radius:var(--raggio-m);
  font-size:var(--dim-2);font-weight:550;
  transition:transform var(--transizione),border-color var(--transizione),box-shadow var(--transizione);
}
.griglia-servizi li:hover{transform:translateY(-3px);border-color:var(--colore-marchio);box-shadow:var(--ombra-s)}
.griglia-servizi .ico{width:34px;height:34px;border-radius:10px}
.griglia-servizi .ico svg{width:18px;height:18px}
.griglia-servizi li:hover .ico{background:var(--tinta-2)}
.nota-parcheggio{
  margin-top:var(--sp-6);padding:var(--sp-5) var(--sp-6);border-radius:var(--raggio-g);
  background:var(--tinta-1);border:1px solid var(--tinta-2);
  display:flex;gap:var(--sp-4);align-items:flex-start;
}
.nota-parcheggio .ico-g{background:var(--colore-carta);color:var(--tinta-4);flex:none}
@media (max-width:600px){
  .nota-parcheggio{flex-direction:column;gap:var(--sp-3)}
  .nota-parcheggio strong{text-wrap:balance}
}
.nota-parcheggio p{font-size:var(--dim-3)}
.nota-parcheggio strong{display:block;font-size:var(--dim-4);font-family:var(--font-titoli);font-weight:600;margin-bottom:.2rem}

/* ============================================================
   PRENOTAZIONE
   ============================================================ */
.sez-prenota{background:var(--colore-fondo-scuro);color:#fff;position:relative;overflow:hidden}
.sez-prenota::before{
  content:"";position:absolute;top:-30%;right:-10%;width:60vw;height:60vw;max-width:700px;max-height:700px;
  background:radial-gradient(circle,var(--velo),transparent 68%);pointer-events:none;
}
.sez-prenota .contenitore{position:relative}
.sez-prenota .occhiello{color:var(--tinta-2)}
.sez-prenota .intro-sez{color:rgba(255,255,255,.72)}

.prenota-griglia{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--sp-6);margin-top:var(--sp-7);align-items:start}
@media (max-width:900px){.prenota-griglia{grid-template-columns:1fr}}

.pannello-cal,.pannello-tot{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);border-radius:var(--raggio-g);padding:var(--sp-5)}
@media (min-width:901px){.pannello-tot{position:sticky;top:calc(var(--nav-h) + 1rem)}}

.cal-testa{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4);gap:var(--sp-3)}
.cal-mese{font-family:var(--font-titoli);font-size:var(--dim-5);font-weight:600;text-transform:capitalize}
.cal-freccia{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.09);color:#fff;display:grid;place-items:center;font-size:1.2rem;transition:background var(--transizione)}
.cal-freccia:hover:not(:disabled){background:rgba(255,255,255,.2)}
.cal-freccia:disabled{opacity:.25;cursor:not-allowed}

.cal-giorni,.cal-celle{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-giorni{margin-bottom:.4rem}
.cal-giorni span{text-align:center;font-size:var(--dim-1);color:rgba(255,255,255,.68);font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding-block:.3rem}
.cal-cella{
  height:clamp(38px,4.2vw,50px);display:grid;place-items:center;border-radius:var(--raggio-s);
  font-size:var(--dim-2);font-weight:550;color:#fff;position:relative;
}
.cal-cella.vuota{visibility:hidden}
.cal-cella:not(:disabled):hover{background:rgba(255,255,255,.16)}
.cal-cella:disabled{color:rgba(255,255,255,.22);cursor:not-allowed;text-decoration:line-through}
.cal-cella.occupata{color:rgba(255,255,255,.22);cursor:not-allowed}
.cal-cella.occupata::after{content:"";position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--colore-occupato)}
.cal-cella.sel{background:var(--tinta-2)!important;color:var(--tinta-5);font-weight:700;
  outline:2px solid currentColor;outline-offset:-2px}
/* anteprima: mentre scegli la partenza, l'intervallo si riempie prima del clic */
.cal-cella.anteprima{background:color-mix(in srgb,var(--tinta-2) 14%,transparent)}
.cal-cella.intervallo{background:color-mix(in srgb,var(--tinta-2) 26%,transparent)}
.cal-legenda{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-4);font-size:var(--dim-1);color:rgba(255,255,255,.72)}
.cal-legenda span{display:flex;align-items:center;gap:.4rem}
.cal-legenda i{width:11px;height:11px;border-radius:3px;display:block}

.ospiti-riga{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-top:var(--sp-5);margin-top:var(--sp-5);border-top:1px solid rgba(255,255,255,.13)}
.ospiti-riga h4{font-size:var(--dim-3);font-family:var(--font-testo);font-weight:650}
.ospiti-riga small{color:rgba(255,255,255,.7);font-size:var(--dim-1);display:block}
.contatore{display:flex;align-items:center;gap:var(--sp-3)}
.contatore button{width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(255,255,255,.28);color:#fff;font-size:1.25rem;display:grid;place-items:center;transition:all var(--transizione)}
.contatore button:hover:not(:disabled){background:#fff;color:var(--colore-testo);border-color:#fff}
.contatore button:disabled{opacity:.25;cursor:not-allowed}
.contatore output{font-size:var(--dim-5);font-weight:700;min-width:1.6ch;text-align:center;font-variant-numeric:tabular-nums}

.tot-vuoto{color:rgba(255,255,255,.6);font-size:var(--dim-2);text-align:center;padding-block:var(--sp-6)}
.tot-righe{display:flex;flex-direction:column;gap:.7rem;margin-bottom:var(--sp-4)}
.tot-riga{display:flex;justify-content:space-between;gap:var(--sp-3);font-size:var(--dim-2);color:rgba(255,255,255,.78)}
.tot-riga.finale{
  border-top:1px solid rgba(255,255,255,.16);padding-top:var(--sp-4);margin-top:var(--sp-2);
  font-size:var(--dim-5);font-weight:700;color:#fff;font-family:var(--font-titoli);align-items:baseline;
}
.tot-riga.finale span:last-child{font-variant-numeric:tabular-nums}
.pannello-tot .btn{width:100%;margin-top:var(--sp-2)}
.nota-pagamento{font-size:var(--dim-1);color:rgba(255,255,255,.55);text-align:center;margin-top:var(--sp-4);line-height:1.6}
.garanzie{list-style:none;margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid rgba(255,255,255,.13);display:flex;flex-direction:column;gap:.6rem}
.garanzie li{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--dim-2);color:rgba(255,255,255,.8)}
.garanzie li::before{content:"✓";color:var(--tinta-2);font-weight:800;flex:none}
.avviso-min{font-size:var(--dim-1);color:var(--tinta-2);margin-top:var(--sp-3);text-align:center}

/* ============================================================
   RECENSIONI
   ============================================================ */
.griglia-rec{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:var(--sp-4);margin-top:var(--sp-7)}
.scheda-rec{background:var(--colore-carta);border:1px solid var(--colore-bordo);border-radius:var(--raggio-g);padding:var(--sp-6) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4);transition:transform var(--transizione),box-shadow var(--transizione)}
.scheda-rec:hover{transform:translateY(-4px);box-shadow:var(--ombra-m)}
.stelle{color:var(--tinta-4);letter-spacing:.12em;font-size:var(--dim-2)}
.scheda-rec blockquote{font-size:var(--dim-3);line-height:1.7;flex:1}
.rec-firma{display:flex;align-items:center;gap:.6rem;font-size:var(--dim-2);color:var(--colore-testo-tenue);padding-top:var(--sp-3);border-top:1px solid var(--colore-bordo)}
.rec-firma strong{color:var(--colore-testo)}
.rec-fonte{margin-left:auto;font-size:var(--dim-1);padding:.2rem .6rem;border-radius:var(--raggio-tondo);background:var(--colore-fondo-alt);font-weight:600}
.rec-link{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-6);justify-content:center}

/* ============================================================
   FAQ
   ============================================================ */
.sez-faq{background:var(--colore-fondo-alt)}
.lista-faq{max-width:820px;margin:var(--sp-7) 0 0;display:flex;flex-direction:column;gap:.6rem}
.faq-voce{background:var(--colore-carta);border:1px solid var(--colore-bordo);border-radius:var(--raggio-m);overflow:hidden;transition:border-color var(--transizione),box-shadow var(--transizione)}
.faq-voce:hover{border-color:var(--colore-bordo-forte)}
.faq-voce[open]{border-color:var(--colore-marchio);box-shadow:var(--ombra-s)}
.faq-voce summary{
  padding:1.15rem 1.35rem;font-weight:650;font-size:var(--dim-3);cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);list-style:none;
}
.faq-voce summary::-webkit-details-marker{display:none}
.faq-voce summary::after{content:"+";font-size:1.5rem;font-weight:400;color:var(--colore-marchio);transition:transform .28s cubic-bezier(.22,.61,.36,1);flex:none;line-height:1}
.faq-voce[open] summary::after{transform:rotate(45deg)}
.faq-corpo{padding:0 1.35rem 1.3rem;color:var(--colore-testo-tenue);font-size:var(--dim-3);line-height:1.7;max-width:60ch}

/* ============================================================
   CONTATTI
   ============================================================ */
.griglia-contatti{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-7);margin-top:var(--sp-7);align-items:start}
@media (max-width:820px){.griglia-contatti{grid-template-columns:1fr;gap:var(--sp-6)}}
.lista-contatti{display:flex;flex-direction:column;gap:var(--sp-3)}
.lista-contatti a{
  display:flex;align-items:center;gap:var(--sp-4);padding:1.05rem 1.25rem;
  background:var(--colore-carta);border:1px solid var(--colore-bordo);border-radius:var(--raggio-m);
  transition:transform var(--transizione),border-color var(--transizione),box-shadow var(--transizione);
}
.lista-contatti a:hover{transform:translateX(5px);border-color:var(--colore-marchio);box-shadow:var(--ombra-s)}
.lista-contatti .ico{width:42px;height:42px}
.lista-contatti a:hover .ico{background:var(--tinta-4);color:#fff}
.lista-contatti small{display:block;color:var(--colore-testo-tenue);font-size:var(--dim-1)}
.lista-contatti strong{font-size:var(--dim-4);font-weight:650}
.box-annunci{background:var(--tinta-1);border:1px solid var(--tinta-2);border-radius:var(--raggio-g);padding:var(--sp-6)}
.box-annunci h3{font-size:var(--dim-4);margin-bottom:var(--sp-3);font-family:var(--font-testo);font-weight:700}
.box-annunci p{font-size:var(--dim-2);color:var(--colore-testo-tenue);margin-bottom:var(--sp-5)}
.box-annunci .btn{width:100%;margin-bottom:.6rem}

/* ============================================================
   FOOTER
   ============================================================ */
.piede{background:var(--colore-fondo-scuro);color:rgba(255,255,255,.65);padding-block:var(--sp-7) var(--sp-5);font-size:var(--dim-2)}
.piede-griglia{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--sp-6);padding-bottom:var(--sp-6);border-bottom:1px solid rgba(255,255,255,.12)}
@media (max-width:760px){.piede-griglia{grid-template-columns:1fr;gap:var(--sp-5)}}
.piede-marchio{font-family:var(--font-titoli);font-size:1.4rem;color:#fff;margin-bottom:var(--sp-3);display:block}
.piede-marchio span{color:var(--tinta-2)}
.piede h4{color:#fff;font-size:var(--dim-2);font-family:var(--font-testo);font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--sp-4)}
.piede li{margin-bottom:.55rem}
.piede a{transition:color var(--transizione)}
.piede a:hover{color:#fff}
.piede-basso{display:flex;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding-top:var(--sp-5);font-size:var(--dim-1);color:rgba(255,255,255,.62)}
.piede-cin{margin-top:var(--sp-3);font-size:var(--dim-1);color:rgba(255,255,255,.4)}

/* ---------- WhatsApp flottante ---------- */
.wa-fisso{
  position:fixed;right:1rem;bottom:1rem;z-index:90;
  width:56px;height:56px;border-radius:50%;background:var(--tinta-5);color:#fff;
  display:grid;place-items:center;box-shadow:0 8px 24px var(--tinta-6);
  opacity:0;transform:scale(.6);pointer-events:none;
  transition:opacity .26s cubic-bezier(.34,1.4,.64,1),transform .26s cubic-bezier(.34,1.4,.64,1),background var(--transizione);
}
/* nasce solo quando l'apertura è uscita di vista: sopra copriva
   la metà destra di «Vedi date e prezzo» */
body.wa-visibile .wa-fisso{opacity:1;transform:none;pointer-events:auto}
.wa-fisso:hover{transform:scale(1.08)}
.wa-fisso svg{width:30px;height:30px}
@media (min-width:881px){.wa-fisso{right:1.5rem;bottom:1.5rem}}

/* ---------- banner cookie ---------- */
.cookie{
  position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:95;max-width:520px;
  background:var(--colore-carta);border:1px solid var(--colore-bordo-forte);border-radius:var(--raggio-g);
  padding:var(--sp-5);box-shadow:var(--ombra-g);
  transform:translateY(150%);transition:transform .5s cubic-bezier(.22,.61,.36,1);
}
.cookie.su{transform:none}
.cookie p{font-size:var(--dim-2);color:var(--colore-testo-tenue);margin-bottom:var(--sp-4)}
.cookie-azioni{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}
.cookie-azioni .btn{padding:.6rem 1.3rem;font-size:var(--dim-2)}
.cookie-azioni a{font-size:var(--dim-2);color:var(--colore-marchio);text-decoration:underline}
@media (max-width:880px){
  .cookie{left:0;right:0;bottom:0;max-width:none;border-radius:var(--raggio-g) var(--raggio-g) 0 0;padding:var(--sp-4) var(--sp-5) calc(var(--sp-4) + env(safe-area-inset-bottom))}
  .cookie p{margin-bottom:var(--sp-3)}
}

/* ---------- pagine legali ---------- */
.pagina-testo{padding-top:calc(var(--nav-h) + var(--sp-8));padding-bottom:var(--sp-8);max-width:760px}
.pagina-testo h1{margin-bottom:var(--sp-5)}
.pagina-testo h2{font-size:var(--dim-5);margin-top:var(--sp-6);margin-bottom:var(--sp-3)}
.pagina-testo p{margin-bottom:var(--sp-4);color:var(--colore-testo-tenue)}
.pagina-testo a{color:var(--colore-marchio);text-decoration:underline}
.pagina-testo .torna{display:inline-flex;margin-top:var(--sp-6)}

/* ---------- 404 ---------- */
.pagina-404{min-height:100svh;display:grid;place-items:center;text-align:center;padding:var(--sp-6)}
.pagina-404 p{color:var(--colore-testo-tenue);margin:var(--sp-4) 0 var(--sp-6);font-size:var(--dim-4)}

/* ============================================================
   SELETTORE DELLE TONALITÀ — PROVVISORIO
   Serve solo a far scegliere la tinta al cliente.
   Quando la scelta è fatta: si toglie questo blocco, il #tinte
   dall'HTML e il pezzo «tinte» da main.js, e si fissa il tema
   scelto come unico :root.
   ============================================================ */
.tinte{position:fixed;left:1rem;bottom:1rem;z-index:96;display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}
.tinte-apri{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.7rem 1.05rem;border-radius:var(--raggio-tondo);
  background:var(--colore-carta);border:1px solid var(--colore-bordo-forte);
  color:var(--colore-testo);font-size:var(--dim-2);font-weight:650;
  box-shadow:var(--ombra-m);transition:transform var(--transizione),box-shadow var(--transizione);
}
.tinte-apri:hover{transform:translateY(-2px);box-shadow:var(--ombra-g)}
.tinte-apri i{width:15px;height:15px;border-radius:50%;background:var(--tinta-4);display:block;flex:none}

.tinte-menu{
  background:var(--colore-carta);border:1px solid var(--colore-bordo-forte);
  border-radius:var(--raggio-g);padding:var(--sp-5);box-shadow:var(--ombra-g);
  width:min(78vw,272px);
  transform:translateY(12px) scale(.96);transform-origin:bottom left;
  opacity:0;visibility:hidden;transition:all var(--transizione);
}
.tinte.aperto .tinte-menu{transform:none;opacity:1;visibility:visible}
.tinte-menu h4{font-family:var(--font-testo);font-size:var(--dim-2);font-weight:750;margin-bottom:.2rem}
.tinte-menu p{font-size:var(--dim-1);color:var(--colore-testo-tenue);margin-bottom:var(--sp-4);line-height:1.55}
.tinte-lista{display:flex;flex-direction:column;gap:.45rem}
.tinta-scelta{
  display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;
  padding:.6rem .7rem;border-radius:var(--raggio-m);border:1.5px solid transparent;
  transition:background var(--transizione),border-color var(--transizione);
}
.tinta-scelta:hover{background:var(--colore-fondo-alt)}
.tinta-scelta[aria-pressed=true]{border-color:var(--colore-marchio);background:var(--tinta-1)}
.tinta-campioni{display:flex;flex:none}
.tinta-campioni span{width:19px;height:19px;border-radius:50%;border:2px solid var(--colore-carta);margin-left:-7px}
.tinta-campioni span:first-child{margin-left:0}
.tinta-scelta b{font-size:var(--dim-2);font-weight:650;display:block}
.tinta-scelta small{font-size:var(--dim-1);color:var(--colore-testo-tenue);display:block;line-height:1.4}
@media (max-width:880px){.tinte{bottom:5.4rem}}

/* ============================================================
   MOVIMENTO — la parte che il sito non aveva
   Regola: quello che si vede subito si anima in CSS, quello che
   sta sotto si anima con l'IntersectionObserver. Niente movimento
   che non spieghi qualcosa.
   ============================================================ */

/* Il pannello del totale non compariva: passava da hidden a visibile
   senza un pixel di movimento, e su telefono nasce sotto la piega. */
#tot-pieno{
  transition:opacity .28s cubic-bezier(.22,.61,.36,1),
             transform .28s cubic-bezier(.22,.61,.36,1),
             display .28s allow-discrete;
}
@starting-style{ #tot-pieno{opacity:0;transform:translateY(10px)} }

/* Il totale che si forma: la cifra sale invece di apparire. */
.tot-riga.finale span:last-child{font-variant-numeric:tabular-nums;display:inline-block}
.tot-riga.finale.cresce span:last-child{animation:conta .42s cubic-bezier(.16,1,.3,1) both}
@keyframes conta{from{opacity:.35;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}

/* Anteprima del soggiorno in cima al pannello, mentre si sceglie la partenza */
.tot-anteprima{
  font-size:var(--dim-2);color:var(--tinta-2);font-weight:650;
  padding-bottom:var(--sp-3);margin-bottom:var(--sp-3);
  border-bottom:1px solid rgba(255,255,255,.14);
  animation:sali .22s ease-out both;
}

/* Le stanze: la foto si scopre invece di comparire. */
.stanza-foto{clip-path:inset(0 0 0 0 round var(--raggio-g))}
.stanza.in .stanza-foto{animation:scopri .72s cubic-bezier(.22,.61,.36,1) both;animation-delay:.06s}
@keyframes scopri{
  from{clip-path:inset(0 0 100% 0 round var(--raggio-g))}
  to{clip-path:inset(0 0 0 0 round var(--raggio-g))}
}

/* Le schede, le dotazioni e i contatti: un filo di sollevamento in più
   quando entrano, così la riga si legge come una fila e non come un blocco. */
.scheda-avatar{will-change:transform}

/* Il segno sotto le voci di menu, e il titolo di sezione che si sottolinea
   da solo quando la sezione entra: è l'unico "ornamento" del sito. */
.sezione > .contenitore > h2{position:relative;display:inline-block}
.sezione > .contenitore > h2::after{
  content:"";position:absolute;left:0;right:100%;bottom:-.22em;height:2px;
  background:linear-gradient(90deg,var(--tinta-4),var(--tinta-3));
  border-radius:2px;transition:right .9s cubic-bezier(.22,.61,.36,1) .18s;
}
.sezione > .contenitore > h2.in::after{right:38%}

/* La barra di avanzamento della lettura: una riga di 2 px in cima.
   Dice quanto manca, non chiede niente. */
.avanzamento{
  position:fixed;inset:0 auto auto 0;height:2px;z-index:101;
  background:linear-gradient(90deg,var(--tinta-4),var(--tinta-3));
  width:0;transform-origin:left;pointer-events:none;
  transition:opacity .3s;opacity:0;
}
body.scrollato .avanzamento{opacity:1}

/* Le icone delle dotazioni: al passaggio il riquadro si riempie di tinta. */
@media (hover:hover) and (pointer:fine){
  .griglia-servizi li:hover .ico{background:var(--tinta-4);color:#fff}
}

/* Su touch gli hover restano appiccicati dopo il tocco: qui si spengono. */
@media (hover:none){
  .btn:hover,.scheda-avatar:hover,.griglia-servizi li:hover,.lista-contatti a:hover,
  .foto-cella:hover,.scheda-rec:hover,.tinte-apri:hover,.wa-fisso:hover,
  .faq-voce:hover,.galleria-filtri button:hover{transform:none}
  .stanza-foto:hover img,.foto-cella:hover img{transform:none}
  .foto-cella:hover .foto-eti{opacity:0}
}

/* Chi ha chiesto meno movimento lo ottiene davvero, ovunque. */
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.in,.hero .reveal,.stanza.in .stanza-foto,.hero-figura img,
  .tot-riga.finale.cresce span:last-child,.tot-anteprima{animation:none!important;opacity:1!important;clip-path:none!important}
  .sezione > .contenitore > h2::after{transition:none}
  .avanzamento{display:none}
}

/* ============================================================
   COME FUNZIONA — sta dove le recensioni sono nascoste.
   Quattro passi che descrivono solo cose già vere, nel punto in cui
   l'ospite ha appena visto un totale da mandare a uno sconosciuto.
   ============================================================ */
.sez-passi{background:var(--colore-fondo-alt)}
.passi-griglia{display:grid;grid-template-columns:1.25fr .75fr;gap:var(--sp-7);margin-top:var(--sp-7);align-items:start}
@media (max-width:900px){.passi-griglia{grid-template-columns:1fr;gap:var(--sp-6)}}

.passi{display:flex;flex-direction:column;gap:var(--sp-5);counter-reset:passo}
.passi li{display:flex;gap:var(--sp-5);align-items:flex-start;position:relative}
.passi li:not(:last-child)::before{
  content:"";position:absolute;left:23px;top:50px;bottom:calc(-1 * var(--sp-5) - 4px);
  width:2px;background:linear-gradient(var(--tinta-2),transparent);
}
.passo-n{
  flex:none;width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;font-family:var(--font-titoli);font-weight:600;font-size:var(--dim-4);
  background:var(--colore-carta);color:var(--colore-marchio);border:1.5px solid var(--tinta-2);
  position:relative;z-index:1;line-height:1;
}
.passi h3{font-family:var(--font-testo);font-size:var(--dim-4);font-weight:700;margin-bottom:.25rem;letter-spacing:-.01em}
.passi p{color:var(--colore-testo-tenue);font-size:var(--dim-2);line-height:1.6;max-width:52ch}

.box-fiducia{
  background:var(--colore-carta);border:1px solid var(--colore-bordo);
  border-radius:var(--raggio-g);padding:var(--sp-6);
}
.box-fiducia h3{font-family:var(--font-testo);font-size:var(--dim-4);font-weight:700;margin-bottom:var(--sp-3)}
.box-fiducia p{font-size:var(--dim-2);color:var(--colore-testo-tenue);margin-bottom:var(--sp-5)}
.box-fiducia .btn{width:100%;margin-bottom:.6rem}
.box-fiducia .btn:last-child{margin-bottom:0}

/* contatti su una riga sola, ora che i link alle piattaforme stanno più su */
.lista-contatti-larga{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-3);margin-top:var(--sp-7)}
.lista-contatti-larga a:hover{transform:translateY(-3px)}

/* pannello del totale: l'anteprima in testa e il prezzo di partenza */
.tot-daprezzo{display:block;font-family:var(--font-titoli);font-size:var(--dim-5);font-weight:600;color:#fff;line-height:1.2;margin-bottom:.35rem}
.tot-vuoto{color:rgba(255,255,255,.72);font-size:var(--dim-2);text-align:left;padding-block:var(--sp-3) var(--sp-4);line-height:1.7}
.tot-vuoto strong{color:#fff}
.avviso-min{font-size:var(--dim-3);color:var(--tinta-2);margin:0 0 var(--sp-4);text-align:center;font-weight:600}
.cal-nota{margin-top:var(--sp-4);font-size:var(--dim-1);color:rgba(255,255,255,.62);line-height:1.6}
.ospiti-tit{font-size:var(--dim-3);font-family:var(--font-testo);font-weight:650}

/* didascalia della lightbox: gli alt erano già scritti bene, si vedevano solo agli screen reader */
.lb-dida{
  color:rgba(255,255,255,.82);font-size:var(--dim-2);text-align:center;
  margin-top:var(--sp-4);max-width:60ch;margin-inline:auto;line-height:1.5;
}

/* ============================================================
   MAPPA — immagine ferma, l'iframe arriva solo se lo chiedi.
   Prima erano 862 KB scaricati sempre (310 di script + 552 di tessere)
   per mostrare 21 km di pianura senza un segnaposto.
   ============================================================ */
.mappa{margin:var(--sp-7) 0 0;border-radius:var(--raggio-g);overflow:hidden;border:1px solid var(--colore-bordo);box-shadow:var(--ombra-m);background:var(--colore-fondo-alt)}
.mappa-avvia{display:block;width:100%;position:relative;padding:0;border:0;cursor:pointer;background:none}
.mappa-avvia img{width:100%;height:auto;display:block;aspect-ratio:20/7;object-fit:cover}
.mappa-etichetta{
  position:absolute;left:50%;top:50%;translate:-50% -50%;
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.7rem 1.3rem;border-radius:var(--raggio-tondo);
  background:var(--colore-carta);color:var(--colore-testo);
  font-size:var(--dim-2);font-weight:650;box-shadow:var(--ombra-m);
  transition:transform var(--transizione),box-shadow var(--transizione);
}
.mappa-etichetta svg{width:17px;height:17px;color:var(--colore-marchio)}
.mappa-avvia:hover .mappa-etichetta{transform:scale(1.04);box-shadow:var(--ombra-g)}
.mappa iframe{display:block;width:100%;height:380px;border:0;filter:grayscale(.92) contrast(.93) brightness(1.04)}
.mappa-dida{
  display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-6);
  padding:var(--sp-5) var(--sp-5);background:var(--colore-carta);
  border-top:1px solid var(--colore-bordo);font-size:var(--dim-2);color:var(--colore-testo-tenue);
}
.mappa-dida strong{color:var(--colore-marchio);font-family:var(--font-titoli);font-weight:600;margin-right:.3rem}
.mappa-dida small{flex:1 0 100%;font-size:var(--dim-1);opacity:.85}
@media (max-width:600px){
  .mappa-avvia img{aspect-ratio:3/2}
  .mappa-dida{flex-direction:column;gap:.5rem}
}
