/* Focused guide layout: bounded desktop width, state capitol hero, and mobile stacking. */
.elementor-widget-cfs-fact-sheet {
    background: linear-gradient(180deg, #edf2f7, #f7f9fb 520px);
    margin: 0 !important;
    min-width: 100%;
}

/* Comparison answer colors match their meaning across inline and modal flows. */
.cfs-answer-options button:first-child {
    background: var(--cfs-navy);
    border-color: var(--cfs-navy);
    color: #fff;
}

.cfs-answer-options button:nth-child(3) {
    background: var(--cfs-red);
    border-color: var(--cfs-red);
    color: #fff;
}

.elementor-widget-cfs-fact-sheet > .elementor-widget-container {
    width: 100%;
}

/* Keep full fact-sheet portraits comfortably framed instead of tightly cropped. */
.cfs-candidate-grid section > div {
    background: linear-gradient(145deg, #e9eef4, #cfd9e4);
}

.cfs-candidate-grid section.republican > div {
    background: linear-gradient(145deg, #a50f20, var(--cfs-red));
}

.cfs-candidate-grid section.democratic > div {
    background: linear-gradient(145deg, #061e3d, var(--cfs-navy));
}

.cfs-candidate-grid img,
.cfs-candidate-grid .cfs-candidate-keisha-bottoms img {
    display: block;
    height: 82% !important;
    margin: 0;
    max-width: 56% !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    width: auto !important;
}

.cfs-candidate-grid section > div {
    height: 300px;
}

/* The bare guide URL falls back to the race directory. Keep it contained and
   give its white headline the same navy field used in the designed preview. */
.elementor-widget-cfs-fact-sheet .cfs-directory,
.elementor-widget-cfs-guide-directory .cfs-directory {
    margin: 0 auto;
    max-width: 1460px;
    padding: 44px 32px 70px;
    width: 100%;
}

.cfs-directory .cfs-section-heading {
    align-items: center;
    background: linear-gradient(120deg, var(--cfs-dark), var(--cfs-navy));
    border-left: 9px solid var(--cfs-gold);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
    margin: 0 0 28px;
    overflow: hidden;
    padding: 30px 34px 34px;
    text-align: center;
    width: 100%;
}

.cfs-directory .cfs-section-heading > p,
.cfs-directory .cfs-section-heading > h2,
.cfs-directory .cfs-section-heading > span {
    margin: 0;
    max-width: none;
}

.cfs-directory .cfs-section-heading > h2 {
    color: var(--cfs-gold);
    font-size: clamp(2.2rem, 4vw, 4rem);
}

.cfs-directory .cfs-section-heading > p {
    color: #fff;
}

.cfs-directory .cfs-section-heading > span {
    color: #dbe6f1;
}

.cfs-directory .cfs-race-grid {
    width: 100%;
}

.cfs-directory .cfs-race-card {
    box-shadow: 0 12px 35px #0b35640d;
    width: 100%;
}

.cfs-fact-sheet {
    background: transparent;
    margin: 0 auto;
    max-width: 1460px;
    padding: 44px 0 70px;
    width: calc(100% - 64px);
}

.cfs-fact-header {
    align-items: center;
    background: #fff;
    border: 1px solid var(--cfs-line);
    border-left: 9px solid var(--cfs-gold);
    border-radius: 12px;
    box-shadow: 0 24px 60px #0b35640d;
    display: flex;
    gap: 32px;
    isolation: isolate;
    justify-content: space-between;
    min-height: 285px;
    overflow: hidden;
    padding: 38px;
    position: relative;
}

.cfs-fact-header::after {
    background: linear-gradient(90deg, #fff 0%, #fffffff2 35%, #ffffff54 57%, #ffffff05 75%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: -1;
}

.cfs-fact-header-art {
    height: 100%;
    inset: 0;
    object-fit: cover;
    object-position: center;
    position: absolute;
    width: 100%;
    z-index: -2;
}

.cfs-fact-header-copy {
    max-width: 56%;
    position: relative;
    z-index: 1;
}

.cfs-fact-header h1 {
    font-size: clamp(2.65rem, 5vw, 5.2rem);
    text-wrap: balance;
}

.cfs-fact-header span {
    display: block;
    line-height: 1.5;
    max-width: 640px;
}

.cfs-fact-header-back {
    background: #fffffff2;
    border: 2px solid var(--cfs-navy);
    border-radius: 6px;
    box-shadow: 0 10px 30px #0b356418;
    color: var(--cfs-navy);
    flex: 0 0 auto;
    font-size: .82rem;
    font-weight: 900;
    padding: 14px 18px;
    position: relative;
    text-decoration: none;
    z-index: 1;
}

.cfs-fact-header-back:hover {
    background: var(--cfs-navy);
    color: #fff;
}

.cfs-candidate-grid {
    border: 1px solid #aebbc9;
    border-radius: 10px 10px 0 0;
    margin-top: 28px;
    overflow: hidden;
}

.cfs-candidate-grid section > div {
    align-items: flex-end;
    aspect-ratio: 4 / 3;
    display: flex;
    height: auto;
    justify-content: center;
}

.cfs-candidate-grid img {
    object-position: center 20%;
}

.cfs-candidate-grid .cfs-candidate-keisha-bottoms img {
    object-fit: contain !important;
    object-position: center bottom !important;
}

.cfs-sheet-actions {
    align-items: center;
    border-radius: 0 0 10px 10px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(260px, 1fr) auto auto auto;
    justify-content: stretch;
    padding: 16px 18px;
}

.cfs-sheet-actions-copy b,
.cfs-sheet-actions-copy span {
    display: block;
}

.cfs-sheet-actions-copy b {
    color: var(--cfs-navy);
    font-size: .84rem;
}

.cfs-sheet-actions-copy span {
    color: var(--cfs-muted);
    font-size: .7rem;
    line-height: 1.35;
    margin-top: 4px;
}

.cfs-sheet-actions a,
.cfs-sheet-actions button {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 48px;
    white-space: nowrap;
}

.cfs-sheet-tools {
    padding-top: 32px;
}

/* Give every issue a clear visual rhythm instead of stacking white panels. */
.cfs-issue {
    border-color: #c4cfdb;
    box-shadow: 0 10px 30px #0b356409;
}

.cfs-issue-copy {
    background: linear-gradient(115deg, #d5b467, #e3c982);
}

.cfs-issue-copy > span {
    border-color: #fff;
    box-shadow: 0 4px 14px #061e3d24;
}

.cfs-issue-copy h2,
.cfs-issue-copy p {
    color: var(--cfs-navy);
}

.cfs-issue-copy p {
    opacity: .86;
}

.cfs-position-grid {
    border-top-color: var(--cfs-navy);
}

.cfs-position-grid > section {
    background: #f3f7fb;
}

.cfs-position-grid > section.republican {
    background: #fff4f5;
}

@media (max-width: 900px) {
    .elementor-widget-cfs-fact-sheet .cfs-directory,
    .elementor-widget-cfs-guide-directory .cfs-directory {
        padding-left: 16px;
        padding-right: 16px;
    }

    .cfs-fact-sheet {
        width: calc(100% - 32px);
    }

    .cfs-fact-header {
        align-items: flex-start;
        flex-direction: column;
        justify-content: flex-end;
        min-height: 390px;
        padding: 28px;
    }

    .cfs-fact-header::after {
        background: linear-gradient(180deg, #ffffff15 0 33%, #fffffff2 66%, #fff 100%);
    }

    .cfs-fact-header-art {
        object-position: 66% center;
    }

    .cfs-fact-header-copy {
        max-width: 100%;
    }

    .cfs-fact-header-back {
        width: 100%;
    }

    .cfs-state-hero-michigan .cfs-fact-header-art {
        object-position: 69% center;
    }

    .cfs-state-hero-north-carolina .cfs-fact-header-art {
        object-position: 72% center;
    }

    .cfs-state-hero-ohio .cfs-fact-header-art {
        object-position: 68% center;
    }

    .cfs-sheet-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .cfs-sheet-actions-copy {
        grid-column: 1 / -1;
    }

    .cfs-sheet-actions a,
    .cfs-sheet-actions button {
        white-space: normal;
    }
}

@media (max-width: 680px) {
    .elementor-widget-cfs-fact-sheet .cfs-directory,
    .elementor-widget-cfs-guide-directory .cfs-directory {
        padding: 24px 12px 48px;
    }

    .cfs-directory .cfs-section-heading {
        padding: 24px 20px;
    }

    .cfs-directory .cfs-race-card {
        grid-template-columns: 1fr;
    }

    .cfs-directory .cfs-race-portraits {
        min-height: 210px;
    }

    .cfs-fact-sheet {
        padding: 24px 0 48px;
        width: calc(100% - 24px);
    }

    .cfs-fact-header {
        display: flex;
        min-height: 0;
        padding: 0;
    }

    .cfs-fact-header::after {
        display: none;
    }

    .cfs-fact-header-art {
        height: 205px;
        inset: auto;
        object-position: 65% center;
        order: 0;
        position: relative;
        width: 100%;
        z-index: 0;
    }

    .cfs-fact-header-copy {
        order: 1;
        padding: 22px 22px 0;
    }

    .cfs-fact-header h1 {
        font-size: clamp(2.35rem, 12vw, 4rem);
    }

    .cfs-fact-header span {
        font-size: .9rem;
    }

    .cfs-fact-header-back {
        margin: 0 22px 22px;
        order: 2;
        width: calc(100% - 44px);
    }

    .cfs-candidate-grid section > div {
        aspect-ratio: 4 / 3;
        height: auto;
    }

    .cfs-sheet-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .cfs-sheet-actions-copy {
        grid-column: auto;
    }
}

/* v1.5.3: reference state pages and the compact, integrated fact-sheet banner. */
.cfs-state-page {
    --state-navy: #0b3767;
    --state-dark: #061e3d;
    --state-red: #d71932;
    --state-gold: #d5b467;
    background: #f1f4f7;
    color: #1e2a38;
    font-family: Arial, Helvetica, sans-serif;
    margin: 0 calc(50% - 50vw);
    overflow: hidden;
    padding: 52px max(24px, calc((100vw - 1320px) / 2)) 0;
    width: 100vw;
}

.cfs-state-page * { box-sizing: border-box; }
.cfs-state-hero {
    background: #fff;
    border: 1px solid #cad5e0;
    border-left: 10px solid var(--state-gold);
    border-radius: 14px 14px 0 0;
    isolation: isolate;
    min-height: 470px;
    overflow: hidden;
    position: relative;
}
.cfs-state-hero::after {
    background: linear-gradient(90deg, #fff 0%, #fffffff2 38%, #ffffff3d 65%, transparent 86%);
    content: "";
    inset: 0;
    position: absolute;
    z-index: -1;
}
.cfs-state-hero > img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    object-position: center;
    position: absolute;
    width: 100%;
    z-index: -2;
}
.cfs-state-hero > div { max-width: 650px; padding: 72px 64px; }
.cfs-state-hero a { color: var(--state-navy); font-size: .88rem; text-underline-offset: 6px; }
.cfs-state-hero p { color: var(--state-red); font-size: .82rem; font-weight: 900; letter-spacing: .14em; margin: 54px 0 12px; }
.cfs-state-hero h1 { color: var(--state-navy); font-size: clamp(3rem, 5.4vw, 5.4rem); letter-spacing: -.065em; line-height: .95; margin: 0; }
.cfs-state-hero span { color: #59687a; display: block; font-size: 1.05rem; line-height: 1.6; margin-top: 24px; max-width: 590px; }

.cfs-state-readiness {
    align-items: center;
    background: var(--state-red);
    color: #fff;
    display: flex;
    gap: 28px;
    justify-content: space-between;
    padding: 28px 34px;
}
.cfs-state-readiness small,
.cfs-state-readiness strong { display: block; }
.cfs-state-readiness small { font-size: .68rem; font-weight: 900; letter-spacing: .15em; }
.cfs-state-readiness strong { font-size: 1.2rem; margin-top: 7px; }
.cfs-state-readiness a { background: var(--state-navy); border: 1px solid var(--state-navy); border-radius: 7px; color: #fff; font-size: .74rem; font-weight: 900; padding: 14px 18px; text-decoration: none; white-space: nowrap; }

.cfs-state-race-nav {
    align-items: center;
    background: var(--state-gold);
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(280px, .85fr) repeat(2, minmax(220px, .58fr));
    padding: 34px;
}
.cfs-state-race-nav > div small,
.cfs-state-race-nav > div strong { display: block; }
.cfs-state-race-nav > div small { color: #6d531b; font-size: .65rem; font-weight: 900; letter-spacing: .14em; }
.cfs-state-race-nav > div strong { color: #1e2a38; font-size: 1.55rem; line-height: 1.2; margin-top: 8px; }
.cfs-state-race-nav > a { align-items: center; background: #fff; border-radius: 8px; color: var(--state-navy); display: flex; font-size: .8rem; justify-content: space-between; min-height: 72px; padding: 18px 20px; text-decoration: none; }
.cfs-state-race-nav > a b { font-size: 1.05rem; }
.cfs-state-race-nav > a span { color: var(--state-navy); font-weight: 900; }

.cfs-state-guides { display: grid; gap: 54px; padding: 58px 24px; }
.cfs-state-guide { background: #fff; border: 1px solid #cad5e0; border-radius: 12px; overflow: hidden; }
.cfs-state-guide > header { align-items: end; display: flex; gap: 28px; justify-content: space-between; padding: 38px 34px 20px; }
.cfs-state-guide > header small { color: #a47c28; font-size: .7rem; font-weight: 900; letter-spacing: .14em; }
.cfs-state-guide > header h2 { color: #1e2a38; font-size: 2rem; margin: 8px 0 0; }
.cfs-state-guide > header > div:last-child { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(150px, 1fr)); justify-content: end; width: min(660px, 62%); }
.cfs-state-guide > header a { border: 1px solid #b8c4d0; border-radius: 7px; color: var(--state-navy); font-size: .78rem; font-weight: 900; padding: 14px 18px; text-decoration: none; }
.cfs-state-guide > header a.download { background: var(--state-navy); border-color: var(--state-navy); color: #fff; }
.cfs-state-guide .cfs-fact-sheet { max-width: none; padding: 0; width: 100%; }
.cfs-state-guide .cfs-sheet-tools,
.cfs-state-guide .cfs-issue-table-head,
.cfs-state-guide .cfs-issue-list,
.cfs-state-guide .cfs-legal { margin-left: 34px; margin-right: 34px; }

.cfs-state-comparison-cta {
    align-items: center;
    background: var(--state-gold);
    display: flex;
    gap: 32px;
    justify-content: space-between;
    margin: 0 -24px;
    padding: 54px max(34px, calc((100vw - 1260px) / 2));
}
.cfs-state-comparison-cta small { color: #70551c; font-size: .68rem; font-weight: 900; letter-spacing: .14em; }
.cfs-state-comparison-cta h2 { font-size: 2.35rem; margin: 8px 0; }
.cfs-state-comparison-cta p { margin: 0; max-width: 720px; }
.cfs-state-comparison-cta a { background: var(--state-navy); border-radius: 7px; color: #fff; flex: 0 0 auto; font-weight: 900; padding: 18px 24px; text-decoration: none; }

.cfs-fact-sheet {
    background: transparent;
    color: var(--cfs-ink);
    margin: 0 auto;
    max-width: 1460px;
    padding: 38px 0 70px;
    width: calc(100% - 64px);
}
.cfs-fact-header-back { display: inline-flex; margin-bottom: 18px; }
.cfs-fact-masthead {
    background: var(--cfs-navy);
    color: #fff;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    min-height: 168px;
}
.cfs-fact-masthead > div { padding: 34px 40px; }
.cfs-fact-masthead p { color: var(--cfs-gold); font-size: .68rem; font-weight: 900; letter-spacing: .16em; margin: 0; }
.cfs-fact-masthead h1 { color: #fff; font-size: clamp(1.9rem, 3vw, 3rem); letter-spacing: -.04em; line-height: 1; margin: 12px 0; }
.cfs-fact-masthead span { color: #d8e3ef; font-size: .82rem; }
.cfs-fact-masthead aside { background: var(--cfs-gold); color: var(--cfs-navy); display: flex; flex-direction: column; justify-content: center; padding: 30px 38px; }
.cfs-fact-masthead aside small { font-size: .68rem; font-weight: 900; letter-spacing: .14em; }
.cfs-fact-masthead aside strong { font-size: 1.35rem; margin-top: 12px; }

.cfs-fact-intro-row {
    background: #fff;
    border: 1px solid #aebbc9;
    border-top: 0;
    display: grid;
    grid-template-columns: minmax(360px, 1fr) minmax(560px, 1.15fr);
}
.cfs-fact-intro { align-self: center; padding: 42px 40px; }
.cfs-fact-intro p { color: var(--cfs-red); font-size: .72rem; font-weight: 900; letter-spacing: .14em; margin: 0; }
.cfs-fact-intro h2 { color: var(--cfs-ink); font-size: clamp(1.9rem, 3.2vw, 3.2rem); letter-spacing: -.035em; line-height: 1; margin: 13px 0; }
.cfs-fact-intro span { color: var(--cfs-muted); font-size: .9rem; }
.cfs-fact-intro-row .cfs-candidate-grid { border: 0; border-radius: 0; margin: 0; }
.cfs-candidate-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfs-candidate-grid section { min-width: 0; }
.cfs-candidate-grid section > div,
.cfs-candidate-grid section.republican > div,
.cfs-candidate-grid section.democratic > div {
    align-items: stretch;
    aspect-ratio: auto;
    background: #dfe6ed;
    display: flex;
    height: 300px;
    justify-content: stretch;
}
.cfs-candidate-grid img,
.cfs-candidate-grid .cfs-candidate-keisha-bottoms img {
    height: 100% !important;
    margin: 0;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center 18% !important;
    width: 100% !important;
}
.cfs-candidate-grid .cfs-candidate-rick-jackson img { object-position: center 8% !important; }
.cfs-candidate-grid .cfs-candidate-mike-collins img { object-position: center 10% !important; }
.cfs-candidate-grid section + section { border-left: 4px solid #fff; }
.cfs-candidate-grid section > p { min-height: 72px; padding: 16px 18px; }
.cfs-candidate-grid section > p strong { font-size: .86rem; }
.cfs-candidate-grid section > p b { font-size: 1.55rem; }
.cfs-fact-intro-row + .cfs-sheet-actions { border-radius: 0; }

/* v1.5.4 polish: evenly spaced guide actions and blue state-page buttons. */
.cfs-state-guide > header a { align-items: center; display: flex; justify-content: center; min-height: 52px; text-align: center; }
.cfs-state-guide .cfs-sheet-actions { grid-template-columns: minmax(280px, 1.35fr) repeat(3, minmax(165px, .72fr)); }
.cfs-state-guide .cfs-sheet-actions > a,
.cfs-state-guide .cfs-sheet-actions > button { width: 100%; }

@media (max-width: 980px) {
    .cfs-state-guide > header > div:last-child { grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
    .cfs-state-guide .cfs-sheet-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cfs-state-guide .cfs-sheet-actions-copy { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
    .cfs-state-guide > header > div:last-child,
    .cfs-state-guide .cfs-sheet-actions { grid-template-columns: 1fr; }
    .cfs-state-guide .cfs-sheet-actions-copy { grid-column: auto; }
}

@media (max-width: 980px) {
    .cfs-state-page { padding-left: 16px; padding-right: 16px; }
    .cfs-state-race-nav { grid-template-columns: 1fr; }
    .cfs-state-guide > header { align-items: flex-start; flex-direction: column; }
    .cfs-fact-masthead { grid-template-columns: 1fr 220px; }
    .cfs-fact-intro-row { grid-template-columns: 1fr; }
    .cfs-state-comparison-cta { margin-left: -16px; margin-right: -16px; }
}

@media (max-width: 680px) {
    .cfs-state-hero { min-height: 560px; }
    .cfs-state-hero::after { background: linear-gradient(180deg, #ffffff24 0 26%, #fffffff3 58%, #fff 100%); }
    .cfs-state-hero > div { padding: 260px 24px 36px; }
    .cfs-state-hero p { margin-top: 28px; }
    .cfs-state-readiness,
    .cfs-state-comparison-cta { align-items: stretch; flex-direction: column; }
    .cfs-state-guide > header { padding: 28px 20px 16px; }
    .cfs-state-guide > header > div:last-child { display: grid; width: 100%; }
    .cfs-state-guide > header a { text-align: center; }
    .cfs-state-guide .cfs-sheet-tools,
    .cfs-state-guide .cfs-issue-table-head,
    .cfs-state-guide .cfs-issue-list,
    .cfs-state-guide .cfs-legal { margin-left: 16px; margin-right: 16px; }
    .cfs-fact-sheet { width: calc(100% - 24px); }
    .cfs-fact-masthead { grid-template-columns: 1fr; }
    .cfs-fact-masthead aside { padding: 18px 24px; }
    .cfs-fact-intro { padding: 30px 22px; }
    .cfs-candidate-grid section > div { height: 220px; }
}

/* v1.5.3: compact research table used by the Georgia reference and state pages. */
.cfs-issue-table-head {
    background: #fff;
    border: 1px solid #17202b;
    border-bottom: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(180px, .48fr) minmax(180px, .48fr);
    margin-top: 28px;
}
.cfs-issue-table-head > span,
.cfs-issue-table-head > b { padding: 16px 18px; }
.cfs-issue-table-head > span { background: #111; color: #fff; font-size: .68rem; font-weight: 900; }
.cfs-issue-table-head > span small { display: block; font-size: .52rem; font-weight: 600; margin-top: 4px; }
.cfs-issue-table-head > b { align-items: center; background: var(--cfs-navy); color: #fff; display: flex; font-size: .7rem; justify-content: center; letter-spacing: .12em; }
.cfs-issue-table-head > b:first-of-type { background: var(--cfs-red); }
.cfs-issue-list { display: grid; gap: 0; }
.cfs-issue {
    border: 1px solid #17202b;
    border-radius: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(360px, .96fr);
    margin-top: -1px;
    overflow: visible;
}
.cfs-issue-copy { align-items: flex-start; background: #fff; gap: 14px; padding: 18px; }
.cfs-issue-copy > span { align-items: center; background: var(--cfs-navy); border: 4px solid #f2dfab; border-radius: 50%; color: #fff; display: flex; flex: 0 0 40px; height: 40px; justify-content: center; }
.cfs-issue-copy h2 { color: var(--cfs-ink); font-size: .82rem; line-height: 1.25; margin: 0 0 8px; }
.cfs-issue-copy p { color: var(--cfs-muted); font-size: .64rem; line-height: 1.5; margin: 0; }
.cfs-position-grid { border-left: 1px solid #17202b; border-top: 0; }
.cfs-position-grid > section { align-items: center; display: flex; flex-direction: column; justify-content: center; min-height: 140px; padding: 16px; text-align: center; }
.cfs-position-grid > section + section { border-left: 1px solid #17202b; }
.cfs-position-grid > section small { font-size: .62rem; }
.cfs-position-grid > section strong { font-size: .9rem; }
.cfs-position-grid > section details { width: 100%; }
.cfs-position-grid > section summary { font-size: .58rem; margin: 8px auto 0; width: fit-content; }
.cfs-position-grid details article,
.cfs-position-grid details article p,
.cfs-position-grid details article a {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

@media (max-width: 800px) {
    .cfs-issue-table-head { display: none; }
    .cfs-issue { grid-template-columns: 1fr; margin-top: 16px; }
    .cfs-position-grid { border-left: 0; border-top: 1px solid #17202b; }
}

/* v1.5.5: every standalone, embedded, and questionnaire fact sheet shares one
   branded header and one portrait treatment. */
.cfs-fact-brand-hero {
    background: var(--cfs-navy);
    height: 220px;
    isolation: isolate;
    overflow: hidden;
    position: relative;
}
.cfs-fact-brand-hero::after {
    background: linear-gradient(90deg, #061e3df5 0%, #061e3dcc 31%, #061e3d26 64%, transparent 100%);
    content: "";
    inset: 0;
    position: absolute;
    z-index: -1;
}
.cfs-fact-brand-art {
    height: 100%;
    inset: 0;
    object-fit: cover;
    object-position: center;
    position: absolute;
    width: 100%;
    z-index: -2;
}
.cfs-fact-brand-hero > div {
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
    padding: 30px 40px;
    position: relative;
    z-index: 1;
}
.cfs-fact-brand-logo {
    display: block;
    height: auto;
    margin: 0 0 24px;
    max-width: 330px;
    width: 42%;
}
.cfs-fact-brand-hero small,
.cfs-fact-brand-hero strong { color: #fff; display: block; text-transform: uppercase; }
.cfs-fact-brand-hero small { font-size: .66rem; font-weight: 900; letter-spacing: .16em; }
.cfs-fact-brand-hero strong { font-size: 1.35rem; margin-top: 8px; }

.cfs-fact-sheet .cfs-candidate-grid section > div,
.cfs-quiz-fact-sheet .cfs-candidate-grid section > div {
    align-items: flex-end;
    height: 280px;
    justify-content: center;
    overflow: hidden;
    padding: 18px 20px 0;
}
.cfs-fact-sheet .cfs-candidate-grid img,
.cfs-fact-sheet .cfs-candidate-grid .cfs-candidate-keisha-bottoms img,
.cfs-quiz-fact-sheet .cfs-candidate-grid img {
    display: block;
    height: 100% !important;
    margin: 0 auto;
    max-height: 100% !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    width: 100% !important;
}


/* v1.7.27: published fact sheets use the clean white position cells from the
   printable reference. Questionnaire results retain their match highlights. */
.cfs-fact-sheet:not(.cfs-quiz-fact-sheet) .cfs-position-grid > section {
    background: #fff !important;
}

@media (max-width: 680px) {
    .elementor-location-header img.wp-image-948,
    .cfs-fact-brand-logo {
        filter: drop-shadow(0 0 1px rgba(255, 255, 255, .95));
        height: auto !important;
        max-width: 100% !important;
    }
    .elementor-location-header img.wp-image-948 {
        display: block !important;
        width: 100% !important;
    }
    .elementor-location-header .elementor-widget-image a {
        display: block;
        max-width: 100%;
        overflow: visible;
    }
}

/* v1.7.25: Colorado is a ballot-measure guide, not a candidate race. It uses
   the same fact-sheet structure while giving every measure a sourced YES/NO
   comparison and keeping the state/capitol brand treatment. */
.cfs-ballot-fact-sheet .cfs-ballot-intro-row {
    grid-template-columns: minmax(360px, 1fr) minmax(560px, 1.15fr);
}

.cfs-ballot-fact-sheet .cfs-ballot-intro-art {
    align-items: center;
    background-position: center;
    background-size: cover;
    display: flex;
    justify-content: center;
    min-height: 360px;
    position: relative;
}

.cfs-ballot-fact-sheet .cfs-ballot-mark {
    align-items: center;
    background: #061e3de8;
    border: 5px solid #d5b467;
    border-radius: 50%;
    box-shadow: 0 18px 45px #01081366;
    color: #fff;
    display: flex;
    flex-direction: column;
    height: 240px;
    justify-content: center;
    text-align: center;
    width: 240px;
}

.cfs-ballot-fact-sheet .cfs-ballot-mark b {
    color: #fff;
    font-size: 4rem;
    line-height: .9;
}

.cfs-ballot-fact-sheet .cfs-ballot-mark small {
    color: #d5b467;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1.45;
    margin-top: 16px;
    max-width: 188px;
}

.cfs-ballot-fact-sheet .cfs-ballot-position-grid > section {
    align-items: flex-start;
    justify-content: flex-start;
    min-height: 190px;
    text-align: left;
}

.cfs-ballot-fact-sheet .cfs-ballot-position-grid > section > p {
    color: var(--cfs-muted);
    font-size: .82rem;
    line-height: 1.55;
    margin: 10px 0 0;
}

.cfs-ballot-fact-sheet .cfs-ballot-position-grid > section.democratic {
    border-left-color: var(--cfs-navy);
}

.cfs-ballot-fact-sheet .cfs-ballot-position-grid > section.democratic > strong {
    color: var(--cfs-navy);
}

.cfs-ballot-fact-sheet .cfs-ballot-sources {
    border-top: 1px solid #17202b;
    grid-column: 1 / -1;
    margin: 0;
    padding: 16px 20px 20px;
    text-align: left;
    width: 100%;
}

.cfs-ballot-fact-sheet .cfs-ballot-sources > summary {
    color: var(--cfs-navy);
    cursor: pointer;
    font-size: .78rem !important;
    font-weight: 900;
    margin: 0 !important;
    width: fit-content;
}

.cfs-ballot-fact-sheet .cfs-ballot-sources > div {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 14px;
}

.cfs-ballot-fact-sheet .cfs-ballot-sources article {
    background: #f7f9fc;
    border: 1px solid var(--cfs-line);
    margin: 0;
    padding: 14px;
}

.cfs-ballot-fact-sheet .cfs-ballot-sources article b,
.cfs-ballot-fact-sheet .cfs-ballot-sources article a {
    display: block;
    font-size: .76rem;
}

.cfs-ballot-fact-sheet .cfs-ballot-sources article a {
    color: var(--cfs-navy);
    margin-top: 7px;
}

.cfs-ballot-fact-sheet .cfs-ballot-sources article p {
    color: var(--cfs-muted);
    font-size: .76rem;
    line-height: 1.45;
    margin: 8px 0 0;
}

@media (max-width: 980px) {
    .cfs-ballot-fact-sheet .cfs-ballot-intro-row { grid-template-columns: 1fr; }
    .cfs-ballot-fact-sheet .cfs-ballot-intro-art { min-height: 320px; }
}

@media (max-width: 680px) {
    .cfs-ballot-fact-sheet .cfs-ballot-intro-art { min-height: 280px; }
    .cfs-ballot-fact-sheet .cfs-ballot-mark { height: 200px; width: 200px; }
    .cfs-ballot-fact-sheet .cfs-ballot-mark b { font-size: 3.2rem; }
    .cfs-ballot-fact-sheet .cfs-ballot-mark small { font-size: .55rem; max-width: 164px; }
    .cfs-ballot-fact-sheet .cfs-ballot-sources > div { grid-template-columns: 1fr; }
}
.cfs-quiz-fact-sheet .cfs-user-answer {
    background: #fff;
    border: 1px solid var(--cfs-gold);
    border-radius: 999px;
    color: var(--cfs-navy);
    display: inline-block;
    font-size: .58rem;
    font-style: normal;
    font-weight: 900;
    margin-top: 10px;
    padding: 5px 8px;
}
.cfs-quiz-fact-sheet .cfs-position-grid > section.same {
    background: #fff9e9;
    box-shadow: inset 5px 0 0 var(--cfs-gold);
}
.cfs-quiz-fact-sheet .cfs-position-grid > section.different {
    background: #fff3f5;
    box-shadow: inset 5px 0 0 var(--cfs-red);
}
.cfs-quiz-fact-sheet .cfs-position-grid > section > em {
    color: var(--cfs-red);
    font-size: .55rem;
    font-style: normal;
    font-weight: 900;
    margin-top: 7px;
    text-transform: uppercase;
}
.cfs-quiz-fact-sheet .cfs-position-grid > section.same > em { color: #8a681f; }

@media (max-width: 680px) {
    .cfs-fact-brand-hero { height: 190px; }
    .cfs-fact-brand-hero > div { padding: 24px; }
    .cfs-fact-brand-logo { margin-bottom: 18px; max-width: 250px; width: 70%; }
    .cfs-fact-sheet .cfs-candidate-grid section > div,
    .cfs-quiz-fact-sheet .cfs-candidate-grid section > div { height: 210px; padding: 12px 10px 0; }
}

/* v1.5.7: one capitol masthead, official early-voting dates, and a compact
   mobile path into every fact sheet. */
.cfs-state-readiness span {
    color: #fff;
    display: block;
    font-size: .78rem;
    margin-top: 8px;
}
.cfs-state-readiness span b { color: #fff; }
.cfs-state-readiness a,
.cfs-state-readiness a:visited,
.cfs-state-readiness a:hover,
.cfs-state-readiness a:focus { color: #fff !important; }

.cfs-fact-masthead { display: none !important; }
.cfs-fact-intro-row { border-top: 1px solid #aebbc9; }
.cfs-fact-brand-art,
.cfs-state-hero > img { display: block !important; }

.cfs-state-guide > header > div:last-child {
    grid-auto-rows: 1fr;
    width: min(720px, 64%);
}
.cfs-state-guide > header a {
    height: 100%;
    min-height: 54px;
}
.cfs-state-guide > header a.download,
.cfs-state-guide > header a.download:visited,
.cfs-sheet-actions .cfs-download,
.cfs-sheet-actions .cfs-download:visited { color: #fff !important; }

.cfs-fact-sheet .cfs-candidate-grid section > div,
.cfs-quiz-fact-sheet .cfs-candidate-grid section > div {
    align-items: stretch;
    height: 300px;
    padding: 0;
}
.cfs-fact-sheet .cfs-candidate-grid img,
.cfs-fact-sheet .cfs-candidate-grid .cfs-candidate-keisha-bottoms img,
.cfs-quiz-fact-sheet .cfs-candidate-grid img {
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center 18% !important;
    width: 100% !important;
}

@media (max-width: 680px) {
    .cfs-state-page { padding-top: 18px; }
    .cfs-state-hero {
        min-height: 0;
        overflow: hidden;
    }
    .cfs-state-hero::after { display: none; }
    .cfs-state-hero > img {
        height: 185px;
        object-fit: cover;
        object-position: center;
        position: relative;
        z-index: 0;
    }
    .cfs-state-hero > div {
        max-width: none;
        padding: 28px 24px 38px;
        position: relative;
        z-index: 1;
    }
    .cfs-state-hero p { margin-top: 28px; }
    .cfs-state-hero h1 { font-size: clamp(2.7rem, 13vw, 3.8rem); }
    .cfs-state-readiness { gap: 20px; padding: 28px 24px; }
    .cfs-state-readiness a { text-align: center; width: 100%; }

    /* The state-page card should start with the visual masthead, not another
       title and three stacked action buttons. Those actions remain below. */
    .cfs-state-guide > header { display: none; }
    .cfs-fact-header-back { display: none; }
    .cfs-state-guides { padding-left: 0; padding-right: 0; }
    .cfs-state-guide .cfs-fact-sheet,
    .cfs-fact-sheet { width: 100%; }
    .cfs-fact-brand-hero { height: 185px; }
    .cfs-fact-brand-art { height: 100%; object-fit: cover; }
    .cfs-fact-brand-hero > div { padding: 22px 20px; }
    .cfs-fact-brand-logo { margin-bottom: 14px; max-width: 240px; width: 72%; }

    /* The capitol artwork already names the state and office. On phones the
       additional election-guide title panel only delays the comparison and
       repeats the same information. */
    .cfs-fact-intro { display: none; }
    .cfs-fact-intro-row { border-top: 0; }
    .cfs-fact-intro-row .cfs-candidate-grid { margin-top: 0; }
    .cfs-fact-sheet .cfs-candidate-grid section > div,
    .cfs-quiz-fact-sheet .cfs-candidate-grid section > div {
        height: clamp(190px, 52vw, 230px);
        padding: 0;
    }
    .cfs-candidate-grid section > p { min-height: 62px; padding: 12px 10px; }
    .cfs-candidate-grid section > p strong { font-size: .72rem; line-height: 1.2; }
    .cfs-candidate-grid section > p b { font-size: 1.3rem; }
}

/* v1.6.0: final responsive normalization. Keep the complete capitol artwork
   visible, remove legacy duplicate mastheads, and add compact candidate cues
   to mobile position rows. */
.cfs-fact-masthead,
.cfs-fact-sheet > .cfs-fact-masthead {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
}

.cfs-fact-brand-hero {
    background: #eef3f8;
    height: clamp(230px, 20vw, 300px);
}

.cfs-fact-brand-art {
    height: 100% !important;
    object-fit: cover !important;
    object-position: center bottom !important;
    width: 100% !important;
}

.cfs-fact-brand-hero::after {
    background: linear-gradient(90deg, #061e3df5 0%, #061e3dc7 31%, #061e3d1c 64%, transparent 100%);
}

.cfs-position-person {
    align-items: center;
    display: flex;
    justify-content: center;
}

.cfs-position-person > img,
.cfs-position-person > b {
    display: none;
}

@media (max-width: 680px) {
    /* The theme leaves article padding above shortcode content.  On a focused
       guide that becomes the stray white strip between the site header and
       the state artwork, so collapse it at the component root. */
    .cfs-fact-sheet {
        padding-top: 0 !important;
    }

    .elementor-widget-cfs-fact-sheet > .elementor-widget-container,
    .elementor-widget-cfs-fact-sheet .cfs-fact-sheet:not(.cfs-fact-sheet-embedded),
    .cfs-quiz-full-sheet > .cfs-fact-sheet {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    .cfs-fact-brand-hero {
        aspect-ratio: 3 / 1;
        height: auto;
        min-height: 132px;
    }

    .cfs-fact-brand-art {
        object-fit: cover !important;
        object-position: center bottom !important;
    }

    .cfs-fact-brand-hero > div {
        justify-content: center;
        padding: 15px 18px;
    }

    .cfs-fact-brand-logo {
        margin-bottom: 9px;
        max-width: 225px;
        width: 64%;
    }

    .cfs-fact-brand-hero small { font-size: .55rem; }
    .cfs-fact-brand-hero strong { font-size: 1rem; margin-top: 4px; }

    .cfs-fact-intro-row {
        border-top: 0 !important;
    }

    .cfs-fact-intro {
        display: none !important;
    }

    .cfs-fact-intro-row .cfs-candidate-grid {
        column-gap: 4px !important;
        margin-top: 0 !important;
    }

    .cfs-fact-intro-row .cfs-candidate-grid > section {
        border-left: 0 !important;
        min-width: 0;
    }

    .cfs-fact-sheet .cfs-candidate-grid section > div,
    .cfs-quiz-fact-sheet .cfs-candidate-grid section > div {
        align-items: stretch !important;
        aspect-ratio: 4 / 5;
        height: auto !important;
        padding: 0 !important;
    }

    .cfs-fact-sheet .cfs-candidate-grid img,
    .cfs-fact-sheet .cfs-candidate-grid .cfs-candidate-keisha-bottoms img,
    .cfs-quiz-fact-sheet .cfs-candidate-grid img {
        height: 100% !important;
        margin: 0 !important;
        max-height: none !important;
        max-width: none !important;
        object-fit: cover !important;
        object-position: center 18% !important;
        width: 100% !important;
    }

    .cfs-fact-sheet .cfs-candidate-grid section > p,
    .cfs-quiz-fact-sheet .cfs-candidate-grid section > p {
        min-height: 62px;
    }

    .cfs-fact-sheet .cfs-issue-copy h2,
    .cfs-quiz-fact-sheet .cfs-issue-copy h2 {
        font-size: clamp(.78rem, 3.6vw, .96rem) !important;
        letter-spacing: 0 !important;
        line-height: 1.25 !important;
    }

    .cfs-fact-sheet .cfs-issue-copy p,
    .cfs-quiz-fact-sheet .cfs-issue-copy p {
        font-size: .72rem !important;
        line-height: 1.5 !important;
    }

    .cfs-position-person {
        gap: 9px;
        margin-bottom: 7px;
    }

    .cfs-position-person > img {
        border: 2px solid #fff;
        border-radius: 50%;
        display: block;
        flex: 0 0 42px;
        height: 42px !important;
        margin: 0 !important;
        max-width: 42px !important;
        object-fit: cover !important;
        object-position: center 18% !important;
        width: 42px !important;
    }

    .cfs-position-person > b {
        align-items: center;
        background: var(--cfs-navy);
        border: 2px solid #fff;
        border-radius: 50%;
        color: #fff;
        display: flex;
        flex: 0 0 42px;
        height: 42px;
        justify-content: center;
        width: 42px;
    }

    .cfs-position-person > small {
        font-size: .62rem !important;
        line-height: 1.2;
    }
}

/* v1.6.3: the state artwork is authored at an exact 3:1 ratio. Preserve that
   ratio on larger screens so the complete state silhouette and capitol remain
   visible instead of vertically cropping the artwork to the older short band. */
@media (min-width: 681px) {
    .cfs-fact-brand-hero {
        aspect-ratio: 3 / 1;
        height: auto !important;
        min-height: 0;
    }

    .cfs-fact-brand-art {
        object-fit: cover !important;
        object-position: center !important;
    }
}

/* v1.6.8: rebalance the online fact-sheet type scale in desktop browsers.
   Issue headings no longer dominate, while candidate/source text remains
   comfortably readable in Edge, Chrome, and Safari. */
@media (min-width: 801px) {
    .cfs-fact-sheet .cfs-issue-copy h2,
    .cfs-quiz-fact-sheet .cfs-issue-copy h2 {
        font-size: clamp(1.05rem, 1.18vw, 1.24rem) !important;
        letter-spacing: -.012em !important;
        line-height: 1.28 !important;
    }

    .cfs-fact-sheet .cfs-issue-copy p,
    .cfs-quiz-fact-sheet .cfs-issue-copy p {
        font-size: .84rem !important;
        line-height: 1.52 !important;
    }

    .cfs-fact-sheet .cfs-position-grid > section small,
    .cfs-quiz-fact-sheet .cfs-position-grid > section small {
        font-size: .82rem !important;
        line-height: 1.25;
    }

    .cfs-fact-sheet .cfs-position-grid > section strong,
    .cfs-quiz-fact-sheet .cfs-position-grid > section strong {
        font-size: 1.08rem !important;
        line-height: 1.15;
    }

    .cfs-fact-sheet .cfs-position-grid > section summary,
    .cfs-quiz-fact-sheet .cfs-position-grid > section summary {
        font-size: .76rem !important;
        line-height: 1.35;
    }

    .cfs-issue-table-head > span,
    .cfs-issue-table-head > b {
        font-size: .8rem;
    }

    .cfs-issue-table-head > span small {
        font-size: .68rem;
    }
}

.cfs-candidate-james-talarico img,
.cfs-candidate-amy-acton img {
    object-fit: cover !important;
    object-position: center 18% !important;
}

/* v1.7.4: exact Million Voices portrait treatment in every focused sheet. */
.cfs-fact-sheet .cfs-candidate-grid section > div,
.cfs-quiz-fact-sheet .cfs-candidate-grid section > div {
    align-items: stretch !important;
    aspect-ratio: 6 / 7;
    height: auto !important;
    padding: 0 !important;
}
.cfs-fact-sheet .cfs-candidate-grid section.republican > div,
.cfs-quiz-fact-sheet .cfs-candidate-grid section.republican > div {
    background: #d71932 !important;
}
.cfs-fact-sheet .cfs-candidate-grid section.democratic > div,
.cfs-quiz-fact-sheet .cfs-candidate-grid section.democratic > div {
    background: #0b3767 !important;
}
.cfs-fact-sheet .cfs-candidate-grid img,
.cfs-fact-sheet .cfs-candidate-grid .cfs-candidate-keisha-bottoms img,
.cfs-quiz-fact-sheet .cfs-candidate-grid img {
    height: 100% !important;
    margin: 0 !important;
    max-height: none !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center !important;
    width: 100% !important;
}

/* v1.7.28: party treatments are fixed across published sheets and generated
   questionnaire results. They no longer change with match/mismatch status. */
.cfs-fact-sheet:not(.cfs-ballot-fact-sheet) .cfs-position-grid > section.republican,
.cfs-quiz-fact-sheet .cfs-position-grid > section.republican {
    background: #fff9e9 !important;
    box-shadow: inset 5px 0 0 var(--cfs-gold) !important;
}
.cfs-fact-sheet:not(.cfs-ballot-fact-sheet) .cfs-position-grid > section.democratic,
.cfs-quiz-fact-sheet .cfs-position-grid > section.democratic {
    background: #f3f7fb !important;
    box-shadow: inset 5px 0 0 var(--cfs-navy) !important;
}

/* v1.7.30: keep Colorado's authored 3:1 state banner visible in both the
   masthead and ballot-measure feature panel. */
.cfs-ballot-fact-sheet .cfs-fact-brand-art {
    object-fit: cover !important;
    object-position: center !important;
}
.cfs-ballot-fact-sheet .cfs-ballot-intro-art {
    background-position: center !important;
}
.cfs-ballot-fact-sheet .cfs-ballot-intro-art--solid {
    background-color: #7f90a3;
    background-image: none !important;
}
.cfs-ballot-fact-sheet .cfs-legal a {
    color: var(--cfs-navy);
    font-weight: 800;
}
