    /* ─── Reset & Tokens ─────────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      /* Palette brand reale Open Service: verde lime #A3C613, azzurro #0098E0,
         nero/antracite. I nomi delle variabili (navy/teal/gold) sono rimasti
         dalla prima bozza per non dover toccare centinaia di riferimenti var():
         solo i VALORI sono cambiati. */
      --navy:   #14161A;  /* antracite, era navy scuro */
      --navy2:  #1E2126;  /* antracite leggermente più chiaro */
      --teal:   #6E8C0C;  /* verde lime scuro — bottoni/link su bianco (contrasto) */
      --teal-l: #A3C613;  /* verde lime brand, brillante — accenti su sfondo scuro */
      --gold:   #0098E0;  /* azzurro brand, accento secondario, uso sporadico */
      --white:  #FFFFFF;
      --off:    #F7F8F4;
      --gray1:  #E7E9E2;
      --gray2:  #9A9E93;
      --gray3:  #4B4F47;
      --text:   #16181A;

      /* Un solo carattere su tutto il sito: Roboto. Le due variabili restano
         (sans = testo, serif = titoli) per non toccare i riferimenti nel CSS,
         ma puntano allo stesso font. */
      --font-sans: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
      --font-serif: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;

      --radius: 12px;
      --shadow: 0 4px 24px rgba(0,0,0,.10);
      --shadow-lg: 0 12px 48px rgba(0,0,0,.16);

      /* Canali RGB delle tre tinte di marca: servono per le trasparenze (rgba(var(--teal-rgb), .3)).
         Vanno tenuti allineati ai colori sopra: il tema del sito li ricalcola da solo. */
      --teal-rgb: 110,140,12;
      --tealL-rgb: 163,198,19;
      --navy-rgb: 20,22,26;
      --teal-d: #4E6408;            /* accento ancora più scuro (fine del gradiente CTA) */

      /* Raggi derivati: --radius = schede, -sm = pulsanti/campi, -md = riquadri medi */
      --radius-sm: 8px;
      --radius-md: 10px;
      --radius-pill: 999px;

      /* Pulsanti */
      --btn-radius: var(--radius-sm);
      --btn-pad: 14px 28px;
      --btn-weight: 600;
      --btn-transform: none;
      --btn-spacing: normal;

      /* Barra di navigazione e menu mobile */
      --nav-bg: rgba(255,255,255,.97);
      --nav-fg: var(--gray3);
      --nav-fg-strong: var(--navy);
      --nav-line: var(--gray1);
      --mobile-bg: var(--white);

      /* Footer: --footer-ink-rgb è il colore del testo (bianco su fondo scuro, scuro su fondo chiaro) */
      --footer-bg: var(--navy);
      --footer-ink-rgb: 255,255,255;
      --footer-title: var(--white);
      --footer-logo-filter: brightness(0) invert(1);
    }

    html { scroll-behavior: smooth; }
    body { font-family: var(--font-sans); color: var(--text); background: var(--white); line-height: 1.6; }

    img { display: block; max-width: 100%; height: auto; }   /* height:auto + width/height negli attributi: niente sbalzi di layout né deformazioni */
    a { color: inherit; text-decoration: none; }
    button { font-family: inherit; cursor: pointer; }

    /* ─── Focus accessibility ────────────────────────────────── */
    :focus-visible { outline: 3px solid var(--teal-l); outline-offset: 3px; border-radius: 4px; }

    /* ─── Utility ────────────────────────────────────────────── */
    .container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
    .tag {
      display: inline-block;
      font-size: .72rem;
      font-weight: 600;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--teal);
      margin-bottom: 12px;
      position: relative;
      padding-bottom: 10px;
    }
    .tag::after {
      content: ''; position: absolute; left: 0; bottom: 0;
      width: 28px; height: 2px; background: var(--teal-l);
    }
    body.fx-reveal.fx-tag_underline .reveal .tag::after { width: 0; transition: width .5s ease .15s; }
    body.fx-reveal.fx-tag_underline .reveal.revealed .tag::after { width: 28px; }
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: var(--btn-pad);
      border-radius: var(--btn-radius);
      font-size: .95rem;
      font-weight: var(--btn-weight);
      text-transform: var(--btn-transform);
      letter-spacing: var(--btn-spacing);
      transition: all .2s ease;
      border: none;
    }
    .btn-primary {
      background: var(--teal);
      color: var(--white);
    }
    .btn-primary:hover { background: var(--teal-l); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(var(--teal-rgb),.35); }
    .btn-outline {
      background: transparent;
      color: var(--white);
      border: 2px solid rgba(255,255,255,.55);
    }
    .btn-outline:hover { border-color: var(--white); background: rgba(255,255,255,.1); }
    .btn-dark {
      background: var(--navy);
      color: var(--white);
    }
    .btn-dark:hover { background: var(--navy2); transform: translateY(-1px); }

    /* ─── Navbar ─────────────────────────────────────────────── */
    /* Dimensioni del logo: i valori reali arrivano da Impostazioni (iniettati nell'<head>) */
    :root { --logo-h: 52px; --nav-h: 80px; --logo-h-footer: 44px; }
    html { scroll-padding-top: var(--nav-h); }
    .navbar {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 100;
      padding: 0 24px;
      height: var(--nav-h);
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: var(--nav-bg);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--nav-line);
      box-shadow: 0 1px 12px rgba(0,0,0,.07);
    }
    .navbar__logo {
      display: flex;
      align-items: center;
    }
    .navbar__logo img {
      height: var(--logo-h);
      width: auto;
      max-width: 64vw;
      object-fit: contain;
      display: block;
    }
    .navbar__brand-name { font-family: var(--font-serif); font-size: 1.2rem; color: var(--nav-fg-strong); }
    .navbar__nav {
      display: flex;
      align-items: center;
      gap: 32px;
      list-style: none;
    }
    .navbar__nav a {
      font-size: .875rem;
      font-weight: 500;
      color: var(--nav-fg);
      transition: color .2s;
    }
    .navbar__nav a:hover { color: var(--teal); }
    .navbar__cta {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .navbar__cta .btn { padding: 9px 20px; font-size: .85rem; }
    .btn-nav-outline {
      background: transparent;
      color: var(--navy);
      border: 2px solid var(--gray1);
    }
    .btn-nav-outline:hover { border-color: var(--teal); color: var(--teal); }

    /* ─── Hero ───────────────────────────────────────────────── */
    .hero {
      /* Non a piena pagina: lascia intravedere la fascia numeri sotto,
         evita che l'hero "mangi" tutta la prima schermata. */
      min-height: clamp(560px, 86svh, 880px);
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: calc(var(--nav-h) + 52px) 24px 80px;
      position: relative;
      overflow: hidden;
      isolation: isolate;
    }
    .hero__bg {
      position: absolute; inset: 0; z-index: -2;
      /* Fondo di riserva quando il blocco non ha nessuna immagine */
      background: linear-gradient(160deg, rgba(var(--navy-rgb),.95) 0%, rgba(var(--navy-rgb),.85) 55%, rgba(var(--teal-rgb),.3) 100%);
    }
    /* Immagini dello slideshow: una sopra l'altra, dissolvenza lenta */
    .hero__slide {
      position: absolute; inset: 0;
      background-size: cover; background-position: center;
      opacity: 0;
      transition: opacity 1.8s ease;
    }
    .hero__slide.is-active { opacity: 1; }
    /* Velatura (stile e intensità impostati nel blocco → variabili --hero-ov) */
    .hero__overlay {
      position: absolute; inset: 0; z-index: -1;
      background: var(--hero-ov-flat);
      pointer-events: none;
    }
    @media (min-width: 769px) { .hero__overlay--side { background: var(--hero-ov); } }
    /* Lo zoom lento gira solo se l'effetto è attivo per la pagina */
    body.fx-hero_zoom .hero__bg { animation: heroZoom 26s ease-in-out infinite alternate; will-change: transform; }
    @keyframes heroZoom { from { transform: scale(1); } to { transform: scale(1.09); } }
    @media (prefers-reduced-motion: reduce) {
      .hero__bg { animation: none !important; }
      .hero__slide { transition: none; }
    }
    .hero::after {
      content: '';
      position: absolute;
      inset: auto 0 0 0;
      height: 200px;
      z-index: -1;
      background: linear-gradient(to top, var(--navy) 0%, transparent 100%);
      pointer-events: none;
    }
    .hero__inner { position: relative; z-index: 1; max-width: 760px; }
    .hero__eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(var(--teal-rgb),.2);
      border: 1px solid rgba(var(--teal-rgb),.45);
      color: var(--teal-l);
      font-size: .8rem;
      font-weight: 600;
      letter-spacing: .08em;
      text-transform: uppercase;
      padding: 6px 14px;
      border-radius: var(--radius-pill);
      margin-bottom: 24px;
    }
    .hero__eyebrow::before {
      content: '';
      width: 6px; height: 6px;
      border-radius: 50%;
      background: var(--teal-l);
      animation: pulse 2s infinite;
    }
    @keyframes pulse {
      0%,100% { opacity: 1; }
      50% { opacity: .4; }
    }
    .hero__title {
      font-family: var(--font-serif);
      font-size: clamp(2.4rem, 6vw, 4.2rem);
      color: var(--white);
      line-height: 1.15;
      margin-bottom: 20px;
    }
    /* Con immagini chiare il testo ha bisogno di un'ombra morbida per restare leggibile */
    .hero--photo .hero__title { text-shadow: 0 2px 24px rgba(var(--navy-rgb),.35); }
    .hero--photo .hero__subtitle { text-shadow: 0 1px 14px rgba(var(--navy-rgb),.4); }
    .hero__title em {
      font-style: normal;
      color: var(--teal-l);
    }
    .hero__subtitle {
      font-size: clamp(.95rem, 1.8vw, 1.15rem);
      color: rgba(255,255,255,.88);
      max-width: 540px;
      margin-bottom: 36px;
      line-height: 1.7;
    }
    .hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }

    /* Parola che cambia nel titolo hero (effetto "hero_morph") */
    .morph-word { display: inline-block; position: relative; color: var(--teal-l); }
    .morph-word span { display: inline-block; }
    .morph-word span.morph-exit { animation: mExit .32s ease forwards; }
    .morph-word span.morph-enter { animation: mEnter .48s cubic-bezier(.16,1,.3,1) forwards; }
    @keyframes mExit { to { opacity: 0; transform: translateY(-14px) scale(.94); filter: blur(6px); } }
    @keyframes mEnter {
      from { opacity: 0; transform: translateY(18px) scale(.94); filter: blur(6px); }
      to   { opacity: 1; transform: translateY(0)    scale(1);   filter: blur(0);  }
    }
    @media (prefers-reduced-motion: reduce) {
      .morph-word span.morph-exit, .morph-word span.morph-enter { animation: none; }
    }
    .hero__scroll {
      position: absolute;
      bottom: 32px;
      right: 32px;
      z-index: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      color: rgba(255,255,255,.45);
      font-size: .72rem;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .hero__scroll::after {
      content: '';
      width: 1px;
      height: 48px;
      background: linear-gradient(to bottom, rgba(255,255,255,.4), transparent);
      animation: scrollLine 2s ease-in-out infinite;
    }
    @keyframes scrollLine {
      0% { transform: scaleY(0); transform-origin: top; opacity: 0; }
      50% { transform: scaleY(1); transform-origin: top; opacity: 1; }
      100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
    }

    /* ─── Stats Strip ────────────────────────────────────────── */
    .stats {
      background: var(--navy);
      padding: 28px 24px;
    }
    .stats__grid {
      max-width: 1200px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 24px;
    }
    .stat {
      text-align: center;
      padding: 16px 0;
      border-right: 1px solid rgba(255,255,255,.08);
    }
    .stat:last-child { border-right: none; }
    .stat__number {
      font-family: var(--font-serif);
      font-size: 2.2rem;
      color: var(--teal-l);
      font-weight: 700;
      line-height: 1;
      margin-bottom: 4px;
    }
    .stat__label {
      font-size: .8rem;
      color: rgba(255,255,255,.55);
      letter-spacing: .04em;
      text-transform: uppercase;
    }

    /* ─── Section Intro ──────────────────────────────────────── */
    .section { padding: 96px 24px; }
    .section--gray { background: var(--off); }
    .section--navy { background: var(--navy); }
    .section__header { max-width: 640px; margin-bottom: 56px; }
    .section__header.center { margin: 0 auto 56px; text-align: center; }
    .section__title {
      font-family: var(--font-serif);
      font-size: clamp(1.8rem, 3.5vw, 2.6rem);
      color: var(--navy);
      line-height: 1.2;
      margin-bottom: 14px;
    }
    .section--navy .section__title { color: var(--white); }
    .section__body {
      font-size: 1.05rem;
      color: var(--gray3);
      line-height: 1.75;
    }
    .section--navy .section__body { color: rgba(255,255,255,.65); }

    /* ─── About Two-Col ──────────────────────────────────────── */
    .about__grid {
      max-width: 1200px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: center;
    }
    /* Senza immagine: testo centrato su una colonna, più leggibile di metà griglia vuota */
    .about__grid--full { grid-template-columns: 1fr; max-width: 800px; text-align: center; }
    .about__grid--full .about__list { align-items: center; }
    .about__grid--full .about__list li { justify-content: center; }
    .about__visual {
      position: relative;
      border-radius: var(--radius);
      overflow: hidden;
      aspect-ratio: 4/3;
    }
    .about__visual img {
      width: 100%; height: 100%;
      object-fit: cover;
    }
    .about__badge {
      position: absolute;
      bottom: 20px; left: 20px;
      background: var(--white);
      border-radius: var(--radius);
      padding: 16px 20px;
      box-shadow: var(--shadow-lg);
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .about__badge-icon {
      width: 44px; height: 44px;
      border-radius: var(--radius-md);
      background: var(--teal);
      display: grid;
      place-items: center;
      font-size: 1.3rem;
    }
    .about__badge-text strong { display: block; font-size: 1.1rem; color: var(--navy); }
    .about__badge-text span { font-size: .8rem; color: var(--gray2); }
    .about__content .section__title { margin-bottom: 16px; }
    .about__list {
      list-style: none;
      margin-top: 28px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .about__list li {
      display: flex;
      align-items: center;
      gap: 12px;
      font-size: .95rem;
      color: var(--gray3);
    }
    .about__list li::before {
      content: '';
      flex-shrink: 0;
      width: 20px; height: 20px;
      border-radius: 50%;
      background: rgba(var(--teal-rgb),.12);
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236E8C0C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: center;
    }

    /* ─── Services Grid ──────────────────────────────────────── */
    .services__grid {
      max-width: 1200px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }
    .service-card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 36px 28px;
      box-shadow: var(--shadow);
      transition: transform .25s ease, box-shadow .25s ease;
      display: flex;
      flex-direction: column;
      gap: 12px;
      border: 1px solid var(--gray1);
    }
    .service-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
    .service-card__img {
      aspect-ratio: 4/3;
      border-radius: calc(var(--radius) - 4px);
      overflow: hidden;
      margin-bottom: 4px;
    }
    .service-card__img img { width: 100%; height: 100%; object-fit: cover; }
    /* Card senza immagine (es. ruoli aziendali): un filo lime al posto dell'icona */
    .service-card--text { border-top: 3px solid var(--teal-l); }
    /* Icona a tratto sottile (lime del brand), come nel sito storico */
    .service-card__icon { width: 56px; height: 56px; color: var(--teal-l); margin-bottom: 2px; }
    .service-card__icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }
    .service-card--icon .service-card__title { margin-top: 4px; }
    .service-card__title {
      font-family: var(--font-serif);
      font-size: 1.15rem;
      color: var(--navy);
      font-weight: 600;
    }
    .service-card__body {
      font-size: .9rem;
      color: var(--gray3);
      line-height: 1.65;
      flex: 1;
    }
    .service-card__link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: .85rem;
      font-weight: 600;
      color: var(--teal);
      margin-top: 8px;
      transition: gap .2s;
    }
    .service-card:hover .service-card__link { gap: 10px; }

    /* ─── Facility Feature ───────────────────────────────────── */
    .facility {
      background: var(--navy);
      padding: 96px 24px;
    }
    .facility__inner {
      max-width: 1200px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: center;
    }
    .facility__content { color: var(--white); }
    .facility__visual {
      border-radius: var(--radius);
      overflow: hidden;
      aspect-ratio: 4/3;
      position: relative;
    }
    .facility__visual img { width: 100%; height: 100%; object-fit: cover; }
    .facility__visual::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, rgba(var(--teal-rgb),.4) 0%, transparent 60%);
      z-index: 1;
    }
    .feature-list {
      list-style: none;
      margin-top: 28px;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .feature-list li {
      display: flex;
      gap: 16px;
      align-items: flex-start;
    }
    .feature-list__dot {
      flex-shrink: 0;
      margin-top: 4px;
      width: 10px; height: 10px;
      border-radius: 50%;
      background: var(--teal-l);
      box-shadow: 0 0 0 4px rgba(var(--tealL-rgb),.2);
    }
    .feature-list__text { font-size: .95rem; color: rgba(255,255,255,.72); line-height: 1.6; }
    .feature-list__text strong { display: block; color: var(--white); font-weight: 600; margin-bottom: 2px; }

    /* ─── Sectors ────────────────────────────────────────────── */
    .sectors__grid {
      max-width: 1200px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 16px;
    }
    .sector-card {
      border-radius: var(--radius);
      overflow: hidden;
      aspect-ratio: 3/4;
      position: relative;
      cursor: pointer;
    }
    .sector-card img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform .4s ease;
    }
    .sector-card:hover img { transform: scale(1.06); }
    .sector-card::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(var(--navy-rgb),.85) 0%, rgba(var(--navy-rgb),.1) 60%, transparent 100%);
      transition: opacity .3s;
    }
    .sector-card:hover::after { background: linear-gradient(to top, rgba(var(--teal-rgb),.75) 0%, rgba(var(--navy-rgb),.3) 60%, transparent 100%); }
    /* Icona + etichetta in un unico blocco ancorato in basso: l'etichetta può andare a capo senza sovrapporsi */
    .sector-card__content {
      position: absolute; left: 0; right: 0; bottom: 14px; z-index: 1;
      display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 0 8px;
    }
    .sector-card__content .sector-card__label { position: static; padding: 0; }
    .sector-card__icon { display: flex; justify-content: center; color: var(--white); }
    .sector-card__icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
    .sector-card__label {
      position: absolute;
      bottom: 14px; left: 0; right: 0;
      text-align: center;
      color: var(--white);
      font-size: .8rem;
      font-weight: 600;
      letter-spacing: .06em;
      text-transform: uppercase;
      z-index: 1;
    }

    /* ─── Manifesto / Quote ──────────────────────────────────── */
    .manifesto {
      background: var(--off);
      padding: 96px 24px;
      text-align: center;
    }
    .manifesto__quote {
      max-width: 780px;
      margin: 0 auto;
      font-family: var(--font-serif);
      font-size: clamp(1.5rem, 3vw, 2.2rem);
      color: var(--navy);
      line-height: 1.4;
      position: relative;
      padding: 0 40px;
    }
    .manifesto__quote::before,
    .manifesto__quote::after {
      content: '"';
      font-size: 5rem;
      line-height: 0;
      vertical-align: -.55em;
      color: var(--teal);
      opacity: .25;
      font-family: var(--font-sans);
    }
    .manifesto__quote::before { margin-right: 8px; }
    .manifesto__quote::after { content: '"'; margin-left: 8px; }
    .manifesto__author {
      margin-top: 24px;
      font-size: .85rem;
      color: var(--gray2);
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    /* ─── Certifications ─────────────────────────────────────── */
    .certs {
      padding: 48px 0;
      border-top: 1px solid var(--gray1);
      border-bottom: 1px solid var(--gray1);
      overflow: hidden;
    }
    .certs__inner {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 24px;
      display: flex;
      align-items: center;
      gap: 32px;
    }
    .certs__label {
      font-size: .75rem;
      font-weight: 600;
      color: var(--gray2);
      letter-spacing: .08em;
      text-transform: uppercase;
      white-space: nowrap;
      flex-shrink: 0;
    }
    .certs__divider {
      width: 1px;
      height: 48px;
      background: var(--gray1);
      flex-shrink: 0;
    }
    .certs__logos {
      display: flex;
      align-items: stretch;
      gap: 12px;
      flex: 1;
      /* mobile: scroll orizzontale con snap */
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding-bottom: 2px; /* evita clip dell'ombra hover */
    }
    .certs__logos::-webkit-scrollbar { display: none; }
    .cert-badge {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 14px 18px;
      border: 1px solid var(--gray1);
      border-radius: var(--radius-md);
      background: var(--white);
      transition: box-shadow .2s, transform .2s;
      text-decoration: none;
      flex: 1;
      min-width: 110px;
      scroll-snap-align: start;
    }
    .cert-badge:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
    .cert-badge img {
      height: 52px;
      width: auto;
      max-width: 90px;
      object-fit: contain;
      display: block;
    }
    .cert-badge__name {
      font-size: .72rem;
      font-weight: 700;
      color: var(--navy);
      text-align: center;
      line-height: 1.2;
      white-space: nowrap;
    }
    .cert-badge__desc {
      font-size: .65rem;
      color: var(--gray2);
      text-align: center;
      line-height: 1.4;
    }

    /* ─── CTA Banner ─────────────────────────────────────────── */
    .cta-banner {
      background: linear-gradient(135deg, var(--teal) 0%, var(--teal-d) 100%);
      padding: 80px 24px;
      text-align: center;
    }
    .cta-banner__title {
      font-family: var(--font-serif);
      font-size: clamp(1.8rem, 3.5vw, 2.8rem);
      color: var(--white);
      margin-bottom: 14px;
    }
    .cta-banner__sub {
      font-size: 1.05rem;
      color: rgba(255,255,255,.8);
      margin-bottom: 36px;
      max-width: 480px;
      margin-left: auto;
      margin-right: auto;
    }
    .cta-banner__actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
    .btn-white {
      background: var(--white);
      color: var(--teal);
      font-weight: 700;
    }
    .btn-white:hover { background: var(--off); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(0,0,0,.2); }

    /* ─── Footer ─────────────────────────────────────────────── */
    footer {
      background: var(--footer-bg);
      color: rgba(var(--footer-ink-rgb),.65);
      padding: 72px 24px 32px;
    }
    .footer__grid {
      max-width: 1200px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1.5fr;
      gap: 48px;
      padding-bottom: 48px;
      border-bottom: 1px solid rgba(var(--footer-ink-rgb),.08);
    }
    .footer__brand { }
    .footer__brand-name { color: var(--footer-title); font-family: var(--font-serif); font-size: 1.1rem; }
    .footer__brand-logo {
      margin-bottom: 14px;
    }
    .footer__brand-logo img {
      height: var(--logo-h-footer);
      max-width: 100%;
      object-fit: contain;
      width: auto;
      filter: var(--footer-logo-filter);
      opacity: .9;
    }
    .footer__brand p { font-size: .88rem; line-height: 1.7; max-width: 280px; }
    .footer__social { display: flex; gap: 10px; margin-top: 20px; }
    .footer__social a {
      width: 36px; height: 36px;
      border-radius: var(--radius-sm);
      border: 1px solid rgba(var(--footer-ink-rgb),.15);
      display: grid;
      place-items: center;
      font-size: .9rem;
      color: rgba(var(--footer-ink-rgb),.6);
      transition: all .2s;
    }
    .footer__social a:hover { background: var(--teal); border-color: var(--teal); color: var(--white); }
    .footer__col-title {
      font-size: .8rem;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--footer-title);
      margin-bottom: 20px;
    }
    .footer__links { list-style: none; display: flex; flex-direction: column; gap: 10px; }
    .footer__links a {
      font-size: .88rem;
      color: rgba(var(--footer-ink-rgb),.55);
      transition: color .2s;
    }
    .footer__links a:hover { color: var(--teal-l); }
    .footer__contact-item {
      display: flex;
      gap: 10px;
      margin-bottom: 14px;
      font-size: .88rem;
    }
    .footer__contact-label {
      font-size: .75rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: rgba(var(--footer-ink-rgb),.35);
      margin-bottom: 2px;
    }
    .footer__contact-value { color: rgba(var(--footer-ink-rgb),.75); }
    .footer__bottom {
      max-width: 1200px;
      margin: 28px auto 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: .8rem;
      flex-wrap: wrap;
      gap: 12px;
    }
    .footer__bottom-links { display: flex; gap: 20px; flex-wrap: wrap; }
    .footer__bottom-links a { color: rgba(var(--footer-ink-rgb),.4); transition: color .2s; }
    .footer__bottom-links a:hover { color: rgba(var(--footer-ink-rgb),.75); }

    /* ─── Sector image placeholders ─────────────────────────── */
    .sector-placeholder {
      width: 100%; height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 2.5rem;
    }

    /* ─── Hamburger ──────────────────────────────────────────── */
    .navbar__hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      width: 40px;
      height: 40px;
      background: none;
      border: none;
      padding: 6px;
      cursor: pointer;
      border-radius: var(--radius-sm);
      transition: background .2s;
    }
    .navbar__hamburger:hover { background: var(--gray1); }
    .navbar__hamburger span {
      display: block;
      height: 2px;
      background: var(--nav-fg-strong);
      border-radius: 2px;
      transition: transform .3s ease, opacity .3s ease, width .3s ease;
      transform-origin: center;
    }
    .navbar__hamburger span:nth-child(1) { width: 22px; }
    .navbar__hamburger span:nth-child(2) { width: 16px; }
    .navbar__hamburger span:nth-child(3) { width: 22px; }
    .navbar__hamburger[aria-expanded="true"] span:nth-child(1) {
      width: 22px;
      transform: translateY(7px) rotate(45deg);
    }
    .navbar__hamburger[aria-expanded="true"] span:nth-child(2) {
      opacity: 0; transform: scaleX(0);
    }
    .navbar__hamburger[aria-expanded="true"] span:nth-child(3) {
      width: 22px;
      transform: translateY(-7px) rotate(-45deg);
    }

    /* ─── Mobile drawer ──────────────────────────────────────── */
    .mobile-menu {
      display: none;
      position: fixed;
      inset: var(--nav-h) 0 0 0;
      z-index: 99;
      background: var(--mobile-bg);
      padding: 32px 24px 40px;
      flex-direction: column;
      gap: 0;
      transform: translateY(-8px);
      opacity: 0;
      pointer-events: none;
      transition: opacity .25s ease, transform .25s ease;
      border-top: 1px solid var(--nav-line);
      overflow-y: auto;
    }
    .mobile-menu.is-open {
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }
    .mobile-menu__nav {
      list-style: none;
      display: flex;
      flex-direction: column;
    }
    .mobile-menu__nav li {
      border-bottom: 1px solid var(--nav-line);
    }
    .mobile-menu__nav a {
      display: block;
      padding: 18px 0;
      font-size: 1.1rem;
      font-weight: 500;
      color: var(--nav-fg-strong);
      transition: color .2s, padding-left .2s;
    }
    .mobile-menu__nav a:hover { color: var(--teal); padding-left: 6px; }
    .mobile-menu__actions {
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin-top: 32px;
    }
    .mobile-menu__actions .btn {
      width: 100%;
      justify-content: center;
      padding: 16px;
      font-size: 1rem;
    }

    /* ─── Responsive ─────────────────────────────────────────── */
    @media (max-width: 1024px) {
      .sectors__grid { grid-template-columns: repeat(5, 1fr); }
      .footer__grid { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 768px) {
      .navbar__nav,
      .navbar__cta { display: none; }
      .navbar__hamburger { display: flex; }
      .mobile-menu { display: flex; }
      .stats__grid { grid-template-columns: repeat(2, 1fr); }
      .about__grid,
      .facility__inner { grid-template-columns: 1fr; }
      .services__grid { grid-template-columns: 1fr; }
      .sectors__grid { grid-template-columns: repeat(2, 1fr); }
      .footer__grid { grid-template-columns: 1fr; gap: 32px; }
      .hero__scroll { display: none; }
      .certs__label,
      .certs__divider { display: none; }
    }

    /* ─── Blocchi CMS aggiuntivi (non presenti nel mockup originale) ───── */
    .facility--light { background: var(--off); }
    .facility--light .facility__content { color: var(--text); }
    .facility--light .section__title { color: var(--navy); }
    .facility--light .feature-list__text { color: var(--gray3); }
    .facility--light .feature-list__text strong { color: var(--navy); }

    .cta-banner--solid { background: var(--teal); }

    .journal-grid {
      max-width: 1200px; margin: 0 auto;
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
    }
    .journal-card {
      display: block; border-radius: var(--radius); overflow: hidden;
      border: 1px solid var(--gray1); box-shadow: var(--shadow);
      transition: transform .25s ease, box-shadow .25s ease;
    }
    .journal-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
    .journal-card__img { aspect-ratio: 16/10; overflow: hidden; }
    .journal-card__img img { width: 100%; height: 100%; object-fit: cover; }
    .journal-card__body { padding: 20px; }
    .journal-card__title { font-family: var(--font-serif); font-size: 1.1rem; color: var(--navy); margin-bottom: 8px; }
    .journal-card__excerpt { font-size: .88rem; color: var(--gray3); line-height: 1.6; }

    /* ─── Immagine panoramica (parallax) ────────────────────────────────── */
    .parallax-banner { position: relative; overflow: hidden; background: var(--navy); }
    .parallax-banner--sm { height: 38vh; min-height: 260px; }
    .parallax-banner--md { height: 52vh; min-height: 340px; }
    .parallax-banner--lg { height: 72vh; min-height: 440px; }
    .parallax-banner__img {
      position: absolute; left: 0; top: -15%; width: 100%; height: 130%;
      object-fit: cover; z-index: 0; will-change: transform;
    }
    .parallax-banner--dark::after {
      content: ''; position: absolute; inset: 0; z-index: 1;
      /* Più scuro al centro, dove sta il testo, più leggero ai bordi */
      background: radial-gradient(ellipse at center, rgba(var(--navy-rgb),.62) 0%, rgba(var(--navy-rgb),.42) 70%, rgba(var(--navy-rgb),.3) 100%);
    }
    /* Con testo il banner cresce se serve (testo lungo / schermi stretti) invece di tagliarlo */
    .parallax-banner--has-text { height: auto; display: flex; align-items: center; }
    .parallax-banner--has-text.parallax-banner--sm { min-height: max(260px, 38vh); }
    .parallax-banner--has-text.parallax-banner--md { min-height: max(340px, 52vh); }
    .parallax-banner--has-text.parallax-banner--lg { min-height: max(440px, 72vh); }
    .parallax-banner__content {
      position: relative; z-index: 2; width: 100%; padding-top: 56px; padding-bottom: 56px;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 22px; text-align: center;
      max-width: 900px; margin: 0 auto; padding-left: 24px; padding-right: 24px;
    }
    .parallax-banner__text {
      font-family: var(--font-serif); font-size: clamp(1.4rem, 3.2vw, 2.4rem);
      color: var(--white); line-height: 1.35; font-weight: 500;
      text-shadow: 0 2px 20px rgba(var(--navy-rgb),.45);
    }
    .parallax-banner__caption {
      font-size: .8rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
      color: rgba(255,255,255,.88);
      text-shadow: 0 1px 12px rgba(var(--navy-rgb),.5);
    }
    .parallax-banner__caption::before {
      content: ''; display: block; width: 44px; height: 2px;
      background: var(--teal-l); margin: 0 auto 14px;
    }

    .faq-item { border-bottom: 1px solid var(--gray1); padding: 18px 0; }
    .faq-item__q { font-weight: 600; color: var(--navy); cursor: pointer; font-size: 1rem; }
    .faq-item__a { margin-top: 10px; color: var(--gray3); line-height: 1.7; font-size: .92rem; }

    .contact-form__field { margin-bottom: 16px; }
    .contact-form__field label { display: block; font-size: .85rem; font-weight: 600; color: var(--white); margin-bottom: 6px; }
    .contact-form__field input, .contact-form__field textarea {
      width: 100%; padding: 10px 12px; border-radius: var(--radius-sm); border: none;
      font-family: var(--font-sans); font-size: .92rem;
    }
    .contact-form__status { margin-top: 12px; color: var(--white); font-size: .85rem; min-height: 1.2em; }

    .gallery-grid { max-width: 1200px; margin: 0 auto; display: grid; gap: 16px; }
    .gallery-grid__item { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4/3; }
    .gallery-grid__item img { width: 100%; height: 100%; object-fit: cover; }

    /* ─── Badge grid (certificazioni, loghi) ────────────────────────────── */
    .badges-grid {
      max-width: 1200px; margin: 0 auto;
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
    }
    .badge-card {
      background: var(--white); border: 1px solid var(--gray1); border-radius: var(--radius);
      padding: 28px 20px; text-align: center;
      display: flex; flex-direction: column; align-items: center; gap: 10px;
    }
    .badge-card__img { width: 100px; height: 100px; display: grid; place-items: center; }
    .badge-card__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
    .badge-card__title { font-family: var(--font-serif); font-size: 1rem; color: var(--navy); font-weight: 600; }
    .badge-card__body { font-size: .84rem; color: var(--gray3); line-height: 1.6; }
    @media (max-width: 900px) { .badges-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 480px) { .badges-grid { grid-template-columns: 1fr; } }

    /* ─── Sedi / indirizzi ───────────────────────────────────────────────── */
    .locations-grid {
      max-width: 1200px; margin: 0 auto;
      display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px;
    }
    .location-card { background: var(--white); border-radius: var(--radius); padding: 32px; box-shadow: var(--shadow); border: 1px solid var(--gray1); }
    .location-card__city { font-family: var(--font-serif); font-size: 1.2rem; color: var(--navy); margin-bottom: 10px; }
    .location-card__address { color: var(--gray3); line-height: 1.6; margin-bottom: 14px; font-size: .92rem; }
    .location-card__line { display: block; font-size: .92rem; color: var(--teal); font-weight: 600; margin-bottom: 4px; }
    .location-card__line:hover { text-decoration: underline; }

    /* ─── Form (contatti + candidatura) ─────────────────────────────────── */
    .form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .job-form__field { margin-bottom: 16px; }
    .job-form__field label { display: block; font-size: .82rem; font-weight: 600; color: var(--navy); margin-bottom: 6px; }
    .job-form__field input, .job-form__field textarea {
      width: 100%; padding: 10px 12px; border-radius: var(--radius-sm); border: 1px solid var(--gray1);
      font-family: var(--font-sans); font-size: .92rem; background: var(--white);
    }
    .job-form__field input:focus, .job-form__field textarea:focus { outline: none; border-color: var(--teal); }
    .job-form__consent { font-size: .76rem; color: var(--gray2); line-height: 1.6; margin-bottom: 20px; }
    .job-form__status { margin-top: 12px; color: var(--teal); font-size: .85rem; min-height: 1.2em; }
    @media (max-width: 640px) { .form-row-2 { grid-template-columns: 1fr; } }

    /* Le griglie (card servizi, badge, settori, journal) entrano una alla
       volta invece che in blocco: più premium, resta comunque sobrio. */
    body.fx-reveal.fx-stagger .reveal .service-card,
    body.fx-reveal.fx-stagger .reveal .badge-card,
    body.fx-reveal.fx-stagger .reveal .sector-card,
    body.fx-reveal.fx-stagger .reveal .journal-card,
    body.fx-reveal.fx-stagger .reveal .location-card {
      opacity: 0; transform: translateY(18px);
      transition: opacity .55s ease, transform .55s ease;
    }
    body.fx-reveal.fx-stagger .reveal.revealed .service-card,
    body.fx-reveal.fx-stagger .reveal.revealed .badge-card,
    body.fx-reveal.fx-stagger .reveal.revealed .sector-card,
    body.fx-reveal.fx-stagger .reveal.revealed .journal-card,
    body.fx-reveal.fx-stagger .reveal.revealed .location-card {
      opacity: 1; transform: none;
    }
    body.fx-reveal.fx-stagger .reveal.revealed .service-card:nth-child(1),  body.fx-reveal.fx-stagger .reveal.revealed .badge-card:nth-child(1),  body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(1),  body.fx-reveal.fx-stagger .reveal.revealed .journal-card:nth-child(1),  body.fx-reveal.fx-stagger .reveal.revealed .location-card:nth-child(1)  { transition-delay: .04s; }
    body.fx-reveal.fx-stagger .reveal.revealed .service-card:nth-child(2),  body.fx-reveal.fx-stagger .reveal.revealed .badge-card:nth-child(2),  body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(2),  body.fx-reveal.fx-stagger .reveal.revealed .journal-card:nth-child(2),  body.fx-reveal.fx-stagger .reveal.revealed .location-card:nth-child(2)  { transition-delay: .10s; }
    body.fx-reveal.fx-stagger .reveal.revealed .service-card:nth-child(3),  body.fx-reveal.fx-stagger .reveal.revealed .badge-card:nth-child(3),  body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(3),  body.fx-reveal.fx-stagger .reveal.revealed .journal-card:nth-child(3),  body.fx-reveal.fx-stagger .reveal.revealed .location-card:nth-child(3)  { transition-delay: .16s; }
    body.fx-reveal.fx-stagger .reveal.revealed .service-card:nth-child(4),  body.fx-reveal.fx-stagger .reveal.revealed .badge-card:nth-child(4),  body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(4),  body.fx-reveal.fx-stagger .reveal.revealed .journal-card:nth-child(4),  body.fx-reveal.fx-stagger .reveal.revealed .location-card:nth-child(4)  { transition-delay: .22s; }
    body.fx-reveal.fx-stagger .reveal.revealed .service-card:nth-child(5),  body.fx-reveal.fx-stagger .reveal.revealed .badge-card:nth-child(5),  body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(5),  body.fx-reveal.fx-stagger .reveal.revealed .journal-card:nth-child(5),  body.fx-reveal.fx-stagger .reveal.revealed .location-card:nth-child(5)  { transition-delay: .28s; }
    body.fx-reveal.fx-stagger .reveal.revealed .service-card:nth-child(6),  body.fx-reveal.fx-stagger .reveal.revealed .badge-card:nth-child(6),  body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(6),  body.fx-reveal.fx-stagger .reveal.revealed .journal-card:nth-child(6),  body.fx-reveal.fx-stagger .reveal.revealed .location-card:nth-child(6)  { transition-delay: .34s; }
    body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(7)  { transition-delay: .40s; }
    body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(8)  { transition-delay: .46s; }
    body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(9)  { transition-delay: .52s; }
    body.fx-reveal.fx-stagger .reveal.revealed .sector-card:nth-child(10)  { transition-delay: .58s; }
    @media (prefers-reduced-motion: reduce) {
      body.fx-reveal.fx-stagger .reveal .service-card, body.fx-reveal.fx-stagger .reveal .badge-card, body.fx-reveal.fx-stagger .reveal .sector-card, body.fx-reveal.fx-stagger .reveal .journal-card, body.fx-reveal.fx-stagger .reveal .location-card { opacity: 1; transform: none; transition: none; }
    }

    /* Numero statistica: sottile linea che si disegna dopo il conteggio */
    .stat__number { position: relative; display: inline-block; padding-bottom: 10px; }
    .stat__number::after {
      content: ''; position: absolute; left: 50%; bottom: 0; height: 2px; width: 0;
      background: var(--teal-l); transform: translateX(-50%);
    }
    body.fx-reveal.fx-counter .reveal.revealed .stat__number::after { width: 36px; transition: width .5s ease 1.1s; }

    /* CTA banner: gradiente lentamente "vivo", solo se "Animazioni" è attivo */
    .cta-banner:not(.cta-banner--solid) { background-size: 200% 200%; }
    body.fx-cta_gradient .cta-banner:not(.cta-banner--solid) { animation: ctaGradient 10s ease infinite; }
    @keyframes ctaGradient { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
    @media (prefers-reduced-motion: reduce) { body.fx-cta_gradient .cta-banner:not(.cta-banner--solid) { animation: none; } }

    /* Navbar: più densa e con ombra dopo il primo scroll */
    .navbar { transition: box-shadow .25s ease, padding .25s ease; }
    .navbar.is-scrolled { box-shadow: 0 4px 20px rgba(0,0,0,.08); }

    /* Card 3D: leggera inclinazione in prospettiva che segue il cursore
       (applicata via JS/effects.js, qui solo la transizione morbida). */
    body.fx-card_3d .card-3d { transition: transform .15s ease-out; transform-style: preserve-3d; will-change: transform; }

    /* ─── Aspetto personalizzato per blocco (data._style) ────────────────────
       Il wrapper porta colori/bordi/margini (inline); queste regole fanno sì
       che sfondo, testo e padding scelti dall'editor vincano sugli stili
       predefiniti della sezione contenuta. */
    .blk-has-bg > * { background: transparent !important; }
    .blk-has-text { color: var(--blk-text); }
    .blk-has-text :where(*:not(.btn):not(.btn *):not(svg):not(svg *):not(.morph-word):not(.morph-word *)) { color: inherit !important; }
    /* Le card "a superficie bianca" mantengono il loro testo scuro */
    .blk-has-text :is(.service-card, .badge-card, .location-card, .journal-card, .about__badge) { color: var(--text) !important; }
    .blk-has-pt > * { padding-top: var(--blk-pt) !important; }
    .blk-has-pb > * { padding-bottom: var(--blk-pb) !important; }
    .blk-box { border-radius: var(--radius); overflow: hidden; }

    /* ─── Breadcrumb ─────────────────────────────────────────────────────── */
    .breadcrumbs {
      /* La navbar è fissa: la barra parte sotto di essa */
      padding: var(--nav-h) 24px 0;
      background: var(--off);
      border-bottom: 1px solid var(--gray1);
    }
    .breadcrumbs__list {
      max-width: 1200px; margin: 0 auto; padding: 12px 0;
      list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0;
      font-size: .8rem; color: var(--gray3);
    }
    .breadcrumbs__item { display: inline-flex; align-items: center; }
    .breadcrumbs__item a { color: var(--gray3); text-decoration: none; transition: color .15s; }
    .breadcrumbs__item a:hover { color: var(--teal); text-decoration: underline; }
    .breadcrumbs__item [aria-current="page"] { color: var(--navy); font-weight: 500; }
    .breadcrumbs__sep { margin: 0 9px; color: var(--gray2); }
    @media (max-width: 600px) {
      .breadcrumbs { padding-left: 16px; padding-right: 16px; }
      .breadcrumbs__list { font-size: .76rem; }
    }
    /* ─── Colonne con immagine ed elenco (pagine settore) ───────────────── */
    .cols-list {
      max-width: 1200px; margin: 0 auto;
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
    }
    .cols-list__col { display: flex; flex-direction: column; }
    .cols-list__img { aspect-ratio: 3/2; border-radius: var(--radius); overflow: hidden; margin-bottom: 22px; }
    .cols-list__img img { width: 100%; height: 100%; object-fit: cover; }
    .cols-list__title { font-family: var(--font-serif); font-size: 1.2rem; color: var(--navy); font-weight: 600; }
    .cols-list__sub { font-size: .9rem; color: var(--gray3); margin-top: 6px; }
    .cols-list__items { margin-top: 16px; gap: 11px; }
    .cols-list__items li { align-items: flex-start; font-size: .92rem; line-height: 1.55; }
    .cols-list__items li::before { margin-top: 2px; }
    @media (max-width: 900px) { .cols-list { grid-template-columns: 1fr; gap: 44px; max-width: 560px; } }
    /* ─── Area riservata ──────────────────────────────────────────────────── */
    .portal__intro { text-align: center; color: var(--gray3); max-width: 620px; margin: 0 auto 32px; }
    .portal__app { max-width: 820px; margin: 0 auto; }
    .portal__card {
      background: var(--white); border: 1px solid var(--gray1); border-radius: var(--radius);
      box-shadow: var(--shadow); padding: 36px 32px; max-width: 460px; margin: 0 auto;
    }
    .portal__card-title { font-family: var(--font-serif); font-size: 1.3rem; color: var(--navy); margin-bottom: 6px; }
    .portal__card-sub { font-size: .9rem; color: var(--gray3); margin-bottom: 22px; }
    .portal__form { display: flex; flex-direction: column; gap: 14px; }
    .portal__field { display: flex; flex-direction: column; gap: 5px; }
    .portal__field label { font-size: .82rem; font-weight: 600; color: var(--navy); }
    .portal__field input {
      padding: 11px 12px; border: 1px solid var(--gray1); border-radius: var(--radius-sm); font-size: .95rem;
      font-family: var(--font-sans); background: var(--white);
    }
    .portal__field input:focus { outline: 2px solid var(--teal-l); outline-offset: 0; border-color: var(--teal); }
    .portal__link { background: none; border: none; color: var(--teal); font-size: .85rem; cursor: pointer; text-align: left; padding: 0; text-decoration: underline; }
    .portal__status { font-size: .88rem; min-height: 1.2em; margin: 0; }
    .portal__status.is-error { color: #b71c1c; }
    .portal__status.is-ok { color: var(--teal); }
    .portal__empty { text-align: center; color: var(--gray3); padding: 28px 0; }
    .portal__head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--gray1); margin-bottom: 26px; }
    .portal__who { display: flex; flex-direction: column; gap: 2px; }
    .portal__who span { font-size: .85rem; color: var(--gray3); }
    .portal__title { font-family: var(--font-serif); font-size: 1.4rem; color: var(--navy); margin-bottom: 16px; }
    .portal__search { width: 100%; padding: 11px 14px; border: 1px solid var(--gray1); border-radius: var(--radius-sm); font-size: .95rem; margin-bottom: 22px; font-family: var(--font-sans); }
    .portal__group { margin-bottom: 28px; }
    .portal__group-title { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--teal); margin-bottom: 10px; }
    .portal__file {
      display: flex; align-items: center; gap: 16px; padding: 14px 16px;
      background: var(--white); border: 1px solid var(--gray1); border-radius: var(--radius); margin-bottom: 10px;
    }
    .portal__ext {
      flex: 0 0 auto; min-width: 46px; text-align: center; font-size: .7rem; font-weight: 700; letter-spacing: .04em;
      padding: 8px 6px; border-radius: 6px; background: var(--off); color: var(--gray3); border: 1px solid var(--gray1);
    }
    .portal__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
    .portal__info strong { color: var(--navy); font-weight: 600; overflow-wrap: anywhere; }
    .portal__desc { font-size: .88rem; color: var(--gray3); }
    .portal__meta { font-size: .78rem; color: var(--gray2); }
    .portal__dl { flex: 0 0 auto; }
    @media (max-width: 600px) {
      .portal__file { flex-wrap: wrap; }
      .portal__dl { width: 100%; justify-content: center; }
      .portal__card { padding: 28px 20px; }
    }
    /* ─── Contatti: sedi a sinistra, modulo a destra ─────────────────────── */
    .cs { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; }
    .cs__heading { font-family: var(--font-serif); font-size: 1.35rem; color: var(--navy); margin-bottom: 18px; }
    .cs__intro { color: var(--gray3); margin: -8px 0 22px; font-size: .95rem; }
    .cs__loc {
      background: var(--white); border: 1px solid var(--gray1); border-left: 3px solid var(--teal-l);
      border-radius: var(--radius); padding: 24px 26px; margin-bottom: 18px; box-shadow: var(--shadow);
    }
    .cs__loc-city { font-family: var(--font-serif); font-size: 1.1rem; color: var(--navy); margin-bottom: 8px; }
    .cs__loc-address { color: var(--gray3); line-height: 1.55; margin-bottom: 12px; font-size: .94rem; }
    .cs__loc-line { display: block; font-size: .94rem; font-weight: 600; color: var(--teal); margin-bottom: 3px; overflow-wrap: anywhere; }
    .cs__loc-line:hover, .cs__loc-dir:hover { text-decoration: underline; }
    .cs__loc-dir { display: inline-block; margin-top: 10px; font-size: .84rem; color: var(--gray3); }
    .cs__formbox {
      background: var(--white); border: 1px solid var(--gray1); border-radius: var(--radius);
      box-shadow: var(--shadow); padding: 34px 36px;
    }
    .cs-form { display: flex; flex-direction: column; gap: 16px; }
    .cs-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .cs-form__field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
    .cs-form__field label { font-size: .82rem; font-weight: 600; color: var(--navy); }
    .cs-form__field input, .cs-form__field textarea {
      width: 100%; padding: 11px 12px; border: 1px solid var(--gray1); border-radius: var(--radius-sm);
      font-family: var(--font-sans); font-size: .95rem; background: var(--white); color: var(--text);
    }
    .cs-form__field textarea { resize: vertical; min-height: 120px; }
    .cs-form__field input:focus, .cs-form__field textarea:focus { outline: 2px solid var(--teal-l); outline-offset: 0; border-color: var(--teal); }
    .cs-form__consent { display: flex; gap: 10px; align-items: flex-start; font-size: .86rem; color: var(--gray3); line-height: 1.5; cursor: pointer; }
    .cs-form__consent input { margin-top: 3px; width: 17px; height: 17px; accent-color: var(--teal); flex: 0 0 auto; }
    .cs-form__consent a { color: var(--teal); text-decoration: underline; }
    .cs-form__req { font-size: .8rem; color: var(--gray2); margin: -4px 0 0; }
    .cs-form .btn { align-self: flex-start; }
    .cs-form__status { font-size: .9rem; min-height: 1.2em; margin: 0; }
    .cs-form__status.is-ok { color: var(--teal); }
    .cs-form__status.is-error { color: #b71c1c; }
    .cs-form__legal { font-size: .78rem; color: var(--gray2); line-height: 1.55; margin: 4px 0 0; padding-top: 14px; border-top: 1px solid var(--gray1); }
    .contact-form__consent { display: flex; gap: 8px; align-items: flex-start; font-size: .8rem; color: rgba(255,255,255,.85); margin: 6px 0 14px; }
    .contact-form__consent input { margin-top: 3px; flex: 0 0 auto; }
    .contact-form__consent a { color: #fff; text-decoration: underline; }
    @media (max-width: 900px) {
      .cs { grid-template-columns: 1fr; gap: 36px; }
      .cs__formbox { padding: 26px 20px; }
      .cs-form__row { grid-template-columns: 1fr; }
    }
    /* Moduli a due colonne: dettagli per ruoli e candidatura */
    .cs-form__opt { font-weight: 400; color: var(--gray2); }
    .cs-form select {
      width: 100%; padding: 11px 12px; border: 1px solid var(--gray1); border-radius: var(--radius-sm);
      font-family: var(--font-sans); font-size: .95rem; background: var(--white); color: var(--text);
    }
    .cs-form select:focus { outline: 2px solid var(--teal-l); outline-offset: 0; border-color: var(--teal); }
    .cs-form input[type=file] { padding: 9px 10px; font-size: .88rem; }
    .job-form__check { display: flex; gap: 10px; align-items: flex-start; font-size: .84rem; color: var(--gray3); margin-bottom: 14px; cursor: pointer; }
    .job-form__check input { margin-top: 3px; accent-color: var(--teal); flex: 0 0 auto; }
    .job-form__check a { color: var(--teal); text-decoration: underline; }
    /* ─── Moduli: aspetto unico (contatti, candidatura, pagine settore) ────── */
    .cs__formbox--single { max-width: 780px; margin: 0 auto; }
    .cs-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
    .cs-form__captcha:empty { display: none; }
    .cs-form__captcha-note { font-size: .74rem; color: var(--gray2); line-height: 1.5; margin: 0; }
    .cs-form__captcha-note a { color: var(--gray3); text-decoration: underline; }
    .cs-form .btn[disabled] { opacity: .6; cursor: wait; }

    /* Mappa sotto le sedi */
    .cs-map { margin-top: 8px; }
    .cs-map__tabs { display: flex; gap: 6px; margin-bottom: 10px; flex-wrap: wrap; }
    .cs-map__tab {
      border: 1px solid var(--gray1); background: var(--white); color: var(--gray3);
      border-radius: var(--radius-pill); padding: 6px 14px; font-size: .82rem; font-weight: 600; cursor: pointer;
      font-family: var(--font-sans); transition: all .15s;
    }
    .cs-map__tab:hover { border-color: var(--teal); color: var(--teal); }
    .cs-map__tab.is-on { background: var(--navy); border-color: var(--navy); color: #fff; }
    .cs-map__frame { position: relative; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--gray1); box-shadow: var(--shadow); background: var(--off); }
    .cs-map__frame iframe { display: block; width: 100%; height: 320px; border: 0; }
    .cs-map__consent {
      position: absolute; inset: 0; z-index: 1; background: var(--off);
      display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 24px;
    }
    .cs-map__consent p { font-size: .86rem; color: var(--gray3); max-width: 340px; margin: 0; }
    /* ─── Banner cookie ───────────────────────────────────────────────────── */
    .cookie-banner {
      position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 300;
      max-width: 880px; margin: 0 auto;
      display: flex; align-items: center; gap: 18px; justify-content: space-between;
      background: var(--navy); color: rgba(255,255,255,.92);
      border-radius: var(--radius); padding: 16px 20px; box-shadow: 0 10px 40px rgba(0,0,0,.28);
    }
    .cookie-banner__text { font-size: .86rem; line-height: 1.55; margin: 0; }
    .cookie-banner__text a { color: #fff; text-decoration: underline; white-space: nowrap; }
    .cookie-banner__actions { display: flex; gap: 10px; flex: 0 0 auto; }
    /* "Rifiuta" e "Accetta" hanno lo stesso peso visivo, come richiesto dal Garante */
    .cookie-banner__btn {
      background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.7);
      border-radius: var(--radius-sm); padding: 9px 20px; font-weight: 600; font-size: .86rem; cursor: pointer; font-family: var(--font-sans);
      transition: background .15s, color .15s;
    }
    .cookie-banner__btn:hover { background: #fff; color: var(--navy); }
    @media (max-width: 640px) {
      .cookie-banner { flex-direction: column; align-items: stretch; gap: 12px; }
      .cookie-banner__actions .cookie-banner__btn { flex: 1; }
    }
    /* ─── Pagine legali: testo esteso e dichiarazione dei cookie ─────────── */
    .container--text { max-width: 860px; }
    .container--text .section__header { margin-bottom: 28px; }
    .legal-text { color: var(--gray3); font-size: .97rem; line-height: 1.75; }
    .legal-text p { margin: 0 0 1em; }
    .legal-text h2 { font-family: var(--font-serif); font-size: 1.15rem; color: var(--navy); margin: 1.9em 0 .6em; text-transform: none; }
    .legal-text h3 { font-size: 1rem; color: var(--navy); margin: 1.5em 0 .5em; }
    .legal-text h4 { font-size: .92rem; color: var(--navy); margin: 1.2em 0 .4em; }
    .legal-text ul, .legal-text ol { margin: 0 0 1em 1.3em; }
    .legal-text li { margin-bottom: .35em; }
    .legal-text a { color: var(--teal); text-decoration: underline; }
    .cookie-updated { font-size: .8rem; color: var(--gray2); margin: 18px 0 28px; }
    .cookie-status {
      background: var(--off); border: 1px solid var(--gray1); border-left: 3px solid var(--teal-l);
      border-radius: var(--radius); padding: 20px 22px; margin: 26px 0 6px;
    }
    .cookie-status__head { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--teal); margin-bottom: 6px; }
    .cookie-status__text { font-weight: 600; color: var(--navy); margin: 0 0 4px; }
    .cookie-status__meta { font-size: .8rem; color: var(--gray2); margin: 0 0 14px; word-break: break-all; }
    .cookie-status__actions { display: flex; gap: 10px; flex-wrap: wrap; }
    .cookie-cat { margin-top: 34px; }
    .cookie-cat__title { font-family: var(--font-serif); font-size: 1.15rem; color: var(--navy); margin: 0 0 6px; }
    .cookie-cat__title span { font-weight: 400; color: var(--gray2); font-size: .9rem; }
    .cookie-cat__desc { color: var(--gray3); font-size: .92rem; line-height: 1.65; margin: 0 0 14px; }
    .cookie-cat__none { font-size: .88rem; color: var(--gray2); font-style: italic; }
    .cookie-table-wrap { overflow-x: auto; border: 1px solid var(--gray1); border-radius: var(--radius); }
    .cookie-table { width: 100%; border-collapse: collapse; font-size: .84rem; }
    .cookie-table th { background: var(--off); text-align: left; padding: 10px 12px; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gray3); white-space: nowrap; }
    .cookie-table td { padding: 11px 12px; border-top: 1px solid var(--gray1); vertical-align: top; color: var(--gray3); line-height: 1.55; }
    .cookie-table td:first-child { color: var(--navy); white-space: nowrap; }
    .cookie-table code { font-size: .82rem; }
    @media (max-width: 700px) {
      .cookie-table thead { display: none; }
      .cookie-table, .cookie-table tbody, .cookie-table tr, .cookie-table td { display: block; width: 100%; }
      .cookie-table tr { border-top: 1px solid var(--gray1); padding: 10px 0; }
      .cookie-table td { border: 0; padding: 4px 12px; }
      .cookie-table td::before { content: attr(data-label) ': '; font-weight: 600; color: var(--navy); }
    }

    /* Banner cookie: pannello preferenze e chiusura */
    .cookie-banner { flex-wrap: wrap; }
    .cookie-banner__close {
      position: absolute; top: 8px; right: 10px; width: 30px; height: 30px; border-radius: 50%;
      background: transparent; border: 0; color: rgba(255,255,255,.8); font-size: 1.3rem; line-height: 1; cursor: pointer;
    }
    .cookie-banner__close:hover { background: rgba(255,255,255,.14); color: #fff; }
    .cookie-banner__main { flex: 1 1 100%; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-right: 26px; }
    .cookie-banner__btn--link { border-color: transparent; text-decoration: underline; padding-left: 10px; padding-right: 10px; }
    .cookie-prefs { flex: 1 1 100%; border-top: 1px solid rgba(255,255,255,.18); margin-top: 12px; padding-top: 14px; display: grid; gap: 12px; }
    .cookie-pref { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; align-items: start; }
    .cookie-pref strong { font-size: .88rem; }
    .cookie-pref span { grid-column: 1; font-size: .8rem; color: rgba(255,255,255,.72); line-height: 1.5; }
    .cookie-pref input { grid-column: 2; grid-row: 1 / span 2; width: 20px; height: 20px; accent-color: var(--teal-l); margin-top: 2px; }
    .cookie-prefs__actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
    @media (max-width: 640px) { .cookie-banner__main { flex-direction: column; align-items: stretch; } }
    /* ─── Banner cookie: layout selezionabili, colori e icona flottante ───── */
    .cookie-banner { background: var(--cb-bg, var(--navy)); color: var(--cb-fg, #fff); }
    .cookie-banner__text a, .cookie-banner__close { color: var(--cb-fg, #fff); }
    .cookie-banner__btn { color: var(--cb-fg, #fff); border-color: var(--cb-fg, rgba(255,255,255,.7)); }
    .cookie-banner__btn:hover { background: var(--cb-fg, #fff); color: var(--cb-bg, var(--navy)); }
    .cookie-pref input { accent-color: var(--cb-accent, var(--teal-l)); }
    .cookie-pref span { color: inherit; opacity: .78; }

    /* A: barra fissa a tutta larghezza in fondo allo schermo */
    .cookie-banner--bar {
      left: 0; right: 0; bottom: 0; max-width: none; margin: 0; border-radius: 0;
      padding: 18px max(20px, calc((100vw - 1200px) / 2)); box-shadow: 0 -6px 30px rgba(0,0,0,.22);
    }
    /* B: scheda in basso a sinistra, stile popup */
    .cookie-banner--card {
      left: 20px; right: auto; bottom: 20px; width: min(440px, calc(100vw - 40px)); max-width: none; margin: 0;
      flex-direction: column; align-items: stretch;
    }
    .cookie-banner--card .cookie-banner__main { flex-direction: column; align-items: stretch; gap: 14px; padding-right: 26px; }
    .cookie-banner--card .cookie-banner__actions { justify-content: stretch; }
    .cookie-banner--card .cookie-banner__actions .cookie-banner__btn { flex: 1; }
    /* C: finestra al centro con sfondo scurito */
    .cookie-banner--modal {
      left: 50%; right: auto; bottom: auto; top: 50%; transform: translate(-50%, -50%);
      width: min(560px, calc(100vw - 32px)); max-width: none; margin: 0; max-height: 86vh; overflow-y: auto;
      flex-direction: column; align-items: stretch; z-index: 320;
    }
    .cookie-banner--modal .cookie-banner__main { flex-direction: column; align-items: stretch; gap: 16px; padding-right: 26px; }
    .cookie-banner--modal .cookie-banner__actions .cookie-banner__btn { flex: 1; }
    .cookie-overlay { position: fixed; inset: 0; background: rgba(10,12,14,.62); z-index: 310; }
    .cookie-prefs__actions .cookie-banner__btn { min-width: 180px; }

    /* Icona flottante per riaprire le preferenze */
    .cookie-fab {
      position: fixed; bottom: 18px; z-index: 290; width: 46px; height: 46px; border-radius: 50%;
      background: var(--cb-bg, var(--navy)); color: var(--cb-accent, var(--teal-l));
      border: 1px solid rgba(255,255,255,.22); box-shadow: 0 6px 20px rgba(0,0,0,.28); cursor: pointer;
      display: flex; align-items: center; justify-content: center; padding: 0;
      transition: transform .15s ease;
    }
    .cookie-fab:hover { transform: scale(1.07); }
    .cookie-fab svg { width: 24px; height: 24px; }
    .cookie-fab--left { left: 18px; }
    .cookie-fab--right { right: 18px; }
    @media (max-width: 640px) {
      .cookie-banner--bar { padding: 16px; }
      .cookie-banner--card { left: 10px; bottom: 10px; width: calc(100vw - 20px); }
    }
    /* Correzioni layout banner: il pannello nascosto non occupa spazio, il contenuto non si dilata */
    .cookie-prefs[hidden] { display: none !important; }
    .cookie-banner--card .cookie-banner__main, .cookie-banner--modal .cookie-banner__main { flex: 0 0 auto; }

    /* ─── Blocco "File scaricabili" ───────────────────────────────────────── */
    .dl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
    .dl-list--2 { grid-template-columns: repeat(2, 1fr); }
    .dl-item {
      display: flex; align-items: center; gap: 16px; padding: 16px 18px;
      background: var(--white); border: 1px solid var(--gray1); border-radius: var(--radius);
      transition: box-shadow .2s ease, border-color .2s ease;
    }
    .dl-item:hover { box-shadow: var(--shadow); border-color: var(--teal-l); }
    .dl-item__ext {
      flex: 0 0 auto; min-width: 52px; height: 52px; padding: 0 6px; border-radius: var(--radius-md);
      display: flex; align-items: center; justify-content: center;
      background: var(--navy); color: var(--teal-l); font-weight: 700; font-size: .78rem; letter-spacing: .04em;
    }
    .dl-item__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
    .dl-item__title { font-weight: 600; color: var(--navy); line-height: 1.3; overflow-wrap: anywhere; }
    .dl-item__desc { font-size: .88rem; color: var(--gray3); line-height: 1.5; }
    .dl-item__meta { font-size: .75rem; color: var(--gray2); letter-spacing: .03em; }
    .dl-item__btn {
      flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px;
      border-radius: var(--radius-pill); background: var(--teal); color: #fff; font-weight: 600; font-size: .85rem;
      text-decoration: none; transition: background .2s ease;
    }
    .dl-item__btn:hover { background: var(--navy); }
    .dl-empty { text-align: center; color: var(--gray2); }
    @media (max-width: 720px) {
      .dl-list--2 { grid-template-columns: 1fr; }
      .dl-item__btn span { display: none; }
      .dl-item__btn { padding: 10px 12px; }
    }
    /* ─── Hero su smartphone: tutta la hero entra nello schermo ────────────
       L'altezza è quella reale del display (svh = esclusa la barra del browser) e
       padding, titolo, testo e pulsanti scalano con l'altezza, così il contenuto
       non esce dal bordo inferiore nemmeno sugli schermi bassi. */
    @media (max-width: 768px) {
      .hero {
        min-height: 100vh; min-height: 100svh;
        padding: calc(var(--nav-h) + clamp(14px, 3.2svh, 40px)) 20px clamp(22px, 6svh, 56px);
      }
      .hero::after { height: 120px; }
      .hero__eyebrow { margin-bottom: clamp(10px, 2.6svh, 24px); font-size: .74rem; padding: 5px 12px; }
      .hero__title { font-size: clamp(1.7rem, min(9.4vw, 5.6svh), 2.5rem); margin-bottom: clamp(10px, 2.4svh, 20px); }
      .hero__subtitle { font-size: clamp(.86rem, 2.5svh, 1rem); line-height: 1.55; margin-bottom: clamp(16px, 3.6svh, 32px); }
      .hero__actions { gap: 10px; }
      .hero__actions .btn { padding: clamp(10px, 1.9svh, 14px) 18px; font-size: .9rem; }
    }
    /* Telefoni in orizzontale: schermo molto largo ma bassissimo */
    @media (max-height: 520px) and (orientation: landscape) {
      .hero { min-height: 100vh; min-height: 100svh; padding: calc(var(--nav-h) + 12px) 24px 24px; }
      .hero__title { font-size: clamp(1.5rem, 7svh, 2.4rem); margin-bottom: 8px; }
      .hero__eyebrow { margin-bottom: 8px; }
      .hero__subtitle { margin-bottom: 14px; font-size: .9rem; }
      .hero__actions .btn { padding: 9px 18px; }
    }

    /* Mobile: icona cookie più piccola e hero con margine sotto i pulsanti, così non si sovrappongono */
    @media (max-width: 768px) {
      .cookie-fab { width: 40px; height: 40px; bottom: 10px; }
      .cookie-fab svg { width: 20px; height: 20px; }
      .cookie-fab--left { left: 10px; }
      .cookie-fab--right { right: 10px; }
      .hero { padding-bottom: clamp(54px, 7svh, 64px); }
    }

    /* ─── Varianti del tema: barra in alto e footer ─────────────────────────
       Le classi header-*, footer-* e theme-* arrivano dal <body> (lib/themes.php).
       "solid" e "dark" (footer) sono l'aspetto di base e non servono regole. */

    /* Barra scura */
    .header-dark {
      --nav-bg: rgba(var(--navy-rgb), .97);
      --nav-fg: rgba(255,255,255,.78);
      --nav-fg-strong: #fff;
      --nav-line: rgba(255,255,255,.08);
      --mobile-bg: var(--navy);
    }
    .header-dark .navbar__logo img { filter: brightness(0) invert(1); }
    .header-dark .navbar__nav a:hover { color: var(--teal-l); }
    .header-dark .navbar__hamburger:hover { background: rgba(255,255,255,.1); }
    .header-dark .navbar { box-shadow: 0 1px 12px rgba(0,0,0,.25); }
    .header-dark .mobile-menu__nav a:hover { color: var(--teal-l); }

    /* Barra trasparente sopra la hero (resta solida dopo lo scroll e sulle pagine senza hero) */
    .header-transparent .navbar {
      transition: background .3s ease, box-shadow .3s ease, border-color .3s ease;
    }
    .header-transparent .navbar:not(.is-scrolled) {
      background: transparent; border-bottom-color: transparent; box-shadow: none;
      -webkit-backdrop-filter: none; backdrop-filter: none;
    }
    .header-transparent .navbar:not(.is-scrolled) .navbar__nav a { color: rgba(255,255,255,.92); }
    .header-transparent .navbar:not(.is-scrolled) .navbar__nav a:hover { color: var(--teal-l); }
    .header-transparent .navbar:not(.is-scrolled) .navbar__logo img { filter: brightness(0) invert(1); }
    .header-transparent .navbar:not(.is-scrolled) .navbar__brand-name { color: #fff; }
    .header-transparent .navbar:not(.is-scrolled) .navbar__hamburger span { background: #fff; }
    .header-transparent .navbar:not(.is-scrolled) .navbar__hamburger:hover { background: rgba(255,255,255,.14); }
    /* velo scuro in cima alla hero: il testo bianco resta leggibile anche su foto chiare */
    .header-transparent .hero::before {
      content: ''; position: absolute; inset: 0 0 auto 0; height: 190px; z-index: -1; pointer-events: none;
      background: linear-gradient(rgba(var(--navy-rgb), .6), transparent);
    }

    /* Logo al centro, menu sotto (solo desktop: su mobile resta l'hamburger) */
    @media (min-width: 769px) {
      .header-centered .navbar { flex-direction: column; justify-content: center; gap: 6px; padding-top: 6px; padding-bottom: 4px; }
      .header-centered .navbar__nav { gap: 30px; }
    }

    /* Footer chiaro */
    .footer-light {
      --footer-bg: var(--off);
      --footer-ink-rgb: var(--navy-rgb);
      --footer-title: var(--navy);
      --footer-logo-filter: none;
    }
    .footer-light footer { border-top: 1px solid var(--gray1); }
    .footer-light .footer__links a:hover,
    .footer-light .footer__bottom-links a:hover { color: var(--teal); }
    .footer-light .footer__social a:hover { color: #fff; }

    /* Footer nel colore principale */
    .footer-accent {
      --footer-bg: var(--teal);
      --footer-ink-rgb: 255,255,255;
      --footer-title: #fff;
    }
    .footer-accent .footer__links a:hover,
    .footer-accent .footer__bottom-links a:hover { color: #fff; text-decoration: underline; }
    .footer-accent .footer__social a:hover { background: #fff; border-color: #fff; color: var(--teal); }

    /* Footer compatto e centrato */
    .footer-minimal footer { padding: 44px 24px 24px; text-align: center; }
    .footer-minimal .footer__grid { grid-template-columns: 1fr; gap: 26px; padding-bottom: 26px; justify-items: center; }
    .footer-minimal .footer__brand p { margin-left: auto; margin-right: auto; }
    .footer-minimal .footer__social { justify-content: center; }
    .footer-minimal .footer__links { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 8px 24px; }
    .footer-minimal .footer__contact-item { justify-content: center; }
    .footer-minimal .footer__bottom { justify-content: center; text-align: center; }

    /* ─── Apertura con immagine affiancata (hero_split) ─────────────────── */
    .hs { padding: calc(var(--nav-h) + 56px) 24px 72px; background: var(--white); }
    .hs--dark { background: var(--navy); }
    .hs__inner { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; }
    .hs--solo .hs__inner { grid-template-columns: 1fr; max-width: 820px; text-align: center; }
    .hs--solo .hs__actions { justify-content: center; }
    .hs__title { font-family: var(--font-serif); font-size: clamp(2.1rem, 4.6vw, 3.4rem); line-height: 1.15; color: var(--navy); margin-bottom: 18px; }
    .hs--dark .hs__title { color: var(--white); }
    .hs__subtitle { font-size: 1.08rem; line-height: 1.75; color: var(--gray3); max-width: 540px; margin-bottom: 30px; }
    .hs--solo .hs__subtitle { margin-left: auto; margin-right: auto; }
    .hs--dark .hs__subtitle { color: rgba(255,255,255,.78); }
    .hs--dark .tag { color: var(--teal-l); }
    .hs__actions { display: flex; gap: 12px; flex-wrap: wrap; }
    .hs__visual { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3.4; box-shadow: var(--shadow-lg); }
    .hs__visual img { width: 100%; height: 100%; object-fit: cover; }

    /* ─── Persone / team ────────────────────────────────────────────────── */
    .team { max-width: 1200px; margin: 0 auto; display: grid; gap: 28px; }
    .team--2 { grid-template-columns: repeat(2, 1fr); }
    .team--3 { grid-template-columns: repeat(3, 1fr); }
    .team--4 { grid-template-columns: repeat(4, 1fr); }
    .team__card { text-align: center; }
    .team__photo { aspect-ratio: 1 / 1; max-width: 260px; margin: 0 auto 16px; border-radius: var(--radius); overflow: hidden; background: var(--off); border: 1px solid var(--gray1); }
    .team__photo img { width: 100%; height: 100%; object-fit: cover; }
    .team__photo--empty { display: grid; place-items: center; background: var(--off); }
    .team__photo--empty span { font-family: var(--font-serif); font-size: 3rem; color: var(--teal); }
    .team__name { font-family: var(--font-serif); font-size: 1.2rem; color: var(--navy); margin-bottom: 2px; }
    .team__role { font-size: .85rem; font-weight: 600; color: var(--teal); letter-spacing: .03em; margin-bottom: 10px; }
    .team__bio { font-size: .92rem; line-height: 1.65; color: var(--gray3); }
    .team__contacts { display: flex; flex-direction: column; gap: 2px; margin-top: 10px; font-size: .86rem; }
    .team__contacts a { color: var(--teal); }
    .team__contacts a:hover { text-decoration: underline; }

    /* ─── Timeline ──────────────────────────────────────────────────────── */
    .tl { list-style: none; position: relative; padding-left: 26px; }
    .tl::before { content: ''; position: absolute; left: 7px; top: 6px; bottom: 6px; width: 2px; background: var(--gray1); }
    .tl__item { position: relative; padding-bottom: 28px; display: grid; grid-template-columns: 110px 1fr; gap: 20px; align-items: start; }
    .tl__item:last-child { padding-bottom: 0; }
    .tl__item::before { content: ''; position: absolute; left: -26px; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: var(--teal); border: 3px solid var(--off); box-shadow: 0 0 0 2px var(--teal); }
    .tl__year { font-family: var(--font-serif); font-size: 1.25rem; font-weight: 700; color: var(--teal); padding-top: 2px; }
    .tl__card { background: var(--white); border: 1px solid var(--gray1); border-radius: var(--radius); padding: 18px 22px; box-shadow: var(--shadow); }
    .tl__title { font-size: 1.05rem; color: var(--navy); margin-bottom: 4px; }
    .tl__body { font-size: .94rem; line-height: 1.65; color: var(--gray3); }

    /* ─── Testimonianze ─────────────────────────────────────────────────── */
    .tst { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
    .tst__card { background: var(--white); border: 1px solid var(--gray1); border-radius: var(--radius); padding: 30px 28px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 18px; margin: 0; }
    .tst__quote { font-size: 1rem; line-height: 1.75; color: var(--text); position: relative; padding-top: 28px; }
    .tst__quote::before { content: '\201C'; position: absolute; top: -8px; left: -2px; font-family: var(--font-serif); font-size: 3.6rem; line-height: 1; color: var(--teal-l); }
    .tst__author { margin-top: auto; display: flex; flex-direction: column; gap: 2px; }
    .tst__author strong { color: var(--navy); font-size: .95rem; }
    .tst__author span { color: var(--gray2); font-size: .82rem; }

    /* ─── Fasi numerate ─────────────────────────────────────────────────── */
    .steps { list-style: none; max-width: 1200px; margin: 0 auto; display: grid; gap: 28px; counter-reset: none; }
    .steps--1 { grid-template-columns: minmax(0, 560px); justify-content: center; }
    .steps--2 { grid-template-columns: repeat(2, 1fr); }
    .steps--3 { grid-template-columns: repeat(3, 1fr); }
    .steps--4 { grid-template-columns: repeat(4, 1fr); }
    .steps__item { position: relative; padding-top: 4px; }
    .steps__num { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--teal); color: #fff; font-family: var(--font-serif); font-weight: 700; font-size: 1.15rem; margin-bottom: 16px; }
    .steps__title { font-size: 1.08rem; color: var(--navy); margin-bottom: 8px; }
    .steps__body { font-size: .94rem; line-height: 1.7; color: var(--gray3); }

    @media (max-width: 900px) {
      .hs { padding: calc(var(--nav-h) + 32px) 20px 48px; }
      .hs__inner { grid-template-columns: 1fr; gap: 32px; }
      .hs__visual { aspect-ratio: 16 / 10; order: -1; }
      .team--3, .team--4 { grid-template-columns: repeat(2, 1fr); }
      .steps--3, .steps--4 { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 560px) {
      .team--2, .team--3, .team--4, .steps--2, .steps--3, .steps--4 { grid-template-columns: 1fr; }
      .tl__item { grid-template-columns: 1fr; gap: 6px; }
    }
    /* ─── Menu a tendina (sotto-voci del menu) ──────────────────────────── */
    .navbar__nav { align-self: stretch; }
    .navbar__nav > li.has-sub { position: relative; display: flex; align-items: center; align-self: stretch; }
    .navbar__nav > li.has-sub > a::after { content: ''; display: inline-block; width: 5px; height: 5px; margin: 0 0 3px 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); opacity: .55; }
    .navbar__sub {
      display: none; position: absolute; top: 100%; left: -18px; min-width: 240px; padding: 10px 0; z-index: 120;
      list-style: none; background: var(--mobile-bg); border-top: 2px solid var(--teal); box-shadow: var(--shadow-lg);
    }
    .navbar__nav li.has-sub:hover > .navbar__sub,
    .navbar__nav li.has-sub:focus-within > .navbar__sub { display: block; }
    .navbar__sub a { display: block; padding: 8px 22px; font-size: .88rem; font-weight: 400; color: var(--nav-fg); white-space: nowrap; }
    .navbar__sub a:hover { color: var(--teal); background: rgba(var(--navy-rgb), .05); }
    .mobile-menu__sub { list-style: none; padding: 0 0 10px 16px; }
    .mobile-menu__sub li { border-bottom: none; }
    .mobile-menu__sub a { padding: 9px 0; font-size: .98rem; font-weight: 400; color: var(--nav-fg); }
    /* con la barra scura il fondo del menu a tendina è scuro */
    .header-dark .navbar__sub { border-top-color: var(--teal-l); }

    /* ─── Impaginazione a scatola ───────────────────────────────────────── */
    .layout-boxed { background: var(--navy); }
    .layout-boxed main, .layout-boxed footer { max-width: 1280px; margin-left: auto; margin-right: auto; }
    .layout-boxed main { background: var(--white); }
    .layout-boxed .navbar { left: 50%; right: auto; width: 100%; max-width: 1280px; transform: translateX(-50%); }

    /* ─── Footer a una riga ─────────────────────────────────────────────── */
    .footer-line footer { padding: 14px 24px; text-align: center; }
    .footer-line .footer__grid { display: none; }
    .footer-line .footer__bottom { margin: 0 auto; justify-content: center; text-align: center; font-size: .8rem; line-height: 1.8; }

    /* ─── Immagine a tutto schermo (hero_fullscreen) ────────────────────── */
    .hf { position: relative; min-height: 100vh; min-height: 100svh; padding-top: var(--nav-h); display: flex; align-items: flex-end; background: var(--navy2); overflow: hidden; isolation: isolate; }
    .hf--tall { min-height: 80vh; min-height: 80svh; }
    .hf--medium { min-height: 60vh; min-height: 60svh; }
    .hf__img { position: absolute; inset: var(--nav-h) 0 0 0; z-index: -2; }
    .hf__img img { width: 100%; height: 100%; object-fit: cover; }
    .hf--gray .hf__img img { filter: grayscale(1); }
    .hf__veil { position: absolute; inset: var(--nav-h) 0 0 0; z-index: -1; background: rgb(var(--navy-rgb)); pointer-events: none; }
    .hf__text { position: relative; padding: 0 28px 96px; max-width: 900px; color: #fff; }
    .hf__title { font-family: var(--font-serif); font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1.15; text-shadow: 0 2px 22px rgba(0,0,0,.35); }
    .hf__subtitle { margin-top: 12px; font-size: 1.1rem; line-height: 1.6; max-width: 560px; text-shadow: 0 1px 14px rgba(0,0,0,.4); }
    .hf__arrow { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); color: #fff; line-height: 0; filter: drop-shadow(0 1px 6px rgba(0,0,0,.45)); animation: hfBounce 2.4s ease-in-out infinite; }
    .hf__arrow:hover { color: var(--teal-l); }
    @keyframes hfBounce { 0%,100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 6px); } }
    @media (prefers-reduced-motion: reduce) { .hf__arrow { animation: none; } }

    /* ─── Contenuto con colonna laterale (sidebar_content) ──────────────── */
    .sc { background: var(--off); }
    .sc__inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 25% 1fr; align-items: start; }
    .sc--right .sc__inner { grid-template-columns: 1fr 25%; }
    .sc--right .sc__side { order: 2; }
    .sc--solo .sc__inner { grid-template-columns: 1fr; }
    .sc__side { padding-top: 24px; }
    .sc__logo { padding: 8px 22px 30px; text-align: center; }
    .sc__logo img { max-width: 100%; height: auto; margin: 0 auto; }
    .sc__items { border-top: 2px solid var(--white); }
    .sc__item { display: flex; align-items: center; gap: 14px; padding: 10px 16px; border-bottom: 2px solid var(--white); }
    .sc__item img { width: 46px; height: auto; flex: 0 0 auto; }
    .sc__item h3 { font-size: .95rem; line-height: 1.4; color: var(--teal); font-weight: 500; }
    .sc__item a, .sc__item span { font-size: .95rem; line-height: 1.5; color: var(--gray3); }
    .sc__item a:hover { color: var(--gold); }
    .sc__main { background: var(--white); padding: 34px 40px 40px; min-height: 320px; }
    .sc__title { font-family: var(--font-serif); font-size: 1.6rem; line-height: 1.25; color: var(--teal); font-weight: 500; margin-bottom: 8px; }
    .sc__body { color: var(--gray3); font-size: 1.05rem; line-height: 1.6; }
    .sc__body p { padding: 8px 0; }
    .sc__body strong, .sc__body b { font-weight: 500; }
    @media (max-width: 820px) {
      .sc__inner, .sc--right .sc__inner { grid-template-columns: 1fr; }
      .sc__main { order: -1; padding: 22px 20px 28px; min-height: 0; }
      .sc--right .sc__side { order: 0; }
    }

    /* ─── Tema "Studio Calato": rifiniture ──────────────────────────────── */
    .theme-calato .navbar__nav { gap: 30px; }
    .theme-calato .navbar__nav a { font-size: 1.2rem; font-weight: 300; color: var(--navy); border-bottom: 1px solid transparent; padding-bottom: 2px; }
    .theme-calato .navbar__nav a:hover { color: var(--gray2); border-bottom-color: var(--gray2); }
    .theme-calato .navbar__sub a { font-size: 1rem; border-bottom: none; }
    .theme-calato .navbar { height: calc(var(--nav-h)); }
    .theme-calato .section__title, .theme-calato .sc__title { color: var(--teal); font-weight: 500; }
    .theme-calato .tag { color: var(--teal); }
    .theme-calato .tag::after { background: var(--teal); }
    .theme-calato .btn-primary:hover { background: var(--gold); box-shadow: none; }
    /* ─── Selettore lingua ──────────────────────────────────────────────── */
    .lang-switch { display: flex; align-items: center; gap: 2px; list-style: none; margin-left: 20px; }
    .lang-switch a { display: block; padding: 5px 8px; font-size: .78rem; font-weight: 600; letter-spacing: .06em; color: var(--nav-fg); border-radius: var(--radius-sm); }
    .lang-switch a:hover { color: var(--teal); }
    .lang-switch a.is-current { color: var(--nav-fg-strong); background: rgba(var(--navy-rgb), .07); }
    .header-dark .lang-switch a.is-current, .header-transparent .navbar:not(.is-scrolled) .lang-switch a.is-current { background: rgba(255,255,255,.16); }
    .header-transparent .navbar:not(.is-scrolled) .lang-switch a { color: rgba(255,255,255,.92); }
    @media (max-width: 768px) { .lang-switch { margin-left: auto; margin-right: 8px; } }
    /* ─── Suggerimento della lingua ─────────────────────────────────────── */
    .lang-suggest {
      position: fixed; left: 0; right: 0; top: var(--nav-h); z-index: 95; padding: 10px 20px;
      display: flex; gap: 14px; align-items: center; justify-content: center; flex-wrap: wrap;
      background: var(--navy); color: #fff; font-size: .9rem; box-shadow: 0 4px 16px rgba(0,0,0,.2);
    }
    .lang-suggest__yes { background: var(--teal-l); color: var(--navy); font-weight: 700; padding: 6px 14px; border-radius: var(--btn-radius); }
    .lang-suggest__yes:hover { filter: brightness(1.08); }
    .lang-suggest__no { background: none; border: none; color: rgba(255,255,255,.75); text-decoration: underline; cursor: pointer; font-size: .85rem; }
    /* Selettore lingua con bandiere */
    .lang-switch a { display: flex; align-items: center; gap: 6px; }
    .lang-switch .flag { display: block; width: 22px; height: 15px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.2); flex: 0 0 auto; }
    .lang-switch--flag a, .lang-switch--flag_code a { padding: 5px 6px; }
    .lang-switch--flag a:not(.is-current) .flag, .lang-switch--flag_code a:not(.is-current) .flag { opacity: .6; transition: opacity .15s; }
    .lang-switch--flag a:hover .flag, .lang-switch--flag_code a:hover .flag { opacity: 1; }
    /* Card dei servizi: se hanno un collegamento, è cliccabile tutta la card (non solo "Scopri di più") */
    .service-card { position: relative; }
    .service-card__link::after { content: ''; position: absolute; inset: 0; border-radius: inherit; }
    .service-card:has(.service-card__link) { cursor: pointer; }
    .service-card:has(.service-card__link:focus-visible) { outline: 3px solid var(--teal-l); outline-offset: 3px; }
    .service-card__link:focus-visible { outline: none; }

/* ─── Journal: articolo, elenco, categorie e paginazione ─────────────────── */
.journal-card__meta { font-size: .74rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--teal); margin-bottom: 6px; }
.journal-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 auto 28px; max-width: 1200px; }
.journal-cats__item { padding: 7px 16px; border: 1px solid var(--gray1); border-radius: var(--radius-pill); font-size: .86rem; color: var(--gray3); transition: background .15s, color .15s, border-color .15s; }
.journal-cats__item:hover { border-color: var(--teal); color: var(--teal); }
.journal-cats__item.is-current { background: var(--teal); border-color: var(--teal); color: var(--white); }
/* Elenco senza titolo proprio (pagina Journal: titolo e sottotitolo stanno nella sezione sopra): niente doppio padding 96+96 tra sottotitolo e schede */
.section:has(+ .journal--plain) { padding-bottom: 0; }
.journal--plain { padding-top: 40px; }
@media (max-width: 600px) { .journal--plain { padding-top: 28px; } }

/* Elenco articoli responsive: 3 colonne desktop, 2 tablet, 1 telefono (prima restavano 3 colonne da ~77px) */
@media (max-width: 900px) { .journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (max-width: 600px) {
  .journal-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .journal-card__body { padding: 16px 18px 20px; }
  .journal-card__title { font-size: 1.12rem; line-height: 1.3; overflow-wrap: anywhere; }
  .journal-card__excerpt { overflow-wrap: anywhere; }
  .journal-cats { gap: 6px; margin-bottom: 22px; }
  .journal-cats__item { padding: 6px 13px; font-size: .82rem; }
  .pager { gap: 6px; margin-top: 28px; }
  .pager__item { min-width: 38px; padding: 8px 12px; }
}
.pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 36px auto 0; }
.pager__item { min-width: 40px; padding: 8px 14px; text-align: center; border: 1px solid var(--gray1); border-radius: var(--radius-sm); font-size: .9rem; color: var(--gray3); }
a.pager__item:hover { border-color: var(--teal); color: var(--teal); }
.pager__item.is-current { background: var(--teal); border-color: var(--teal); color: var(--white); font-weight: 600; }

.post-head { padding-top: 40px; }
.post-head .tag a { color: inherit; }
.post-title { font-family: var(--font-serif); font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.2; color: var(--navy); margin: 10px 0 12px; }
.post-meta { font-size: .88rem; color: var(--gray2); margin: 0 0 20px; }
.post-hero { margin-top: 8px; margin-bottom: 8px; }
.post-hero img { width: 100%; height: auto; border-radius: var(--radius); box-shadow: var(--shadow); }
.section--article { padding-top: 24px; }
.article-body { color: var(--gray3); font-size: 1.04rem; line-height: 1.8; }
.article-body p { margin: 0 0 1.15em; }
.article-body h2 { font-family: var(--font-serif); font-size: 1.45rem; color: var(--navy); margin: 1.9em 0 .6em; line-height: 1.3; }
.article-body h3 { font-size: 1.15rem; color: var(--navy); margin: 1.6em 0 .5em; }
.article-body h4 { font-size: 1rem; color: var(--navy); margin: 1.4em 0 .4em; }
.article-body ul, .article-body ol { margin: 0 0 1.15em 1.4em; }
.article-body li { margin-bottom: .4em; }
.article-body a { color: var(--teal); text-decoration: underline; }
.article-body img { max-width: 100%; height: auto; border-radius: var(--radius-sm); margin: 1.2em 0; }
.article-body figure { margin: 1.6em 0; }
.article-body figure img { margin: 0; }
.article-body figcaption { font-size: .84rem; color: var(--gray2); margin-top: .5em; }
.article-body blockquote { margin: 1.6em 0; padding: .4em 1.2em; border-left: 4px solid var(--teal-l); color: var(--navy); font-style: italic; }
.article-body hr { border: 0; border-top: 1px solid var(--gray1); margin: 2em 0; }
.article-body table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .94rem; }
.article-body th, .article-body td { border: 1px solid var(--gray1); padding: 8px 12px; text-align: left; }
.article-body th { background: var(--off); color: var(--navy); }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--gray1); }
.post-nav__item { display: block; padding: 14px 16px; border: 1px solid var(--gray1); border-radius: var(--radius-sm); color: var(--navy); }
.post-nav__item small { display: block; font-size: .74rem; color: var(--gray2); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.post-nav__item span { font-weight: 600; line-height: 1.35; }
.post-nav__item:hover { border-color: var(--teal); }
.post-nav__item--next { text-align: right; grid-column: 2; }
.post-back { margin: 22px auto 56px; font-size: .92rem; }
.post-back a { color: var(--teal); }
@media (max-width: 640px) { .post-nav { grid-template-columns: 1fr; } .post-nav__item--next { grid-column: 1; text-align: left; } }

/* Testo solo per i motori di ricerca e gli screen reader (es. <h1> di pagine che non ne hanno uno visibile) */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
