/* =========================================================================
   PHOTOMIKE.IT — sistema visivo "Notturno sofisticato"
   Nero dominante · testo bianco caldo · il colore vive solo dentro le foto.
   Doppio registro tipografico: Archivo (display) + Cormorant (voce serif) + Inter (corpo).
   ========================================================================= */

/* ---- Token ------------------------------------------------------------- */
:root{
  --nero:#0A0A0A;          /* sfondo dominante */
  --nero-2:#121212;        /* blocchi di stacco */
  --nero-3:#1A1A1A;        /* card / hover */
  --bianco:#F4F2ED;        /* testo principale (bianco caldo) */
  --bianco-soft:#CFCCC4;   /* testo su scuro, secondario chiaro */
  --grigio:#8F8C85;        /* eyebrow, testo terziario */
  --linea:rgba(244,242,237,.13);
  --linea-forte:rgba(244,242,237,.28);

  --font-display:'Archivo',system-ui,sans-serif;   /* titoli d'impatto, wordmark */
  --font-serif:'Cormorant',Georgia,serif;          /* frasi-manifesto, nomi */
  --font-body:'Inter',system-ui,sans-serif;        /* corpo, eyebrow, UI */

  --head-h:70px;
  --wrap:1280px;
  --pad:clamp(20px,5vw,72px);

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

/* ---- Reset mirato ------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0}
img,picture,video{display:block;max-width:100%;height:auto}
button,input,textarea,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--bianco);outline-offset:3px}

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

/* ---- Base -------------------------------------------------------------- */
body{
  background:var(--nero);
  color:var(--bianco);
  font-family:var(--font-body);
  font-size:clamp(15px,1.05vw,17px);
  line-height:1.65;
  font-weight:400;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.section{padding-block:clamp(72px,11vw,150px)}
.bg-2{background:var(--nero-2)}

/* Occhiello (eyebrow) */
.eyebrow{
  font-family:var(--font-body);
  font-size:.72rem;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase;
  color:var(--grigio);
  display:inline-flex;align-items:center;gap:.7em;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--linea-forte)}
.eyebrow.no-line::before{display:none}

/* Titoli */
.h-display{
  font-family:var(--font-display);
  font-weight:800;line-height:.92;
  letter-spacing:-.02em;text-transform:uppercase;
  font-size:clamp(2.4rem,7vw,6rem);
}
.h-sec{
  font-family:var(--font-display);
  font-weight:700;line-height:1.02;
  letter-spacing:-.015em;
  font-size:clamp(1.9rem,4.4vw,3.4rem);
}
.serif{
  font-family:var(--font-serif);
  font-weight:400;line-height:1.28;
  letter-spacing:.002em;
  font-size:clamp(1.5rem,3.3vw,2.6rem);
}
.serif em{font-style:italic}
.lead{color:var(--bianco-soft);max-width:60ch}
.muted{color:var(--grigio)}

/* Bottoni / link-freccia (dettaglio "engineered": freccia CSS) */
.btn{
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--font-body);font-weight:600;
  font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.95em 1.6em;border:1px solid var(--linea-forte);
  border-radius:2px;color:var(--bianco);
  transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);
}
.btn:hover,.btn:focus-visible{background:var(--bianco);color:var(--nero);border-color:var(--bianco)}
.btn--ghost{border-color:transparent;padding-inline:0}
.arrow-link{
  display:inline-flex;align-items:center;gap:.6em;
  font-weight:600;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;
}
.arrow-link .arw{display:inline-block;transition:transform .4s var(--ease)}
.arrow-link:hover .arw,.arrow-link:focus-visible .arw{transform:translateX(6px)}

/* =========================================================================
   HEADER
   ========================================================================= */
.site-head{
  position:fixed;inset:0 0 auto 0;z-index:60;height:var(--head-h);
  display:flex;align-items:center;
  background:linear-gradient(to bottom,rgba(10,10,10,.85),rgba(10,10,10,0));
  transition:background .4s var(--ease),border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-head.is-stuck{background:rgba(10,10,10,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom-color:var(--linea)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;width:100%}
.brand{
  font-family:var(--font-display);font-weight:800;
  letter-spacing:.16em;font-size:1rem;text-transform:uppercase;
  position:relative;z-index:56;   /* sopra l'overlay nav mobile (z55) */
}
.brand span{color:var(--grigio)}
.nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,40px)}
.nav a{
  font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bianco-soft);position:relative;padding-block:6px;
  transition:color .3s var(--ease);
}
.nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--bianco);
  transition:width .35s var(--ease);
}
.nav a:hover,.nav a:focus-visible,.nav a[aria-current="page"]{color:var(--bianco)}
.nav a:hover::after,.nav a:focus-visible::after,.nav a[aria-current="page"]::after{width:100%}

.head-tools{display:flex;align-items:center;gap:16px;position:relative;z-index:56}
.lang-toggle{display:flex;align-items:center;gap:2px;font-size:.75rem;font-weight:600;letter-spacing:.08em}
.lang-toggle button{background:none;border:none;cursor:pointer;color:var(--grigio);padding:4px 5px;transition:color .3s}
.lang-toggle button[aria-pressed="true"]{color:var(--bianco)}
.lang-toggle .sep{color:var(--linea-forte)}

/* burger */
.burger{display:none;background:none;border:none;cursor:pointer;width:34px;height:34px;position:relative}
.burger span{position:absolute;left:6px;right:6px;height:1.5px;background:var(--bianco);transition:transform .4s var(--ease),opacity .3s}
.burger span:nth-child(1){top:12px}.burger span:nth-child(2){top:17px}.burger span:nth-child(3){top:22px}
body.nav-open .burger span:nth-child(1){transform:translateY(5px) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

/* =========================================================================
   LANDING (home) — slideshow a tutto schermo + wordmark a interni trasparenti
   ========================================================================= */
/* home landing: una sola schermata, nessuno scroll (niente footer) */
body.is-landing{overflow:hidden}
.landing{position:relative;height:100svh;overflow:hidden;display:flex;align-items:flex-end}
.landing__slides{position:absolute;inset:0;z-index:0}
.landing__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 2.2s var(--ease)}
.landing__slide.is-active{opacity:1}
/* scrim: schiarisce in alto per il menu, scurisce in basso per il wordmark
   (basso più marcato per tenere leggibile la scritta anche sulle foto chiare) */
.landing__slides::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to top,var(--nero) 0%,rgba(10,10,10,.6) 20%,rgba(10,10,10,.18) 42%,rgba(10,10,10,0) 66%),
    linear-gradient(to bottom,rgba(10,10,10,.5),rgba(10,10,10,0) 22%)}
.landing__foot{position:relative;z-index:2;width:100%;
  padding:0 var(--pad) clamp(30px,6vw,72px);padding-top:calc(var(--head-h) + 40px)}
.landing__mark{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  line-height:.82;letter-spacing:-.03em;margin:0;white-space:nowrap;
  font-size:clamp(2.6rem,14vw,15rem);
  color:transparent;-webkit-text-stroke:1.4px rgba(244,242,237,.92);text-stroke:1.4px rgba(244,242,237,.92);
  filter:drop-shadow(0 2px 12px rgba(0,0,0,.5));
  user-select:none}
.landing__sub{font-family:var(--font-serif);color:var(--bianco);
  font-size:clamp(1.15rem,2.4vw,1.9rem);line-height:1.32;max-width:36ch;
  margin-top:clamp(14px,2vw,24px);text-shadow:0 1px 12px rgba(0,0,0,.5)}
.landing__dots{display:flex;gap:10px;margin-top:clamp(22px,3vw,34px)}
.landing__dots button{width:34px;height:2px;background:var(--linea-forte);border:none;padding:0;
  cursor:pointer;transition:background .4s var(--ease)}
.landing__dots button[aria-selected="true"]{background:var(--bianco)}
@media(max-width:520px){.landing__mark{-webkit-text-stroke-width:1px;text-stroke-width:1px}}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:0}
/* Solo un abbassamento di luminosità per la leggibilità del testo: nessuna
   alterazione di colore/toni. Le foto restano come sviluppate dall'autore. */
.hero__media img{width:100%;height:100%;object-fit:cover;filter:brightness(.82)}
.hero__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,var(--nero) 2%,rgba(10,10,10,.35) 45%,rgba(10,10,10,.55) 100%)}
.hero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(40px,7vw,90px);padding-top:calc(var(--head-h) + 40px)}
.hero__wordmark{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  line-height:.86;letter-spacing:-.03em;
  font-size:clamp(3.4rem,15vw,13rem);
  margin:0;
}
.hero__wordmark .thin{font-weight:500;color:var(--bianco-soft)}
.hero__manifesto{
  font-family:var(--font-serif);font-size:clamp(1.35rem,2.8vw,2.15rem);
  line-height:1.3;max-width:24ch;margin-top:clamp(20px,3vw,34px);color:var(--bianco)
}
.hero__meta{display:flex;flex-wrap:wrap;gap:14px 30px;margin-top:30px;align-items:center}
.scroll-cue{position:absolute;left:var(--pad);bottom:26px;z-index:2;
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--grigio);
  display:flex;align-items:center;gap:10px}
.scroll-cue .line{width:1px;height:34px;background:var(--linea-forte);position:relative;overflow:hidden}
.scroll-cue .line::after{content:"";position:absolute;inset:0;background:var(--bianco);
  transform:translateY(-100%);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}

/* =========================================================================
   MANIFESTO / intro
   ========================================================================= */
.manifesto .serif{max-width:20ch}
.manifesto-grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,5vw,70px);align-items:end}
@media(min-width:860px){.manifesto-grid{grid-template-columns:1.2fr .8fr}}
.stat-row{display:flex;gap:clamp(28px,5vw,64px);flex-wrap:wrap;border-top:1px solid var(--linea);padding-top:26px;margin-top:44px}
.stat b{font-family:var(--font-display);font-weight:700;font-size:clamp(1.7rem,3vw,2.4rem);display:block;line-height:1}
.stat span{color:var(--grigio);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-top:6px;display:block}

/* =========================================================================
   SELECTED WORK — layout editoriale (non griglia rigida)
   ========================================================================= */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(34px,5vw,60px)}
/* Layout editoriale asimmetrico: un'apertura cinematografica + una coppia sbilanciata.
   Niente griglia di card identiche (vedi anti-ai-checklist). */
.work{display:flex;flex-direction:column;gap:clamp(14px,2vw,26px)}
.work__item{position:relative;overflow:hidden;background:var(--nero-3)}
.work__item a{display:block;position:relative}
/* inquadratura piena, mai ritagliata (filosofia dell'autore): height:auto */
.work__item img{width:100%;height:auto;display:block;
  transition:transform 1s var(--ease)}
.work__item:hover img{transform:scale(1.03)}
.work__item .cap{position:absolute;left:0;right:0;bottom:0;padding:22px;z-index:2;
  background:linear-gradient(to top,rgba(10,10,10,.85),transparent);
  display:flex;justify-content:space-between;align-items:flex-end;gap:12px;
  opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.work__item:hover .cap,.work__item:focus-within .cap{opacity:1;transform:none}
.work__item .cap h3{font-family:var(--font-display);font-weight:700;font-size:1.15rem;letter-spacing:-.01em}
.work__item .cap .tag{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--grigio)}
.work__pair{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(14px,2vw,26px);align-items:start}
@media(max-width:680px){ .work__pair{grid-template-columns:1fr} }

/* =========================================================================
   CLIENTI / loghi di riprova — monocromatici su fondo scuro
   ========================================================================= */
.clients__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(26px,5vw,46px) clamp(20px,4vw,40px);align-items:center}
@media(min-width:560px){.clients__grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.clients__grid{grid-template-columns:repeat(6,1fr)}}
.clients__grid img{height:28px;width:auto;max-width:100%;margin:0 auto;
  opacity:.45;transition:opacity .4s var(--ease)}
.clients__grid img:hover{opacity:.9}

/* =========================================================================
   SERVIZI — lista verticale grande con immagine che cambia
   ========================================================================= */
.services{display:grid;grid-template-columns:1fr;gap:clamp(30px,5vw,60px);align-items:start}
@media(min-width:900px){.services{grid-template-columns:1fr .82fr}}
.svc-list{border-top:1px solid var(--linea)}
.svc{border-bottom:1px solid var(--linea);padding:clamp(20px,3vw,32px) 0;cursor:default}
.svc__title{display:flex;align-items:baseline;gap:16px}
.svc__num{font-family:var(--font-body);font-size:.75rem;color:var(--grigio);letter-spacing:.1em;min-width:34px}
.svc__name{font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  letter-spacing:-.01em;font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1;
  color:var(--bianco-soft);transition:color .4s var(--ease)}
.svc.is-active .svc__name,.svc:hover .svc__name{color:var(--bianco)}
.svc__desc{color:var(--grigio);max-width:52ch;margin-top:12px;font-size:.95rem}
.svc-media{position:sticky;top:calc(var(--head-h) + 30px)}
.svc-media__frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--nero)}
.svc-media__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  opacity:0;transition:opacity .7s var(--ease)}
.svc-media__frame img.is-active{opacity:1}
@media(max-width:899px){.svc-media{display:none}}

/* =========================================================================
   INSTAGRAM band
   ========================================================================= */
.ig{border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.ig__top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.ig__count{font-family:var(--font-display);font-weight:800;font-size:clamp(2.6rem,7vw,5.5rem);line-height:.9;letter-spacing:-.02em}
.ig__count small{font-family:var(--font-body);font-weight:500;font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;color:var(--grigio);display:block;margin-top:12px}
.ig__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(min-width:620px){.ig__grid{grid-template-columns:repeat(6,1fr)}}
.ig__grid a{position:relative;overflow:hidden;aspect-ratio:1;background:var(--nero-3);display:block}
.ig__grid img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ig__grid a:hover img,.ig__grid a:focus-visible img{transform:scale(1.06)}

/* =========================================================================
   CONTATTO CTA
   ========================================================================= */
.cta{text-align:center}
.cta .serif{max-width:22ch;margin-inline:auto}
.cta__mail{font-family:var(--font-display);font-weight:700;text-transform:none;
  font-size:clamp(1.4rem,4vw,2.8rem);letter-spacing:-.01em;display:inline-block;margin-top:22px;
  border-bottom:1px solid var(--linea-forte);padding-bottom:6px;transition:border-color .4s}
.cta__mail:hover{border-color:var(--bianco)}

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-foot{position:relative;padding-top:clamp(60px,8vw,110px);overflow:hidden;border-top:1px solid var(--linea)}
.foot-mark{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(4rem,20vw,17rem);line-height:.8;letter-spacing:-.04em;
  color:transparent;-webkit-text-stroke:1px var(--linea-forte);text-stroke:1px var(--linea-forte);
  white-space:nowrap;pointer-events:none;user-select:none;margin-top:40px;opacity:.55}
.foot-cols{display:grid;grid-template-columns:1fr;gap:34px}
@media(min-width:720px){.foot-cols{grid-template-columns:1.4fr 1fr 1fr}}
.foot-cols h4{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--grigio);margin-bottom:16px;font-weight:600}
.foot-cols a{color:var(--bianco-soft);transition:color .3s}
.foot-cols a:hover{color:var(--bianco)}
.foot-cols li{margin-bottom:8px}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  border-top:1px solid var(--linea);margin-top:44px;padding-block:22px;font-size:.78rem;color:var(--grigio)}
.enac{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--grigio)}
.enac b{color:var(--bianco-soft);font-weight:600}

/* =========================================================================
   PORTFOLIO (pagina)
   ========================================================================= */
.page-head{padding-top:calc(var(--head-h) + clamp(50px,9vw,120px));padding-bottom:clamp(30px,5vw,60px)}
/* Indice serie — salto discreto, non "griglia filtrabile" */
.series-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:32px;border-top:1px solid var(--linea);padding-top:22px}
.series-nav a{font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--grigio);transition:color .3s var(--ease)}
.series-nav a:hover,.series-nav a:focus-visible{color:var(--bianco)}
.series-nav a .idx{color:var(--linea-forte);margin-right:.55em}

/* Tab categorie + mosaico a 2 colonne (data-driven da dati/portfolio.json) */
.pf-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(24px,4vw,40px);
  border-top:1px solid var(--linea);padding-top:24px}
.pf-tab{background:none;border:1px solid var(--linea-forte);color:var(--grigio);
  font-family:var(--font-body);font-weight:600;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;
  padding:.72em 1.25em;border-radius:2px;cursor:pointer;
  transition:color .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease)}
.pf-tab:hover,.pf-tab:focus-visible{color:var(--bianco);border-color:var(--bianco-soft)}
.pf-tab.is-active{background:var(--bianco);color:var(--nero);border-color:var(--bianco)}
/* 2 colonne: inquadrature piene (mai cover), foto orfana in basso a sinistra */
.pf-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.8vw,22px);
  align-items:start;margin-top:clamp(28px,4vw,50px);margin-bottom:clamp(60px,9vw,120px)}
.pf-col{display:flex;flex-direction:column;gap:clamp(12px,1.8vw,22px)}
@media(max-width:620px){.pf-mosaic{grid-template-columns:1fr}}
.pf-empty{color:var(--grigio);text-align:center;padding:50px 0 120px}

/* Serie */
.series{padding-block:clamp(50px,8vw,100px);border-top:1px solid var(--linea)}
.series__head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
  margin-bottom:clamp(22px,4vw,40px);scroll-margin-top:calc(var(--head-h) + 20px)}
.series__num{font-family:var(--font-body);font-size:.8rem;color:var(--grigio);letter-spacing:.12em}
.series__name{font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  letter-spacing:-.01em;font-size:clamp(1.7rem,4.4vw,3rem);line-height:1}
.series__note{color:var(--grigio);font-size:.9rem;margin-left:auto;max-width:42ch}

/* Spread editoriali — inquadrature piene, mai ritagliate (height:auto) */
.spreads{display:flex;flex-direction:column;gap:clamp(14px,2.4vw,28px)}
.spread{display:grid;gap:clamp(14px,2vw,26px)}
.spread--full{grid-template-columns:1fr}
.spread--pair{grid-template-columns:1fr 1fr;align-items:start}
.spread--pair.asym{grid-template-columns:1.5fr 1fr}
.spread--pair.asym-r{grid-template-columns:1fr 1.5fr}
.spread--held{grid-template-columns:1fr;max-width:min(760px,86%)}
.spread--held.center{margin-inline:auto}
.spread--held.right{margin-left:auto}
@media(max-width:640px){
  .spread--pair,.spread--pair.asym,.spread--pair.asym-r{grid-template-columns:1fr}
  .spread--held{max-width:100%}
}
.pfig{position:relative;overflow:hidden;background:var(--nero-3);cursor:zoom-in}
.pfig a{display:block}
.pfig img{width:100%;height:auto;display:block;transition:transform 1s var(--ease)}
.pfig:hover img{transform:scale(1.03)}
.pfig figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px;
  background:linear-gradient(to top,rgba(10,10,10,.8),transparent);
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bianco-soft);
  opacity:0;transform:translateY(6px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.pfig:hover figcaption,.pfig:focus-within figcaption{opacity:1;transform:none}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:100;display:none;place-items:center;
  background:rgba(6,6,6,.96);padding:clamp(16px,4vw,60px)}
.lightbox.is-open{display:grid}
.lightbox img{max-width:100%;max-height:86vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.lightbox__cap{position:absolute;left:0;right:0;bottom:22px;text-align:center;color:var(--grigio);
  font-size:.76rem;letter-spacing:.14em;text-transform:uppercase}
.lightbox__close,.lightbox__nav{position:absolute;background:none;border:1px solid var(--linea-forte);
  color:var(--bianco);cursor:pointer;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  transition:background .3s,color .3s}
.lightbox__close:hover,.lightbox__nav:hover{background:var(--bianco);color:var(--nero)}
.lightbox__close{top:24px;right:24px;font-size:1.2rem}
.lightbox__nav{top:50%;transform:translateY(-50%)}
.lightbox__nav.prev{left:20px}.lightbox__nav.next{right:20px}
@media(max-width:600px){.lightbox__nav{width:44px;height:44px}.lightbox__nav.prev{left:8px}.lightbox__nav.next{right:8px}}

/* =========================================================================
   STUDIO (pagina)
   ========================================================================= */
.studio-lead{display:grid;grid-template-columns:1fr;gap:clamp(28px,5vw,60px);align-items:start}
@media(min-width:860px){.studio-lead{grid-template-columns:1.1fr .9fr}}
.studio-lead img{width:100%;height:auto;display:block}
.prose p{color:var(--bianco-soft);max-width:60ch;margin-bottom:1.2em}
.prose p+p{margin-top:0}
.mostra{display:grid;grid-template-columns:1fr;gap:16px}
.mostra img{width:100%;height:auto;display:block}
/* da 700px: affiancate ad ALTEZZA UGUALE (larghezza ∝ rapporto via flex-grow, nessun ritaglio) */
@media(min-width:700px){
  .mostra{display:flex;align-items:flex-start}
  .mostra img{flex:1 1 0;min-width:0}
  .mostra img:nth-child(1){flex-grow:1.4607}
  .mostra img:nth-child(2){flex-grow:1.5574}
}
.approach{display:grid;grid-template-columns:1fr;gap:clamp(24px,4vw,44px)}
@media(min-width:760px){.approach{grid-template-columns:repeat(3,1fr)}}
.approach .item{border-top:1px solid var(--linea-forte);padding-top:22px}
.approach .item .n{font-family:var(--font-body);font-size:.75rem;color:var(--grigio);letter-spacing:.14em}
.approach .item h3{font-family:var(--font-display);font-weight:700;font-size:1.35rem;margin:12px 0 10px;text-transform:uppercase;letter-spacing:-.01em}
.approach .item p{color:var(--grigio);font-size:.92rem}

/* =========================================================================
   CONTATTI (pagina) + form
   ========================================================================= */
.contact-grid{display:grid;grid-template-columns:1fr;gap:clamp(36px,6vw,72px)}
@media(min-width:860px){.contact-grid{grid-template-columns:1fr 1fr}}
.field{margin-bottom:22px}
.field label{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grigio);margin-bottom:9px}
.field input,.field textarea,.field select{
  width:100%;background:transparent;border:none;border-bottom:1px solid var(--linea-forte);
  padding:10px 0;color:var(--bianco);font-size:1rem;transition:border-color .3s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--bianco)}
.field textarea{resize:vertical;min-height:120px}
.field select option{background:var(--nero-2)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:.82rem;color:var(--grigio)}
.consent input{width:18px;height:18px;margin-top:3px;accent-color:var(--bianco)}
.contact-side .line{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--linea);padding:18px 0}
.contact-side .line:last-child{border-bottom:1px solid var(--linea)}
.contact-side .line span:first-child{color:var(--grigio);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
/* honeypot anti-spam: fuori schermo per gli umani, i bot lo compilano */
.hp{position:absolute!important;left:-5000px;width:1px;height:1px;overflow:hidden}
/* esito dell'invio del form */
.form-msg{padding:14px 16px;border-radius:8px;margin-bottom:24px;font-size:.95rem;border:1px solid var(--linea-forte);color:var(--bianco-soft)}
.form-msg.ok{background:rgba(120,180,120,.12);border-color:rgba(120,180,120,.5);color:#bfe3bf}
.form-msg.err{background:rgba(200,90,90,.12);border-color:rgba(200,90,90,.5);color:#e8a9a9}
.prints-note{margin-top:34px;padding:24px;border:1px solid var(--linea);background:var(--nero-2)}
.prints-note h4{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:-.01em;font-size:1.1rem;margin-bottom:8px}
.prints-note p{color:var(--grigio);font-size:.92rem}

/* =========================================================================
   Reveal allo scroll (misurato, differenziato)
   ========================================================================= */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* Utility */
.stack>*+*{margin-top:clamp(18px,2.4vw,30px)}
.mt-s{margin-top:20px}.mt-m{margin-top:34px}.mt-l{margin-top:clamp(40px,6vw,72px)}
.center{text-align:center}
.divider{height:1px;background:var(--linea);border:none;margin:0}
[hidden]{display:none!important}

/* =========================================================================
   MOBILE NAV
   ========================================================================= */
@media(max-width:820px){
  .burger{display:block}
  .nav{
    position:fixed;inset:0;z-index:55;background:var(--nero);
    flex-direction:column;justify-content:center;align-items:flex-start;
    gap:8px;padding:0 var(--pad);
    transform:translateX(100%);transition:transform .5s var(--ease);
  }
  body.nav-open .nav{transform:none}
  /* da scrollato l'header .is-stuck ha backdrop-filter, che crea un containing
     block per i position:fixed discendenti e "intrappola" l'overlay .nav dentro
     l'header. Col menu aperto togliamo il filtro: l'overlay torna a coprire tutta
     la viewport (il nero pieno del menu nasconde comunque l'header). */
  body.nav-open .site-head{-webkit-backdrop-filter:none;backdrop-filter:none}
  .nav a{font-family:var(--font-display);font-weight:700;font-size:2rem;color:var(--bianco);letter-spacing:-.01em;text-transform:uppercase;padding-block:10px}
  .nav a::after{display:none}
}
@media(max-width:820px){
  body.nav-open{overflow:hidden}
  /* hero: evita collisioni tra CTA, tag e scroll-cue */
  .hero__meta{flex-direction:column;align-items:flex-start;gap:16px}
  .hero__inner{padding-bottom:40px}
  .scroll-cue{display:none}
  .lang-toggle{margin-right:6px}
}
