@import url('../fonts/faces.css');

/* ============================================================
   FRANCESCO PASCALE — Vendita di immobili e hotel di lusso
   Direzione grafica presa dalla copertina Facebook del cliente:
   Didone maiuscolo in oro metallico, sans spaziatissimo,
   filetti sottili con fregio, nero profondo.
   ============================================================ */

:root{
  --c-bg:#08080a;
  --c-bg-2:#0d0d10;
  --c-surface:#131317;
  --c-surface-2:#1a1a1f;
  --c-ink:#f3f0ea;
  --c-ink-soft:rgba(243,240,234,.60);
  --c-ink-faint:rgba(243,240,234,.34);
  --c-line:rgba(201,162,39,.26);
  --c-line-soft:rgba(243,240,234,.10);

  --gold:#c9a227;
  --gold-hi:#f6e7b4;
  --gold-lo:#8f6f18;
  --gold-grad:linear-gradient(172deg,#f8ecc4 0%,#e0c164 26%,#b3891d 58%,#8a6a15 78%,#e4cf92 100%);
  --gold-line:linear-gradient(90deg,transparent,rgba(201,162,39,.55) 22%,rgba(246,231,180,.9) 50%,rgba(201,162,39,.55) 78%,transparent);

  --font-display:'Playfair Display',"Times New Roman",serif;
  --font-body:'Jost',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --step--1:clamp(.78rem,.74rem + .18vw,.86rem);
  --step-0:clamp(.95rem,.9rem + .22vw,1.05rem);
  --step-1:clamp(1.1rem,1rem + .45vw,1.3rem);
  --step-2:clamp(1.35rem,1.15rem + .9vw,1.9rem);
  --step-3:clamp(1.75rem,1.35rem + 1.8vw,3rem);
  --step-4:clamp(2.2rem,1.5rem + 3.2vw,4.6rem);
  --step-5:clamp(2.8rem,1.6rem + 5.4vw,7rem);

  --sp-1:.35rem; --sp-2:.7rem; --sp-3:1.1rem; --sp-4:1.7rem;
  --sp-5:2.6rem; --sp-6:3.8rem; --sp-7:5.5rem; --sp-8:8rem;
  --wrap:min(1280px,92vw);
  --wrap-narrow:min(880px,90vw);

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-io:cubic-bezier(.65,.05,.36,1);
  --dur:.5s; --dur-slow:1.1s;

  --nav-h:76px;
}

:root[data-theme="light"]{
  --c-bg:#faf7f1;
  --c-bg-2:#f3efe6;
  --c-surface:#ffffff;
  --c-surface-2:#f6f2ea;
  --c-ink:#16150f;
  --c-ink-soft:rgba(22,21,15,.66);
  --c-ink-faint:rgba(22,21,15,.42);
  --c-line:rgba(150,116,20,.32);
  --c-line-soft:rgba(22,21,15,.12);
  --gold:#96741a;
  --gold-hi:#b8901f;
  --gold-grad:linear-gradient(172deg,#a8801c 0%,#8a6a15 40%,#6f5410 100%);
  --gold-line:linear-gradient(90deg,transparent,rgba(150,116,20,.45) 22%,rgba(150,116,20,.85) 50%,rgba(150,116,20,.45) 78%,transparent);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;background:var(--c-bg);color:var(--c-ink);
  font-family:var(--font-body);font-size:var(--step-0);font-weight:300;
  line-height:1.7;letter-spacing:.012em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background .5s var(--ease),color .5s var(--ease);
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.1;margin:0;letter-spacing:.005em}
p{margin:0 0 var(--sp-3)}
::selection{background:rgba(201,162,39,.3);color:var(--c-ink)}

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

.wrap{width:var(--wrap);margin-inline:auto}
.wrap-narrow{width:var(--wrap-narrow);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:0;z-index:200;background:var(--gold);color:#0a0a0a;padding:.8rem 1.4rem}
.skip:focus{left:1rem;top:1rem}

/* ---------- marchio tipografico ---------- */
.gold{
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:var(--gold);
}
.rule{height:1px;background:var(--gold-line);border:0;margin:0}
.crest{display:flex;align-items:center;justify-content:center;gap:.85rem;margin:var(--sp-3) 0}
.crest::before,.crest::after{content:"";height:1px;flex:1;max-width:120px;background:var(--gold-line)}
.crest span{color:var(--gold);font-size:.6rem;letter-spacing:.4em;line-height:1}

.eyebrow{
  font-size:var(--step--1);letter-spacing:.42em;text-transform:uppercase;
  color:var(--gold);font-weight:400;margin:0 0 var(--sp-3);
}
.eyebrow--center{text-align:center}

.lead{font-size:var(--step-1);color:var(--c-ink-soft);font-weight:300;line-height:1.65}

/* ---------- navigazione ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:90;height:var(--nav-h);
  display:flex;align-items:center;
  transition:background .45s var(--ease),border-color .45s var(--ease),height .45s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-stuck{background:var(--c-bg);border-bottom-color:var(--c-line);height:64px}
.nav__in{width:var(--wrap);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}

.brand{display:flex;flex-direction:column;line-height:.94;letter-spacing:.22em;font-family:var(--font-display);text-transform:uppercase}
.brand__a{font-size:.62rem;color:var(--c-ink);letter-spacing:.34em;font-weight:400}
.brand__b{font-size:1.06rem;font-weight:600;letter-spacing:.19em}

.nav__links{display:flex;align-items:center;gap:var(--sp-4);list-style:none;margin:0;padding:0}
.nav__links a{
  font-size:.72rem;letter-spacing:.19em;text-transform:uppercase;color:var(--c-ink-soft);
  position:relative;padding:.4rem 0;transition:color .3s var(--ease);
}
.nav__links a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--gold);transition:width .4s var(--ease);
}
.nav__links a:hover{color:var(--c-ink)}
.nav__links a:hover::after{width:100%}

.nav__tools{display:flex;align-items:center;gap:var(--sp-2)}
.lang{display:flex;align-items:center;gap:.15rem}
.lang a{
  font-size:.66rem;letter-spacing:.12em;padding:.32rem .42rem;color:var(--c-ink-faint);
  text-transform:uppercase;transition:color .3s var(--ease);
}
.lang a:hover{color:var(--c-ink)}
.lang a[aria-current="true"]{color:var(--gold)}
.lang__sep{color:var(--c-ink-faint);font-size:.6rem}

.icon-btn{
  width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--c-line-soft);
  border-radius:50%;color:var(--c-ink-soft);transition:border-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease);
}
.icon-btn:hover{border-color:var(--c-line);color:var(--gold);transform:translateY(-1px)}
.icon-btn svg{width:16px;height:16px;fill:currentColor}
[data-theme="light"] .icon-sun{display:none}
:root:not([data-theme="light"]) .icon-moon{display:none}

.burger{display:none;width:42px;height:42px;place-items:center}
.burger span{display:block;width:20px;height:1px;background:var(--c-ink);position:relative;transition:background .3s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:1px;background:var(--c-ink);transition:transform .35s var(--ease)}
.burger span::before{top:-6px}.burger span::after{top:6px}
.nav.is-open .burger span{background:transparent}
.nav.is-open .burger span::before{transform:translateY(6px) rotate(45deg)}
.nav.is-open .burger span::after{transform:translateY(-6px) rotate(-45deg)}

/* ---------- hero a due campi (come la copertina del cliente) ---------- */
.hero{
  position:relative;min-height:100svh;display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  align-items:center;overflow:hidden;isolation:isolate;background:var(--c-bg);
}
.hero__bg{position:absolute;inset:0 0 0 46%;z-index:-2;overflow:hidden}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 55%;
  transform:scale(1.09);animation:heroZoom 20s var(--ease) forwards}
@keyframes heroZoom{to{transform:scale(1)}}
.hero__veil{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(90deg,var(--c-bg) 0%,var(--c-bg) 40%,color-mix(in srgb,var(--c-bg) 72%,transparent) 54%,color-mix(in srgb,var(--c-bg) 12%,transparent) 78%,transparent 100%),
    linear-gradient(0deg,color-mix(in srgb,var(--c-bg) 55%,transparent) 0%,transparent 45%);
}
.hero__in{
  grid-column:1;width:min(760px,100%);justify-self:end;
  padding:calc(var(--nav-h) + var(--sp-6)) var(--sp-3) var(--sp-7) max(5vw,calc((100vw - var(--wrap))/2));
}
.hero__title{
  font-size:clamp(2.6rem,1.2rem + 5vw,6.2rem);
  text-transform:uppercase;letter-spacing:.04em;margin:0;
}
.hero__title .l1{display:block;font-size:.5em;letter-spacing:.28em;font-weight:400;color:var(--c-ink)}
.hero__title .l2{display:block;font-weight:600;letter-spacing:.055em;margin-top:-.05em;white-space:nowrap}
.hero__claim{max-width:30ch;margin:var(--sp-4) 0 0;font-size:var(--step-2);font-family:var(--font-display);line-height:1.28;color:var(--c-ink)}
.hero__sub{max-width:46ch;margin:var(--sp-3) 0 var(--sp-5);color:var(--c-ink-soft)}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}
.hero__cta .btn{--pad:.95rem 1.7rem}
.hero__scroll{
  position:absolute;left:50%;bottom:2rem;transform:translateX(-50%);z-index:2;
  font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--c-ink-faint);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
}
.hero__scroll i{display:block;width:1px;height:44px;background:linear-gradient(180deg,var(--gold),transparent);animation:drop 2.4s var(--ease) infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- bottoni ---------- */
.btn{
  --pad:1rem 2.1rem;
  display:inline-flex;align-items:center;gap:.7rem;padding:var(--pad);
  font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;font-weight:400;
  border:1px solid var(--c-line);color:var(--c-ink);position:relative;overflow:hidden;
  transition:color .4s var(--ease),border-color .4s var(--ease);
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--gold-grad);
  transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1;
}
.btn:hover{color:#0a0a0a;border-color:transparent}
.btn:hover::before{transform:translateY(0)}
.btn--solid{border-color:transparent;color:#0a0a0a}
.btn--solid::before{transform:translateY(0)}
.btn--solid:hover::before{transform:translateY(0);filter:brightness(1.12)}
/* in tema chiaro l'oro è scuro: il testo deve schiarirsi per restare leggibile */
[data-theme="light"] .btn--solid,
[data-theme="light"] .btn:hover,
[data-theme="light"] .wa{color:#fbf9f4}
.btn--ghost{border-color:var(--c-line-soft)}
.btn span{position:relative;z-index:1}
.btn svg{width:13px;height:13px;fill:currentColor;position:relative;z-index:1;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(4px)}

/* ---------- sezioni ---------- */
.sec{padding:var(--sp-8) 0;position:relative}
.sec--tight{padding:var(--sp-7) 0}
.sec--dark{background:var(--c-bg-2)}
.sec--panel{background:var(--c-surface)}
.sec__head{max-width:62ch}
.sec__head--center{margin-inline:auto;text-align:center}
.sec__title{font-size:var(--step-3);margin:0 0 var(--sp-3)}

/* barra credibilità */
.facts{border-block:1px solid var(--c-line-soft);background:var(--c-bg-2)}
.facts__in{display:grid;grid-template-columns:repeat(4,1fr);width:var(--wrap);margin-inline:auto}
.fact{padding:var(--sp-5) var(--sp-3);text-align:center;position:relative}
.fact + .fact::before{content:"";position:absolute;left:0;top:22%;height:56%;width:1px;background:var(--c-line-soft)}
.fact__n{font-family:var(--font-display);font-size:var(--step-2);letter-spacing:.04em;display:block;margin-bottom:.35rem}
.fact__l{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--c-ink-faint);line-height:1.5}

/* problema */
.statement{text-align:center;max-width:26ch;margin:0 auto var(--sp-5);font-size:var(--step-3)}
.statement-body{max-width:60ch;margin-inline:auto;text-align:center;color:var(--c-ink-soft)}

/* cosa facciamo */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-7);align-items:center}
.split__media{position:relative;aspect-ratio:4/5;overflow:hidden}
.split__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.split:hover .split__media img{transform:scale(1.04)}
.split__media::after{content:"";position:absolute;inset:0;border:1px solid var(--c-line);pointer-events:none;margin:12px}

.items{list-style:none;margin:var(--sp-5) 0 0;padding:0;display:grid;gap:var(--sp-4)}
.items li{padding-left:var(--sp-4);border-left:1px solid var(--c-line);position:relative}
.items h3{font-size:var(--step-1);margin:0 0 .35rem;font-family:var(--font-display)}
.items p{margin:0;color:var(--c-ink-soft);font-size:var(--step-0)}

/* ---------- portfolio ---------- */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:var(--sp-5) 0 var(--sp-6)}
.filter{
  padding:.55rem 1.25rem;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;
  border:1px solid var(--c-line-soft);color:var(--c-ink-faint);
  transition:color .35s var(--ease),border-color .35s var(--ease);
}
.filter:hover{color:var(--c-ink);border-color:var(--c-line)}
.filter[aria-pressed="true"]{color:var(--gold);border-color:var(--c-line)}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
.card{
  position:relative;overflow:hidden;background:var(--c-surface);cursor:pointer;
  text-align:left;width:100%;padding:0;display:block;
  transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.card.is-hidden{display:none}
.card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--c-surface-2)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s var(--ease)}
.card:hover .card__media img{transform:scale(1.07)}
.card__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(4,4,6,.86) 0%,rgba(4,4,6,.16) 46%,transparent 72%);
}
.card__tag{
  position:absolute;top:14px;left:14px;z-index:2;font-size:.58rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-hi);border:1px solid rgba(201,162,39,.5);
  padding:.3rem .7rem;background:rgba(8,8,10,.55);
}
.card__body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:var(--sp-4)}
.card__t{font-size:var(--step-1);color:#f5f2ec;margin:0 0 .2rem;font-family:var(--font-display)}
.card__l{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(245,242,236,.62);display:flex;align-items:center;gap:.5rem}
.card__l::before{content:"";width:14px;height:1px;background:var(--gold)}
.card__more{
  position:absolute;right:var(--sp-4);bottom:var(--sp-4);z-index:2;
  width:34px;height:34px;border:1px solid rgba(201,162,39,.45);border-radius:50%;
  display:grid;place-items:center;opacity:0;transform:translateY(6px);
  transition:opacity .4s var(--ease),transform .4s var(--ease);
}
.card:hover .card__more{opacity:1;transform:translateY(0)}
.card__more svg{width:12px;height:12px;fill:var(--gold-hi)}

.portfolio-note{text-align:center;margin-top:var(--sp-6)}

/* ---------- overlay scheda ---------- */
.sheet{position:fixed;inset:0;z-index:120;display:none;background:var(--c-bg)}
.sheet.is-open{display:block;animation:fade .35s var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.sheet__in{height:100%;overflow-y:auto;overscroll-behavior:contain}
.sheet__head{position:sticky;top:0;z-index:3;background:var(--c-bg);border-bottom:1px solid var(--c-line-soft)}
.sheet__head-in{width:var(--wrap);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:1.1rem 0}
.sheet__t{font-size:var(--step-2);margin:0}
.sheet__l{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:.25rem}
.sheet__body{width:var(--wrap);margin-inline:auto;padding:var(--sp-5) 0 var(--sp-7)}
.sheet__desc{max-width:64ch;color:var(--c-ink-soft);font-size:var(--step-1);margin-bottom:var(--sp-5)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-3)}
.gallery figure{margin:0;overflow:hidden;background:var(--c-surface-2);aspect-ratio:4/3}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.gallery figure:hover img{transform:scale(1.05)}
.sheet__foot{margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--c-line-soft);display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;justify-content:space-between}
.sheet__note{font-size:var(--step--1);color:var(--c-ink-faint);max-width:52ch}

/* ---------- ricerca su mandato ---------- */
.mandate{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-7);align-items:center}
.places{display:flex;flex-wrap:wrap;gap:.45rem}
.places span{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-ink-soft);
  border:1px solid var(--c-line-soft);padding:.45rem .85rem;transition:border-color .35s var(--ease),color .35s var(--ease);
}
.places span:hover{border-color:var(--c-line);color:var(--gold)}

/* ---------- percorso ---------- */
.steps{list-style:none;margin:var(--sp-6) 0 0;padding:0;display:grid;gap:0;counter-reset:s}
.step{
  display:grid;grid-template-columns:auto 1fr;gap:var(--sp-5);
  padding:var(--sp-5) 0;border-top:1px solid var(--c-line-soft);
}
.step:last-child{border-bottom:1px solid var(--c-line-soft)}
.step__n{font-family:var(--font-display);font-size:var(--step-2);color:var(--gold);line-height:1;min-width:3ch}
.step h3{font-size:var(--step-1);margin:0 0 .5rem}
.step p{margin:0;color:var(--c-ink-soft);max-width:62ch}
.step--key{background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 7%,transparent),transparent 62%)}
.step--key .step__n{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---------- riservatezza ---------- */
.vault{text-align:center;padding-block:var(--sp-8);border-block:1px solid var(--c-line)}
.vault .sec__title{font-size:var(--step-3);max-width:22ch;margin-inline:auto}
.vault p{max-width:58ch;margin-inline:auto;color:var(--c-ink-soft)}

/* ---------- perché noi ---------- */
.cols{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-5);margin-top:var(--sp-6)}
.col{padding-top:var(--sp-4);border-top:1px solid var(--c-line)}
.col h3{font-size:var(--step-1);margin:0 0 .6rem}
.col p{margin:0;color:var(--c-ink-soft)}

/* ---------- faq ---------- */
.faq{max-width:900px;margin-inline:auto}
.qa{border-bottom:1px solid var(--c-line-soft)}
.qa__q{
  width:100%;text-align:left;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);
  padding:var(--sp-4) 0;font-family:var(--font-display);font-size:var(--step-1);color:var(--c-ink);
  transition:color .3s var(--ease);
}
.qa__q:hover{color:var(--gold)}
.qa__i{flex:0 0 auto;width:16px;height:16px;position:relative;margin-top:.5rem}
.qa__i::before,.qa__i::after{content:"";position:absolute;background:var(--gold);transition:transform .4s var(--ease)}
.qa__i::before{left:0;top:7px;width:16px;height:1px}
.qa__i::after{left:7px;top:0;width:1px;height:16px}
.qa[open] .qa__i::after{transform:scaleY(0)}
.qa__a{padding:0 0 var(--sp-4);color:var(--c-ink-soft);max-width:74ch}
.qa__a p:last-child{margin-bottom:0}

/* ---------- collaborazioni ---------- */
.partners{max-width:960px;margin-inline:auto;text-align:center}
.partners__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin:var(--sp-6) 0}
.partner h3{font-size:var(--step-1);margin:0 0 .5rem}
.partner p{margin:0;color:var(--c-ink-soft);font-size:var(--step-0)}

/* ---------- contatti ---------- */
.contact{text-align:center}
.contact__num{
  font-family:var(--font-display);font-size:var(--step-2);letter-spacing:.08em;
  display:inline-block;margin-top:var(--sp-3);
}
.offices{display:flex;justify-content:center;gap:var(--sp-7);margin-top:var(--sp-6);flex-wrap:wrap}
.office{text-align:center}
.office__l{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--c-ink-faint);margin-bottom:.4rem}
.office__v{font-family:var(--font-display);font-size:var(--step-1)}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--c-line-soft);padding:var(--sp-6) 0 var(--sp-4);background:var(--c-bg-2)}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--sp-5)}
.foot__b .brand{margin-bottom:var(--sp-2)}
.foot p,.foot li{font-size:var(--step--1);color:var(--c-ink-faint)}
.foot h4{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--c-ink-soft);font-family:var(--font-body);font-weight:400;margin:0 0 var(--sp-3)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.foot ul a{color:var(--c-ink-faint);transition:color .3s var(--ease)}
.foot ul a:hover{color:var(--gold)}
.foot__bar{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--c-line-soft);display:flex;flex-wrap:wrap;gap:var(--sp-3);justify-content:space-between;align-items:center}
.foot__note{max-width:70ch;font-size:var(--step--1);color:var(--c-ink-faint)}

/* ---------- whatsapp flottante + cookie ---------- */
.wa{
  position:fixed;right:20px;bottom:20px;z-index:80;width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;background:var(--gold-grad);color:#0a0a0a;
  box-shadow:0 10px 30px rgba(0,0,0,.45);transition:transform .35s var(--ease);
}
.wa:hover{transform:translateY(-3px) scale(1.04)}
.wa svg{width:25px;height:25px;fill:currentColor}

.cookie{
  position:fixed;left:0;right:0;bottom:0;z-index:110;
  background:var(--c-surface);border-top:1px solid var(--c-line);
  padding:var(--sp-3) 0;display:none;
}
.cookie.is-on{display:block;animation:up .5s var(--ease)}
@keyframes up{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}
.cookie__in{
  width:var(--wrap);margin-inline:auto;display:flex;align-items:center;
  gap:var(--sp-4);justify-content:space-between;flex-wrap:wrap;
}
.cookie p{font-size:var(--step--1);color:var(--c-ink-soft);margin:0;max-width:72ch}
.cookie .btn{flex:0 0 auto}

/* ---------- reveal (con rete di sicurezza) ---------- */
.r{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.r.in,.no-js .r,.r.safety{opacity:1;transform:none}
.r-d1{transition-delay:.09s}.r-d2{transition-delay:.18s}.r-d3{transition-delay:.27s}.r-d4{transition-delay:.36s}
@media (prefers-reduced-motion:reduce){
  .r{opacity:1!important;transform:none!important;transition:none!important}
  .hero__bg img{animation:none;transform:none}
  .hero__scroll i{animation:none}
}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .split,.mandate{grid-template-columns:1fr;gap:var(--sp-5)}
  .split__media{aspect-ratio:16/10;order:-1}
  .partners__grid{grid-template-columns:1fr;gap:var(--sp-4)}
  .foot__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  :root{--sp-8:5rem;--sp-7:3.6rem}
  .burger{display:grid}
  .nav__links{
    position:fixed;inset:var(--nav-h) 0 0 0;background:var(--c-bg);
    flex-direction:column;align-items:flex-start;justify-content:flex-start;
    gap:0;padding:var(--sp-5) 6vw var(--sp-7);overflow-y:auto;
    transform:translateX(100%);transition:transform .5s var(--ease);
  }
  .nav.is-open .nav__links{transform:translateX(0)}
  .nav__links li{width:100%;border-bottom:1px solid var(--c-line-soft)}
  .nav__links a{display:block;padding:1.15rem 0;font-size:.86rem;letter-spacing:.22em}
  .facts__in{grid-template-columns:repeat(2,1fr)}
  .fact:nth-child(3)::before,.fact:nth-child(1)::before{display:none}
  .fact:nth-child(3),.fact:nth-child(4){border-top:1px solid var(--c-line-soft)}
  .grid{grid-template-columns:1fr}
  .cols{grid-template-columns:1fr;gap:var(--sp-4)}
  .step{grid-template-columns:1fr;gap:var(--sp-2)}
  .offices{gap:var(--sp-5)}
  .foot__grid{grid-template-columns:1fr;gap:var(--sp-5)}
  /* su telefono il testo sta sopra l'immagine: la velatura deve reggere la lettura */
  .hero__veil{background:linear-gradient(0deg,var(--c-bg) 8%,color-mix(in srgb,var(--c-bg) 88%,transparent) 34%,color-mix(in srgb,var(--c-bg) 80%,transparent) 72%,color-mix(in srgb,var(--c-bg) 62%,transparent) 100%)}
  .hero__scroll{display:none}
  .cookie__in{width:90vw;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}
  .wa{right:14px;bottom:14px}
  .hero{grid-template-columns:1fr;min-height:100svh}
  .hero__bg{inset:0}
  .hero__bg img{object-position:center 45%}
  .hero__in{grid-column:1;width:100%;justify-self:stretch;padding:calc(var(--nav-h) + var(--sp-5)) 6vw calc(var(--sp-7) + 5rem)}
}
@media (max-width:520px){
  .brand__b{font-size:.95rem}
  .btn{--pad:.9rem 1.5rem;font-size:.66rem}
  .hero__cta{flex-direction:column;align-items:flex-start}
  .hero__cta .btn{width:100%;justify-content:center}
}

@media print{.nav,.wa,.cookie,.hero__scroll{display:none}}
