:root { --election-blue:#1546bd; --election-light:#eaf0ff; }
.election-page { background:#f6f8fc; }
.election-intro { padding:42px 0; background:linear-gradient(125deg,#08122e,#123176); color:#fff; }
.election-intro__grid { display:grid; grid-template-columns:.9fr 1.25fr; gap:32px; align-items:center; }
.election-eyebrow { color:#91b5ff; font-size:.75rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.election-intro h1 { margin:8px 0 12px; font-size:clamp(2rem,4vw,3.7rem); line-height:1.04; letter-spacing:-.05em; }
.election-intro p { margin:0 0 23px; color:#c4d1ed; }
.election-intro__actions { display:flex; gap:9px; flex-wrap:wrap; }
.election-intro__actions a { padding:11px 14px; border-radius:9px; background:#fff; color:#153c91; text-decoration:none; font-weight:750; font-size:.82rem; }
.election-intro__actions a+ a { background:transparent; border:1px solid #8eaceb; color:#fff; }
.election-banner { height:260px; overflow:hidden; background:#fff; }
.election-banner img { width:100%; height:100%; object-fit:contain; }
.election-shortcuts { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:28px 0 4px; }
.election-shortcuts a { display:flex; align-items:center; gap:12px; padding:16px; border:1px solid #dce4f5; border-radius:13px; background:#fff; color:#17213a; text-decoration:none; font-weight:700; box-shadow:0 6px 20px rgba(18,49,118,.05); }
.election-shortcuts i { width:40px; height:40px; display:grid; place-items:center; border-radius:10px; background:var(--election-light); color:var(--election-blue); }
.election-layout { display:grid; grid-template-columns:minmax(0,2.5fr) minmax(270px,.9fr); gap:23px; padding:34px 0 70px; align-items:start; }
.election-section { margin-bottom:22px; padding:25px; }
.election-section__title { display:flex; align-items:center; gap:10px; padding-bottom:15px; margin-bottom:20px; border-bottom:1px solid #e7ebf4; }
.election-section__title i { color:var(--election-blue); }
.election-section__title h2 { margin:0; color:#10182b; font-size:1.08rem; }
.election-document { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:13px 5px; border-bottom:1px solid #edf0f7; }
.election-document>div { display:grid; gap:4px; }
.election-document strong { font-size:.9rem; }
.election-document small { color:#748097; font-size:.7rem; }
.election-document a { padding:8px 12px; border-radius:8px; background:var(--election-light); color:var(--election-blue); text-decoration:none; font-size:.72rem; font-weight:750; }
.candidate-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; }
.candidate-card { padding:18px 14px; border:1px solid #e2e7f2; border-radius:13px; text-align:center; background:#fafbfe; }
.candidate-photo { width:82px; height:82px; display:grid; place-items:center; margin:0 auto 11px; padding:0; overflow:hidden; border:3px solid #fff; border-radius:50%; background:var(--election-light); color:var(--election-blue); font-size:2rem; box-shadow:0 6px 16px rgba(18,49,118,.12); cursor:pointer; }
.candidate-photo img { width:100%; height:100%; object-fit:cover; }
.candidate-card h3 { margin:0 0 3px; font-size:.87rem; }
.candidate-card p { margin:0; color:#748097; font-size:.7rem; }
.candidate-card>span { display:inline-flex; margin-top:9px; padding:4px 10px; border-radius:20px; background:var(--election-blue); color:#fff; font-size:.68rem; font-weight:800; }
.election-news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.election-news { overflow:hidden; border:1px solid #e3e8f3; border-radius:13px; background:#fff; }
.election-news.is-hidden { display:none; }
.election-news__image { position:relative; height:130px; background:#eef2fa; }
.election-news__image img { width:100%; height:100%; object-fit:cover; }
.election-news__image>span { position:absolute; left:10px; top:10px; width:42px; height:42px; display:grid; place-items:center; align-content:center; border-radius:50%; background:var(--election-blue); color:#fff; line-height:1; }
.election-news__image strong { font-size:.85rem; }.election-news__image small{font-size:.5rem;font-weight:800}
.election-news>div:last-child { padding:15px; }
.election-news h3 { margin:0 0 7px; font-size:.83rem; line-height:1.3; }
.election-news p { color:#748097; font-size:.7rem; display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden; }
.election-news button,.election-more { border:0; background:transparent; color:var(--election-blue); font-weight:750; font-size:.68rem; cursor:pointer; }
.election-more { display:block; margin:20px auto 0; padding:9px 15px; border:1px solid var(--election-blue); border-radius:9px; }
.election-timeline { position:sticky; top:120px; }
.timeline-list { position:relative; padding-left:20px; border-left:1px solid #c8d5f4; }
.timeline-list article { position:relative; padding:0 0 21px 13px; }
.timeline-list article>span { position:absolute; left:-25px; top:5px; width:9px; height:9px; border:2px solid var(--election-blue); border-radius:50%; background:#fff; }
.timeline-list strong { color:var(--election-blue); font-size:.76rem; }.timeline-list p{margin:4px 0 0;color:#566278;font-size:.76rem}
.election-empty { color:#748097; font-size:.82rem; }
.election-modal { position:fixed; inset:0; z-index:5000; display:none; place-items:center; padding:20px; background:rgba(4,9,21,.72); }
.election-modal.open { display:grid; }
.election-modal__dialog { position:relative; width:min(100%,650px); max-height:88vh; overflow:auto; border-radius:16px; background:#fff; }
.election-modal__close { position:absolute; right:12px; top:12px; z-index:2; width:36px; height:36px; border:0; border-radius:50%; background:#fff; cursor:pointer; box-shadow:0 4px 15px rgba(0,0,0,.15); }
.election-modal__dialog>img { width:100%; max-height:340px; object-fit:contain; background:#eef2fa; }
.election-modal__dialog>div { padding:24px; }.election-modal__dialog span{color:var(--election-blue);font-size:.72rem;font-weight:750}.election-modal__dialog h2{margin:6px 0 10px}.election-modal__dialog p{white-space:pre-line;color:#566278}
@media(max-width:980px){.election-intro__grid,.election-layout{grid-template-columns:1fr}.election-timeline{position:static}.election-shortcuts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.election-intro__grid{gap:22px}.election-banner{height:200px}.election-news-grid{grid-template-columns:1fr}.election-shortcuts{grid-template-columns:1fr}.election-section{padding:19px}.election-document{align-items:flex-start;flex-direction:column}}

