/* ===================================================================
   CASTALDO — Stile condiviso delle pagine interne
   Estratto dalla "Home — L'ingresso": palette Heritage (navy + rosso),
   tipografia Archivo / IBM Plex Sans / JetBrains Mono.
   =================================================================== */

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }
h1,h2,h3,h4,p{ margin:0; }

:root{
  --bg:#ffffff;
  --surface:#ffffff;
  --ink:#1e2550;
  --ink-soft:#444b78;
  --muted:#7e84a6;
  --accent:#1e2550;
  --accent-2:#c5322a;
  --line:rgba(30,37,80,0.16);
  --line-soft:rgba(30,37,80,0.08);

  --container:1320px;
  --pad-x:clamp(20px, 5vw, 72px);

  /* Tutto in Archivo — titoli, testo, etichette e numeri */
  --display:'Archivo', system-ui, sans-serif;
  --body:'Archivo', system-ui, sans-serif;
  --mono:'Archivo', system-ui, sans-serif;
}

body{
  font-family:var(--body);
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

.container{ max-width:var(--container); margin:0 auto; padding-inline:var(--pad-x); }

/* ── helpers tipografici ─────────────────────────── */
.eyebrow{
  font-family:var(--mono);
  font-size:11.5px; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--accent-2);
  display:inline-flex; align-items:center; gap:12px;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:currentColor; opacity:.6; }

/* ── Top bar (identica alla home) ────────────────── */
.nav{
  position:sticky; top:0; z-index:60;
  background:#ffffff;
  border-bottom:1px solid var(--line);
}
.nav__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:28px; height:132px;
}
.brand{ display:flex; align-items:center; flex-shrink:0; }
.brand img{ height:92px; width:auto; }
@media (max-width:720px){ .brand img{ height:64px; } }

.menu{ display:flex; align-items:center; gap:clamp(24px,3vw,46px); }
.menu a{
  font-size:18.5px; font-weight:500; letter-spacing:0.01em;
  color:var(--ink-soft); position:relative; padding:4px 0;
  transition:color .2s ease;
}
.menu a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1.5px;
  background:var(--accent-2); transition:right .28s cubic-bezier(.2,.7,.2,1);
}
.menu a:hover{ color:var(--ink); }
.menu a:hover::after,
.menu a[aria-current="page"]::after{ right:0; }
.menu a[aria-current="page"]{ color:var(--ink); }

.nav__right{ display:flex; align-items:center; gap:18px; flex-shrink:0; }
.nav__cta{
  display:inline-block; padding:10px 20px; border-radius:999px;
  background:var(--accent); color:#fff; font-weight:600; font-size:14.5px;
  letter-spacing:0.01em; white-space:nowrap;
  transition:transform .15s ease, box-shadow .15s ease;
}
.nav__cta:hover{ transform:translateY(-1px); box-shadow:0 8px 22px rgba(30,37,80,0.25); }
@media (max-width:900px){ .nav__cta{ display:none; } }
/* Tendina lingua (variante C: dopo il CTA) */
.langdd{ position:relative; }
.langdd summary{
  list-style:none; cursor:pointer; user-select:none;
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 13px; border:1px solid var(--line); border-radius:999px;
  font-size:13px; font-weight:600; color:var(--ink); background:transparent;
  white-space:nowrap; transition:border-color .2s ease;
}
.langdd summary::-webkit-details-marker{ display:none; }
.langdd summary:hover{ border-color:var(--ink); }
.langdd__chev{ transition:transform .15s ease; }
.langdd[open] .langdd__chev{ transform:rotate(180deg); }
.langdd__menu{
  position:absolute; right:0; top:calc(100% + 8px); z-index:60;
  margin:0; padding:6px; list-style:none; min-width:172px;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:0 14px 34px rgba(30,37,80,0.16);
}
.langdd__menu button{
  display:flex; width:100%; align-items:center; justify-content:space-between; gap:16px;
  background:none; border:0; cursor:pointer;
  padding:9px 12px; border-radius:8px; font-size:14px; color:var(--ink); text-align:left;
  font-family:var(--body);
}
.langdd__menu button:hover{ background:rgba(30,37,80,0.06); }
.langdd__code{ font-size:11px; letter-spacing:0.1em; color:var(--muted); }
.langdd__menu button[aria-pressed="true"]{ font-weight:700; }
.langdd__menu button[aria-pressed="true"] .langdd__code{ color:var(--accent-2); }
@media (max-width:980px){ .menu{ display:none; } }

/* ── Intestazione di pagina ──────────────────────── */
/* Breadcrumb subito sotto il banner, stessa quota di /sedi (.phead--slim) */
.phead{ padding:clamp(12px,2vw,20px) 0 clamp(30px,4vw,52px); }
.phead__crumbs{
  font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--muted); display:flex; align-items:center; gap:10px; margin-bottom:clamp(22px,3vw,34px);
}
.phead__crumbs a{ transition:color .2s ease; }
.phead__crumbs a:hover{ color:var(--accent-2); }
.phead__crumbs span{ opacity:.5; }
.phead__title{
  font-family:var(--display); font-weight:700; letter-spacing:-0.03em;
  font-size:clamp(44px,7.6vw,104px); line-height:0.97; text-wrap:balance;
  color:var(--ink); max-width:24ch;
}
.phead__title em{ font-style:normal; color:var(--accent-2); }
.phead__lead{
  margin-top:clamp(22px,2.6vw,30px); font-size:clamp(16px,1.3vw,19px);
  line-height:1.66; color:var(--ink-soft); max-width:62ch;
}

/* ── Bottoni / link freccia ──────────────────────── */
.arrowlink{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--display); font-size:12px; font-weight:600; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--ink); transition:color .25s ease;
}
.arrowlink i{
  width:48px; height:48px; border-radius:50%; border:1px solid var(--line);
  display:grid; place-items:center; font-style:normal; font-size:16px; color:var(--accent);
  transition:background .3s ease, border-color .3s ease, color .3s ease, transform .3s ease;
}
.arrowlink:hover{ color:var(--accent-2); }
.arrowlink:hover i{ background:var(--accent); color:#fff; border-color:var(--accent); transform:translateX(3px); }

/* ── Striscia CTA finale (catch verso pagina seguente) ── */
.next{
  background:var(--bg); color:var(--ink);
  padding:clamp(48px,7vw,104px) 0; border-top:1px solid var(--line);
}
.next__inner{
  display:grid; grid-template-columns:1.4fr auto; align-items:center; gap:clamp(28px,5vw,72px);
}
@media (max-width:820px){ .next__inner{ grid-template-columns:1fr; gap:28px; } }
.next__eyebrow{
  font-family:var(--mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--accent-2); display:block; margin-bottom:18px;
}
.next__title{
  font-family:var(--display); font-weight:700; letter-spacing:-0.025em;
  font-size:clamp(30px,4.4vw,58px); line-height:1.02; text-wrap:balance; color:var(--ink);
}
.next__title em{ font-style:normal; color:var(--accent-2); }
.next__cta{
  display:inline-flex; align-items:center; gap:16px; white-space:nowrap;
  font-family:var(--display); font-size:13px; font-weight:600; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--ink);
}
.next__cta i{
  width:58px; height:58px; border-radius:50%; border:1px solid var(--line);
  display:grid; place-items:center; font-style:normal; font-size:20px; color:var(--accent);
  transition:background .3s ease, border-color .3s ease, color .3s ease, transform .3s ease;
}
.next__cta:hover i{ background:var(--accent); color:#fff; border-color:var(--accent); transform:translateX(3px); }

/* ── Footer (identico alla home) ─────────────────── */
.footer{ background:var(--accent); color:#fff; padding:clamp(48px,6vw,72px) 0 36px; }
.footer__top{
  display:grid; grid-template-columns:repeat(4, max-content);
  justify-content:space-between; gap:clamp(32px,5vw,72px); padding-bottom:40px;
}
@media (max-width:1080px){ .footer__top{ grid-template-columns:1fr 1fr; justify-content:initial; gap:32px 48px; } }
@media (max-width:520px){ .footer__top{ grid-template-columns:1fr; } }
.footer__sede{ white-space:nowrap; }
@media (max-width:520px){ .footer__sede{ white-space:normal; } }
.footer__brand img{
  height:52px; width:auto; margin-bottom:20px;
  background:#fff; padding:12px 16px; border-radius:10px;
}
.footer__addr{ font-size:15px; line-height:1.7; color:rgba(255,255,255,0.72); max-width:34ch; }
.footer__col h4{
  font-family:var(--mono); font-size:13px; letter-spacing:0.16em;
  text-transform:uppercase; color:rgba(255,255,255,0.5); font-weight:500; margin-bottom:14px;
}
.footer__col a, .footer__col span{
  display:block; font-size:16px; line-height:1.5; color:rgba(255,255,255,0.82);
  padding-block:4px; transition:color .2s ease;
}
.footer__col a:hover{ color:var(--accent-2); }
.footer__bottom{
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding-top:24px; border-top:1px solid rgba(255,255,255,0.14);
  font-family:var(--mono); font-size:13px; letter-spacing:0.08em; color:rgba(255,255,255,0.5);
}
.footer__bottom a{ color:inherit; text-decoration:underline; text-underline-offset:2px; transition:color .2s ease; }
.footer__bottom a:hover{ color:var(--accent-2); }


/* ── Reveal on scroll ────────────────────────────── */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms), transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } }

/* ── Menu mobile (hamburger ≤980px) ─────────────────── */
.nav__toggle{ display:none; }
.menu__cta{ display:none; }
@media (max-width:980px){
  .nav__toggle{
    display:inline-flex; align-items:center; justify-content:center;
    width:46px; height:46px; margin-left:4px; padding:0;
    border:1px solid var(--line); border-radius:12px; background:#fff;
    cursor:pointer; flex-shrink:0; -webkit-tap-highlight-color:transparent;
  }
  .nav__toggle span{
    position:relative; display:block; width:20px; height:2px; border-radius:2px;
    background:var(--ink); transition:transform .25s ease, opacity .2s ease;
  }
  .nav__toggle span::before,
  .nav__toggle span::after{
    content:""; position:absolute; left:0; width:20px; height:2px; border-radius:2px;
    background:var(--ink); transition:transform .25s ease, opacity .2s ease;
  }
  .nav__toggle span::before{ top:-6px; }
  .nav__toggle span::after{ top:6px; }
  .nav.nav-open .nav__toggle span{ background:transparent; }
  .nav.nav-open .nav__toggle span::before{ top:0; transform:rotate(45deg); }
  .nav.nav-open .nav__toggle span::after{ top:0; transform:rotate(-45deg); }

  /* i link diventano un pannello a tendina sotto il banner */
  .menu{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:100%; left:0; right:0; z-index:55;
    background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    box-shadow:0 18px 34px rgba(30,37,80,0.14); padding:6px 0;
    transform:translateY(-10px); opacity:0; visibility:hidden;
    transition:opacity .22s ease, transform .22s ease, visibility .22s;
  }
  .nav.nav-open .menu{ transform:translateY(0); opacity:1; visibility:visible; }
  .menu a{ font-size:17px; padding:14px 26px; color:var(--ink); }
  .menu a::after{ display:none; }
  .menu a + a{ border-top:1px solid var(--line-soft); }
  .menu__cta{
    display:block; margin:10px 22px 8px; padding:13px 20px;
    border-radius:999px; background:var(--accent); color:#fff;
    font-weight:600; text-align:center; border-top:none;
  }
}