/* ngi-tema.css — GENERATO da sorgenti/ngi-tema.css (lì ci sono i commenti). NON modificare qui: modifica il sorgente e lancia python3 sorgenti/genera-tema.py */
:root {
    --bg: #FAFAF8;
    --bg-elev: #FFFFFF;
    --bg-card: #FFFFFF;
    --surface: #F3F2EE;
    --surface2: rgba(26,31,36,0.04);
    --dark: #0F1419;
    --text: #1A1F24;
    --text-2: #3D434C;
    --text-dim: rgba(26,31,36,0.72);
    --muted: #5C6470;
    --text-muted: #5C6470;
    --hairline: rgba(26,31,36,0.10);
    --subtle: rgba(26,31,36,0.08);
    --line-strong: rgba(26,31,36,0.48);
    --gold: #B8924A;
    --gold-text: #846834;
    --gold-titolo: #9E7D40;
    --gold-hi: #C9A460;
    --gold-lo: #B8924E;
    --gold-dim: rgba(184,146,74,0.12);
    --gold-border: rgba(184,146,74,0.22);
    --green: #1B7C59;
    --green-dim: rgba(27,124,89,0.08);
    --green-border: rgba(27,124,89,0.24);
    --success: #1B7C59;
    --error: #B91C1C;
    --error-bg: rgba(185,28,28,0.04);
    --error-border: rgba(185,28,28,0.30);
    --warn: #A8470F;
    --warn-bg: rgba(168,71,15,0.06);
    --warn-border: rgba(168,71,15,0.28);
    --risk-low: #40766D;
    --risk-low-dk: #2C6E63;
    --risk-high: #9F5C32;
    --risk-high-dk: #8C4F26;
    --on-dark: #FAFAF8;
    --on-dark-2: rgba(255,255,255,0.72);
    --on-dark-3: rgba(255,255,255,0.56);
    --on-dark-line: rgba(255,255,255,0.36);
    --on-dark-hair: rgba(255,255,255,0.14);
    --paper: #FFFFFF;
    --line: rgba(26,31,36,0.10);
    --font-display: 'Cormorant Garamond', 'Cormorant ripiego', Georgia, 'Times New Roman', serif;
    --font-testo: 'Lato', 'Lato ripiego', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --font-codice: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
    --fs-display: clamp(2.25rem, 1.35rem + 4.4vw, 5.5rem);
    --fs-h1: clamp(2rem, 1.5rem + 2.2vw, 3.25rem);
    --fs-h2: clamp(1.875rem, 1.3rem + 2.3vw, 3.25rem);
    --fs-h3: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
    --fs-h4: 1.25rem;
    --fs-num: clamp(2.5rem, 1.6rem + 2.2vw, 3.5rem);
    --fs-quote: clamp(1.5rem, 1.2rem + 1vw, 2rem);
    --fs-lead: clamp(1.0625rem, 0.95rem + 0.45vw, 1.25rem);
    --fs-body: clamp(1rem, 0.95rem + 0.2vw, 1.0625rem);
    --fs-read: 1.0625rem;
    --fs-small: 0.875rem;
    --fs-note: 0.8125rem;
    --fs-label: 0.75rem;
    --fs-eyebrow: clamp(0.75rem, 0.7rem + 0.2vw, 0.875rem);
    --font-button: var(--font-testo);
    --fs-button: 0.875rem;
    --fw-button: 700;
    --lh-display: 1.05;  --lh-titolo: 1.1;  --lh-h3: 1.2;  --lh-corpo: 1.65;  --lh-lettura: 1.75;  --lh-stretto: 1.3;
    --tr-display: -0.012em;  --tr-titolo: -0.005em;  --tr-eyebrow: 0.22em;  --tr-label: 0.12em;  --tr-button: 0.12em;  --tr-button-tondo: 0.02em;  --tt-button: uppercase;
    --s-1: 4px;  --s-2: 8px;  --s-3: 12px;  --s-4: 16px;  --s-5: 24px;
    --s-6: 32px; --s-7: 48px; --s-8: 64px;  --s-9: 96px;  --s-10: 128px;
    --section-y: clamp(72px, 40px + 6vw, 136px);
    --gap-titolo: clamp(40px, 24px + 3vw, 64px);
    --gutter: clamp(20px, 4.5vw, 64px);
    --container: 1200px;
    --container-wide: 1296px;
    --container-read: 960px;
    --measure: 62ch;  --measure-read: 68ch;  --measure-narrow: 36em;
    --topbar-h: 72px;
    --r-sm: 2px;
    --r-md: 6px;
    --r-pill: 999px;
    --sh-1: 0 1px 2px rgba(15,20,25,0.04), 0 4px 16px -8px rgba(15,20,25,0.08);
    --sh-2: 0 12px 32px -12px rgba(15,20,25,0.18);
    --sh-3: 0 30px 70px -24px rgba(15,20,25,0.28);
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-io: cubic-bezier(0.65, 0, 0.35, 1);
    --dur-1: 150ms;
    --dur-2: 250ms;
    --dur-3: 450ms;
    --dur-4: 700ms;
    --focus: #846834;
    --focus-su-scuro: #C9A460;
    --evidenzia: rgba(184,146,74,0.34);
    --evidenzia-alto: 0.72em;
    --dur-pennarello: 900ms;
    --ritardo-pennarello: 550ms;
    --fs-firma: clamp(0.875rem, 0.8rem + 0.15vw, 0.9375rem);
    --tr-firma: 0.16em;
    --fs-attacco: 0.8125rem;
    --tr-attacco: 0.1em;
    --voce-scala: 1.2em;
}
@media (max-width: 768px), (hover: none), (max-height: 480px) {
    :root { --topbar-h: 64px; }
}
@layer ngi-base {
    *, *::before, *::after { box-sizing: border-box; }
    html {
        color-scheme: light;
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
        -webkit-tap-highlight-color: transparent;
        font-synthesis-style: none;
        accent-color: var(--gold-text);
    }
    a, button, input, select, textarea, label, summary { touch-action: manipulation; }
    input, textarea { caret-color: var(--gold-text); }
    ::selection { background: rgba(184,146,74,0.26); color: var(--text); }
    :focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
    .ngi-su-scuro :focus-visible, .ngi-footer :focus-visible, .site-footer :focus-visible, .vsl-frame :focus-visible {
        outline-color: var(--focus-su-scuro);
    }
    h1, h2, h3, blockquote { text-wrap: balance; }
    p, li, dd, figcaption { text-wrap: pretty; }
    @keyframes fadeUp {
        from { opacity: 0; transform: translateY(16px); }
        to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes ngi-gira { to { transform: rotate(360deg); } }
    [hidden] { display: none !important; }
    @media (prefers-reduced-motion: reduce) {
        *, *::before, *::after {
            animation-duration: 0.01ms !important;
            animation-delay: 0ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0.01ms !important;
            transition-delay: 0ms !important;
            scroll-behavior: auto !important;
        }
    }
    @media print {
        .ngi-topbar, .ngi-drawer, .ngi-footer:not(.ngi-footer--mini), .ngi-salta, .ngi-lettura__indice { display: none !important; }
        body { background: #fff !important; color: #000 !important; }
        h1, h2, h3, h4 { break-after: avoid; page-break-after: avoid; }
    }
}
.ngi-pagina {
    margin: 0;
    background: var(--bg);
    color: var(--text-2);
    font: 400 var(--fs-body)/var(--lh-corpo) var(--font-testo);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-kerning: normal;
}
html:has(> body.ngi-pagina--ancore) { scroll-padding-top: calc(var(--topbar-h) + 16px); }
.ngi-display, .ngi-h1, .ngi-h2, .ngi-h3, .ngi-h4 {
    margin: 0;
    font-family: var(--font-display);
    color: var(--text);
    font-variant-numeric: lining-nums;
    text-wrap: balance;
}
.ngi-display { font-size: var(--fs-display); font-weight: 300; line-height: var(--lh-display); letter-spacing: var(--tr-display); }
.ngi-h1      { font-size: var(--fs-h1);      font-weight: 300; line-height: var(--lh-titolo);  letter-spacing: -0.01em; }
.ngi-h2      { font-size: var(--fs-h2);      font-weight: 300; line-height: var(--lh-titolo);  letter-spacing: var(--tr-titolo); }
.ngi-h3      { font-size: var(--fs-h3);      font-weight: 400; line-height: var(--lh-h3); }
.ngi-h4      { font-size: var(--fs-h4);      font-weight: 500; line-height: 1.25; }
:is(.ngi-display, .ngi-h1, .ngi-h2, .ngi-h3) em { font-style: italic; color: var(--gold-titolo); }
.ngi-su-scuro :is(.ngi-display, .ngi-h1, .ngi-h2, .ngi-h3) { color: var(--on-dark); }
.ngi-su-scuro :is(.ngi-display, .ngi-h1, .ngi-h2, .ngi-h3) em { color: var(--gold-hi); }
.ngi-lead { margin: 0; max-width: var(--measure-narrow); font: 400 var(--fs-lead)/1.55 var(--font-testo); color: var(--text-2); text-wrap: pretty; }
.ngi-testo { margin: 0; max-width: var(--measure); font: 400 var(--fs-body)/var(--lh-corpo) var(--font-testo); color: var(--text-2); text-wrap: pretty; }
.ngi-testo + .ngi-testo { margin-top: 1em; }
.ngi-piccolo { font: 400 var(--fs-small)/1.5 var(--font-testo); color: var(--muted); }
.ngi-nota { font: 400 var(--fs-note)/1.7 var(--font-testo); color: var(--muted); }
.ngi-etichetta { font: 700 var(--fs-label)/var(--lh-stretto) var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--muted); }
.ngi-num { font-family: var(--font-display); font-weight: 400; font-size: var(--fs-num); line-height: 1; color: var(--text); font-variant-numeric: lining-nums tabular-nums; }
.ngi-su-scuro :is(.ngi-lead, .ngi-testo) { color: var(--on-dark-2); }
.ngi-su-scuro :is(.ngi-piccolo, .ngi-nota, .ngi-etichetta) { color: var(--on-dark-3); }
.ngi-contenitore { width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.ngi-contenitore--largo { max-width: calc(var(--container-wide) + 2 * var(--gutter)); }
.ngi-contenitore--lettura { max-width: calc(var(--container-read) + 2 * var(--gutter)); }
.ngi-sezione { padding-block: var(--section-y); }
.ngi-sezione--superficie { background: var(--surface); }
.ngi-sezione--scura, .ngi-su-scuro { background: var(--dark); color: var(--on-dark-2); }
.ngi-filetto { border: 0; height: 1px; margin: 0; background: var(--hairline); }
.ngi-filetto--oro { background: var(--gold-border); }
.ngi-griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-7) 24px; }
@media (min-width: 768px)  { .ngi-griglia { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ngi-griglia { grid-template-columns: repeat(12, minmax(0, 1fr)); } }
.ngi-griglia > .ngi-col-etichetta, .ngi-griglia > .ngi-col-contenuto { grid-column: 1 / -1; }
@media (min-width: 1024px) {
    .ngi-griglia > .ngi-col-etichetta { grid-column: 1 / span 4; align-self: start; }
    .ngi-griglia > .ngi-col-contenuto { grid-column: 5 / -1; }
    .ngi-col-etichetta--ferma { position: sticky; top: calc(var(--topbar-h) + 32px); }
}
.ngi-vh {
    position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important;
    padding: 0 !important; border: 0 !important; clip-path: inset(50%) !important; overflow: hidden !important;
    white-space: nowrap !important;
}
.ngi-icona { width: 16px; height: 16px; flex: none; display: inline-block; vertical-align: -0.15em; }
.ngi-salta {
    position: absolute; left: 16px; top: -200px; z-index: 2000;
    padding: 12px 16px; border-radius: var(--r-sm);
    background: var(--bg-elev); color: var(--text); box-shadow: var(--sh-2);
    font: 700 var(--fs-small)/1 var(--font-testo); text-decoration: none;
}
.ngi-salta:focus, .ngi-salta:focus-visible { top: 12px; }
.ngi-btn {
    --btn-h: 52px;
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    box-sizing: border-box; min-height: var(--btn-h); max-width: 100%;
    margin: 0; padding: 0 28px;
    border: 1px solid transparent; border-radius: var(--r-sm);
    background: transparent; color: var(--text);
    font-family: var(--font-button); font-size: var(--fs-button); font-weight: var(--fw-button); line-height: 1;
    letter-spacing: var(--tr-button); text-transform: var(--tt-button); text-decoration: none; white-space: nowrap;
    font-variant-numeric: lining-nums;
    cursor: pointer; -webkit-appearance: none; appearance: none; user-select: none;
    transition: background-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease),
                border-color var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);
}
@media (min-width: 768px) { .ngi-btn { --btn-h: 48px; } }
.ngi-btn:active { transform: translateY(1px); }
.ngi-btn__freccia { width: 14px; height: 14px; flex: none; transition: transform var(--dur-2) var(--ease); }
.ngi-btn:hover .ngi-btn__freccia { transform: translateX(4px); }
.ngi-btn__icona--avanti { transition: transform var(--dur-2) var(--ease); }
.ngi-btn:hover .ngi-btn__icona--avanti { transform: translateX(3px); }
.ngi-btn__freccia--indietro { transform: scaleX(-1); }
.ngi-btn:hover .ngi-btn__freccia--indietro { transform: scaleX(-1) translateX(4px); }
.ngi-btn__icona { width: 18px; height: 18px; flex: none; }
.ngi-btn__icona--wa { color: #1FA855; }
.ngi-btn--oro .ngi-btn__icona--wa { color: currentColor; }
.ngi-btn--oro { background: var(--gold); border-color: var(--gold); color: var(--text); }
.ngi-btn--oro:hover { background: var(--dark); border-color: var(--dark); color: var(--gold-hi); }
.ngi-btn--scuro { background: var(--dark); border-color: var(--dark); color: var(--bg); }
.ngi-btn--scuro:hover { background: var(--text); border-color: var(--text); color: var(--gold-hi); }
@media print { .ngi-btn--scuro { background: none !important; border-color: #000 !important; color: #000 !important; } }
.ngi-btn--contorno { background: transparent; border-color: var(--line-strong); color: var(--text); }
.ngi-btn--contorno:hover { background: var(--surface2); border-color: var(--text); }
.ngi-btn--su-scuro { background: transparent; border-color: var(--on-dark-line); color: var(--on-dark); }
.ngi-btn--su-scuro:hover { border-color: var(--gold-hi); color: var(--gold-hi); }
.ngi-btn--su-scuro:focus-visible { outline-color: var(--focus-su-scuro); }
.ngi-su-scuro .ngi-btn--oro:hover { background: var(--gold-hi); border-color: var(--gold-hi); color: var(--dark); }
.ngi-su-scuro .ngi-btn--oro:focus-visible { outline-color: var(--focus-su-scuro); }
.ngi-btn--sm { --btn-h: 44px; padding: 0 18px; font-size: var(--fs-button); }
.ngi-btn--pieno { display: flex; width: 100%; }
@media (max-width: 419px) { .ngi-btn--pieno-telefono { display: flex; width: 100%; } }
.ngi-btn:disabled, .ngi-btn[aria-disabled="true"] {
    background: var(--surface); border-color: var(--hairline); color: var(--muted);
    cursor: not-allowed; transform: none;
}
.ngi-btn:disabled .ngi-btn__freccia, .ngi-btn[aria-disabled="true"] .ngi-btn__freccia { transform: none; }
.ngi-btn[aria-busy="true"] { cursor: progress; }
.ngi-btn__spinner {
    width: 14px; height: 14px; flex: none; border-radius: 50%;
    border: 1.5px solid currentColor; border-right-color: transparent;
    animation: ngi-gira 0.8s linear infinite;
}
.ngi-btn:not([aria-busy="true"]) .ngi-btn__spinner { display: none; }
.ngi-link {
    color: var(--text);
    text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em;
    text-decoration-color: rgba(184,146,74,0.6);
    transition: color var(--dur-1) var(--ease), text-decoration-color var(--dur-1) var(--ease);
}
.ngi-link:hover { color: var(--gold-text); text-decoration-color: var(--gold); }
.ngi-link--oro { color: var(--gold-text); }
.ngi-su-scuro .ngi-link, .ngi-link--su-scuro { color: var(--on-dark); text-decoration-color: rgba(201,164,96,0.55); }
.ngi-su-scuro .ngi-link:hover, .ngi-link--su-scuro:hover { color: var(--gold-hi); text-decoration-color: var(--gold-hi); }
.ngi-link--con-freccia { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; font: 700 var(--fs-label)/1 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase; }
.ngi-link--con-freccia .ngi-btn__freccia { width: 14px; height: 14px; }
.ngi-eyebrow {
    display: inline-flex; align-items: center; gap: 12px; margin: 0;
    font-family: var(--font-display); font-size: var(--fs-eyebrow); font-weight: 600; line-height: 1.2;
    letter-spacing: var(--tr-eyebrow); text-transform: uppercase;
    color: var(--gold-text);
}
.ngi-eyebrow::before { content: ""; width: 24px; height: 1px; background: var(--gold); flex: none; }
.ngi-eyebrow--centro::after { content: ""; width: 24px; height: 1px; background: var(--gold); flex: none; }
.ngi-su-scuro .ngi-eyebrow, .ngi-eyebrow--su-scuro { color: var(--gold); }
.ngi-sez-header { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin: 0 0 var(--gap-titolo); max-width: 46rem; }
.ngi-sez-header > .ngi-eyebrow + :is(.ngi-h2, .ngi-h1, .ngi-display) { margin-top: 0; }
.ngi-sez-header > :is(.ngi-h2, .ngi-h1, .ngi-display) + .ngi-lead { margin-top: 4px; }
.ngi-sez-header--centro { align-items: center; text-align: center; margin-inline: auto; }
.ngi-sez-header--centro .ngi-lead { margin-inline: auto; }
.ngi-card {
    position: relative; box-sizing: border-box;
    padding: clamp(24px, 3vw, 40px);
    background: var(--bg-elev); border: 1px solid var(--hairline); border-radius: var(--r-md);
}
.ngi-card--galleggia { box-shadow: var(--sh-1); }
.ngi-card--superficie { background: var(--surface); border-color: transparent; }
a.ngi-card, .ngi-card--cliccabile { display: block; color: inherit; text-decoration: none; transition: border-color var(--dur-2) var(--ease), transform var(--dur-2) var(--ease); }
a.ngi-card:hover, .ngi-card--cliccabile:hover { border-color: var(--gold-border); transform: translateY(-2px); }
.ngi-card__titolo { margin: 0 0 10px; font: 500 var(--fs-h4)/1.25 var(--font-display); color: var(--text); }
.ngi-card__testo { margin: 0; font: 400 var(--fs-body)/var(--lh-corpo) var(--font-testo); color: var(--text-2); }
.ngi-card__meta { display: block; margin-bottom: 18px; }
.ngi-colonne { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.ngi-colonne > * { padding: 28px 0; border-top: 1px solid var(--hairline); }
@media (min-width: 768px) {
    .ngi-colonne { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ngi-colonne > * { padding: 0 clamp(20px, 2.5vw, 40px); border-top: 0; border-left: 1px solid var(--hairline); }
    .ngi-colonne > :first-child { padding-left: 0; border-left: 0; }
}
.ngi-controllo {
    display: flex; align-items: flex-start; gap: 10px; margin: 14px 0 0; max-width: 42ch;
    font: 400 var(--fs-small)/1.5 var(--font-testo); color: var(--text-2);
}
.ngi-controllo svg { width: 16px; height: 16px; flex: none; margin-top: 2px; color: var(--gold-text); }
.ngi-su-scuro .ngi-controllo { color: var(--on-dark-2); }
.ngi-su-scuro .ngi-controllo svg { color: var(--gold-hi); }
.ngi-controllo--centro { margin-inline: auto; justify-content: center; text-align: left; }
@media (min-width: 600px) { .ngi-controllo--centro { max-width: none; } }
@media (max-width: 599px) {
    .ngi-controllo--centro { display: block; text-align: center; text-wrap: balance; }
    .ngi-controllo--centro svg { display: inline-block; margin: 0 6px 0 0; vertical-align: -3px; }
}
.ngi-fatti { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ngi-fatti > li {
    display: inline-flex; align-items: center; gap: 10px;
    font: 700 var(--fs-label)/1.4 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase;
    color: var(--text-2);
}
.ngi-fatti > li svg { width: 16px; height: 16px; flex: none; color: var(--gold-text); }
@media (min-width: 768px) {
    .ngi-fatti { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
    .ngi-fatti > li + li { position: relative; }
    .ngi-fatti > li + li::before { content: ""; position: absolute; left: -14px; top: 50%; width: 1px; height: 16px; margin-top: -8px; background: var(--hairline); }
    .ngi-fatti--centro { justify-content: center; }
}
.ngi-numeri { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
.ngi-numeri > * { padding: 24px 0; border-top: 1px solid var(--hairline); }
@media (min-width: 720px) {
    .ngi-numeri { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
    .ngi-numeri > * { padding: 4px 28px; border-top: 0; border-left: 1px solid var(--hairline); }
    .ngi-numeri > :first-child { padding-left: 0; border-left: 0; }
}
.ngi-numeri .ngi-num { display: block; margin-bottom: 12px; }
.ngi-numeri .ngi-etichetta { display: block; margin-bottom: 8px; }
.ngi-numeri .ngi-piccolo { display: block; color: var(--text-2); }
.ngi-citazione { margin: 0; max-width: 34em; }
.ngi-citazione blockquote { margin: 0; padding: 0; }
.ngi-citazione blockquote::before { content: ""; display: block; width: 40px; height: 1px; margin-bottom: 24px; background: var(--gold); }
.ngi-citazione blockquote p {
    margin: 0; font-family: var(--font-display); font-style: italic; font-weight: 400;
    font-size: var(--fs-quote); line-height: 1.35; color: var(--text); text-wrap: balance;
}
.ngi-citazione figcaption, .ngi-citazione cite {
    display: block; margin-top: 20px; font: 600 var(--fs-firma)/1.4 var(--font-display); font-style: normal;
    letter-spacing: var(--tr-firma); text-transform: uppercase; color: var(--text-2);
}
.ngi-citazione--pannello { padding: 32px; background: var(--bg-elev); border-radius: var(--r-sm); box-shadow: var(--sh-2); }
.ngi-campo { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 0 0 24px; }
.ngi-campo__etichetta { font: 700 var(--fs-attacco)/1.4 var(--font-testo); letter-spacing: var(--tr-attacco); text-transform: uppercase; color: var(--text-2); }
.ngi-campo__facoltativo { font-weight: 400; color: var(--muted); }
.ngi-input {
    box-sizing: border-box; width: 100%; min-height: 52px; margin: 0; padding: 0 16px;
    font: 400 1rem/1.4 var(--font-testo);
    color: var(--text); background: var(--bg-elev);
    border: 1px solid var(--line-strong); border-radius: var(--r-sm);
    -webkit-appearance: none; appearance: none;
    transition: border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);
}
@media (min-width: 768px) { .ngi-input { min-height: 48px; } }
textarea.ngi-input { min-height: 128px; padding: 14px 16px; line-height: 1.55; resize: vertical; }
select.ngi-input {
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231A1F24' stroke-width='1.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 16px center;
}
.ngi-input::placeholder { color: var(--muted); opacity: 1; }
.ngi-input:hover { border-color: var(--text-2); }
.ngi-input:focus, .ngi-input:focus-visible {
    border-color: var(--gold-text); box-shadow: 0 0 0 3px rgba(184,146,74,0.20);
    outline: 2px solid transparent; outline-offset: 2px;
}
.ngi-campo__aiuto { margin: -2px 0 0; font: 400 var(--fs-small)/1.5 var(--font-testo); color: var(--muted); }
.ngi-campo__errore { display: none; align-items: flex-start; gap: 8px; margin: 0; font: 400 var(--fs-small)/1.45 var(--font-testo); color: var(--error); }
.ngi-campo__errore.show, .ngi-campo__errore--visibile { display: flex; }
.ngi-campo__errore::before {
    content: ""; width: 16px; height: 16px; flex: none; margin-top: 2px; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='7' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M8 4.5v4.5' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='11.4' r='1' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='7' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M8 4.5v4.5' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='11.4' r='1' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (forced-colors: active) { .ngi-campo__errore::before { background: CanvasText; } }
.ngi-campo:has(.ngi-campo__errore.show) .ngi-input, .ngi-campo:has(.field-error.show) .ngi-input,
.ngi-input.invalid, .ngi-campo--errore .ngi-input { border-color: var(--error); }
.ngi-campo:has(.ngi-campo__errore.show) .ngi-input:focus, .ngi-input.invalid:focus { box-shadow: 0 0 0 3px rgba(185,28,28,0.16); }
.ngi-scelte { min-width: 0; margin: 0 0 24px; padding: 0; border: 0; }
.ngi-scelte > legend {
    float: left; width: 100%; margin: 0 0 14px; padding: 0;
    font: 700 var(--fs-body)/1.45 var(--font-testo); color: var(--text);
}
.ngi-scelte > legend + * { clear: both; }
.ngi-scelte__elenco { display: flex; flex-direction: column; gap: 10px; }
.ngi-scelta {
    position: relative; box-sizing: border-box;
    display: flex; align-items: center; gap: 14px; min-height: 56px; margin: 0; padding: 14px 18px;
    font: 400 var(--fs-body)/1.45 var(--font-testo); color: var(--text);
    background: var(--bg-elev); border: 1px solid rgba(26,31,36,0.16); border-radius: var(--r-sm);
    cursor: pointer; user-select: none;
    transition: border-color var(--dur-1) var(--ease), background-color var(--dur-1) var(--ease);
}
.ngi-scelta > input[type="radio"], .ngi-scelta > input[type="checkbox"] {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
    clip-path: inset(50%); overflow: hidden; white-space: nowrap; opacity: 0;
    -webkit-appearance: none; appearance: none;
}
.ngi-scelta__punto {
    position: relative; width: 18px; height: 18px; flex: none; box-sizing: border-box;
    border: 1.5px solid var(--line-strong); border-radius: 50%; background: var(--bg-elev);
    transition: border-color var(--dur-1) var(--ease);
}
.ngi-scelta__punto::after {
    content: ""; position: absolute; inset: 3px; border-radius: 50%;
    background: var(--gold-text); transform: scale(0); transition: transform var(--dur-1) var(--ease);
}
.ngi-scelta:hover { border-color: var(--text-2); }
.ngi-scelta:has(input:checked) { border-color: var(--gold); background: var(--gold-dim); }
.ngi-scelta:has(input:checked) .ngi-scelta__punto { border-color: var(--gold-text); }
.ngi-scelta:has(input:checked) .ngi-scelta__punto::after { transform: scale(1); }
.ngi-scelta:has(input:focus-visible) { outline: 2px solid var(--focus); outline-offset: 2px; }
.ngi-scelte--errore .ngi-scelta, .ngi-scelte:has(.field-error.show) .ngi-scelta, .ngi-scelte:has(.ngi-campo__errore.show) .ngi-scelta { border-color: var(--error-border); }
@media (forced-colors: active) {
    .ngi-scelta { border: 1px solid CanvasText; }
    .ngi-scelta:has(input:checked) { border: 3px solid Highlight; padding: 12px 16px; }
    .ngi-scelta__punto { forced-color-adjust: none; border-color: CanvasText; background: Canvas; }
    .ngi-scelta:has(input:checked) .ngi-scelta__punto { border-color: Highlight; }
    .ngi-scelta:has(input:checked) .ngi-scelta__punto::after { forced-color-adjust: none; background: Highlight; }
    .ngi-btn { border: 1px solid ButtonText; }
    .ngi-btn:disabled, .ngi-btn[aria-disabled="true"] { border-color: GrayText; color: GrayText; }
}
.ngi-azioni { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 32px; }
.ngi-azioni > .ngi-azioni__spinta { margin-right: auto; }
@media (max-width: 419px) {
    .ngi-azioni { flex-direction: column-reverse; align-items: stretch; }
    .ngi-azioni > .ngi-btn { display: flex; width: 100%; }
    .ngi-azioni > .ngi-azioni__spinta { margin-right: 0; }
}
.ngi-callout {
    box-sizing: border-box; margin: 0; padding: 22px 24px;
    background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--r-md);
    color: var(--text-2); font: 400 var(--fs-body)/1.6 var(--font-testo);
}
.ngi-callout__titolo { margin: 0 0 6px; font: 500 1.375rem/1.25 var(--font-display); color: var(--text); }
.ngi-callout--errore { background: var(--error-bg); border-color: var(--error-border); }
.ngi-callout--rischio { background: var(--warn-bg); border-color: var(--warn-border); }
.ngi-callout--rischio .ngi-callout__titolo { color: var(--warn); }
.ngi-callout--oro { background: var(--bg-elev); border-color: var(--gold-border); }
.ngi-marchio { display: inline-flex; align-items: center; flex: none; min-height: 44px; color: var(--text); text-decoration: none; transition: opacity var(--dur-2) var(--ease); }
.ngi-marchio:hover { opacity: 0.8; }
.ngi-marchio img, .ngi-marchio svg { display: block; width: auto; height: 32px; }
.ngi-marchio--footer img, .ngi-marchio--footer svg { height: 32px; }
.ngi-topbar {
    position: sticky; top: 0; z-index: 100; box-sizing: border-box;
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
    height: var(--topbar-h); padding: 0 var(--gutter);
    background: rgba(250,250,248,0.86);
    -webkit-backdrop-filter: blur(12px) saturate(160%); backdrop-filter: blur(12px) saturate(160%);
    border-bottom: 1px solid transparent;
    transition: border-color var(--dur-3) var(--ease), background-color var(--dur-3) var(--ease);
}
.ngi-topbar.scrolled, .ngi-topbar--compatta { border-bottom-color: var(--hairline); }
.ngi-topbar.scrolled, .ngi-topbar--compatta { background: rgba(250,250,248,0.96); }
.ngi-topbar__sx { display: flex; align-items: center; gap: 16px; min-width: 0; }
.ngi-topbar__dx { display: flex; align-items: center; gap: 12px; flex: none; }
.ngi-topbar__sep { width: 1px; height: 18px; flex: none; background: rgba(26,31,36,0.16); }
.ngi-topbar__marchio img { height: 40px; }
.ngi-topbar__marchio .ngi-marchio__segno { display: none; }
@media (max-width: 768px), (hover: none), (max-height: 480px) { .ngi-topbar__marchio img { height: 32px; } }
@media (max-width: 379px) {
    .ngi-topbar__marchio .ngi-marchio__intero { display: none; }
    .ngi-topbar__marchio .ngi-marchio__segno { display: block; height: 26px; }
}
@media (max-width: 379px) {
    .ngi-topbar--compatta:not(:has(> :nth-child(2))) .ngi-topbar__marchio .ngi-marchio__intero { display: block; }
    .ngi-topbar--compatta:not(:has(> :nth-child(2))) .ngi-topbar__marchio .ngi-marchio__segno { display: none; }
}
.ngi-topbar--compatta { padding-inline: max(var(--gutter), calc((100% - var(--topbar-contenuto, 100%)) / 2)); }
body:has(.approval-header) { --topbar-contenuto: 1040px; }
body:has(.unq-main) { --topbar-contenuto: 1120px; }
body:has(#qualForm) { --topbar-contenuto: 640px; }
@media (min-width: 1024px) { body:has(#qualForm) { --topbar-contenuto: 1120px; } }
body.onb, body.unsub { --topbar-contenuto: var(--container); }
body:has(.ngi-lettura) { --topbar-contenuto: var(--container-read); }
.ngi-topbar__gc {
    min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-family: var(--font-display); font-size: 0.92rem; font-weight: 600; letter-spacing: 3.5px;
    color: var(--gold-text); text-decoration: none; transition: color var(--dur-2) var(--ease);
}
.ngi-topbar__gc:hover { color: var(--text); }
@media (min-width: 720px) and (max-width: 860px) { .ngi-topbar__gc { letter-spacing: 2px; } }
@media (max-width: 719px) { .ngi-topbar__sep, .ngi-topbar__gc { display: none; } }
@media (max-width: 768px) { .ngi-topbar__nascondi-stretto { display: none; } }
@media (max-width: 479px) {
    .ngi-topbar--piena .ngi-topbar__marchio .ngi-marchio__intero { display: none; }
    .ngi-topbar--piena .ngi-topbar__marchio .ngi-marchio__segno { display: block; height: 26px; }
}
@media (max-width: 359px) {
    .ngi-topbar { gap: 12px; }
    .ngi-topbar__dx { gap: 6px; }
    .ngi-topbar .ngi-btn--sm { padding: 0 12px; }
}
.ngi-topbar__ritorno {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; min-width: 44px; padding: 0 4px; white-space: nowrap;
    font: 700 var(--fs-label)/1 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase;
    color: var(--text); text-decoration: none; transition: color var(--dur-1) var(--ease);
}
.ngi-topbar__ritorno:hover { color: var(--gold-text); }
.ngi-topbar__ritorno .ngi-btn__freccia { transform: scaleX(-1); }
.ngi-progresso {
    position: fixed; top: 0; left: 0; right: 0; z-index: 300; height: 2px;
    background: var(--gold); transform-origin: left; transform: scaleX(0);
}
.ngi-hamburger {
    display: none; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
    min-width: 44px; min-height: 44px; padding: 10px 8px; margin: 0;
    background: none; border: 0; border-radius: var(--r-sm); cursor: pointer; color: var(--text);
}
.ngi-hamburger span { display: block; width: 22px; height: 1.5px; background: currentColor; transition: transform var(--dur-3) var(--ease), opacity var(--dur-2) var(--ease); }
.ngi-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.ngi-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ngi-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
@media (forced-colors: active) { .ngi-hamburger span { forced-color-adjust: none; background: ButtonText; } }
@media (max-width: 768px), (hover: none), (max-height: 480px) {
    .ngi-hamburger[aria-expanded="true"]::after {
        content: ""; position: absolute; left: 0; right: 0; top: 100%; height: calc(100vh - var(--topbar-h)); height: calc(100dvh - var(--topbar-h));
        background: rgba(15,20,25,0.35); cursor: default;
        animation: ngi-velo var(--dur-2) var(--ease) both;
    }
}
@keyframes ngi-velo { from { opacity: 0; } to { opacity: 1; } }
.ngi-drawer {
    display: none; position: fixed; top: var(--topbar-h); left: 0; right: 0; z-index: 101; box-sizing: border-box;
    max-height: calc(100vh - var(--topbar-h)); max-height: calc(100dvh - var(--topbar-h)); overflow-y: auto;
    padding: 8px var(--gutter) 28px; background: var(--bg); overscroll-behavior: contain;
    border-bottom: 1px solid var(--hairline);
    box-shadow: var(--sh-2);
}
.ngi-drawer.open { display: block; animation: fadeUp var(--dur-2) var(--ease) both; }
.ngi-drawer a:not(.ngi-btn) {
    display: flex; align-items: center; min-height: 56px; box-sizing: border-box;
    font: 400 1.625rem/1.2 var(--font-display); color: var(--text); text-decoration: none;
    border-bottom: 1px solid var(--hairline); transition: color var(--dur-1) var(--ease);
}
.ngi-drawer a:not(.ngi-btn):hover { color: var(--gold-text); }
.ngi-drawer .ngi-btn { margin-top: 24px; }
body:has(.ngi-topbar .ngi-btn--oro) .ngi-drawer .ngi-btn--oro { display: none; }
.ngi-topbar:has(.ngi-hamburger[aria-expanded="true"]) .ngi-topbar__marchio { opacity: 1; visibility: visible; }
@media (max-width: 768px), (hover: none), (max-height: 480px) { .ngi-hamburger { display: flex; } }
@media (min-width: 769px) and (hover: hover) and (min-height: 481px) { .ngi-drawer { display: none !important; } }
.ngi-footer {
    position: relative; box-sizing: border-box;
    padding: clamp(56px, 6vw, 88px) var(--gutter) clamp(32px, 4vw, 48px);
    background: var(--dark); color: var(--on-dark-2);
    font: 400 var(--fs-small)/1.6 var(--font-testo);
}
.ngi-footer__dentro { max-width: var(--footer-contenuto, var(--topbar-contenuto, var(--container))); margin: 0 auto; }
.ngi-footer__identita:empty { display: none; }
.ngi-footer__identita { margin: 0 0 32px; padding-bottom: 24px; border-bottom: 1px solid var(--on-dark-hair); color: var(--on-dark-2); }
.ngi-footer__alto { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; padding-bottom: 40px; border-bottom: 1px solid var(--on-dark-hair); }
@media (min-width: 900px) { .ngi-footer__alto { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 48px; } }
.ngi-footer .ngi-marchio img { height: 40px; }
@media (max-width: 767px) { .ngi-footer .ngi-marchio img { height: 32px; } }
@media (forced-colors: active) and (prefers-color-scheme: light) {
    img[src="/assets/img/ngi-logo-orizzontale-chiaro.svg"] { content: url(/assets/img/ngi-logo-orizzontale.svg); }
    img[src="/assets/img/ngi-logo-centrato-chiaro.svg"] { content: url(/assets/img/ngi-logo-centrato.svg); }
}
@media (forced-colors: active) and (prefers-color-scheme: dark) {
    img[src="/assets/img/ngi-logo-orizzontale.svg"] { content: url(/assets/img/ngi-logo-orizzontale-chiaro.svg); }
    img[src="/assets/img/ngi-logo-centrato.svg"] { content: url(/assets/img/ngi-logo-centrato-chiaro.svg); }
}
@media (forced-colors: active) { .ngi-footer a svg { color: inherit; } }
.ngi-footer__basso { display: flex; flex-direction: column; gap: 16px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--on-dark-hair); }
@media (min-width: 900px) { .ngi-footer__basso { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; } }
.ngi-footer__alto + .ngi-footer__basso { margin-top: 0; border-top: 0; }
.ngi-footer__titolo {
    display: flex; align-items: center; gap: 12px; margin: 0 0 18px;
    font-family: var(--font-display); font-size: var(--fs-eyebrow); font-weight: 600; line-height: 1.2;
    letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--gold);
}
.ngi-footer__titolo::before { content: ""; width: 24px; height: 1px; background: var(--gold); flex: none; }
.ngi-footer__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 0 24px; }
.ngi-footer__nav a {
    display: inline-flex; align-items: center; min-height: 44px;
    font: 700 var(--fs-label)/1.3 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase;
    color: var(--on-dark-2); text-decoration: none;
    transition: color var(--dur-1) var(--ease);
}
.ngi-footer__nav a:hover { color: var(--gold-hi); }
.ngi-footer__nav a[aria-current="page"] { color: var(--on-dark); text-decoration: underline; text-underline-offset: 0.4em; text-decoration-thickness: 1px; text-decoration-color: var(--gold); }
@media (max-width: 599px) { .ngi-footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; } }
@media (max-width: 359px) { .ngi-footer__nav { grid-template-columns: minmax(0, 1fr); } }
.ngi-footer__chip-elenco { display: flex; flex-wrap: wrap; gap: 10px; }
.ngi-chip {
    display: inline-flex; align-items: center; gap: 10px; min-height: 44px; box-sizing: border-box;
    padding: 0 18px; border: 1px solid var(--on-dark-hair); border-radius: var(--r-pill);
    font: 400 var(--fs-small)/1 var(--font-testo); color: var(--on-dark); text-decoration: none;
    overflow-wrap: anywhere;
    transition: border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease);
}
.ngi-chip svg { width: 16px; height: 16px; flex: none; color: var(--on-dark-3); transition: color var(--dur-2) var(--ease); }
.ngi-chip:hover { border-color: var(--gold-hi); color: var(--gold-hi); }
.ngi-chip:hover svg { color: var(--gold-hi); }
.ngi-footer { --footer-col: 25rem; }
.ngi-footer__avvertenze { max-width: var(--footer-col); padding-top: 32px; }
@media (min-width: 1024px) {
    .ngi-footer__avvertenze { max-width: calc(2 * var(--footer-col) + 48px); column-count: 2; column-gap: 48px; }
    .ngi-footer__avvertenze-titolo { column-span: all; }
    .ngi-footer__alto { grid-template-columns: minmax(0, var(--footer-col)) minmax(0, 1fr); column-gap: 48px; }
}
.ngi-footer__avvertenze-titolo { margin: 0 0 12px; font: 700 var(--fs-label)/1.3 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--on-dark); }
.ngi-footer__avvertenze p { margin: 0 0 12px; font: 400 var(--fs-note)/1.7 var(--font-testo); color: var(--on-dark-2); text-align: left; }
.ngi-footer__avvertenze strong { color: var(--on-dark); font-weight: 700; }
.ngi-footer__copy { margin: 0; font: 400 var(--fs-label)/1.6 var(--font-testo); color: var(--on-dark-3); }
.ngi-footer__avvertenze + .ngi-footer__copy { margin-top: 24px; }
.ngi-footer--mini { padding-block: 28px; }
.ngi-footer--mini .ngi-footer__dentro { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.ngi-footer--mini .ngi-footer__copy { margin: 0; }
.legal-footer__id { display: grid; gap: 14px; justify-items: start; }
.legal-footer__id p, .legal-footer__contatto p { margin: 0; font: 400 var(--fs-small)/1.5 var(--font-testo); color: var(--on-dark-2); }
.legal-footer__id strong { color: var(--on-dark); font-weight: 700; }
.legal-footer__contatto { display: grid; gap: 12px; justify-items: start; }
@media (min-width: 900px) { .legal-footer__contatto { justify-items: end; } }
@media print {
    .ngi-footer.ngi-footer--mini { padding: 12pt 0 0; background: none; color: #000; border-top: 1px solid #000; }
    .ngi-footer--mini .ngi-footer__copy { color: #000; }
}
.ngi-lettura { box-sizing: border-box; max-width: calc(var(--container-read) + 2 * var(--gutter)); margin: 0 auto; padding: clamp(40px, 6vw, 88px) var(--gutter) var(--section-y); }
.ngi-lettura__testa { max-width: var(--measure-read); margin-bottom: clamp(32px, 5vw, 56px); }
.ngi-lettura__testa .ngi-h1 { margin-top: 20px; }
.ngi-lettura__meta { margin: 16px 0 0; font: 400 var(--fs-small)/1.5 var(--font-testo); color: var(--muted); text-transform: none; letter-spacing: 0; }
.ngi-lettura__meta strong { font-weight: 700; font-size: var(--fs-label); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--text-2); }
.ngi-lettura__corpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
@media (min-width: 1024px) {
    .ngi-lettura__corpo { grid-template-columns: 220px minmax(0, 1fr); gap: 56px; border-top: 1px solid var(--gold-border); padding-top: 48px; }
    .ngi-lettura:has(.ngi-lettura__indice) > .ngi-lettura__testa { margin-left: calc(220px + 56px); }
    .ngi-lettura__corpo:not(:has(> .ngi-lettura__indice)) { grid-template-columns: minmax(0, 1fr); }
}
.ngi-lettura__indice { font: 400 var(--fs-small)/1.45 var(--font-testo); }
@media (min-width: 1024px) { .ngi-lettura__indice { position: sticky; top: calc(var(--topbar-h) + 24px); align-self: start; max-height: calc(100vh - var(--topbar-h) - 48px); overflow-y: auto; } }
.ngi-lettura__indice details { border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.ngi-lettura__indice summary {
    display: flex; align-items: center; justify-content: space-between; min-height: 48px; cursor: pointer; list-style: none;
    font: 700 var(--fs-label)/1 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--text);
}
.ngi-lettura__indice summary::-webkit-details-marker { display: none; }
.ngi-lettura__indice summary::after { content: ""; width: 8px; height: 8px; margin-right: 4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform var(--dur-2) var(--ease); }
.ngi-lettura__indice details[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.ngi-lettura__indice ol { margin: 0; padding: 4px 0 16px; list-style: none; }
.ngi-lettura__indice a { display: block; padding: 7px 0; color: var(--text-2); text-decoration: none; transition: color var(--dur-1) var(--ease); }
.ngi-lettura__indice a:hover { color: var(--gold-text); }
@media (min-width: 1024px) {
    .ngi-lettura__indice a { padding: 6px 0 6px 14px; border-left: 1px solid var(--hairline); }
    .ngi-lettura__indice a:hover { border-left-color: var(--gold); }
    .ngi-lettura__indice :focus-visible { outline-offset: -2px; }
}
.ngi-lettura__indice-titolo { display: none; }
@supports selector(::details-content) {
    @media (min-width: 1024px) {
        .ngi-lettura__indice details { border: 0; }
        .ngi-lettura__indice details::details-content { content-visibility: visible; display: block; block-size: auto; }
        .ngi-lettura__indice details > summary { display: none; }
        .ngi-lettura__indice-titolo {
            display: block; margin: 0 0 12px;
            font: 700 var(--fs-label)/1 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--text);
        }
    }
}
.ngi-lettura__testo { max-width: none; font: 400 var(--fs-read)/var(--lh-lettura) var(--font-testo); color: var(--text-2); }
.ngi-lettura__testo { overflow-wrap: break-word; }
.ngi-lettura__testo > :not(.ngi-tabella-wrap) { max-width: 32rem; }
.ngi-lettura__testo > * + * { margin-top: 1em; }
.ngi-lettura__testo > p:first-child { font-size: var(--fs-lead); line-height: 1.65; }
.ngi-lettura__testo h2 {
    margin: 2.4em 0 0.6em; scroll-margin-top: 8px;
    font: 400 clamp(1.5rem, 1.2rem + 1vw, 1.875rem)/1.2 var(--font-display); color: var(--text); letter-spacing: -0.005em;
}
.ngi-lettura__testo h2:first-child { margin-top: 0; }
.ngi-lettura__testo h2 .num { color: var(--gold-text); }
.ngi-lettura__testo h3 { margin: 1.8em 0 0.4em; font: 700 var(--fs-read)/1.4 var(--font-testo); color: var(--text); }
.ngi-lettura__testo p { margin-bottom: 0; }
.ngi-lettura__testo ul, .ngi-lettura__testo ol { padding-left: 1.3em; }
.ngi-lettura__testo li + li { margin-top: 0.4em; }
.ngi-lettura__testo li::marker { color: var(--gold-text); }
.ngi-lettura__testo a { color: var(--gold-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.25em; text-decoration-color: rgba(132,104,52,0.45); overflow-wrap: anywhere; }
.ngi-lettura__testo a:hover { text-decoration-color: currentColor; }
.ngi-lettura__testo strong { color: var(--text); font-weight: 700; }
.ngi-lettura__testo em { font-style: normal; color: var(--text); }
.ngi-lettura__testo code, .ngi-codice {
    padding: 0.1em 0.35em; border-radius: var(--r-sm); background: var(--surface);
    font: 400 0.85em/1.4 var(--font-codice); color: var(--text); overflow-wrap: anywhere;
}
.ngi-lettura__testo .ngi-callout { margin-block: 2em; font-size: inherit; line-height: 1.7; }
.ngi-lettura__testo > .ngi-callout:first-child { margin-top: 0; }
.ngi-lettura__testo .ngi-callout strong { color: var(--text); }
.ngi-lettura__testo .ngi-tabella-wrap { margin-block: 1.75em; }
@media print {
    @page { margin: 18mm 16mm; }
    .ngi-lettura { max-width: none; padding: 0; }
    .ngi-lettura__corpo { display: block; border: 0; padding: 0; }
    .ngi-lettura:has(.ngi-lettura__indice) > .ngi-lettura__testa { margin-left: 0; }
    .ngi-lettura__testo { max-width: none; font-size: 11pt; line-height: 1.5; color: #000; }
    .ngi-lettura__testo > :not(.ngi-tabella-wrap) { max-width: none; }
    .ngi-lettura__testo > p:first-child { font-size: 12pt; }
    .ngi-lettura__testo a { color: #000; }
    .ngi-lettura__testo a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; }
    .ngi-lettura .ngi-callout, .ngi-lettura .ngi-tabella tr { break-inside: avoid; }
}
.ngi-tabella-wrap { margin: 1.5em 0; }
.ngi-tabella {
    width: 100%; border-collapse: collapse; font: 400 var(--fs-small)/1.55 var(--font-testo); color: var(--text-2);
    font-variant-numeric: tabular-nums;
}
.ngi-tabella th {
    padding: 12px 16px 12px 0; text-align: left; vertical-align: bottom;
    font: 700 var(--fs-label)/1.3 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--text);
    border-bottom: 1px solid var(--line-strong);
}
.ngi-tabella td { padding: 14px 16px 14px 0; vertical-align: top; border-bottom: 1px solid var(--hairline); }
.ngi-tabella td:last-child, .ngi-tabella th:last-child { padding-right: 0; }
.ngi-tabella th { white-space: nowrap; }
@media (min-width: 600px) { .ngi-tabella td:first-child { color: var(--text); } }
.ngi-tabella--chiavi td:first-child { font-family: var(--font-codice); font-size: var(--fs-note); color: var(--text); }
@media (max-width: 599px) {
    .ngi-tabella, .ngi-tabella tbody, .ngi-tabella tr, .ngi-tabella td { display: block; width: 100%; box-sizing: border-box; }
    .ngi-tabella thead { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .ngi-tabella tr { margin: 0 0 12px; padding: 6px 18px; background: var(--bg-elev); border: 1px solid var(--hairline); border-radius: var(--r-md); }
    .ngi-tabella td { display: grid; grid-template-columns: minmax(84px, 38%) minmax(0, 1fr); gap: 12px; padding: 10px 0; overflow-wrap: anywhere; }
    .ngi-tabella tr td:last-child { border-bottom: 0; }
    .ngi-tabella td::before {
        content: attr(data-label);
        font: 700 var(--fs-label)/1.5 var(--font-testo); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--muted);
    }
}
.ngi-firma {
    font-family: var(--font-display); font-size: var(--fs-firma); font-weight: 600; font-style: normal; line-height: 1.3;
    letter-spacing: var(--tr-firma); text-transform: uppercase; font-variant-numeric: lining-nums;
    color: var(--text-2);
}
.ngi-su-scuro .ngi-firma, .ngi-firma--su-scuro { color: var(--on-dark); }
.ngi-attacco {
    font-family: var(--font-testo); font-size: var(--fs-attacco); font-weight: 700; font-style: normal;
    letter-spacing: var(--tr-attacco); text-transform: uppercase; color: var(--text);
}
.ngi-callout--rischio .ngi-attacco { color: var(--warn); }
.ngi-evidenzia {
    color: var(--text);
    background-color: transparent;
    background-image: linear-gradient(100deg, transparent 0.06em, var(--evidenzia) 0.22em, var(--evidenzia) calc(100% - 0.18em), transparent calc(100% - 0.04em));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 100% var(--evidenzia-alto);
    padding: 0 0.1em; margin: 0 -0.1em;
    white-space: nowrap;
    -webkit-box-decoration-break: clone; box-decoration-break: clone;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
@keyframes ngi-pennarello { from { background-size: 0% var(--evidenzia-alto); } }
@media (prefers-reduced-motion: no-preference) {
    .ngi-evidenzia { animation: ngi-pennarello var(--dur-pennarello) var(--ease-io) var(--ritardo-pennarello) both; }
    .reveal:not(.visible) .ngi-evidenzia { animation-play-state: paused; }
}
@media print { .ngi-evidenzia { animation: none !important; } }
@media (forced-colors: active) { .ngi-evidenzia { forced-color-adjust: none; background: Highlight; color: HighlightText; animation: none; } }
.ngi-voce {
    font-family: var(--font-display); font-style: italic; font-weight: 500;
    font-size: var(--voce-scala); line-height: 1; letter-spacing: 0.005em;
    color: var(--gold-text);
}
.ngi-su-scuro .ngi-voce { color: var(--gold-hi); }
:root {
    --font-inserto: var(--font-testo);
    --tr-inserto: 0.14em;
    --fs-num-passo: clamp(2.25rem, 1.9rem + 1vw, 3rem);
}
.ngi-inserto {
    font-family: var(--font-inserto); font-weight: 700; font-style: normal;
    font-size: clamp(0.875rem, 0.5em, 2rem); line-height: 1;
    letter-spacing: var(--tr-inserto); text-transform: uppercase;
    margin-inline-end: calc(-1 * var(--tr-inserto));
    color: var(--text);
    white-space: nowrap; vertical-align: baseline; font-variant-numeric: lining-nums;
}
.ngi-su-scuro .ngi-inserto { color: var(--on-dark); }
@media (max-width: 1023px) { .ngi-btn--sm { letter-spacing: var(--tr-button-tondo); text-transform: none; } }
@media (max-width: 359px) { :root { --tr-button: 0.06em; } }
.ngi-num-passo {
    font-family: var(--font-display); font-weight: 300; font-style: normal;
    font-size: var(--fs-num-passo); line-height: 0.9; letter-spacing: -0.01em;
    color: var(--gold-titolo);
    font-variant-numeric: lining-nums tabular-nums;
}
.ngi-cifra {
    font-family: var(--font-display); font-weight: 300; font-style: normal;
    font-size: 2.1em; line-height: 0; vertical-align: -0.14em; margin-inline-end: 0.06em;
    letter-spacing: 0; text-transform: none; font-variant-numeric: lining-nums;
    color: var(--text);
}
.ngi-accento { font-style: italic; color: var(--gold-text); }
.ngi-su-scuro .ngi-accento { color: var(--gold-hi); }
.ngi-forte { font-weight: 700; color: var(--text); }
.ngi-su-scuro .ngi-forte { color: var(--on-dark); }
.ngi-eyebrow.ngi-eyebrow--quieto { font-weight: 400; }
.ngi-tono-piano {
    font-style: normal !important; font-weight: inherit !important; color: inherit !important;
    text-transform: none !important; letter-spacing: inherit !important;
}
.ngi-footer:not(.ngi-footer--mini) .ngi-footer__copy { text-wrap: balance; }
.ngi-footer:not(.ngi-footer--mini) .ngi-footer__copy [translate="no"] {
    font: 600 0.875rem/1 var(--font-display); letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--on-dark-2);
    margin-inline-start: 0.2em;
}
.ngi-footer:not(.ngi-footer--mini) .ngi-footer__copy [translate="no"] { white-space: nowrap; }
