/* Vote Smart KE — 2027 Election Hub */
.vsk-election-hub {
	--election-ink: #102b3e;
	--election-text: #40545f;
	--election-muted: #647780;
	--election-green: #12534c;
	--election-dark: #0b3d39;
	--election-gold: #e4b54d;
	--election-border: #dce6e2;
	color: var(--election-text);
	font-family: inherit;
}
.vsk-election-hub *, .vsk-election-hub *::before, .vsk-election-hub *::after { box-sizing: border-box; }
.vsk-election-container { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.vsk-election-hub h1, .vsk-election-hub h2, .vsk-election-hub h3 { color: var(--election-ink); letter-spacing: -.025em; }
.vsk-election-hub p { line-height: 1.68; }
.vsk-election-hub a { text-underline-offset: 3px; }
.vsk-election-hub a:focus-visible { outline: 3px solid #d99c23; outline-offset: 4px; border-radius: 4px; }
.vsk-election-hub svg.vske-icon { display: block; width: 23px; height: 23px; max-width: 23px; max-height: 23px; fill: currentColor; }
.vsk-election-hero { position: relative; overflow: hidden; padding: clamp(64px, 8vw, 98px) 0; background: linear-gradient(112deg, #eaf2ed 0%, #f3f5ef 55%, #e8f0ec 100%); }
.vsk-election-hero::after { position: absolute; top: -200px; right: -115px; width: 530px; height: 530px; border: 1px solid rgba(18,83,76,.09); border-radius: 50%; box-shadow: 0 0 0 58px rgba(18,83,76,.025), 0 0 0 116px rgba(18,83,76,.018); content: ""; pointer-events: none; }
.vsk-election-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.12fr) minmax(310px,.7fr); align-items: center; gap: clamp(44px,8vw,106px); }
.vsk-election-hero-copy { max-width: 720px; }
.vsk-election-eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; color: var(--election-green); font-size: .74rem; font-weight: 800; letter-spacing: .105em; line-height: 1.4; text-transform: uppercase; }
.vsk-election-eyebrow > span { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: var(--election-gold); box-shadow: 0 0 0 4px rgba(228,181,77,.18); }
.vsk-election-hero h1 { max-width: 720px; margin: 0 0 18px; font-size: clamp(2.65rem,5.4vw,4.45rem); font-weight: 760; line-height: 1.03; }
.vsk-election-lead { max-width: 670px; margin: 0; color: #405761; font-size: clamp(1.05rem,1.55vw,1.23rem); line-height: 1.72; }
.vsk-election-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.vsk-election-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 9px; padding: 12px 17px; border: 1px solid transparent; border-radius: 6px; font-size: .9rem; font-weight: 750; text-decoration: none; transition: background .18s ease, transform .18s ease; }
.vsk-election-button:hover { transform: translateY(-1px); }
.vsk-election-button svg.vske-icon { width: 18px; height: 18px; max-width: 18px; max-height: 18px; }
.vsk-election-button-primary { color: #fff; background: var(--election-green); box-shadow: 0 7px 17px rgba(18,83,76,.15); }
.vsk-election-button-primary:hover { color: #fff; background: var(--election-dark); }
.vsk-election-button-secondary { color: var(--election-dark); border-color: #b8cbc3; background: rgba(255,255,255,.62); }
.vsk-election-button-secondary:hover { color: var(--election-dark); background: #fff; }
.vsk-election-hero-caption { margin: 19px 0 0; color: #667771; font-size: .78rem; font-weight: 700; letter-spacing: .04em; }
.vsk-election-date-card { max-width: 390px; padding: 27px; border: 1px solid rgba(255,255,255,.82); border-radius: 13px; background: rgba(255,255,255,.9); box-shadow: 0 19px 48px rgba(16,43,62,.09); }
.vsk-election-date-icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 20px; border-radius: 13px; color: var(--election-green); background: #eaf2ed; }
.vsk-election-date-icon svg.vske-icon { width: 24px; height: 24px; max-width: 24px; max-height: 24px; }
.vsk-election-date-label { margin: 0 0 7px; color: #667770; font-size: .76rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.vsk-election-date { margin: 0; color: var(--election-ink); font-size: 1.2rem; font-weight: 650; line-height: 1.25; }
.vsk-election-date strong { color: var(--election-green); font-size: 2.05rem; font-weight: 800; }
.vsk-election-date-note { margin: 12px 0 16px; color: #62747a; font-size: .85rem; }
.vsk-election-date-card > a { display: inline-flex; gap: 8px; color: var(--election-green); font-size: .84rem; font-weight: 800; text-decoration: underline; }
.vsk-election-start { padding: clamp(62px,7.5vw,89px) 0; background: #fff; }
.vsk-election-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 28px; }
.vsk-election-section-heading .vsk-election-eyebrow { margin-bottom: 11px; }
.vsk-election-section-heading h2, .vsk-election-offices-copy h2, .vsk-election-timeline-copy h2, .vsk-election-more h2 { max-width: 690px; margin: 0; font-size: clamp(2rem,3.8vw,3rem); line-height: 1.1; }
.vsk-election-section-heading > p { max-width: 420px; margin: 0 0 3px; color: var(--election-muted); font-size: .94rem; }
.vsk-election-action-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px; }
.vsk-election-action-card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; padding: 24px; border: 1px solid var(--election-border); border-radius: 10px; background: #fff; box-shadow: 0 7px 22px rgba(16,43,62,.035); }
.vsk-election-action-featured { border-color: #c5d8ce; background: #f5f8f5; }
.vsk-election-action-icon { display: grid; place-items: center; width: 45px; height: 45px; margin-bottom: 17px; border-radius: 12px; color: var(--election-green); background: #e8f0eb; }
.vsk-election-action-icon svg.vske-icon { width: 22px; height: 22px; max-width: 22px; max-height: 22px; }
.vsk-election-card-kicker { margin: 0 0 6px; color: var(--election-green); font-size: .69rem; font-weight: 800; letter-spacing: .09em; line-height: 1.4; text-transform: uppercase; }
.vsk-election-action-card h3, .vsk-election-explore-card h3 { margin: 0 0 8px; font-size: 1.3rem; line-height: 1.2; }
.vsk-election-action-card > p:not(.vsk-election-card-kicker) { margin: 0 0 18px; color: #5c6f76; font-size: .89rem; }
.vsk-election-action-card > a { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; color: var(--election-green); font-size: .83rem; font-weight: 800; text-decoration: underline; }
.vsk-election-action-card > a svg.vske-icon { width: 17px; height: 17px; max-width: 17px; max-height: 17px; }
.vsk-election-offices { padding: clamp(57px,7vw,84px) 0; background: #f2f6f3; }
.vsk-election-offices-inner { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.15fr); align-items: center; gap: clamp(38px,7vw,80px); }
.vsk-election-offices-copy .vsk-election-eyebrow { margin-bottom: 12px; }
.vsk-election-offices-copy h2 { font-size: clamp(2rem,3.5vw,2.75rem); }
.vsk-election-offices-copy > p:not(.vsk-election-eyebrow) { margin: 14px 0 18px; color: #566a71; }
.vsk-election-text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--election-green); font-size: .87rem; font-weight: 800; text-decoration: underline; }
.vsk-election-text-link svg.vske-icon { width: 18px; height: 18px; max-width: 18px; max-height: 18px; }
.vsk-election-office-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.vsk-election-office-chip { display: grid; grid-template-columns: 39px minmax(0,1fr) 16px; align-items: center; gap: 11px; min-height: 74px; padding: 12px; border: 1px solid #dbe5e0; border-radius: 8px; color: inherit; background: #fff; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.vsk-election-office-chip:hover { transform: translateY(-1px); border-color: #a8c2b5; }
.vsk-election-office-chip-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; color: var(--election-green); background: #eaf2ed; }
.vsk-election-office-chip-icon svg.vske-icon { width: 20px; height: 20px; max-width: 20px; max-height: 20px; }
.vsk-election-office-chip strong, .vsk-election-office-chip small { display: block; }
.vsk-election-office-chip strong { color: var(--election-ink); font-size: .86rem; line-height: 1.3; }
.vsk-election-office-chip small { margin-top: 3px; color: #697a80; font-size: .72rem; line-height: 1.3; }
.vsk-election-chip-arrow { color: var(--election-green); font-size: .9rem; }
.vsk-election-explore { padding: clamp(62px,7.5vw,90px) 0; background: #fff; }
.vsk-election-explore .vsk-election-section-heading { margin-bottom: 25px; }
.vsk-election-explore-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.vsk-election-search-card, .vsk-election-explore-card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; padding: 23px; border: 1px solid var(--election-border); border-radius: 10px; color: inherit; background: #fff; text-decoration: none; }
.vsk-election-search-card { background: #f7f9f7; }
.vsk-election-explore-card { transition: transform .18s ease, box-shadow .18s ease; }
.vsk-election-explore-card:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(16,43,62,.075); }
.vsk-election-search-mark, .vsk-election-explore-icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 16px; border-radius: 12px; color: var(--election-green); background: #e8f0eb; }
.vsk-election-search-mark svg.vske-icon, .vsk-election-explore-icon svg.vske-icon { width: 22px; height: 22px; max-width: 22px; max-height: 22px; }
.vsk-election-search-card h3 { margin: 0 0 8px; font-size: 1.3rem; line-height: 1.2; }
.vsk-election-search-card > div > p:last-child, .vsk-election-explore-card > p:not(.vsk-election-card-kicker) { margin: 0 0 17px; color: #5c6f76; font-size: .88rem; }
.vsk-election-search-form { display: flex; width: 100%; gap: 7px; margin: auto 0 10px; }
.vsk-election-search-form input { width: 100%; min-width: 0; min-height: 43px; padding: 9px 11px; border: 1px solid #ccd9d3; border-radius: 5px; color: #183544; background: #fff; font: inherit; font-size: .82rem; }
.vsk-election-search-form button { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; gap: 5px; padding: 9px 12px; border: 0; border-radius: 5px; color: #fff; background: var(--election-green); font: inherit; font-size: .8rem; font-weight: 750; cursor: pointer; }
.vsk-election-search-form button:hover { background: var(--election-dark); }
.vsk-election-search-form button svg.vske-icon { width: 16px; height: 16px; max-width: 16px; max-height: 16px; }
.vsk-election-subtle-link { color: var(--election-green); font-size: .78rem; font-weight: 750; text-decoration: underline; }
.vsk-election-card-link { display: inline-flex; align-items: center; gap: 7px; margin-top: auto; color: var(--election-green); font-size: .82rem; font-weight: 800; text-decoration: underline; }
.vsk-election-card-link svg.vske-icon { width: 17px; height: 17px; max-width: 17px; max-height: 17px; }
.vsk-election-candidate-note { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 13px; margin-top: 18px; padding: 15px 17px; border-radius: 7px; background: #f3f6f3; }
.vsk-election-candidate-note > span { color: #94701f; }
.vsk-election-candidate-note > span svg.vske-icon { width: 23px; height: 23px; max-width: 23px; max-height: 23px; }
.vsk-election-candidate-note p { margin: 0; color: #5b6d73; font-size: .8rem; line-height: 1.55; }
.vsk-election-candidate-note p strong { color: var(--election-ink); }
.vsk-election-candidate-note > a { display: inline-flex; align-items: center; gap: 5px; color: var(--election-green); font-size: .78rem; font-weight: 800; text-decoration: underline; }
.vsk-election-candidate-note > a svg.vske-icon { width: 16px; height: 16px; max-width: 16px; max-height: 16px; }
.vsk-election-updates { padding: clamp(58px,7vw,82px) 0; background: #f5f7f4; }
.vsk-election-updates .vsk-election-section-heading { margin-bottom: 11px; }
.vsk-election-updates-heading { align-items: center; }
.vsk-election-updates-intro { max-width: 800px; margin: 0 0 23px; color: #5d7077; font-size: .9rem; }
.vsk-election-updates-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.vsk-election-update-card { overflow: hidden; border: 1px solid var(--election-border); border-radius: 9px; background: #fff; }
.vsk-election-update-image { display: block; aspect-ratio: 16/9; overflow: hidden; background: #e7eeea; }
.vsk-election-update-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vsk-election-update-copy { padding: 19px; }
.vsk-election-update-date { margin: 0 0 8px; color: #718087; font-size: .72rem; font-weight: 700; }
.vsk-election-update-card h3 { margin: 0 0 8px; font-size: 1.12rem; line-height: 1.28; }
.vsk-election-update-card h3 a { color: var(--election-ink); text-decoration: none; }
.vsk-election-update-card h3 a:hover { color: var(--election-green); text-decoration: underline; }
.vsk-election-update-card .vsk-election-update-copy > p:not(.vsk-election-update-date) { margin: 0 0 15px; color: #5d6f75; font-size: .83rem; }
.vsk-election-update-link { display: inline-flex; align-items: center; gap: 7px; color: var(--election-green); font-size: .8rem; font-weight: 800; text-decoration: underline; }
.vsk-election-update-link svg.vske-icon { width: 16px; height: 16px; max-width: 16px; max-height: 16px; }
.vsk-election-no-updates { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 19px; border: 1px solid var(--election-border); border-radius: 8px; background: #fff; }
.vsk-election-no-updates > span { color: var(--election-green); }
.vsk-election-no-updates > span svg.vske-icon { width: 25px; height: 25px; max-width: 25px; max-height: 25px; }
.vsk-election-no-updates strong { color: var(--election-ink); }
.vsk-election-no-updates p { margin: 3px 0 0; color: #5d6f75; font-size: .83rem; }
.vsk-election-no-updates > a { display: inline-flex; align-items: center; gap: 6px; color: var(--election-green); font-size: .81rem; font-weight: 800; text-decoration: underline; }
.vsk-election-no-updates > a svg.vske-icon { width: 17px; height: 17px; max-width: 17px; max-height: 17px; }
.vsk-election-peace { padding: clamp(48px,6vw,70px) 0; background: #f0f5f1; }
.vsk-election-peace-layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: center; gap: clamp(30px,6vw,72px); }
.vsk-election-peace-message { position: relative; padding-left: 65px; }
.vsk-election-peace-mark { position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 13px; color: var(--election-green); background: #dcebe1; }
.vsk-election-peace-mark svg.vske-icon { width: 25px; height: 25px; max-width: 25px; max-height: 25px; }
.vsk-election-peace-message .vsk-election-eyebrow { margin-bottom: 9px; }
.vsk-election-peace-message h2 { margin: 0 0 10px; font-size: clamp(1.75rem,3vw,2.3rem); line-height: 1.12; }
.vsk-election-peace-message > p:not(.vsk-election-eyebrow) { margin: 0; color: #53696d; font-size: .9rem; }
.vsk-election-peace-links { display: flex; flex-wrap: wrap; gap: 9px 19px; margin-top: 16px; }
.vsk-election-peace-links a { display: inline-flex; align-items: center; gap: 6px; color: var(--election-green); font-size: .78rem; font-weight: 800; text-decoration: underline; }
.vsk-election-peace-links svg.vske-icon { width: 15px; height: 15px; max-width: 15px; max-height: 15px; }
.vsk-election-peace-actions { display: grid; gap: 9px; }
.vsk-election-peace-actions article { display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: start; gap: 12px; padding: 14px 16px; border: 1px solid #dbe6df; border-radius: 8px; background: #fff; }
.vsk-election-peace-actions article > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: var(--election-green); background: #eaf2ed; }
.vsk-election-peace-actions article > span svg.vske-icon { width: 19px; height: 19px; max-width: 19px; max-height: 19px; }
.vsk-election-peace-actions h3 { margin: 0 0 2px; font-size: .92rem; line-height: 1.3; }
.vsk-election-peace-actions article p { margin: 0; color: #5d7076; font-size: .8rem; line-height: 1.5; }
.vsk-election-peace-safety { margin: 2px 0 0; color: #5d7076; font-size: .76rem; line-height: 1.5; }
.vsk-election-timeline { padding: clamp(62px,7.5vw,91px) 0; color: #e8f0ec; background: #103b3a; }
.vsk-election-timeline h2, .vsk-election-timeline h3 { color: #fff; }
.vsk-election-timeline .vsk-election-eyebrow { color: #c7ddcf; }
.vsk-election-timeline-intro { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 30px; margin-bottom: 38px; }
.vsk-election-timeline-intro h2 { max-width: 760px; margin: 0 0 12px; font-size: clamp(2rem,3.7vw,3rem); line-height: 1.1; }
.vsk-election-timeline-intro > div:first-child > p:last-child { max-width: 760px; margin: 0; color: #cfddd7; font-size: .94rem; }
.vsk-election-source-links { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.vsk-election-button-light { color: #123e3b; background: #fff; }
.vsk-election-button-light:hover { color: #123e3b; background: #e9f2ec; }
.vsk-election-gazette-link { display: inline-flex; align-items: center; gap: 7px; color: #eff7f2; font-size: .82rem; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.vsk-election-gazette-link svg.vske-icon { width: 16px; height: 16px; max-width: 16px; max-height: 16px; }
.vsk-election-timeline-group { margin-top: 31px; }
.vsk-election-timeline-group-heading { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 18px; }
.vsk-election-timeline-group-icon { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.2); border-radius: 12px; color: #f1d48c; background: rgba(255,255,255,.07); }
.vsk-election-timeline-group-icon svg.vske-icon { width: 22px; height: 22px; max-width: 22px; max-height: 22px; }
.vsk-election-timeline-group-heading h3 { margin: 0 0 4px; font-size: 1.18rem; line-height: 1.3; }
.vsk-election-timeline-group-heading p { margin: 0; color: #cbdcd5; font-size: .84rem; }
.vsk-election-milestones { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.vsk-election-milestone { min-width: 0; padding: 18px; border: 1px solid rgba(255,255,255,.16); border-radius: 8px; background: rgba(255,255,255,.055); }
.vsk-election-milestone time { display: inline-block; margin-bottom: 9px; color: #f1d48c; font-size: .78rem; font-weight: 800; letter-spacing: .025em; }
.vsk-election-milestone h4 { margin: 0 0 6px; color: #fff; font-size: .97rem; line-height: 1.35; }
.vsk-election-milestone p { margin: 0; color: #d2dfd9; font-size: .81rem; line-height: 1.58; }
.vsk-election-final-dates { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 22px; }
.vsk-election-final-dates article { padding: 22px; border: 1px solid rgba(255,255,255,.18); border-radius: 9px; background: rgba(255,255,255,.07); }
.vsk-election-final-dates .vsk-election-polling-day { color: var(--election-ink); border-color: #f0d68f; background: #f1d48c; }
.vsk-election-final-label { margin: 0 0 5px; color: #d0dfd8; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vsk-election-final-date { margin: 0 0 7px; color: #fff; font-size: clamp(1.2rem,2.1vw,1.75rem); font-weight: 800; line-height: 1.25; }
.vsk-election-final-dates article > p:not(.vsk-election-final-label):not(.vsk-election-final-date) { margin: 0 0 11px; color: #d2dfd9; font-size: .82rem; }
.vsk-election-final-dates article > a { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-size: .8rem; font-weight: 800; text-decoration: underline; }
.vsk-election-final-dates article > a svg.vske-icon { width: 16px; height: 16px; max-width: 16px; max-height: 16px; }
.vsk-election-final-dates .vsk-election-polling-day .vsk-election-final-label { color: #375750; }
.vsk-election-final-dates .vsk-election-polling-day .vsk-election-final-date { color: #103b3a; }
.vsk-election-final-dates .vsk-election-polling-day > p:not(.vsk-election-final-label):not(.vsk-election-final-date) { color: #375750; }
.vsk-election-final-dates .vsk-election-polling-day > a { color: #103b3a; }
.vsk-election-timeline-disclaimer { max-width: 920px; margin: 20px 0 0; color: #cbdcd5; font-size: .78rem; line-height: 1.55; }
.vsk-election-trust { padding: 20px 0; background: #eaf1ec; }
.vsk-election-trust-inner { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 15px; }
.vsk-election-trust-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; color: var(--election-green); background: #d7e7dc; }
.vsk-election-trust-icon svg.vske-icon { width: 21px; height: 21px; max-width: 21px; max-height: 21px; }
.vsk-election-trust strong { color: var(--election-ink); font-size: .88rem; }
.vsk-election-trust p { margin: 3px 0 0; color: #61726f; font-size: .78rem; line-height: 1.5; }
.vsk-election-trust-inner > a { display: inline-flex; align-items: center; gap: 6px; color: var(--election-green); font-size: .81rem; font-weight: 800; text-decoration: underline; white-space: nowrap; }
.vsk-election-trust-inner > a svg.vske-icon { width: 16px; height: 16px; max-width: 16px; max-height: 16px; }
.vsk-election-more { padding: clamp(55px,6.5vw,75px) 0; background: #fff; }
.vsk-election-more-inner { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); align-items: center; gap: clamp(40px,7vw,85px); }
.vsk-election-more h2 { font-size: clamp(1.9rem,3.4vw,2.65rem); }
.vsk-election-more-inner > div:first-child > p:last-child { margin: 12px 0 0; color: #5d7076; }
.vsk-election-more-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.vsk-election-more-links > a { display: grid; grid-template-columns: 33px minmax(0,1fr) 17px; align-items: center; gap: 9px; min-height: 55px; padding: 9px 11px; border: 1px solid var(--election-border); border-radius: 7px; color: var(--election-ink); font-size: .81rem; font-weight: 750; text-decoration: none; }
.vsk-election-more-links > a:hover { border-color: #a9c4b6; background: #f6f9f6; }
.vsk-election-more-links > a > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; color: var(--election-green); background: #eaf2ed; }
.vsk-election-more-links > a > span svg.vske-icon { width: 18px; height: 18px; max-width: 18px; max-height: 18px; }
.vsk-election-more-links > a > svg.vske-icon { width: 16px; height: 16px; max-width: 16px; max-height: 16px; color: var(--election-green); }
@media (max-width: 920px) {
	.vsk-election-section-heading { align-items: flex-start; flex-direction: column; gap: 11px; }
	.vsk-election-section-heading > p { max-width: 700px; }
	.vsk-election-action-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.vsk-election-explore-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.vsk-election-search-card { grid-column: 1 / -1; }
	.vsk-election-search-form { max-width: 520px; }
	.vsk-election-offices-inner, .vsk-election-more-inner { grid-template-columns: minmax(0,1fr); gap: 28px; }
	.vsk-election-timeline-intro { grid-template-columns: minmax(0,1fr); align-items: start; gap: 20px; }
	.vsk-election-milestones { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.vsk-election-peace-layout { grid-template-columns: minmax(0,1fr); gap: 24px; }
}
@media (max-width: 680px) {
	.vsk-election-container { width: min(calc(100% - 34px),580px); }
	.vsk-election-hero { padding: 55px 0; }
	.vsk-election-hero-grid { grid-template-columns: minmax(0,1fr); gap: 27px; }
	.vsk-election-hero h1 { font-size: clamp(2.35rem,10vw,3.25rem); }
	.vsk-election-date-card { max-width: none; padding: 21px; }
	.vsk-election-date-icon { margin-bottom: 13px; }
	.vsk-election-start, .vsk-election-explore, .vsk-election-updates, .vsk-election-timeline { padding: 54px 0; }
	.vsk-election-section-heading h2, .vsk-election-offices-copy h2, .vsk-election-timeline-intro h2, .vsk-election-more h2 { font-size: clamp(1.85rem,8vw,2.4rem); }
	.vsk-election-action-grid, .vsk-election-explore-grid, .vsk-election-updates-grid { grid-template-columns: minmax(0,1fr); }
	.vsk-election-search-card { grid-column: auto; }
	.vsk-election-action-card, .vsk-election-search-card, .vsk-election-explore-card { padding: 21px; }
	.vsk-election-offices { padding: 53px 0; }
	.vsk-election-office-list { grid-template-columns: minmax(0,1fr); }
	.vsk-election-office-chip { min-height: 66px; }
	.vsk-election-candidate-note { grid-template-columns: 25px minmax(0,1fr); align-items: start; }
	.vsk-election-candidate-note > a { grid-column: 2; justify-self: start; }
	.vsk-election-updates-heading { align-items: flex-start; }
	.vsk-election-no-updates { grid-template-columns: 28px minmax(0,1fr); align-items: start; }
	.vsk-election-no-updates > a { grid-column: 2; justify-self: start; }
	.vsk-election-milestones, .vsk-election-final-dates { grid-template-columns: minmax(0,1fr); }
	.vsk-election-timeline-group { margin-top: 26px; }
	.vsk-election-timeline-group-heading { gap: 11px; }
	.vsk-election-milestone, .vsk-election-final-dates article { padding: 17px; }
	.vsk-election-peace { padding: 46px 0; }
	.vsk-election-peace-message { padding-left: 0; }
	.vsk-election-peace-mark { position: static; margin-bottom: 16px; }
	.vsk-election-peace-links { flex-direction: column; align-items: flex-start; gap: 10px; }
	.vsk-election-trust-inner { grid-template-columns: 38px minmax(0,1fr); gap: 11px; }
	.vsk-election-trust-inner > a { grid-column: 2; justify-self: start; }
	.vsk-election-trust-icon { width: 36px; height: 36px; }
	.vsk-election-more { padding: 50px 0; }
	.vsk-election-more-links { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 420px) {
	.vsk-election-container { width: calc(100% - 30px); }
	.vsk-election-hero-actions { align-items: stretch; flex-direction: column; }
	.vsk-election-button { width: 100%; }
	.vsk-election-date { font-size: 1.05rem; }
	.vsk-election-date strong { font-size: 1.8rem; }
	.vsk-election-search-form { flex-direction: column; }
	.vsk-election-search-form button { min-height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
	.vsk-election-hub *, .vsk-election-hub *::before, .vsk-election-hub *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
