/*
 * single.css — Sebastian Hornoi
 * Stile per single.php (articolo singolo)
 * CSS nesting nativo
 * ─────────────────────────────────────────────
 */


/* ══════════════════════════════════════════════
   HERO ARTICOLO
══════════════════════════════════════════════ */
.sp-hero {
    overflow: hidden;
    position: relative;
    top: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 1320px;
    z-index: 1000;
    border-radius: 15px;
    box-sizing: border-box;
    transition: box-shadow .3s ease, background .3s ease;
    background: #222;
    border: 1px solid #111;
    z-index: 0;
    &::before {
        content: '';
        position: absolute;
        inset: 0;
        pointer-events: none;
        background-image:
                linear-gradient(rgba(232,164,0,.02) 1px, transparent 1px),
                linear-gradient(90deg, rgba(232,164,0,.02) 1px, transparent 1px);
        background-size: 52px 52px;
    }

    .sp-hero-inner {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: 1fr 45%;
        gap: 64px;
        align-items: center;
        padding: 30px;
        @media (max-width: 960px) {
            grid-template-columns: 1fr;
            gap: 40px;
            padding-block: 56px 0;
        }
    }

    /* ── colonna testo ── */
    .sp-hero-text {
        .sp-hero-top {
            margin-bottom: 24px;
        }

        .sp-breadcrumb {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 16px;
            font-family: var(--fd);
            font-size: 10px;
            font-weight: 700;
            letter-spacing: .16em;
            text-transform: uppercase;
            color: rgba(255,255,255,.25);

            a {
                color: rgba(255,255,255,.25);
                text-decoration: none;
                transition: color var(--t);
                &:hover { color: var(--gold); }
            }

            .sep { color: rgba(255,255,255,.12); }
        }

        .sp-hero-badges {
            display: flex;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
        }

        .sp-cat {
            font-size: 9px;
            font-weight: 800;
            letter-spacing: .18em;
            text-transform: uppercase;
            border: 1px solid #eee;
            border-radius: 4px;
            color: #eee;
            padding: 5px 11px;
            text-decoration: none;
        }

        .sp-read-time {
            font-size: 10px;
            font-weight: 700;
            letter-spacing: .14em;
            text-transform: uppercase;
            color: rgba(255,255,255,.28);
            background: rgba(255,255,255,.06);
            border: 1px solid rgba(255,255,255,.1);
            padding: 5px 11px;
            border-radius: 4px;
        }

        .sp-title {
            font-family: var(--font-serif);
            font-weight: 700;
            font-size: clamp(32px, 4.5vw, 56px);
            line-height: 1.08;
            letter-spacing: -.02em;
            color: #fff;
            margin-bottom: 20px;
        }

        .sp-excerpt {
            font-family: var(--font-sans);
            font-size: 18px;
            font-weight: 300;
            color: rgba(255,255,255,.6);
            line-height: 1.78;
            margin-bottom: 32px;
            max-width: 580px;

            strong { color: rgba(255,255,255,.78); font-weight: 500; }

            /* rimuove il <p> che WP aggiunge */
            p { margin: 0; }
        }

        /* autore */
        .sp-hero-author {
            display: flex;
            align-items: center;
            gap: 14px;

            .sp-av-img {
                width: 48px !important;
                height: 48px !important;
                border-radius: 50%;
                object-fit: cover;
                border: 2px solid #222;
                flex-shrink: 0;
            }

            .sp-av-info {
                .sp-av-name {
                    font-size: 14px;
                    font-weight: 900;
                    text-transform: uppercase;
                    letter-spacing: .06em;
                    color: #fff;
                    margin-bottom: 3px;
                }

                .sp-av-meta {
                    display: flex;
                    align-items: center;
                    gap: 10px;
                    font-size: 10px;
                    font-weight: 700;
                    letter-spacing: .1em;
                    text-transform: uppercase;
                    color: rgba(255,255,255,.28);
                    flex-wrap: wrap;
                    .sp-av-dot {
                        width: 3px;
                        height: 3px;
                        border-radius: 50%;
                        background: rgba(255,255,255,.2);
                    }
                    span{
                        color: rgba(255,255,255,.28);
                    }
                }
            }
        }
    }

    /* ── immagine hero ── */
    .sp-hero-img {
        border-radius: var(--rl) var(--rl) 0 0;
        overflow: hidden;
        position: relative;
        transform: scale(1.1);
        &::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(to bottom, transparent 60%, var(--dark) 100%);
            z-index: 1;
            pointer-events: none;
        }

        .sp-hero-thumb {
            width: 100%;
            height: 420px;
            object-fit: cover;
            display: block;
            border-radius: 15px;
            @media (max-width: 960px) { height: 280px; border-radius: var(--rl); }
        }
    }
}


/* ══════════════════════════════════════════════
   LAYOUT BODY: MAIN + SIDEBAR
══════════════════════════════════════════════ */
.sp-body {
    background: var(--dark-2);
    padding-block: 64px 96px;

    .sp-layout {
        display: grid;
        grid-template-columns: 1fr;
        gap: 64px;
        align-items: start;

        @media (max-width: 960px) {
            grid-template-columns: 1fr;
            gap: 48px;
        }
    }
}


/* ══════════════════════════════════════════════
   MAIN — TOC + CONTENUTO
══════════════════════════════════════════════ */
.sp-main {
    min-width: 0; /* evita overflow nel grid */

    /* ── indice ── */
    .sp-toc {
        background: var(--dark-3);
        border: 1px solid rgba(255,255,255,.07);
        border-left: 3px solid var(--gold);
        border-radius: var(--rm);
        padding: 20px 22px;
        margin-bottom: 48px;

        .sp-toc-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 14px;

            .sp-toc-label {
                font-family: var(--fd);
                font-size: 10px;
                font-weight: 800;
                letter-spacing: .2em;
                text-transform: uppercase;
                color: var(--gold);
            }

            .sp-toc-toggle {
                background: none;
                border: none;
                color: rgba(255,255,255,.3);
                font-size: 18px;
                cursor: pointer;
                line-height: 1;
                padding: 0 4px;
                transition: color var(--t);
                &:hover { color: var(--gold); }
            }
        }

        .sp-toc-links {
            display: flex;
            flex-direction: column;
            gap: 0;
            overflow: hidden;
            transition: max-height .3s ease;

            a {
                font-family: var(--fd);
                font-size: 13px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: .04em;
                color: rgba(255,255,255,.38);
                text-decoration: none;
                padding: 9px 0;
                border-bottom: 1px solid rgba(255,255,255,.05);
                display: flex;
                align-items: center;
                gap: 10px;
                transition: color var(--t);

                &:last-child { border-bottom: none; }
                &:hover { color: var(--gold); }
                &.active { color: var(--gold); }

                /* numerazione auto */
                &::before {
                    content: counter(toc-counter);
                    counter-increment: toc-counter;
                    font-size: 10px;
                    color: var(--gold);
                    opacity: .5;
                    width: 18px;
                    flex-shrink: 0;
                }
            }

            counter-reset: toc-counter;

            /* h3 indentati */
            a.toc-h3 {
                padding-left: 24px;
                font-size: 12px;
                opacity: .75;
            }
        }

        &.collapsed .sp-toc-links { max-height: 0; }
    }

    /* ── contenuto articolo ── */
    .sp-content {
        font-family: var(--font-sans);
        font-size: 17px;
        color: rgba(255,255,255,.72);
        line-height: 1.85;

        /* headings */
        h2 {
            font-family: var(--font-serif);
            font-weight: 700;
            font-size: clamp(24px, 3vw, 36px);
            letter-spacing: -.01em;
            color: #fff;
            line-height: 1.18;
            margin-top: 64px;
            margin-bottom: 20px;
            padding-top: 22px;
            border-top: 1px solid rgba(255,255,255,.07);
        }

        h3 {
            font-family: var(--font-serif);
            font-weight: 700;
            font-size: clamp(18px, 2.2vw, 24px);
            letter-spacing: -.005em;
            color: rgba(255,255,255,.92);
            line-height: 1.25;
            margin-top: 40px;
            margin-bottom: 14px;
        }

        h4 {
            font-family: var(--font-sans);
            font-weight: 700;
            font-size: 15px;
            text-transform: uppercase;
            letter-spacing: .14em;
            color: var(--gold);
            margin-top: 28px;
            margin-bottom: 10px;
        }

        /* paragrafi */
        p {
            margin-bottom: 22px;
            &:last-child { margin-bottom: 0; }
        }

        /* link */
        a {
            color: var(--gold);
            text-decoration: underline;
            text-underline-offset: 3px;
            text-decoration-color: rgba(232,164,0,.35);
            transition: text-decoration-color var(--t);
            &:hover { text-decoration-color: var(--gold); }
        }

        /* strong */
        strong {
            color: rgba(255,255,255,.9);
            font-weight: 600;
        }

        /* em */
        em {
            font-family: var(--fs);
            font-style: italic;
            color: rgba(255,255,255,.65);
        }

        /* liste */
        ul, ol {
            margin: 0 0 24px 0;
            padding-left: 0;
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: 10px;

            li {
                padding-left: 24px;
                position: relative;
                color: rgba(255,255,255,.65);
                line-height: 1.7;
            }
        }

        ul li::before {
            content: '→';
            position: absolute;
            left: 0;
            color: var(--gold);
            font-family: var(--fd);
            font-weight: 700;
            font-size: 13px;
            top: 2px;
        }

        ol {
            counter-reset: ol-counter;
            li {
                counter-increment: ol-counter;
                &::before {
                    content: counter(ol-counter) '.';
                    position: absolute;
                    left: 0;
                    color: var(--gold);
                    font-family: var(--fd);
                    font-weight: 900;
                    font-size: 13px;
                    top: 1px;
                }
            }
        }

        /* blockquote */
        blockquote {
            margin: 40px 0;
            padding: 28px 32px;
            background: rgba(232,164,0,.05);
            border: 1px solid rgba(232,164,0,.15);
            border-left: 4px solid var(--gold);
            border-radius: 0 var(--rm) var(--rm) 0;

            p {
                font-family: var(--fs);
                font-style: italic;
                font-size: 20px;
                line-height: 1.6;
                color: rgba(255,255,255,.8);
                margin-bottom: 12px;
                &:last-child { margin-bottom: 0; }
            }

            cite {
                font-family: var(--fd);
                font-size: 10px;
                font-weight: 700;
                letter-spacing: .14em;
                text-transform: uppercase;
                color: rgba(255,255,255,.3);
                font-style: normal;
            }
        }

        /* immagini */
        img {
            max-width: 100%;
            height: auto;
            border-radius: var(--rm);
            margin: 32px 0;
            display: block;
        }

        figure {
            margin: 32px 0;

            img { margin: 0 0 12px 0; }

            figcaption {
                font-family: var(--fd);
                font-size: 11px;
                font-weight: 700;
                letter-spacing: .12em;
                text-transform: uppercase;
                color: rgba(255,255,255,.28);
                text-align: center;
            }
        }

        /* codice */
        code {
            font-family: 'Courier New', monospace;
            font-size: .88em;
            background: rgba(255,255,255,.08);
            border: 1px solid rgba(255,255,255,.1);
            padding: 2px 7px;
            border-radius: 3px;
            color: var(--gold-lt);
        }

        pre {
            background: var(--dark-3);
            border: 1px solid rgba(255,255,255,.08);
            border-radius: var(--rm);
            padding: 24px 22px;
            overflow-x: auto;
            margin: 32px 0;

            code {
                background: none;
                border: none;
                padding: 0;
                font-size: 14px;
                color: rgba(255,255,255,.75);
            }
        }

        /* tabelle */
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 32px 0;
            font-size: 15px;

            th {
                font-family: var(--fd);
                font-size: 10px;
                font-weight: 800;
                letter-spacing: .16em;
                text-transform: uppercase;
                color: rgba(255,255,255,.4);
                padding: 12px 16px;
                border-bottom: 2px solid rgba(255,255,255,.1);
                text-align: left;
            }

            td {
                padding: 12px 16px;
                color: rgba(255,255,255,.6);
                border-bottom: 1px solid rgba(255,255,255,.06);
            }

            tr:last-child td { border-bottom: none; }
            tr:hover td { background: rgba(255,255,255,.03); }
        }

        /* divisore */
        hr {
            border: none;
            height: 1px;
            background: linear-gradient(90deg, rgba(232,164,0,.2), transparent);
            margin: 48px 0;
        }

        /* callout WordPress (wp:group con className) */
        .callout, .wp-block-group.callout {
            background: rgba(232,164,0,.06);
            border: 1px solid rgba(232,164,0,.15);
            border-radius: var(--rm);
            padding: 22px 24px;
            margin: 32px 0;

            p { color: rgba(255,255,255,.65); margin: 0; }
        }
    }

    /* ── tags ── */
    .sp-tags {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        margin-top: 48px;
        padding-top: 24px;
        border-top: 1px solid rgba(255,255,255,.07);

        .sp-tags-label {
            font-family: var(--fd);
            font-size: 9px;
            font-weight: 800;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: rgba(255,255,255,.25);
            margin-right: 4px;
        }

        .sp-tag {
            font-family: var(--fd);
            font-size: 10px;
            font-weight: 700;
            letter-spacing: .1em;
            text-transform: uppercase;
            padding: 6px 12px;
            border-radius: 100px;
            border: 1px solid rgba(255,255,255,.1);
            background: rgba(255,255,255,.05);
            color: rgba(255,255,255,.38);
            text-decoration: none;
            transition: all var(--t);

            &:hover {
                border-color: rgba(232,164,0,.3);
                color: var(--gold);
                background: var(--gold-dim);
            }
        }
    }

    /* ── share bar ── */
    .sp-share {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
        margin-top: 32px;
        padding: 20px 22px;
        background: var(--dark-3);
        border: 1px solid rgba(255,255,255,.07);
        border-radius: var(--rm);

        .sp-share-label {
            font-family: var(--fd);
            font-size: 10px;
            font-weight: 800;
            letter-spacing: .18em;
            text-transform: uppercase;
            color: rgba(255,255,255,.25);
            margin-right: 4px;
        }

        .sp-share-btn {
            font-family: var(--fd);
            font-size: 11px;
            font-weight: 800;
            letter-spacing: .1em;
            text-transform: uppercase;
            padding: 8px 16px;
            border-radius: var(--r);
            border: 1.5px solid rgba(255,255,255,.1);
            background: transparent;
            color: rgba(255,255,255,.45);
            cursor: pointer;
            transition: all var(--t);
            text-decoration: none;

            &:hover {
                color: #fff;
                border-color: rgba(255,255,255,.3);
            }

            &.sp-share-li:hover { border-color: #0A66C2; color: #0A66C2; }
            &.sp-share-tw:hover { border-color: #fff; color: #fff; }

            &.copied {
                border-color: var(--gold);
                color: var(--gold);
            }
        }
    }

    /* ── author box ── */
    .sp-author-box {
        display: flex;
        gap: 22px;
        align-items: flex-start;
        margin-top: 56px;
        padding: 28px 26px;
        background: var(--dark-3);
        border: 1px solid rgba(255,255,255,.08);
        border-radius: var(--rl);

        .sp-ab-avatar {
            width: 80px !important;
            height: 80px !important;
            border-radius: 50%;
            object-fit: cover;
            border: 2px solid rgba(232,164,0,.3);
            flex-shrink: 0;
        }

        .sp-ab-body {
            .sp-ab-role {
                font-family: var(--fd);
                font-size: 9px;
                font-weight: 800;
                letter-spacing: .2em;
                text-transform: uppercase;
                color: var(--gold);
                opacity: .7;
                margin-bottom: 4px;
            }

            .sp-ab-name {
                font-size: 22px;
                font-weight: 900;
                text-transform: uppercase;
                letter-spacing: .04em;
                color: #000;
                margin-bottom: 10px;
            }

            .sp-ab-bio {
                font-size: 14px;
                color: #000;
                line-height: 1.7;
                margin-bottom: 14px;
            }

            .sp-ab-link {
                font-size: 12px;
                font-weight: 800;
                letter-spacing: .1em;
                text-transform: uppercase;
                color: #000;
                text-decoration: none;
                &:hover { opacity: .7; }
            }
        }

        @media (max-width: 600px) {
            flex-direction: column;
            align-items: center;
            text-align: center;
        }
    }

    /* ── navigazione prev/next ── */
    .sp-post-nav {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        margin-top: 48px;

        .sp-nav-item {
            display: flex;
            flex-direction: column;
            gap: 6px;
            padding: 20px 22px;
            background: var(--dark-3);
            border: 1px solid rgba(255,255,255,.07);
            border-radius: var(--rm);
            text-decoration: none;
            transition: border-color var(--t), background var(--t);

            &:hover {
                border-color: rgba(232,164,0,.2);
                background: rgba(232,164,0,.03);
            }

            &.sp-nav-next { text-align: right; }
            &.sp-nav-empty { border: none; background: none; }

            .sp-nav-dir {
                font-family: var(--fd);
                font-size: 10px;
                font-weight: 700;
                letter-spacing: .14em;
                text-transform: uppercase;
                color: var(--gold);
                opacity: .6;
            }

            .sp-nav-title {
                font-family: var(--fd);
                font-size: 15px;
                font-weight: 900;
                text-transform: uppercase;
                letter-spacing: .04em;
                color: rgba(255,255,255,.7);
                line-height: 1.1;
                transition: color var(--t);
            }

            &:hover .sp-nav-title { color: #fff; }
        }

        @media (max-width: 560px) { grid-template-columns: 1fr; }
    }
}


/* ══════════════════════════════════════════════
   SIDEBAR
══════════════════════════════════════════════ */
.sp-sidebar {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 16px;

    @media (max-width: 960px) {
        position: static;
    }

    /* blocco generico sidebar */
    .sp-sb-block {
        background: var(--dark-3);
        border: 1px solid rgba(255,255,255,.07);
        border-radius: var(--rl);
        padding: 24px 22px;
    }

    .sp-sb-title {
        font-family: var(--fd);
        font-size: 10px;
        font-weight: 800;
        letter-spacing: .2em;
        text-transform: uppercase;
        color: rgba(255,255,255,.25);
        margin-bottom: 18px;
    }

    /* ── CTA analisi ── */
    .sp-sb-cta {
        border-top: 3px solid var(--gold);

        .sp-sb-cta-label {
            font-family: var(--fd);
            font-size: 16px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: .04em;
            color: #fff;
            margin-bottom: 10px;
        }

        .sp-sb-cta-text {
            font-size: 14px;
            color: rgba(255,255,255,.42);
            line-height: 1.65;
            margin-bottom: 18px;
        }

        .btn-full {
            width: 100%;
            justify-content: center;
            font-size: 12px;
        }

        .sp-sb-note {
            font-size: 11px;
            color: rgba(255,255,255,.18);
            text-align: center;
            margin-top: 10px;
        }
    }

    /* ── correlati sidebar ── */
    .sp-sb-related {
        .sp-sb-related-list {
            display: flex;
            flex-direction: column;
            gap: 0;
        }

        .sp-sb-rel-item {
            display: grid;
            grid-template-columns: 64px 1fr;
            gap: 12px;
            padding: 12px 0;
            border-bottom: 1px solid rgba(255,255,255,.05);
            text-decoration: none;
            color: inherit;
            transition: opacity var(--t);

            &:first-child { padding-top: 0; }
            &:last-child { border-bottom: none; padding-bottom: 0; }
            &:hover { opacity: .75; }
            &:hover .sp-sb-rel-title { color: var(--gold); }

            .sp-sb-rel-thumb {
                width: 64px;
                height: 48px;
                border-radius: var(--r);
                overflow: hidden;
                flex-shrink: 0;

                img { width: 100%; height: 100%; object-fit: cover; }
            }

            .sp-sb-rel-body {
                .sp-sb-rel-cat {
                    font-family: var(--fd);
                    font-size: 9px;
                    font-weight: 700;
                    letter-spacing: .14em;
                    text-transform: uppercase;
                    color: var(--gold);
                    opacity: .7;
                    margin-bottom: 4px;
                }

                .sp-sb-rel-title {
                    font-family: var(--fd);
                    font-size: 13px;
                    font-weight: 900;
                    text-transform: uppercase;
                    letter-spacing: .03em;
                    color: rgba(255,255,255,.7);
                    line-height: 1.1;
                    transition: color var(--t);
                }
            }
        }
    }

    /* ── categorie sidebar ── */
    .sp-sb-topics {
        .sp-sb-cats {
            display: flex;
            flex-direction: column;
            gap: 0;

            .sp-sb-cat-link {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding: 11px 0;
                border-bottom: 1px solid rgba(255,255,255,.05);
                font-family: var(--fd);
                font-size: 13px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: .04em;
                color: rgba(255,255,255,.45);
                text-decoration: none;
                transition: color var(--t);

                &:last-child { border-bottom: none; }
                &:hover { color: var(--gold); }
                &.active { color: var(--gold); }

                span {
                    font-size: 10px;
                    color: rgba(255,255,255,.2);
                    font-weight: 700;
                    letter-spacing: .08em;
                }
            }
        }
    }
}


/* ══════════════════════════════════════════════
   ARTICOLI CORRELATI FOOTER
══════════════════════════════════════════════ */
.sp-related {
    background: var(--dark);
    padding-block: var(--py, 96px);
    border-top: 1px solid rgba(255,255,255,.06);

    .sp-related-head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 24px;
        margin-bottom: 48px;
        flex-wrap: wrap;

        .sp-related-title {
            font-family: var(--fd);
            font-weight: 900;
            font-size: clamp(28px, 3.5vw, 46px);
            line-height: .94;
            text-transform: uppercase;
            color: #fff;

            .ital {
                font-family: var(--fs);
                font-style: italic;
                font-weight: 400;
                text-transform: none;
            }
        }

        .sp-related-all {
            font-family: var(--fd);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: .1em;
            text-transform: uppercase;
            color: var(--gold);
            text-decoration: none;
            white-space: nowrap;
            transition: opacity var(--t);
            padding-bottom: 6px;
            &:hover { opacity: .7; }
        }
    }

    .sp-related-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2px;

        @media (max-width: 860px) { grid-template-columns: 1fr 1fr; }
        @media (max-width: 560px) { grid-template-columns: 1fr; }
    }

    .sp-rel-card {
        background: var(--dark-3);
        display: flex;
        flex-direction: column;
        text-decoration: none;
        color: inherit;
        overflow: hidden;
        transition: border-color var(--t);

        &:hover {
            .sp-rel-img img { transform: scale(1.04); }
            .sp-rel-title { color: var(--gold-lt); }
        }

        .sp-rel-img {
            overflow: hidden;
            flex-shrink: 0;

            img {
                width: 100%;
                height: 200px;
                object-fit: cover;
                display: block;
                transition: transform .5s ease;
            }
        }

        .sp-rel-body {
            padding: 22px 24px;
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 8px;

            .sp-rel-meta {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 8px;

                .sp-rel-cat {
                    font-family: var(--fd);
                    font-size: 9px;
                    font-weight: 800;
                    letter-spacing: .16em;
                    text-transform: uppercase;
                    color: var(--gold);
                    background: var(--gold-dim);
                    border: 1px solid rgba(232,164,0,.2);
                    padding: 3px 8px;
                    border-radius: var(--r);
                }

                .sp-rel-read {
                    font-family: var(--fd);
                    font-size: 10px;
                    font-weight: 700;
                    letter-spacing: .1em;
                    text-transform: uppercase;
                    color: rgba(255,255,255,.22);
                }
            }

            .sp-rel-title {
                font-family: var(--fd);
                font-size: 18px;
                font-weight: 900;
                text-transform: uppercase;
                letter-spacing: .02em;
                color: #fff;
                line-height: 1.0;
                transition: color var(--t);
            }

            .sp-rel-exc {
                font-size: 14px;
                color: rgba(255,255,255,.36);
                line-height: 1.6;
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                overflow: hidden;
            }

            .sp-rel-cta {
                margin-top: auto;
                font-family: var(--fd);
                font-size: 11px;
                font-weight: 800;
                letter-spacing: .1em;
                text-transform: uppercase;
                color: rgba(255,255,255,.28);
                padding-top: 12px;
                border-top: 1px solid rgba(255,255,255,.05);
                transition: color var(--t);
            }
        }

        &:hover .sp-rel-cta { color: var(--gold); }
    }
}


/* ══════════════════════════════════════════════
   CTA FINALE
══════════════════════════════════════════════ */
.sp-cta {
    background: var(--dark-2);
    padding-block: var(--py, 96px);
    border-top: 1px solid rgba(255,255,255,.06);
    position: relative;
    overflow: hidden;
    text-align: center;

    &::before {
        content: '';
        position: absolute;
        top: -200px;
        left: 50%;
        transform: translateX(-50%);
        width: 900px;
        height: 900px;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(232,164,0,.05) 0%, transparent 65%);
        pointer-events: none;
    }

    .sp-cta-inner {
        position: relative;
        z-index: 1;
        max-width: 640px;
        margin: 0 auto;
    }

    .sp-cta-over {
        font-family: var(--fd);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .22em;
        text-transform: uppercase;
        color: var(--gold);
        margin-bottom: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;

        &::before, &::after { content: '—'; opacity: .4; }
    }

    .sp-cta-hl {
        font-family: var(--fd);
        font-weight: 900;
        font-size: clamp(34px, 5vw, 60px);
        line-height: .9;
        text-transform: uppercase;
        color: #fff;
        margin-bottom: 20px;

        .ital {
            color: var(--gold);
            display: block;
            font-family: var(--fs);
            font-style: italic;
            font-size: .78em;
            font-weight: 400;
            text-transform: none;
            margin-top: 6px;
        }
    }

    .sp-cta-desc {
        font-size: 16px;
        color: rgba(255,255,255,.44);
        line-height: 1.78;
        margin-bottom: 32px;

        strong { color: rgba(255,255,255,.75); font-weight: 500; }
    }

    .sp-cta-btns {
        display: flex;
        gap: 12px;
        justify-content: center;
        flex-wrap: wrap;
    }

    .sp-cta-proof {
        display: flex;
        gap: 20px;
        justify-content: center;
        flex-wrap: wrap;
        margin-top: 18px;

        span {
            font-family: var(--fd);
            font-size: 10px;
            font-weight: 700;
            letter-spacing: .12em;
            text-transform: uppercase;
            color: rgba(255,255,255,.2);
        }
    }
}