.tmr-redesign .election-gallery-page .page-hero { min-height:270px!important; padding-block:40px; grid-template-columns:minmax(0,1fr); }
.tmr-redesign .election-gallery-page .page-hero h1 { font-size:clamp(34px,4.5vw,60px); line-height:1.08; }
.tmr-redesign .election-gallery-page .page-hero p { max-width:780px; }
.election-gallery { padding-top:28px; }
.election-gallery-toolbar { display:flex; align-items:end; gap:20px; justify-content:space-between; flex-wrap:wrap; }
.election-gallery-toolbar .search-box { min-width:min(100%,280px); }
.election-gallery-toolbar .segmented { display:flex; flex-wrap:wrap; gap:6px; }
.election-gallery-index { display:flex; justify-content:space-between; align-items:center; margin:22px 0; gap:14px; }
.election-gallery-index>p { margin:0; color:#58664f; font-size:13px; }
.election-gallery-navigation { display:flex; gap:14px; align-items:center; font-size:12px; font-variant-numeric:tabular-nums; }
.election-gallery-navigation .button { min-width:42px; padding:8px 13px; }
.election-gallery-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr); border-top:2px solid #34592b; border-bottom:1px solid #bfc9b3; }
.election-stage { min-width:0; min-height:570px; padding:26px; background:#e5e8df; display:flex; align-items:center; justify-content:center; }
.election-cover { display:block; max-width:100%; width:auto; height:540px; max-height:65vh; object-fit:contain; box-shadow:0 8px 20px #26331c1a; }
.election-gallery-caption { padding:36px 0 32px 36px; }
.election-gallery-caption h2 { margin:16px 0; font-size:clamp(25px,2.8vw,38px); line-height:1.15; }
.election-gallery-caption>p { line-height:1.7; }
.election-gallery-date { font-weight:700; font-size:13px; color:#34592b; }
.election-gallery-file { padding-top:16px; border-top:1px solid #c7d0bc; font-size:12px; color:#58664f; }
.election-gallery-actions { display:flex; flex-direction:column; align-items:start; gap:14px; margin:24px 0; }
.election-gallery-actions .button { text-align:center; }
.election-gallery-help,.election-gallery-source { font-size:12px; color:#5d6956; }
.election-stage.is-reading { padding:0; }
.election-stage iframe { width:100%; height:760px; border:0; display:block; background:white; }
.election-stage video { display:block; width:100%; max-height:620px; background:#142416; }
.election-shelf-label { margin:28px 0 18px; font-size:14px; font-weight:700; }
.election-shelf-label span { margin-left:12px; font-size:12px; font-weight:400; color:#637059; }
.election-filmstrip { display:flex; gap:28px; padding:0 4px 20px; overflow-x:auto; scrollbar-gutter:stable; scroll-snap-type:x proximity; }
.election-slide { flex:0 0 150px; scroll-snap-align:start; display:flex; flex-direction:column; gap:12px; padding-bottom:14px; border-bottom:3px solid transparent; color:#273d22; text-decoration:none; }
.election-slide[aria-current="true"] { border-bottom-color:#34592b; }
.election-slide-number { min-height:18px; font-size:10px; text-transform:uppercase; letter-spacing:.03em; color:#607052; }
.election-slide img { width:150px; height:194px; object-fit:contain; background:#e5e8df; border:1px solid #c2cbb7; box-sizing:border-box; transition:transform .15s; }
.election-slide:hover img { transform:translateY(-3px); }
.election-slide strong { font-size:13px; line-height:1.45; }
.election-gallery-page a:focus-visible,.election-gallery-page button:focus-visible { outline:3px solid #78945f; outline-offset:4px; }
.election-gallery-page [hidden] { display:none!important; }
.election-announcement { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:850px) {
 .election-gallery-layout { grid-template-columns:minmax(0,1fr); }
 .election-gallery-caption { padding:24px 0; }
 .election-stage { min-height:400px; padding:18px; }
 .election-cover { max-height:58vh; height:470px; }
 .election-stage iframe { height:650px; }
 .election-gallery-actions { flex-direction:row; flex-wrap:wrap; align-items:center; }
 .election-filmstrip { gap:18px; }
}
@media(prefers-reduced-motion:reduce){.election-slide img{transition:none;transform:none!important}}
