.elementor-kit-5{--e-global-color-primary:#254576;--e-global-color-secondary:#0E8DA5;--e-global-color-text:#14213A;--e-global-color-accent:#B7C9D3;--e-global-color-64acf16:#1A3054;--e-global-color-0d88f5f:#0B7387;--e-global-color-5f59e1b:#6FC4D4;--e-global-color-53f851c:#F5F7F9;--e-global-color-8df3584:#E21F26;--e-global-color-6f9614c:#FFFFFF;--e-global-color-19f27ac:#DDDDDD;--e-global-color-4fdd8c9:#5A5A5A;--e-global-typography-primary-font-family:"Barlow Condensed";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"IBM Plex Mono";--e-global-typography-accent-font-weight:500;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */:root {
  /* Colori brand */
  --lg-navy:            #254576;
  --lg-navy-900:        #1A3054;
  --lg-navy-700:        #2E5289;
  --lg-navy-050:        #E9EEF6;
  --lg-teal:            #0E8DA5;
  --lg-teal-600:        #0B7387;
  --lg-teal-300:        #6FC4D4;
  --lg-teal-050:        #E6F4F7;
  --lg-grey:            #B7C9D3;
  --lg-grey-300:        #D6E1E8;
  --lg-grey-100:        #ECF1F4;
  --lg-red:             #E21F26;

  /* Neutri */
  --lg-white:           #FFFFFF;
  --lg-neutral:         #F5F7F9;
  --lg-ink:             #14213A;
  --lg-ink-muted:       #55637D;

  /* Testo su Navy — mai bianco puro sul corpo (Design.md §3) */
  --lg-on-navy:         #FFFFFF;
  --lg-on-navy-body:    #C6D5E6;
  --lg-on-navy-muted:   #93A9C4;

  /* Tipografia */
  --lg-font-display:    'Barlow Condensed', 'Arial Narrow', sans-serif;
  --lg-font-body:       'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --lg-font-mono:       'IBM Plex Mono', ui-monospace, 'SFMono-Regular', monospace;

  /* Scala tipografica — Design.md §3: Display / H2 / H3 / Body */
  --lg-fs-display:      clamp(3.25rem, 9.5vw, 9.5rem);   /*  52 → 152px */
  --lg-fs-h2:           clamp(2.25rem, 4.6vw, 4rem);     /*  36 →  64px */
  --lg-fs-h3:           clamp(1.375rem, 2.1vw, 2rem);    /*  22 →  32px */
  --lg-fs-h4:           clamp(1.125rem, 1.4vw, 1.375rem);
  --lg-fs-body:         1.0625rem;                        /*  17px       */
  --lg-fs-body-lg:      1.1875rem;                        /*  19px       */
  --lg-fs-small:        0.9375rem;
  --lg-fs-mono:         0.75rem;                          /*  12px       */
  --lg-fs-readout:      clamp(2.5rem, 5vw, 4.25rem);

  /* Spaziature — ritmo 8px */
  --lg-space-2:   8px;
  --lg-space-3:  12px;
  --lg-space-4:  16px;
  --lg-space-5:  24px;
  --lg-space-6:  32px;
  --lg-space-7:  48px;
  --lg-space-8:  64px;
  --lg-space-9:  96px;
  --lg-space-10:128px;
  --lg-section-y: clamp(64px, 8vw, 128px);
  --lg-gutter:    clamp(24px, 5vw, 80px);
  --lg-container: 1440px;

  /* Raggi — Design.md §4 */
  --lg-radius-xs:   4px;
  --lg-radius-sm:   8px;
  --lg-radius-md:  16px;
  --lg-radius-lg:  32px;
  --lg-radius-xl:  48px;
  --lg-radius-2xl: 72px;
  --lg-radius-pill: 999px;

  /* Bordi */
  --lg-border-light:  1px solid rgba(20, 33, 58, 0.12);
  --lg-border-navy:   1px solid rgba(255, 255, 255, 0.16);

  /* Motion — sobrio (Design.md §6) */
  --lg-dur-fast:  160ms;
  --lg-dur-base:  240ms;
  --lg-dur-slow:  360ms;
  --lg-ease:      cubic-bezier(0.22, 0.61, 0.36, 1);

  --lg-z-header: 400;
    --lg-fs-h1-page:  clamp(2.75rem, 6.4vw, 6rem);   /* H1 pagine interne */
  --lg-header-h:    92px;                          /* per scroll-margin ancore */
  --lg-shadow-card: 0 1px 2px rgba(20,33,58,.06), 0 12px 32px rgba(20,33,58,.07);
}

/* -------------------------------------------------------------------------
   3. RESET LOCALE (solo dentro il namespace .lg-*, non tocca il tema)
   ------------------------------------------------------------------------- */
.lg-section,
.lg-header,
.lg-footer,
.lg-section *,
.lg-header *,
.lg-footer *,
.lg-section *::before,
.lg-section *::after { box-sizing: border-box; }

.lg-section {
  font-family: var(--lg-font-body);
  font-size: var(--lg-fs-body);
  line-height: 1.65;
  color: var(--lg-ink);
  -webkit-font-smoothing: antialiased;
}

.lg-section img { max-width: 100%; height: auto; display: block; }
.lg-section figure { margin: 0; }

/* Immagine con raggio (widget Image di Elementor con classe .lg-media-rounded) */
.lg-media-rounded img,
figure.lg-media-rounded img { border-radius: var(--lg-radius-lg); }

/* -------------------------------------------------------------------------
   4. LAYOUT
   ------------------------------------------------------------------------- */
.lg-section {
  position: relative;
  width: 100%;
  padding-block: var(--lg-section-y);
  padding-inline: var(--lg-gutter);
}

.lg-container {
  width: 100%;
  max-width: var(--lg-container);
  margin-inline: auto;
}

.lg-container--narrow { max-width: 900px; }

/* Colonna generica: obbligatoria dentro .lg-split e .lg-section-head--split
   perché i figli diretti della griglia devono essere un solo elemento. */
.lg-col { min-width: 0; }

/* Sezioni full-bleed a raggi estremi che si "agganciano" (Design.md §4) */
.lg-section--navy {
  background: var(--lg-navy);
  color: var(--lg-on-navy-body);
  border-radius: var(--lg-radius-2xl);
}
.lg-section--navy-top    { border-radius: var(--lg-radius-2xl) var(--lg-radius-2xl) 0 0; }
.lg-section--navy-bottom { border-radius: 0 0 var(--lg-radius-2xl) var(--lg-radius-2xl); }
.lg-section--navy-flat   { border-radius: 0; }

.lg-section--light   { background: var(--lg-neutral); }
.lg-section--white   { background: var(--lg-white); }
.lg-section--grey    { background: var(--lg-grey-100); }

.lg-section--light.lg-section--rounded,
.lg-section--grey.lg-section--rounded { border-radius: var(--lg-radius-2xl); }

/* Le sezioni Navy sopra fondo bianco: bordi arrotondati visibili */
.lg-stack { background: var(--lg-white); }
.lg-stack > .lg-section + .lg-section { margin-top: 0; }

/* Griglie */
.lg-grid        { display: grid; gap: var(--lg-space-5); }
.lg-grid--2     { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lg-grid--3     { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lg-grid--4     { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lg-grid--gap-lg{ gap: var(--lg-space-6); }

.lg-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}
.lg-split--sticky-left { grid-template-columns: 320px minmax(0, 1fr); align-items: start; }

/* Colonna media che riempie l'altezza della colonna testo */
.lg-split--media { align-items: stretch; }
.lg-split--media > figure { height: 100%; }
.lg-split--media > figure img { height: 100%; width: 100%; object-fit: cover; }

/* -------------------------------------------------------------------------
   5. TIPOGRAFIA
   ------------------------------------------------------------------------- */
.lg-eyebrow {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--lg-teal);
  margin: 0 0 var(--lg-space-4);
  display: flex;
  align-items: center;
  gap: var(--lg-space-3);
}
.lg-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
  flex: none;
}
.lg-section--navy .lg-eyebrow { color: var(--lg-teal-300); }

.lg-display,
.lg-h1 {
  font-family: var(--lg-font-display);
  font-size: var(--lg-fs-display);
  font-weight: 800;
  line-height: 0.88;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  margin: 0;
  color: var(--lg-navy);
  text-wrap: balance;
}
.lg-section--navy .lg-display,
.lg-section--navy .lg-h1 { color: var(--lg-on-navy); }

.lg-h2 {
  font-family: var(--lg-font-display);
  font-size: var(--lg-fs-h2);
  font-weight: 700;
  line-height: 0.94;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  margin: 0 0 var(--lg-space-5);
  color: var(--lg-navy);
  text-wrap: balance;
}
.lg-section--navy .lg-h2 { color: var(--lg-on-navy); }

.lg-h3 {
  font-family: var(--lg-font-display);
  font-size: var(--lg-fs-h3);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: 0;
  text-transform: uppercase;
  margin: 0 0 var(--lg-space-3);
  color: var(--lg-navy);
}
.lg-section--navy .lg-h3 { color: var(--lg-on-navy); }

.lg-h4 {
  font-family: var(--lg-font-body);
  font-size: var(--lg-fs-h4);
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 var(--lg-space-2);
  color: var(--lg-navy);
}
.lg-section--navy .lg-h4 { color: var(--lg-on-navy); }

.lg-lead {
  font-size: var(--lg-fs-body-lg);
  line-height: 1.6;
  color: var(--lg-ink-muted);
  max-width: 62ch;
  margin: 0 0 var(--lg-space-5);
}
.lg-section--navy .lg-lead { color: var(--lg-on-navy-body); }

.lg-text { max-width: 68ch; margin: 0 0 var(--lg-space-4); }
.lg-text:last-child { margin-bottom: 0; }
.lg-section--navy .lg-text { color: var(--lg-on-navy-body); }

.lg-mono {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
}
.lg-section--navy .lg-mono { color: var(--lg-on-navy-muted); }

/* Pull-quote (Design.md §7.1 punto 5) */
.lg-pullquote {
  font-family: var(--lg-font-display);
  font-size: clamp(1.75rem, 3.2vw, 2.75rem);
  font-weight: 600;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lg-navy);
  border-left: 3px solid var(--lg-teal);
  padding-left: var(--lg-space-6);
  margin: var(--lg-space-7) 0;
  max-width: 24ch;
}
.lg-section--navy .lg-pullquote { color: var(--lg-on-navy); }

/* -------------------------------------------------------------------------
   6. BOTTONI
   ------------------------------------------------------------------------- */
.lg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lg-space-2);
  min-height: 48px;
  padding: 14px 32px;
  border-radius: var(--lg-radius-pill);
  border: 1px solid transparent;
  font-family: var(--lg-font-body);
  font-size: var(--lg-fs-small);
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--lg-dur-base) var(--lg-ease),
              border-color var(--lg-dur-base) var(--lg-ease),
              color var(--lg-dur-base) var(--lg-ease);
}

.lg-btn--primary { background: var(--lg-teal); color: var(--lg-white); }
.lg-btn--primary:hover,
.lg-btn--primary:focus-visible { background: var(--lg-teal-600); color: var(--lg-white); }

.lg-btn--secondary { background: transparent; color: var(--lg-navy); border-color: rgba(37, 69, 118, 0.35); }
.lg-btn--secondary:hover,
.lg-btn--secondary:focus-visible { background: var(--lg-navy); color: var(--lg-white); border-color: var(--lg-navy); }

.lg-section--navy .lg-btn--secondary { color: var(--lg-on-navy); border-color: rgba(255,255,255,0.4); }
.lg-section--navy .lg-btn--secondary:hover,
.lg-section--navy .lg-btn--secondary:focus-visible { background: var(--lg-white); color: var(--lg-navy); border-color: var(--lg-white); }

.lg-btn--ghost { background: transparent; color: var(--lg-teal); padding-inline: 0; min-height: 32px; }
.lg-btn--ghost:hover { color: var(--lg-teal-600); }

.lg-btn-row { display: flex; flex-wrap: wrap; gap: var(--lg-space-3); margin-top: var(--lg-space-6); }

/* Focus visibile — WCAG (skill §1) */
.lg-section a:focus-visible,
.lg-section button:focus-visible {
  outline: 2px solid var(--lg-teal);
  outline-offset: 3px;
  border-radius: var(--lg-radius-xs);
}
.lg-section--navy a:focus-visible { outline-color: var(--lg-teal-300); }

/* -------------------------------------------------------------------------
   7. HEADER STICKY A PILLOLA (Design.md §4 / §6 — sfondo fisso, no cambio on-scroll)
   ------------------------------------------------------------------------- */
.lg-header {
  position: sticky;
  top: var(--lg-space-4);
  z-index: var(--lg-z-header);
  padding-inline: var(--lg-gutter);
  margin-bottom: calc(var(--lg-space-4) * -1);
}
.lg-header__inner {
  max-width: var(--lg-container);
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: var(--lg-space-5);
  background: var(--lg-white);
  border: var(--lg-border-light);
  border-radius: var(--lg-radius-pill);
  padding: 10px 12px 10px 24px;
  box-shadow: 0 2px 20px rgba(20, 33, 58, 0.07);
}
.lg-header__logo img { height: 34px; width: auto; }
.lg-header__nav {
  display: flex;
  align-items: center;
  gap: var(--lg-space-2);
  margin-left: auto;
  list-style: none;
  margin-block: 0;
  padding: 0;
}
.lg-header__nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 16px;
  border-radius: var(--lg-radius-pill);
  font-size: var(--lg-fs-small);
  font-weight: 500;
  color: var(--lg-navy);
  text-decoration: none;
  transition: background-color var(--lg-dur-fast) var(--lg-ease), color var(--lg-dur-fast) var(--lg-ease);
}
.lg-header__nav a:hover { background: var(--lg-navy-050); color: var(--lg-navy); }
.lg-header__nav a[aria-current="page"] { background: var(--lg-navy); color: var(--lg-white); }
.lg-header__cta { margin-left: var(--lg-space-2); }
.lg-header__burger { display: none; }

/* -------------------------------------------------------------------------
   8. HERO
   ------------------------------------------------------------------------- */
.lg-hero {
  background: var(--lg-navy);
  color: var(--lg-on-navy-body);
  border-radius: 0 0 var(--lg-radius-2xl) var(--lg-radius-2xl);
  padding-top: clamp(120px, 14vw, 200px);
  padding-bottom: 0;
  overflow: hidden;
}
.lg-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--lg-space-7);
}
/* Titolo hero leggermente più contenuto del Display puro, così ogni frase
   sta su una riga sola da 1280px in su. */
.lg-hero .lg-display { font-size: clamp(2.75rem, 7.4vw, 7.5rem); }
.lg-hero__title { margin-bottom: var(--lg-space-6); }
.lg-hero__title .lg-display { color: var(--lg-on-navy); }
.lg-hero__title .lg-display em { font-style: normal; display: block; }
.lg-section .lg-display--accent,
.lg-section--navy .lg-display--accent,
.lg-hero .lg-display--accent { color: var(--lg-teal-300); }
.lg-hero__meta {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: end;
  padding-bottom: var(--lg-space-8);
}
.lg-hero__lead { color: var(--lg-on-navy-body); font-size: var(--lg-fs-body-lg); max-width: 54ch; margin: 0; }

/* Readout tecnico stile strumentazione (Design.md §3.1) */
.lg-readout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--lg-space-4);
  border-top: var(--lg-border-navy);
  padding-top: var(--lg-space-5);
}
.lg-readout__item { display: flex; flex-direction: column; gap: 4px; }
.lg-readout__value {
  font-family: var(--lg-font-display);
  font-size: clamp(2rem, 3.4vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: var(--lg-teal-300);
}
.lg-readout__label {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lg-on-navy-muted);
}

.lg-hero__media {
  border-radius: var(--lg-radius-xl) var(--lg-radius-xl) 0 0;
  overflow: hidden;
  aspect-ratio: 16 / 7;
}
.lg-hero__media img { width: 100%; height: 100%; object-fit: cover; }

/* -------------------------------------------------------------------------
   9. CARD PRODOTTO (griglia 3 colonne, Design.md §4)
   ------------------------------------------------------------------------- */
.lg-card {
  display: flex;
  flex-direction: column;
  background: var(--lg-white);
  border: var(--lg-border-light);
  border-radius: var(--lg-radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color var(--lg-dur-base) var(--lg-ease),
              box-shadow var(--lg-dur-base) var(--lg-ease);
}
.lg-card:hover,
.lg-card:focus-visible {
  border-color: var(--lg-teal);
  box-shadow: 0 8px 32px rgba(37, 69, 118, 0.10);
}
.lg-card__media {
  aspect-ratio: 16 / 10;
  background: var(--lg-white);
  border-bottom: var(--lg-border-light);
  overflow: hidden;
}
.lg-card__media img { width: 100%; height: 100%; object-fit: contain; padding: var(--lg-space-5); }
.lg-card__body { padding: var(--lg-space-5) var(--lg-space-5) var(--lg-space-6); display: flex; flex-direction: column; flex: 1; }
.lg-card__index {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.14em;
  color: var(--lg-teal);
  margin-bottom: var(--lg-space-3);
}
.lg-card__text { font-size: var(--lg-fs-small); color: var(--lg-ink-muted); margin: 0 0 var(--lg-space-5); flex: 1; }
.lg-card__link {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lg-teal);
  display: inline-flex;
  align-items: center;
  gap: var(--lg-space-2);
}
.lg-card:hover .lg-card__link { color: var(--lg-teal-600); }

/* Card su fondo Navy */
.lg-section--navy .lg-card {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.14);
}
.lg-section--navy .lg-card:hover { border-color: var(--lg-teal-300); box-shadow: none; }
.lg-section--navy .lg-card__text { color: var(--lg-on-navy-body); }
.lg-section--navy .lg-card__index,
.lg-section--navy .lg-card__link { color: var(--lg-teal-300); }

/* -------------------------------------------------------------------------
   10. CARD APPLICATION (immagine di sfondo)
   ------------------------------------------------------------------------- */
.lg-appcard {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 420px;
  padding: var(--lg-space-6);
  border-radius: var(--lg-radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: var(--lg-white);
  background: var(--lg-navy);
}
.lg-appcard img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
}
.lg-appcard::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,48,84,0.10) 0%, rgba(26,48,84,0.72) 48%, rgba(26,48,84,0.94) 100%);
  z-index: 1;
}
.lg-appcard > *:not(img) { position: relative; z-index: 2; }
.lg-appcard .lg-h3 { color: var(--lg-white); }
.lg-appcard .lg-eyebrow { color: var(--lg-white); }
.lg-appcard__text { font-size: var(--lg-fs-small); color: rgba(255,255,255,0.85); margin: 0 0 var(--lg-space-4); max-width: 46ch; }
.lg-appcard__tags { display: flex; flex-wrap: wrap; gap: var(--lg-space-2); }

/* -------------------------------------------------------------------------
   11. BADGE / CHIP (stile pannello di controllo, Design.md §3.1)
   ------------------------------------------------------------------------- */
.lg-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--lg-space-2);
  padding: 6px 14px;
  border-radius: var(--lg-radius-pill);
  border: 1px solid rgba(37, 69, 118, 0.2);
  background: transparent;
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lg-navy);
  white-space: nowrap;
}
.lg-section--navy .lg-badge,
.lg-appcard .lg-badge { border-color: rgba(255,255,255,0.3); color: var(--lg-white); }
.lg-badge--teal { border-color: var(--lg-teal); color: var(--lg-teal); }
.lg-badge--alert { border-color: var(--lg-red); color: var(--lg-red); }

.lg-badge-row { display: flex; flex-wrap: wrap; gap: var(--lg-space-2); }

/* Badge certificazione (griglia 4 col, Design.md §4) */
.lg-certcard {
  display: flex;
  flex-direction: column;
  gap: var(--lg-space-2);
  padding: var(--lg-space-5);
  min-height: 148px;
  border-radius: var(--lg-radius-md);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
}
.lg-certcard__code {
  font-family: var(--lg-font-display);
  font-size: 1.5rem;
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.05;
  color: var(--lg-white);
}
.lg-certcard__desc {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--lg-on-navy-muted);
  margin: 0;
}

/* -------------------------------------------------------------------------
   12. LISTA NUMERATA CAPABILITIES (numero mono + titolo + testo + divider)
   ------------------------------------------------------------------------- */
.lg-numlist { list-style: none; margin: 0; padding: 0; }
.lg-numlist__item {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: clamp(16px, 2vw, 32px);
  padding: var(--lg-space-6) 0;
  border-top: var(--lg-border-light);
  align-items: start;
}
.lg-section--navy .lg-numlist__item { border-top-color: rgba(255,255,255,0.16); }
.lg-numlist__item:last-child { border-bottom: var(--lg-border-light); }
.lg-section--navy .lg-numlist__item:last-child { border-bottom-color: rgba(255,255,255,0.16); }
.lg-numlist__num {
  font-family: var(--lg-font-mono);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--lg-teal);
  padding-top: 6px;
}
.lg-section--navy .lg-numlist__num { color: var(--lg-teal-300); }
.lg-numlist__body .lg-text { font-size: var(--lg-fs-small); color: var(--lg-ink-muted); }
.lg-section--navy .lg-numlist__body .lg-text { color: var(--lg-on-navy-body); }

/* -------------------------------------------------------------------------
   13. KPI / BARRE (Design.md §7.1 punto 7)
   ------------------------------------------------------------------------- */
.lg-kpicard {
  padding: var(--lg-space-6);
  border-radius: var(--lg-radius-lg);
  border: var(--lg-border-light);
  background: var(--lg-white);
}
.lg-kpicard__value {
  font-family: var(--lg-font-display);
  font-size: var(--lg-fs-readout);
  font-weight: 800;
  line-height: 0.9;
  color: var(--lg-navy);
  margin: 0 0 var(--lg-space-2);
}
.lg-kpicard__label {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
  margin: 0;
}

.lg-bar { margin-bottom: var(--lg-space-5); }
.lg-bar:last-child { margin-bottom: 0; }
.lg-bar__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--lg-space-3);
  margin-bottom: var(--lg-space-2);
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
}
.lg-bar__val { color: var(--lg-navy); font-weight: 600; font-variant-numeric: tabular-nums; }
.lg-bar__track { height: 6px; border-radius: var(--lg-radius-pill); background: var(--lg-grey-300); overflow: hidden; }
.lg-bar__fill  { height: 100%; border-radius: var(--lg-radius-pill); background: var(--lg-teal); }
.lg-section--navy .lg-bar__track { background: rgba(255,255,255,0.16); }
.lg-section--navy .lg-bar__fill  { background: var(--lg-teal-300); }
.lg-section--navy .lg-bar__val   { color: var(--lg-white); }

/* -------------------------------------------------------------------------
   14. VIDEO
   ------------------------------------------------------------------------- */
.lg-video {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: var(--lg-radius-xl);
  overflow: hidden;
  background: var(--lg-navy-900);
}
.lg-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* -------------------------------------------------------------------------
   15. LOGHI CLIENTI
   ------------------------------------------------------------------------- */
.lg-clients { display: flex; flex-wrap: wrap; gap: var(--lg-space-3); }
.lg-clients__item {
  padding: 10px 20px;
  border-radius: var(--lg-radius-pill);
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.04);
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lg-on-navy-body);
}

/* -------------------------------------------------------------------------
   16. CTA BANNER
   ------------------------------------------------------------------------- */
.lg-ctabanner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: center;
  padding: clamp(32px, 5vw, 72px);
  border-radius: var(--lg-radius-xl);
  border: 2px solid var(--lg-teal);
  background: var(--lg-white);
}
.lg-ctabanner .lg-h2 { margin-bottom: var(--lg-space-3); }

/* -------------------------------------------------------------------------
   17. NEWS
   ------------------------------------------------------------------------- */
.lg-newscard {
  display: flex;
  flex-direction: column;
  gap: var(--lg-space-3);
  padding: var(--lg-space-5) 0;
  border-top: var(--lg-border-light);
  text-decoration: none;
  color: inherit;
}
.lg-newscard:last-child { border-bottom: var(--lg-border-light); }
.lg-newscard__date {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.1em;
  color: var(--lg-teal);
  font-variant-numeric: tabular-nums;
}
.lg-newscard:hover .lg-h4 { color: var(--lg-teal); }

/* -------------------------------------------------------------------------
   18. FOOTER
   ------------------------------------------------------------------------- */
.lg-footer {
  background: var(--lg-navy-900);
  color: var(--lg-on-navy-body);
  border-radius: var(--lg-radius-2xl) var(--lg-radius-2xl) 0 0;
  padding: var(--lg-space-9) var(--lg-gutter) var(--lg-space-6);
}
.lg-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 64px);
  padding-bottom: var(--lg-space-8);
}
.lg-footer__logo img { height: 40px; width: auto; margin-bottom: var(--lg-space-5); }
.lg-footer__col-title {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lg-teal-300);
  margin: 0 0 var(--lg-space-4);
}
.lg-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.lg-footer__list a {
  display: inline-block;
  padding: 8px 0;
  font-size: var(--lg-fs-small);
  color: var(--lg-on-navy-body);
  text-decoration: none;
  transition: color var(--lg-dur-fast) var(--lg-ease);
}
.lg-footer__list a:hover { color: var(--lg-white); }
.lg-footer__legal {
  border-top: var(--lg-border-navy);
  padding-top: var(--lg-space-5);
  display: flex;
  flex-wrap: wrap;
  gap: var(--lg-space-4);
  justify-content: space-between;
  font-family: var(--lg-font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  color: var(--lg-on-navy-muted);
}
.lg-footer__legal a { color: inherit; }

/* -------------------------------------------------------------------------
   19. UTILITY
   ------------------------------------------------------------------------- */
.lg-section-head { max-width: 880px; margin-bottom: var(--lg-space-8); }
.lg-section-head--split {
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: end;
}
.lg-divider { height: 1px; background: rgba(20,33,58,0.12); border: 0; margin: var(--lg-space-7) 0; }
.lg-section--navy .lg-divider { background: rgba(255,255,255,0.16); }
.lg-mt-6 { margin-top: var(--lg-space-6); }
.lg-mt-8 { margin-top: var(--lg-space-8); }
.lg-visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.lg-skiplink {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--lg-teal); color: #fff; padding: 12px 20px;
  border-radius: 0 0 var(--lg-radius-sm) 0;
}
.lg-skiplink:focus { left: 0; }


/* -------------------------------------------------------------------------
   1. HERO DI PAGINA INTERNA
   Variante piu' compatta dell'hero home: Navy, breadcrumb, H1, lead.
   ------------------------------------------------------------------------- */
.lg-pagehero {
  padding-block: calc(var(--lg-section-y) * 0.85) calc(var(--lg-section-y) * 0.9);
}

.lg-pagehero .lg-h1,
.lg-h1--page {
  font-family: var(--lg-font-display);
  font-weight: 800;
  font-size: var(--lg-fs-h1-page);
  line-height: 0.92;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  margin: 0 0 var(--lg-space-5);
  text-wrap: balance;
}

.lg-pagehero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: var(--lg-space-8);
  align-items: end;
}

.lg-pagehero__aside {
  display: flex;
  flex-direction: column;
  gap: var(--lg-space-5);
  padding-bottom: var(--lg-space-2);
}

.lg-pagehero__media img { border-radius: var(--lg-radius-lg); }

/* Breadcrumb — Design.md §3.1 (tono pannello strumenti) */
.lg-breadcrumb {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin: 0 0 var(--lg-space-5);
  display: flex;
  flex-wrap: wrap;
  gap: var(--lg-space-2);
  align-items: center;
  color: var(--lg-ink-muted);
}
.lg-breadcrumb a { color: inherit; text-decoration: none; }
.lg-breadcrumb a:hover { color: var(--lg-teal-600); text-decoration: underline; }
.lg-breadcrumb__sep { opacity: 0.5; }
.lg-breadcrumb [aria-current="page"] { color: var(--lg-ink); }
.lg-section--navy .lg-breadcrumb { color: var(--lg-on-navy-muted); }
.lg-section--navy .lg-breadcrumb a:hover { color: var(--lg-teal-300); }
.lg-section--navy .lg-breadcrumb [aria-current="page"] { color: var(--lg-on-navy); }

/* -------------------------------------------------------------------------
   2. NAVIGAZIONE INTERNA ALLA PAGINA (ancore)
   Nessun JS: link statici, evidenziazione solo su :target — Design.md §7.2
   ------------------------------------------------------------------------- */
.lg-anchor { scroll-margin-top: calc(var(--lg-header-h) + 16px); }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.lg-subnav {
  position: sticky;
  top: calc(var(--lg-header-h) + 8px);
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: var(--lg-space-2);
  padding: var(--lg-space-5);
  border: var(--lg-border-light);
  border-radius: var(--lg-radius-md);
  background: var(--lg-white);
}
.lg-subnav__title {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
  margin: 0 0 var(--lg-space-2);
}
.lg-subnav a {
  display: flex;
  align-items: center;
  gap: var(--lg-space-3);
  min-height: 44px;
  padding: var(--lg-space-2) var(--lg-space-3);
  border-radius: var(--lg-radius-sm);
  color: var(--lg-ink);
  text-decoration: none;
  font-weight: 500;
  transition: background var(--lg-dur-fast) var(--lg-ease),
              color var(--lg-dur-fast) var(--lg-ease);
}
.lg-subnav a::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--lg-grey);
  flex: none;
  transition: background var(--lg-dur-fast) var(--lg-ease);
}
.lg-subnav a:hover { background: var(--lg-grey-100); color: var(--lg-teal-600); }
.lg-subnav a:hover::before { background: var(--lg-teal); }

/* Versione orizzontale (mobile e pagine senza colonna laterale) */
.lg-subnav--inline {
  position: static;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--lg-space-2);
  padding: 0;
  border: 0;
  background: transparent;
}
.lg-subnav--inline a {
  border: var(--lg-border-light);
  border-radius: var(--lg-radius-pill);
  padding-inline: var(--lg-space-5);
}
.lg-section--navy .lg-subnav--inline a { color: var(--lg-on-navy); border-color: rgba(255,255,255,.24); }
.lg-section--navy .lg-subnav--inline a:hover { background: rgba(255,255,255,.08); color: var(--lg-teal-300); }

/* -------------------------------------------------------------------------
   3. FEATURE / SPECIFICHE
   ------------------------------------------------------------------------- */
.lg-feature {
  display: flex;
  flex-direction: column;
  gap: var(--lg-space-3);
  padding: var(--lg-space-6);
  border: var(--lg-border-light);
  border-radius: var(--lg-radius-md);
  background: var(--lg-white);
  height: 100%;
}
.lg-feature__num {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.14em;
  color: var(--lg-teal-600);
}
.lg-feature__title {
  font-family: var(--lg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--lg-fs-h4);
  line-height: 1.1;
  margin: 0;
  color: var(--lg-ink);
}
.lg-feature__text { margin: 0; color: var(--lg-ink-muted); font-size: var(--lg-fs-small); line-height: 1.6; }

.lg-section--navy .lg-feature { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); }
.lg-section--navy .lg-feature__title { color: var(--lg-on-navy); }
.lg-section--navy .lg-feature__text { color: var(--lg-on-navy-body); }
.lg-section--navy .lg-feature__num { color: var(--lg-teal-300); }

/* Tabella specifiche — stile readout strumentazione */
.lg-spectable { width: 100%; overflow-x: auto; }
.lg-spectable table { width: 100%; border-collapse: collapse; min-width: 520px; }
.lg-spectable th,
.lg-spectable td {
  text-align: left;
  padding: var(--lg-space-4) var(--lg-space-4);
  border-bottom: var(--lg-border-light);
  vertical-align: top;
  font-size: var(--lg-fs-small);
}
.lg-spectable th {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
  font-weight: 500;
  white-space: nowrap;
}
.lg-spectable td:first-child { font-weight: 600; width: 34%; }
.lg-spectable tbody tr:hover { background: var(--lg-grey-100); }
.lg-section--navy .lg-spectable th,
.lg-section--navy .lg-spectable td { border-color: rgba(255,255,255,.14); color: var(--lg-on-navy-body); }
.lg-section--navy .lg-spectable td:first-child { color: var(--lg-on-navy); }
.lg-section--navy .lg-spectable tbody tr:hover { background: rgba(255,255,255,.05); }

/* Elenco equipment — chip grandi, stile targhetta */
.lg-equipment {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lg-space-3);
  padding: 0;
  margin: 0;
  list-style: none;
}
.lg-equipment li {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-small);
  line-height: 1.3;
  padding: var(--lg-space-4) var(--lg-space-5);
  border: var(--lg-border-light);
  border-left: 3px solid var(--lg-teal);
  border-radius: var(--lg-radius-xs);
  background: var(--lg-white);
  color: var(--lg-ink);
}
.lg-section--navy .lg-equipment li {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.14);
  border-left-color: var(--lg-teal-300);
  color: var(--lg-on-navy);
}

/* -------------------------------------------------------------------------
   4. CASI D'USO E PIATTAFORME
   ------------------------------------------------------------------------- */
.lg-usecase {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--lg-radius-md);
  border: var(--lg-border-light);
  background: var(--lg-white);
  height: 100%;
  transition: transform var(--lg-dur-base) var(--lg-ease),
              box-shadow var(--lg-dur-base) var(--lg-ease);
}
.lg-usecase:hover { transform: translateY(-2px); box-shadow: var(--lg-shadow-card); }
.lg-usecase img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--lg-grey-100); }
.lg-usecase__body { padding: var(--lg-space-6); display: flex; flex-direction: column; gap: var(--lg-space-3); }
.lg-usecase__platform {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lg-teal-600);
  margin: 0;
}
.lg-usecase__title {
  font-family: var(--lg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--lg-fs-h4);
  line-height: 1.1;
  margin: 0;
}
.lg-usecase__text { margin: 0; font-size: var(--lg-fs-small); color: var(--lg-ink-muted); line-height: 1.6; }
.lg-section--navy .lg-usecase { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); }
.lg-section--navy .lg-usecase__title { color: var(--lg-on-navy); }
.lg-section--navy .lg-usecase__text { color: var(--lg-on-navy-body); }
.lg-section--navy .lg-usecase__platform { color: var(--lg-teal-300); }

/* Card piattaforma (indice Application) */
.lg-platform {
  display: flex;
  flex-direction: column;
  border-radius: var(--lg-radius-md);
  overflow: hidden;
  border: var(--lg-border-light);
  background: var(--lg-white);
  height: 100%;
  text-decoration: none;
  color: inherit;
  transition: transform var(--lg-dur-base) var(--lg-ease),
              box-shadow var(--lg-dur-base) var(--lg-ease);
}
.lg-platform:hover { transform: translateY(-2px); box-shadow: var(--lg-shadow-card); }
.lg-platform img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--lg-grey-100); }
.lg-platform__body { padding: var(--lg-space-5); display: flex; flex-direction: column; gap: var(--lg-space-2); }
.lg-platform__oem {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
  margin: 0;
}
.lg-platform__name {
  font-family: var(--lg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--lg-fs-h4);
  line-height: 1;
  margin: 0;
}
.lg-platform__items { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.lg-platform__items li {
  font-size: var(--lg-fs-small);
  color: var(--lg-ink-muted);
  padding-left: var(--lg-space-4);
  position: relative;
  line-height: 1.5;
}
.lg-platform__items li::before {
  content: "";
  position: absolute; left: 0; top: 0.62em;
  width: 6px; height: 1px; background: var(--lg-teal);
}
.lg-section--navy .lg-platform { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); }
.lg-section--navy .lg-platform__name { color: var(--lg-on-navy); }
.lg-section--navy .lg-platform__items li { color: var(--lg-on-navy-body); }

/* Matrice prodotto x piattaforma */
.lg-matrix { width: 100%; overflow-x: auto; border: var(--lg-border-light); border-radius: var(--lg-radius-md); }
.lg-matrix table { border-collapse: collapse; width: 100%; min-width: 760px; }
.lg-matrix th, .lg-matrix td {
  padding: var(--lg-space-3) var(--lg-space-4);
  border-bottom: var(--lg-border-light);
  font-size: var(--lg-fs-small);
  text-align: left;
}
.lg-matrix thead th {
  position: sticky; top: 0;
  background: var(--lg-navy);
  color: var(--lg-white);
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
}
.lg-matrix tbody th { font-weight: 600; white-space: nowrap; }
.lg-matrix td { color: var(--lg-ink-muted); }
.lg-matrix tbody tr:hover td,
.lg-matrix tbody tr:hover th { background: var(--lg-grey-100); }

/* -------------------------------------------------------------------------
   5. LOGHI CLIENTI / PARTNER — badge scuri (Design.md §4)
   ------------------------------------------------------------------------- */
.lg-logogrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--lg-space-4);
}
.lg-logogrid__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 108px;
  padding: var(--lg-space-5);
  border-radius: var(--lg-radius-md);
  background: var(--lg-navy-900);
  border: 1px solid rgba(255,255,255,.12);
}
.lg-logogrid img { max-height: 44px; width: auto; object-fit: contain; }
.lg-logogrid__caption {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
  text-align: center;
  margin: var(--lg-space-2) 0 0;
}
.lg-section--navy .lg-logogrid__item { background: var(--lg-navy-900); }
.lg-section--navy .lg-logogrid__caption { color: var(--lg-on-navy-muted); }

/* -------------------------------------------------------------------------
   6. TIMELINE (Company)
   ------------------------------------------------------------------------- */
.lg-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.lg-timeline::before {
  content: "";
  position: absolute; left: 84px; top: 8px; bottom: 8px;
  width: 1px; background: rgba(255,255,255,.18);
}
.lg-section--white .lg-timeline::before,
.lg-section--light .lg-timeline::before { background: rgba(20,33,58,.12); }
.lg-timeline__item {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: var(--lg-space-6);
  padding-block: var(--lg-space-5);
  align-items: start;
}
.lg-timeline__year {
  font-family: var(--lg-font-mono);
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--lg-teal-600);
  padding-top: 2px;
}
.lg-timeline__body { position: relative; padding-left: var(--lg-space-6); }
.lg-timeline__body::before {
  content: "";
  position: absolute; left: -5px; top: 9px;
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--lg-teal);
}
.lg-timeline__title {
  font-family: var(--lg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--lg-fs-h4);
  line-height: 1.1;
  margin: 0 0 4px;
}
.lg-timeline__text { margin: 0; font-size: var(--lg-fs-small); line-height: 1.6; color: var(--lg-ink-muted); }
.lg-section--navy .lg-timeline__year { color: var(--lg-teal-300); }
.lg-section--navy .lg-timeline__title { color: var(--lg-on-navy); }
.lg-section--navy .lg-timeline__text { color: var(--lg-on-navy-body); }

/* -------------------------------------------------------------------------
   7. PERSONE / TESTIMONIAL (Careers, Company)
   ------------------------------------------------------------------------- */
.lg-person {
  display: flex;
  flex-direction: column;
  gap: var(--lg-space-4);
  height: 100%;
}
.lg-person img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--lg-radius-md);
  background: var(--lg-grey-100);
}
.lg-person__quote { margin: 0; font-size: var(--lg-fs-small); line-height: 1.65; color: var(--lg-ink-muted); }
.lg-person__name {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lg-ink);
  margin: 0;
}
.lg-section--navy .lg-person__quote { color: var(--lg-on-navy-body); }
.lg-section--navy .lg-person__name { color: var(--lg-teal-300); }

/* -------------------------------------------------------------------------
   8. POSIZIONI APERTE (Careers)
   ------------------------------------------------------------------------- */
.lg-joblist { list-style: none; margin: 0; padding: 0; }
.lg-joblist__item { border-bottom: var(--lg-border-light); }
.lg-joblist__item:first-child { border-top: var(--lg-border-light); }
.lg-joblist a {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: var(--lg-space-5);
  align-items: center;
  padding: var(--lg-space-6) var(--lg-space-2);
  min-height: 44px;
  text-decoration: none;
  color: inherit;
  transition: background var(--lg-dur-fast) var(--lg-ease);
}
.lg-joblist a:hover { background: var(--lg-grey-100); }
.lg-joblist__role {
  font-family: var(--lg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--lg-fs-h4);
  line-height: 1.1;
}
.lg-joblist__meta {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
}
.lg-joblist__arrow { color: var(--lg-teal-600); font-size: 1.25rem; }

/* Stato vuoto */
.lg-empty {
  border: 1px dashed rgba(20,33,58,.24);
  border-radius: var(--lg-radius-md);
  padding: var(--lg-space-8);
  text-align: center;
  background: var(--lg-white);
}
.lg-empty__title {
  font-family: var(--lg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--lg-fs-h3);
  margin: 0 0 var(--lg-space-3);
}
.lg-empty p { margin: 0 auto var(--lg-space-5); max-width: 52ch; color: var(--lg-ink-muted); }

/* -------------------------------------------------------------------------
   9. FORM (Contacts, Careers)
   ------------------------------------------------------------------------- */
.lg-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lg-space-5); }
.lg-form__field { display: flex; flex-direction: column; gap: var(--lg-space-2); }
.lg-form__field--full { grid-column: 1 / -1; }
.lg-form label {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
}
.lg-form label .lg-req { color: var(--lg-red); margin-left: 4px; }
.lg-form input,
.lg-form select,
.lg-form textarea {
  font-family: var(--lg-font-body);
  font-size: 1rem;
  color: var(--lg-ink);
  background: var(--lg-white);
  border: 1px solid rgba(20,33,58,.22);
  border-radius: var(--lg-radius-sm);
  padding: 14px var(--lg-space-4);
  min-height: 48px;
  width: 100%;
  transition: border-color var(--lg-dur-fast) var(--lg-ease),
              box-shadow var(--lg-dur-fast) var(--lg-ease);
}
.lg-form textarea { min-height: 160px; resize: vertical; line-height: 1.6; }
.lg-form input:focus,
.lg-form select:focus,
.lg-form textarea:focus {
  outline: none;
  border-color: var(--lg-teal);
  box-shadow: 0 0 0 3px rgba(14,141,165,.18);
}
.lg-form__help { font-size: 0.8125rem; color: var(--lg-ink-muted); margin: 0; }
.lg-form__consent { display: flex; gap: var(--lg-space-3); align-items: flex-start; grid-column: 1 / -1; }
.lg-form__consent input { width: 20px; height: 20px; min-height: 20px; margin-top: 2px; flex: none; }
.lg-form__consent label { text-transform: none; letter-spacing: 0; font-family: var(--lg-font-body); font-size: 0.875rem; }
.lg-form__actions { grid-column: 1 / -1; display: flex; gap: var(--lg-space-4); flex-wrap: wrap; align-items: center; }

/* -------------------------------------------------------------------------
   10. BLOCCHI INFORMATIVI (Contacts, Product support)
   ------------------------------------------------------------------------- */
.lg-infocard {
  display: flex;
  flex-direction: column;
  gap: var(--lg-space-3);
  padding: var(--lg-space-6);
  border: var(--lg-border-light);
  border-radius: var(--lg-radius-md);
  background: var(--lg-white);
  height: 100%;
}
.lg-infocard__label {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lg-teal-600);
  margin: 0;
}
.lg-infocard__title {
  font-family: var(--lg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--lg-fs-h4);
  margin: 0;
  line-height: 1.1;
}
.lg-infocard p { margin: 0; font-size: var(--lg-fs-small); color: var(--lg-ink-muted); line-height: 1.6; }
.lg-infocard a { color: var(--lg-teal-600); text-decoration: none; word-break: break-word; }
.lg-infocard a:hover { text-decoration: underline; }
.lg-section--navy .lg-infocard { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); }
.lg-section--navy .lg-infocard__title { color: var(--lg-on-navy); }
.lg-section--navy .lg-infocard p { color: var(--lg-on-navy-body); }
.lg-section--navy .lg-infocard a,
.lg-section--navy .lg-infocard__label { color: var(--lg-teal-300); }

/* Box operativo AOG — unico uso ammesso del Red (Design.md §2.2) */
.lg-alertbox {
  display: flex;
  flex-direction: column;
  gap: var(--lg-space-3);
  padding: var(--lg-space-6) var(--lg-space-7);
  border-radius: var(--lg-radius-md);
  background: var(--lg-white);
  border: var(--lg-border-light);
  border-left: 4px solid var(--lg-red);
}
.lg-alertbox__label {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--lg-red);
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--lg-space-2);
}
.lg-alertbox__label::before {
  content: "";
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--lg-red);
  flex: none;
}
.lg-alertbox p { margin: 0; }
.lg-section--navy .lg-alertbox { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); border-left-color: var(--lg-red); }

/* Lista documenti / policy scaricabili */
.lg-doclist { list-style: none; margin: 0; padding: 0; }
.lg-doclist li { border-bottom: var(--lg-border-light); }
.lg-doclist li:first-child { border-top: var(--lg-border-light); }
.lg-doclist a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lg-space-5);
  padding: var(--lg-space-5) var(--lg-space-2);
  min-height: 44px;
  text-decoration: none;
  color: inherit;
  font-weight: 500;
  transition: background var(--lg-dur-fast) var(--lg-ease), color var(--lg-dur-fast) var(--lg-ease);
}
.lg-doclist a:hover { background: var(--lg-grey-100); color: var(--lg-teal-600); }
.lg-doclist__type {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
  flex: none;
}
.lg-section--navy .lg-doclist li,
.lg-section--navy .lg-doclist li:first-child { border-color: rgba(255,255,255,.14); }
.lg-section--navy .lg-doclist a { color: var(--lg-on-navy); }
.lg-section--navy .lg-doclist a:hover { background: rgba(255,255,255,.06); color: var(--lg-teal-300); }

/* -------------------------------------------------------------------------
   11. NEWS
   ------------------------------------------------------------------------- */
.lg-newsfeature {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: var(--lg-space-8);
  align-items: center;
  padding: var(--lg-space-7);
  border-radius: var(--lg-radius-lg);
  background: var(--lg-white);
  border: var(--lg-border-light);
}
.lg-newsfeature img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--lg-radius-md); }
.lg-newsgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lg-space-6); }
.lg-newstile {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--lg-radius-md);
  border: var(--lg-border-light);
  background: var(--lg-white);
  text-decoration: none;
  color: inherit;
  height: 100%;
  transition: transform var(--lg-dur-base) var(--lg-ease), box-shadow var(--lg-dur-base) var(--lg-ease);
}
.lg-newstile:hover { transform: translateY(-2px); box-shadow: var(--lg-shadow-card); }
.lg-newstile img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--lg-grey-100); }
.lg-newstile__body { padding: var(--lg-space-6); display: flex; flex-direction: column; gap: var(--lg-space-3); }
.lg-newstile__meta {
  font-family: var(--lg-font-mono);
  font-size: var(--lg-fs-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lg-ink-muted);
  margin: 0;
  display: flex; gap: var(--lg-space-3); flex-wrap: wrap;
}
.lg-newstile__title {
  font-family: var(--lg-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--lg-fs-h4);
  line-height: 1.1;
  margin: 0;
}
.lg-newstile__text { margin: 0; font-size: var(--lg-fs-small); color: var(--lg-ink-muted); line-height: 1.6; }

/* -------------------------------------------------------------------------
   12. UTILITY
   ------------------------------------------------------------------------- */
/* Nota redazionale: contenuto da confermare con Logic prima del go-live.
   Va rimossa in produzione (o lasciata: e' solo un badge). */
.lg-todo {
  display: inline-flex;
  align-items: center;
  gap: var(--lg-space-2);
  font-family: var(--lg-font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lg-red);
  border: 1px dashed var(--lg-red);
  border-radius: var(--lg-radius-pill);
  padding: 4px 12px;
  margin-bottom: var(--lg-space-3);
}
.lg-section--navy .lg-todo { color: #FF8A8E; border-color: #FF8A8E; }

.lg-split--sidebar { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--lg-space-9); align-items: start; }
.lg-grid--auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--lg-space-6); }
.lg-mt-4 { margin-top: var(--lg-space-4); }
.lg-mt-10 { margin-top: var(--lg-space-9); }
.lg-mb-6 { margin-bottom: var(--lg-space-6); }
.lg-maxw-60 { max-width: 60ch; }
.lg-center { text-align: center; margin-inline: auto; }
.lg-media-cover img { width: 100%; height: 100%; object-fit: cover; }

/* Ancora invisibile per il salto da subnav */
.lg-anchor-target { display: block; height: 0; scroll-margin-top: calc(var(--lg-header-h) + 16px); }


/* -------------------------------------------------------------------------
   20. RESPONSIVE
   ------------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .lg-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .lg-split--sticky-left { grid-template-columns: minmax(0, 1fr); }
    .lg-logogrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  :root { --lg-radius-2xl: 48px; --lg-radius-xl: 32px; }
  .lg-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg-hero__meta { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .lg-header__nav { display: none; }
  .lg-header__burger {
    display: inline-flex; align-items: center; justify-content: center;
    margin-left: auto; width: 44px; height: 44px;
    border-radius: var(--lg-radius-pill);
    border: 1px solid rgba(37,69,118,0.2);
    background: transparent; cursor: pointer; color: var(--lg-navy);
  }
   .lg-pagehero__grid { grid-template-columns: 1fr; gap: var(--lg-space-6); }
  .lg-split--sidebar { grid-template-columns: 1fr; gap: var(--lg-space-6); }
  .lg-subnav { position: static; flex-direction: row; flex-wrap: wrap; }
  .lg-subnav__title { width: 100%; }
  .lg-newsfeature { grid-template-columns: 1fr; padding: var(--lg-space-6); gap: var(--lg-space-6); }
  .lg-newsgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg-joblist a { grid-template-columns: minmax(0, 1fr) auto; row-gap: var(--lg-space-2); }
  .lg-joblist__meta { grid-column: 1 / 2; }
}

@media (max-width: 768px) {
  :root { --lg-radius-2xl: 32px; --lg-radius-xl: 24px; --lg-radius-lg: 20px; }
  .lg-grid--2,
  .lg-grid--3,
  .lg-grid--4,
  .lg-split,
  .lg-ctabanner,
  .lg-section-head--split,
  .lg-footer__grid { grid-template-columns: minmax(0, 1fr); }
  .lg-readout { grid-template-columns: minmax(0, 1fr); gap: var(--lg-space-5); }
  .lg-numlist__item { grid-template-columns: minmax(0, 1fr); gap: var(--lg-space-3); }
  .lg-pullquote { padding-left: var(--lg-space-4); max-width: none; }
  .lg-appcard { min-height: 340px; }
  .lg-hero__media { aspect-ratio: 4 / 3; }
  .lg-logogrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg-newsgrid { grid-template-columns: 1fr; }
  .lg-form { grid-template-columns: 1fr; }
  .lg-timeline::before { left: 6px; }
  .lg-timeline__item { grid-template-columns: 1fr; gap: var(--lg-space-2); padding-left: var(--lg-space-6); }
  .lg-timeline__body { padding-left: 0; }
  .lg-timeline__body::before { left: -26px; }
  .lg-equipment li { width: 100%; }
  .lg-spectable table { min-width: 0; }
  .lg-spectable th, .lg-spectable td { padding: var(--lg-space-3); }
  .lg-spectable td:first-child { width: 42%; }
}

/* -------------------------------------------------------------------------
   21. MOTION — fade-in sobrio (equivalente CSS dei Motion Effects Elementor)
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .lg-reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity var(--lg-dur-slow) var(--lg-ease),
                transform var(--lg-dur-slow) var(--lg-ease);
  }
  .lg-reveal.is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .lg-section *, .lg-header * { animation: none !important; transition: none !important; }
  .lg-reveal { opacity: 1; transform: none; }
}

/* -------------------------------------------------------------------------
   22. OVERRIDE ELEMENTOR
   Neutralizza padding/margin di default dei container quando ospitano
   una sezione .lg-section, così il CSS qui sopra governa da solo il layout.
   ------------------------------------------------------------------------- */
.elementor-widget-html > .elementor-widget-container > .lg-section,
.elementor-widget-html > .lg-section { width: 100%; }

.e-con.lg-con,
.elementor-section.lg-con { padding: 0 !important; }

.lg-con > .e-con-inner { max-width: none; padding: 0; }/* End custom CSS */