/* Skip link: hidden until keyboard focus, then shown above the fixed header. */
.skip-link {
    position: absolute;
    top: -100px;
    left: 16px;
    z-index: 2000;
    padding: 0.75rem 1.1rem;
    background: var(--emerald-deep);
    color: var(--ivory);
    font-weight: 700;
    text-decoration: none;
    border-top: 3px solid var(--gold);
}

.skip-link:focus {
    top: 12px;
    color: var(--ivory);
}

/* The skip target takes focus without showing an outline box. */
#content:focus {
    outline: none;
}

/* Shared homepage section pattern (16 Oct 2026).
   One heading style for every homepage section, matching the hero welcome: a short gold rule,
   a spaced uppercase eyebrow, a left-aligned serif title, and an optional link on the right. */

.home-section {
    padding: clamp(3.5rem, 6vw, 5.5rem) 0;
}

.home-section--warm {
    background: var(--cream-warm);
}

.home-section--ivory {
    background: var(--ivory);
}

.section-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.section-intro-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 0.85rem;
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.28em;
    line-height: 1;
    text-transform: uppercase;
    color: var(--emerald);
}

.section-intro-eyebrow::before {
    content: '';
    width: 32px;
    height: 2px;
    background: var(--gold);
}

.section-intro-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -0.01em;
    color: var(--emerald-deep);
}

.section-intro-text {
    margin: 0.75rem 0 0;
    max-width: 52ch;
    font-size: 1rem;
    line-height: 1.55;
    color: var(--slate);
}

/* Category and date above a story title (homepage news and the News page). */
.home-news-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.9rem;
    margin: 0 0 0.6rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gold-muted);
}

.home-news-meta time {
    letter-spacing: 0.06em;
    text-transform: none;
    font-weight: 400;
    color: var(--stone);
}

/* Quiet text link with an arrow, used beside section titles and inside items. */
.text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
    font-family: var(--font-body);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--emerald);
    white-space: nowrap;
}

.text-link::after {
    content: '→';
    transition: transform var(--duration-fast) ease;
}

.text-link:hover {
    color: var(--emerald-deep);
}

.text-link:hover::after {
    transform: translateX(3px);
}

.text-link:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 3px;
}

@media (max-width: 680px) {
    .section-intro {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .text-link::after {
        transition: none;
    }
}
