.editorial-page { background: #f6f8fb; }
.election-topbar { background: transparent; }
.election-home-link { font-size: 13px; text-decoration: none; }
.election-home-link:hover { text-decoration: underline; }
.election-masthead { max-width: var(--page-max-width); margin: 0 auto; padding: 38px var(--page-gutter) 0; }
.election-masthead .election-section-title { max-width: 880px; font-size: 25px; line-height: 1.35; font-weight: 600; letter-spacing: -.6px; }
.election-navigation { display: flex; flex-wrap: wrap; gap: 12px 30px; margin-top: 30px; border-bottom: 1px solid var(--line); }
.election-navigation a { padding: 15px 0; border-bottom: 3px solid transparent; margin-bottom: -1px; color: var(--muted); text-decoration: none; font-size: 14px; font-weight: 600; }
.election-navigation a:hover { color: var(--blue); }
.election-navigation a[aria-current="page"] { color: var(--blue); border-bottom-color: var(--blue); }
.editorial-main { padding: 35px var(--page-gutter) 50px; }
.story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.story-card { padding: 31px; border: 1px solid var(--line); border-radius: 13px; background: white; display: flex; flex-direction: column; align-items: flex-start; }
.story-lead { grid-column: 1 / -1; padding: 42px; border-left: 4px solid var(--teal); background: linear-gradient(115deg,#fff,#edf5f8); }
.story-meta { display: flex; flex-wrap: wrap; gap: 5px 14px; font-size: 12px; color: var(--muted); }
.story-meta span { border-left: 1px solid var(--line); padding-left: 14px; }
.story-card h2,.story-card h3 { margin-top: 17px; font-size: 25px; line-height: 1.3; font-weight: 600; letter-spacing: -.6px; }
.story-card h2 a,.story-card h3 a { color: var(--ink); text-decoration: none; }
.story-card h2 a:hover,.story-card h3 a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 5px; }
.story-lead h2 { max-width: 800px; font-size: clamp(28px,3.2vw,38px); }
.story-excerpt { color: var(--muted); line-height: 1.8; margin: 15px 0 25px; max-width: 770px; font-size: 15px; }
.story-read { display: inline-flex; gap: 20px; font-weight: 650; text-decoration: none; margin-top: auto; }
.story-read:hover { text-decoration: underline; }
.feed-next { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 40px 0 0; }
.feed-next h2 { font-size: 20px; }
.feed-next p { margin-top: 8px; color: var(--muted); }
.feed-next .primary-button { flex-shrink: 0; }
.editorial-footer { max-width: var(--page-content-width); margin: 0 auto; padding: 25px 0 35px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 12px 30px; justify-content: space-between; color: var(--muted); font-size: 12px; }
.story-reading { width: 100%; margin: 0 auto; }
.back-link { display: inline-block; margin: 0 0 27px; font-size: 13px; text-decoration: none; }
.back-link:hover { text-decoration: underline; }
.story-heading h1 { margin: 15px 0 20px; font-size: clamp(30px,4vw,44px); line-height: 1.2; max-width: none; }
.story-period { padding: 12px 16px; background: #e7eff6; border-radius: 7px; color: #435d75; font-size: 13px; line-height: 1.7; }
.story-body { font-size: 17px; line-height: 1.85; margin-top: 30px; }
.story-body img { display: block; max-width: 100%; height: auto; margin: 28px auto; border: 1px solid var(--line); border-radius: 8px; cursor: zoom-in; }
.story-body h3 { margin-top: 30px; font-size: 23px; line-height: 1.4; }
.story-body p { margin: 20px 0; }
.story-body p:last-child { color: #526981; font-size: 13px; }
.figure-hint { font-size: 12px; color: var(--muted); margin: 12px 0 28px; }
.story-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; padding-top: 25px; border-top: 1px solid var(--line); }
.story-actions>a:not(.primary-button) { font-size: 14px; }
.story-reproduction { padding: 20px 0; margin-top: 10px; font-size: 13px; color: var(--muted); }
.story-reproduction summary { cursor: pointer; font-weight: 600; color: var(--ink); }
.story-reproduction p { margin: 12px 0; }
.story-table { max-width: none; }
.story-table .story-body { overflow-x: auto; font-size: 13px; }
.story-table .story-body table { min-width: 1100px; }
.faq-reading { width: 100%; margin: 0 auto; }
.faq-question { border: 1px solid var(--line); border-radius: 10px; background: white; margin-bottom: 13px; padding: 22px 25px; scroll-margin-top: 20px; }
.faq-question>summary { cursor: pointer; font-size: 18px; font-weight: 600; }
.faq-question[open]>summary { margin-bottom: 20px; }
.faq-question .markdown-body { font-size: 15px; line-height: 1.8; }
.faq-question .markdown-body p { margin: 14px 0; }
.faq-question .markdown-body li { margin-bottom: 10px; }
.faq-technical { padding: 15px; background: #f2f6f9; border-radius: 7px; margin: 18px 0; }
.faq-technical>summary { cursor: pointer; font-size: 13px; color: var(--blue); }
.faq-technical pre { overflow-x: auto; font-size: 12px; }
.faq-contact { padding: 20px 0; color: var(--muted); font-size: 14px; }
.explorer-heading { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 28px 0; }
.explorer-heading h1 { font-size: 27px; }
@media (max-width:700px) {
  .election-masthead { padding-block: 27px 0; }
  .election-navigation { gap: 0 18px; margin-top: 22px; }
  .election-navigation a { font-size: 12px; padding: 12px 0; }
  .election-masthead .election-section-title { font-size: 21px; }
  .election-home-link { font-size: 11px; }
  .editorial-main { padding-block: 27px 36px; }
  .story-grid { grid-template-columns: 1fr; gap: 18px; }
  .story-card,.story-lead { padding: 25px; }
  .story-card h3 { font-size: 24px; }
  .story-meta { font-size: 11px; gap: 6px 10px; }
  .story-meta span { padding-left: 10px; }
  .feed-next { flex-direction: column; align-items: flex-start; }
  .editorial-footer { flex-direction: column; }
  .story-body { font-size: 16px; }
  .faq-question { padding: 19px; }
  .faq-question>summary { font-size: 16px; }
  .explorer-heading { flex-direction: column; align-items: flex-start; }
}

.methodology-reading { font-size: 15px; line-height: 1.8; overflow-wrap: anywhere; }
.methodology-reading > section { padding: 24px 0; border-bottom: 1px solid var(--line); }
.methodology-reading h2 { margin: 0 0 16px; font-size: 22px; line-height: 1.4; }
.methodology-reading h3 { margin: 24px 0 12px; font-size: 17px; }
.methodology-reading p { margin: 12px 0; }
.methodology-reading li { margin: 8px 0; }
.methodology-reading .markdown-body { font-size: inherit; }
.methodology-reading :is(h2, h3) { scroll-margin-top: 24px; }
