:root{--cfs-navy:#0b3767;--cfs-dark:#061e3d;--cfs-red:#d71932;--cfs-gold:#d5b467;--cfs-ink:#1e2a38;--cfs-muted:#647184;--cfs-line:#d4dde7;--cfs-paper:#fff}*{box-sizing:border-box}.cfs-directory,.cfs-comparison,.cfs-fact-sheet,.cfs-state-widget{font-family:Arial,Helvetica,sans-serif}.cfs-section-heading{align-items:end;color:#fff;display:flex;gap:34px;justify-content:space-between;margin-bottom:28px}.cfs-section-heading>p{color:var(--cfs-gold);font-size:.75rem;font-weight:900;letter-spacing:.14em;margin:0}.cfs-section-heading h2{font-size:clamp(2.4rem,4vw,4rem);letter-spacing:-.05em;line-height:1;margin:0}.cfs-section-heading>span{color:#dbe6f1;font-size:1rem;line-height:1.55;max-width:520px}.cfs-race-grid{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.cfs-race-card{background:#fff;border:1px solid #cbd6e2;border-radius:12px;color:var(--cfs-navy);display:grid;grid-template-columns:38% 62%;min-height:260px;overflow:hidden;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.cfs-race-card:hover{box-shadow:0 18px 45px #020c1a40;transform:translateY(-3px)}.cfs-race-portraits{background:#e8eef4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden}.cfs-race-portraits i{align-items:center;display:flex;font-style:normal;justify-content:center;min-width:0;overflow:hidden}.cfs-race-portraits i.republican{background:var(--cfs-red)}.cfs-race-portraits i.democratic{background:var(--cfs-navy)}.cfs-race-portraits img{height:100%;object-fit:cover;object-position:center 18%;width:100%}.cfs-race-portraits b{color:#fff;font-size:2rem}.cfs-race-copy{align-self:center;display:flex;flex-direction:column;padding:32px}.cfs-race-copy small{color:var(--cfs-red);font-size:.72rem;font-weight:900;letter-spacing:.14em}.cfs-race-copy strong{font-size:2rem;letter-spacing:-.04em;margin-top:15px}.cfs-race-copy em{color:var(--cfs-muted);font-size:.84rem;font-style:normal;margin-top:13px}.cfs-race-copy>b{color:var(--cfs-red);font-size:.82rem;margin-top:30px}.cfs-comparison{background:#fff;border:4px solid var(--cfs-gold);border-radius:12px;color:var(--cfs-ink);overflow:hidden}.cfs-comparison-top{align-items:center;background:var(--cfs-gold);color:var(--cfs-navy);display:flex;font-size:.75rem;font-weight:900;justify-content:space-between;letter-spacing:.12em;padding:18px 24px}.cfs-comparison-top b{background:var(--cfs-navy);border-radius:999px;color:#fff;font-size:.62rem;padding:7px 10px}.cfs-progress{background:#e6eaf0;height:6px}.cfs-progress i{background:var(--cfs-red);display:block;height:100%;transition:width .2s ease;width:12%}.cfs-comparison-stage{padding:38px}.cfs-comparison-stage>p{color:var(--cfs-red);font-size:.72rem;font-weight:900;letter-spacing:.14em;margin:0 0 8px}.cfs-comparison-stage h2{color:var(--cfs-navy);font-size:clamp(1.8rem,3vw,3rem);letter-spacing:-.04em;line-height:1.05;margin:0 0 13px}.cfs-comparison-stage>span,.cfs-question-description{color:var(--cfs-muted);font-size:1rem;line-height:1.55}.cfs-comparison-controls{display:grid;gap:12px;grid-template-columns:minmax(200px,.8fr) minmax(220px,1.2fr);margin-top:26px}.cfs-comparison-controls label>span{clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.cfs-comparison-controls select,.cfs-comparison-controls button,.cfs-race-options button,.cfs-answer-options button,.cfs-result-actions a,.cfs-result-actions button{border-radius:6px;font:inherit;font-weight:800;min-height:56px;padding:14px 18px}.cfs-comparison-controls select{background:#fff;border:1px solid #9dadbd;color:var(--cfs-navy);width:100%}.cfs-comparison-controls button,.cfs-race-options button{background:var(--cfs-red);border:0;color:#fff}.cfs-comparison-controls button:disabled{background:#cbd2db;cursor:not-allowed}.cfs-race-options{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:25px}.cfs-race-options button{text-align:left}.cfs-question-meta{color:var(--cfs-red);font-size:.72rem;font-weight:900;margin-bottom:10px}.cfs-answer-options{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:26px}.cfs-answer-options button{background:#fff;border:2px solid var(--cfs-navy);color:var(--cfs-navy)}.cfs-answer-options button:first-child{border-color:var(--cfs-red);color:var(--cfs-red)}.cfs-score-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}.cfs-score-grid article{border:2px solid var(--cfs-line);border-radius:8px;padding:22px}.cfs-score-grid article.top{border-color:var(--cfs-gold);box-shadow:inset 0 5px 0 var(--cfs-gold)}.cfs-score-grid strong,.cfs-score-grid b,.cfs-score-grid small{display:block}.cfs-score-grid strong{color:var(--cfs-navy)}.cfs-score-grid b{font-size:1.7rem;margin-top:10px}.cfs-score-grid small{color:var(--cfs-muted)}.cfs-result-actions{display:flex;gap:12px;margin-top:24px}.cfs-result-actions a{align-items:center;background:var(--cfs-red);color:#fff;display:flex;text-decoration:none}.cfs-result-actions button{background:#fff;border:2px solid var(--cfs-navy);color:var(--cfs-navy)}.cfs-state-widget{display:grid;gap:16px}.cfs-state-race-card{align-items:center;background:#fff;border:1px solid var(--cfs-line);border-left:7px solid var(--cfs-gold);border-radius:9px;color:var(--cfs-navy);display:flex;justify-content:space-between;padding:24px;text-decoration:none}.cfs-state-race-card span>*{display:block}.cfs-state-race-card small{color:var(--cfs-red);font-size:.7rem;font-weight:900;letter-spacing:.12em}.cfs-state-race-card strong{font-size:1.8rem;margin-top:8px}.cfs-state-race-card em{color:var(--cfs-muted);font-size:.85rem;font-style:normal;margin-top:6px}.cfs-state-race-card>b{color:var(--cfs-red);font-size:.82rem}.cfs-fact-sheet{background:#f1f4f8;color:var(--cfs-ink)}.cfs-fact-header{background:#fff;border:1px solid var(--cfs-line);border-left:8px solid var(--cfs-gold);border-radius:12px;padding:38px}.cfs-fact-header p{color:var(--cfs-red);font-size:.72rem;font-weight:900;letter-spacing:.14em;margin:0}.cfs-fact-header h1{color:var(--cfs-navy);font-size:clamp(2.7rem,5vw,5rem);letter-spacing:-.06em;line-height:.95;margin:14px 0}.cfs-fact-header span{color:var(--cfs-muted);font-size:1rem}.cfs-candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:26px}.cfs-candidate-grid section{background:#fff;overflow:hidden}.cfs-candidate-grid section+section{border-left:5px solid #fff}.cfs-candidate-grid section>div{background:#e3e9f0;height:360px;overflow:hidden}.cfs-candidate-grid section.republican>div{background:var(--cfs-red)}.cfs-candidate-grid section.democratic>div{background:var(--cfs-navy)}.cfs-candidate-grid img{height:100%;object-fit:cover;object-position:center 15%;width:100%}.cfs-candidate-grid section>div>b{align-items:center;color:#fff;display:flex;font-size:3rem;height:100%;justify-content:center}.cfs-candidate-grid section>p{align-items:center;background:var(--cfs-navy);color:#fff;display:flex;justify-content:space-between;margin:0;padding:18px 22px}.cfs-candidate-grid section.republican>p{background:var(--cfs-red)}.cfs-candidate-grid section>p strong{font-size:1.05rem}.cfs-candidate-grid section>p b{font-size:1.8rem}.cfs-sheet-actions{align-items:center;background:#fff;border:1px solid var(--cfs-line);display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:18px}.cfs-sheet-actions a,.cfs-sheet-actions button{background:#fff;border:2px solid var(--cfs-navy);border-radius:6px;color:var(--cfs-navy);font:inherit;font-size:.82rem;font-weight:900;padding:14px 17px;text-decoration:none}.cfs-sheet-actions .cfs-download{background:var(--cfs-navy);color:#fff}.cfs-sheet-tools{align-items:end;display:flex;justify-content:space-between;padding:28px 0 16px}.cfs-sheet-tools label{color:var(--cfs-navy);font-size:.76rem;font-weight:900}.cfs-sheet-tools input{background:#fff;border:1px solid #9dadbd;border-radius:5px;display:block;font:inherit;margin-top:7px;min-width:300px;padding:12px}.cfs-sheet-tools>span{color:var(--cfs-muted);font-size:.75rem}.cfs-issue{background:#fff;border:1px solid var(--cfs-line);border-radius:10px;margin-bottom:16px;overflow:hidden}.cfs-issue-copy{display:grid;gap:16px;grid-template-columns:44px minmax(0,1fr);padding:24px}.cfs-issue-copy>span{align-items:center;background:var(--cfs-navy);border:3px solid var(--cfs-gold);border-radius:50%;color:#fff;display:flex;font-size:.7rem;font-weight:900;height:40px;justify-content:center;width:40px}.cfs-issue-copy h2{color:var(--cfs-navy);font-size:1.25rem;line-height:1.2;margin:0}.cfs-issue-copy p{color:var(--cfs-muted);font-size:.92rem;line-height:1.55;margin:8px 0 0}.cfs-position-grid{border-top:5px solid #111;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.cfs-position-grid>section{border-left:6px solid var(--cfs-navy);padding:22px}.cfs-position-grid>section.republican{border-left-color:var(--cfs-red)}.cfs-position-grid small,.cfs-position-grid strong{display:block}.cfs-position-grid small{color:var(--cfs-muted);font-size:.7rem;font-weight:800}.cfs-position-grid strong{color:var(--cfs-navy);font-size:1.25rem;margin-top:7px}.cfs-position-grid .republican>strong{color:var(--cfs-red)}.cfs-position-grid details{margin-top:12px}.cfs-position-grid summary{cursor:pointer;font-size:.8rem;font-weight:800}.cfs-position-grid details article{border-top:1px solid var(--cfs-line);margin-top:12px;padding-top:12px}.cfs-position-grid details article b,.cfs-position-grid details article a{display:block;font-size:.78rem}.cfs-position-grid details article a{color:var(--cfs-navy);margin-top:5px}.cfs-position-grid details article p{font-size:.82rem;line-height:1.55;margin:9px 0 0}.cfs-legal{color:var(--cfs-muted);font-size:.78rem;line-height:1.55;padding:25px 0}.cfs-notice{background:#fff8e8;border-left:5px solid var(--cfs-gold);color:var(--cfs-ink);padding:18px}.cfs-hidden{display:none!important}@media(max-width:980px){.cfs-race-grid{grid-template-columns:1fr}.cfs-section-heading{align-items:flex-start;flex-direction:column}.cfs-candidate-grid section>div{height:300px}}@media(max-width:680px){.cfs-race-card{grid-template-columns:42% 58%;min-height:220px}.cfs-race-copy{padding:20px}.cfs-race-copy strong{font-size:1.4rem}.cfs-race-copy em{font-size:.72rem}.cfs-comparison-stage{padding:25px 18px}.cfs-comparison-controls,.cfs-race-options,.cfs-answer-options,.cfs-score-grid{grid-template-columns:1fr}.cfs-result-actions{align-items:stretch;flex-direction:column}.cfs-result-actions a,.cfs-result-actions button{justify-content:center;width:100%}.cfs-state-race-card{align-items:flex-start;flex-direction:column;gap:20px}.cfs-candidate-grid section>div{height:210px}.cfs-candidate-grid section>p{padding:13px}.cfs-candidate-grid section>p strong{font-size:.72rem}.cfs-sheet-actions{align-items:stretch;flex-direction:column}.cfs-sheet-actions a,.cfs-sheet-actions button{text-align:center;width:100%}.cfs-sheet-tools{align-items:stretch;flex-direction:column;gap:12px}.cfs-sheet-tools input{min-width:0;width:100%}.cfs-position-grid{grid-template-columns:1fr}.cfs-position-grid>section+section{border-top:1px solid var(--cfs-line)}}

