/* D'Amico & Partners — style.css
   Impaginato come un bilancio stampato: un asse fisso al 42% (colonna 6 di 12), testata fotografica,
   campiture piene di blu notte e pietra. EB Garamond per i titoli, Source Sans 3 per il testo. */
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400 800;font-display:swap;src:url('../fonts/eb-garamond.woff2') format('woff2');}
@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400 800;font-display:swap;src:url('../fonts/eb-garamond-italic.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url('../fonts/source-sans-3.woff2') format('woff2');}

:root{
  --carta:#FFFFFF; --pietra:#E5E4E1; --pietra-2:#D6D4CF;
  --notte:#16223B; --notte-2:#24345A; --notte-ink:#C9CFDB;
  --inchiostro:#141C2E; --soft:#4D5669;
  --ottone:#B38A3E; --ottone-2:#8A6A25; --azzurro:#29ABE2;
  --display:'EB Garamond',Garamond,'Times New Roman',Georgia,serif;
  --sans:'Source Sans 3','Helvetica Neue',Arial,sans-serif;
  /* cinque gradini */
  --step-small:clamp(.875rem,.85rem + .1vw,.9375rem);
  --step-body:clamp(1.0625rem,1rem + .25vw,1.1875rem);
  --step-lead:clamp(1.25rem,1.1rem + .7vw,1.625rem);
  --step-head:clamp(2rem,1.3rem + 2.6vw,3.75rem);
  --step-display:clamp(3.4rem,1rem + 8.6vw,10.5rem);
  --g:clamp(16px,2.2vw,32px); --gap:clamp(12px,1.6vw,24px); --hh:68px;
  --sec:clamp(96px,12vw,200px);
  --ease:cubic-bezier(.22,1,.36,1);
}
@media (min-width:1024px){ :root{ --hh:80px; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html.lock{ overflow:hidden; }
body{ margin:0; background:var(--carta); color:var(--inchiostro); font-family:var(--sans); font-size:var(--step-body); line-height:1.55; -webkit-font-smoothing:antialiased; }
img,video,svg{ display:block; max-width:100%; }
a{ color:inherit; }
p,figure,blockquote,dl,dd{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
::selection{ background:var(--notte); color:#fff; }
:focus-visible{ outline:2px solid var(--azzurro); outline-offset:3px; }
.skip{ position:absolute; left:var(--g); top:-80px; z-index:100; background:var(--notte); color:#fff; padding:.6rem 1rem; text-decoration:none; }
.skip:focus{ top:10px; }

h1,h2,h3,.display{ font-family:var(--display); font-weight:500; font-optical-sizing:auto; line-height:1.05; letter-spacing:-.012em; margin:0; text-wrap:balance; }
h1{ font-size:var(--step-display); line-height:1; }
h2{ font-size:var(--step-head); }
h3{ font-size:clamp(1.75rem,1.2rem + 1.8vw,3rem); line-height:1; }
.lead{ font-size:var(--step-lead); line-height:1.35; }
.small{ font-size:var(--step-small); }
.soft{ color:var(--soft); }
.prose{ max-width:68ch; }
.prose p + p{ margin-top:1.1em; }

/* griglia a 12 colonne; l'asse è l'inizio della colonna 6 */
.wrap{ width:100%; max-width:1760px; margin:0 auto; padding:0 var(--g); }
.grid{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:var(--gap); }
.asse{ grid-column:6 / -1; }
@media (max-width:899px){ .grid{ grid-template-columns:minmax(0,1fr); } .grid > *{ grid-column:1 / -1 !important; } }
.sec{ padding:var(--sec) 0; }
.sec--pietra{ background:var(--pietra); }
.sec--notte{ background:var(--notte); color:#fff; }
.sec--notte .soft{ color:var(--notte-ink); }

/* link e pulsanti: angoli vivi, un solo riempimento */
.tlink{ display:inline-block; font-weight:500; text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:.3em; transition:color .25s,text-underline-offset .25s; }
.tlink:hover{ color:var(--ottone); text-underline-offset:.45em; }
.btn{ display:inline-flex; align-items:center; justify-content:center; padding:1.05rem 1.6rem; font-weight:500; font-size:1rem; line-height:1; text-decoration:none; border-radius:0; transition:background-color .25s,color .25s,transform .2s var(--ease); white-space:nowrap; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(1px); }
.btn--notte{ background:var(--notte); color:#fff; }
.btn--notte:hover{ background:var(--notte-2); }
.btn--bianco{ background:#fff; color:var(--notte); }
.btn--bianco:hover{ background:var(--pietra); }
.btn--pietra{ background:var(--pietra-2); color:var(--inchiostro); }
.btn--pietra:hover{ background:#fff; }
.btns{ display:flex; flex-wrap:wrap; gap:.75rem; }

/* header */
.header{ position:fixed; inset:0 0 auto; height:var(--hh); z-index:50; display:flex; align-items:center; background:#fff; color:var(--inchiostro); transition:background-color .35s,color .35s; }
.header__in{ display:flex; align-items:center; gap:1.5rem; }
.brand{ display:flex; align-items:center; gap:.7rem; text-decoration:none; margin-right:auto; }
.brand img{ height:32px; width:auto; }
.brand .w{ display:none; }
.brand span{ font-family:var(--display); font-size:1.5rem; line-height:1; text-transform:uppercase; letter-spacing:.05em; font-weight:500; white-space:nowrap; }
@media (max-width:520px){ .brand span{ font-size:1.05rem; letter-spacing:.03em; } }
@media (min-width:1024px){ .brand img{ height:38px; } .brand span{ font-size:1.7rem; } }
@media (max-width:359px){ .brand span{ display:none; } }
.nav{ display:none; gap:2rem; }
.nav a{ text-decoration:underline; text-decoration-color:transparent; text-decoration-thickness:1.5px; text-underline-offset:.45em; font-size:1rem; font-weight:500; padding:.35rem 0; transition:text-decoration-color .3s,text-underline-offset .3s var(--ease); }
.nav a:hover,.nav a[aria-current="page"]{ text-decoration-color:currentColor; text-underline-offset:.3em; }
.header .btn{ display:none; padding:.85rem 1.2rem; }
@media (min-width:1080px){ .nav{ display:flex; } .header .btn{ display:inline-flex; } }
.header--over{ background:transparent; color:#fff; }
.header--over .brand .d{ display:none; } .header--over .brand .w{ display:block; }
.header--over .btn--notte{ background:#fff; color:var(--notte); }
.burger{ width:44px; height:44px; margin-right:-10px; display:grid; place-items:center; }
.burger i{ position:relative; display:block; width:24px; height:2px; background:currentColor; }
.burger i::before,.burger i::after{ content:""; position:absolute; left:0; width:24px; height:2px; background:currentColor; }
.burger i::before{ top:-7px; } .burger i::after{ top:7px; }
@media (min-width:1080px){ .burger{ display:none; } }
.menu{ position:fixed; inset:0; z-index:60; background:var(--notte); color:#fff; display:flex; flex-direction:column; padding:0 var(--g) 2rem; overflow-y:auto; }
.menu[hidden]{ display:none; }
.menu__top{ display:flex; justify-content:space-between; align-items:center; min-height:var(--hh); }
.menu__close{ width:44px; height:44px; margin-right:-10px; font-size:2.2rem; line-height:1; font-weight:300; }
.menu nav{ margin-top:1.5rem; }
.menu nav a{ display:block; font-family:var(--display); font-size:clamp(2.6rem,11vw,3.6rem); line-height:1.1; text-decoration:none; padding:.1rem 0; }
.menu nav a[aria-current="page"]{ color:var(--ottone); }
.menu__foot{ margin-top:auto; padding-top:2rem; display:grid; gap:.5rem; color:var(--notte-ink); }
.menu__foot a{ text-decoration:none; }
.menu__foot .btn{ justify-self:start; margin-bottom:1rem; }

/* ===== HOME ===== */
/* testata: la piazza con la luce dell'ora, due schede nell'angolo */
.hero{ position:relative; height:100vh; /* taste-skill-ignore: ripiego per browser senza svh */ height:100svh; min-height:600px; overflow:hidden; background:var(--notte); color:#fff; }
.hero__luce{ position:absolute; inset:0; }
.hero__luce img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero__luce .alt{ opacity:0; }
.hero::before{ content:""; position:absolute; inset:0 35% 0 0; z-index:1; background:linear-gradient(90deg,rgba(8,13,26,.7),rgba(8,13,26,.45) 55%,rgba(8,13,26,0)); pointer-events:none; } /* taste-skill-ignore: scrim neutra sotto il testo sulla foto */
.hero::after{ content:""; position:absolute; inset:0 0 auto; height:30%; z-index:1; background:linear-gradient(rgba(8,13,26,.45),rgba(8,13,26,0)); pointer-events:none; } /* taste-skill-ignore: scrim neutra sotto il testo sulla foto */
.hero__testo{ position:absolute; z-index:2; left:var(--g); top:50%; transform:translateY(-42%); max-width:min(900px,62vw); }
.hero__testo h1{ font-size:clamp(3.4rem,1rem + 6vw,8rem); line-height:.95; }
.hero__testo p{ margin-top:1.75rem; max-width:40ch; font-size:var(--step-lead); line-height:1.35; }
.hero__schede{ position:absolute; z-index:2; right:var(--g); bottom:var(--g); display:flex; gap:16px; }
.scheda{ display:flex; align-items:center; gap:16px; width:clamp(270px,19vw,330px); padding:14px 18px 14px 14px; text-decoration:none; color:#fff; background:var(--notte); transition:background .3s var(--ease); }
.scheda__icona{ flex:none; width:68px; }
.scheda__testo{ display:grid; gap:4px; }
.scheda__testo b{ font-family:var(--display); font-weight:500; font-size:1.6rem; font-weight:500; line-height:1; }
.scheda__testo small{ font-size:.9375rem; line-height:1.3; color:var(--notte-ink); }
.scheda:hover{ background:var(--notte-2); }
.scheda:hover .scheda__icona{ border-color:#fff; }
.scheda:hover b{ color:var(--ottone); }
/* prova (prova-torre.html): su desktop la testata della home, ferma, con la piazza di tre quarti;
   sotto i 900 px il Torrione di fronte: si parte dal cielo e scorrendo si scende lungo la torre fino alla piazza.
   Niente blocco fisso né animazione: è la pagina che scorre su una foto alta, quindi va anche con Riduci movimento */
.torre__cielo{ position:absolute; inset:0; overflow:hidden; background:#123488; }
.torre__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:66% 50%; }
@media (max-width:899px){
  /* foto stretta larga il 115% e alta 2100/573 × 1,15 = 421,5vw; la cima (al 48,8%, cioè a 205,7vw) parte a metà schermo
     e la testata finisce dove finisce la foto: 50svh + (421,5 - 205,7)vw */
  .torre{ height:calc(50vh + 215.8vw); /* taste-skill-ignore: ripiego per browser senza svh */ height:calc(50svh + 215.8vw); min-height:0; }
  .torre__img{ inset:auto; left:-7.5%; bottom:0; width:115%; height:auto; max-width:none; object-fit:fill; }
  .torre::before{ content:none; }
  .torre .hero__testo{ top:calc(var(--hh) + 2.5rem); transform:none; text-align:center; }
  .torre .hero__testo p{ margin-inline:auto; }
  .torre .hero__testo h1{ font-size:clamp(2.6rem,11.5vw,5rem); }
}
@media (max-width:899px){
  .hero::before{ inset:0; background:linear-gradient(rgba(8,13,26,0) 20%,rgba(8,13,26,.55) 50%,rgba(8,13,26,.3)); } /* taste-skill-ignore: scrim neutra sotto il testo sulla foto */
  .hero__testo{ top:40%; right:var(--g); max-width:none; }
  .hero__testo h1{ font-size:clamp(3.2rem,15vw,6rem); }
  .hero__testo p{ font-size:1.125rem; margin-top:1.1rem; }
  .hero__schede{ left:var(--g); }
  .scheda{ width:auto; flex:1 1 0; gap:12px; padding:10px; }
  .scheda__icona{ width:48px; }
  .scheda__testo b{ font-size:1.375rem; }
  .scheda__testo small{ display:none; }
}
@media (max-width:480px){
  .hero__schede{ gap:8px; }
  .scheda{ min-width:0; gap:10px; padding:8px; }
  .scheda__icona{ width:40px; }
  .scheda__testo b{ font-size:1.25rem; }
}
@media (max-width:359px){
  .scheda{ justify-content:center; padding:12px 8px; }
  .scheda__icona{ display:none; }
}

/* chi siamo: paragrafo nella metà destra, foto sola che pende a sinistra */
/* chi siamo: titolo e indirizzo a sinistra, la frase a destra, tutto su un filo d'ottone */
.intro{ padding:clamp(4rem,7vw,7rem) 0 clamp(4.5rem,8vw,7rem); }
.intro__in{ row-gap:1.25rem; align-items:start; }
.intro__in::before{ content:""; grid-column:1 / -1; height:2px; margin-bottom:clamp(.25rem,1.2vw,1rem); background:var(--ottone); }
.intro__testa{ grid-column:1 / 5; display:grid; gap:.6rem; }
.intro__testa p{ font-size:var(--step-small); font-weight:600; color:var(--ottone-2); }
.intro__frase{ grid-column:5 / -1; max-width:42ch; font-family:var(--display); font-size:clamp(1.45rem,1rem + 1.2vw,2.3rem); line-height:1.25; color:var(--notte); text-wrap:pretty; }
.intro__frase em{ color:var(--ottone-2); }

/* lo studio: il 2004 in grande, la linea del tempo, poi le persone su pietra */
.anni{ margin-top:clamp(3.5rem,6vw,5.5rem); padding-top:clamp(3rem,5vw,4.5rem); border-top:1px solid var(--pietra-2); align-items:end; row-gap:2rem; }
.pbody .anni{ margin-top:0; padding-top:0; border-top:0; }
.anni__anno{ grid-column:1 / 6; }
.anni__num{ font-family:var(--display); font-weight:500; font-size:clamp(6.5rem,2rem + 13vw,16rem); line-height:.8; letter-spacing:-.02em; color:var(--ottone); }
.anni__cap{ margin-top:1.1rem; font-weight:600; color:var(--ottone-2); }
.anni__testo{ grid-column:7 / -1; padding-bottom:.35rem; }
.anni__testo .lead{ font-family:var(--display); font-size:clamp(1.4rem,1.1rem + .6vw,1.75rem); line-height:1.32; max-width:48ch; }
.anni__testo .tlink{ margin-top:1.75rem; }
/* il filo è uno sfondo lungo var(--corsa) e i pallini si accendono con --acceso e --pieno: motion.js li fa crescere allo scroll */
.linea{ margin-top:clamp(4rem,7vw,6rem); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap); padding-top:2px; background:linear-gradient(var(--ottone),var(--ottone)) 0 0 / calc(var(--corsa,1) * 100%) 2px no-repeat; }
.linea li{ position:relative; padding-top:2rem; display:grid; gap:.45rem; align-content:start; color:var(--soft); line-height:1.4; }
.linea li::before{ content:""; position:absolute; top:-8px; left:0; width:14px; height:14px; border-radius:50%; background:var(--carta); box-shadow:inset 0 0 0 calc(2px + var(--pieno,0) * 5px) var(--ottone); transform:scale(var(--acceso,1)); }
.linea li:first-child::before{ top:-10px; width:18px; height:18px; background:var(--ottone); box-shadow:none; }
.linea b{ font-family:var(--display); font-weight:500; font-size:clamp(1.9rem,1.5rem + .8vw,2.4rem); line-height:1; color:var(--ottone-2); }
@media (max-width:899px){
  .anni{ margin-top:4rem; }
  .linea{ grid-template-columns:1fr; gap:1.75rem; padding:0 0 0 30px; background-size:2px calc(var(--corsa,1) * 100%); }
  .linea li{ padding-top:0; }
  .linea li::before{ left:-36px; top:.45rem; }
  .linea li:first-child::before{ left:-38px; top:.3rem; }
}
.gente{ background:var(--pietra); padding:clamp(4.5rem,8vw,7rem) 0; }
.gente__testa{ display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:1rem 2rem; margin-bottom:clamp(2rem,4vw,2.75rem); }
.gente__lista{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap); }
.gente__lista li{ padding:clamp(1.75rem,2.4vw,2.5rem) clamp(1.5rem,2vw,2.25rem) clamp(2rem,2.6vw,2.75rem); background:var(--carta); border-top:2px solid var(--ottone); }
.gente__lista li > div{ display:flex; flex-direction:column; gap:.5rem; }
.gente__ruolo{ font-size:var(--step-small); font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ottone-2); }
.gente__lista h3{ font-size:clamp(1.6rem,1.3rem + .7vw,2rem); line-height:1.1; color:var(--notte); }
.gente__lista p:last-child{ margin-top:.5rem; padding-top:1rem; border-top:1px solid var(--pietra-2); font-size:var(--step-small); line-height:1.45; color:var(--soft); }
@media (max-width:1099px){ .gente__lista{ grid-template-columns:1fr; max-width:640px; } }
.gente__staff{ margin-top:var(--gap); display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--gap); }
.gente__staff li{ padding:1.4rem clamp(1.1rem,1.4vw,1.5rem) 1.6rem; background:var(--carta); border-top:1px solid var(--ottone); display:flex; flex-direction:column; gap:.45rem; }
.gente__staff h3{ font-size:clamp(1.2rem,1.05rem + .35vw,1.4rem); line-height:1.15; color:var(--notte); }
.gente__staff p{ font-size:var(--step-small); line-height:1.4; color:var(--soft); }
@media (max-width:1099px){ .gente__staff{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:640px; } }
@media (max-width:520px){ .gente__staff{ grid-template-columns:1fr; } }

/* dicono di noi: articoli e convegni, ognuno col suo PDF */
.stampa h2{ margin-bottom:clamp(2rem,4vw,2.75rem); }
.stampa__lista{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(2rem,3vw,3rem) var(--gap); }
.stampa__lista li{ display:flex; flex-direction:column; gap:.6rem; padding-top:1.25rem; border-top:1px solid var(--pietra-2); }
.stampa__fonte{ font-size:var(--step-small); font-weight:600; color:var(--ottone-2); }
.stampa__lista h3{ font-size:clamp(1.3rem,1.1rem + .45vw,1.6rem); line-height:1.2; color:var(--notte); }
.stampa__lista p:not(.stampa__fonte){ font-size:var(--step-small); line-height:1.5; color:var(--soft); }
.stampa__lista .tlink{ margin-top:auto; padding-top:.5rem; align-self:flex-start; font-size:var(--step-small); }
@media (max-width:1099px){ .stampa__lista{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .stampa__lista{ grid-template-columns:1fr; } }

/* la frase: pagina a colori con mosaico senza fughe */
.mosaico{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(clamp(220px,24vw,360px),auto)); background:var(--notte); color:#fff; }
.mosaico > *{ position:relative; overflow:hidden; }
.mosaico img{ position:absolute; inset:-8% 0; width:100%; height:116%; object-fit:cover; }
.mosaico__frase{ grid-column:1 / 3; grid-row:1 / 3; display:flex; flex-direction:column; gap:2rem; padding:clamp(2rem,5vw,5rem) var(--g); }
.mosaico__frase h2{ font-size:var(--step-head); }
.mosaico__frase > div > p{ margin-top:1.5rem; max-width:40ch; font-size:var(--step-lead); line-height:1.4; color:var(--notte-ink); }
.mosaico__frase blockquote{ margin-top:auto; padding-top:2rem; border-top:1px solid rgba(255,255,255,.18); }
.mosaico__frase blockquote p{ font-family:var(--display); font-style:italic; font-size:clamp(1.5rem,1rem + 1.4vw,2.25rem); line-height:1.15; max-width:34ch; }
/* senza le quattro tessere: un'unica fascia notte, testo a sinistra e citazione a destra */
.mosaico{ grid-template-columns:1fr; grid-template-rows:auto; }
.mosaico__frase{ grid-column:1 / -1; grid-row:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end; gap:2rem var(--gap); }
.mosaico__frase blockquote{ margin-top:0; }
@media (max-width:899px){ .mosaico__frase{ grid-template-columns:1fr; } }
.mosaico__frase cite{ display:block; margin-top:1.25rem; font-style:normal; font-size:var(--step-small); color:var(--notte-ink); }
.tile--ottone{ background:var(--ottone); }
.tile--pietra{ background:var(--pietra); }
.tile--notte{ background:var(--notte-2); color:#fff; }
.tile--carta{ background:#fff; }
.tile--notte,.tile--carta{ display:flex; flex-direction:column; justify-content:flex-end; padding:var(--g); }
.tile--carta{ color:var(--notte); }
.tile--ottone,.tile--pietra{ display:flex; align-items:flex-end; padding:var(--g); }
.tile--ottone,.tile--pietra{ flex-direction:column; align-items:flex-start; justify-content:flex-end; color:var(--notte); }
.icona.tile__icona{ flex:none; aspect-ratio:1; height:auto; width:clamp(64px,5.8vw,92px); padding:clamp(15px,1.4vw,22px); margin-bottom:auto; border:1px solid var(--ottone); border-radius:50%; stroke:var(--notte); stroke-width:1.3; }
.tile--notte .tile__icona{ stroke:#fff; }
.tile--ottone .tile__icona{ border-color:var(--notte); } .tile--ottone .tile__icona .o{ stroke:#fff; } .tile--ottone .tile__icona .f{ fill:#fff; }
.tile__num{ font-family:var(--display); font-size:clamp(3rem,2rem + 4vw,7rem); line-height:.85; }
.tile__txt{ font-size:var(--step-small); line-height:1.4; margin-top:.75rem; max-width:26ch; }
@media (max-width:899px){
  .mosaico{ grid-template-columns:1fr; grid-template-rows:auto; }
  .mosaico__frase{ grid-column:1 / -1; grid-row:auto; }
}

/* attività: le due società affiancate, servizi in elenco */
.attivita{ background:var(--pietra); padding:var(--sec) 0; }
.attivita__testa{ margin-bottom:clamp(3rem,6vw,5rem); }
.attivita__testa h2{ font-size:clamp(3rem,1.5rem + 5vw,6.5rem); }
.aree2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,2vw,28px); align-items:stretch; }
.area{ background:var(--carta); }
.area__testa{ display:grid; gap:.4rem; padding:clamp(24px,2.6vw,36px); background:var(--notte); color:#fff; text-decoration:none; transition:background .3s var(--ease); }
.area__testa:hover{ background:var(--notte-2); }
.area__testa h3{ font-size:clamp(1.6rem,1.1rem + 1.2vw,2.4rem); line-height:1.05; }
.area__testa p{ color:var(--notte-ink); font-size:var(--step-small); }
.servizi{ list-style:none; margin:0; padding:0 clamp(24px,2.6vw,36px); }
.servizi li + li{ border-top:1px solid var(--pietra-2); }
.servizi a{ display:grid; grid-template-columns:52px minmax(0,1fr); gap:18px; align-items:start; padding:1.5rem 0; color:inherit; text-decoration:none; }
.servizi__icona{ width:52px; }
.servizi h4{ margin:0 0 .35rem; font-family:var(--display); font-weight:500; font-size:clamp(1.3rem,1.1rem + .5vw,1.6rem); line-height:1.15; color:var(--notte); transition:color .2s; }
.servizi__testo > span{ display:block; font-size:var(--step-small); line-height:1.5; color:var(--soft); }
.servizi a:hover h4{ color:var(--ottone); }
@media (max-width:899px){ .aree2{ grid-template-columns:1fr; } }
/* icone dei servizi: riquadro blu notte, tratto bianco, un dettaglio in ottone */
.servizio__art{ width:100%; max-width:150px; }
/* icone disegnate a tratto sottile: bianco, un solo dettaglio in ottone */
.icona{ display:block; width:100%; height:auto; fill:none; stroke:var(--notte); stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.icona .o{ stroke:var(--ottone); }
.icona .f{ fill:var(--ottone); stroke:none; }
/* nei riquadri piccoli il tratto si ispessisce, così non sparisce */
/* la medaglia: un filo d'ottone circolare, il disegno al centro; sul blu notte il tratto diventa bianco */
.scheda__icona,.servizi__icona,.servizio__art,.tre__icona,.aree__icona,.phero__icona{ display:grid; place-items:center; aspect-ratio:1; padding:0; background:none; border:1px solid var(--ottone); border-radius:50%; }
.scheda__icona .icona,.servizi__icona .icona,.servizio__art .icona,.tre__icona .icona,.aree__icona .icona,.phero__icona .icona{ width:56%; }
.scheda__icona .icona,.phero__icona .icona{ stroke:#fff; }
.servizi__icona .icona,.tre__icona .icona,.aree__icona .icona,.scheda__icona .icona{ stroke-width:1.6; }

/* approccio: righe che scendono a gradini */
.gradini h2{ grid-column:1 / -1; margin-bottom:clamp(3rem,6vw,5.5rem); }
.gradino{ grid-column-end:-1; }
.gradino + .gradino{ margin-top:56px; }
.gradino:nth-of-type(1){ grid-column-start:1; }
.gradino:nth-of-type(2){ grid-column-start:3; }
.gradino:nth-of-type(3){ grid-column-start:5; }
.gradino:nth-of-type(4){ grid-column-start:7; }
.gradino h3{ font-size:clamp(2.25rem,1rem + 4vw,4.75rem); line-height:1; }
.gradino:last-of-type h3{ color:var(--ottone); }
.gradino p{ margin-top:14px; max-width:44ch; color:var(--soft); }
.sec--notte .gradino p{ color:var(--notte-ink); }
.sec--notte .tlink:hover{ color:var(--ottone); }
.gradini .tlink{ grid-column:7 / -1; margin-top:3rem; justify-self:start; }
.gradini{ position:relative; }
.gradini > .gradino{ position:relative; z-index:1; }
.gradini__scia{ position:absolute; left:0; top:0; overflow:visible; pointer-events:none; }
.gradini__scia circle{ fill:var(--ottone); }
.gradini__scia path{ fill:none; stroke:var(--ottone); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:899px){
  .gradino h3{ font-size:8.6vw; }
  .gradino + .gradino{ margin-top:80px; }
  .gradino:nth-of-type(2){ padding-left:6vw; } .gradino:nth-of-type(3){ padding-left:12vw; } .gradino:nth-of-type(4){ padding-left:18vw; }
  .gradini .tlink{ margin-left:18vw; }
}

/* il video: dal bilancio in perdita al ritorno alla crescita, intero in 16:9, al centro su fondo bianco tra l'approccio e le competenze */
.sec-video{ padding:clamp(4rem,8vw,8rem) 0; }
.fascia{ position:relative; width:min(100%, 1120px, calc((100svh - var(--hh) - 4rem) * 16 / 9)); aspect-ratio:16/9; margin:0 auto; overflow:hidden; background:var(--notte-2); }
.fascia > *{ position:absolute; inset:0; }
.fascia video{ width:100%; height:100%; object-fit:cover; }

/* competenze: le tre aree sullo stesso filo d'ottone, poi la frase che le tiene insieme */
.competenze__testa{ align-items:end; row-gap:2rem; }
.competenze h2{ grid-column:1 / 6; font-size:clamp(2.2rem,1.1rem + 3vw,4.25rem); }
.competenze__testa .lead{ grid-column:7 / -1; max-width:46ch; }
.tre{ margin-top:clamp(3.5rem,6vw,5rem); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap); background:linear-gradient(var(--ottone),var(--ottone)) 0 0 / calc(var(--corsa,1) * 100%) 2px no-repeat; }
.tre li{ position:relative; margin-top:2rem; display:flex; align-items:center; gap:clamp(16px,1.6vw,24px); padding:clamp(16px,1.6vw,24px); background:var(--carta); }
.tre li::before{ content:""; position:absolute; top:calc(-2rem - 8px); left:0; width:18px; height:18px; border-radius:50%; background:var(--ottone); transform:scale(var(--acceso,1)); }
.tre__icona{ flex:none; width:clamp(60px,5vw,72px); }
.tre h3{ font-size:clamp(1.6rem,1.2rem + .9vw,2.2rem); color:var(--notte); }
.competenze__chiusa{ margin:clamp(4rem,7vw,6.5rem) auto 0; max-width:60rem; display:grid; justify-items:center; text-align:center; }
.competenze__chiusa p:first-child{ font-size:var(--step-lead); line-height:1.4; color:var(--notte-ink); max-width:50ch; text-wrap:balance; }
.competenze__frase{ margin-top:clamp(2rem,3.5vw,3rem); font-family:var(--display); font-style:italic; font-size:clamp(1.6rem,1.1rem + 1.4vw,2.75rem); line-height:1.25; color:#fff; max-width:38ch; text-wrap:balance; }
.competenze__frase::before{ content:""; display:block; width:56px; height:2px; margin:0 auto clamp(2rem,3.5vw,3rem); background:var(--ottone); }
@media (max-width:899px){
  .tre{ grid-template-columns:1fr; gap:12px; padding-left:24px; background-size:2px calc(var(--corsa,1) * 100%); }
  .tre li{ margin-top:0; gap:18px; padding:16px; }
  .tre li::before{ top:50%; left:-32px; margin-top:-9px; }
  .tre__icona{ width:56px; }
  .competenze__chiusa{ justify-items:start; text-align:left; }
  .competenze__frase{ text-wrap:pretty; }
  .competenze__frase::before{ margin-left:0; }
}

/* chiusura: la targa scontornata appesa sulla pietra, recapiti accanto */
.porta{ background:var(--pietra); padding:clamp(4.5rem,9vw,8.5rem) 0; overflow:hidden; }
.porta__in{ display:grid; gap:clamp(3.5rem,7vw,5rem); align-items:center; }
.porta__targa{ margin:0; justify-self:center; width:min(100%,560px); }
.porta__targa img{ display:block; width:100%; height:auto; box-shadow:0 1px 2px rgba(48,36,14,.28),0 10px 22px -8px rgba(48,36,14,.32),0 34px 70px -24px rgba(48,36,14,.38); }
.porta__testo{ display:grid; gap:clamp(2.5rem,4.5vw,3.5rem); }
.porta__frase{ font-family:var(--display); font-style:italic; font-size:clamp(1.5rem,1.15rem + 1.2vw,2.25rem); line-height:1.2; max-width:30ch; text-wrap:pretty; }
.porta__incontro{ border-top:1px solid var(--ottone); padding-top:clamp(2rem,3.5vw,2.75rem); }
.porta h2{ font-size:clamp(2rem,1.5rem + 1.4vw,2.875rem); margin-bottom:1.75rem; }
.porta__rec{ display:grid; gap:1.25rem 2rem; margin:0 0 2.25rem; }
.porta__rec dt{ font-size:var(--step-small); color:var(--soft); margin-bottom:.3rem; }
.porta__rec dd{ margin:0; font-size:1.125rem; line-height:1.4; color:var(--inchiostro); }
.porta__rec a{ text-decoration:none; border-bottom:1px solid transparent; transition:border-color .25s,color .25s; }
.porta__rec a:hover{ color:var(--ottone-2); border-bottom-color:var(--ottone); }
@media (min-width:600px){ .porta__rec{ grid-template-columns:auto auto 1fr; } }
@media (min-width:1000px){
  .porta__in{ grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); column-gap:clamp(4rem,7vw,8rem); max-width:1440px; }
  .porta__targa{ justify-self:end; }
}
@media (max-width:599px){ .porta__targa{ width:88%; } }

/* ===== PAGINE INTERNE ===== */
/* testata: foto a tutta larghezza con il titolo sopra */
.phero{ position:relative; padding-top:var(--hh); background:var(--notte); }
.phero__img{ position:relative; height:min(76svh,820px); min-height:420px; overflow:hidden; }
.phero__img img{ width:100%; height:112%; object-fit:cover; }
.phero__img::after{ content:""; position:absolute; inset:35% 0 0; background:linear-gradient(rgba(8,13,26,0),rgba(8,13,26,.72)); } /* taste-skill-ignore: scrim sotto il titolo */
.phero__card{ position:absolute; left:0; right:0; bottom:0; z-index:2; width:100%; max-width:1760px; margin:0 auto; padding:0 var(--g) clamp(2rem,5vw,4rem); color:#fff; }
.phero__card h1{ font-size:clamp(2.6rem,1rem + 4.4vw,6rem); max-width:18ch; }
.phero__card .lead{ margin-top:1.5rem; max-width:52ch; }
@media (max-width:899px){ .phero__img{ height:70svh; } .phero__card .lead{ font-size:1.125rem; } }
.pbody{ padding:var(--sec) 0 clamp(3rem,6vw,5rem); }
.phero--testo{ display:flex; align-items:flex-end; justify-content:space-between; gap:var(--g); padding:calc(var(--hh) + clamp(4rem,9vw,8rem)) max(var(--g),calc((100% - 1760px)/2 + var(--g))) clamp(3rem,6vw,5rem); color:#fff; }
.phero--testo .phero__card{ position:static; padding:0; margin:0; max-width:none; width:auto; }
.phero__icona{ flex:none; width:clamp(120px,13vw,210px); }
@media (max-width:899px){ .phero--testo{ align-items:flex-start; gap:1.25rem; } .phero__icona{ width:76px; } }

/* nella colonna sinistra delle pagine interne: le fasi o i dati, non una foto */
.fasi{ grid-column:1 / 6; list-style:none; margin:0; padding:0; display:grid; border-top:2px solid var(--notte); }
.fasi li,.fasi > div{ display:grid; grid-template-columns:3.5rem 1fr; column-gap:1rem; padding:1.5rem 0; border-bottom:1px solid var(--pietra-2); color:var(--soft); line-height:1.45; }
.fasi span,.fasi dt{ grid-row:1 / 3; font-family:var(--display); font-size:2rem; line-height:1; color:var(--ottone); }
.fasi b{ display:block; font-size:var(--step-lead); font-weight:500; color:var(--inchiostro); margin-bottom:.35rem; }
.fasi--dati > div{ grid-template-columns:1fr; }
.fasi--dati dt{ grid-row:auto; font-family:var(--sans); font-size:var(--step-small); color:var(--soft); margin-bottom:.4rem; }
.fasi--dati dd{ margin:0; font-family:var(--display); font-size:clamp(1.75rem,1.2rem + 1.4vw,2.75rem); line-height:1.1; font-weight:500; color:var(--notte); }
@media (max-width:899px){ .fasi{ grid-column:1; order:2; } }

.colonne{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:var(--gap); row-gap:2.5rem; align-items:start; }
.colonne__foto{ grid-column:1 / 6; position:relative; aspect-ratio:4/5; overflow:hidden; }
.colonne__foto img{ position:absolute; left:0; top:-6%; width:100%; height:112%; object-fit:cover; }
.colonne .prose{ grid-column:7 / -1; }
.colonne .prose > p:first-child{ font-size:var(--step-lead); line-height:1.35; }
@media (max-width:899px){ .colonne{ grid-template-columns:1fr; } .colonne .prose,.colonne__foto{ grid-column:1; } .colonne__foto{ order:2; aspect-ratio:3/2; } }
.aree{ margin-top:2rem; display:grid; gap:4px; }
.aree a{ display:block; padding:1.25rem 1.4rem; background:var(--pietra); text-decoration:none; transition:background-color .25s; }
.aree a:hover{ background:var(--pietra-2); }
.aree strong{ display:block; font-family:var(--display); font-weight:500; font-size:clamp(1.6rem,1.3rem + .8vw,2.1rem); line-height:1.05; }
.aree span{ display:block; color:var(--soft); font-size:var(--step-small); margin-top:.35rem; }
.aree--icone a{ display:flex; align-items:center; gap:clamp(16px,1.6vw,24px); }
.aree--icone a > span{ margin:0; color:inherit; font-size:inherit; }
.aree--icone .aree__icona{ display:grid; flex:none; width:clamp(56px,4.5vw,68px); }

/* servizi: riquadro con l'icona, titolo e testo accanto */
.servizio{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:var(--gap); grid-template-areas:"art art head head head head head head head head head ." "art art body body body body body body body body body ."; padding:clamp(3rem,6vw,5.5rem) 0; }
.servizio:first-child{ padding-top:0; }
.servizio:nth-child(even){ background:var(--pietra); margin:0 calc(var(--g) * -1); padding-left:var(--g); padding-right:var(--g); }
.servizio > div:first-child{ display:contents; }
.servizio h2,.servizio h3{ grid-area:head; margin-bottom:1.75rem; }
.servizio h2{ font-size:clamp(2rem,1.3rem + 2vw,3.25rem) !important; }
.servizio .prose{ grid-area:body; max-width:none; }
.servizio .prose > p:first-child{ font-size:var(--step-lead); line-height:1.38; }
.servizio__art{ grid-area:art; align-self:start; }
@media (max-width:899px){
  .servizio{ grid-template-columns:64px minmax(0,1fr); column-gap:16px; grid-template-areas:"art head" "body body"; }
  .servizio__art{ width:64px; align-self:center; margin-bottom:1.75rem; }
  .servizio h2,.servizio h3{ align-self:center; font-size:1.6rem !important; }
}
.citazione p{ font-family:var(--display); font-style:italic; font-size:clamp(1.75rem,1.2rem + 1.4vw,2.25rem); line-height:1.15; max-width:30ch; margin-left:calc((100% - 2 * var(--g)) * 5 / 12 + var(--g) * 0); }
@media (max-width:899px){ .citazione p{ margin-left:0; font-size:1.5rem; max-width:none; } }

.notte-grid{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:var(--gap); row-gap:2rem; }
.notte-grid h2{ grid-column:1 / 6; }
.notte-grid .prose{ grid-column:6 / -1; font-size:var(--step-lead); line-height:1.35; }
@media (max-width:899px){ .notte-grid{ grid-template-columns:1fr; } .notte-grid h2,.notte-grid .prose{ grid-column:1; } }

/* striscia di foto senza fughe nelle pagine interne */
.striscia{ display:flex; height:clamp(320px,52svh,560px); background:var(--notte); }
.striscia figure{ position:relative; overflow:hidden; flex:2 1 0; }
.striscia figure:first-child{ flex-grow:3; }
.striscia img{ position:absolute; left:0; top:-8%; width:100%; height:116%; object-fit:cover; }
@media (max-width:899px){ .striscia{ display:grid; grid-template-columns:1fr 1fr; height:auto; } .striscia figure{ aspect-ratio:1; } .striscia figure:first-child{ grid-column:1 / -1; aspect-ratio:3/2; } .striscia figure:nth-child(4){ display:none; } }

/* contatti */
.contatti{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:var(--gap); row-gap:3rem; }
.rec-list{ grid-column:1 / 5; display:grid; gap:2.25rem; align-content:start; }
.form{ grid-column:6 / -1; }
@media (max-width:899px){ .contatti{ grid-template-columns:1fr; } .rec-list,.form{ grid-column:1; } }
.rec-list h2{ font-size:clamp(1.9rem,1.4rem + 1.5vw,2.6rem); line-height:1.05; margin-bottom:.75rem; }
.rec-list .serif{ font-family:var(--sans); font-size:var(--step-lead); line-height:1.35; }
.rec-list a{ text-decoration:none; }
.rec-list a:hover{ color:var(--ottone); }
.rec-list address{ font-style:normal; }
.rec-list dt{ font-weight:500; margin-top:.5rem; }
.rec-list dd{ overflow-wrap:anywhere; }
.rec-list .tlink{ text-decoration:underline; }
.form{ background:var(--pietra); padding:clamp(1.5rem,4vw,3rem); display:grid; gap:1.1rem; }
.form__row{ display:grid; gap:1.1rem; }
@media (min-width:600px){ .form__row{ grid-template-columns:1fr 1fr; } }
.field{ display:grid; gap:.4rem; }
.field label{ font-size:1rem; font-weight:500; }
.field input,.field textarea{ width:100%; font:inherit; color:var(--inchiostro); background:#fff; border:1px solid rgba(20,28,46,.25); border-radius:0; padding:.85rem 1rem; caret-color:var(--azzurro); }
.field input:focus,.field textarea:focus{ outline:2px solid var(--notte); outline-offset:0; border-color:var(--notte); }
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{ border-color:#B4432F; }
.field textarea{ min-height:150px; resize:vertical; }
.hint{ font-size:var(--step-body); }
.check{ display:flex; gap:.7rem; font-size:var(--step-body); }
.check input{ width:18px; height:18px; margin-top:.25rem; accent-color:var(--notte); flex:none; }
.check a{ color:var(--inchiostro); }
.form__foot{ display:flex; flex-wrap:wrap; gap:1rem 1.5rem; align-items:center; }
.status{ font-size:var(--step-small); min-height:1.4em; }
.status--ok{ color:#1F6B3A; } .status--err{ color:#B4432F; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; } /* taste-skill-ignore: campo trappola nascosto */

/* legali e 404 */
.legal{ padding:calc(var(--hh) + clamp(3rem,7vw,6rem)) 0 var(--sec); }
.legal__in{ max-width:1320px; margin:0 auto; padding:0 var(--g); }
.legal__head{ padding-bottom:clamp(2.5rem,5vw,4rem); border-bottom:1px solid rgba(20,28,46,.15); }
.legal__head .lead{ max-width:62ch; }
.legal__agg{ margin-top:1.25rem; font-size:var(--step-small); color:var(--soft); letter-spacing:.02em; }
.sintesi{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap); margin-top:clamp(2rem,4vw,3rem); }
.sintesi div{ background:var(--pietra); padding:clamp(1.25rem,2vw,1.75rem); border-top:2px solid var(--ottone); }
.sintesi dt{ font-family:var(--display); font-size:clamp(1.35rem,1.2rem + .5vw,1.7rem); line-height:1.15; }
.sintesi dd{ margin:.6rem 0 0; color:var(--soft); line-height:1.5; }
.legal__grid{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(3rem,6vw,7rem); margin-top:clamp(3rem,5vw,4.5rem); }
.indice{ position:sticky; top:calc(var(--hh) + 2rem); align-self:start; font-size:var(--step-small); }
.indice summary{ list-style:none; font-weight:600; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; color:var(--ottone-2); margin-bottom:1rem; pointer-events:none; }
.indice summary::-webkit-details-marker{ display:none; }
.indice ol{ display:grid; gap:.15rem; border-left:1px solid rgba(20,28,46,.15); }
.indice a{ display:flex; gap:.7rem; padding:.4rem 0 .4rem 1rem; margin-left:-1px; border-left:1px solid transparent; color:var(--soft); text-decoration:none; line-height:1.35; }
.indice a span{ color:var(--ottone-2); min-width:1.2em; font-variant-numeric:tabular-nums; }
.indice a:hover{ color:var(--inchiostro); border-left-color:var(--ottone); }
.legal__testo{ max-width:880px; }
.legal__testo section{ scroll-margin-top:calc(var(--hh) + 1.5rem); padding-top:clamp(2.5rem,4vw,3.5rem); }
.legal__testo section:first-child{ padding-top:0; }
.legal__testo section + section{ border-top:1px solid rgba(20,28,46,.1); margin-top:clamp(2.5rem,4vw,3.5rem); }
.legal .legal__testo h2{ margin:0 0 1rem; display:flex; gap:.9rem; align-items:baseline; }
.legal__n{ font-family:var(--sans); font-size:.9rem; font-weight:600; color:var(--ottone-2); font-variant-numeric:tabular-nums; }
.legal .table-wrap{ margin-top:1.25rem; }
.legal tbody th{ font-weight:600; width:24%; }
.ul-cols{ columns:2; column-gap:2.5rem; }
@media (max-width:1023px){
  .legal__grid{ grid-template-columns:1fr; gap:2.5rem; }
  .indice{ position:static; background:var(--pietra); padding:1.1rem 1.25rem; }
  .indice summary{ pointer-events:auto; cursor:pointer; margin:0; display:flex; justify-content:space-between; }
  .indice summary::after{ content:"+"; font-size:1.1rem; line-height:1; }
  .indice details[open] summary::after{ content:"−"; }
  .indice details[open] ol{ margin-top:1rem; }
}
@media (max-width:767px){
  .sintesi{ grid-template-columns:1fr; }
  .ul-cols{ columns:1; }
  .legal tbody th{ width:auto; }
}
.narrow{ max-width:68ch; margin:0 auto; padding:0 var(--g); }
.legal h1{ font-size:clamp(3rem,1.6rem + 5vw,6.5rem); margin-bottom:1.5rem; }
.legal .lead{ color:var(--soft); }
.legal h2{ font-size:clamp(1.9rem,1.4rem + 1.4vw,2.6rem); margin:3rem 0 .75rem; }
.legal h3{ font-family:var(--sans); font-size:1.15rem; font-weight:600; margin:2rem 0 .5rem; letter-spacing:0; line-height:1.3; }
.legal p{ margin-top:.9em; }
.legal ul{ list-style:disc; padding-left:1.3em; margin-top:.9em; }
.legal li{ margin-top:.45em; }
.legal a{ text-underline-offset:.22em; text-decoration-thickness:1px; }
.legal a:hover{ color:var(--ottone); }
.banner{ display:flex; gap:1rem; padding:1.25rem 1.4rem; background:var(--pietra); font-size:var(--step-small); }
.banner--accent{ background:#EFE6D2; }
.banner__icon{ width:22px; height:22px; flex:none; margin-top:.15rem; color:var(--ottone); }
.table-wrap{ overflow-x:auto; }
.legal table{ border-collapse:collapse; width:100%; font-size:var(--step-small); }
.legal th,.legal td{ text-align:left; vertical-align:top; padding:.8rem .6rem; border-bottom:1px solid rgba(20,28,46,.15); }
.legal thead th{ border-bottom:1.5px solid var(--inchiostro); }
.text-sm{ font-size:var(--step-small); } .text-muted{ color:var(--soft); } .mt-4{ margin-top:1.5rem; } .mt-5{ margin-top:2rem; } .mt-7{ margin-top:3.5rem; } .break-word{ overflow-wrap:anywhere; }
.errore{ min-height:100svh; display:flex; align-items:center; padding-top:var(--hh); background:var(--pietra); }
.errore .btns{ margin-top:2rem; }
.errore .lead{ margin-top:1.25rem; max-width:48ch; }

/* footer */
main{ position:relative; background:var(--carta); }
.footer{ background:var(--notte); color:var(--notte-ink); padding:clamp(3.5rem,6vw,5rem) 0 2rem; font-size:1rem; }
.footer__grid{ display:grid; gap:2.5rem var(--gap); grid-template-columns:repeat(12,minmax(0,1fr)); }
.footer__studio{ grid-column:1 / 6; }
.footer__grid > div:nth-child(2){ grid-column:6 / 9; }
.footer .soc{ grid-column:9 / -1; display:grid; gap:1rem; align-content:start; }
.footer .brand{ color:#fff; margin-bottom:1.25rem; display:inline-flex; }
.footer address{ font-style:normal; margin-bottom:1rem; }
.footer h2{ font-family:var(--sans); font-size:1rem; font-weight:600; color:#fff; letter-spacing:0; line-height:1.4; margin-bottom:.6rem; }
.footer a{ text-decoration:none; }
.footer a:hover{ color:#fff; text-decoration:underline; text-underline-offset:.2em; }
.footer li + li{ margin-top:.3rem; }
.footer .soc strong{ color:#fff; font-weight:500; display:block; }
.footer .soc span{ display:block; overflow-wrap:anywhere; }
.footer__bottom{ display:flex; flex-wrap:wrap; gap:.5rem 2rem; justify-content:space-between; margin-top:clamp(2.5rem,5vw,4rem); font-size:var(--step-small); }
.footer__bottom ul{ display:flex; gap:1.25rem; }
.footer__crediti{ margin-top:.75rem; font-size:var(--step-small); color:rgba(201,207,219,.7); }
.footer__crediti a{ text-decoration:underline; }
@media (max-width:899px){ .footer__grid{ grid-template-columns:1fr 1fr; } .footer__studio,.footer .soc{ grid-column:1 / -1 !important; } .footer__grid > div:nth-child(2){ grid-column:1 / -1; } }

/* entrate: il contenuto resta visibile se lo script non parte */
.anim [data-in], .anim .gradino, .anim .linea li > *, .anim .tre li{ opacity:0; }
.anim .linea{ --corsa:0; }
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{ transition-duration:.01ms!important; animation-duration:.01ms!important; } }

/* chiusura delle pagine servizio: invito e recapiti su pietra */
.chiudi__in{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(2.5rem,6vw,7rem); align-items:center; }
.chiudi__in::before{ content:""; grid-column:1 / -1; height:2px; margin-bottom:clamp(.5rem,2vw,1.5rem); background:var(--ottone); }
.chiudi__eti{ margin-bottom:1.25rem; font-size:var(--step-small); font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ottone-2); }
.chiudi h2{ color:var(--notte); max-width:16ch; }
.chiudi .lead{ margin:1.5rem 0 2.25rem; max-width:40ch; color:var(--soft); }
.chiudi__rec{ list-style:none; margin:0; padding:0; background:var(--carta); border-top:2px solid var(--ottone); }
.chiudi__rec li{ display:flex; align-items:center; gap:1.25rem; padding:clamp(1.25rem,1.8vw,1.75rem) clamp(1.25rem,2vw,2rem); }
.chiudi__rec li + li{ border-top:1px solid var(--pietra-2); }
.chiudi__icona{ flex:none; width:58px; aspect-ratio:1; padding:14px; border:1px solid var(--ottone); border-radius:50%; }
.chiudi__icona .icona{ stroke-width:1.4; }
.chiudi__rec small{ display:block; font-family:var(--sans); margin-bottom:.15rem; font-size:var(--step-small); color:var(--soft); }
.chiudi__rec li > span:last-child{ min-width:0; font-family:var(--display); font-size:clamp(1.2rem,1.05rem + .45vw,1.5rem); line-height:1.2; color:var(--notte); overflow-wrap:anywhere; }
.chiudi__rec a{ text-decoration:none; transition:color .25s; }
.chiudi__rec a:hover{ color:var(--ottone-2); }
@media (max-width:899px){ .chiudi__in{ grid-template-columns:minmax(0,1fr); } .chiudi__icona{ width:50px; padding:12px; } }
