/* ==========================================================================
   ubico — design tokens v1.0
   ========================================================================== */
:root{
  --u-petrolio:#0B5155; --u-petrolio-hover:#083E41; --u-petrolio-tint:#E4EEEE;
  --u-inchiostro:#10161A; --u-grafite:#5B6672; --u-alluminio:#D3D9D7;
  --u-nebbia:#F4F6F5; --u-bianco:#FFFFFF;
  --u-conforme:#1B7A43; --u-conforme-bg:#EFF7F2; --u-conforme-bordo:#BEDCC9;
  --u-scadenza:#B26B00; --u-scadenza-bg:#FBF5EA; --u-scadenza-bordo:#E8D3AC;
  --u-scaduto:#C0322B;  --u-scaduto-bg:#FCF0EF;  --u-scaduto-bordo:#EFC4C1;
  --u-dismesso:#5B6672; --u-dismesso-bg:#F4F6F5; --u-dismesso-bordo:#D3D9D7;

  --u-font-display:"Chivo",system-ui,sans-serif;
  --u-font-ui:"Instrument Sans",system-ui,sans-serif;
  --u-font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace;

  --u-corpo:1rem; --u-corpo-lh:1.5rem;
  --u-corpo-s:.9375rem; --u-corpo-s-lh:1.4rem;
  --u-label:.75rem; --u-label-tracking:.08em;
  --u-peso-forte:600;

  --u-space-1:4px; --u-space-2:8px; --u-space-3:12px; --u-space-4:16px;
  --u-space-6:24px; --u-space-8:32px; --u-space-12:48px; --u-space-16:64px;
  --u-space-24:96px;

  --u-radius-s:4px; --u-radius-m:8px; --u-radius-l:12px;
  --u-tap:48px;
  --u-bordo:1px solid var(--u-alluminio);
  --u-shadow-1:0 1px 2px rgba(16,22,26,.06),0 1px 3px rgba(16,22,26,.04);
  --u-shadow-2:0 10px 34px rgba(16,22,26,.10);
  --u-t-feedback:120ms; --u-easing:cubic-bezier(.2,0,0,1);
  --u-focus:2px solid var(--u-petrolio); --u-focus-offset:2px;
}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:var(--u-focus); outline-offset:var(--u-focus-offset);
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important}
}

/* ==========================================================================
   base
   ========================================================================== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--u-bianco);color:var(--u-inchiostro);
  font-family:var(--u-font-ui);font-size:var(--u-corpo);line-height:var(--u-corpo-lh);-webkit-font-smoothing:antialiased}
svg{max-width:100%}
.u-wrap{max-width:1120px;margin:0 auto;padding:0 var(--u-space-6)}
.u-band{padding:var(--u-space-24) 0}
.u-band--nebbia{background:var(--u-nebbia)}
.u-band--dark{background:var(--u-inchiostro);color:#fff}
.u-band--tight{padding:var(--u-space-16) 0}

.u-rule{display:flex;align-items:baseline;gap:var(--u-space-4);
  border-top:1px solid var(--u-alluminio);padding-top:var(--u-space-3);margin-bottom:var(--u-space-8);
  font-family:var(--u-font-mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--u-grafite)}
.u-band--dark .u-rule{border-top-color:#2A343B;color:#7C8892}
.u-rule .n{margin-left:auto;color:var(--u-petrolio)}
.u-band--dark .u-rule .n{color:#7FA3A5}

h2.u-h2{font-family:var(--u-font-display);font-weight:700;
  font-size:clamp(1.5rem,3.2vw,1.9rem);line-height:1.2;letter-spacing:-.015em;
  margin:0 0 var(--u-space-4);max-width:26ch}
p.u-lede{color:var(--u-grafite);margin:0 0 var(--u-space-12);max-width:62ch;font-size:1.0625rem;line-height:1.6}
.u-band--dark p.u-lede{color:#9BA7AF}
.u-nota{font-size:var(--u-corpo-s);line-height:1.55;color:var(--u-grafite)}
.u-mono{font-family:var(--u-font-mono);letter-spacing:.04em}

/* ==========================================================================
   nav
   ========================================================================== */
.u-nav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(140%) blur(8px);border-bottom:var(--u-bordo)}
.u-nav-in{display:flex;align-items:center;gap:var(--u-space-6);min-height:66px}
.u-nav-logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--u-inchiostro)}
.u-nav-name{font-family:var(--u-font-display);font-weight:700;font-size:17px;letter-spacing:-.01em}
.u-nav-links{display:flex;gap:var(--u-space-6);margin-left:var(--u-space-8)}
.u-nav-links a{color:var(--u-grafite);text-decoration:none;font-size:14px}
.u-nav-links a:hover{color:var(--u-petrolio)}
.u-nav-cta{margin-left:auto}
@media(max-width:820px){.u-nav-links{display:none}}

/* ==========================================================================
   bottoni e campi
   ========================================================================== */
.u-btn{min-height:var(--u-tap);border-radius:var(--u-radius-m);border:1px solid var(--u-alluminio);
  background:var(--u-bianco);font-family:var(--u-font-ui);font-size:15px;font-weight:var(--u-peso-forte);
  color:var(--u-inchiostro);display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:0 20px;cursor:pointer;text-decoration:none;
  transition:background var(--u-t-feedback) var(--u-easing),border-color var(--u-t-feedback) var(--u-easing)}
.u-btn:hover{background:var(--u-nebbia)}
.u-btn--pri{background:var(--u-petrolio);border-color:var(--u-petrolio);color:#fff}
.u-btn--pri:hover{background:var(--u-petrolio-hover);border-color:var(--u-petrolio-hover)}
.u-btn--sm{min-height:40px;font-size:14.5px;padding:0 14px}
.u-btn--full{width:100%}


/* pill di stato */
.u-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:var(--u-radius-s);
  font-size:13.5px;font-weight:var(--u-peso-forte);line-height:1.3;border:1px solid;white-space:nowrap}
.u-pill svg{width:13px;height:13px;flex:none}
.u-pill--ok{color:var(--u-conforme);border-color:var(--u-conforme-bordo);background:var(--u-conforme-bg)}
.u-pill--wa{color:var(--u-scadenza);border-color:var(--u-scadenza-bordo);background:var(--u-scadenza-bg)}

/* ==========================================================================
   HERO
   ========================================================================== */
.u-hero{padding:var(--u-space-16) 0 var(--u-space-24);background:
  linear-gradient(180deg,var(--u-bianco) 0%,var(--u-nebbia) 100%)}
.u-hero-testa{max-width:52ch}
.u-hero-due{display:grid;grid-template-columns:1fr 1fr;gap:var(--u-space-6);
  margin-top:var(--u-space-12);padding-top:var(--u-space-6);border-top:var(--u-bordo)}
.u-hero-due .k{font-family:var(--u-font-mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--u-petrolio);display:block;margin-bottom:8px}
.u-hero-due b{display:block;font-family:var(--u-font-display);font-weight:700;font-size:1.0625rem;
  line-height:1.3;letter-spacing:-.01em;margin-bottom:5px}
.u-hero-due .d{display:block;font-size:14.5px;line-height:1.55;color:var(--u-grafite)}
.u-car-wrap{margin-top:var(--u-space-12)}
@media(max-width:760px){.u-hero-due{grid-template-columns:1fr;gap:var(--u-space-6)}}
.u-kicker{font-family:var(--u-font-mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--u-petrolio);display:block;margin-bottom:var(--u-space-4)}
.u-hero h1{font-family:var(--u-font-display);font-weight:700;
  font-size:clamp(2rem,4.4vw,2.9rem);line-height:1.1;letter-spacing:-.026em;margin:0 0 var(--u-space-6);max-width:20ch}
.u-hero-sub{font-size:1.125rem;line-height:1.62;color:var(--u-grafite);max-width:50ch;margin:0 0 var(--u-space-8)}
.u-hero-actions{display:flex;flex-wrap:wrap;gap:var(--u-space-3);margin-bottom:var(--u-space-8)}
.u-hero-note{border-left:2px solid var(--u-petrolio);padding-left:14px;font-size:var(--u-corpo-s);
  line-height:1.55;color:var(--u-grafite);max-width:48ch}


/* ---- scheda bene: elemento firma ---- */
.u-scheda{background:var(--u-bianco);border:var(--u-bordo);border-radius:var(--u-radius-l);
  box-shadow:var(--u-shadow-1);overflow:hidden}
.u-scheda-top{display:flex;align-items:flex-start;gap:var(--u-space-4);
  padding:var(--u-space-6);border-bottom:var(--u-bordo)}
.u-scheda-code{font-family:var(--u-font-mono);font-size:11px;letter-spacing:.06em;color:var(--u-grafite);display:block;margin-bottom:4px}
.u-scheda-name{font-family:var(--u-font-display);font-weight:700;font-size:1.25rem;line-height:1.25;
  letter-spacing:-.015em;margin:0}
.u-scheda-meta{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;padding:var(--u-space-4) var(--u-space-6);
  border-bottom:var(--u-bordo);background:var(--u-nebbia);font-size:14.5px;margin:0}
.u-scheda-meta dt{font-family:var(--u-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--u-grafite);padding-top:3px;white-space:nowrap}
.u-scheda-meta dd{margin:0;font-weight:500}
.u-scheda-body{padding:var(--u-space-6)}
.u-scheda-h{font-family:var(--u-font-mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--u-grafite);margin:0 0 var(--u-space-4)}

.u-tl{list-style:none;margin:0;padding:0;position:relative}
.u-tl::before{content:"";position:absolute;left:5px;top:8px;bottom:14px;width:1px;background:var(--u-alluminio)}
.u-tl li{position:relative;padding:0 0 var(--u-space-4) 26px;display:grid;grid-template-columns:1fr;gap:1px}
.u-tl li::before{content:"";position:absolute;left:0;top:6px;width:11px;height:11px;border-radius:50%;
  background:var(--u-bianco);border:2px solid var(--u-alluminio)}
.u-tl li.is-key::before{border-color:var(--u-petrolio);background:var(--u-petrolio)}
.u-tl .d{font-family:var(--u-font-mono);font-size:11px;letter-spacing:.05em;color:var(--u-grafite)}
.u-tl .t{font-size:14px;font-weight:var(--u-peso-forte);line-height:1.35}
.u-tl .s{font-size:14px;line-height:1.45;color:var(--u-grafite)}
.u-scheda-foot{border-top:var(--u-bordo);padding:var(--u-space-4) var(--u-space-6);
  display:flex;align-items:center;justify-content:space-between;gap:var(--u-space-4);background:var(--u-nebbia)}
.u-scheda-foot span.l{font-family:var(--u-font-mono);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--u-grafite)}


/* ==========================================================================
   carosello schede
   ========================================================================== */
.u-car{min-width:0}
.u-car-track{display:flex;gap:var(--u-space-4);overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;padding:2px}
.u-car-track::-webkit-scrollbar{display:none}
.u-car-slide{flex:0 0 340px;scroll-snap-align:start;min-width:0;display:flex;flex-direction:column}
@media(max-width:520px){.u-car-slide{flex:0 0 88%}}
.u-slide-lab{font-family:var(--u-font-mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--u-grafite);margin-bottom:10px;display:block}
.u-car-slide .u-scheda{flex:1;display:flex;flex-direction:column}
.u-car-slide .u-scheda-body{flex:1}
.u-car-nav{display:flex;align-items:center;justify-content:flex-start;gap:var(--u-space-2);margin-top:var(--u-space-2)}
.u-dots{display:flex;align-items:center}
.u-dot{width:26px;height:44px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.u-dot::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--u-alluminio);
  transition:width var(--u-t-feedback) var(--u-easing),background var(--u-t-feedback) var(--u-easing)}
.u-dot[aria-current="true"]::before{width:20px;border-radius:4px;background:var(--u-petrolio)}
.u-arw{width:44px;height:44px;border-radius:50%;border:var(--u-bordo);background:var(--u-bianco);
  color:var(--u-inchiostro);display:grid;place-items:center;cursor:pointer}
.u-arw svg{width:20px;height:20px}
.u-arw:hover{background:var(--u-nebbia);border-color:var(--u-grafite)}
.u-pill--di{color:var(--u-dismesso);border-color:var(--u-dismesso-bordo);background:var(--u-dismesso-bg)}

/* ==========================================================================
   funzioni
   ========================================================================== */
.u-fn{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--u-alluminio);
  border:var(--u-bordo);border-radius:var(--u-radius-m);overflow:hidden}
.u-fn-cell{background:var(--u-bianco);padding:var(--u-space-6)}
.u-fn-cell h3{font-family:var(--u-font-display);font-weight:700;font-size:1.0625rem;line-height:1.3;
  margin:0 0 8px;letter-spacing:-.01em}
.u-fn-cell p{margin:0;font-size:var(--u-corpo-s);line-height:1.55;color:var(--u-grafite)}
.u-fn-ico{width:26px;height:26px;color:var(--u-petrolio);margin-bottom:var(--u-space-3);display:block}
@media(max-width:900px){.u-fn{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.u-fn{grid-template-columns:1fr}}

/* ==========================================================================
   rilievo: annotazioni libere e segnalazione aperta
   ========================================================================== */
.u-ril{display:grid;grid-template-columns:1fr 1fr;gap:var(--u-space-12);
  margin-top:var(--u-space-16);border-top:2px solid var(--u-inchiostro);padding-top:var(--u-space-8)}
.u-ril .k{font-family:var(--u-font-mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--u-petrolio);display:block;margin-bottom:var(--u-space-3)}
.u-ril h3{font-family:var(--u-font-display);font-weight:700;font-size:1.375rem;line-height:1.22;
  letter-spacing:-.02em;margin:0 0 var(--u-space-4);max-width:24ch}
.u-ril p{margin:0 0 var(--u-space-4);font-size:var(--u-corpo-s);line-height:1.62;color:var(--u-grafite);max-width:54ch}
.u-ril strong{color:var(--u-inchiostro);font-weight:var(--u-peso-forte)}
@media(max-width:860px){.u-ril{grid-template-columns:1fr;gap:var(--u-space-12)}}

.u-app{background:var(--u-bianco);border:var(--u-bordo);border-radius:var(--u-radius-l);
  box-shadow:var(--u-shadow-1);overflow:hidden;max-width:360px;margin-top:var(--u-space-6)}
.u-app-h{background:var(--u-inchiostro);color:#fff;padding:var(--u-space-3) var(--u-space-4);
  font-family:var(--u-font-mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  display:flex;justify-content:space-between;gap:10px}
.u-app-h span:last-child{color:#7FA3A5}
.u-app-b{padding:var(--u-space-4)}
.u-app-b .q{font-size:15px;line-height:1.5;margin:0 0 var(--u-space-3);color:var(--u-inchiostro);max-width:none}
.u-app-foto{height:76px;border-radius:var(--u-radius-s);border:1px dashed var(--u-alluminio);
  background:repeating-linear-gradient(135deg,#EDF0EF 0 10px,#E5EAE8 10px 20px);
  display:grid;place-items:center;font-family:var(--u-font-mono);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:#8894A0;margin-bottom:var(--u-space-3)}
.u-app-meta{display:flex;justify-content:space-between;gap:10px;font-family:var(--u-font-mono);
  font-size:10.5px;letter-spacing:.05em;color:var(--u-grafite)}

/* ==========================================================================
   situazioni
   ========================================================================== */
.u-sit{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--u-space-8)}
.u-sit-item{display:grid;grid-template-columns:auto 1fr;gap:var(--u-space-4);align-items:start}
.u-sit-n{font-family:var(--u-font-mono);font-size:13px;letter-spacing:.06em;color:var(--u-petrolio);
  padding-top:5px;min-width:26px}
.u-sit-item h3{font-family:var(--u-font-display);font-weight:700;font-size:1.0625rem;margin:0 0 6px;letter-spacing:-.01em}
.u-sit-item p{margin:0;font-size:var(--u-corpo-s);line-height:1.55;color:var(--u-grafite)}
.u-band--dark .u-sit-item p{color:#9BA7AF}
@media(max-width:820px){.u-sit{grid-template-columns:1fr;gap:var(--u-space-6)}}

/* ==========================================================================
   verticali
   ========================================================================== */
.u-ver{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--u-alluminio);
  border:var(--u-bordo);border-radius:var(--u-radius-m);overflow:hidden}
.u-ver-cell{background:var(--u-bianco);padding:var(--u-space-6)}
.u-ver-cell h3{font-family:var(--u-font-display);font-weight:700;font-size:1.0625rem;line-height:1.3;
  margin:0 0 6px;letter-spacing:-.01em}
.u-ver-norm{display:block;font-family:var(--u-font-mono);font-size:10.5px;letter-spacing:.05em;
  color:var(--u-petrolio);margin-bottom:10px;line-height:1.45}
.u-ver-cell p{margin:0;font-size:var(--u-corpo-s);line-height:1.55;color:var(--u-grafite)}
@media(max-width:900px){.u-ver{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.u-ver{grid-template-columns:1fr}}

/* ==========================================================================
   cespiti: fotografia amministrativa vs consistenza fisica
   ========================================================================== */
.u-ric{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--u-space-12);align-items:center;
  margin-top:var(--u-space-12);border-top:var(--u-bordo);padding-top:var(--u-space-12)}
.u-ric h3{font-family:var(--u-font-display);font-weight:700;font-size:1.375rem;line-height:1.22;
  letter-spacing:-.02em;margin:0 0 var(--u-space-4);max-width:22ch}
.u-ric p{margin:0 0 var(--u-space-4);font-size:var(--u-corpo-s);line-height:1.65;color:var(--u-grafite);max-width:56ch}
.u-ric p:last-child{margin-bottom:0}
.u-ric-panel{background:var(--u-bianco);border:var(--u-bordo);border-radius:var(--u-radius-m);overflow:hidden}
.u-ric-h{font-family:var(--u-font-mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--u-grafite);padding:var(--u-space-4) var(--u-space-6);border-bottom:var(--u-bordo);
  display:flex;justify-content:space-between;gap:var(--u-space-4)}
.u-ric-tot{display:grid;grid-template-columns:1fr 1fr;border-bottom:var(--u-bordo)}
.u-ric-tot div{padding:var(--u-space-4) var(--u-space-6)}
.u-ric-tot div+div{border-left:var(--u-bordo)}
.u-ric-tot b{display:block;font-family:var(--u-font-display);font-weight:800;font-size:1.75rem;
  line-height:1;letter-spacing:-.03em;margin-bottom:5px}
.u-ric-tot span{font-size:13px;line-height:1.4;color:var(--u-grafite);display:block}
.u-ric-list{list-style:none;margin:0;padding:var(--u-space-2) var(--u-space-6) var(--u-space-4)}
.u-ric-list li{display:grid;grid-template-columns:38px 1fr;gap:var(--u-space-3);align-items:baseline;
  padding:9px 0;border-bottom:1px dashed var(--u-alluminio);font-size:14px;line-height:1.45}
.u-ric-list li:last-child{border-bottom:0}
.u-ric-list .q{font-family:var(--u-font-mono);font-weight:600;font-size:15px;text-align:right}
.u-ric-list .q.er{color:var(--u-scaduto)} .u-ric-list .q.wa{color:var(--u-scadenza)} .u-ric-list .q.di{color:var(--u-dismesso)}
.u-ric-foot{padding:0 var(--u-space-6) var(--u-space-4);font-family:var(--u-font-mono);font-size:10px;
  letter-spacing:.06em;text-transform:uppercase;color:#8894A0}
@media(max-width:900px){.u-ric{grid-template-columns:1fr;gap:var(--u-space-8)}}

/* ==========================================================================
   modello di collaborazione
   ========================================================================== */
.u-col3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--u-space-8)}
.u-col3 > div{border-top:2px solid #4E8F92;padding-top:var(--u-space-4)}
.u-col3 h3{font-family:var(--u-font-display);font-weight:700;font-size:1.0625rem;margin:0 0 10px;letter-spacing:-.01em}
.u-col3 p{margin:0;font-size:var(--u-corpo-s);line-height:1.6;color:#9BA7AF}
@media(max-width:820px){.u-col3{grid-template-columns:1fr;gap:var(--u-space-6)}}

/* ==========================================================================
   integrazioni
   ========================================================================== */
.u-int-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:var(--u-space-12);align-items:start}
.u-int{list-style:none;margin:0;padding:0}
.u-int li{display:grid;grid-template-columns:120px 1fr;gap:var(--u-space-4);
  padding:var(--u-space-4) 0;border-bottom:1px dashed var(--u-alluminio)}
.u-int li:first-child{border-top:1px dashed var(--u-alluminio)}
.u-int .f{font-family:var(--u-font-mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--u-petrolio);padding-top:3px}
.u-int b{display:block;font-size:15px;font-weight:var(--u-peso-forte);margin-bottom:2px}
.u-int span.d{color:var(--u-grafite);font-size:var(--u-corpo-s);line-height:1.5}
.u-aside{background:var(--u-bianco);border:var(--u-bordo);border-radius:var(--u-radius-m);padding:var(--u-space-6)}
.u-aside--dark{background:var(--u-inchiostro);border-color:var(--u-inchiostro);color:#fff;margin-top:var(--u-space-4)}
.u-aside h3{font-family:var(--u-font-display);font-weight:700;font-size:1rem;margin:0 0 var(--u-space-3)}
.u-aside dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14.5px;line-height:1.5}
.u-aside dt{font-family:var(--u-font-mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--u-petrolio);padding-top:3px}
.u-aside--dark dt{color:#7FA3A5}
.u-aside dd{margin:0;color:var(--u-grafite)}
.u-aside--dark dd{color:#C2CBD1}
.u-stat-n{font-family:var(--u-font-display);font-weight:800;font-size:2.5rem;line-height:1;
  letter-spacing:-.03em;color:var(--u-petrolio)}
.u-aside p.s{margin:10px 0 0;font-size:var(--u-corpo-s);line-height:1.5;color:var(--u-grafite)}
@media(max-width:900px){.u-int-grid{grid-template-columns:1fr;gap:var(--u-space-8)}
  .u-int li{grid-template-columns:1fr;gap:4px}}

/* ==========================================================================
   percorso
   ========================================================================== */
/* ==========================================================================
   faq
   ========================================================================== */
.u-faq{border-top:var(--u-bordo);max-width:76ch}
.u-faq details{border-bottom:var(--u-bordo)}
.u-faq summary{cursor:pointer;list-style:none;padding:var(--u-space-4) 0;min-height:var(--u-tap);
  display:flex;align-items:center;gap:var(--u-space-4);
  font-family:var(--u-font-display);font-weight:700;font-size:1rem;letter-spacing:-.005em}
.u-faq summary::-webkit-details-marker{display:none}
.u-faq summary::after{content:"+";margin-left:auto;font-family:var(--u-font-mono);font-weight:400;
  font-size:19px;color:var(--u-petrolio);line-height:1}
.u-faq details[open] summary::after{content:"–"}
.u-faq p{margin:0 0 var(--u-space-6);font-size:var(--u-corpo-s);line-height:1.65;color:var(--u-grafite);padding-right:var(--u-space-8)}

/* ==========================================================================
   form
   ========================================================================== */
.u-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--u-space-16);align-items:start}
.u-after{list-style:none;margin:var(--u-space-6) 0 0;padding:0}
.u-after li{display:grid;grid-template-columns:104px 1fr;gap:var(--u-space-4);padding:var(--u-space-3) 0;
  border-bottom:1px dashed #2A343B;font-size:var(--u-corpo-s);line-height:1.5;color:#AAB5BC}
.u-after .t{font-family:var(--u-font-mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;
  color:#7FA3A5;padding-top:3px}
.u-after b{color:#fff;font-weight:var(--u-peso-forte)}
@media(max-width:940px){.u-form-grid{grid-template-columns:1fr;gap:var(--u-space-8)}}

/* ==========================================================================
   footer
   ========================================================================== */
.u-foot{background:var(--u-inchiostro);color:#7C8892;padding:var(--u-space-12) 0;font-size:14px}
.u-foot-in{display:flex;gap:var(--u-space-8);flex-wrap:wrap;justify-content:space-between;align-items:flex-start}
.u-foot a{color:#AAB5BC;text-decoration:none}
.u-foot a:hover{color:#fff;text-decoration:underline}
.u-foot p{margin:0 0 6px;max-width:36ch;line-height:1.55}
.u-foot strong{color:#C2CBD1;font-weight:var(--u-peso-forte)}
.u-foot-claim{font-family:var(--u-font-display);color:#9BA7AF;margin-top:var(--u-space-4);font-size:15px}


/* ==========================================================================
   ambiti
   ========================================================================== */
.u-amb{display:grid;grid-template-columns:1fr 1fr;gap:var(--u-space-6)}
.u-amb-card{background:var(--u-bianco);border:var(--u-bordo);
  border-radius:var(--u-radius-m);padding:var(--u-space-8);display:flex;flex-direction:column}
.u-amb-lab{font-family:var(--u-font-mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--u-petrolio);display:block;margin-bottom:var(--u-space-3)}
.u-amb-card h3{font-family:var(--u-font-display);font-weight:700;font-size:1.375rem;line-height:1.2;
  letter-spacing:-.02em;margin:0 0 var(--u-space-3)}
.u-amb-card > p{margin:0 0 var(--u-space-4);font-size:var(--u-corpo-s);line-height:1.6;color:var(--u-grafite)}
.u-amb-who{font-size:13.5px;line-height:1.5;color:var(--u-inchiostro);background:var(--u-nebbia);
  border-radius:var(--u-radius-s);padding:10px 12px;margin:0 0 var(--u-space-4)}
.u-amb-who b{font-family:var(--u-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--u-grafite);display:block;margin-bottom:3px;font-weight:500}
.u-amb-card ul{margin:0;padding:0;list-style:none;border-top:1px dashed var(--u-alluminio)}
.u-amb-card li{padding:9px 0 9px 20px;border-bottom:1px dashed var(--u-alluminio);position:relative;
  font-size:14.5px;line-height:1.5}
.u-amb-card li::before{content:"";position:absolute;left:2px;top:15px;width:6px;height:6px;
  border-radius:50%;background:var(--u-petrolio)}
@media(max-width:860px){.u-amb{grid-template-columns:1fr}}

/* ==========================================================================
   dati di contesto
   ========================================================================== */
.u-dati{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--u-alluminio);
  border:var(--u-bordo);border-radius:var(--u-radius-m);overflow:hidden;margin-top:var(--u-space-12)}
.u-dati-cell{background:var(--u-bianco);padding:var(--u-space-6)}
.u-dati-n{font-family:var(--u-font-display);font-weight:800;font-size:2.1rem;line-height:1;
  letter-spacing:-.03em;color:var(--u-petrolio);display:block;margin-bottom:10px}
.u-dati-cell p{margin:0;font-size:14px;line-height:1.5;color:var(--u-grafite)}
.u-dati-cell .f{display:block;font-family:var(--u-font-mono);font-size:10px;letter-spacing:.07em;
  color:#8894A0;margin-top:10px;text-transform:uppercase}
@media(max-width:820px){.u-dati{grid-template-columns:1fr}}

/* ==========================================================================
   modalita valutazione
   ========================================================================== */
.u-mod{display:grid;grid-template-columns:1fr 1fr;gap:var(--u-space-4);margin:var(--u-space-6) 0 0}
.u-mod div{border:1px solid #2A343B;border-radius:var(--u-radius-m);padding:var(--u-space-4)}
.u-mod b{display:block;font-size:14px;color:#fff;margin-bottom:4px;font-weight:600}
.u-mod span{display:block;font-size:13.5px;line-height:1.5;color:#9BA7AF}
.u-mod .m{font-family:var(--u-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:#7FA3A5;margin-bottom:6px;display:block}
@media(max-width:520px){.u-mod{grid-template-columns:1fr}}

/* ==========================================================================
   firma dello studio, cta e email protetta
   ========================================================================== */
.u-cta-card{background:var(--u-bianco);border:var(--u-bordo);border-radius:var(--u-radius-l);
  padding:var(--u-space-8);box-shadow:var(--u-shadow-1);color:var(--u-inchiostro)}
.u-cta-card h3,.u-cta-card b{color:var(--u-inchiostro)}
.u-cta-card h3{font-family:var(--u-font-display);font-weight:700;font-size:1.25rem;line-height:1.25;
  letter-spacing:-.015em;margin:0 0 var(--u-space-3)}
.u-cta-card > p{margin:0 0 var(--u-space-6);font-size:var(--u-corpo-s);line-height:1.6;color:var(--u-grafite)}
.u-cta-card ul{list-style:none;margin:0 0 var(--u-space-6);padding:0;border-top:1px dashed var(--u-alluminio)}
.u-cta-card li{padding:10px 0 10px 20px;border-bottom:1px dashed var(--u-alluminio);position:relative;
  font-size:14.5px;line-height:1.5;color:var(--u-grafite)}
.u-cta-card li::before{content:"";position:absolute;left:2px;top:17px;width:6px;height:6px;
  border-radius:50%;background:var(--u-petrolio)}
.u-cta-alt{margin:var(--u-space-4) 0 0;text-align:center;font-size:var(--u-corpo-s);color:var(--u-grafite)}
.u-mail{font-family:var(--u-font-mono);letter-spacing:.03em;color:var(--u-petrolio);text-decoration:none}
.u-mail:hover{text-decoration:underline}
.u-foot .u-mail{color:#AAB5BC}
.u-foot .u-mail:hover{color:#fff}

/* ==========================================================================
   motion
   ========================================================================== */
.u-in{opacity:0;transform:translateY(12px)}
.u-in.is-on{opacity:1;transform:none;transition:opacity 500ms var(--u-easing),transform 500ms var(--u-easing)}
@keyframes u-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.u-anim{opacity:0;animation:u-rise 600ms var(--u-easing) forwards}
.u-d1{animation-delay:60ms}.u-d2{animation-delay:140ms}.u-d3{animation-delay:230ms}.u-d4{animation-delay:320ms}
@media (prefers-reduced-motion:reduce){
  .u-in{opacity:1;transform:none}.u-anim{opacity:1;animation:none}
}
