/* Candidate profiles: one editorial palette, with campaign material and research kept distinct. */
.candidate-profile-page{--bg:#0c1216;--panel:#131c21;--line:#344148;--text:#f0f0e9;--muted:#b0bdc3;--gold:#e0c38a;background:var(--bg);color:var(--text);font-size:16px}
.candidate-profile-page main,.candidate-profile-page .site-return,.candidate-profile-page .site-footer{max-width:1400px;padding-left:40px;padding-right:40px}
.candidate-profile-page .site-header{background:#0c1216f5}
.candidate-profile-page .site-header-inner{max-width:1320px}
.candidate-profile-page .breadcrumbs{margin:18px 0 28px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.candidate-profile-page .profile-hero{padding:0 0 30px;margin-bottom:36px;border-bottom:1px solid var(--line)}
.candidate-profile-page .profile-kicker{font-size:10px;letter-spacing:.16em;color:var(--muted);margin:0 0 24px}
.candidate-profile-page .eyebrow{font-size:10px;letter-spacing:.13em;line-height:1.6;color:var(--gold)}
.candidate-profile-page .profile-hero>.eyebrow{font-size:12px;letter-spacing:.06em}
.candidate-profile-page h1{font:700 clamp(40px,4.5vw,64px)/1.08 Georgia,'Times New Roman',serif;letter-spacing:-1.8px;margin:14px 0 16px;max-width:100%;overflow-wrap:anywhere}
.candidate-profile-page .profile-hero .intro{font-size:17px;color:var(--muted);margin:0 0 20px;max-width:none}
.candidate-profile-page .profile-hero .notice{display:block;border:0;background:none;padding:0;margin:0;font-size:12px;color:var(--muted);max-width:none}
.candidate-profile-page .profile-hero .notice strong{color:var(--text);font-weight:500}
.candidate-profile-page .profile-hero .notice a{text-decoration:underline;text-underline-offset:3px}
.candidate-profile-page .profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px 44px;grid-template-rows:max-content 1fr;align-items:start}
.candidate-profile-page .profile-content{grid-column:1;grid-row:1/span 2;min-width:0}
.candidate-profile-page .profile-sidebar{grid-column:2;grid-row:2;min-width:0;align-self:start}
.candidate-profile-page .profile-layout>.profile-contents{grid-column:2;grid-row:1;margin:0;align-self:start}
.candidate-profile-page .profile-content p{line-height:1.75}
.candidate-profile-page h2{font:600 30px/1.2 Georgia,'Times New Roman',serif;letter-spacing:-.5px;margin:0 0 18px}
.candidate-profile-page h3{color:var(--text)}
.candidate-profile-page a{overflow-wrap:anywhere}
.candidate-profile-page a:focus-visible,.candidate-profile-page summary:focus-visible,.candidate-profile-page video:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.candidate-profile-page .profile-content a,.candidate-profile-page .profile-sidebar a{color:var(--gold);text-underline-offset:4px}
.candidate-profile-page .profile-content a:hover,.candidate-profile-page .profile-sidebar a:hover{text-decoration:underline;color:#f6dca7}
.candidate-profile-page .profile-contents{display:block;margin:0 0 30px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.candidate-profile-page .profile-contents>.eyebrow{margin:0 0 12px;color:var(--muted)}
.candidate-profile-page .profile-contents>a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:43px;padding:8px 0;font-size:14px;color:var(--text);border-top:1px solid #263239}
.candidate-profile-page .profile-contents>a span{color:var(--gold);font-size:15px}
.candidate-profile-page .profile-rail-card,.candidate-profile-page .campaign-contact{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:0 0 24px;position:static;color:var(--text);box-shadow:none}
.candidate-profile-page .profile-rail-card h2,.candidate-profile-page .campaign-contact h3{font:600 24px/1.25 Georgia,'Times New Roman',serif;letter-spacing:-.3px;margin:10px 0 18px;color:var(--text)}
.candidate-profile-page .profile-rail-card p,.candidate-profile-page .campaign-contact>p{font-size:13px;line-height:1.7;color:var(--muted)}
.candidate-profile-page .profile-rail-card .eyebrow,.candidate-profile-page .campaign-contact .eyebrow{font-size:10px;color:var(--gold);margin:0}
.candidate-profile-page .profile-rail-card a{font-size:13px}
.candidate-profile-page .profile-rail-card .snapshot-date,.candidate-profile-page .campaign-contact .contact-source{font-size:12px;line-height:1.65}
.candidate-profile-page .profile-rail-card .notice{padding:12px;margin:16px 0 0;background:#1c282e;font-size:12px}
.candidate-profile-page .profile-peers ul{list-style:none;padding:0;margin:0}
.candidate-profile-page .profile-peers li{border-top:1px solid var(--line);padding:12px 0}
.candidate-profile-page .profile-peers li a{font-size:15px}
.candidate-profile-page .profile-portal{border-top:2px solid var(--gold)}
.candidate-profile-page .profile-portal>a{display:inline-block;padding:7px 0;font-weight:600}
.candidate-profile-page .campaign-contact-site{font-size:13px;border-color:var(--line);background:#1a262c;margin:20px 0;border-radius:5px;padding:12px;min-height:44px}
.candidate-profile-page .campaign-contact-site:hover{background:#26363d}
.candidate-profile-page .campaign-contact dt{color:var(--muted);font-size:10px;letter-spacing:.12em;margin-top:20px}
.candidate-profile-page .campaign-contact dd{font-size:14px;line-height:1.7}
.candidate-profile-page .campaign-contact .contact-source{border-color:var(--line);padding-top:18px;margin-top:22px}
.candidate-profile-page .response-permalink{font-size:12px}
.candidate-profile-page .campaign-portrait{max-width:none;margin:0 0 24px}
.candidate-profile-page .campaign-portrait img{border-color:var(--line);border-radius:5px}
.candidate-profile-page .campaign-portrait figcaption{color:var(--muted);font-size:11px}
.candidate-profile-page .campaign-feature{margin:0 0 18px;background:var(--panel);border:1px solid var(--line);border-top:2px solid var(--gold);border-radius:8px;box-shadow:none;overflow:visible}
.candidate-profile-page .campaign-feature-head{display:block;background:none;border-bottom:1px solid var(--line);padding:28px 32px;color:var(--text)}
.candidate-profile-page .campaign-feature-head h2{font:600 clamp(28px,2.6vw,36px)/1.15 Georgia,'Times New Roman',serif;color:var(--text);letter-spacing:-.5px;margin:0}
.candidate-profile-page .campaign-feature-head .eyebrow{font-size:10px;color:var(--gold);margin:0 0 14px}
.candidate-profile-page .campaign-byline{font:13px/1.7 'DM Sans',system-ui,sans-serif;color:var(--muted);margin:14px 0 0}
.candidate-profile-page .response-seal{display:inline-block;font-size:11px;letter-spacing:.02em;padding:5px 10px;margin-top:16px;border:1px solid #58674f;color:#d5e2cb;background:#202c25;border-radius:4px}
.candidate-profile-page .response-context{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:12px 32px;border-bottom:1px solid var(--line);background:transparent}
.candidate-profile-page .response-context a,.candidate-profile-page .response-context summary{font-size:12px;line-height:1.6}
.candidate-profile-page .response-related-guides{width:100%;color:var(--muted)}
.candidate-profile-page .response-related-guides ul{padding-left:20px;line-height:1.7}
.candidate-profile-page .campaign-response-layout{display:block}
.candidate-profile-page .campaign-letter{background:transparent;color:var(--text);padding:24px 32px 32px;border-radius:0 0 8px 8px}
.candidate-profile-page .profile-response-about{color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:18px;font-size:12px;line-height:1.6}
.candidate-profile-page summary{cursor:pointer;padding:4px 0;line-height:1.6}
.candidate-profile-page .campaign-letter .response-editor-note{font:13px/1.7 'DM Sans',system-ui,sans-serif;color:var(--muted);border-color:var(--line);padding-bottom:18px;margin:0 0 24px}
.candidate-profile-page .profile-response-about .response-editor-note{border:0;margin:16px 0 0;padding:0;font-size:12px}
.candidate-profile-page .campaign-policy-section{margin:28px 0}
.candidate-profile-page .campaign-policy-section h3,.candidate-profile-page .response-verbatim .response-section-title{font:600 23px/1.3 Georgia,'Times New Roman',serif;letter-spacing:-.2px;color:var(--text);border-color:var(--line);margin:0 0 16px;padding-bottom:12px}
.candidate-profile-page .campaign-policy-points,.candidate-profile-page .response-verbatim{font:16px/1.85 'DM Sans',system-ui,sans-serif;color:var(--text)}
.candidate-profile-page .campaign-policy-points{padding-left:20px}
.candidate-profile-page .campaign-policy-points li{padding-left:6px;margin-bottom:16px}
.candidate-profile-page .campaign-policy-points li::marker{color:var(--gold)}
.candidate-profile-page .response-question{border-color:var(--line)}
.candidate-profile-page .response-question span{color:var(--gold)}
.candidate-profile-page .response-question h3{color:var(--text)}
.candidate-profile-page #campaign-reflections{margin-top:36px;border-top:2px solid var(--gold);padding-top:24px}
.candidate-profile-page #campaign-reflections .campaign-feature-head{padding:0 0 22px;margin-bottom:22px}
.candidate-profile-page .snapshot-date{font-size:12px;color:var(--muted);line-height:1.7}
.candidate-profile-page .profile-analysis{margin-top:48px;padding-top:28px;border-top:1px solid var(--line)}
.candidate-profile-page .profile-content>.profile-analysis:first-child{margin-top:0;padding-top:0;border-top:0}
.candidate-profile-page .profile-section-heading .eyebrow{margin:0 0 12px;color:var(--muted)}
.candidate-profile-page .profile-analysis>.notice{font-size:13px;line-height:1.7;background:none;padding:0;border:0;color:var(--muted);margin:0 0 28px}
.candidate-profile-page .profile-section{margin:36px 0}
.candidate-profile-page .profile-section>h2{font-size:26px}
.candidate-profile-page .profile-section>p{font-size:14px;color:var(--muted)}
.candidate-profile-page .panel{border-color:var(--line);background:var(--panel);border-radius:8px;padding:24px}
.candidate-profile-page .candidate-topic{margin:24px 0}
.candidate-profile-page .profile-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}
.candidate-profile-page .profile-topic-grid>.candidate-topic{margin:0}
.candidate-profile-page .candidate-topic h3,.candidate-profile-page .candidate-scores h3{font:600 20px/1.3 Georgia,'Times New Roman',serif;letter-spacing:0;margin:0 0 14px}
.candidate-profile-page .candidate-topic p{font-size:14px;color:var(--muted)}
.candidate-profile-page .candidate-topic a{font-size:13px}
.candidate-profile-page .candidate-effects{grid-template-columns:1fr;gap:14px;margin:20px 0}
.candidate-profile-page .candidate-effects h4{font-size:11px;line-height:1.6;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;color:var(--gold)}
.candidate-profile-page .candidate-effects p{margin:0}
.candidate-profile-page .candidate-scores{gap:12px;margin:24px 0}
.candidate-profile-page .candidate-scores .panel{padding:20px}
.candidate-profile-page .candidate-scores h3{font-size:18px}
.candidate-profile-page .candidate-scores .score-value{font:500 15px/1.5 'DM Sans',system-ui,sans-serif;color:var(--gold)}
.candidate-profile-page .candidate-scores .muted{font-size:12px}
.candidate-profile-page .campaign-media,.candidate-profile-page .campaign-portal-update{border-top:2px solid var(--gold);margin:32px 0}
.candidate-profile-page .campaign-media p,.candidate-profile-page .campaign-portal-update p{font-size:15px;color:var(--text)}
.candidate-profile-page .campaign-media>.eyebrow,.candidate-profile-page .campaign-portal-update>.eyebrow{font-size:10px;color:var(--gold)}
.candidate-profile-page .campaign-media figcaption,.candidate-profile-page .campaign-portal-update figcaption{color:var(--muted);font-size:12px;line-height:1.7}
.candidate-profile-page .campaign-media-note{background:#1d2a31;color:var(--text)}
.candidate-profile-page .campaign-media-video{background:var(--bg);border-color:var(--line)}
.candidate-profile-page .campaign-media-video h3{font:600 17px/1.5 'DM Sans',system-ui,sans-serif}
.candidate-profile-page .campaign-media-contact{border-color:var(--line)}
.candidate-profile-page #editorial-disclaimer{background:none;border:0;border-top:1px solid var(--line);border-radius:0;padding:28px 0 0;margin-top:40px;columns:2;column-gap:44px}
.candidate-profile-page #editorial-disclaimer h2{column-span:all;font-size:24px}
.candidate-profile-page #editorial-disclaimer p{font-size:12px;line-height:1.75;color:var(--muted);margin-top:0}
.candidate-profile-page #editorial-disclaimer a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
@media(min-width:1500px){.candidate-profile-page .profile-layout{grid-template-columns:minmax(0,1fr) 320px;gap:48px}}
@media(max-width:1100px){.candidate-profile-page main,.candidate-profile-page .site-return,.candidate-profile-page .site-footer{padding-left:28px;padding-right:28px}.candidate-profile-page .profile-layout{grid-template-columns:minmax(0,1fr) 280px;gap:28px}.candidate-profile-page .campaign-feature-head,.candidate-profile-page .campaign-letter{padding-left:24px;padding-right:24px}.candidate-profile-page .response-context{padding-left:24px;padding-right:24px}.candidate-profile-page .candidate-scores{grid-template-columns:1fr}.candidate-profile-page .candidate-scores .panel{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.candidate-profile-page .candidate-scores h3{grid-row:span 2;margin:0}.candidate-profile-page .candidate-scores p{margin:0 0 6px}}
@media(max-width:860px){.candidate-profile-page .profile-layout{grid-template-columns:1fr;grid-template-rows:auto;row-gap:24px}.candidate-profile-page .profile-content,.candidate-profile-page .profile-sidebar,.candidate-profile-page .profile-layout>.profile-contents{grid-column:1;grid-row:auto}.candidate-profile-page .profile-layout>.profile-contents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.candidate-profile-page .profile-contents>.eyebrow{grid-column:1/-1}.candidate-profile-page .profile-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.candidate-profile-page .profile-contents{grid-column:1/-1}.candidate-profile-page .profile-sidebar>.campaign-contact,.candidate-profile-page .profile-sidebar>.profile-rail-card{margin:0}.candidate-profile-page .profile-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.candidate-profile-page .profile-hero{margin-bottom:28px}.candidate-profile-page .campaign-contact{border-top:1px solid var(--line)}.candidate-profile-page .candidate-scores{grid-template-columns:repeat(3,minmax(0,1fr))}.candidate-profile-page .candidate-scores .panel{display:block}}
@media(max-width:560px){.candidate-profile-page main,.candidate-profile-page .site-return,.candidate-profile-page .site-footer{padding-left:20px;padding-right:20px}.candidate-profile-page .breadcrumbs{margin:12px 0 24px}.candidate-profile-page h1{font-size:42px;letter-spacing:-1px}.candidate-profile-page .profile-kicker{font-size:9px;margin-bottom:20px}.candidate-profile-page .profile-hero{padding-bottom:24px}.candidate-profile-page .profile-hero .intro{font-size:15px}.candidate-profile-page .profile-layout{gap:28px}.candidate-profile-page .profile-sidebar,.candidate-profile-page .profile-topic-grid,.candidate-profile-page .candidate-scores{grid-template-columns:1fr}.candidate-profile-page .profile-contents{grid-column:auto}.candidate-profile-page .campaign-feature-head,.candidate-profile-page .campaign-letter{padding:22px 20px}.candidate-profile-page .campaign-feature-head h2{font-size:29px}.candidate-profile-page .response-context{padding:12px 20px}.candidate-profile-page .campaign-policy-points,.candidate-profile-page .response-verbatim{font-size:16px;line-height:1.8}.candidate-profile-page .campaign-policy-section h3{font-size:22px}.candidate-profile-page .panel{padding:20px}.candidate-profile-page .candidate-scores .panel{display:grid}.candidate-profile-page #editorial-disclaimer{columns:auto}.candidate-profile-page .campaign-media-videos{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html:has(.candidate-profile-page){scroll-behavior:auto}}
@media print{.candidate-profile-page .campaign-contact-site,.candidate-profile-page .profile-rail-card .notice,.candidate-profile-page .campaign-media-note{background:#fff;color:#111}.candidate-profile-page{--bg:#fff;--panel:#fff;--line:#aaa;--text:#111;--muted:#333;--gold:#333;background:#fff;color:#111}.candidate-profile-page .site-header,.candidate-profile-page .site-return,.candidate-profile-page .profile-contents,.candidate-profile-page .profile-portal{display:none}.candidate-profile-page main{max-width:none;padding:0}.candidate-profile-page .profile-layout{display:block}.candidate-profile-page .profile-sidebar{display:block}.candidate-profile-page .campaign-feature,.candidate-profile-page .panel,.candidate-profile-page .campaign-contact{box-shadow:none;background:#fff}.candidate-profile-page .campaign-policy-section,.candidate-profile-page .profile-rail-card,.candidate-profile-page .campaign-contact{break-inside:avoid}.candidate-profile-page .response-seal{color:#111;background:#fff;border-color:#777}.candidate-profile-page .profile-response-about{display:block}.candidate-profile-page #editorial-disclaimer{columns:auto}.candidate-profile-page .profile-topic-grid{display:block}}

.candidate-profile-page .profile-layout>.profile-contents>a{min-width:0}
@media print{.candidate-profile-page .profile-layout>.profile-contents{display:none}}

html:has(.candidate-profile-page){scroll-behavior:auto}
.candidate-profile-page [id]{scroll-margin-top:148px}
@media(max-width:860px){.candidate-profile-page [id]{scroll-margin-top:96px}}
