/* Portal Público — template editorial
   Estilos extraídos do componente Razor no Bloco 6E.1. */

    .portal-editorial {
        --kp-primary: #4b164c;
        --kp-secondary: #d94c96;
        --kp-ink: #25112a;
        --kp-muted: #715f75;
        --kp-paper: #fffafd;
        --kp-line: rgba(75, 22, 76, .14);
        --kp-blue: #2563eb;
        --kp-cyan: #0891b2;
        --kp-orange: #f97316;
        --kp-green: #059669;
        --kp-yellow: #f6c344;
        --kp-accent: #f6c344;
        --kp-header-surface: radial-gradient(circle at 86% -40%, rgba(217, 76, 150, .44), transparent 36%), linear-gradient(115deg, #180b3d 0%, #32105d 54%, #571257 100%);
        --kp-hero-surface: radial-gradient(circle at 15% 30%, rgba(91, 67, 218, .36), transparent 36%), radial-gradient(circle at 88% 18%, rgba(217, 76, 150, .28), transparent 31%), linear-gradient(110deg, #140a42 0%, #27105e 43%, #4c155c 100%);
        --kp-button-surface: linear-gradient(135deg, #a72a8c, var(--kp-secondary));
        --kp-participation-surface: radial-gradient(circle at 92% 12%, rgba(255, 173, 80, .42), transparent 24%), radial-gradient(circle at 68% 110%, rgba(217, 76, 150, .34), transparent 36%), linear-gradient(135deg, #45134b 0%, #27102d 62%, #1d0b25 100%);
        --kp-footer-surface: radial-gradient(circle at 88% 16%, rgba(217, 76, 150, .22), transparent 28%), linear-gradient(135deg, #211027 0%, #32113a 52%, #1b0b24 100%);
        min-height: 100vh;
        background: var(--kp-paper);
        color: var(--kp-ink);
        overflow: hidden;
    }

    .kp-container {
        width: min(1180px, calc(100% - 40px));
        margin-inline: auto;
    }

    .kp-preview {
        min-height: 58px;
        padding: 10px 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 22px;
        background: #fff7ed;
        border-bottom: 1px solid #fdba74;
        color: #9a3412;
        font-size: 14px;
        font-weight: 700;
    }

        .kp-preview strong {
            margin-right: 8px;
        }

    .kp-preview-actions {
        display: flex;
        gap: 10px;
    }

        .kp-preview-actions a {
            min-height: 38px;
            padding: 0 14px;
            display: inline-flex;
            align-items: center;
            border: 1px solid #fb923c;
            border-radius: 999px;
            background: #fff;
            color: #9a3412;
            text-decoration: none;
            font-weight: 850;
        }


    .kp-skip-link {
        position: fixed;
        top: 12px;
        left: 12px;
        z-index: 120;
        padding: 11px 16px;
        border-radius: 12px;
        background: #fff;
        color: var(--kp-primary);
        font-size: 13px;
        font-weight: 900;
        text-decoration: none;
        box-shadow: 0 14px 34px rgba(19, 8, 32, .28);
        transform: translateY(-160%);
        transition: transform .2s ease;
    }

        .kp-skip-link:focus {
            transform: translateY(0);
        }

    .kp-header {
        height: 76px;
        position: sticky;
        top: 0;
        z-index: 60;
        border-bottom: 1px solid rgba(255, 255, 255, .12);
        background: var(--kp-header-surface);
        box-shadow: 0 12px 34px rgba(20, 7, 42, .18);
    }

    .kp-header-inner {
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
    }

    .kp-brand {
        min-width: max-content;
        display: flex;
        align-items: center;
        gap: 11px;
        color: #fff;
        text-decoration: none;
    }

    .kp-brand-mark {
        width: 44px;
        height: 44px;
        border: 1px solid rgba(255, 255, 255, .20);
        border-radius: 14px;
        display: grid;
        place-items: center;
        color: #fff;
        background: var(--kp-button-surface);
        box-shadow: 0 10px 24px rgba(9, 3, 28, .24);
        font: 900 18px/1 Arial, sans-serif;
    }

    .kp-brand strong {
        display: block;
        max-width: 230px;
        font-size: 15px;
        line-height: 1.12;
        letter-spacing: -.01em;
    }

    .kp-nav {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 19px;
        margin-left: auto;
    }

        .kp-nav > a,
        .kp-municipios > summary {
            position: relative;
            color: rgba(255, 255, 255, .88);
            text-decoration: none;
            font-size: 12px;
            font-weight: 850;
            white-space: nowrap;
        }

            .kp-nav > a::after,
            .kp-municipios > summary::before {
                content: "";
                height: 2px;
                position: absolute;
                right: 50%;
                bottom: -10px;
                left: 50%;
                border-radius: 999px;
                background: #fff;
                transition: right .2s ease, left .2s ease;
            }

            .kp-nav > a:hover,
            .kp-nav > a:focus-visible,
            .kp-municipios > summary:hover,
            .kp-municipios > summary:focus-visible {
                color: #fff;
            }

                .kp-nav > a:hover::after,
                .kp-nav > a:focus-visible::after,
                .kp-municipios > summary:hover::before,
                .kp-municipios > summary:focus-visible::before {
                    right: 0;
                    left: 0;
                }

    .kp-municipios {
        position: relative;
    }

        .kp-municipios summary {
            cursor: pointer;
            list-style: none;
        }

            .kp-municipios summary::marker {
                content: "";
            }

            .kp-municipios summary::after {
                content: "⌄";
                margin-left: 5px;
                color: #f4a9d0;
            }

    .kp-municipios-menu {
        width: 340px;
        padding: 18px;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
        position: absolute;
        top: 38px;
        right: 0;
        border: 1px solid var(--kp-line);
        border-radius: 20px;
        background: rgba(255, 255, 255, .99);
        box-shadow: 0 24px 60px rgba(20, 7, 42, .24);
    }

        .kp-municipios-menu a {
            padding: 9px 10px;
            border-radius: 10px;
            color: var(--kp-muted);
            font-size: 12px;
            text-decoration: none;
        }

            .kp-municipios-menu a:hover,
            .kp-municipios-menu a:focus-visible {
                background: #f8eaf4;
                color: var(--kp-primary);
            }

    .kp-access-group {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .kp-access {
        min-height: 40px;
        padding: 10px 14px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 1px solid rgba(255, 255, 255, .62);
        border-radius: 10px;
        background: #fff;
        color: var(--kp-primary);
        text-decoration: none;
        font-size: 11px;
        font-weight: 900;
        white-space: nowrap;
        transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
    }

        .kp-access:hover,
        .kp-access:focus-visible {
            border-color: #fff;
            color: var(--kp-primary);
            box-shadow: 0 10px 24px rgba(9, 3, 28, .20);
            transform: translateY(-1px);
        }

    .kp-access-admin {
        border-color: rgba(255, 255, 255, .20);
        background: var(--kp-button-surface);
        color: #fff;
    }

        .kp-access-admin:hover,
        .kp-access-admin:focus-visible {
            color: #fff;
        }

    .kp-access[aria-disabled="true"] {
        cursor: default;
        pointer-events: none;
        opacity: .94;
    }

    .kp-menu-toggle {
        width: 44px;
        height: 44px;
        padding: 0;
        display: none;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, .28);
        border-radius: 12px;
        background: rgba(255, 255, 255, .10);
        color: #fff;
        cursor: pointer;
    }

        .kp-menu-toggle svg {
            width: 22px;
            height: 22px;
        }

    .kp-mobile-menu[hidden] {
        display: none;
    }

    .kp-mobile-menu {
        position: fixed;
        inset: 0;
        z-index: 100;
    }

    .kp-mobile-backdrop {
        position: absolute;
        inset: 0;
        border: 0;
        background: rgba(16, 7, 34, .70);
        backdrop-filter: blur(5px);
        cursor: pointer;
    }

    .kp-mobile-panel {
        width: min(390px, calc(100% - 28px));
        height: 100%;
        padding: 16px;
        position: absolute;
        top: 0;
        right: 0;
        overflow-y: auto;
        background: var(--kp-paper);
        box-shadow: -24px 0 70px rgba(13, 5, 31, .34);
    }

    .kp-mobile-head {
        padding-bottom: 12px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        border-bottom: 1px solid var(--kp-line);
    }

    .kp-mobile-brand {
        display: flex;
        align-items: center;
        gap: 10px;
        color: var(--kp-ink);
    }

        .kp-mobile-brand strong {
            font-size: 15px;
            line-height: 1.15;
        }

    .kp-mobile-close {
        width: 42px;
        height: 42px;
        border: 1px solid var(--kp-line);
        border-radius: 12px;
        background: #fff;
        color: var(--kp-primary);
        cursor: pointer;
        font-size: 25px;
        line-height: 1;
    }

    .kp-mobile-nav {
        padding: 8px 0 10px;
        display: grid;
        gap: 0;
    }

        .kp-mobile-nav > a,
        .kp-mobile-nav summary {
            min-height: 40px;
            padding: 0 10px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-radius: 12px;
            color: var(--kp-ink);
            text-decoration: none;
            font-size: 14px;
            font-weight: 850;
        }

            .kp-mobile-nav > a:hover,
            .kp-mobile-nav > a:focus-visible,
            .kp-mobile-nav summary:hover,
            .kp-mobile-nav summary:focus-visible {
                background: #f8eaf4;
                color: var(--kp-primary);
            }

        .kp-mobile-nav details {
            border: 1px solid transparent;
            border-radius: 14px;
        }

            .kp-mobile-nav details[open] {
                border-color: var(--kp-line);
                background: #fff;
            }

        .kp-mobile-nav summary {
            cursor: pointer;
            list-style: none;
        }

            .kp-mobile-nav summary::marker {
                content: "";
            }

            .kp-mobile-nav summary::after {
                content: "+";
                color: var(--kp-secondary);
                font-size: 20px;
            }

        .kp-mobile-nav details[open] summary::after {
            content: "−";
        }

    .kp-mobile-municipios {
        padding: 0 12px 12px;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
    }

        .kp-mobile-municipios a {
            padding: 9px;
            border-radius: 10px;
            background: #f7eff6;
            color: var(--kp-muted);
            font-size: 11px;
            font-weight: 750;
            text-decoration: none;
        }

    .kp-mobile-access {
        padding-top: 12px;
        display: grid;
        gap: 10px;
        border-top: 1px solid var(--kp-line);
    }

        .kp-mobile-access .kp-access {
            width: 100%;
            min-height: 44px;
            border-color: var(--kp-line);
            border-radius: 13px;
        }

        .kp-mobile-access .kp-access-admin {
            border-color: transparent;
        }


    .kp-hero {
        min-height: 500px;
        position: relative;
        isolation: isolate;
        overflow: hidden;
        background: var(--kp-hero-surface);
    }

        .kp-hero::before {
            content: "";
            position: absolute;
            inset: 0;
            z-index: -1;
            background: linear-gradient(90deg, rgba(9, 5, 38, .34) 0%, rgba(9, 5, 38, .08) 48%, transparent 72%), radial-gradient(circle at 8% 112%, rgba(217, 76, 150, .20), transparent 34%);
            pointer-events: none;
        }

        .kp-hero::after {
            content: "";
            width: 420px;
            height: 420px;
            position: absolute;
            right: -210px;
            bottom: -260px;
            z-index: -1;
            border: 58px solid rgba(255, 255, 255, .06);
            border-radius: 50%;
            pointer-events: none;
        }

    .kp-hero-grid {
        min-height: 500px;
        display: grid;
        grid-template-columns: minmax(0, 1.02fr) minmax(390px, .98fr);
        align-items: stretch;
        gap: 24px;
        position: relative;
    }

    .kp-hero-copy {
        max-width: 690px;
        padding: 58px 0 52px;
        position: relative;
        z-index: 3;
        align-self: center;
    }

    .kp-eyebrow {
        display: inline-flex;
        align-items: center;
        min-height: 34px;
        padding: 0 14px;
        border: 1px solid rgba(75, 22, 76, .20);
        border-radius: 999px;
        background: rgba(255, 255, 255, .82);
        color: var(--kp-primary);
        font-size: 12px;
        font-weight: 900;
        letter-spacing: .12em;
        text-transform: uppercase;
    }

    .kp-hero .kp-eyebrow {
        border-color: rgba(255, 255, 255, .28);
        background: rgba(255, 255, 255, .10);
        color: rgba(255, 255, 255, .92);
        backdrop-filter: blur(10px);
    }

    .kp-hero h1 {
        margin: 20px 0 17px;
        max-width: 650px;
        color: #fff;
        font: 800 clamp(48px, 5.2vw, 70px)/1.01 Georgia, "Times New Roman", serif;
        letter-spacing: -.045em;
        text-wrap: balance;
        text-shadow: 0 5px 24px rgba(7, 3, 30, .24);
    }

    .kp-hero p {
        max-width: 600px;
        margin: 0;
        color: rgba(255, 255, 255, .86);
        font-size: 17px;
        font-weight: 620;
        line-height: 1.58;
    }

    .kp-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 28px;
    }

    .kp-btn {
        min-height: 50px;
        padding: 0 20px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0;
        border-radius: 13px;
        background: var(--kp-button-surface);
        color: #fff;
        text-decoration: none;
        font-size: 14px;
        font-weight: 900;
        box-shadow: 0 14px 30px rgba(17, 5, 43, .22);
        transition: transform .18s ease, box-shadow .18s ease;
    }

        .kp-btn:hover,
        .kp-btn:focus-visible {
            color: #fff;
            box-shadow: 0 18px 34px rgba(17, 5, 43, .30);
            transform: translateY(-1px);
        }

    .kp-btn-light {
        border: 1px solid rgba(255, 255, 255, .62);
        background: rgba(255, 255, 255, .08);
        color: #fff;
        box-shadow: none;
        backdrop-filter: blur(8px);
    }

        .kp-btn-light:hover,
        .kp-btn-light:focus-visible {
            border-color: #fff;
            background: #fff;
            color: var(--kp-primary);
        }

    .kp-portrait {
        min-height: 500px;
        position: relative;
        align-self: stretch;
        overflow: hidden;
    }

        .kp-portrait::before {
            content: "";
            position: absolute;
            inset: 0;
            z-index: 2;
            background: linear-gradient(90deg, #25105a 0%, rgba(37, 16, 90, .72) 7%, rgba(37, 16, 90, .08) 30%, transparent 54%), linear-gradient(0deg, rgba(26, 8, 51, .14), transparent 34%);
            pointer-events: none;
        }

        .kp-portrait::after {
            content: "";
            position: absolute;
            inset: auto 0 0 0;
            z-index: 2;
            height: 28%;
            background: linear-gradient(0deg, rgba(22, 7, 47, .22), transparent);
            pointer-events: none;
        }

        .kp-portrait picture {
            width: 100%;
            height: 100%;
            display: block;
        }

        .kp-portrait img {
            width: 100%;
            height: 100%;
            min-height: 500px;
            display: block;
            object-fit: cover;
            object-position: center 24%;
            filter: saturate(1.03) contrast(1.02);
        }


    .kp-visual {
        width: min(490px, 100%);
        min-height: 430px;
        padding: 38px;
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        border: 1px solid rgba(255, 255, 255, .34);
        border-radius: 42px;
        background: radial-gradient(circle at 82% 18%, rgba(255, 196, 68, .36), transparent 24%), linear-gradient(145deg, #4b164c 0%, #7d245f 52%, #d94c96 100%);
        color: #fff;
        box-shadow: 0 34px 70px rgba(75, 22, 76, .25);
        transform: rotate(1.5deg);
    }

    .kp-visual-label {
        font-size: 12px;
        font-weight: 900;
        letter-spacing: .18em;
    }

    .kp-visual strong {
        max-width: 390px;
        font: 800 clamp(34px, 4vw, 52px)/1.02 Georgia, "Times New Roman", serif;
    }

    .kp-visual-chips {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

        .kp-visual-chips span {
            padding: 9px 12px;
            border: 1px solid rgba(255, 255, 255, .28);
            border-radius: 999px;
            background: rgba(255, 255, 255, .12);
            font-size: 12px;
            font-weight: 800;
        }

    .kp-section {
        padding: 82px 0;
    }

    .kp-section-soft {
        background: #f7edf6;
    }

    .kp-heading {
        max-width: 760px;
        margin-bottom: 34px;
    }

        .kp-heading h2 {
            margin: 15px 0 10px;
            font: 800 clamp(32px, 4vw, 50px)/1.06 Georgia, "Times New Roman", serif;
            color: var(--kp-primary);
            letter-spacing: -.03em;
        }

        .kp-heading p {
            margin: 0;
            color: var(--kp-muted);
            font-size: 17px;
            line-height: 1.65;
        }

    .kp-story {
        display: grid;
        grid-template-columns: 1.15fr .85fr;
        gap: 22px;
        align-items: stretch;
    }

    .kp-story-copy,
    .kp-story-panel {
        padding: 30px;
        border: 1px solid var(--kp-line);
        border-radius: 28px;
        background: #fff;
        box-shadow: 0 20px 48px rgba(54, 20, 58, .07);
    }

        .kp-story-copy h3 {
            margin: 0 0 14px;
            color: var(--kp-primary);
            font: 800 30px/1.08 Georgia, "Times New Roman", serif;
        }

        .kp-story-copy p {
            margin: 0;
            color: var(--kp-muted);
            font-size: 16px;
            line-height: 1.75;
        }

    .kp-story-panel {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        background: radial-gradient(circle at 92% 8%, rgba(246, 195, 68, .26), transparent 32%), linear-gradient(145deg, #fff8fc, #f8edf6);
    }

        .kp-story-panel div {
            min-height: 104px;
            padding: 18px;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            border: 1px solid rgba(75, 22, 76, .10);
            border-radius: 18px;
            background: rgba(255, 255, 255, .72);
        }

        .kp-story-panel strong {
            color: var(--kp-primary);
            font-size: 19px;
        }

        .kp-story-panel span {
            margin-top: 5px;
            color: var(--kp-muted);
            font-size: 12px;
            line-height: 1.4;
        }

    .kp-values,
    .kp-proposals,
    .kp-news {
        display: grid;
        gap: 18px;
    }

    .kp-values {
        grid-template-columns: repeat(4, 1fr);
    }

    .kp-proposals {
        grid-template-columns: repeat(3, 1fr);
    }

    .kp-news {
        grid-template-columns: repeat(3, 1fr);
    }

    .kp-card {
        min-height: 210px;
        padding: 24px;
        border: 1px solid var(--kp-line);
        border-radius: 24px;
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 18px 45px rgba(54, 20, 58, .07);
        transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }

        .kp-card:hover,
        .kp-card:focus-within {
            border-color: rgba(217, 76, 150, .32);
            box-shadow: 0 24px 52px rgba(54, 20, 58, .12);
            transform: translateY(-4px);
        }

    .kp-card-number {
        width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
        border-radius: 14px;
        background: #f5e2f0;
        color: var(--kp-primary);
        font-weight: 900;
    }

    .kp-card h3 {
        margin: 20px 0 10px;
        color: var(--kp-ink);
        font-size: 20px;
        line-height: 1.2;
    }

    .kp-card p {
        margin: 0;
        color: var(--kp-muted);
        font-size: 14px;
        line-height: 1.6;
    }

    .kp-card a {
        margin-top: 18px;
        display: inline-block;
        color: var(--kp-primary);
        text-decoration: none;
        font-size: 13px;
        font-weight: 900;
    }

    .kp-themes {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 16px;
    }

    .kp-theme {
        min-height: 184px;
        padding: 24px;
        border-radius: 24px;
        color: #fff;
        box-shadow: 0 20px 46px rgba(37, 17, 42, .12);
    }

        .kp-theme:nth-child(1) {
            background: linear-gradient(145deg, #2563eb, #0891b2);
        }

        .kp-theme:nth-child(2) {
            background: linear-gradient(145deg, #e11d74, #f97316);
        }

        .kp-theme:nth-child(3) {
            background: linear-gradient(145deg, #059669, #0f766e);
        }

        .kp-theme:nth-child(4) {
            background: linear-gradient(145deg, #7c3aed, #d946ef);
        }

        .kp-theme:nth-child(5) {
            background: linear-gradient(145deg, #b45309, #f59e0b);
        }

        .kp-theme:nth-child(6) {
            background: linear-gradient(145deg, #1e3a8a, #2563eb);
        }

        .kp-theme small {
            display: block;
            margin-bottom: 26px;
            color: rgba(255, 255, 255, .74);
            font-weight: 900;
            letter-spacing: .12em;
            text-transform: uppercase;
        }

        .kp-theme h3 {
            margin: 0 0 9px;
            font-size: 21px;
        }

        .kp-theme p {
            margin: 0;
            color: rgba(255, 255, 255, .82);
            font-size: 14px;
            line-height: 1.55;
        }

    .kp-municipal-panel {
        margin-bottom: 28px;
        padding: 24px;
        display: grid;
        grid-template-columns: .8fr 1.2fr;
        gap: 24px;
        align-items: center;
        border: 1px solid rgba(8, 145, 178, .20);
        border-radius: 24px;
        background: radial-gradient(circle at 95% 20%, rgba(37, 99, 235, .13), transparent 34%), #fff;
    }

        .kp-municipal-panel h3 {
            margin: 0 0 8px;
            color: var(--kp-primary);
            font-size: 23px;
        }

        .kp-municipal-panel p {
            margin: 0;
            color: var(--kp-muted);
            font-size: 14px;
            line-height: 1.55;
        }

    .kp-municipal-links {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 8px;
    }

        .kp-municipal-links a {
            padding: 9px 12px;
            border: 1px solid transparent;
            border-radius: 999px;
            background: #edf5ff;
            color: #1d4ed8;
            text-decoration: none;
            font-size: 12px;
            font-weight: 850;
        }

            .kp-municipal-links a:hover,
            .kp-municipal-links a:focus-visible,
            .kp-municipal-links a[aria-current="true"] {
                border-color: rgba(75, 22, 76, .18);
                background: linear-gradient(135deg, var(--kp-primary), var(--kp-secondary));
                color: #fff;
            }

    .kp-editorial-note {
        margin-top: 18px;
        padding: 13px 15px;
        border: 1px dashed rgba(75, 22, 76, .22);
        border-radius: 14px;
        color: var(--kp-muted);
        font-size: 12px;
        line-height: 1.55;
    }

    .kp-agenda,
    .kp-public-data {
        display: grid;
        gap: 16px;
    }

    .kp-agenda {
        grid-template-columns: repeat(3, 1fr);
    }

    .kp-agenda-item {
        min-height: 172px;
        padding: 22px;
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 16px;
        align-items: start;
        border: 1px solid var(--kp-line);
        border-radius: 22px;
        background: #fff;
    }

    .kp-agenda-date {
        width: 58px;
        height: 58px;
        display: grid;
        place-items: center;
        border-radius: 18px;
        background: linear-gradient(145deg, #eef5ff, #f7e9f4);
        color: var(--kp-primary);
        font-size: 11px;
        font-weight: 900;
        text-align: center;
        text-transform: uppercase;
    }

    .kp-agenda-item h3 {
        margin: 4px 0 8px;
        color: var(--kp-ink);
        font-size: 18px;
    }

    .kp-agenda-item p {
        margin: 0;
        color: var(--kp-muted);
        font-size: 13px;
        line-height: 1.55;
    }

    .kp-public-data {
        grid-template-columns: repeat(4, 1fr);
    }

        .kp-public-data article {
            min-height: 174px;
            padding: 22px;
            border: 1px solid rgba(37, 99, 235, .16);
            border-radius: 22px;
            background: radial-gradient(circle at 94% 8%, rgba(8, 145, 178, .12), transparent 34%), #fff;
        }

        .kp-public-data strong {
            display: block;
            margin-bottom: 10px;
            color: #1d4ed8;
            font-size: 17px;
        }

        .kp-public-data p {
            margin: 0;
            color: var(--kp-muted);
            font-size: 13px;
            line-height: 1.6;
        }

    .kp-participation {
        padding: 38px;
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: 30px;
        border-radius: 30px;
        color: #fff;
        background: radial-gradient(circle at 90% 20%, rgba(255, 191, 92, .36), transparent 28%), linear-gradient(135deg, var(--kp-primary), #28102d);
        box-shadow: 0 28px 60px rgba(75, 22, 76, .22);
    }

        .kp-participation h2 {
            margin: 0 0 10px;
            font: 800 38px/1.08 Georgia, "Times New Roman", serif;
        }

        .kp-participation p {
            margin: 0;
            max-width: 720px;
            color: rgba(255, 255, 255, .78);
            line-height: 1.65;
        }

        .kp-participation .kp-btn {
            background: #fff;
            color: var(--kp-primary);
            box-shadow: none;
        }

    .kp-public-action {
        font: inherit;
        cursor: pointer;
    }

    .kp-alert {
        margin-top: 18px;
        padding: 16px 20px;
        border: 1px solid;
        border-radius: 18px;
        font-weight: 800;
        line-height: 1.5;
    }

    .kp-alert-success {
        border-color: rgba(5, 150, 105, .28);
        background: #ecfdf5;
        color: #047857;
    }

    .kp-alert-error {
        border-color: rgba(220, 38, 38, .24);
        background: #fff1f2;
        color: #b91c1c;
    }

    .kp-dialog {
        width: min(720px, calc(100% - 32px));
        max-height: calc(100vh - 32px);
        padding: 0;
        border: 0;
        border-radius: 28px;
        color: var(--kp-ink);
        background: #fff;
        box-shadow: 0 32px 90px rgba(37, 17, 42, .28);
        overflow: auto;
    }

        .kp-dialog::backdrop {
            background: rgba(24, 12, 29, .62);
            backdrop-filter: blur(5px);
        }

    .kp-dialog-card {
        padding: 32px;
        position: relative;
        background: radial-gradient(circle at 92% 8%, rgba(217, 76, 150, .15), transparent 32%), #fff;
    }

    .kp-dialog-close {
        width: 38px;
        height: 38px;
        position: absolute;
        top: 18px;
        right: 18px;
        border: 1px solid var(--kp-line);
        border-radius: 50%;
        background: #fff;
        color: var(--kp-primary);
        cursor: pointer;
        font-size: 18px;
        font-weight: 900;
    }

    .kp-dialog h2 {
        margin: 16px 42px 10px 0;
        color: var(--kp-primary);
        font: 800 34px/1.06 Georgia, "Times New Roman", serif;
    }

    .kp-dialog p {
        margin: 0;
        color: var(--kp-muted);
        line-height: 1.65;
    }

    .kp-dialog-note {
        margin-top: 22px !important;
        padding: 14px 16px;
        border: 1px solid rgba(37, 99, 235, .18);
        border-radius: 16px;
        background: #f3f7ff;
        color: #1e3a8a !important;
        font-size: 13px;
        font-weight: 700;
    }

    .kp-dialog-panel[hidden] {
        display: none;
    }

    .kp-public-form {
        margin-top: 22px;
    }

    .kp-form-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .kp-field {
        display: grid;
        gap: 7px;
    }

    .kp-field-wide {
        grid-column: 1 / -1;
    }

    .kp-field label,
    .kp-contact-help {
        margin: -2px 0 2px;
        color: var(--kp-muted);
        font-size: 12px;
        line-height: 1.45;
    }

        .kp-contact-help[data-invalid="true"] {
            color: #b42318;
            font-weight: 800;
        }

    .kp-consent {
        color: var(--kp-ink);
        font-size: 13px;
        font-weight: 800;
    }

    .kp-field input,
    .kp-field select,
    .kp-field textarea {
        width: 100%;
        min-height: 48px;
        padding: 12px 14px;
        border: 1px solid rgba(75, 22, 76, .2);
        border-radius: 13px;
        outline: 0;
        background: #fff;
        color: var(--kp-ink);
        font: inherit;
    }

    .kp-field textarea {
        min-height: 110px;
        resize: vertical;
    }

        .kp-field input:focus,
        .kp-field select:focus,
        .kp-field textarea:focus {
            border-color: var(--kp-secondary);
            box-shadow: 0 0 0 4px rgba(217, 76, 150, .12);
        }

    .kp-consent {
        grid-column: 1 / -1;
        display: flex;
        align-items: flex-start;
        gap: 10px;
        line-height: 1.45;
    }

        .kp-consent input {
            width: 18px;
            height: 18px;
            margin-top: 1px;
            accent-color: var(--kp-primary);
        }

    .kp-submit {
        grid-column: 1 / -1;
        justify-self: start;
        border: 0;
        cursor: pointer;
    }

    .kp-honeypot {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .kp-footer {
        padding: 50px 0 28px;
        background: #25112a;
        color: #fff;
    }

    .kp-footer-grid {
        display: grid;
        grid-template-columns: 1.4fr 1fr 1fr;
        gap: 38px;
    }

    .kp-footer h3,
    .kp-footer h4 {
        margin: 0 0 10px;
    }

    .kp-footer p,
    .kp-footer a {
        margin: 0;
        color: rgba(255, 255, 255, .72);
        font-size: 13px;
        line-height: 1.75;
        text-decoration: none;
    }

    .kp-copy {
        margin-top: 32px;
        padding-top: 18px;
        border-top: 1px solid rgba(255, 255, 255, .14);
        display: flex;
        justify-content: space-between;
        gap: 18px;
        color: rgba(255, 255, 255, .58);
        font-size: 12px;
    }




    /* BLOCO 2 — ACESSOS RÁPIDOS, PROPOSTAS E MUNICÍPIOS */
    .kp-block-two {
        position: relative;
        z-index: 4;
        padding: 0 0 86px;
        background: radial-gradient(circle at 8% 96%, rgba(217, 76, 150, .09), transparent 30%), linear-gradient(180deg, #fff 0%, #fffafd 100%);
    }

    .kp-quick-access {
        position: relative;
        z-index: 5;
        margin-top: -28px;
        padding-bottom: 38px;
    }

    .kp-quick-title {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .kp-quick-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 14px;
    }

    .kp-quick-card {
        min-height: 132px;
        padding: 22px;
        display: grid;
        grid-template-columns: 48px 1fr;
        gap: 14px;
        align-items: start;
        border: 1px solid rgba(255, 255, 255, .5);
        border-radius: 22px;
        color: #fff;
        text-decoration: none;
        box-shadow: 0 18px 38px rgba(37, 17, 42, .16);
        transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
    }

        .kp-quick-card:hover,
        .kp-quick-card:focus-visible {
            color: #fff;
            transform: translateY(-5px);
            box-shadow: 0 25px 48px rgba(37, 17, 42, .22);
            filter: saturate(1.08);
        }

    .kp-quick-blue {
        background: linear-gradient(135deg, #1d4ed8, #2563eb 54%, #0891b2);
    }

    .kp-quick-orange {
        background: linear-gradient(135deg, #f97316, #fb923c 55%, #ef4444);
    }

    .kp-quick-coral {
        background: linear-gradient(135deg, #ef476f, #f43f5e 52%, #d94c96);
    }

    .kp-quick-pink {
        background: linear-gradient(135deg, #a21caf, #d946ef 50%, #ec4899);
    }

    .kp-quick-icon {
        width: 48px;
        height: 48px;
        display: grid;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, .42);
        border-radius: 16px;
        background: rgba(255, 255, 255, .13);
        backdrop-filter: blur(5px);
    }

        .kp-quick-icon svg {
            width: 25px;
            height: 25px;
        }

    .kp-quick-card strong {
        display: block;
        margin: 1px 0 7px;
        font-size: 18px;
        line-height: 1.15;
    }

    .kp-quick-copy {
        display: block;
        min-width: 0;
    }

    .kp-quick-description {
        display: block;
        color: rgba(255, 255, 255, .84);
        font-size: 12px;
        line-height: 1.45;
    }

    .kp-quick-arrow {
        grid-column: 2;
        align-self: end;
        margin-top: 7px;
        color: #fff !important;
        font-size: 18px !important;
        font-weight: 900;
    }

    .kp-feature-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 304px;
        gap: 22px;
        align-items: stretch;
    }

    .kp-feature-main,
    .kp-territory-card {
        border: 1px solid var(--kp-line);
        border-radius: 26px;
        background: #fff;
        box-shadow: 0 20px 48px rgba(54, 20, 58, .07);
    }

    .kp-feature-main {
        min-width: 0;
        padding: 26px;
    }

    .kp-feature-head {
        margin-bottom: 22px;
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 18px;
    }

    .kp-feature-head-copy {
        max-width: 650px;
    }

    .kp-feature-kicker {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        color: var(--kp-secondary);
        font-size: 11px;
        font-weight: 900;
        letter-spacing: .12em;
        text-transform: uppercase;
    }

    .kp-feature-head h2 {
        margin: 8px 0 7px;
        color: var(--kp-primary);
        font: 800 clamp(28px, 3vw, 40px)/1.05 Georgia, "Times New Roman", serif;
        letter-spacing: -.025em;
    }

    .kp-feature-head p {
        margin: 0;
        color: var(--kp-muted);
        font-size: 14px;
        line-height: 1.55;
    }

    .kp-feature-count {
        flex: 0 0 auto;
        padding: 8px 12px;
        border: 1px solid var(--kp-accent);
        border-radius: 999px;
        background: #fbf3f9;
        color: var(--kp-primary);
        font-size: 12px;
        font-weight: 850;
        white-space: nowrap;
    }

    .kp-feature-proposals {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
    }

    .kp-feature-proposal {
        position: relative;
        min-height: 260px;
        padding: 19px;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        border: 1px solid rgba(75, 22, 76, .11);
        border-radius: 21px;
        background: linear-gradient(155deg, #fff, #fffafd);
        box-shadow: 0 12px 28px rgba(54, 20, 58, .06);
        transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }

        .kp-feature-proposal::before {
            content: "";
            position: absolute;
            inset: 0 0 auto;
            height: 5px;
            background: var(--proposal-accent, var(--kp-secondary));
        }

        .kp-feature-proposal:hover,
        .kp-feature-proposal:focus-within {
            border-color: var(--proposal-accent, var(--kp-secondary));
            box-shadow: 0 20px 38px rgba(54, 20, 58, .12);
            transform: translateY(-4px);
        }

    .kp-proposal-blue {
        --proposal-accent: #2563eb;
        --proposal-soft: #e8efff;
    }

    .kp-proposal-red {
        --proposal-accent: #e11d48;
        --proposal-soft: #ffe8ee;
    }

    .kp-proposal-orange {
        --proposal-accent: #f97316;
        --proposal-soft: #fff0e4;
    }

    .kp-proposal-pink {
        --proposal-accent: #d946ef;
        --proposal-soft: #fae8ff;
    }

    .kp-proposal-green {
        --proposal-accent: #059669;
        --proposal-soft: #e5f8f0;
    }

    .kp-proposal-top {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .kp-proposal-icon {
        width: 42px;
        height: 42px;
        flex: 0 0 auto;
        display: grid;
        place-items: center;
        border-radius: 14px;
        background: var(--proposal-soft, #f5e2f0);
        color: var(--proposal-accent, var(--kp-primary));
    }

        .kp-proposal-icon svg {
            width: 22px;
            height: 22px;
        }

    .kp-proposal-tag {
        color: var(--proposal-accent, var(--kp-secondary));
        font-size: 10px;
        font-weight: 900;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .kp-feature-proposal h3 {
        margin: 17px 0 9px;
        color: var(--kp-ink);
        font-size: 18px;
        line-height: 1.18;
    }

    .kp-feature-proposal p {
        margin: 0;
        color: var(--kp-muted);
        font-size: 12.5px;
        line-height: 1.55;
    }

    .kp-feature-proposal a {
        margin-top: auto;
        padding-top: 17px;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        color: var(--proposal-accent, var(--kp-primary));
        text-decoration: none;
        font-size: 12px;
        font-weight: 900;
    }

    .kp-territory-card {
        padding: 24px;
        display: flex;
        flex-direction: column;
        background: radial-gradient(circle at 100% 0%, rgba(37, 99, 235, .11), transparent 34%), linear-gradient(180deg, #fff, #fbf8ff);
    }

        .kp-territory-card .kp-feature-kicker {
            color: #2563eb;
        }

        .kp-territory-card h2 {
            margin: 8px 0 7px;
            color: var(--kp-primary);
            font: 800 28px/1.05 Georgia, "Times New Roman", serif;
        }

        .kp-territory-card > p {
            margin: 0 0 18px;
            color: var(--kp-muted);
            font-size: 13px;
            line-height: 1.5;
        }

    .kp-territory-select-label {
        margin-bottom: 7px;
        color: var(--kp-ink);
        font-size: 12px;
        font-weight: 850;
    }

    .kp-territory-select {
        width: 100%;
        min-height: 44px;
        padding: 0 38px 0 13px;
        border: 1px solid rgba(75, 22, 76, .17);
        border-radius: 12px;
        background: #fff;
        color: var(--kp-ink);
        font: inherit;
        font-size: 13px;
        cursor: pointer;
    }

        .kp-territory-select:focus-visible {
            outline: 3px solid rgba(37, 99, 235, .22);
            outline-offset: 2px;
            border-color: #2563eb;
        }

    .kp-territory-map {
        position: relative;
        min-height: 215px;
        margin: 18px 0;
        display: grid;
        place-items: center;
        overflow: hidden;
        border: 1px solid rgba(37, 99, 235, .12);
        border-radius: 20px;
        background: radial-gradient(circle at 50% 40%, rgba(217, 76, 150, .12), transparent 32%), linear-gradient(145deg, #f4f0ff, #eff7ff);
    }

        .kp-territory-map::before,
        .kp-territory-map::after {
            content: "";
            position: absolute;
            border-radius: 50%;
            border: 1px solid rgba(37, 99, 235, .12);
        }

        .kp-territory-map::before {
            width: 170px;
            height: 170px;
        }

        .kp-territory-map::after {
            width: 115px;
            height: 115px;
        }

    .kp-amapa-map {
        position: relative;
        z-index: 1;
        width: 132px;
        height: 178px;
        filter: drop-shadow(0 12px 18px rgba(75, 22, 76, .18));
    }

    .kp-territory-status {
        margin-top: auto;
        padding: 15px;
        border: 1px dashed rgba(75, 22, 76, .20);
        border-radius: 15px;
        background: rgba(255, 255, 255, .72);
    }

        .kp-territory-status strong {
            display: block;
            color: var(--kp-primary);
            font-size: 14px;
        }

        .kp-territory-status p {
            margin: 5px 0 0;
            color: var(--kp-muted);
            font-size: 11.5px;
            line-height: 1.5;
        }

    .kp-territory-empty {
        margin-top: 10px;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        color: #7c3aed;
        font-size: 10px;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: .06em;
    }

        .kp-territory-empty::before {
            content: "";
            width: 7px;
            height: 7px;
            border-radius: 50%;
            background: #7c3aed;
        }




    /* BLOCO 3 — BANDEIRAS, TRAJETÓRIA E PARTICIPAÇÃO */
    .kp-block-three-themes {
        position: relative;
        background: radial-gradient(circle at 12% 12%, rgba(37, 99, 235, .08), transparent 26%), radial-gradient(circle at 88% 82%, rgba(217, 76, 150, .10), transparent 30%), #fff;
    }

    .kp-block-three-heading {
        margin-bottom: 30px;
        display: grid;
        grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
        gap: 44px;
        align-items: end;
    }

        .kp-block-three-heading h2 {
            max-width: 780px;
            margin: 15px 0 0;
            color: var(--kp-primary);
            font: 800 clamp(32px, 4vw, 50px)/1.04 Georgia, "Times New Roman", serif;
            letter-spacing: -.035em;
        }

        .kp-block-three-heading > p {
            margin: 0;
            color: var(--kp-muted);
            font-size: 16px;
            line-height: 1.7;
        }

    .kp-priority-themes {
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 12px;
    }

    .kp-priority-theme {
        min-width: 0;
        min-height: 210px;
        padding: 19px;
        position: relative;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, .52);
        border-radius: 23px;
        color: #fff;
        box-shadow: 0 18px 38px rgba(37, 17, 42, .14);
        transition: transform .2s ease, box-shadow .2s ease;
    }

        .kp-priority-theme::after {
            content: "";
            width: 112px;
            height: 112px;
            position: absolute;
            right: -42px;
            bottom: -52px;
            border: 24px solid rgba(255, 255, 255, .10);
            border-radius: 50%;
        }

        .kp-priority-theme:hover,
        .kp-priority-theme:focus-within {
            transform: translateY(-5px);
            box-shadow: 0 25px 48px rgba(37, 17, 42, .21);
        }

    .kp-priority-blue {
        background: linear-gradient(145deg, #1d4ed8, #0891b2);
    }

    .kp-priority-orange {
        background: linear-gradient(145deg, #f97316, #ef4444);
    }

    .kp-priority-green {
        background: linear-gradient(145deg, #059669, #0f766e);
    }

    .kp-priority-purple {
        background: linear-gradient(145deg, #7c3aed, #d946ef);
    }

    .kp-priority-yellow {
        background: linear-gradient(145deg, #d97706, #f6b817);
    }

    .kp-priority-cyan {
        background: linear-gradient(145deg, #0369a1, #2563eb);
    }

    .kp-priority-icon {
        width: 44px;
        height: 44px;
        margin-bottom: auto;
        display: grid;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, .45);
        border-radius: 14px;
        background: rgba(255, 255, 255, .13);
    }

        .kp-priority-icon svg {
            width: 23px;
            height: 23px;
        }

    .kp-priority-theme small {
        margin-top: 22px;
        display: block;
        color: rgba(255, 255, 255, .72);
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .09em;
        text-transform: uppercase;
    }

    .kp-priority-theme h3 {
        margin: 7px 0 7px;
        font-size: 18px;
        line-height: 1.12;
    }

    .kp-priority-theme p {
        margin: 0;
        color: rgba(255, 255, 255, .84);
        font-size: 11px;
        line-height: 1.48;
    }

    .kp-block-three-story {
        background: radial-gradient(circle at 94% 6%, rgba(246, 195, 68, .18), transparent 24%), linear-gradient(180deg, #f8eef7 0%, #fffafd 100%);
    }

    .kp-trajectory-layout {
        display: grid;
        grid-template-columns: minmax(310px, .72fr) minmax(0, 1.28fr);
        gap: 24px;
        align-items: stretch;
    }

    .kp-trajectory-photo {
        min-height: 590px;
        margin: 0;
        position: relative;
        overflow: hidden;
        border: 1px solid rgba(75, 22, 76, .12);
        border-radius: 32px;
        background: #25105a;
        box-shadow: 0 26px 58px rgba(54, 20, 58, .16);
    }

        .kp-trajectory-photo::after {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(0deg, rgba(31, 10, 48, .90), transparent 48%);
            pointer-events: none;
        }

        .kp-trajectory-photo picture {
            position: absolute;
            inset: 0;
            display: block;
        }

        .kp-trajectory-photo img {
            width: 100%;
            height: 100%;
            position: absolute;
            inset: 0;
            display: block;
            object-fit: cover;
            object-position: 50% 25%;
        }

        .kp-trajectory-photo figcaption {
            position: absolute;
            right: 28px;
            bottom: 26px;
            left: 28px;
            z-index: 1;
            color: #fff;
        }

            .kp-trajectory-photo figcaption span {
                display: block;
                margin-bottom: 7px;
                color: rgba(255, 255, 255, .72);
                font-size: 10px;
                font-weight: 900;
                letter-spacing: .12em;
                text-transform: uppercase;
            }

            .kp-trajectory-photo figcaption strong {
                font: 800 25px/1.1 Georgia, "Times New Roman", serif;
            }

    .kp-trajectory-content {
        padding: clamp(28px, 4vw, 52px);
        border: 1px solid var(--kp-line);
        border-radius: 32px;
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 24px 54px rgba(54, 20, 58, .08);
    }

        .kp-trajectory-content h2 {
            max-width: 720px;
            margin: 16px 0 12px;
            color: var(--kp-primary);
            font: 800 clamp(34px, 4.2vw, 54px)/1.02 Georgia, "Times New Roman", serif;
            letter-spacing: -.04em;
        }

    .kp-trajectory-intro {
        max-width: 680px;
        margin: 0;
        color: var(--kp-muted);
        font-size: 17px;
        line-height: 1.65;
    }

    .kp-trajectory-copy {
        margin-top: 28px;
        padding: 22px 24px;
        border-left: 4px solid var(--kp-secondary);
        border-radius: 0 18px 18px 0;
        background: linear-gradient(90deg, rgba(217, 76, 150, .09), rgba(217, 76, 150, .02));
    }

        .kp-trajectory-copy h3 {
            margin: 0 0 8px;
            color: var(--kp-ink);
            font-size: 20px;
            line-height: 1.2;
        }

        .kp-trajectory-copy p {
            margin: 0;
            color: var(--kp-muted);
            font-size: 14px;
            line-height: 1.7;
        }

    .kp-principles {
        margin-top: 24px;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

        .kp-principles article {
            min-height: 112px;
            padding: 17px;
            display: grid;
            grid-template-columns: 38px 1fr;
            gap: 13px;
            align-items: start;
            border: 1px solid rgba(75, 22, 76, .10);
            border-radius: 18px;
            background: var(--kp-paper);
            transition: transform .2s ease, border-color .2s ease;
        }

            .kp-principles article:hover {
                border-color: rgba(217, 76, 150, .32);
                transform: translateY(-3px);
            }

            .kp-principles article > span {
                width: 38px;
                height: 38px;
                display: grid;
                place-items: center;
                border-radius: 12px;
                background: #f5e2f0;
                color: var(--kp-primary);
                font-size: 11px;
                font-weight: 900;
            }

        .kp-principles strong {
            display: block;
            color: var(--kp-primary);
            font-size: 16px;
        }

        .kp-principles p {
            margin: 5px 0 0;
            color: var(--kp-muted);
            font-size: 12px;
            line-height: 1.45;
        }

    .kp-block-three-participation {
        padding-top: 0;
        background: var(--kp-paper);
    }

    .kp-participation-panel {
        padding: clamp(28px, 5vw, 58px);
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
        gap: 42px;
        align-items: center;
        overflow: hidden;
        border-radius: 34px;
        color: #fff;
        background: var(--kp-participation-surface);
        box-shadow: 0 30px 68px rgba(54, 20, 58, .24);
    }

        .kp-participation-panel::after {
            content: "";
            width: 280px;
            height: 280px;
            position: absolute;
            right: -105px;
            bottom: -165px;
            border: 38px solid rgba(255, 255, 255, .06);
            border-radius: 50%;
            pointer-events: none;
        }

    .kp-participation-copy {
        position: relative;
        z-index: 1;
    }

    .kp-participation-label {
        display: inline-flex;
        padding: 7px 11px;
        border: 1px solid rgba(255, 255, 255, .25);
        border-radius: 999px;
        color: rgba(255, 255, 255, .82);
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .13em;
        text-transform: uppercase;
    }

    .kp-participation-copy h2 {
        margin: 17px 0 12px;
        font: 800 clamp(35px, 4.4vw, 56px)/1.02 Georgia, "Times New Roman", serif;
        letter-spacing: -.035em;
    }

    .kp-participation-copy > p {
        max-width: 670px;
        margin: 0;
        color: rgba(255, 255, 255, .76);
        font-size: 16px;
        line-height: 1.68;
    }

    .kp-participation-actions {
        margin-top: 25px;
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

        .kp-participation-actions .kp-btn {
            min-height: 48px;
            border: 0;
            background: #fff;
            color: var(--kp-primary);
            box-shadow: none;
            cursor: pointer;
            font: inherit;
            font-weight: 900;
        }

        .kp-participation-actions .kp-btn-outline-light {
            border: 1px solid rgba(255, 255, 255, .52);
            background: transparent;
            color: #fff;
        }

    .kp-participation-note {
        margin-top: 16px;
        display: block;
        color: rgba(255, 255, 255, .58);
        font-size: 11px;
        line-height: 1.5;
    }

    .kp-participation-options {
        position: relative;
        z-index: 1;
        display: grid;
        gap: 12px;
    }

        .kp-participation-options article {
            padding: 19px;
            display: grid;
            grid-template-columns: 46px 1fr;
            gap: 15px;
            align-items: center;
            border: 1px solid rgba(255, 255, 255, .17);
            border-radius: 19px;
            background: rgba(255, 255, 255, .10);
            backdrop-filter: blur(8px);
        }

    .kp-participation-option-icon {
        width: 46px;
        height: 46px;
        display: grid;
        place-items: center;
        border-radius: 15px;
        background: rgba(255, 255, 255, .13);
        color: #ffd8ec;
    }

        .kp-participation-option-icon svg {
            width: 24px;
            height: 24px;
        }

    .kp-participation-options strong {
        display: block;
        font-size: 17px;
    }

    .kp-participation-options p {
        margin: 5px 0 0;
        color: rgba(255, 255, 255, .68);
        font-size: 12px;
        line-height: 1.45;
    }

    @media (max-width: 1100px) {
        .kp-priority-themes {
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        .kp-trajectory-layout,
        .kp-participation-panel {
            grid-template-columns: 1fr;
        }

        .kp-trajectory-photo {
            min-height: 460px;
        }

        .kp-participation-options {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    @media (max-width: 760px) {
        .kp-block-three-heading {
            grid-template-columns: 1fr;
            gap: 14px;
        }

            .kp-block-three-heading h2 {
                font-size: 31px;
            }

            .kp-block-three-heading > p {
                font-size: 13px;
            }

        .kp-priority-themes {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 9px;
        }

        .kp-priority-theme {
            min-height: 174px;
            padding: 15px;
            border-radius: 18px;
        }

        .kp-priority-icon {
            width: 38px;
            height: 38px;
        }

        .kp-priority-theme small {
            margin-top: 17px;
            font-size: 8px;
        }

        .kp-priority-theme h3 {
            font-size: 15px;
        }

        .kp-priority-theme p {
            font-size: 10px;
        }

        .kp-trajectory-layout {
            gap: 14px;
        }

        .kp-trajectory-photo {
            min-height: 390px;
            border-radius: 23px;
        }

            .kp-trajectory-photo img {
                object-position: 50% 23%;
            }

            .kp-trajectory-photo figcaption {
                right: 20px;
                bottom: 20px;
                left: 20px;
            }

        .kp-trajectory-content {
            padding: 24px 20px;
            border-radius: 23px;
        }

            .kp-trajectory-content h2 {
                font-size: 34px;
            }

        .kp-trajectory-intro {
            font-size: 14px;
        }

        .kp-trajectory-copy {
            margin-top: 20px;
            padding: 18px;
        }

        .kp-principles {
            grid-template-columns: 1fr;
        }

            .kp-principles article {
                min-height: 96px;
            }

        .kp-block-three-participation {
            padding-top: 0;
        }

        .kp-participation-panel {
            padding: 28px 21px;
            gap: 26px;
            border-radius: 24px;
        }

        .kp-participation-copy h2 {
            font-size: 37px;
        }

        .kp-participation-copy > p {
            font-size: 14px;
        }

        .kp-participation-actions {
            display: grid;
        }

            .kp-participation-actions .kp-btn {
                width: 100%;
            }

        .kp-participation-options {
            grid-template-columns: 1fr;
        }
    }

    @media (max-width: 1160px) {
        .kp-nav,
        .kp-header > .kp-container > .kp-access-group {
            display: none;
        }

        .kp-menu-toggle {
            display: grid;
            margin-left: auto;
        }

        .kp-hero-grid {
            grid-template-columns: minmax(0, 1fr) minmax(360px, .78fr);
        }

        .kp-news,
        .kp-story,
        .kp-participation,
        .kp-footer-grid {
            grid-template-columns: 1fr;
        }

        .kp-values,
        .kp-proposals,
        .kp-themes,
        .kp-agenda,
        .kp-public-data {
            grid-template-columns: repeat(2, 1fr);
        }

        .kp-municipal-panel {
            grid-template-columns: 1fr;
        }

        .kp-municipal-links {
            justify-content: flex-start;
        }
    }

    @media (max-width: 760px) {
        .kp-container {
            width: min(100% - 24px, 1180px);
        }

        .kp-preview {
            align-items: flex-start;
            flex-direction: column;
            gap: 8px;
        }

        .kp-header {
            height: 68px;
        }

        .kp-brand {
            gap: 9px;
        }

        .kp-brand-mark {
            width: 40px;
            height: 40px;
            border-radius: 12px;
            font-size: 16px;
        }

        .kp-brand strong {
            max-width: 185px;
            font-size: 13px;
        }

        .kp-menu-toggle {
            width: 40px;
            height: 40px;
        }

        .kp-hero {
            min-height: 455px;
        }

        .kp-hero-grid {
            min-height: 455px;
            display: block;
        }

        .kp-hero-copy {
            width: 67%;
            max-width: none;
            min-height: 455px;
            padding: 34px 0 30px;
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

        .kp-hero .kp-eyebrow {
            min-height: 28px;
            padding: 0 9px;
            font-size: 8px;
            letter-spacing: .09em;
        }

        .kp-hero h1 {
            margin: 14px 0 12px;
            font-size: clamp(29px, 8.7vw, 39px);
            line-height: 1.02;
            text-shadow: 0 2px 5px rgba(16, 4, 47, .95), 0 10px 28px rgba(16, 4, 47, .72);
        }

        .kp-hero p {
            max-width: 270px;
            font-size: 12px;
            line-height: 1.48;
        }

        .kp-actions {
            width: min(205px, 100%);
            margin-top: 18px;
            display: grid;
            gap: 8px;
        }

        .kp-hero .kp-btn {
            min-height: 42px;
            padding: 0 12px;
            border-radius: 11px;
            font-size: 11px;
        }

        .kp-portrait {
            width: 53%;
            min-height: 455px;
            position: absolute;
            top: 0;
            right: -12px;
            bottom: 0;
            z-index: 1;
        }

            .kp-portrait::before {
                background: linear-gradient(90deg, #25105a 0%, rgba(37, 16, 90, .82) 16%, rgba(37, 16, 90, .22) 46%, transparent 72%), linear-gradient(0deg, rgba(26, 8, 51, .20), transparent 42%);
            }

            .kp-portrait img {
                height: 455px;
                min-height: 455px;
                object-position: 47% 22%;
            }

        .kp-values,
        .kp-proposals,
        .kp-themes,
        .kp-news,
        .kp-agenda,
        .kp-public-data,
        .kp-story-panel {
            grid-template-columns: 1fr;
        }

        .kp-section {
            padding: 58px 0;
        }

        .kp-mobile-municipios {
            grid-template-columns: 1fr;
        }
    }

    @media (max-width: 420px) {
        .kp-brand strong {
            max-width: 152px;
            font-size: 12px;
        }

        .kp-hero-copy {
            width: 69%;
        }

        .kp-hero h1 {
            font-size: clamp(28px, 8.5vw, 35px);
        }

        .kp-hero p {
            max-width: 235px;
            font-size: 11.5px;
        }

        .kp-portrait {
            width: 51%;
        }

            .kp-portrait img {
                object-position: 49% 22%;
            }
    }



    @media (max-width: 1020px) {
        .kp-quick-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .kp-feature-layout {
            grid-template-columns: 1fr;
        }

        .kp-territory-card {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 250px;
            gap: 20px;
            align-items: center;
        }

            .kp-territory-card > .kp-territory-map {
                grid-column: 2;
                grid-row: 1 / span 5;
                margin: 0;
            }

            .kp-territory-card > .kp-territory-status {
                margin-top: 0;
            }
    }

    @media (max-width: 760px) {
        .kp-block-two {
            padding-bottom: 66px;
        }

        .kp-quick-access {
            margin-top: 0;
            padding: 18px 0 26px;
        }

        .kp-quick-grid {
            gap: 9px;
        }

        .kp-quick-card {
            min-height: 102px;
            padding: 15px;
            grid-template-columns: 38px 1fr;
            gap: 10px;
            border-radius: 17px;
        }

        .kp-quick-icon {
            width: 38px;
            height: 38px;
            border-radius: 12px;
        }

            .kp-quick-icon svg {
                width: 20px;
                height: 20px;
            }

        .kp-quick-card strong {
            margin-top: 0;
            font-size: 14px;
        }

        .kp-quick-description {
            display: none;
        }

        .kp-quick-arrow {
            display: none !important;
        }

        .kp-feature-main,
        .kp-territory-card {
            border-radius: 22px;
        }

        .kp-feature-main {
            padding: 20px 0 20px 18px;
            overflow: hidden;
        }

        .kp-feature-head {
            padding-right: 18px;
            align-items: flex-start;
        }

            .kp-feature-head h2 {
                font-size: 29px;
            }

            .kp-feature-head p {
                font-size: 13px;
            }

        .kp-feature-count {
            display: none;
        }

        .kp-feature-proposals {
            grid-template-columns: none;
            grid-auto-flow: column;
            grid-auto-columns: minmax(265px, 82vw);
            gap: 12px;
            padding: 2px 18px 14px 0;
            overflow-x: auto;
            overscroll-behavior-inline: contain;
            scroll-snap-type: inline mandatory;
            scrollbar-width: none;
        }

        .kp-feature-proposal {
            min-height: 240px;
            scroll-snap-align: start;
        }

        .kp-territory-card {
            padding: 21px;
            display: flex;
        }

        .kp-territory-map {
            width: 100%;
            min-height: 180px;
            margin: 17px 0;
        }
    }

    @media (max-width: 420px) {
        .kp-quick-card {
            min-height: 96px;
            padding: 13px;
        }

            .kp-quick-card strong {
                font-size: 13px;
            }

        .kp-feature-proposals {
            grid-auto-columns: minmax(250px, 84vw);
        }
    }


    @media (prefers-reduced-motion: reduce) {
        .portal-editorial *,
        .portal-editorial *::before,
        .portal-editorial *::after {
            scroll-behavior: auto !important;
            transition-duration: .01ms !important;
            animation-duration: .01ms !important;
            animation-iteration-count: 1 !important;
        }
    }


    /* BLOCO 4 — NOTÍCIAS, AGENDA, TRANSPARÊNCIA E RODAPÉ */
    .kp-block-four-news {
        background: radial-gradient(circle at 8% 12%, rgba(37, 99, 235, .09), transparent 28%), radial-gradient(circle at 94% 88%, rgba(217, 76, 150, .10), transparent 31%), #fff;
    }

    .kp-block-four-heading {
        margin-bottom: 28px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(300px, .62fr);
        gap: 44px;
        align-items: end;
    }

        .kp-block-four-heading h2,
        .kp-agenda-copy h2,
        .kp-transparency-heading h2 {
            margin: 14px 0 0;
            color: var(--kp-primary);
            font: 800 clamp(36px, 4.7vw, 62px)/.98 Georgia, "Times New Roman", serif;
            letter-spacing: -.035em;
        }

        .kp-block-four-heading > p,
        .kp-agenda-copy > p,
        .kp-transparency-heading > p {
            margin: 0;
            color: var(--kp-muted);
            font-size: 16px;
            line-height: 1.72;
        }

    .kp-empty-state {
        padding: clamp(26px, 4vw, 44px);
        display: grid;
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 24px;
        align-items: start;
        border: 1px solid rgba(75, 22, 76, .12);
        border-radius: 30px;
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 24px 58px rgba(54, 20, 58, .08);
    }

    .kp-news-empty {
        background: radial-gradient(circle at 96% 12%, rgba(37, 99, 235, .13), transparent 30%), radial-gradient(circle at 3% 100%, rgba(217, 76, 150, .10), transparent 28%), #fff;
    }

    .kp-empty-icon {
        width: 72px;
        height: 72px;
        display: grid;
        place-items: center;
        border-radius: 22px;
        color: #fff;
        box-shadow: 0 16px 32px rgba(37, 99, 235, .18);
    }

        .kp-empty-icon svg {
            width: 34px;
            height: 34px;
        }

    .kp-empty-icon-news {
        background: linear-gradient(145deg, #2563eb, #0891b2);
    }

    .kp-empty-icon-agenda {
        background: linear-gradient(145deg, #f97316, #ef476f);
        box-shadow: 0 16px 32px rgba(239, 71, 111, .18);
    }

    .kp-empty-icon-transparency {
        background: linear-gradient(145deg, #7c3aed, #d946ef);
        box-shadow: 0 16px 32px rgba(124, 58, 237, .18);
    }

    .kp-empty-kicker {
        display: block;
        margin-bottom: 7px;
        color: var(--kp-secondary);
        font-size: 10px;
        font-weight: 900;
        letter-spacing: .14em;
        text-transform: uppercase;
    }

    .kp-empty-state h3 {
        margin: 0;
        color: var(--kp-ink);
        font-size: clamp(23px, 2.4vw, 32px);
        line-height: 1.12;
    }

    .kp-empty-state-content > p {
        max-width: 760px;
        margin: 10px 0 0;
        color: var(--kp-muted);
        font-size: 14px;
        line-height: 1.66;
    }

    .kp-empty-details {
        max-width: 760px;
        margin-top: 20px;
        border: 1px solid rgba(75, 22, 76, .12);
        border-radius: 16px;
        background: rgba(255, 255, 255, .72);
    }

        .kp-empty-details summary {
            padding: 15px 17px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            cursor: pointer;
            list-style: none;
            color: var(--kp-primary);
            font-size: 13px;
            font-weight: 900;
        }

            .kp-empty-details summary::after {
                content: "+";
                color: var(--kp-secondary);
                font-size: 20px;
                line-height: 1;
            }

        .kp-empty-details[open] summary::after {
            content: "−";
        }

    .kp-empty-details-grid {
        padding: 0 17px 17px;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 9px;
    }

        .kp-empty-details-grid span {
            padding: 11px 12px;
            border-radius: 12px;
            background: #fff6fb;
            color: var(--kp-muted);
            font-size: 11px;
            font-weight: 750;
            line-height: 1.45;
        }

    .kp-block-four-agenda {
        background: radial-gradient(circle at 90% 16%, rgba(249, 115, 22, .12), transparent 31%), linear-gradient(180deg, #fffafd 0%, #fff 100%);
    }

    .kp-agenda-layout {
        display: grid;
        grid-template-columns: minmax(0, .72fr) minmax(480px, 1.28fr);
        gap: 46px;
        align-items: center;
    }

    .kp-agenda-copy .kp-eyebrow,
    .kp-transparency-heading .kp-eyebrow {
        margin-bottom: 0;
    }

    .kp-agenda-copy > p {
        margin-top: 20px;
    }

    .kp-agenda-empty {
        border-color: rgba(249, 115, 22, .18);
        background: radial-gradient(circle at 92% 8%, rgba(249, 115, 22, .12), transparent 32%), #fff;
    }

    .kp-empty-status {
        margin-top: 18px;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: #b45309;
        font-size: 10px;
        font-weight: 900;
        letter-spacing: .09em;
        text-transform: uppercase;
    }

        .kp-empty-status::before {
            content: "";
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: var(--kp-accent);
            box-shadow: 0 0 0 5px rgba(75, 22, 76, .10);
        }

    .kp-block-four-transparency {
        background: radial-gradient(circle at 8% 88%, rgba(8, 145, 178, .10), transparent 31%), radial-gradient(circle at 94% 8%, rgba(124, 58, 237, .11), transparent 28%), #f8fbff;
    }

    .kp-transparency-heading {
        max-width: 820px;
        margin-bottom: 30px;
    }

        .kp-transparency-heading > p {
            margin-top: 18px;
        }

    .kp-transparency-layout {
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
        gap: 22px;
        align-items: stretch;
    }

    .kp-transparency-empty {
        height: 100%;
        border-color: rgba(37, 99, 235, .16);
        background: radial-gradient(circle at 94% 8%, rgba(37, 99, 235, .12), transparent 32%), #fff;
    }

    .kp-transparency-guide {
        padding: 24px;
        display: grid;
        gap: 11px;
        border: 1px solid rgba(75, 22, 76, .11);
        border-radius: 30px;
        background: #fff;
        box-shadow: 0 24px 58px rgba(54, 20, 58, .07);
    }

        .kp-transparency-guide > span {
            color: var(--kp-secondary);
            font-size: 10px;
            font-weight: 900;
            letter-spacing: .13em;
            text-transform: uppercase;
        }

        .kp-transparency-guide article {
            padding: 16px;
            display: grid;
            grid-template-columns: 34px 1fr;
            gap: 12px;
            align-items: start;
            border: 1px solid rgba(37, 99, 235, .11);
            border-radius: 17px;
            background: #f8fbff;
        }

            .kp-transparency-guide article > span {
                width: 34px;
                height: 34px;
                display: grid;
                place-items: center;
                border-radius: 11px;
                background: #e8efff;
                color: #1d4ed8;
                font-size: 10px;
                font-weight: 900;
            }

        .kp-transparency-guide strong {
            display: block;
            color: var(--kp-ink);
            font-size: 14px;
        }

        .kp-transparency-guide p {
            margin: 4px 0 0;
            color: var(--kp-muted);
            font-size: 11px;
            line-height: 1.5;
        }


    /* BLOCO 6A — HIERARQUIA VISUAL DOS ESTADOS VAZIOS */
    .kp-public-status-section {
        padding: 58px 0 52px;
        background: radial-gradient(circle at 7% 8%, rgba(37, 99, 235, .08), transparent 28%), radial-gradient(circle at 94% 92%, rgba(217, 76, 150, .09), transparent 30%), #fff;
    }

    .kp-public-status-heading {
        margin-bottom: 25px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
        gap: 36px;
        align-items: end;
    }

        .kp-public-status-heading h2 {
            max-width: 720px;
            margin: 13px 0 0;
            color: var(--kp-primary);
            font: 800 clamp(31px, 3.8vw, 48px)/1.02 Georgia, "Times New Roman", serif;
            letter-spacing: -.032em;
        }

        .kp-public-status-heading > p {
            margin: 0;
            color: var(--kp-muted);
            font-size: 15px;
            line-height: 1.68;
        }

    .kp-public-status-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
    }

    .kp-public-status-card {
        min-width: 0;
        min-height: 190px;
        padding: 22px;
        display: grid;
        grid-template-columns: 50px minmax(0, 1fr);
        gap: 15px;
        align-items: start;
        scroll-margin-top: 112px;
        border: 1px solid rgba(75, 22, 76, .12);
        border-radius: 23px;
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 16px 36px rgba(54, 20, 58, .07);
    }

    .kp-public-status-news {
        border-color: rgba(37, 99, 235, .18);
        background: linear-gradient(150deg, #fff 0%, #f1f7ff 100%);
    }

    .kp-public-status-agenda {
        border-color: rgba(249, 115, 22, .20);
        background: linear-gradient(150deg, #fff 0%, #fff7ed 100%);
    }

    .kp-public-status-transparency {
        border-color: rgba(124, 58, 237, .18);
        background: linear-gradient(150deg, #fff 0%, #f6f2ff 100%);
    }

    .kp-public-status-icon {
        width: 50px;
        height: 50px;
        display: grid;
        place-items: center;
        border-radius: 15px;
        color: #fff;
        background: linear-gradient(145deg, #2563eb, #0891b2);
        box-shadow: 0 12px 24px rgba(37, 99, 235, .17);
    }

        .kp-public-status-icon svg {
            width: 25px;
            height: 25px;
        }

    .kp-public-status-agenda .kp-public-status-icon {
        background: linear-gradient(145deg, #ea580c, #e11d48);
        box-shadow: 0 12px 24px rgba(225, 29, 72, .16);
    }

    .kp-public-status-transparency .kp-public-status-icon {
        background: linear-gradient(145deg, #6d28d9, #c026d3);
        box-shadow: 0 12px 24px rgba(109, 40, 217, .16);
    }

    .kp-public-status-kicker {
        display: block;
        margin: 1px 0 7px;
        color: var(--kp-secondary);
        font-size: 11px;
        font-weight: 900;
        letter-spacing: .11em;
        text-transform: uppercase;
    }

    .kp-public-status-card h3 {
        margin: 0;
        color: var(--kp-ink);
        font-size: 21px;
        line-height: 1.18;
    }

    .kp-public-status-card p {
        margin: 10px 0 0;
        color: var(--kp-muted);
        font-size: 13px;
        line-height: 1.58;
    }

    .kp-public-status-note {
        margin: 18px 0 0;
        color: var(--kp-muted);
        font-size: 12px;
        line-height: 1.5;
        text-align: center;
    }

    @media (max-width: 980px) {
        .kp-public-status-heading {
            grid-template-columns: 1fr;
            gap: 13px;
        }

        .kp-public-status-grid {
            grid-template-columns: 1fr;
        }

        .kp-public-status-card {
            min-height: 0;
        }
    }

    @media (max-width: 560px) {
        .kp-public-status-section {
            padding: 45px 0 40px;
        }

        .kp-public-status-heading h2 {
            font-size: 31px;
        }

        .kp-public-status-heading > p {
            font-size: 13px;
        }

        .kp-public-status-card {
            padding: 18px;
            grid-template-columns: 44px minmax(0, 1fr);
            gap: 13px;
            border-radius: 19px;
        }

        .kp-public-status-icon {
            width: 44px;
            height: 44px;
            border-radius: 13px;
        }

            .kp-public-status-icon svg {
                width: 22px;
                height: 22px;
            }

        .kp-public-status-card h3 {
            font-size: 19px;
        }

        .kp-public-status-card p {
            font-size: 12px;
        }
    }

    .kp-footer-final {
        padding: 0;
        overflow: hidden;
        background: var(--kp-footer-surface);
    }

    .kp-footer-main {
        padding: 52px 0 40px;
    }

    .kp-footer-final .kp-footer-grid {
        grid-template-columns: minmax(260px, 1.35fr) repeat(2, minmax(150px, .72fr)) minmax(220px, 1fr);
        gap: 42px;
        align-items: start;
    }

    .kp-footer-brand {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        color: #fff;
        text-decoration: none;
    }

    .kp-footer-mark {
        width: 48px;
        height: 48px;
        display: grid;
        place-items: center;
        border-radius: 15px;
        background: var(--kp-button-surface);
        color: #fff;
        font-size: 17px;
        font-weight: 950;
        box-shadow: 0 14px 28px rgba(217, 76, 150, .22);
    }

    .kp-footer-brand strong {
        font-size: 16px;
        line-height: 1.25;
    }

    .kp-footer-identity > p {
        max-width: 340px;
        margin-top: 17px;
    }

    .kp-footer-final h4 {
        color: #fff;
        font-size: 12px;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .kp-footer-nav {
        display: grid;
        gap: 7px;
    }

        .kp-footer-nav a,
        .kp-footer-access a {
            display: inline-flex;
            width: fit-content;
            align-items: center;
            gap: 7px;
            transition: color .18s ease, transform .18s ease;
        }

            .kp-footer-nav a:hover,
            .kp-footer-nav a:focus-visible,
            .kp-footer-access a:hover,
            .kp-footer-access a:focus-visible {
                color: #fff;
                transform: translateX(3px);
            }

    .kp-footer-access {
        padding: 18px;
        border: 1px solid rgba(255, 255, 255, .12);
        border-radius: 20px;
        background: rgba(255, 255, 255, .07);
    }

        .kp-footer-access p + p {
            margin-top: 6px;
        }

    .kp-footer-final .kp-copy {
        margin-top: 0;
        padding: 19px 0 22px;
        border-top: 1px solid rgba(255, 255, 255, .12);
    }

    @media (max-width: 1020px) {
        .kp-block-four-heading,
        .kp-agenda-layout,
        .kp-transparency-layout {
            grid-template-columns: 1fr;
        }

        .kp-agenda-layout {
            gap: 26px;
        }

        .kp-footer-final .kp-footer-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    @media (max-width: 760px) {
        .kp-block-four-heading {
            gap: 14px;
        }

            .kp-block-four-heading h2,
            .kp-agenda-copy h2,
            .kp-transparency-heading h2 {
                font-size: 34px;
            }

            .kp-block-four-heading > p,
            .kp-agenda-copy > p,
            .kp-transparency-heading > p {
                font-size: 13px;
            }

        .kp-empty-state {
            padding: 22px 19px;
            grid-template-columns: 52px minmax(0, 1fr);
            gap: 15px;
            border-radius: 23px;
        }

        .kp-empty-icon {
            width: 52px;
            height: 52px;
            border-radius: 16px;
        }

            .kp-empty-icon svg {
                width: 26px;
                height: 26px;
            }

        .kp-empty-state h3 {
            font-size: 22px;
        }

        .kp-empty-state-content > p {
            font-size: 12px;
        }

        .kp-empty-details-grid {
            grid-template-columns: 1fr;
        }

        .kp-transparency-guide {
            padding: 18px;
            border-radius: 23px;
        }

        .kp-footer-main {
            padding: 42px 0 30px;
        }

        .kp-footer-final .kp-footer-grid {
            grid-template-columns: 1fr;
            gap: 28px;
        }

        .kp-footer-access {
            padding: 16px;
        }

        .kp-footer-final .kp-copy {
            align-items: flex-start;
            flex-direction: column;
            gap: 5px;
        }
    }



    /* BLOCO 6B — ACESSIBILIDADE, CONTRASTE E LEGIBILIDADE */
    .kp-sr-only {
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        position: absolute;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .portal-editorial :where(a, button, summary, select, input, textarea, [tabindex]):focus-visible {
        outline: 3px solid #fff;
        outline-offset: 3px;
        box-shadow: 0 0 0 6px #1d4ed8;
    }

    .portal-editorial :where(input, select, textarea):focus-visible {
        border-color: #1d4ed8;
    }

    .kp-priority-orange {
        background: linear-gradient(145deg, #c2410c, #dc2626);
    }

    .kp-priority-purple {
        background: linear-gradient(145deg, #6d28d9, #a21caf);
    }

    .kp-priority-yellow {
        background: linear-gradient(145deg, #92400e, #d97706);
    }

    .kp-priority-theme small {
        color: #fff;
        font-size: 11px;
        line-height: 1.35;
    }

    .kp-priority-theme h3 {
        font-size: 20px;
        line-height: 1.18;
    }

    .kp-priority-theme p {
        color: rgba(255, 255, 255, .96);
        font-size: 13px;
        line-height: 1.52;
    }

    .kp-priority-icon {
        border-color: rgba(255, 255, 255, .72);
        background: rgba(21, 12, 30, .16);
    }

    .kp-carousel-controls {
        display: none;
        align-items: center;
        justify-content: center;
        gap: 12px;
        margin-top: 10px;
    }

    .kp-carousel-button {
        width: 44px;
        height: 44px;
        display: inline-grid;
        place-items: center;
        border: 1px solid rgba(75, 22, 76, .20);
        border-radius: 50%;
        background: #fff;
        color: var(--kp-primary);
        cursor: pointer;
        font: 900 20px/1 system-ui, sans-serif;
        transition: transform .18s ease, background .18s ease, opacity .18s ease;
    }

        .kp-carousel-button:hover:not(:disabled) {
            background: #fbf3f9;
            transform: translateY(-2px);
        }

        .kp-carousel-button:disabled {
            opacity: .38;
            cursor: not-allowed;
        }

    .kp-carousel-status {
        min-width: 112px;
        color: var(--kp-muted);
        text-align: center;
        font-size: 13px;
        font-weight: 700;
    }

    .kp-feature-proposals:focus-visible {
        border-radius: 18px;
    }

    @media (max-width: 760px) {
        .kp-priority-theme {
            min-height: 194px;
            padding: 16px;
        }

            .kp-priority-theme small {
                margin-top: 18px;
                font-size: 10px;
                letter-spacing: .07em;
            }

            .kp-priority-theme h3 {
                font-size: 17px;
                line-height: 1.18;
            }

            .kp-priority-theme p {
                font-size: 13px;
                line-height: 1.48;
            }

        .kp-carousel-controls {
            display: flex;
        }

        .kp-feature-proposals {
            scroll-padding-inline: 0 18px;
        }
    }
