/* ==========================================================================
   VintagEvents — Collezione Pisaniello
   Foglio di stile unico. Nessun framework, nessuna dipendenza.
   ========================================================================== */

:root{
  /* Palette: inchiostro del logo + verde bottiglia della FIAT 1400 + ore dorate */
  --notte:#131e1a;
  --verde:#1e3a30;
  --verde-cupo:#122520;
  --verde-chiaro:#2f5347;
  --ocra:#9a6320;
  --ocra-scuro:#7c4e17;
  --oro:#d69a3c;
  --avorio:#f6ede0;
  --avorio-2:#efe3d2;
  --sabbia:#dfccb2;
  --riga:rgba(154,99,32,.28);

  --serif:"Bodoni Moda",Georgia,"Times New Roman",serif;
  --sans:"Jost","Futura","Century Gothic",system-ui,-apple-system,"Segoe UI",sans-serif;

  --mis:min(1180px,92vw);
  --mis-stretta:min(760px,92vw);
  --ombra:0 18px 50px -24px rgba(19,30,26,.55);
}

*,*::before,*::after{box-sizing:border-box}

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  scroll-padding-top:96px;
}

body{
  margin:0;
  font-family:var(--sans);
  font-weight:400;
  font-size:clamp(1rem,.96rem + .2vw,1.075rem);
  line-height:1.65;
  color:var(--notte);
  background:var(--avorio);
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit}

h1,h2,h3{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.012em;
  margin:0;
  text-wrap:balance;
}

p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

::selection{background:var(--oro);color:var(--notte)}

:focus-visible{
  outline:2px solid var(--oro);
  outline-offset:3px;
  border-radius:2px;
}

/* ------------------------------------------------------------------ sfondo */

/* Sfondo: la Costiera Amalfitana al tramonto, fotografia ferma.
   Livello fisso a sé: allo scorrimento il browser non lo ridisegna. */
body::before{
  content:"";
  position:fixed;
  top:0;right:0;bottom:0;left:0;
  z-index:-2;
  background:#2b3a3a url("../assets/sfondo-costiera.jpg") 50% 46% / cover no-repeat;
  transform:translateZ(0);
  pointer-events:none;
}
@media (orientation:portrait){
  body::before{background-position:56% 58%}
}

/* ------------------------------------------------------------------ velo
   Transizione fra le pagine: pannello avorio con il logo. Si apre da solo
   via animazione CSS, così anche senza JavaScript la pagina resta leggibile. */

#velo{
  position:fixed;
  top:0;right:0;bottom:0;left:0;
  z-index:200;
  display:grid;
  place-items:center;
  background:var(--avorio);
  pointer-events:none;
  animation:velo-apre .62s cubic-bezier(.6,.02,.2,1) .12s both;
}
#velo img{
  width:min(340px,58vw);
  animation:velo-logo .74s cubic-bezier(.3,.7,.2,1) both;
}
#velo::after{ /* filo dorato che attraversa il pannello */
  content:"";
  position:absolute;
  left:0;right:0;
  top:50%;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--oro),transparent);
  transform:scaleX(0);
  animation:velo-filo .66s cubic-bezier(.4,0,.1,1) both;
}
@keyframes velo-apre{
  0%{opacity:1;transform:translateY(0)}
  65%{opacity:0;transform:translateY(-2%)}
  100%{opacity:0;transform:translateY(-100%);visibility:hidden}
}
@keyframes velo-logo{
  0%{opacity:0;transform:translateY(14px) scale(.97)}
  40%{opacity:1;transform:none}
  100%{opacity:0;transform:translateY(-10px) scale(1.01)}
}
@keyframes velo-filo{
  0%{transform:scaleX(0);opacity:0}
  45%{transform:scaleX(1);opacity:.9}
  100%{transform:scaleX(1) translateY(-46vh);opacity:0}
}
/* chiusura, al clic su un collegamento interno */
#velo.spento{visibility:hidden;opacity:0;pointer-events:none}
#velo.chiude{
  pointer-events:auto;
  animation:velo-chiude .42s cubic-bezier(.65,0,.35,1) forwards;
  visibility:visible;
  opacity:1;
}
#velo.chiude img{animation:velo-logo-entra .42s cubic-bezier(.2,.8,.3,1) both}
#velo.chiude::after{animation:none;opacity:0}
@keyframes velo-chiude{
  0%{opacity:0;transform:translateY(18%)}
  100%{opacity:1;transform:translateY(0)}
}
@keyframes velo-logo-entra{
  0%{opacity:0;transform:translateY(22px)}
  100%{opacity:1;transform:none}
}

/* ---------------------------------------------------------------- testata */

.testata{
  position:fixed;
  top:0;left:0;right:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.15rem max(1.25rem,4vw);
  transition:background .45s ease,box-shadow .45s ease,padding .45s ease;
}
.testata::before{
  content:"";
  position:absolute;
  top:0;right:0;bottom:-60px;left:0;
  z-index:-1;
  background:linear-gradient(to bottom,rgba(12,22,19,.62),rgba(12,22,19,.28) 55%,rgba(12,22,19,0));
  pointer-events:none;
  transition:opacity .45s ease;
}
.testata.compatta::before{opacity:0}
.testata.compatta{
  background:rgba(23,45,38,.96);
  box-shadow:0 1px 0 rgba(214,154,60,.35);
  padding-top:.7rem;
  padding-bottom:.7rem;
}
.marchio{display:block;line-height:0;flex:none}
.marchio img{width:clamp(126px,13vw,168px);transition:width .45s ease}
.testata.compatta .marchio img{width:clamp(104px,10vw,132px)}

.menu{
  display:flex;
  align-items:center;
  gap:clamp(1rem,2.6vw,2.4rem);
  font-size:.86rem;
  letter-spacing:.09em;
  text-transform:lowercase;
  font-variant:small-caps;
  font-weight:500;
}
.menu a{
  color:var(--avorio);
  text-decoration:none;
  padding:.6rem .1rem;
  border-bottom:1px solid transparent;
  text-shadow:0 1px 14px rgba(19,30,26,.55);
  transition:border-color .3s ease,color .3s ease;
}
.menu a:hover{border-bottom-color:var(--oro)}
.menu a[aria-current="page"]{border-bottom-color:var(--oro)}
.testata.compatta .menu a{text-shadow:none}
.testata.compatta .menu a:hover{color:var(--oro)}

.menu .social{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  color:var(--avorio);
  border-bottom:0;
  padding:0;
  filter:drop-shadow(0 1px 10px rgba(19,30,26,.5));
}
.menu .social svg{width:21px;height:21px}
.menu .social:hover{color:var(--oro)}
.testata.compatta .menu .social{filter:none}

.menu .chiama{
  border:1px solid rgba(246,237,224,.45);
  border-radius:999px;
  padding:.42rem 1.05rem;
  white-space:nowrap;
}
.menu .chiama:hover{background:var(--oro);border-color:var(--oro);color:var(--notte)}
.testata.compatta .menu .social{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  color:var(--avorio);
  border-bottom:0;
  padding:0;
  filter:drop-shadow(0 1px 10px rgba(19,30,26,.5));
}
.menu .social svg{width:21px;height:21px}
.menu .social:hover{color:var(--oro)}
.testata.compatta .menu .social{filter:none}

.menu .chiama{border-color:rgba(214,154,60,.55)}

/* ------------------------------------------------------------------- hero */

.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:grid;
  align-items:end;
  padding:8rem max(1.25rem,4vw) clamp(3rem,9vh,6rem);
  color:var(--avorio);
  text-align:center;
}
.hero::after{ /* velatura in basso per staccare il testo dal mare */
  content:"";
  position:absolute;
  top:auto;right:0;bottom:0;left:0;
  height:100%;
  background:linear-gradient(to bottom,
    rgba(12,20,20,0) 0%,
    rgba(12,20,20,0) 22%,
    rgba(12,20,20,.30) 44%,
    rgba(12,20,20,.52) 62%,
    rgba(12,20,20,.78) 100%);
  pointer-events:none;
}
.hero-corpo{position:relative;z-index:1;width:var(--mis);margin:0 auto}

.slogan{
  font-family:var(--serif);
  font-size:clamp(2.7rem,8.4vw,6.8rem);
  line-height:1.02;
  letter-spacing:-.02em;
  margin:0 0 1.8rem;
  text-shadow:0 2px 34px rgba(12,20,18,.6),0 1px 4px rgba(12,20,18,.35);
}
.slogan em{font-style:italic}
.hero-azioni{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}
.hero:not(.hero-interna) .bottone{padding:1rem 2.1rem;font-size:.95rem}


/* hero della home: titolo in alto sul cielo, pulsanti in basso sull'asfalto,
   il Maggiolone libero nel mezzo */
.hero-casa{
  display:block;
  text-align:left;
  padding:clamp(6.5rem,15vh,9.5rem) max(1.25rem,5vw) clamp(1.8rem,5vh,3.2rem);
}
.hero-casa .hero-corpo{
  width:auto;
  margin:0;
  min-height:calc(100vh - clamp(6.5rem,15vh,9.5rem) - clamp(1.8rem,5vh,3.2rem));
  min-height:calc(100svh - clamp(6.5rem,15vh,9.5rem) - clamp(1.8rem,5vh,3.2rem));
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:2rem;
}
.hero-casa .slogan{
  font-size:clamp(2.7rem,6vw,5.9rem);
  line-height:1.02;
  margin:0;
}
@media (min-width:900px){
  .hero-casa .slogan span,.hero-casa .slogan em{white-space:nowrap}
}
.hero-casa .hero-azioni{justify-content:flex-start}
.hero-casa::after{
  height:100%;
  background:
    radial-gradient(ellipse 75% 60% at 0% 12%,rgba(10,20,17,.62),rgba(10,20,17,0) 72%),
    linear-gradient(to bottom,rgba(10,20,17,.45) 0%,rgba(10,20,17,0) 30%,rgba(10,20,17,0) 70%,rgba(10,20,17,.55) 100%);
}
/* frase d'apertura della home, subito sotto la fotografia */
.apertura{
  font-family:var(--serif);
  font-size:clamp(1.5rem,3vw,2.3rem);
  line-height:1.3;
  color:var(--verde);
  max-width:34ch;
  margin:0 0 clamp(3rem,7vw,5rem);
  text-wrap:balance;
}

/* hero interne (collezione, contatti, privacy) */
.hero-interna{
  min-height:62vh;
  min-height:62svh;
  align-items:end;
  text-align:left;
  padding-bottom:clamp(2.5rem,7vh,4.5rem);
}
.hero-interna .hero-corpo{max-width:var(--mis)}
.hero-interna h1{
  font-size:clamp(2.6rem,8vw,5.2rem);
  text-shadow:0 2px 30px rgba(12,20,18,.5);
}
.hero-interna p.intro{
  max-width:52ch;
  margin-top:1.2rem;
  color:rgba(246,237,224,.9);
  text-shadow:0 1px 16px rgba(12,20,18,.6);
}

/* ----------------------------------------------------------------- bottoni */

.bottone{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--sans);
  font-size:.88rem;
  font-weight:500;
  letter-spacing:.08em;
  font-variant:small-caps;
  text-decoration:none;
  padding:.85rem 1.7rem;
  border-radius:999px;
  border:1px solid var(--oro);
  background:var(--oro);
  color:var(--notte);
  cursor:pointer;
  transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s ease;
}
.bottone:hover{background:var(--avorio);border-color:var(--avorio);transform:translateY(-2px)}
.bottone.vuoto{background:rgba(10,20,17,.55);color:var(--avorio);border-color:rgba(246,237,224,.7);text-shadow:0 1px 6px rgba(10,20,17,.45)}
.bottone.vuoto:hover{background:rgba(246,237,224,.12);border-color:var(--avorio);color:var(--avorio)}
.bottone.scuro{background:var(--verde);border-color:var(--verde);color:var(--avorio)}
.bottone.scuro:hover{background:var(--verde-cupo);border-color:var(--oro);color:var(--oro)}

/* ----------------------------------------------------------------- sezioni */

.foglio{
  position:relative;
  z-index:1;
  background:var(--avorio);
}
.foglio.verde{background:var(--verde);color:var(--avorio)}
.foglio.sabbia{background:var(--avorio-2)}

.foglio h2,.foglio h3{color:var(--verde)}
.foglio.verde h2,.foglio.verde h3{color:var(--avorio)}
.sezione{width:var(--mis);margin:0 auto;padding:clamp(4rem,10vw,7.5rem) 0}
.sezione.corta{padding:clamp(3rem,6vw,4.5rem) 0}

.titolo-sezione{
  font-size:clamp(2rem,4.4vw,3.2rem);
  margin-bottom:1.1rem;
}
.sommario{max-width:56ch;color:rgba(19,30,26,.76)}
.foglio.verde .sommario{color:rgba(246,237,224,.8)}

.filo{
  border:0;
  height:1px;
  background:var(--riga);
  margin:0;
}

/* ---------------------------------------------------------- occasioni (home) */

.occasioni{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(248px,1fr));
  gap:clamp(1.4rem,3vw,2.6rem);
  margin-top:clamp(2.4rem,5vw,3.6rem);
}
.occasione figure{margin:0}
.occasione img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  filter:saturate(.92);
}
.occasione h3{font-size:1.5rem;margin:1.1rem 0 .5rem}
.occasione p{font-size:.96rem;color:rgba(19,30,26,.74)}

/* ------------------------------------------------------------- parco auto */

.parco{margin-top:clamp(2rem,4vw,3rem)}
.riga-auto{
  display:grid;
  grid-template-columns:96px 1fr auto;
  align-items:center;
  gap:clamp(1rem,3vw,2.4rem);
  padding:1.5rem 0;
  border-top:1px solid rgba(246,237,224,.18);
  text-decoration:none;
  color:inherit;
  transition:padding-left .4s ease;
}
.riga-auto:last-child{border-bottom:1px solid rgba(246,237,224,.18)}
.riga-auto:hover{padding-left:.7rem}
.riga-auto img{
  width:96px;height:66px;
  object-fit:cover;
  filter:grayscale(.35) contrast(1.05);
  transition:filter .4s ease;
}
.riga-auto:hover img{filter:none}
.riga-auto .nome{
  display:block;
  font-family:var(--serif);
  font-size:clamp(1.3rem,2.8vw,2rem);
  line-height:1.2;
}
.riga-auto .anno{
  display:block;
  font-size:.8rem;letter-spacing:.22em;font-variant:small-caps;
  color:var(--oro);
  margin-bottom:.15rem;
}
.riga-auto .freccia{font-size:1.4rem;color:var(--oro);transition:transform .4s ease}
.riga-auto:hover .freccia{transform:translateX(6px)}

/* ------------------------------------------------------------- prenotazione */

.passi{
  counter-reset:passo;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:clamp(1.6rem,4vw,3rem);
  margin-top:clamp(2.2rem,5vw,3.4rem);
}
.passo{position:relative;padding-top:2.6rem;border-top:1px solid var(--riga)}
.passo::before{
  counter-increment:passo;
  content:counter(passo,decimal-leading-zero);
  position:absolute;top:.9rem;left:0;
  font-family:var(--serif);
  font-size:.95rem;
  color:var(--ocra);
  letter-spacing:.08em;
}
.passo h3{font-size:1.32rem;margin-bottom:.5rem}
.passo p{font-size:.96rem;color:rgba(19,30,26,.74)}

/* ------------------------------------------------------- schede auto (collezione) */

.auto{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(1.8rem,4vw,4rem);
  align-items:start;
  padding:clamp(3.4rem,8vw,6rem) 0;
  border-top:1px solid var(--riga);
}
.auto:first-of-type{border-top:0;padding-top:clamp(2rem,4vw,3rem)}
.auto.rovescia .auto-foto{order:2}
.auto-foto{position:-webkit-sticky;position:sticky;top:104px;margin:0}
.auto-foto>img{
  width:100%;
  aspect-ratio:3/2;   /* le foto verticali usano .auto-foto.verticale */
  object-fit:cover;
  box-shadow:var(--ombra);
}
.auto-foto.verticale>img{aspect-ratio:4/5}
.auto-foto.quadrata>img{aspect-ratio:1/1}
.auto-foto figcaption{
  margin-top:.6rem;
  font-size:.78rem;
  letter-spacing:.04em;
  color:rgba(19,30,26,.55);
}
.auto h2{font-size:clamp(1.9rem,4vw,2.9rem);margin-bottom:.3rem}
.auto .anno{
  display:block;
  font-family:var(--sans);
  font-size:.82rem;letter-spacing:.24em;font-variant:small-caps;
  color:var(--ocra);
  margin-bottom:1rem;
}
.auto p{color:rgba(19,30,26,.78)}

.schede{
  list-style:none;
  margin:1.4rem 0 1.8rem;
  padding:0;
  border-top:1px solid var(--riga);
  font-size:.9rem;
}
.schede li{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.5rem 0;
  border-bottom:1px solid var(--riga);
}
.schede dt,.schede .voce{
  font-variant:small-caps;
  letter-spacing:.08em;
  color:rgba(19,30,26,.6);
}
.schede .dato{text-align:right}

.galleria{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.5rem;
  margin-top:1.4rem;
}
.galleria button{
  padding:0;border:0;background:none;cursor:pointer;line-height:0;
  aspect-ratio:4/3;
  min-height:62px;
  overflow:hidden;
}
.galleria img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.9);
  transition:transform .45s ease,filter .45s ease;
}
.galleria button:hover img{transform:scale(1.08);filter:none}

/* ------------------------------------------------------------------ lente */

#lente{
  position:fixed;
  top:0;right:0;bottom:0;left:0;
  z-index:150;
  display:none;
  place-items:center;
  background:rgba(14,22,20,.94);
  padding:max(1rem,3vw);
}
#lente[open],#lente.aperta{display:grid}
#lente img{
  max-width:min(1200px,94vw);
  max-height:86vh;
  max-height:86svh;
  width:auto;
  object-fit:contain;
  box-shadow:0 30px 80px -30px #000;
}
#lente .chiudi,#lente .scorri{
  position:absolute;
  background:none;border:0;
  color:var(--avorio);
  font-family:var(--serif);
  cursor:pointer;
  padding:.6rem 1rem;
  font-size:1.8rem;
  line-height:1;
  opacity:.75;
  transition:opacity .3s ease
}
#lente .chiudi:hover,#lente .scorri:hover{opacity:1}
#lente .chiudi{top:1rem;right:1rem;font-size:1.5rem}
#lente .prec{left:.5rem;top:50%;transform:translateY(-50%)}
#lente .succ{right:.5rem;top:50%;transform:translateY(-50%)}
#lente .conta{
  position:absolute;bottom:1.1rem;left:50%;transform:translateX(-50%);
  font-size:.78rem;letter-spacing:.2em;color:rgba(246,237,224,.7);
}

/* ---------------------------------------------------------------- contatti */

.contatti-griglia{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.dati p{margin-bottom:1.6rem}
.dati a{color:var(--ocra);text-decoration:none;border-bottom:1px solid var(--riga);display:inline-block;padding:.2rem 0}
.dati a:hover{border-bottom-color:var(--ocra)}
.etichetta{
  display:block;
  font-size:.76rem;letter-spacing:.22em;font-variant:small-caps;
  color:rgba(19,30,26,.55);
  margin-bottom:.25rem;
}
.dato-grande{font-family:var(--serif);font-size:1.45rem;line-height:1.3;overflow-wrap:anywhere}

.scorciatoie{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}

.mappa{
  margin-top:2.6rem;
  border:1px solid var(--riga);
  line-height:0;
  background:var(--avorio-2);
}
.mappa iframe{width:100%;height:320px;border:0;filter:sepia(.28) saturate(.85)}
.carica-mappa{
  display:block;width:100%;height:320px;
  border:0;background:none;cursor:pointer;
  padding:2rem;text-align:center;
  font-family:var(--sans);line-height:1.6;
  color:var(--verde);
}
.carica-mappa strong{
  display:block;
  font-weight:500;font-size:.9rem;
  letter-spacing:.1em;font-variant:small-caps;
  margin-bottom:.6rem;
}
.carica-mappa span{display:block;max-width:44ch;margin:0 auto;font-size:.84rem;color:rgba(19,30,26,.62)}
.carica-mappa:hover strong{color:var(--ocra)}
.carica-mappa a{color:var(--ocra)}

/* ----------------------------------------------------------- informativa */
.testo-lungo{max-width:68ch}
.testo-lungo h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin:2.6rem 0 .8rem}
.testo-lungo h2:first-child{margin-top:0}
.testo-lungo ul{padding-left:1.1rem;margin:0 0 1.1em}
.testo-lungo li{margin-bottom:.35rem}
.testo-lungo a{color:var(--ocra)}
.testo-lungo .da-completare{
  background:rgba(214,154,60,.16);
  border-left:2px solid var(--oro);
  padding:.9rem 1rem;font-size:.92rem;
}

/* modulo */
.modulo{display:grid;gap:1.1rem}
.campo{display:grid;gap:.35rem}
.campo label{
  font-size:.78rem;letter-spacing:.14em;font-variant:small-caps;
  color:rgba(19,30,26,.62);
}
.campo input,.campo select,.campo textarea{
  font-family:var(--sans);
  font-size:1rem;
  color:var(--notte);
  background:transparent;
  border:0;
  border-bottom:1px solid var(--riga);
  padding:.55rem .1rem;
  border-radius:0;
  width:100%;
  min-width:0;
  max-width:100%;
  transition:border-color .3s ease,background .3s ease;
}
.campo select{
  appearance:none;-webkit-appearance:none;
  cursor:pointer;
  padding-right:1.6rem;
  background-repeat:no-repeat;
  background-position:right .2rem center;
  background-size:11px 7px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 7'%3E%3Cpath fill='none' stroke='%239a6320' stroke-width='1.3' d='M1 1l4.5 4.5L10 1'/%3E%3C/svg%3E");
}
.campo textarea{resize:vertical;min-height:110px;line-height:1.6}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:0;
  border-bottom-color:var(--ocra);
  background:rgba(154,99,32,.05);
}
.coppia{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.modulo .bottone{justify-self:start;margin-top:.6rem}
.consenso{
  display:flex;gap:.6rem;align-items:flex-start;
  font-size:.86rem;line-height:1.5;color:rgba(19,30,26,.7);
}
.consenso input{margin-top:.3rem;accent-color:var(--ocra)}
.azione-auto{margin-top:1.8rem}
.esito{
  font-size:.92rem;
  padding:.8rem 1rem;
  border-left:2px solid var(--ocra);
  background:rgba(154,99,32,.08);
}
.esito[hidden]{display:none}
.trappola{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

/* ------------------------------------------------------------- banda finale */

.banda{
  text-align:center;
  padding:clamp(3.4rem,8vw,6rem) 0;
}
.banda h2{font-size:clamp(1.9rem,4.4vw,3rem);margin-bottom:1rem}
.banda p{color:rgba(246,237,224,.8);max-width:46ch;margin-inline:auto}
.banda .hero-azioni{margin-top:2rem}

/* -------------------------------------------------------------------- piede */

.piede{
  background:var(--verde-cupo);
  color:rgba(246,237,224,.72);
  font-size:.9rem;
  padding:clamp(2.6rem,6vw,4rem) max(1.25rem,4vw) 2rem;
  position:relative;
  z-index:1;
}
.piede-griglia{
  width:var(--mis);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:2.4rem;
  align-items:start;
}
.piede img{width:150px;margin-bottom:1rem}
.piede h4{
  font-family:var(--sans);
  font-weight:500;
  font-size:.76rem;letter-spacing:.2em;font-variant:small-caps;
  color:var(--oro);
  margin:0 0 .7rem;
}
.piede ul{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.piede ul a{display:inline-block;padding:.35rem 0}
.piede a{color:inherit;text-decoration:none}
.piede a:hover{color:var(--oro)}
.piede p{color:rgba(246,237,224,.62)}
.piede .firma{
  width:var(--mis);
  margin:2.6rem auto 0;
  padding-top:1.4rem;
  border-top:1px solid rgba(246,237,224,.14);
  display:flex;
  flex-wrap:wrap;
  gap:.6rem 1.6rem;
  justify-content:space-between;
  font-size:.78rem;
  color:rgba(246,237,224,.5);
}

.solo-stretto{display:none}

/* --------------------------------------------------------------- whatsapp */

.whatsapp{
  position:fixed;
  right:calc(1.1rem + env(safe-area-inset-right,0px));
  bottom:calc(1.1rem + env(safe-area-inset-bottom,0px));
  z-index:90;
  display:flex;
  align-items:center;
  height:58px;
  padding:0 16px;
  border-radius:999px;
  background:var(--verde);
  color:var(--oro);
  border:1px solid rgba(214,154,60,.65);
  box-shadow:0 14px 34px -12px rgba(8,18,14,.7);
  text-decoration:none;
  transition:background .3s ease,color .3s ease,transform .3s ease,box-shadow .3s ease;
  animation:wa-arriva .6s cubic-bezier(.2,.8,.3,1) 1.3s both;
}
.whatsapp svg{width:25px;height:25px;fill:currentColor;flex:none}
.whatsapp span{
  max-width:0;
  overflow:hidden;
  white-space:nowrap;
  color:var(--avorio);
  font-size:.86rem;
  font-weight:500;
  letter-spacing:.07em;
  font-variant:small-caps;
  transition:max-width .45s ease,margin .45s ease;
}
.whatsapp:hover,.whatsapp:focus-visible{background:var(--verde-cupo);transform:translateY(-2px);box-shadow:0 18px 38px -12px rgba(8,18,14,.8)}
.whatsapp:hover span,.whatsapp:focus-visible span{max-width:13rem;margin-left:.65rem}
body.lente-aperta .whatsapp{display:none}
@keyframes wa-arriva{from{opacity:0;transform:translateY(16px) scale(.9)}to{opacity:1;transform:none}}

/* ------------------------------------------------------------- reattività */

@media (max-width:900px){
  .auto,.contatti-griglia{grid-template-columns:1fr}
  .auto-foto{position:relative;top:auto}
  .auto.rovescia .auto-foto{order:0}
  .piede-griglia{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .testata{padding:.85rem 1rem}
  .marchio img{width:96px}
  .testata.compatta .marchio img{width:92px}
  .menu{gap:.35rem;font-size:.74rem;letter-spacing:.05em}
  .menu a{padding:.6rem .3rem}
  .menu .social{min-width:38px}
  /* il logo porta già alla pagina iniziale: su schermi stretti la voce è di troppo */
  .menu .voce-home{display:none}
  .solo-largo{display:none}
  .solo-stretto{display:inline}
  .galleria{grid-template-columns:repeat(3,1fr);gap:.4rem}
  .menu .social{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  color:var(--avorio);
  border-bottom:0;
  padding:0;
  filter:drop-shadow(0 1px 10px rgba(19,30,26,.5));
}
.menu .social svg{width:21px;height:21px}
.menu .social:hover{color:var(--oro)}
.testata.compatta .menu .social{filter:none}

.menu .chiama{padding:.36rem .85rem}
  .riga-auto{grid-template-columns:72px 1fr auto;gap:1rem}
  .riga-auto img{width:72px;height:52px}
  .coppia{grid-template-columns:1fr}
  .piede-griglia{grid-template-columns:1fr}
  .hero{padding-top:6.5rem}
  .whatsapp{height:54px;padding:0 14px}
  .hero-casa .hero-corpo{justify-content:flex-start;gap:1.5rem}
  .hero-casa .slogan{font-size:9.3vw}
  .hero-casa .hero-azioni{flex-wrap:nowrap;gap:.6rem}
  .hero:not(.hero-interna) .bottone{padding:.78rem 1.05rem;font-size:.8rem;white-space:nowrap}
}

/* telefoni molto stretti (iPhone SE e simili) */
@media (max-width:380px){
  .testata{padding:.75rem .8rem}
  .hero-casa .hero-azioni{flex-wrap:wrap}
  .hero:not(.hero-interna) .bottone{white-space:normal}
  .dato-grande{font-size:1.2rem}
  .marchio img{width:80px}
  .testata.compatta .marchio img{width:74px}
  .menu{gap:.25rem;font-size:.68rem}
  .menu a{padding:.55rem .25rem}
  .menu .social{min-width:34px;min-height:40px}
  .menu .social svg{width:19px;height:19px}
  .menu .chiama{padding:.32rem .6rem}
  .sezione{width:min(1180px,90vw)}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  #velo{display:none}
}

@media print{
  #velo,.testata,.whatsapp,body::before{display:none}
  body{background:#fff}
}
