        body { background: var(--color-bg); color: var(--color-fg); }

        .demo-banner {
            position: fixed; bottom: 16px; right: 16px;
            background: var(--color-fg); color: var(--color-bg);
            padding: 8px 16px; font-family: var(--font-mono); font-size: 11px;
            border-radius: 999px; z-index: 9999; opacity: 0.6;
            text-transform: uppercase; letter-spacing: 0.08em;
        }

        /* ======================================
         * NAVBAR con logo colorato grande
         * ====================================== */
        .swg-navbar {
            background: rgba(10, 10, 10, 0.75);
            backdrop-filter: blur(20px) saturate(1.5);
            -webkit-backdrop-filter: blur(20px) saturate(1.5);
            border-bottom: 1px solid var(--color-border);
        }
        .swg-navbar__inner {
            padding-top: var(--space-3);
            padding-bottom: var(--space-3);
        }
        .swg-navbar__logo, .swg-navbar__logo:visited {
            display: flex; align-items: center; gap: var(--space-3);
            color: var(--color-fg);
            font-weight: var(--fw-medium);
            letter-spacing: -0.02em;
            font-size: 1rem;
        }
        .swg-navbar__logo::after { display: none; }
        .swg-navbar__logo img {
            height: 56px; width: auto; display: block;
        }
        .swg-navbar__link, .swg-navbar__link:visited {
            color: var(--color-fg-secondary);
            font-weight: var(--fw-regular);
            font-size: 0.9375rem;
        }
        .swg-navbar__link:hover { color: var(--color-fg); }

        /* ======================================
         * HERO
         * ====================================== */
        .ed-hero {
            /* SPAZIATURA UNICA (2026-06-17, assorbe SEZ 88): mobile compatto,
               desktop scenografico. Variante .single-post in fondo al file. */
            padding: 4.5rem 0 var(--space-10) 0;   /* mobile */
            position: relative;
            min-height: auto;
            display: block;
            overflow: hidden;
            border-bottom: 1px solid var(--color-border-strong);
        }
        @media (min-width: 768px) {
            .ed-hero {
                padding-top: 7rem;
                min-height: min(76vh, 600px);
                display: flex;
                align-items: center;
            }
        }
        .ed-hero::before {
            content: "";
            position: absolute; inset: 0;
            background:
                radial-gradient(80% 50% at 80% 40%, rgba(91,108,255,0.10) 0%, transparent 60%),
                radial-gradient(60% 40% at 20% 80%, rgba(255,255,255,0.04) 0%, transparent 60%),
                linear-gradient(180deg, var(--color-bg) 0%, #0F0F12 100%);
            z-index: 0;
            pointer-events: none;
        }
        .ed-hero > * { position: relative; z-index: 1; }
        .ed-hero__inner { max-width: 1100px; }

        .ed-hero__meta {
            display: flex; gap: var(--space-3); align-items: center;
            font-family: var(--font-mono);
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: var(--color-fg-secondary);
            margin-bottom: var(--space-7);
        }
        .ed-hero__meta .dot {
            display: inline-block; width: 4px; height: 4px;
            border-radius: 50%; background: var(--color-fg);
        }

        /* SISTEMA TIPOGRAFICO UNICO (2026-06-17): dimensioni FISSE mobile,
         * override desktop nel blocco @media in fondo a questo file.
         * Gerarchia: H1 40/72 > H2 32/56 > sotto-titolo 24/28 > body 17/18. */
        .ed-hero h1 {
            font-size: 2.5rem;           /* 40px mobile → 4.5rem (72px) desktop */
            line-height: 1.05;
            letter-spacing: -0.03em;
            font-weight: var(--fw-medium);
            margin: 0;
            color: var(--color-fg);
        }
        /* Parola portante sottolineata: viola dei link #9478e8 (Andrea 2026-06-10).
         * Regola estesa a tutti gli H1 (anche fuori da .ed-hero) per uniformita'. */
        .ed-hero h1 mark,
        h1 mark {
            background: none;
            color: var(--color-fg);
            border-bottom: 4px solid #9478e8;
            padding-bottom: 4px;
        }

        .ed-hero__lead {
            font-size: 1.125rem;         /* 18px mobile → 1.375rem (22px) desktop */
            line-height: 1.5;
            color: var(--color-fg-secondary);
            max-width: 720px;
            margin: var(--space-7) 0 0 0;
            font-weight: var(--fw-medium);   /* era regular: assorbita SEZ 95 */
        }

        /* ======================================
         * SEZIONI BASE con righe evidenti
         * ====================================== */
        .ed-section {
            padding: 4rem 0;   /* mobile, simmetrico (assorbe SEZ 88) */
            border-bottom: 1px solid var(--color-border-strong);
            position: relative;
        }
        @media (min-width: 768px) {
            .ed-section { padding: 9rem 0; }   /* desktop scenografico */
        }
        .ed-section__num {
            position: absolute;
            top: 2rem; right: var(--container-padding-mobile);
            font-family: var(--font-mono);
            font-size: 11px;
            color: var(--color-fg-secondary);
            letter-spacing: 0.12em;
            text-transform: uppercase;
        }
        @media (min-width: 768px) {
            .ed-section__num { right: var(--container-padding-desktop); top: 3rem; }
        }

        .ed-eyebrow {
            font-family: var(--font-mono);
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: var(--color-fg-secondary);
            display: inline-block;
            margin-bottom: var(--space-6);
            padding-bottom: var(--space-2);
            border-bottom: 1px solid var(--color-border-strong);
        }

        .ed-h2 {
            font-size: 2.5rem;           /* 40px mobile → 3.5rem (56px) desktop */
            line-height: 1.1;
            letter-spacing: -0.02em;
            font-weight: var(--fw-medium);
            margin: 0 0 var(--space-7) 0;
            max-width: 1000px;
        }

        .ed-prose {
            font-size: 1.0625rem;        /* 17px mobile → 1.125rem (18px) desktop */
            line-height: 1.65;
            color: var(--color-fg);
            max-width: 720px;
            margin: 0;
        }
        .ed-prose + .ed-prose { margin-top: var(--space-5); }
        .ed-prose strong { font-weight: var(--fw-semibold); }

        .ed-asym {
            display: grid;
            grid-template-columns: 1fr;
            gap: var(--space-7);
        }
        @media (min-width: 900px) {
            .ed-asym {
                grid-template-columns: 5fr 7fr;
                gap: var(--space-10);
                align-items: start;
            }
        }

        /* ======================================
         * APPROCCIO. 3 fasi
         * ====================================== */
        .ed-stage {
            display: grid;
            grid-template-columns: auto 1fr;
            gap: var(--space-6);
            padding: var(--space-7) 0;
            border-bottom: 1px solid var(--color-border);
        }
        .ed-stage:first-child { border-top: 1px solid var(--color-border-strong); }
        .ed-stage:last-child { border-bottom: 0; } /* 10/6: niente doppia linea col bordo sezione */
        @media (min-width: 768px) {
            .ed-stage {
                grid-template-columns: 240px 1fr;
                gap: var(--space-9);
                padding: var(--space-8) 0;
            }
        }
        .ed-stage__num {
            font-family: var(--font-mono);
            font-size: 13px;
            color: var(--color-fg-secondary);
            letter-spacing: 0.1em;
        }
        .ed-stage__label {                /* SOTTO-TITOLO / H3: assorbe SEZ 98/102 */
            font-size: 1.875rem;         /* 30px — sotto H2(40), sopra body(17); uniforme mobile/desktop */
            font-weight: var(--fw-semibold);
            line-height: 1.25;
            letter-spacing: -0.01em;
            margin: var(--space-2) 0 0 0;
        }
        .ed-stage__body {
            font-size: 1.0625rem;        /* 17px mobile → 1.125rem (18px) desktop */
            line-height: 1.65;
            color: var(--color-fg-secondary);
            max-width: 640px;
            margin: 0;
        }

        /* ======================================
         * PILASTRI
         * ====================================== */
        .ed-pillars {
            display: grid;
            grid-template-columns: 1fr;
            border-top: 1px solid var(--color-border-strong);
            border-bottom: 0; /* 10/6: niente doppia linea */
        }
        @media (min-width: 768px) {
            .ed-pillars { grid-template-columns: repeat(2, 1fr); }
        }
        .ed-pillar {
            padding: var(--space-8) 0;
            border-bottom: 1px solid var(--color-border);
        }
        .ed-pillar:last-child,
        .ed-pillar:nth-last-child(2):not(:last-child) { border-bottom: 0; }
        @media (min-width: 768px) {
            .ed-pillar {
                padding: var(--space-9) var(--space-7) var(--space-9) 0;
            }
            .ed-pillar:nth-child(2),
            .ed-pillar:nth-child(4) {
                padding-left: var(--space-7);
                padding-right: 0;
                border-left: 1px solid var(--color-border-strong);
            }
            .ed-pillar:nth-child(3),
            .ed-pillar:nth-child(4) { border-bottom: 0; }
        }
        .ed-pillar__num {
            font-family: var(--font-mono);
            font-size: 11px;
            color: var(--color-highlight);
            letter-spacing: 0.12em;
            display: block;
            margin-bottom: var(--space-3);
        }
        .ed-pillar__title {
            font-size: clamp(1.5rem, 2.5vw, 2rem);
            font-weight: var(--fw-medium);
            line-height: 1.15;
            letter-spacing: -0.02em;
            margin: 0 0 var(--space-4) 0;
        }
        .ed-pillar__body {
            font-size: 1rem;
            line-height: 1.6;
            color: var(--color-fg-secondary);
            margin: 0;
            max-width: 480px;
        }

        /* ======================================
         * SETTORI
         * ====================================== */
        .ed-sectors {
            list-style: none;
            padding: 0;
            margin: var(--space-8) 0 0 0;
            border-top: 1px solid var(--color-border-strong);
            border-bottom: 0; /* 10/6: niente doppia linea */
        }
        .ed-sectors li {
            display: grid;
            grid-template-columns: 1fr;
            gap: var(--space-2);
            padding: var(--space-5) 0;
            border-bottom: 1px solid var(--color-border);
            transition: padding-left var(--transition-base);
        }
        .ed-sectors li:last-child { border-bottom: 0; }
        @media (min-width: 768px) {
            .ed-sectors li {
                grid-template-columns: 80px 1fr 1fr;
                gap: var(--space-7);
                align-items: baseline;
                padding: var(--space-6) 0;
            }
        }
        .ed-sectors li:hover { padding-left: var(--space-3); }
        .ed-sectors .sec-num {
            font-family: var(--font-mono);
            font-size: 11px;
            color: var(--color-fg-secondary);
            letter-spacing: 0.12em;
        }
        .ed-sectors .sec-name {
            font-size: clamp(1.25rem, 2vw, 1.75rem);
            font-weight: var(--fw-medium);
            letter-spacing: -0.015em;
            line-height: 1.15;
        }
        .ed-sectors .sec-desc {
            font-size: 0.9375rem;
            color: var(--color-fg-secondary);
            line-height: 1.5;
        }

        /* ======================================
         * CENTRO STUDI
         * ====================================== */
        .ed-studies {
            list-style: none; padding: 0; margin: 0;
            border-top: 1px solid var(--color-border-strong);
            border-bottom: 1px solid var(--color-border-strong);
        }
        .ed-studies > li {
            display: grid;
            grid-template-columns: 1fr;
            gap: var(--space-3);
            padding: var(--space-6) 0;
            border-bottom: 1px solid var(--color-border);
        }
        .ed-studies > li:last-child { border-bottom: 0; }
        @media (min-width: 768px) {
            .ed-studies > li {
                grid-template-columns: 110px 1fr;
                gap: var(--space-7);
                padding: var(--space-7) 0;
            }
        }
        .ed-studies .st-date {
            font-family: var(--font-mono);
            font-size: 11px;
            color: var(--color-fg-secondary);
            letter-spacing: 0.1em;
            text-transform: uppercase;
        }
        .ed-studies .st-title {
            font-size: clamp(1.125rem, 1.6vw, 1.5rem);
            font-weight: var(--fw-medium);
            line-height: 1.25;
            letter-spacing: -0.015em;
            margin: 0;
            max-width: 800px;
        }

        a { color: var(--color-fg); }
        a:hover { color: var(--color-fg); background-size: 100% 1px; }

        /* 2026-06-10: rimossi uppercase/mono/border-top dal container footer.
         * Con la ristampa CSS a wp_footer questa regola vinceva in cascata e
         * rendeva MAIUSCOLE tutte le voci del footer + aggiungeva la linea
         * corpo→footer. Mono/uppercase restano solo su __col-title e __bottom
         * (gestiti da site-redesign.css). */
        .ed-footer {
            padding: var(--space-9) 0 var(--space-6) 0;
            color: var(--color-fg-secondary);
        }
        .ed-footer__grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: var(--space-6);
        }
        @media (min-width: 768px) {
            .ed-footer__grid {
                grid-template-columns: 1fr auto;
                align-items: center;
            }
        }
        .ed-footer__brand {
            display: flex; align-items: center; gap: var(--space-4);
        }
        .ed-footer__brand img { height: 48px; width: auto; }
        .ed-footer a, .ed-footer a:visited {
            color: var(--color-fg-secondary);
            background: none;
        }
        .ed-footer a:hover { color: var(--color-fg); }

        /* ======================================================
           ARTICOLI — .ed-article-body
           Corpo articolo con colonna di lettura centrata
        ====================================================== */
        .ed-article-body {
            padding: 3rem 0 6rem;
        }
        .ed-article-container {
            max-width: 780px;
        }
        .ed-article-container > * {
            color: #e5e5e5;
        }
        .ed-article-container h2 {
            font-size: clamp(1.4rem, 2.5vw, 1.9rem);
            font-weight: 700;
            line-height: 1.25;
            letter-spacing: -0.015em;
            color: #ffffff;
            margin: 3.5rem 0 1rem;
            padding-top: 1rem;
            border-top: 1px solid var(--color-border, #404040);
        }
        .ed-article-container h3 {
            font-size: clamp(1.1rem, 2vw, 1.35rem);
            font-weight: 600;
            line-height: 1.35;
            color: #ffffff;
            margin: 2.5rem 0 0.75rem;
        }
        .ed-article-container h4 {
            font-size: 1.1rem;
            font-weight: 600;
            color: #d4d4d4;
            margin: 2rem 0 0.5rem;
        }
        .ed-article-container p {
            font-size: 17px;
            line-height: 1.85;
            margin: 0 0 1.5rem;
            color: #d4d4d4;
        }
        .ed-article-container ul,
        .ed-article-container ol {
            margin: 0 0 1.5rem 1.5rem;
        }
        .ed-article-container li {
            font-size: 16px;
            line-height: 1.75;
            margin-bottom: 0.5rem;
            color: #d4d4d4;
        }
        .ed-article-container strong {
            color: #ffffff;
            font-weight: 600;
        }
        .ed-article-container a {
            color: #9478e8;
            text-decoration: underline;
            text-underline-offset: 3px;
        }
        .ed-article-container a:hover {
            color: #b89ff0;
        }
        .ed-article-container blockquote {
            border-left: 3px solid #9478e8;
            margin: 2rem 0;
            padding: 1rem 0 1rem 2rem;
            color: #a3a3a3;
            font-style: italic;
        }

        /* ======================================================
           SISTEMA TIPOGRAFICO UNICO — override DESKTOP (≥768px)
           Fonte unica della scala. Sostituisce i clamp() sparsi e
           le SEZ 85/95/98/102 di site-redesign.css.
           Gerarchia identica su PAGINE e ARTICOLI:
             H1 40→72 · H2 32→56 · sotto-titolo 24→28 · body 17→18
        ====================================================== */
        @media (min-width: 768px) {
            .ed-hero h1      { font-size: 4.5rem; }    /* 72px */
            .ed-hero__lead   { font-size: 1.375rem; }  /* 22px */
            .ed-h2           { font-size: 3.5rem; }    /* 56px */
            .ed-stage__label { font-size: 1.875rem; }  /* 30px (uniforme) */
            .ed-stage__body  { font-size: 1.125rem; }  /* 18px */
            .ed-prose        { font-size: 1.125rem; }  /* 18px */
        }

        /* ARTICOLI (.single-post): titoli sezione più contenuti del
           layout pagina, peso più marcato (registro editoriale "su carta").
           Body, sotto-titolo ed eyebrow restano identici alle pagine. */
        body.single-post .ed-h2 {
            font-size: 2.5rem;           /* 40px mobile → 2.875rem (46px) desktop */
            font-weight: var(--fw-bold);
        }
        @media (min-width: 768px) {
            body.single-post .ed-h2 { font-size: 2.875rem; }  /* 46px */
        }

        /* SPAZIATURA ARTICOLI (.single-post, assorbe SEZ 100): sezioni più
           compatte di quelle delle pagine (4rem invece di 9rem), prima sezione
           attaccata alla testa (2rem), respiro prima del footer (7rem).
           Stessa regola a ogni viewport. */
        body.single-post .ed-section {
            padding: 4rem 0;
        }
        body.single-post .et_pb_post_content > .ed-section:first-child,
        body.single-post .ed-section:first-of-type {
            padding-top: 2rem;
        }
        body.single-post .ed-template-wrapper > .ed-section:last-of-type {
            padding-bottom: 7rem;
        }
