/* GOMM CIVIC V5: accessible first-visit actions and low-clutter research graphics */
.v5-utility{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:0 0 15px;color:#cfdbde;font-size:13px}
.v5-print-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.v5-print-controls button{border:1px solid #5f737a;background:#243945;color:#f3f4ec;border-radius:8px;padding:9px 12px;font-size:14px;font-weight:750;min-height:44px}
.v5-print-controls button[aria-pressed=true]{color:#1c2a33;background:#efd18d;border-color:#efd18d}
.v5-start{border-radius:17px;background:linear-gradient(120deg,#1e3540,#172935);border:1px solid #586d72;margin-top:19px;padding:22px 23px 24px}
.v5-start-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.v5-start h2{font-size:clamp(21px,2.8vw,27px);margin:3px 0 7px}
.v5-start p{font-size:15px;color:#d3e0e2;margin:0}
.v5-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:17px 0}
.v5-step{min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:8px;padding:18px 17px;min-height:142px;border:1px solid #536b73;background:#243c48;border-radius:12px;color:#f5f6f2;transition:border-color .14s,background .14s}
.v5-step:hover,.v5-step:focus-visible{background:#34505c;border-color:#f0d18c}
.v5-step strong{font-size:18px;line-height:1.25}
.v5-step small{font-size:13px;color:#d1dfe1;line-height:1.45}
.v5-step .v5-step-top{display:flex;align-items:center;gap:10px}
.v5-step-icon{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#455344;border:1px solid #a58f57;color:#ffdb90;font-size:22px;font-weight:750}
.v5-step-arrow{margin-left:auto;color:#f5d18c;font-size:23px}
.v5-official-help{display:flex;gap:9px 16px;align-items:center;flex-wrap:wrap;font-size:14px;color:#d6e3e4;padding-top:8px}
.v5-official-help a,.v5-voting a,.v5-faq a{color:#ffe09d;text-decoration:underline;text-underline-offset:3px;font-weight:750}
.v5-voting{display:flex;align-items:center;gap:10px 25px;flex-wrap:wrap;margin-top:17px;border-radius:12px;border:1px solid #4e5c60;background:#263439;padding:14px 17px}
.v5-voting .v5-vote-label{color:#f4d18a;font-size:13px;font-weight:850;letter-spacing:.04em}
.v5-voting strong{font-size:14px}
.v5-voting span{color:#d7e1df;font-size:13px}
.civic-visuals{margin-top:19px}
.v5-visual-details{border:1px solid #485f69;border-radius:13px;background:#1b2f3a;overflow:hidden}
.v5-visual-details>summary{cursor:pointer;list-style:none;padding:17px 20px;display:flex;align-items:center;gap:14px;min-height:72px}
.v5-visual-details>summary::-webkit-details-marker{display:none}
.v5-visual-details>summary:focus-visible{outline:3px solid #f2d58c;outline-offset:-4px}
.v5-visual-details>summary strong{font-size:18px;display:block;line-height:1.2}
.v5-visual-details>summary small{display:block;color:#cbdadb;font-size:13px;margin-top:3px}
.v5-chart-mark{width:42px;height:42px;border:1px solid #9e8960;border-radius:11px;display:grid;place-items:center;color:#f3d48e;font-size:27px;background:#33474c}
.v5-expand-hint{margin-left:auto;white-space:nowrap;color:#f6d797;font-size:13px;font-weight:750}
.v5-visual-details[open] .v5-expand-hint span{display:inline-block;transform:rotate(180deg)}
.v5-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:0 16px 17px}
.v5-chart-card{border:1px solid #455d68;border-radius:12px;background:#152733;padding:20px;min-width:0}
.v5-chart-card h3{font-size:20px;line-height:1.25;margin:0 0 7px}
.v5-chart-card>p{font-size:14px;color:#cfdddf;line-height:1.55;margin:0 0 15px}
.v5-race-bars{display:flex;flex-direction:column;gap:6px}
.v5-race-row{display:grid;grid-template-columns:70px minmax(90px,1fr) 25px;align-items:center;gap:12px;min-height:42px;padding:6px 10px;background:#213641;border:1px solid transparent;border-radius:9px;color:#e9f0ed;text-align:left}
.v5-race-row:hover,.v5-race-row:focus-visible{border-color:#e6c783;background:#2e4850}
.v5-race-row.is-selected{background:#3b443d;border-color:#a99965}
.v5-race-name{font-size:14px;font-weight:750}
.v5-bar-track{height:12px;background:#3b535d;border-radius:100px;overflow:hidden}
.v5-bar-fill{height:100%;display:block;background:#9ec8bb;border-radius:100px}
.v5-race-row.is-selected .v5-bar-fill{background:#f0ca7a}
.v5-race-row strong{text-align:right;color:#f5daa1;font-size:16px}
.v5-legend{font-size:12px!important;color:#bed0d2!important;line-height:1.45;margin:14px 0 0!important}
.v5-donut-wrap{display:flex;gap:21px;align-items:center;margin:18px 0;flex-wrap:wrap}
.v5-donut{--v5-share:0%;width:134px;height:134px;flex:0 0 134px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#edd08f 0 var(--v5-share),#3a535d var(--v5-share) 100%)}
.v5-donut>div{display:flex;flex-direction:column;align-items:center;justify-content:center;width:99px;height:99px;border-radius:50%;background:#152733}
.v5-donut strong{font-size:37px;line-height:1;color:#f9e4af}
.v5-donut span{color:#cbdbdb;font-size:14px}
.v5-donut-wrap>div:last-child{flex:1;min-width:170px}
.v5-donut-wrap p{font-size:13px;color:#d3e2e3;line-height:1.5;margin:6px 0}
.v5-donut-wrap .v5-donut-title{font-size:16px;color:#f3e6c8;font-weight:750}
.v5-stat-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v5-stat-split>div{background:#263d47;padding:12px;border-radius:9px;border:1px solid #516873}
.v5-stat-split strong{display:block;color:#f1d08c;font-size:28px;line-height:1.1}
.v5-stat-split span{display:block;color:#d5e3e3;font-size:12px;margin-top:5px}
.v5-faq{border:1px solid #526773;background:#1c303b;border-radius:13px;padding:18px 20px;margin-top:28px}
.v5-faq h2{font-size:22px;margin:0 0 12px}
.v5-faq details{border-top:1px solid #405763;padding:12px 2px}
.v5-faq summary{cursor:pointer;font-size:16px;font-weight:750;min-height:32px;color:#f0f0eb}
.v5-faq summary:focus-visible{outline:3px solid #f0cb81;outline-offset:3px}
.v5-faq details p{font-size:15px;color:#d3e0e3;line-height:1.6;margin:9px 0 4px;max-width:850px}
.v5-research-scope{font-size:13px;color:#cddadd;margin:10px 0 0}
.v5-large-text .v5-start p,.v5-large-text .v5-step small,.v5-large-text .v5-official-help,.v5-large-text .v5-voting span,.v5-large-text .v5-voting strong,.v5-large-text .v5-faq details p,.v5-large-text .v5-chart-card>p{font-size:18px}
.v5-large-text .v5-start h2,.v5-large-text .v5-faq h2{font-size:29px}
.v5-large-text .v5-step strong,.v5-large-text .v5-chart-card h3{font-size:23px}
.v5-large-text .race-tabs button,.v5-large-text .map-ward-buttons button,.v5-large-text .field,.v5-large-text .btn,.v5-large-text .section-actions button,.v5-large-text .v5-race-name{font-size:17px}
.v5-large-text .candidate h3{font-size:23px}
.v5-large-text .card-summary,.v5-large-text .browsehelp,.v5-large-text .app-head p,.v5-large-text .deep-issue summary,.v5-large-text .quick-intro p{font-size:17px}
.v5-large-text .candidate .cardfoot .btn,.v5-large-text .depth-switch button,.v5-large-text .issue-bar,.v5-large-text .map-info>p,.v5-large-text .v5-donut-wrap p{font-size:16px}
.v5-large-text .race-tabs button,.v5-large-text .map-ward-buttons button,.v5-large-text .candidate .cardfoot button,.v5-large-text .depth-switch button{min-height:46px}
@media(max-width:980px){.v5-visual-grid{grid-template-columns:1fr}}
@media(max-width:720px){.v5-steps{grid-template-columns:1fr}.v5-step{min-height:0;padding:14px}.v5-start{padding:17px}.v5-voting{align-items:start}.v5-visual-details>summary{padding:14px}.v5-expand-hint{font-size:12px}.v5-chart-card{padding:15px}.v5-visual-grid{padding:0 10px 10px}}
@media(max-width:420px){.v5-race-row{grid-template-columns:62px minmax(55px,1fr) 22px;gap:7px}.v5-visual-details>summary small{font-size:11px}.v5-visual-details>summary strong{font-size:16px}.v5-donut{width:110px;height:110px;flex-basis:110px}.v5-donut>div{width:82px;height:82px}.v5-donut strong{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.v5-step{transition:none}}

/* Legibility for all visitors, not just those choosing large print */
.race-tabs button,.map-ward-buttons button,.candidate .cardfoot button,.depth-switch button,.btn,.section-actions button{min-height:44px}
.map-ward-buttons button{font-size:14px;padding:10px 6px}
.candidate .cardfoot .btn{font-size:14px;padding:10px 12px}
.depth-switch button{font-size:15px}
.card-summary{font-size:14px;line-height:1.65}
.v5-voting a:focus-visible,.v5-official-help a:focus-visible{outline:3px solid #ffda92;outline-offset:3px}

.v5-share-status{color:#ffe1a2;font-size:12px;font-weight:700}
