/* =============================================
   welsh-polls.css — Welsh Westminster Polls
   Scoped under body.welsh-polls, prefix: wp-
   Requires: editorial-base.css + polls-editorial.css
   ============================================= */

body.welsh-polls {
    background: var(--ed-color-surface);
    font-family: var(--ed-font-sans);
    color: var(--ed-color-body);
    -webkit-font-smoothing: antialiased;
}

.wp-wrap {
    padding: 48px 32px 64px;
}

/* ---- Masthead ---- */
.wp-masthead { margin-bottom: 32px; max-width: 700px; }
.wp-kicker {
    font-family: var(--ed-font-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ed-color-text);
    margin: 0 0 8px 0;
}
.wp-masthead-rule {
    border: none;
    border-top: 3px solid var(--ed-color-text);
    margin: 0 0 16px 0;
}
.wp-headline {
    font-family: var(--ed-font-serif);
    font-size: 32px;
    font-weight: 700;
    color: var(--ed-color-text);
    line-height: 1.15;
    margin: 0 0 6px 0;
}
.wp-subtitle {
    font-family: var(--ed-font-sans);
    font-size: 14px;
    color: var(--ed-color-secondary);
    margin: 0;
    line-height: 1.5;
}

/* ---- Section dividers ---- */
.wp-rule {
    border: none;
    border-top: 1px solid var(--ed-color-border);
    margin: 40px 0;
}

.wp-section-label {
    font-family: var(--ed-font-sans);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ed-color-meta);
    margin: 0 0 16px 0;
}

/* ---- Hero numbers strip ---- */
.wp-hero-strip {
    display: flex;
    gap: 0;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.wp-hero-party {
    flex: 1;
    min-width: 80px;
    padding: 10px 12px;
    border-left: 4px solid var(--party-color, #ccc);
    margin-bottom: 8px;
}
.wp-hero-name {
    font-family: var(--ed-font-sans);
    font-size: 11px;
    color: var(--ed-color-secondary);
    margin: 0 0 2px 0;
    line-height: 1;
}
.wp-hero-pct {
    font-family: var(--ed-font-sans);
    font-size: 28px;
    font-weight: 700;
    color: var(--ed-color-text);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.wp-hero-footnote {
    font-family: var(--ed-font-sans);
    font-size: 11px;
    font-style: italic;
    color: var(--ed-color-meta);
    margin: 4px 0 0 0;
}

/* ---- Footer text ---- */
.wp-footer-text {
    font-family: var(--ed-font-sans);
    font-size: 11px;
    color: var(--ed-color-muted);
    line-height: 1.6;
}

/* ---- Explore list ---- */
.wp-explore-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.wp-explore-list li {
    border-bottom: 1px solid var(--ed-color-border-light);
}
.wp-explore-list li:last-child { border-bottom: none; }
.wp-explore-list a {
    display: block;
    font-family: var(--ed-font-serif);
    font-size: 17px;
    color: var(--ed-color-text);
    padding: 10px 0;
    text-decoration: none;
}
.wp-explore-list a:hover { text-decoration: underline; text-underline-offset: 2px; }

/* ---- Links ---- */
.wp-wrap a {
    color: var(--ed-color-text);
    text-decoration: underline;
    text-decoration-color: #CCCCCC;
    text-underline-offset: 2px;
    transition: text-decoration-color 0.15s;
}
.wp-wrap a:hover { text-decoration-color: var(--ed-color-text); }

/* ---- Responsive ---- */
@media (max-width: 768px) {
    .wp-wrap { padding: 32px 16px 48px; }
    .wp-headline { font-size: 26px; }
    .wp-hero-strip {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
    }
    .wp-hero-party { min-width: unset; }
    .wp-hero-pct { font-size: 24px; }
    .wp-rule { margin: 32px 0; }
}

@media (max-width: 480px) {
    .wp-headline { font-size: 24px; }
    .wp-hero-strip { grid-template-columns: 1fr 1fr; }
    .wp-hero-party { padding: 8px 12px; margin-bottom: 0; }
    .wp-hero-pct { font-size: 22px; }
    .wp-hero-name { font-size: 10px; }
    .wp-rule { margin: 24px 0; }
}
