/* political.day - Editorial Broadsheet Stylesheet */

/* Reset */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Palette */
:root {
    --newsprint-white: #FAFAF6;
    --headline-black: #111111;
    --body-gray: #3A3A3A;
    --ink-gray: #6B6B6B;
    --accent-red: #C0392B;
    --rule-gray: #D0D0D0;
}

html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    background-color: var(--newsprint-white);
    color: var(--body-gray);
    font-family: 'Merriweather', Georgia, serif;
    font-size: 1.0625rem;
    line-height: 1.8;
    font-weight: 400;
}

/* ============================
   Masthead
   ============================ */
.masthead {
    padding: 2.5rem 1.5rem 0;
    text-align: center;
}

.masthead-inner {
    max-width: 780px;
    margin: 0 auto;
}

.masthead-name {
    font-family: 'Inter', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--headline-black);
    margin-bottom: 1rem;
}

.masthead-rule {
    height: 2px;
    background-color: var(--headline-black);
    margin: 0 auto 0.75rem;
}

.masthead-rule--thin {
    height: 1px;
    background-color: var(--rule-gray);
    margin-top: 0.75rem;
}

.masthead-date {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-gray);
}

/* ============================
   Featured / Hero
   ============================ */
.featured {
    padding: 2.5rem 1.5rem 3rem;
    text-align: center;
}

.featured-inner {
    max-width: 780px;
    margin: 0 auto 2.5rem;
}

.featured-badge {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--newsprint-white);
    background-color: var(--accent-red);
    padding: 0.3em 0.8em;
    margin-bottom: 1.5rem;
}

.featured-headline {
    font-family: 'Libre Baskerville', Georgia, serif;
    font-size: clamp(2rem, 4vw, 3.6rem);
    font-weight: 700;
    line-height: 1.2;
    color: var(--headline-black);
    margin-bottom: 1.25rem;
    min-height: 2.4em;
}

.featured-headline::after {
    content: '|';
    animation: blink-cursor 0.7s step-end infinite;
    color: var(--accent-red);
    font-weight: 400;
    margin-left: 2px;
}

.featured-headline.typewriter-done::after {
    display: none;
}

@keyframes blink-cursor {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

.featured-deck {
    font-family: 'Merriweather', Georgia, serif;
    font-size: 1.125rem;
    font-style: italic;
    font-weight: 400;
    line-height: 1.7;
    color: var(--ink-gray);
    margin-bottom: 1rem;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.featured-byline {
    font-family: 'Inter', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-gray);
}

.byline-author {
    color: var(--headline-black);
}

.byline-date {
    color: var(--ink-gray);
}

/* Featured Image Placeholder */
.featured-image {
    max-width: 960px;
    margin: 0 auto;
}

.featured-image-placeholder {
    width: 100%;
    height: 400px;
    background: linear-gradient(135deg, #3A3A3A 0%, #6B6B6B 40%, #8a8a8a 60%, #3A3A3A 100%);
    filter: grayscale(0.15) contrast(1.08);
}

/* ============================
   Articles
   ============================ */
.articles {
    max-width: 780px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem;
}

.article-section {
    margin-bottom: 3rem;
}

.article-rule {
    height: 1px;
    background-color: var(--rule-gray);
    margin-bottom: 2rem;
}

.article-inner {
    /* Content column */
}

.article-category {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.category-icon {
    flex-shrink: 0;
}

.category-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-gray);
}

.article-heading {
    font-family: 'Libre Baskerville', Georgia, serif;
    font-size: clamp(1.4rem, 3vw, 1.8rem);
    font-weight: 700;
    line-height: 1.3;
    color: var(--headline-black);
    margin-bottom: 1rem;
}

.article-body {
    font-family: 'Merriweather', Georgia, serif;
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--body-gray);
    margin-bottom: 1.25rem;
}

.article-body:first-letter {
    /* Reserve for drop cap if desired */
}

.article-byline {
    font-family: 'Inter', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-gray);
    margin-top: 0.5rem;
}

/* ============================
   Footer
   ============================ */
.site-footer {
    padding: 0 1.5rem 3rem;
}

.footer-rule {
    height: 2px;
    background-color: var(--headline-black);
    max-width: 780px;
    margin: 0 auto 2rem;
}

.footer-inner {
    max-width: 780px;
    margin: 0 auto;
    text-align: center;
}

.footer-domain {
    font-family: 'Inter', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--headline-black);
    margin-bottom: 0.5rem;
}

.footer-copy {
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--ink-gray);
    font-variant: small-caps;
}

/* ============================
   Responsive
   ============================ */
@media (max-width: 600px) {
    .featured-image-placeholder {
        height: 240px;
    }

    .featured-headline {
        min-height: 3.6em;
    }

    .masthead {
        padding-top: 1.5rem;
    }

    .featured {
        padding: 1.5rem 1rem 2rem;
    }

    .articles {
        padding: 0 1rem 2rem;
    }
}
