/* ═══════════════════════════════════════════════════════════════════
   VILLEVERSILIA.COM — Villa Contemporanea Pietrasanta
   Foglio di stile unico. Per cambiare colori e font basta modificare
   le variabili qui sotto in :root — tutto il sito si aggiorna da solo.
   ═══════════════════════════════════════════════════════════════════ */

:root{
  /* — Palette "Pineta & Travertino" — */
  --avorio:#F3F0E9;        /* fondo pagina (intonaco/travertino) */
  --sabbia:#EAE4D7;        /* pannelli alternati / schede */
  --pineta:#182A21;        /* verde pineta profondo: sezioni scure, footer, bottoni */
  --verde:#2F5B42;         /* accento interattivo: etichette, linee, hover */
  --acqua:#8FBDB4;         /* micro-accento (acqua piscina): focus, dettagli */
  --ink:#20241F;           /* testo principale */
  --ink-60:rgba(32,36,31,.62);
  --linea:rgba(24,42,33,.16);
  --linea-chiara:rgba(243,240,233,.22);

  /* — Tipografia — */
  --f-display:'Sora', 'Instrument Sans', Arial, sans-serif;
  --f-sans:'Instrument Sans', 'Helvetica Neue', Arial, sans-serif;

  /* — Ritmo — */
  --gutter:clamp(1.25rem, 4vw, 4rem);
  --sezione:clamp(4.5rem, 9vw, 8.5rem);
  --max:1360px;
  --header-h:118px;
  --raggio:2px;

  --ease:cubic-bezier(.22,.61,.24,1);
}

/* ── Reset essenziale ─────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html:focus-within{scroll-behavior:smooth}
body{
  font-family:var(--f-sans);
  font-size:1.0625rem;
  line-height:1.75;
  color:var(--ink);
  background:var(--avorio);
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}
:focus-visible{outline:2px solid var(--acqua);outline-offset:3px}
::selection{background:var(--acqua);color:var(--pineta)}

.contenitore{width:min(var(--max), 100% - var(--gutter)*2);margin-inline:auto}
.sezione{padding-block:var(--sezione)}
.sezione--sabbia{background:var(--sabbia)}
.sezione--scura{background:var(--pineta);color:var(--avorio)}

/* ── Tipografia di sistema ────────────────────────────────────────── */
h1,h2,h3,.display{
  font-family:var(--f-display);
  font-weight:300;
  line-height:1.12;
  letter-spacing:0;
}
h2{font-size:clamp(2rem, 4.2vw, 3.4rem)}
h3{font-size:clamp(1.5rem, 2.6vw, 2.1rem)}

/* Occhiello architettonico: linea di quota verticale + etichetta */
.quota{
  display:flex;align-items:center;gap:.9rem;
  font-size:.72rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;
  color:var(--verde);margin-bottom:1.4rem;
}
.quota::before{
  content:"";width:1px;height:2.2rem;background:currentColor;
  position:relative;flex:0 0 auto;
}
.quota--centro{justify-content:center}
.quota--chiaro{color:var(--acqua)}
.sezione--scura .quota{color:var(--acqua)}

.testo-lead{font-size:clamp(1.1rem,1.6vw,1.25rem);line-height:1.8;color:var(--ink-60);max-width:62ch}
.sezione--scura .testo-lead, .sezione--scura p{color:rgba(243,240,233,.78)}
.testo-centro{text-align:center}
.testo-centro .testo-lead{margin-inline:auto}

/* ── Bottoni ──────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:.8rem;
  padding:1.05rem 2.3rem;border-radius:var(--raggio);
  font-size:.78rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  transition:background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
  border:1px solid transparent;
}
.btn--pieno{background:var(--pineta);color:var(--avorio)}
.btn--pieno:hover{background:var(--verde)}
.btn--bordo{border-color:var(--ink);color:var(--ink);background:transparent}
.btn--bordo:hover{background:var(--pineta);border-color:var(--pineta);color:var(--avorio)}
.btn--bordo-chiaro{border-color:rgba(243,240,233,.5);color:var(--avorio)}
.btn--bordo-chiaro:hover{background:var(--avorio);color:var(--pineta);border-color:var(--avorio)}
.btn--avorio{background:var(--avorio);color:var(--pineta)}
.btn--avorio:hover{background:var(--acqua)}
.btn svg{width:2.6rem;height:auto;flex:0 0 auto}

/* Freccia lunga "da progetto" */
.freccia-lunga{
  display:inline-flex;align-items:center;color:var(--verde);
  transition:transform .45s var(--ease);
}
.freccia-lunga svg{width:74px;height:26px}
.freccia-lunga:hover{transform:translateX(10px)}
.sezione--scura .freccia-lunga{color:var(--acqua)}

/* ═══ HEADER ══════════════════════════════════════════════════════ */
.header{
  position:fixed;inset:0 0 auto 0;z-index:900;
  height:var(--header-h);
  display:flex;align-items:center;
  transition:background-color .45s var(--ease), box-shadow .45s var(--ease), height .45s var(--ease);
}
.header__inner{
  width:min(1680px, 100% - var(--gutter)*2);margin-inline:auto;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;
}
.header__lato{display:flex;align-items:center;gap:2.2rem}
.header__lato--dx{justify-content:flex-end}
.header .btn--visita{padding:.8rem 1.6rem;font-size:.68rem;border-color:rgba(243,240,233,.55);color:var(--avorio)}
.header .btn--visita:hover{background:var(--avorio);color:var(--pineta);border-color:var(--avorio)}
.header__nav{display:flex;gap:2rem}
.header__nav a{
  font-size:.72rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  color:var(--avorio);padding-block:.4rem;position:relative;
}
.header__nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--ease);
}
.header__nav a:hover::after{transform:scaleX(1)}
.header__logo img{height:88px;width:auto;transition:height .45s var(--ease)}
.header__logo .logo--scuro{display:none}
.lingua{display:flex;gap:.55rem;font-size:.72rem;font-weight:600;letter-spacing:.2em;color:var(--avorio)}
.lingua a{opacity:.55;transition:opacity .3s}
.lingua a:hover{opacity:1}
.lingua .attiva{opacity:1;border-bottom:1px solid currentColor}
.burger{display:inline-flex;flex-direction:column;gap:7px;padding:.6rem;color:var(--avorio)}
.burger span{display:block;width:44px;height:1px;background:currentColor;transition:transform .35s var(--ease), opacity .35s}

/* Header compatto su scroll: fondo avorio, logo scuro */
.header--solido{background:rgba(243,240,233,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--linea);height:92px}
.header--solido .header__logo img{height:66px}
.header--solido .header__logo .logo--bianco{display:none}
.header--solido .header__logo .logo--scuro{display:block}
.header--solido .header__nav a,
.header--solido .lingua,
.header--solido .burger{color:var(--ink)}
.header--solido .btn--visita{border-color:var(--ink);color:var(--ink)}
.header--solido .btn--visita:hover{background:var(--pineta);color:var(--avorio);border-color:var(--pineta)}

/* ═══ OFF-CANVAS (burger desktop) ═════════════════════════════════ */
.offcanvas{
  position:fixed;top:0;right:0;bottom:0;z-index:1000;
  width:min(480px, 92vw);
  background:var(--pineta);color:var(--avorio);
  padding:clamp(2.5rem,5vh,4rem) clamp(2rem,4vw,3.5rem);
  transform:translateX(105%);transition:transform .6s var(--ease);
  display:flex;flex-direction:column;gap:2.2rem;overflow-y:auto;
}
.offcanvas.aperto{transform:translateX(0)}
.offcanvas__chiudi{align-self:flex-end;padding:.4rem}
.offcanvas__chiudi svg{width:26px;height:26px}
.offcanvas__logo{width:150px;margin-inline:auto}
.offcanvas h3{font-size:1.55rem;letter-spacing:.28em;text-transform:uppercase;text-align:center;font-weight:400}
.offcanvas p{
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;line-height:2.2;
  text-align:center;color:rgba(243,240,233,.72);
}
.offcanvas .esclusiva{
  font-family:var(--f-display);font-weight:400;font-size:.95rem;
  letter-spacing:.04em;text-transform:none;color:var(--avorio);
}
.offcanvas__social{display:flex;justify-content:center;gap:1rem;margin-top:auto}
.velo{
  position:fixed;inset:0;z-index:950;background:rgba(24,42,33,.55);
  opacity:0;pointer-events:none;transition:opacity .5s var(--ease);
}
.velo.attivo{opacity:1;pointer-events:auto}

/* Icone social cerchiate */
.icona-cerchio{
  width:44px;height:44px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid rgba(243,240,233,.35);color:var(--avorio);
  transition:border-color .35s, background-color .35s, color .35s;
}
.icona-cerchio svg{width:16px;height:16px;fill:currentColor}
.icona-cerchio:hover{background:var(--avorio);color:var(--pineta);border-color:var(--avorio)}

/* ═══ MENU MOBILE ═════════════════════════════════════════════════ */
.menu-mobile{
  position:fixed;inset:0;z-index:980;background:var(--avorio);
  padding:calc(var(--header-h) + 1rem) var(--gutter) 6rem;
  transform:translateY(-102%);transition:transform .55s var(--ease);
  overflow-y:auto;
}
.menu-mobile.aperto{transform:translateY(0)}
.menu-mobile a{
  display:block;padding:1.1rem 0;border-bottom:1px solid var(--linea);
  font-size:.85rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;
}
.menu-mobile .esclusiva-mobile{
  margin-top:2rem;font-family:var(--f-display);font-weight:400;
  color:var(--ink-60);font-size:.95rem;letter-spacing:.03em;
}

/* ═══ HERO ════════════════════════════════════════════════════════ */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;background:var(--pineta)}
.hero__slide{
  position:absolute;inset:0;opacity:0;transition:opacity 1.6s var(--ease);
}
.hero__slide img{width:100%;height:100%;object-fit:cover}
.hero__slide.attiva{opacity:1}
.hero__slide.attiva img{animation:kenburns 13s var(--ease) forwards}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.07)}}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom, rgba(24,42,33,.42) 0%, rgba(24,42,33,.08) 42%, rgba(24,42,33,.5) 100%);
}
.hero__contenuto{
  position:absolute;inset:0;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:var(--avorio);padding:0 var(--gutter);
}
.hero__eyebrow{
  font-size:.72rem;font-weight:600;letter-spacing:.5em;text-transform:uppercase;
  color:var(--acqua);margin-bottom:1.6rem;
}
.hero h1{
  font-size:clamp(2.4rem, 6.4vw, 5.4rem);
  letter-spacing:.14em;text-transform:uppercase;font-weight:300;line-height:1.16;
}
.hero h1 .riga2{display:block;font-size:.5em;letter-spacing:.42em;margin-top:.9rem;font-weight:400}
.hero__sub{
  margin-top:2rem;font-size:.78rem;font-weight:500;letter-spacing:.34em;
  text-transform:uppercase;color:rgba(243,240,233,.85);max-width:46rem;line-height:2.1;
}
.hero__giu{position:absolute;bottom:7rem;left:50%;transform:translateX(-50%);z-index:3;color:var(--avorio)}
.hero__giu svg{width:22px;height:52px;animation:scendi 2.6s var(--ease) infinite}
@keyframes scendi{0%,100%{transform:translateY(0);opacity:.9}50%{transform:translateY(12px);opacity:.4}}
/* Binario indicatore slide (firma: linee sottili verticali, non pallini) */
.hero__rail{
  position:absolute;right:clamp(1.2rem,3vw,3rem);top:50%;transform:translateY(-50%);
  z-index:3;display:flex;flex-direction:column;gap:14px;
}
.hero__rail button{width:2px;height:38px;background:rgba(243,240,233,.35);transition:background .4s;padding:0}
.hero__rail button.attivo{background:var(--acqua)}

/* Animazione ingresso titoli hero */
.hero .sale{opacity:0;transform:translateY(26px);animation:saliHero 1.1s var(--ease) forwards}
.hero .sale:nth-child(2){animation-delay:.25s}
.hero .sale:nth-child(3){animation-delay:.5s}
@keyframes saliHero{to{opacity:1;transform:none}}

/* ═══ BARRA CONTATTO FISSA ════════════════════════════════════════ */
.barra-contatto{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:890;
  width:min(520px,100%);
  background:var(--pineta);color:var(--avorio);
  text-align:center;padding:1.05rem 1rem;
  font-size:.8rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;
  display:block;border-top:1px solid var(--linea-chiara);
  transition:background-color .35s;
}
.barra-contatto:hover{background:var(--verde)}
@media (max-width:768px){.barra-contatto{width:100%}}

/* Pulsante WhatsApp flottante */
.whatsapp{
  position:fixed;right:1.4rem;bottom:5.4rem;z-index:895;
  width:56px;height:56px;border-radius:50%;
  background:#1F5C3F;color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 28px rgba(24,42,33,.35);
  transition:transform .3s var(--ease), background-color .3s;
}
.whatsapp:hover{transform:translateY(-4px);background:#2F7A55}
.whatsapp svg{width:26px;height:26px;fill:currentColor}

/* ═══ SPLIT INTRO + IMMAGINI SOVRAPPOSTE ══════════════════════════ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.split--inversa>*:first-child{order:2}
.pila{position:relative;padding:0 0 4.5rem 3rem}
.pila__principale{position:relative;z-index:1}
.pila__principale::before{           /* cornice di quota (firma) */
  content:"";position:absolute;top:-1.4rem;left:-1.4rem;right:38%;bottom:38%;
  border:1px solid var(--verde);opacity:.55;z-index:-1;
}
.pila__sopra{
  position:absolute;z-index:2;right:-6%;bottom:0;width:62%;
  box-shadow:0 24px 60px rgba(24,42,33,.28);
}
.pila img{width:100%}

/* ═══ CONTATORI ═══════════════════════════════════════════════════ */
.contatori{display:grid;grid-template-columns:repeat(4,1fr)}
.contatore{
  padding:2.6rem 1.5rem;border-top:1px solid var(--linea);text-align:left;position:relative;
}
.contatore+.contatore{border-left:1px solid var(--linea)}
.contatore__cifra{
  font-family:var(--f-display);font-weight:200;
  font-size:clamp(3.6rem,7vw,6.2rem);line-height:1;
  color:var(--verde);opacity:.26;letter-spacing:-.01em;
}
.contatore__cifra sup{font-size:.4em;vertical-align:.9em;letter-spacing:0}
.contatore h3{
  font-family:var(--f-sans);font-size:.74rem;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase;margin-top:1rem;color:var(--ink);
}
@media (max-width:900px){
  .contatori{grid-template-columns:1fr 1fr}
  .contatore:nth-child(3){border-left:0}
}
@media (max-width:520px){
  .contatori{grid-template-columns:1fr}
  .contatore+.contatore{border-left:0}
}

.striscia-btn{display:flex;justify-content:center;padding-block:clamp(2rem,4vw,3rem)}

/* ═══ SPLIT DESCRIZIONE (testo + immagine a colonna piena) ════════ */
.split-foto{display:grid;grid-template-columns:1fr 1fr;min-height:78vh}
.split-foto__testo{
  display:flex;flex-direction:column;justify-content:center;
  padding:var(--sezione) clamp(1.5rem,5vw,5.5rem);
}
.split-foto__testo p+p{margin-top:1.2rem}
.split-foto__img{position:relative;min-height:420px}
.split-foto__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ═══ DETTAGLI: elenco con trattino di quota ══════════════════════ */
.dettagli-griglia{
  display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2.5rem,6vw,6rem);align-items:center;
}
.lista-quota{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 2.4rem}
.lista-quota li{
  display:flex;gap:1rem;align-items:baseline;
  padding:.85rem 0;border-bottom:1px solid var(--linea);
  font-size:.95rem;letter-spacing:.02em;
}
.lista-quota li::before{
  content:"";flex:0 0 22px;height:1px;background:var(--verde);
  position:relative;top:-.32em;
}
@media (max-width:760px){.lista-quota{grid-template-columns:1fr}}

/* Video con facciata (si carica solo al clic) */
.video-facciata{
  position:relative;overflow:hidden;border-radius:var(--raggio);
  aspect-ratio:16/9;background:var(--pineta);cursor:pointer;
}
.video-facciata img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:transform .8s var(--ease), opacity .5s}
.video-facciata:hover img{transform:scale(1.04);opacity:.95}
.video-facciata__play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--avorio);
}
.video-facciata__play span{
  width:96px;height:96px;border-radius:50%;
  border:1px solid rgba(243,240,233,.75);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;
  transition:background-color .35s, transform .35s var(--ease);
}
.video-facciata:hover .video-facciata__play span{background:rgba(143,189,180,.25);transform:scale(1.06)}
.video-facciata__play svg{width:26px;height:26px;fill:currentColor;margin-left:4px}
.video-facciata iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ═══ FASCIA CTA scura con foto ═══════════════════════════════════ */
.fascia-cta{position:relative;overflow:hidden;color:var(--avorio);text-align:center}
.fascia-cta__bg{position:absolute;inset:0}
.fascia-cta__bg img{width:100%;height:100%;object-fit:cover}
.fascia-cta__bg::after{content:"";position:absolute;inset:0;background:rgba(24,42,33,.72)}
.fascia-cta .contenitore{position:relative;z-index:2}
.fascia-cta h2{margin-bottom:1.2rem}
.fascia-cta p{max-width:56ch;margin:0 auto 2.4rem;color:rgba(243,240,233,.8)}

/* ═══ GALLERY SLIDER ══════════════════════════════════════════════ */
.slider{position:relative}
.slider__vista{overflow:hidden}
.slider__binario{display:flex;transition:transform .75s var(--ease)}
.slider__slide{flex:0 0 100%;padding:0 .5rem}
.slider__slide img{
  width:100%;aspect-ratio:16/9.4;object-fit:cover;cursor:zoom-in;border-radius:var(--raggio);
}
.slider__freccia{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  color:var(--ink);padding:1.2rem;transition:transform .3s var(--ease), color .3s;
}
.slider__freccia:hover{color:var(--verde)}
.slider__freccia svg{width:56px;height:22px}
.slider__freccia--prev{left:max(calc((100vw - var(--max))/2 - 6.5rem), .2rem)}
.slider__freccia--next{right:max(calc((100vw - var(--max))/2 - 6.5rem), .2rem)}
.slider__freccia--prev:hover{transform:translateY(-50%) translateX(-8px)}
.slider__freccia--next:hover{transform:translateY(-50%) translateX(8px)}
.slider__conta{
  margin-top:1.4rem;text-align:center;
  font-family:var(--f-sans);font-size:.82rem;font-weight:500;letter-spacing:.3em;color:var(--ink-60);
}
@media (max-width:1520px){
  .slider__freccia--prev{left:.4rem}.slider__freccia--next{right:.4rem}
  .slider__freccia{color:var(--avorio);mix-blend-mode:difference}
}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;z-index:1100;background:rgba(24,42,33,.96);
  display:none;align-items:center;justify-content:center;padding:4.5rem 1rem;
}
.lightbox.aperta{display:flex}
.lightbox img{max-width:min(1400px,94vw);max-height:82vh;object-fit:contain}
.lightbox__chiudi{position:absolute;top:1.6rem;right:1.8rem;color:var(--avorio)}
.lightbox__chiudi svg{width:28px;height:28px}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);color:var(--avorio);padding:1.4rem}
.lightbox__nav svg{width:56px;height:22px}
.lightbox__nav--prev{left:1rem}.lightbox__nav--next{right:1rem}
.lightbox__conta{
  position:absolute;bottom:1.8rem;left:50%;transform:translateX(-50%);
  color:rgba(243,240,233,.7);font-size:.8rem;font-weight:500;letter-spacing:.3em;font-family:var(--f-sans);
}

/* ═══ FISARMONICA (planimetrie / FAQ) ═════════════════════════════ */
.fisarmonica{border-top:1px solid var(--linea);max-width:880px;margin-inline:auto}
.fisarmonica__voce{border-bottom:1px solid var(--linea)}
.fisarmonica__testa{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  padding:1.5rem .2rem;text-align:left;
  font-family:var(--f-display);font-size:1.08rem;font-weight:400;letter-spacing:.01em;
}
.fisarmonica__segno{
  font-family:var(--f-sans);font-size:1.5rem;font-weight:300;color:var(--verde);
  transition:transform .4s var(--ease);flex:0 0 auto;line-height:1;
}
.fisarmonica__voce.aperta .fisarmonica__segno{transform:rotate(45deg)}
.fisarmonica__corpo{
  max-height:0;overflow:hidden;transition:max-height .55s var(--ease);
}
.fisarmonica__corpo-in{padding:0 .2rem 1.8rem;color:var(--ink-60)}
.fisarmonica__corpo-in img{margin-inline:auto;max-height:560px;width:auto}

/* ═══ FORM CONTATTO ═══════════════════════════════════════════════ */
.contatto-griglia{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.contatto-intro img{width:130px;margin-bottom:1.8rem}
.contatto-intro p+p{margin-top:1rem}
.contatto-intro .riservata{font-family:var(--f-sans);font-weight:600;color:var(--ink);font-size:.98rem;letter-spacing:.02em}

.form{display:grid;gap:1.1rem}
.form__riga{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media (max-width:640px){.form__riga{grid-template-columns:1fr}}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{
  width:100%;padding:1.05rem 1.15rem;
  background:#fff;border:1px solid var(--linea);border-radius:var(--raggio);
  font:inherit;color:var(--ink);transition:border-color .3s;
}
.form input:focus,.form textarea:focus{border-color:var(--acqua);outline:none}
.form textarea{min-height:140px;resize:vertical}
.form ::placeholder{color:rgba(32,36,31,.42)}
.form__privacy{display:flex;gap:.7rem;align-items:flex-start;font-size:.86rem;color:var(--ink-60)}
.form__privacy input{margin-top:.35rem;accent-color:var(--verde)}
.form__privacy a{text-decoration:underline;text-underline-offset:3px}
.form__invia{justify-self:start}
.form__esito{font-size:.95rem;display:none;padding:.9rem 1.1rem;border-radius:var(--raggio)}
.form__esito.ok{display:block;background:rgba(47,91,66,.12);color:var(--verde)}
.form__esito.errore{display:block;background:rgba(150,40,30,.1);color:#8a2b1d}
/* Campo honeypot: invisibile agli umani */
.campo-web{position:absolute !important;left:-6000px;opacity:0;height:1px;overflow:hidden}

/* Contatti diretti */
.contatti-diretti{text-align:center}
.contatti-diretti .recapiti{margin:1.2rem 0 2rem;font-size:1.05rem}
.contatti-diretti .recapiti strong{font-weight:600}
.contatti-diretti .azioni{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}

/* ═══ FASCIA RACCONTO SCURA ═══════════════════════════════════════ */
.racconto{position:relative;overflow:hidden;color:var(--avorio)}
.racconto__bg{position:absolute;inset:0}
.racconto__bg img{width:100%;height:100%;object-fit:cover}
.racconto__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(24,42,33,.86),rgba(24,42,33,.86))}
.racconto .contenitore{position:relative;z-index:2}
.racconto__colonne{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);margin-top:2.5rem}
.racconto__colonne p{color:rgba(243,240,233,.8)}
.racconto .btn{margin-top:2.8rem}
@media (max-width:820px){.racconto__colonne{grid-template-columns:1fr}}

/* ═══ MAPPA HOTSPOT ═══════════════════════════════════════════════ */
.mappa{display:grid;grid-template-columns:.9fr 1.6fr;background:var(--pineta);color:var(--avorio)}
.mappa__pannello{padding:clamp(2rem,4vw,3.5rem);display:flex;flex-direction:column;justify-content:flex-end;gap:1rem}
.mappa__pannello h3{color:var(--acqua);font-size:clamp(1.5rem,2.4vw,2rem)}
.mappa__pannello p{color:rgba(243,240,233,.78);font-size:.98rem}
.mappa__foto{position:relative;aspect-ratio:1600/1068}
.mappa__foto>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.punto{
  position:absolute;width:30px;height:30px;border-radius:50%;
  background:rgba(243,240,233,.96);
  border:1px solid rgba(24,42,33,.4);
  box-shadow:0 4px 18px rgba(12,22,17,.55);
  transform:translate(-50%,-50%);cursor:pointer;
  transition:transform .3s var(--ease), background-color .3s, border-color .3s;
}
.punto::before{
  content:"";position:absolute;inset:10px;border-radius:50%;
  background:var(--pineta);transition:background-color .3s;
}
.punto::after{
  content:"";position:absolute;inset:-9px;border-radius:50%;
  border:2px solid rgba(243,240,233,.95);animation:pulsa 2.4s var(--ease) infinite;
}
.punto:hover{transform:translate(-50%,-50%) scale(1.12)}
.punto.attivo{background:var(--pineta);border-color:rgba(243,240,233,.9)}
.punto.attivo::before{background:var(--acqua)}
@keyframes pulsa{0%{transform:scale(.7);opacity:1}100%{transform:scale(1.7);opacity:0}}
@media (max-width:860px){
  .mappa{grid-template-columns:1fr}
  .mappa__foto{order:-1}
}

/* ═══ BLOG ════════════════════════════════════════════════════════ */
.blog-griglia{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin-top:3rem}
.scheda-blog{
  background:rgba(243,240,233,.04);border:1px solid var(--linea-chiara);
  display:flex;flex-direction:column;transition:transform .4s var(--ease), border-color .4s;
}
.scheda-blog:hover{transform:translateY(-6px);border-color:var(--acqua)}
.scheda-blog img{aspect-ratio:16/10;object-fit:cover;width:100%}
.scheda-blog__corpo{padding:1.4rem 1.4rem 1.7rem;display:flex;flex-direction:column;gap:.7rem}
.scheda-blog h3{font-size:1.12rem;line-height:1.35;font-weight:400}
.scheda-blog p{font-size:.9rem;color:rgba(243,240,233,.65);line-height:1.6}
.scheda-blog time{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--acqua)}
@media (max-width:960px){.blog-griglia{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.blog-griglia{grid-template-columns:1fr}}

/* ═══ CTA FINALE ══════════════════════════════════════════════════ */
.cta-finale{text-align:center;background:var(--sabbia)}
.cta-finale a{
  font-family:var(--f-display);font-weight:300;
  font-size:clamp(2.2rem,5.4vw,4.2rem);letter-spacing:.1em;text-transform:uppercase;
  position:relative;display:inline-block;
}
.cta-finale a::after{
  content:"";position:absolute;left:0;bottom:-10px;height:1px;width:100%;
  background:var(--verde);transform:scaleX(.22);transform-origin:left;transition:transform .6s var(--ease);
}
.cta-finale a:hover::after{transform:scaleX(1)}

/* ═══ FOOTER ══════════════════════════════════════════════════════ */
.footer{background:var(--pineta);color:rgba(243,240,233,.75)}
.footer a:hover{color:var(--acqua)}
.footer__griglia{
  display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem;
  padding-block:var(--sezione) 3rem;
}
.footer h4{
  font-size:.72rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;
  color:var(--avorio);margin-bottom:1.4rem;
}
.footer li{padding:.3rem 0;font-size:.95rem}
.footer .etichetta{color:var(--acqua)}
.footer__fondo{
  border-top:1px solid var(--linea-chiara);padding:2.6rem 0 7rem;text-align:center;
  display:flex;flex-direction:column;gap:1.6rem;align-items:center;
}
.footer__social{display:flex;gap:1rem}
.footer__credit{font-size:.78rem;color:rgba(243,240,233,.45)}
.footer__credit a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:820px){.footer__griglia{grid-template-columns:1fr}}

/* ═══ COOKIE BANNER ═══════════════════════════════════════════════ */
.cookie{
  position:fixed;left:1.2rem;bottom:1.2rem;z-index:1200;
  width:min(420px, calc(100vw - 2.4rem));
  background:var(--avorio);color:var(--ink);
  border:1px solid var(--linea);border-radius:var(--raggio);
  box-shadow:0 20px 60px rgba(24,42,33,.35);
  padding:1.6rem;display:none;
}
.cookie.visibile{display:block}
.cookie h4{font-family:var(--f-display);font-size:1.15rem;font-weight:420;margin-bottom:.5rem}
.cookie p{font-size:.85rem;color:var(--ink-60);line-height:1.6}
.cookie p a{text-decoration:underline;text-underline-offset:3px}
.cookie__azioni{display:flex;gap:.7rem;margin-top:1.2rem;flex-wrap:wrap}
.cookie__azioni .btn{padding:.7rem 1.3rem;font-size:.68rem}

/* ═══ ANIMAZIONI DI SCROLL ════════════════════════════════════════ */
.rivela{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease), transform .9s var(--ease)}
.rivela.visto{opacity:1;transform:none}
.rivela--ritardo1{transition-delay:.12s}
.rivela--ritardo2{transition-delay:.24s}
.rivela--ritardo3{transition-delay:.36s}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .rivela{opacity:1;transform:none}
  .hero__slide.attiva img{animation:none}
}

/* ═══ RESPONSIVE ══════════════════════════════════════════════════ */
@media (max-width:1180px){
  .header__nav{display:none}
}
@media (max-width:1024px){
  :root{--header-h:96px}
  .header{background:rgba(243,240,233,.96);box-shadow:0 1px 0 var(--linea)}
  .header .header__logo img{height:64px}
  .header .header__logo .logo--bianco{display:none}
  .header .header__logo .logo--scuro{display:block}
  .header .lingua,.header .burger{color:var(--ink)}
  .header .btn--visita{display:none}
  .header__inner{grid-template-columns:auto 1fr auto}
  .header__lato--sx{display:none}
  .header__logo{justify-self:start}
  .hero{min-height:560px}
  .split,.dettagli-griglia,.contatto-griglia{grid-template-columns:1fr}
  .split--inversa>*:first-child{order:0}
  .split-foto{grid-template-columns:1fr}
  .split-foto__img{min-height:52vh}
  .pila{padding:0 0 3.5rem 1.4rem}
}
@media (min-width:1025px){
  .menu-mobile{display:none}
}
@media (max-width:600px){
  body{font-size:1rem}
  .hero h1{letter-spacing:.08em}
  .hero__rail{display:none}
  .hero__giu{bottom:6rem}
  .whatsapp{right:1rem;bottom:4.8rem;width:50px;height:50px}
  .btn{padding:.95rem 1.7rem;letter-spacing:.18em}
}

/* ═══ UTILITÀ ═════════════════════════════════════════════════════ */
.solo-sr{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.spazio-s{height:clamp(1.5rem,3vw,2.5rem)}
