/*
Theme Name: AAMDA
Theme URI: https://aamda.pt
Author: AAMDA
Description: Custom block theme for Associação dos Amigos do Mindelo para a Defesa do Ambiente.
Version: 0.8.3
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: aamda
*/

:root {
    --border: 2px;
    --border-heavy: 3px;
    --ink-10: rgba(26, 26, 26, 0.08);
    --ink-20: rgba(26, 26, 26, 0.18);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    -webkit-font-smoothing: antialiased;
}

a {
    text-underline-offset: 3px;
    text-decoration-thickness: 1.5px;
}

p {
    max-width: 62ch;
}

/* Buttons — hover effect */
.wp-block-button__link,
.wp-element-button {
    cursor: pointer;
    border-radius: 0 !important;
    height: auto; /* override core height:100%; theme uses bare buttons, not core's .wp-block-buttons wrapper */
    transition:
        transform 0.12s ease,
        box-shadow 0.12s ease,
        background 0.12s ease;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 var(--wp--preset--color--ink);
}

/* CTA modifiers (Phase 4)
   Apply alongside `.wp-block-button__link wp-element-button` to replace
   per-pattern `has-*-color has-*-background-color` chains. */
.cta--primary {
    background-color: var(--wp--preset--color--sea) !important;
    color: var(--wp--preset--color--paper) !important;
}

.cta--secondary {
    background-color: var(--wp--preset--color--sand) !important;
    color: var(--wp--preset--color--ink) !important;
}

.cta--ghost {
    background-color: transparent !important;
    color: var(--wp--preset--color--paper) !important;
    border-color: var(--wp--preset--color--paper) !important;
}

/* Eyebrow label */
.is-style-eyebrow {
    font-family: var(--wp--preset--font-family--archivo);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

/* Chevron band divider */
.chevron-band {
    height: 28px;
    width: 100%;
    background-image:
        linear-gradient(
            135deg,
            var(--wp--preset--color--ink) 25%,
            transparent 25%
        ),
        linear-gradient(
            225deg,
            var(--wp--preset--color--ink) 25%,
            transparent 25%
        );
    background-size: 28px 28px;
    background-position:
        0 0,
        0 0;
    background-color: var(--wp--preset--color--sand);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

/* Divider */
.divider {
    border-top: var(--border) solid var(--wp--preset--color--ink);
}

/* ============================================================
   Grid — unified system (Phase 3)
   Single border-stitched grid: top+left rules on the wrapper,
   right+bottom rules on each cell via `.grid > *`. Column count
   set with `.grid--cols-{2,3,4,6}`. `.grid--on-dark` swaps the
   rule color to a translucent white for dark backgrounds.
   Per-grid responsive collapse (when it differs from default)
   stays on the legacy wrapper class.
   ============================================================ */
.grid {
    display: grid;
    gap: 0;
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-left: var(--border) solid var(--wp--preset--color--ink);
}

.grid--cols-2 {
    grid-template-columns: repeat(2, 1fr);
}
.grid--cols-3 {
    grid-template-columns: repeat(3, 1fr);
}
.grid--cols-4 {
    grid-template-columns: repeat(4, 1fr);
}
.grid--cols-6 {
    grid-template-columns: repeat(6, 1fr);
}

.grid > * {
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.grid--on-dark {
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    border-left: 1px solid rgba(255, 255, 255, 0.3);
}

.grid--on-dark > * {
    border-right: 1px solid rgba(255, 255, 255, 0.3);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

/* ============================================================
   Cards — unified system
   Base .card is standalone (full border + hover lift, e.g. news-strip).
   .card--glyph-side and .card--flat are cell-mode (no full border,
   no lift) — they sit inside bordered grids.
   Padding scale: 18px 20px (default __body) · 24px (--flat root).
   ============================================================ */
.card {
    background: var(--wp--preset--color--paper);
    border: var(--border) solid var(--wp--preset--color--ink);
    color: var(--wp--preset--color--ink);
    display: flex;
    flex-direction: column;
    position: relative;
    text-decoration: none;
    transition:
        transform 0.14s ease,
        box-shadow 0.14s ease,
        background 0.12s ease;
}

.card:hover {
    transform: translate(-3px, -3px);
    box-shadow: 6px 6px 0 var(--wp--preset--color--ink);
}

/* Cell-mode variants live inside bordered grids */
.card--glyph-side,
.card--flat {
    border: 0;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.card--glyph-side:hover,
.card--flat:hover {
    transform: none;
    box-shadow: none;
}

.card--glyph-side:hover {
    background: var(--wp--preset--color--paper-warm);
}

/* Variant: glyph sidebar (was .pcard) */
.card--glyph-side {
    display: grid;
    grid-template-columns: 120px 1fr;
}

/* Variant: flat text card (was .org / .mvv__card / .trail / .contact / .phase) */
.card--flat {
    padding: 24px;
}

/* Background modifiers (flat cards on tinted backgrounds) */
.card--bg-pine {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
}
.card--bg-pine h3,
.card--bg-pine p,
.card--bg-pine ul,
.card--bg-pine .card__label {
    color: var(--wp--preset--color--paper);
}
.card--bg-sand {
    background: var(--wp--preset--color--sand);
}
.card--bg-sky {
    background: var(--wp--preset--color--sky);
}

/* Layout modifier: spans full row in parent grid (was .contact--wide) */
.card--wide {
    grid-column: 1 / -1;
}

/* State: dimmed glyph (was .pcard--past) */
.card--past .card__glyph {
    background: var(--ink-20);
}

/* ---- Slots ---- */
.card__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper-warm);
}

.card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.card__body {
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
}

.card__glyph {
    background: var(--wp--preset--color--sand);
    border-right: 1px solid var(--ink-20);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.card__glyph--sky {
    background: var(--wp--preset--color--sky);
}
.card__glyph--grass {
    background: var(--wp--preset--color--grass);
}
.card__glyph--pine {
    background: var(--wp--preset--color--pine);
}
.card__glyph--sea {
    background: var(--wp--preset--color--sea);
}
.card__glyph--sand {
    background: var(--wp--preset--color--sand);
}

.card__meta {
    display: flex;
    gap: 10px;
    align-items: center;
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 12px;
    color: var(--wp--preset--color--ink-soft);
    margin-bottom: 8px;
}

.card__label {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--wp--preset--color--ink-soft);
    margin-bottom: 12px;
}

.card__label--bordered {
    padding-bottom: 10px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--ink-20);
}

.card__chips {
    display: flex;
    gap: 6px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.card__foot {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    letter-spacing: 0.04em;
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px dashed var(--ink-20);
}

.card__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 44px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--wp--preset--color--ink);
}

.card__num--xl {
    font-size: 64px;
}
.card__num--pine {
    color: var(--wp--preset--color--pine);
}
.card__num--grass {
    color: var(--wp--preset--color--grass);
}
.card__num--sea {
    color: var(--wp--preset--color--sea);
}

.card__when {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    letter-spacing: 0.06em;
}

.card__note {
    font-size: 13px;
    color: var(--wp--preset--color--ink-soft);
}

.card__socials {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}

/* Lists inside cards (was .mvv__list / .org__list) */
.card__list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
}

.card__list li {
    padding: 8px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}

.card__list li:last-child {
    border-bottom: none;
}

/* Roster list: name + role on a baseline (was .org__list) */
.card__list--split li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ink-20);
}

.card__list--split strong {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 15px;
}

.card__list--split span {
    font-size: 12px;
    color: var(--wp--preset--color--ink-soft);
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
}

/* ---- Typography inside cards ---- */
.card h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.2;
    margin: 0 0 8px;
}

.card h3 a {
    color: inherit;
    text-decoration: none;
}

.card p {
    font-size: 14px;
    line-height: 1.55;
    margin: 0 0 8px;
    color: var(--wp--preset--color--ink-soft);
}

.card--flat h3 {
    font-size: 20px;
    margin: 0 0 10px;
}

.card--flat p {
    font-size: 15px;
    color: var(--wp--preset--color--ink);
}

/* Larger headlines on tinted-bg flat cards (MVV-style) */
.card--bg-pine h3,
.card--bg-sand h3,
.card--bg-sky h3 {
    font-size: 24px;
    line-height: 1.15;
    margin: 0 0 14px;
    max-width: 20ch;
}

/* Sea links inside flat cards (used by contact grid) */
.card--flat a {
    color: var(--wp--preset--color--sea);
}
.card--bg-pine a {
    color: var(--wp--preset--color--paper);
}

/* Chips */
.chip {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 6px;
    padding: 3px 10px 4px;
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--sky);
}

.chip--pine {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
}
.chip--grass {
    background: var(--wp--preset--color--grass);
    color: var(--wp--preset--color--paper);
}
.chip--sand {
    background: var(--wp--preset--color--sand);
}
.chip--sea {
    background: var(--wp--preset--color--sea);
    color: var(--wp--preset--color--paper);
}
.chip--sky {
    background: var(--wp--preset--color--sky);
}
.chip--ink {
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
}

/* Corner chip overlay */
.corner-chip {
    position: absolute;
    top: 0;
    right: 0;
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-left: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

/* Stats row */
.stats-bar {
    padding-top: 56px;
}

.stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.stat {
    padding: 28px 24px;
    border-right: var(--border) solid var(--wp--preset--color--ink);
}

.stat:last-child {
    border-right: none;
}

.stat__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 56px;
    line-height: 1;
    letter-spacing: -0.02em;
}

.stat__label {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    color: var(--wp--preset--color--ink-soft);
    margin-top: 8px;
}

/* Grid helpers */
.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
}

.grid-3 > * {
    border-right: var(--border) solid var(--wp--preset--color--ink);
}

.grid-3 > *:last-child {
    border-right: none;
}

.grid-3.gapped {
    gap: 24px;
}

.grid-3.gapped > * {
    border-right: none;
}

/* Section head */
.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 36px;
}

.section-head h2 {
    max-width: 20ch;
}

.section-head h1 em,
.section-head h2 em {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-weight: 500;
    color: var(--wp--preset--color--pine);
}

/* Subtabs toggle */
.subtabs {
    display: inline-flex;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
}

.subtabs button {
    padding: 10px 18px;
    border: none;
    background: transparent;
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.04em;
    cursor: pointer;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    text-transform: uppercase;
}

.subtabs button:last-child {
    border-right: none;
}

.subtabs button[aria-pressed="true"] {
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
}

/* Mono text utility */
.mono {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
}

/* Wide wrapper */
.wrap-wide {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 28px;
}

/* Section vertical rhythm (Phase 5)
   `.section`     — full-bleed bands; pair with an inner `.wrap-wide`.
   `.section--wrap` — single-element sections that already provide their
                      own horizontal padding (use alongside `.wrap-wide`). */
.section {
    padding: 72px 0;
}

.section--wrap {
    padding: 72px 28px;
}

/* ============================================================
   Hero — Unified system
   Layout:   .hero--split (1.2fr/1fr default), .hero--split-narrow (1.1fr/1fr),
             .hero--split-balanced (1fr/1fr), .hero--centered (single column).
   Theme:    .hero--pine (pine bg, paper text).
   Accents:  .hero--accent-sand, .hero--accent-sea (retint title em).
   Sizes:    .hero__title (default), --display (homepage), --compact (contactos).
   Slots:    .hero__left, .hero__right, .hero__inner.
   Helpers:  .hero__art, .hero__glyph[--color], .hero__map[--sand],
             .hero__map-card, .hero__tiles, .hero__facts.
   ============================================================ */
.hero {
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
}

.hero--flush {
    border-bottom: 0;
}

.hero--split,
.hero--split-narrow,
.hero--split-balanced {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    min-height: 560px;
}

.hero--split-narrow {
    grid-template-columns: 1.1fr 1fr;
}
.hero--split-balanced {
    grid-template-columns: 1fr 1fr;
}

.hero--pine {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
}

.hero--centered {
    padding: 72px 0 40px;
}

.hero__left {
    padding: 72px 56px;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 18px;
}

.hero__right {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.hero__inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 28px;
}

.hero__title {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: clamp(44px, 5.6vw, 92px);
    line-height: 0.98;
    letter-spacing: -0.025em;
    margin: 16px 0 24px;
}

.hero__title--display {
    font-size: clamp(48px, 6.5vw, 104px);
    line-height: 0.94;
    letter-spacing: -0.03em;
}

.hero__title--compact {
    font-size: clamp(40px, 5vw, 76px);
    line-height: 1;
}

.hero__title em {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-weight: 500;
    color: var(--wp--preset--color--pine);
}

.hero--accent-sand .hero__title em {
    color: var(--wp--preset--color--sand);
}
.hero--accent-sea .hero__title em {
    color: var(--wp--preset--color--sea);
}

.hero__lede {
    font-size: 18px;
    line-height: 1.55;
    max-width: 56ch;
    color: var(--wp--preset--color--ink-soft);
    margin: 0;
}

.hero--pine .hero__lede {
    color: #e5dfd0;
}
.hero--pine .hero__lede strong,
.hero__lede strong {
    color: var(--wp--preset--color--ink);
}
.hero--pine .hero__lede strong {
    color: var(--wp--preset--color--paper);
}

.hero__quote {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 22px;
    color: var(--wp--preset--color--ink-soft);
    max-width: 34ch;
    margin: 0;
    padding-left: 16px;
    border-left: 3px solid var(--wp--preset--color--pine);
}

.hero__ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.hero__ctas .wp-block-button__link {
    font-size: 14px;
    padding: 10px 18px;
}

/* Right-slot helpers */
.hero__art {
    background: var(--wp--preset--color--sky);
    overflow: hidden;
    width: 100%;
    height: 100%;
}

.hero__art svg {
    width: 100%;
    height: 100%;
    display: block;
}

.hero__glyph {
    width: 100%;
    height: 100%;
    padding: 60px;
    background: var(--wp--preset--color--sand);
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero__glyph--sky {
    background: var(--wp--preset--color--sky);
}
.hero__glyph--grass {
    background: var(--wp--preset--color--grass);
}
.hero__glyph--pine {
    background: var(--wp--preset--color--pine);
}
.hero__glyph--sea {
    background: var(--wp--preset--color--sea);
}
.hero__glyph svg {
    width: 70%;
    height: auto;
}

.hero__map {
    background: var(--wp--preset--color--paper);
    padding: 28px;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero__map svg {
    width: 100%;
    height: auto;
    max-height: 560px;
    display: block;
}

.hero__map--sand {
    background: var(--wp--preset--color--sand);
    min-height: 320px;
}

.hero__map-card {
    background: var(--wp--preset--color--paper);
    border: var(--border) solid var(--wp--preset--color--ink);
    padding: 24px 28px;
    font-size: 13px;
    text-align: center;
    color: var(--wp--preset--color--ink-soft);
    max-width: 320px;
}

.hero__tiles {
    display: grid;
    grid-template-columns: 1fr;
    align-self: stretch;
    width: 100%;
}

.hero__facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-top: 40px;
    border-top: 1px solid rgba(255, 255, 255, 0.25);
}
.hero__facts > div {
    padding: 20px 16px 0;
    border-right: 1px solid rgba(255, 255, 255, 0.25);
}
.hero__facts > div:last-child {
    border-right: none;
}
.hero__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 44px;
    line-height: 1;
    color: var(--wp--preset--color--paper);
    letter-spacing: -0.02em;
}
.hero__label {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 13px;
    color: #c8d9bd;
    margin-top: 6px;
}

@media (max-width: 960px) {
    .hero--split,
    .hero--split-narrow,
    .hero--split-balanced {
        grid-template-columns: 1fr;
        min-height: 0;
    }
    .hero__left {
        padding: 56px 24px;
        border-right: none;
        border-bottom: var(--border) solid var(--wp--preset--color--ink);
    }
    .hero__art,
    .hero__map--sand {
        min-height: 320px;
    }
}

@media (max-width: 600px) {
    .hero__facts {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================================
   News grid (homepage strip)
   ============================================================ */
.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.news-grid .card {
    border: none;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-radius: 0;
}

.news-grid .card:last-child {
    border-right: none;
}

.news-grid .card:hover {
    transform: none;
    box-shadow: none;
    background: var(--wp--preset--color--paper-warm);
}

.news-grid__pane[hidden] {
    display: none;
}

.news-grid__empty {
    padding: 32px;
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    color: var(--wp--preset--color--ink-soft);
}

/* ============================================================
   Projects grid
   ============================================================ */
.projects-band__head {
    padding: 56px 28px 24px;
}

.projects {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.projects__empty {
    grid-column: 1 / -1;
    padding: 32px 28px;
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    color: var(--wp--preset--color--ink-soft);
}

.projects__empty p {
    margin: 0;
}

.project {
    position: relative;
    min-height: 280px;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: background 0.15s ease;
}

.project:nth-child(3n) {
    border-right: none;
}

.project:nth-last-child(-n + 3) {
    border-bottom: none;
}

.project:hover {
    background: rgba(255, 255, 255, 0.35);
}

.project--sky {
    background: var(--wp--preset--color--sky);
}
.project--sand {
    background: var(--wp--preset--color--sand);
}
.project--grass {
    background: var(--wp--preset--color--grass);
    color: var(--wp--preset--color--paper);
}
.project--pine {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
}
.project--sea {
    background: var(--wp--preset--color--sea);
    color: var(--wp--preset--color--paper);
}

.project__glyph {
    width: 72px;
    height: 72px;
    flex: none;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.project__glyph svg {
    width: 56px;
    height: 56px;
}

.project__title {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 22px;
    line-height: 1.1;
    margin: 0 0 8px;
}

.project__desc {
    font-size: 14px;
    color: var(--wp--preset--color--ink-soft);
    line-height: 1.5;
    margin: 0 0 12px;
    max-width: 34ch;
}

.project--grass .project__desc,
.project--pine .project__desc,
.project--sea .project__desc {
    color: rgba(255, 255, 255, 0.85);
}

.project__arrow {
    font-family: var(--wp--preset--font-family--archivo);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rom-card {
    grid-column: span 2;
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    padding: 32px 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    position: relative;
    overflow: hidden;
    text-decoration: none;
}

.rom-card .project__title {
    color: var(--wp--preset--color--paper);
    font-size: 28px;
}

.rom-card .project__desc {
    color: #d8e5cf;
}

.rom-card .is-style-eyebrow {
    color: #c8d9bd;
}

/* ============================================================
   Join callout
   ============================================================ */
.join-callout {
    background: var(--wp--preset--color--sand);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.join-grid {
    display: grid !important;
    grid-template-columns: 1.2fr 1fr;
    gap: 48px;
    align-items: end;
}

.join-callout h2 {
    font-size: clamp(32px, 3.6vw, 56px);
    line-height: 1;
    letter-spacing: -0.02em;
    max-width: 18ch;
}

.join-callout__lede {
    font-size: 18px;
}

.join-facts {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 16px;
}

.join-facts li {
    display: flex;
    gap: 14px;
    align-items: baseline;
}

.join-facts li::before {
    content: "";
    width: 12px;
    height: 12px;
    display: inline-block;
    background: var(--wp--preset--color--ink);
    transform: rotate(45deg);
    flex: none;
    position: relative;
    top: 1px;
}

/* ============================================================
   Partners — editorial constellation
   ============================================================ */
.partners-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 24px;
    gap: 24px;
    flex-wrap: wrap;
}

.partners-head h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: clamp(22px, 2vw, 30px);
    letter-spacing: -0.01em;
    margin: 6px 0 0;
    max-width: 28ch;
}

.partners-empty {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    color: var(--wp--preset--color--ink-soft);
}

.partners-constellation {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    /* Fixed row height keeps every cell the same size regardless of content;
       a main partner spans two rows. Mobile overrides this to content height. */
    grid-auto-rows: 110px;
    gap: 0;
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-left: var(--border) solid var(--wp--preset--color--ink);
}

.partner-tile {
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100px;
    overflow: hidden;
    background: var(--wp--preset--color--paper);
    transition: background 0.15s ease;
    text-decoration: none;
    color: inherit;
}

.partner-tile:hover {
    background: var(--wp--preset--color--paper-warm);
}

/* Colored mains use light text; on the light hover background switch to ink so they stay legible. */
.partner-tile--pine:hover .partner-tile__cat,
.partner-tile--pine:hover .partner-tile__name,
.partner-tile--pine:hover .partner-tile__desc,
.partner-tile--grass:hover .partner-tile__cat,
.partner-tile--grass:hover .partner-tile__name,
.partner-tile--grass:hover .partner-tile__desc {
    color: var(--wp--preset--color--ink);
}

.partner-tile__cat {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    letter-spacing: 0.02em;
    margin-bottom: 10px;
}

.partner-tile__name {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 15px;
    line-height: 1.2;
    color: var(--wp--preset--color--ink);
}

.partner-tile__desc {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 14px;
    line-height: 1.4;
    color: var(--wp--preset--color--ink-soft);
    margin: 12px 0 0;
}

.partner-tile--pine .partner-tile__desc,
.partner-tile--grass .partner-tile__desc {
    color: var(--wp--preset--color--paper);
}

.partner-tile--feature {
    background: var(--wp--preset--color--sky);
}

.partner-tile--feature .partner-tile__name {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.05;
}

.partner-tile--grass {
    background: var(--wp--preset--color--grass);
    color: var(--wp--preset--color--paper);
}

.partner-tile--grass .partner-tile__name,
.partner-tile--grass .partner-tile__cat {
    color: var(--wp--preset--color--paper);
}

.partner-tile--pine {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
}

.partner-tile--pine .partner-tile__name,
.partner-tile--pine .partner-tile__cat {
    color: var(--wp--preset--color--paper);
}

.partner-tile--pine .partner-tile__name {
    font-size: 20px;
}

.partner-tile--note {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 15px;
    color: var(--wp--preset--color--ink-soft);
    line-height: 1.4;
    background: var(--wp--preset--color--paper-warm);
}

.partner-tile--note .partner-tile__cat {
    color: var(--wp--preset--color--ink);
    font-weight: 600;
}

/* ============================================================
   Site Header
   ============================================================ */
.site-header {
    position: sticky;
    top: 0;
    z-index: 40;
    background: var(--wp--preset--color--paper);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.site-header__inner {
    flex-wrap: nowrap;
    gap: 24px;
    padding: 14px 28px;
    max-width: 1440px;
    margin: 0 auto;
}

/* Brand block */
.brand {
    flex-wrap: nowrap;
    gap: 12px;
    text-decoration: none;
    color: var(--wp--preset--color--ink);
}

.brand__mark-link {
    display: inline-flex;
    text-decoration: none;
    line-height: 0;
}

.brand__mark {
    display: inline-flex;
    width: 44px;
    height: 44px;
    flex: none;
    border: var(--border) solid var(--wp--preset--color--ink);
    overflow: hidden;
}

.brand__mark svg {
    display: block;
    width: 100%;
    height: 100%;
}

.brand__text {
    gap: 3px;
    line-height: 1;
}

/* Override site-title block defaults */
.wp-block-site-title.brand__name,
.wp-block-site-title.brand__name a {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 18px;
    letter-spacing: -0.01em;
    line-height: 1;
    margin: 0;
    color: var(--wp--preset--color--ink);
    text-decoration: none;
}

.wp-block-site-title.brand__name a:hover {
    color: var(--wp--preset--color--sea);
}

.wp-block-site-tagline.brand__sub {
    font-family: var(--wp--preset--font-family--newsreader);
    font-size: 11px;
    line-height: 1;
    color: var(--wp--preset--color--ink-soft);
    font-style: normal;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin: 0;
}

/* Primary nav (wp:navigation override) */
.wp-block-navigation.nav {
    margin-left: auto;
}

.wp-block-navigation.nav .wp-block-navigation__container {
    gap: 22px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.wp-block-navigation.nav .wp-block-navigation-item__content {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.02em;
    text-decoration: none;
    color: var(--wp--preset--color--ink);
    padding: 0;
}

.wp-block-navigation.nav .wp-block-navigation-item__content:hover,
.wp-block-navigation.nav .wp-block-navigation-item__content:focus-visible {
    color: var(--wp--preset--color--sea);
}

.wp-block-navigation.nav
    .current-menu-item
    > .wp-block-navigation-item__content {
    color: var(--wp--preset--color--sea);
    text-decoration: underline;
    text-underline-offset: 6px;
    text-decoration-thickness: 2px;
}

/* Header CTA button */
.header-cta-wrap {
    margin-left: 8px;
}

.header-cta-wrap .wp-block-button__link {
    font-size: 14px;
    padding: 10px 18px;
}

/* Hamburger toggle */
.nav-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
    cursor: pointer;
    padding: 0;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    flex: none;
}

.nav-toggle span {
    width: 20px;
    height: 2px;
    background: var(--wp--preset--color--ink);
    display: block;
    transition:
        transform 0.2s ease,
        opacity 0.2s ease;
}

body.nav-open .nav-toggle span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

body.nav-open .nav-toggle span:nth-child(2) {
    opacity: 0;
}

body.nav-open .nav-toggle span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* Mobile nav panel */
.mobile-nav {
    display: none;
    flex-direction: column;
    background: var(--wp--preset--color--paper);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    padding: 12px 28px 24px;
}

.mobile-nav a {
    padding: 16px 4px;
    text-decoration: none;
    color: var(--wp--preset--color--ink);
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 500;
    font-size: 18px;
    border-bottom: 1px solid var(--ink-20);
}

.mobile-nav a:last-of-type {
    border-bottom: none;
}

.mobile-nav__cta {
    margin-top: 16px;
    background: var(--wp--preset--color--sea);
    color: var(--wp--preset--color--paper) !important;
    padding: 14px 18px !important;
    border: var(--border) solid var(--wp--preset--color--ink);
    font-weight: 700 !important;
    text-align: center;
}

body.nav-open .mobile-nav {
    display: flex;
}

/* ============================================================
   Site Footer
   ============================================================ */
.site-footer {
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
    border-top: var(--border) solid var(--wp--preset--color--ink);
}

.site-footer a {
    color: var(--wp--preset--color--paper);
}

.footer-grid {
    display: grid !important;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 40px;
    padding: 56px 0;
}

.footer-grid > * {
    margin-block-start: 0;
}

.footer-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px;
}

.footer-col > * {
    margin-block-start: 0 !important;
}

.brand--footer {
    gap: 12px;
}

.site-footer h4,
.site-footer .wp-block-heading {
    font-family: var(--wp--preset--font-family--archivo);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin: 0;
    color: #d8d3c4;
}

.footer-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;
}

.footer-list--mono {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 12px;
}

.footer-blurb {
    font-size: 14px;
    color: #b4ae9d;
    max-width: 36ch;
    margin: 0;
}

/* Footer brand */
.brand--footer .wp-block-site-title.brand__name,
.brand--footer .wp-block-site-title.brand__name a {
    color: var(--wp--preset--color--paper);
}

.brand--footer .wp-block-site-tagline.brand__sub {
    color: #b4ae9d;
}

.footer-donate-wrap {
    margin-top: 4px;
}

.footer-donate-cta .wp-block-button__link {
    font-size: 12px;
    padding: 6px 12px;
}

.footer-bottom {
    display: flex !important;
    flex-wrap: wrap;
    gap: 18px;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    padding: 18px 0;
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 12px;
    color: #b4ae9d;
}

.footer-bottom > * {
    margin-block-start: 0 !important;
}

.footer-copy {
    margin: 0;
    max-width: none;
    color: #b4ae9d;
}

.footer-legal {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.footer-legal a {
    color: #b4ae9d;
    text-decoration: none;
    font-size: 12px;
    letter-spacing: 0.04em;
}

.footer-legal a:hover {
    color: var(--wp--preset--color--paper);
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 960px) {
    .grid-3 {
        grid-template-columns: 1fr;
    }

    .grid-3 > * {
        border-right: none;
        border-bottom: var(--border) solid var(--wp--preset--color--ink);
    }

    .stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .stat:nth-child(2) {
        border-right: none;
    }

    .stat:nth-child(-n + 2) {
        border-bottom: var(--border) solid var(--wp--preset--color--ink);
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .news-grid,
    .projects {
        grid-template-columns: 1fr;
    }

    .news-grid .card,
    .project {
        border-right: none;
        border-bottom: var(--border) solid var(--wp--preset--color--ink);
    }

    .news-grid .card:last-child,
    .project:last-child {
        border-bottom: none;
    }

    .rom-card {
        grid-column: span 1;
        grid-template-columns: 1fr;
    }

    .join-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .partners-constellation {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: minmax(80px, auto);
    }

    .partner-tile {
        grid-column: span 1 !important;
        grid-row: auto !important;
    }
}

@media (max-width: 860px) {
    .site-header__inner {
        gap: 10px;
    }

    .wp-block-navigation.nav,
    .site-header__inner .header-cta-wrap {
        display: none;
    }

    .site-header__inner .nav-toggle {
        display: flex;
        margin-left: auto;
    }

    .brand__sub,
    .wp-block-site-tagline.brand__sub {
        display: none;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Breadcrumbs
   ============================================================ */
main#main-content {
    margin-block-start: 0;
}

.breadcrumbs {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 12px;
    color: var(--wp--preset--color--ink-soft);
    padding: 16px 28px;
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.breadcrumbs a {
    color: var(--wp--preset--color--ink-soft);
    text-decoration: none;
}

.breadcrumbs a:hover {
    color: var(--wp--preset--color--ink);
}

/* ============================================================
   Single project — impact band (pine bg)
   ============================================================ */
.project-impact {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
    padding: 64px 0;
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.project-impact .wrap-wide {
    padding: 0 28px;
}

.impact-head {
    margin-bottom: 32px;
}

.impact-head h2 {
    color: var(--wp--preset--color--paper);
    max-width: 24ch;
    font-size: clamp(28px, 3vw, 44px);
    letter-spacing: -0.02em;
    margin: 8px 0 0;
}

.impact-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    border-left: 1px solid rgba(255, 255, 255, 0.3);
}

.impact {
    padding: 22px 18px;
    border-right: 1px solid rgba(255, 255, 255, 0.3);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

.impact__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 40px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--wp--preset--color--paper);
}

.impact__label {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 13px;
    color: #c8d9bd;
    margin-top: 6px;
}

/* ============================================================
   Single project — phases
   ============================================================ */
/* Phases grid — slightly larger headline + h3 */
.phases .card {
    padding: 32px 28px 36px;
}
.phases .card h3 {
    font-size: 22px;
    margin: 0 0 12px;
}
.phases .card__when {
    margin: 12px 0;
}

/* ============================================================
   Single project — gallery
   ============================================================ */
.project-gallery-section {
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper-warm);
}

.gallery {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 0;
}

.gallery__item {
    margin: 0;
    aspect-ratio: 4/3;
    overflow: hidden;
    position: relative;
    border-right: var(--border) solid var(--wp--preset--color--ink);
}

.gallery__item:last-child {
    border-right: none;
}

.gallery__item--wide {
    aspect-ratio: 8/6;
}

.gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gallery__item figcaption {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
    padding: 4px 10px;
    font-size: 10px;
    letter-spacing: 0.02em;
}

/* ============================================================
   Single project — partners mini grid
   ============================================================ */
.proj-partners {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-left: var(--border) solid var(--wp--preset--color--ink);
}

.pp {
    padding: 18px 20px;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
    min-height: 92px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.pp strong {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 15px;
    display: block;
    margin-bottom: 4px;
}

.pp span {
    font-size: 12px;
    color: var(--wp--preset--color--ink-soft);
}

/* ============================================================
   Single project — documents
   ============================================================ */
.project-docs-section {
    padding: 0 28px 80px;
}

.doc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: var(--border) solid var(--wp--preset--color--ink);
}

.doc {
    display: grid;
    grid-template-columns: 140px 1fr 200px 140px;
    gap: 24px;
    align-items: center;
    padding: 20px 4px;
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    transition: background 0.12s ease;
}

.doc:hover {
    background: var(--wp--preset--color--paper-warm);
}

.doc__tag {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 11px;
    color: var(--wp--preset--color--paper);
    background: var(--wp--preset--color--sea);
    padding: 4px 10px;
    justify-self: start;
    border: var(--border) solid var(--wp--preset--color--ink);
}

.doc__title {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 17px;
    line-height: 1.3;
}

.doc__meta {
    color: var(--wp--preset--color--ink-soft);
    font-size: 13px;
}

.doc__cta {
    justify-self: end;
    font-size: 12px;
    font-weight: 600;
    color: var(--wp--preset--color--sea);
    text-decoration: none;
}

.doc__cta:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ============================================================
   Projects archive — filter pills (sits inside .hero--centered)
   ============================================================ */
.projidx-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 32px;
}

.projidx-filters .pill {
    padding: 8px 14px;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
    font-family: var(--wp--preset--font-family--archivo);
    font-size: 13px;
    font-weight: 500;
    color: var(--wp--preset--color--ink);
    text-decoration: none;
    cursor: pointer;
}

.projidx-filters .pill span {
    color: var(--wp--preset--color--ink-soft);
    font-weight: 400;
    margin-left: 2px;
}

.projidx-filters .pill--on {
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
}

.projidx-filters .pill--on span {
    color: #c8d9bd;
}

.projidx-filters__spacer {
    flex: 1 1 20px;
    min-width: 20px;
}

/* ============================================================
   Projects archive — featured band
   ============================================================ */
.projidx-featured {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.pfeat {
    padding: 36px 28px 32px;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    display: flex;
    flex-direction: column;
    min-height: 320px;
}

.pfeat:last-child {
    border-right: none;
}

.pfeat--pine {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
}

.pfeat--sea {
    background: var(--wp--preset--color--sea);
    color: var(--wp--preset--color--paper);
}

.pfeat--sand {
    background: var(--wp--preset--color--sand);
}

.pfeat--sky {
    background: var(--wp--preset--color--sky);
}

.pfeat--grass {
    background: var(--wp--preset--color--grass);
    color: var(--wp--preset--color--paper);
}

.pfeat--pine h2,
.pfeat--pine p,
.pfeat--sea h2,
.pfeat--sea p,
.pfeat--grass h2,
.pfeat--grass p {
    color: var(--wp--preset--color--paper);
}

.pfeat__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    font-size: 11px;
}

.pfeat__meta .mono {
    opacity: 0.7;
    letter-spacing: 0.1em;
}

.pfeat h2 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 28px;
    line-height: 1.1;
    margin: 0 0 12px;
    max-width: 22ch;
}

.pfeat p {
    font-size: 15px;
    line-height: 1.5;
    margin: 0 0 22px;
    max-width: 44ch;
    opacity: 0.9;
}

.pfeat__row {
    font-size: 12px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: auto;
    margin-bottom: 20px;
    opacity: 0.85;
}

.pfeat .wp-block-button__link {
    align-self: flex-start;
    font-size: 13px;
    padding: 9px 16px;
}

/* ============================================================
   Projects archive — grid
   ============================================================ */
.projidx-grid__empty {
    grid-column: 1 / -1;
    padding: 32px;
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    color: var(--wp--preset--color--ink-soft);
}

/* Projidx grid — glyph num is muted so the chip carries the eye */
.projidx-grid .card__num {
    opacity: 0.65;
}

/* ============================================================
   Project pages — responsive
   ============================================================ */
@media (max-width: 960px) {
    .phases,
    .proj-partners,
    .impact-grid,
    .gallery,
    .projidx-featured,
    .projidx-grid {
        grid-template-columns: 1fr;
    }

    .impact-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .proj-partners {
        grid-template-columns: repeat(2, 1fr);
    }

    .doc {
        grid-template-columns: auto 1fr;
    }

    .doc__meta,
    .doc__cta {
        grid-column: 2;
    }

    .pfeat {
        border-right: none;
        border-bottom: var(--border) solid var(--wp--preset--color--ink);
    }

    .pfeat:last-child {
        border-bottom: none;
    }

    .card--glyph-side {
        grid-template-columns: 80px 1fr;
    }

    .card--glyph-side .card__num {
        font-size: 28px;
    }
}

/* ============================================================
   Phase 7 — News archive + single article
   ============================================================ */

.archive-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: end;
    margin-bottom: 24px;
}

.archive-head h1 {
    font-size: clamp(56px, 8vw, 120px);
    letter-spacing: -0.03em;
    line-height: 0.9;
    margin: 8px 0 0;
}

.archive-head__lede {
    font-size: 18px;
    color: var(--wp--preset--color--ink-soft);
    margin-top: 12px;
    max-width: 56ch;
}

.archive-count {
    text-align: right;
    border-left: var(--border) solid var(--wp--preset--color--ink);
    padding: 8px 0 8px 32px;
}

.archive-count__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 72px;
    line-height: 1;
    letter-spacing: -0.02em;
}

.archive-count__label {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    color: var(--wp--preset--color--ink-soft);
    margin-top: 4px;
    font-size: 15px;
}

.archive-filters {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
    align-items: flex-end;
    padding: 12px 0 24px;
}

.filter-group label {
    display: block;
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    margin-bottom: 8px;
    letter-spacing: 0.02em;
}

.filter-group .subtabs {
    display: inline-flex;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
}

.filter-group .subtabs__btn {
    padding: 8px 14px;
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--wp--preset--color--ink);
    background: transparent;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    cursor: pointer;
}

.filter-group .subtabs__btn:last-child {
    border-right: none;
}

.filter-group .subtabs__btn.is-on {
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
}

/* Featured news card */
.news-feature-section {
    padding: 12px 28px 24px;
}

.news-feature {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
    text-decoration: none;
    color: inherit;
    transition:
        transform 0.14s ease,
        box-shadow 0.14s ease;
}

.news-feature:hover {
    transform: translate(-3px, -3px);
    box-shadow: 6px 6px 0 var(--wp--preset--color--ink);
}

.news-feature__media {
    position: relative;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--wp--preset--color--paper-warm);
}

.news-feature__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.news-feature__body {
    padding: 40px 36px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
}

.news-feature__body h2 {
    font-size: clamp(24px, 2.4vw, 36px);
    line-height: 1.1;
    letter-spacing: -0.01em;
    margin: 0;
}

.news-feature__lede {
    font-size: 17px;
    color: var(--wp--preset--color--ink-soft);
    margin: 0;
}

.news-feature__cta {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--wp--preset--color--sea);
    margin-top: 8px;
}

/* Archive grid */
.news-archive-grid-section {
    padding: 24px 28px 40px;
}

.archive-grid .card {
    border: none;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.archive-grid .card:hover {
    transform: none;
    box-shadow: none;
    background: var(--wp--preset--color--paper-warm);
}

.archive-grid .card__media {
    aspect-ratio: 5 / 4;
}

.archive-grid .card__body {
    padding: 16px 18px 20px;
}

.archive-grid .card h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 17px;
    line-height: 1.2;
    margin: 10px 0 6px;
}

.archive-grid .card p {
    font-size: 13px;
    margin: 0;
    color: var(--wp--preset--color--ink-soft);
}

.archive-grid__empty {
    grid-column: 1 / -1;
    padding: 32px;
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    color: var(--wp--preset--color--ink-soft);
}

/* Pager */
.news-pager-section {
    padding: 0 28px 80px;
}

.pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-top: var(--border) solid var(--wp--preset--color--ink);
    padding-top: 32px;
}

.pager__edge {
    flex: 0 0 auto;
    width: 1px;
}

.pager__pages {
    display: flex;
    gap: 16px;
    align-items: center;
    font-size: 14px;
}

.pager__page {
    padding: 8px 12px;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
    color: var(--wp--preset--color--ink);
    text-decoration: none;
}

.pager__page--current {
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
}

.pager__dots {
    color: var(--wp--preset--color--ink-soft);
}

/* Single article */
.article {
    max-width: 760px;
    margin: 0 auto;
    padding: 56px 28px 80px;
}

.article--wide {
    max-width: 820px;
}

.article__head {
    margin-bottom: 28px;
    border-bottom: 1px solid var(--ink-20);
    padding-bottom: 24px;
}

.article__head h1 {
    margin: 18px 0 10px;
}

.article__standfirst {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-weight: 400;
    font-size: 22px;
    line-height: 1.5;
    color: var(--wp--preset--color--ink-soft);
    max-width: 54ch;
    margin: 18px 0 20px;
}

.article__meta {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 13px;
    color: var(--wp--preset--color--ink-soft);
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 8px 0 0;
}

.article__hero {
    border: var(--border) solid var(--wp--preset--color--ink);
    margin: 0 -28px 32px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--wp--preset--color--paper-warm);
    position: relative;
}

.article__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.article__caption {
    padding: 10px 28px 0;
    font-size: 12px;
    color: var(--wp--preset--color--ink-soft);
    background: var(--wp--preset--color--paper);
    border-top: 1px solid var(--ink-20);
}

.article__body p {
    font-size: 18px;
    line-height: 1.65;
}

.article__body > p:first-of-type {
    font-size: 19px;
}

.article__dropcap > p:first-of-type::first-letter {
    font-family: var(--wp--preset--font-family--newsreader);
    font-weight: 600;
    font-style: italic;
    font-size: 72px;
    float: left;
    line-height: 0.85;
    padding: 8px 10px 0 0;
    color: var(--wp--preset--color--pine);
}

.article__body h2 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 28px;
    letter-spacing: -0.01em;
    margin: 40px 0 16px;
}

.article__body blockquote {
    border-left: 4px solid var(--wp--preset--color--pine);
    padding: 6px 0 6px 20px;
    margin: 28px 0;
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    color: var(--wp--preset--color--ink-soft);
    font-size: 20px;
}

.article__body ol,
.article__body ul {
    padding-left: 20px;
    font-size: 17px;
    line-height: 1.7;
}

.article__body li {
    margin-bottom: 8px;
}

/* Data row inside article */
.data-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: var(--border) solid var(--wp--preset--color--ink);
    margin: 32px 0;
    background: var(--wp--preset--color--paper-warm);
}

.data-row--1 {
    grid-template-columns: 1fr;
}
.data-row--2 {
    grid-template-columns: repeat(2, 1fr);
}
.data-row--3 {
    grid-template-columns: repeat(3, 1fr);
}

.data-cell {
    padding: 22px 18px;
    border-right: var(--border) solid var(--wp--preset--color--ink);
}

.data-cell:last-child {
    border-right: none;
}

.data-cell__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 36px;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--wp--preset--color--pine);
}

.data-cell__label {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 14px;
    color: var(--wp--preset--color--ink-soft);
    margin-top: 6px;
}

/* Aside box */
.article__aside {
    background: var(--wp--preset--color--sky);
    border: var(--border) solid var(--wp--preset--color--ink);
    padding: 22px 24px;
    margin: 32px 0;
}

.article__aside-tag {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--wp--preset--color--ink);
    margin-bottom: 8px;
}

.article__aside p {
    font-family: var(--wp--preset--font-family--newsreader);
    font-size: 16px;
    margin: 0;
    max-width: none;
    line-height: 1.55;
}

.article__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 40px 0 0;
}

.article__tags .chip {
    text-decoration: none;
}

/* Related */
.article__related-wrap {
    padding-top: 0;
    padding-bottom: 80px;
}

.article__related {
    margin-top: 64px;
    padding-top: 40px;
    border-top: var(--border) solid var(--wp--preset--color--ink);
}

.article__related h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 28px;
    letter-spacing: -0.01em;
    margin: 6px 0 24px;
}

/* Related grid — base .card adapted to cell-mode + smaller body */
.related-grid .card {
    border: 0;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.related-grid .card:hover {
    transform: none;
    box-shadow: none;
    background: var(--wp--preset--color--paper-warm);
}

.related-grid .card__body {
    padding: 16px 18px;
    gap: 8px;
}

.related-grid .card h4 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 15px;
    line-height: 1.25;
    margin: 4px 0 0;
}

/* ============================================================
   News — responsive
   ============================================================ */
@media (max-width: 960px) {
    .archive-head {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .archive-count {
        text-align: left;
        border-left: none;
        border-top: var(--border) solid var(--wp--preset--color--ink);
        padding: 16px 0 0;
    }

    .archive-grid,
    .related-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .news-feature {
        grid-template-columns: 1fr;
    }

    .news-feature__media {
        border-right: none;
        border-bottom: var(--border) solid var(--wp--preset--color--ink);
        aspect-ratio: 4 / 3;
    }

    .news-feature__body {
        padding: 28px 24px;
    }

    .data-row,
    .data-row--3,
    .data-row--4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .data-cell {
        border-bottom: var(--border) solid var(--wp--preset--color--ink);
    }

    .data-cell:nth-last-child(-n + 2) {
        border-bottom: none;
    }

    .pager {
        flex-wrap: wrap;
        justify-content: center;
    }
}

/* ============================================================
   Phase 8a — Quem Somos + ROM
   ============================================================ */

/* Shared eyebrow modifier for dark backgrounds */
.eyebrow--paper {
    color: #c8d9bd;
}

/* MVV grid */
/* Timeline */
.timeline-band {
    background: var(--wp--preset--color--paper-warm);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.timeline {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: var(--border) solid var(--wp--preset--color--ink);
}

.tl {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    padding: 22px 8px;
}

.tl--hl {
    background: var(--wp--preset--color--sand);
}

.tl__year {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 38px;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--wp--preset--color--pine);
}

.tl--hl .tl__year {
    color: var(--wp--preset--color--sea);
}

.tl__body h4 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 19px;
    margin: 0 0 6px;
}

.tl__body p {
    font-size: 14px;
    color: var(--wp--preset--color--ink-soft);
    margin: 0;
    max-width: 64ch;
}

/* Org grid */
.section-head__meta {
    color: var(--wp--preset--color--ink-soft);
}

/* Finance band (pine bg) */
.finance-band {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.finance-band__h2 {
    color: var(--wp--preset--color--paper);
    max-width: 28ch;
}

.finance-band__h2 em {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-weight: 500;
    color: var(--wp--preset--color--sand);
}

.fin {
    padding: 24px 18px;
}

.fin__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 30px;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--wp--preset--color--paper);
}

.fin__label {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 13px;
    color: #c8d9bd;
    margin-top: 8px;
}

.finance-band__cta {
    margin-top: 32px;
}

.programmes-head {
    margin-bottom: 40px;
}

.programmes-head .is-style-eyebrow {
    display: block;
    margin-bottom: 12px;
}

/* Biodiversity table */
.biodiversity-band {
    background: var(--wp--preset--color--paper-warm);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.biodiversity {
    width: 100%;
    border-collapse: collapse;
    background: var(--wp--preset--color--paper);
    border: var(--border) solid var(--wp--preset--color--ink);
    font-size: 15px;
}

.biodiversity th,
.biodiversity td {
    padding: 16px 18px;
    text-align: left;
    border-bottom: 1px solid var(--ink-20);
    vertical-align: middle;
}

.biodiversity th {
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
    font-family: var(--wp--preset--font-family--archivo);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.biodiversity tbody tr:last-child td {
    border-bottom: none;
}

.biodiversity tbody tr:hover {
    background: var(--wp--preset--color--paper-warm);
}

.biodiversity td strong {
    font-family: var(--wp--preset--font-family--archivo);
    font-size: 15px;
}

.biodiversity__th--group {
    width: 28%;
}
.biodiversity__th--count {
    width: 14%;
}
.biodiversity__th--status {
    width: 18%;
}

/* Trails */
/* Trails grid — cards have a min-height so short ones don't collapse */
.trails .card {
    min-height: 200px;
}
.trails .card__num {
    margin-bottom: 8px;
}
.trails .card__when {
    margin-bottom: 12px;
}
.trails .card p {
    max-width: 32ch;
}

/* Programmes band (pine bg) */
.programmes-band {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.programmes-band__h2 {
    color: var(--wp--preset--color--paper);
    max-width: 24ch;
}

.programmes-band__h2 em {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-weight: 500;
    color: var(--wp--preset--color--sand);
}

.programme {
    padding: 28px 24px 32px;
}

.programme__tag {
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 11px;
    color: #c8d9bd;
    margin-bottom: 10px;
    letter-spacing: 0.02em;
}

.programme h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 22px;
    color: var(--wp--preset--color--paper);
    margin: 0 0 14px;
}

.programme p {
    font-size: 15px;
    line-height: 1.55;
    color: #e5dfd0;
    max-width: 38ch;
    margin-bottom: 16px;
}

.programme__meta {
    font-size: 11px;
    color: var(--wp--preset--color--sand);
}

.programmes-band__ctas {
    margin-top: 40px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* ============================================================
   Phase 8a — responsive
   ============================================================ */
@media (max-width: 960px) {
    .mvv,
    .org-grid {
        grid-template-columns: 1fr;
    }

    .trails,
    .programmes,
    .finance {
        grid-template-columns: repeat(2, 1fr);
    }

    .tl {
        grid-template-columns: 100px 1fr;
    }

    .tl__year {
        font-size: 28px;
    }

    .biodiversity th,
    .biodiversity td {
        padding: 10px 12px;
        font-size: 13px;
    }
}

@media (max-width: 600px) {
    .finance {
        grid-template-columns: repeat(2, 1fr);
    }

    .trails,
    .programmes {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Phase 8b — Participar + Contactos
   ============================================================ */

/* Participar tiles (sit inside .hero__tiles) */
.part-tile {
    padding: 32px 28px;
    text-decoration: none;
    color: var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 20px;
    align-items: baseline;
    transition: transform 0.12s ease;
}

.part-tile:last-child {
    border-bottom: none;
}

.part-tile:hover {
    transform: translateX(6px);
}

.part-tile--sky {
    background: var(--wp--preset--color--sky);
}
.part-tile--sand {
    background: var(--wp--preset--color--sand);
}
.part-tile--grass {
    background: var(--wp--preset--color--grass);
    color: var(--wp--preset--color--paper);
}

.part-tile--grass h3,
.part-tile--grass p {
    color: var(--wp--preset--color--paper);
}

.part-tile__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: 44px;
    letter-spacing: -0.02em;
    line-height: 1;
    opacity: 0.9;
}

.part-tile h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 26px;
    margin: 0 0 8px;
}

.part-tile p {
    font-size: 14px;
    margin: 0;
    opacity: 0.85;
}

/* Form split layout */
.form-split {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 48px;
    align-items: start;
}

.member-form-section__lede {
    font-size: 17px;
    color: var(--wp--preset--color--ink-soft);
    max-width: 52ch;
}

.member-form {
    margin-top: 28px;
}

.member-form .field {
    margin-bottom: 18px;
}

.member-form label {
    display: block;
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 13px;
    margin-bottom: 6px;
    letter-spacing: 0.02em;
}

.member-form input[type="text"],
.member-form input[type="email"],
.member-form input[type="tel"],
.member-form input[type="date"],
.member-form textarea {
    width: 100%;
    padding: 12px 14px;
    font-family: var(--wp--preset--font-family--newsreader);
    font-size: 16px;
    background: var(--wp--preset--color--paper);
    border: var(--border) solid var(--wp--preset--color--ink);
    color: var(--wp--preset--color--ink);
    border-radius: 0;
}

.member-form input:focus,
.member-form textarea:focus {
    outline: none;
    background: var(--wp--preset--color--paper-warm);
    box-shadow: 3px 3px 0 var(--wp--preset--color--pine);
}

.row2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.radio-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.radio-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
    font-size: 13px;
    font-weight: 400;
    cursor: pointer;
    transition: background 0.12s ease;
}

.radio-pill:hover {
    background: var(--wp--preset--color--paper-warm);
}

.radio-pill input {
    accent-color: var(--wp--preset--color--pine);
    margin: 0;
}

.radio-pill input:checked ~ span {
    font-weight: 600;
}

.radio-pill:has(input:checked) {
    background: var(--wp--preset--color--sand);
}

.checkbox-line {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-weight: 400;
    font-size: 14px;
}

.checkbox-line input {
    margin-top: 3px;
    accent-color: var(--wp--preset--color--pine);
}

.form-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.form-actions__hint {
    color: var(--wp--preset--color--ink-soft);
    font-size: 12px;
}

.form-ok {
    margin-top: 16px;
    padding: 14px 18px;
    background: var(--wp--preset--color--grass);
    color: var(--wp--preset--color--paper);
    border: var(--border) solid var(--wp--preset--color--ink);
    font-size: 14px;
}

.form-ok strong {
    font-weight: 700;
}

.form-err {
    margin-top: 16px;
    padding: 14px 18px;
    background: var(--wp--preset--color--sand);
    border: var(--border) solid var(--wp--preset--color--ink);
    font-size: 14px;
}

.field.is-error input,
.field.is-error textarea {
    box-shadow: 3px 3px 0 var(--wp--preset--color--sea);
}

.field__error {
    color: var(--wp--preset--color--sea);
    font-size: 12px;
    margin-top: 6px;
}

/* Member sidebar */
.member-side {
    background: var(--wp--preset--color--paper-warm);
    border: var(--border) solid var(--wp--preset--color--ink);
    padding: 28px 26px;
    position: sticky;
    top: 96px;
}

.member-side h3 {
    margin: 0 0 18px;
}

.bullets {
    list-style: none;
    padding: 0;
    margin: 0;
}

.bullets li {
    padding: 10px 0 10px 18px;
    font-size: 14px;
    line-height: 1.4;
    border-top: 1px solid var(--ink-20);
    position: relative;
}

.bullets li:first-child {
    border-top: none;
}

.bullets li::before {
    content: "→";
    position: absolute;
    left: 0;
    color: var(--wp--preset--color--pine);
    font-weight: 700;
}

.bullets strong {
    font-weight: 700;
}

.member-side__payment {
    margin-top: 24px;
    padding-top: 20px;
    border-top: var(--border) solid var(--wp--preset--color--ink);
}

.member-side__payment .mono {
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    display: block;
    margin-bottom: 10px;
    letter-spacing: 0.04em;
}

.pay {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pay__row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-family: var(--wp--preset--font-family--jetbrains-mono);
    font-size: 12px;
    padding: 6px 0;
    border-bottom: 1px dashed var(--ink-20);
}

.pay__row span {
    color: var(--wp--preset--color--ink-soft);
}

/* Volunteer band */
.volunteer-band {
    background: var(--wp--preset--color--paper-warm);
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.vol-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-left: var(--border) solid var(--wp--preset--color--ink);
}

.vol {
    padding: 28px 26px 30px;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
}

.vol__when {
    font-size: 11px;
    color: var(--wp--preset--color--sea);
    margin-bottom: 10px;
    letter-spacing: 0.04em;
}

.vol h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 22px;
    margin: 0 0 10px;
}

.vol p {
    font-size: 14px;
    line-height: 1.5;
    color: var(--wp--preset--color--ink-soft);
    margin: 0 0 14px;
    max-width: 48ch;
}

.vol__meta {
    font-size: 12px;
    margin-bottom: 16px;
    color: var(--wp--preset--color--ink-soft);
}

.vol__meta strong {
    color: var(--wp--preset--color--ink);
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
}

/* Donate */
.donate {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 48px;
    align-items: start;
}

.donate h2 {
    font-size: clamp(26px, 2.8vw, 40px);
    letter-spacing: -0.01em;
    line-height: 1.1;
    margin: 12px 0 18px;
    max-width: 28ch;
}

.donate__intro {
    font-size: 17px;
}

.amount-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    margin-top: 28px;
    border: var(--border) solid var(--wp--preset--color--ink);
}

.amt {
    padding: 18px 10px;
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 18px;
    background: var(--wp--preset--color--paper);
    border: none;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    color: var(--wp--preset--color--ink);
    cursor: pointer;
    transition: background 0.12s ease;
}

.amt:last-child {
    border-right: none;
}

.amt:hover {
    background: var(--wp--preset--color--paper-warm);
}

.amt--on {
    background: var(--wp--preset--color--pine);
    color: var(--wp--preset--color--paper);
}

.donate__ctas {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.donate__sepa {
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    margin-top: 12px;
}

.donate__aside {
    background: var(--wp--preset--color--sky);
    border: var(--border) solid var(--wp--preset--color--ink);
    padding: 28px 26px;
}

.donate__aside h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 20px;
    margin: 0 0 12px;
}

.donate__aside p {
    font-size: 14px;
    margin: 0 0 14px;
}

.donate__nipc {
    font-size: 18px;
    font-weight: 600;
    padding: 12px 14px;
    background: var(--wp--preset--color--paper);
    border: var(--border) solid var(--wp--preset--color--ink);
    margin: 14px 0;
    letter-spacing: 0.04em;
}

.donate__pdf {
    font-weight: 600;
    color: var(--wp--preset--color--sea);
    text-decoration: none;
}

/* Contact grid */
.contact-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: var(--border) solid var(--wp--preset--color--ink);
    border-left: var(--border) solid var(--wp--preset--color--ink);
}

/* Contact form band */
.contact-form-band {
    border-top: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper-warm);
}

.contact-form-band__inner {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 28px;
}

.contact-form {
    margin-top: 24px;
}

/* ============================================================
   Phase 8b — responsive
   ============================================================ */
@media (max-width: 960px) {
    .form-split,
    .donate,
    .vol-grid,
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .amount-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .contact-grid .card--wide {
        grid-column: 1;
    }

    .row2 {
        grid-template-columns: 1fr;
    }

    .member-side {
        position: static;
    }

    .amt {
        font-size: 16px;
        padding: 14px 8px;
    }
}

@media (max-width: 600px) {
    .amount-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .contact-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Phase 8c — Sitemap + Legal + 404
   ============================================================ */

/* Sitemap */
.sitemap__title {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: clamp(40px, 5vw, 76px);
    letter-spacing: -0.02em;
    line-height: 1;
    margin: 16px 0 32px;
}

.sitemap__title em {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-weight: 500;
    color: var(--wp--preset--color--pine);
}

.sitemap__lede {
    font-size: 18px;
    max-width: 60ch;
    color: var(--wp--preset--color--ink-soft);
    margin: 0 0 48px;
}

.sm-col {
    padding: 24px 22px 26px;
    background: var(--wp--preset--color--paper);
}

.sm-col h3 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 16px;
    margin: 0 0 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ink-20);
    letter-spacing: 0.02em;
}

.sm-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sm-col li {
    padding: 7px 0;
    border-bottom: 1px dashed var(--ink-20);
}

.sm-col li:last-child {
    border-bottom: none;
}

.sm-col a {
    text-decoration: none;
    color: var(--wp--preset--color--ink);
    font-size: 14px;
    line-height: 1.4;
    display: block;
}

.sm-col a:hover {
    color: var(--wp--preset--color--sea);
}

.sm-col--legal {
    background: var(--wp--preset--color--paper-warm);
}

/* Legal */
.legal-shell {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 0;
    max-width: 1240px;
    margin: 0 auto;
    border-top: var(--border) solid var(--wp--preset--color--ink);
}

.legal-toc {
    padding: 48px 28px 32px;
    border-right: var(--border) solid var(--wp--preset--color--ink);
    position: sticky;
    top: 80px;
    align-self: start;
    background: var(--wp--preset--color--paper-warm);
    min-height: 600px;
}

.legal-toc ul {
    list-style: none;
    padding: 0;
    margin: 18px 0 32px;
}

.legal-toc li {
    border-top: 1px solid var(--ink-20);
}

.legal-toc li:last-child {
    border-bottom: 1px solid var(--ink-20);
}

.legal-toc a {
    display: block;
    padding: 12px 4px;
    color: var(--wp--preset--color--ink);
    text-decoration: none;
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 500;
    font-size: 14px;
}

.legal-toc a:hover {
    color: var(--wp--preset--color--sea);
}

.legal-toc a.active {
    color: var(--wp--preset--color--pine);
    font-weight: 600;
}

.legal-toc__meta {
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    line-height: 1.6;
    letter-spacing: 0.04em;
    padding-top: 18px;
    border-top: 1px solid var(--ink-20);
}

.legal-doc {
    padding: 48px 56px 80px;
    max-width: 760px;
}

.legal-doc h1 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: clamp(32px, 3.6vw, 52px);
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 0 0 16px;
}

.legal-doc h2 {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
    font-size: 22px;
    margin: 36px 0 12px;
    padding-top: 20px;
    border-top: 1px solid var(--ink-20);
}

.legal-doc h2:first-of-type {
    padding-top: 0;
    border-top: none;
    margin-top: 28px;
}

.legal-doc p {
    font-family: var(--wp--preset--font-family--newsreader);
    font-size: 17px;
    line-height: 1.65;
    margin: 0 0 16px;
    color: var(--wp--preset--color--ink);
}

.legal-doc .legal-lede {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 19px;
    line-height: 1.55;
    color: var(--wp--preset--color--ink-soft);
    margin-bottom: 24px;
    padding-bottom: 18px;
    border-bottom: var(--border) solid var(--wp--preset--color--ink);
}

.legal-doc ul {
    font-family: var(--wp--preset--font-family--newsreader);
    font-size: 17px;
    line-height: 1.65;
    padding-left: 22px;
    margin: 0 0 16px;
}

.legal-doc ul li {
    padding: 4px 0;
}

.legal-doc a {
    color: var(--wp--preset--color--sea);
}

.legal-table {
    width: 100%;
    border-collapse: collapse;
    border: var(--border) solid var(--wp--preset--color--ink);
    margin: 16px 0 22px;
    font-size: 14px;
}

.legal-table th,
.legal-table td {
    padding: 10px 14px;
    text-align: left;
    border-bottom: 1px solid var(--ink-20);
    border-right: 1px solid var(--ink-20);
    vertical-align: top;
}

.legal-table th:last-child,
.legal-table td:last-child {
    border-right: none;
}

.legal-table th {
    background: var(--wp--preset--color--paper-warm);
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 700;
}

.legal-table tr:last-child td {
    border-bottom: none;
}

/* 404 */
.four04 {
    padding: 64px 28px 96px;
    max-width: 1240px;
    margin: 0 auto;
}

.four04__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 48px;
    align-items: start;
    border-top: var(--border) solid var(--wp--preset--color--ink);
    padding-top: 48px;
}

.four04__display {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: clamp(48px, 6vw, 96px);
    line-height: 0.95;
    letter-spacing: -0.025em;
    margin: 14px 0 24px;
}

.four04__display em {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-weight: 500;
    color: var(--wp--preset--color--pine);
}

.four04__lede {
    font-family: var(--wp--preset--font-family--newsreader);
    font-size: 19px;
    line-height: 1.55;
    color: var(--wp--preset--color--ink-soft);
    max-width: 52ch;
    margin: 0 0 28px;
}

.four04__ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 40px;
}

.four04__suggest {
    border-top: var(--border) solid var(--wp--preset--color--ink);
    padding-top: 24px;
    max-width: 520px;
}

.four04__suggest .mono {
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.four04__suggest ul {
    list-style: none;
    padding: 0;
    margin: 14px 0 0;
}

.four04__suggest li {
    padding: 10px 0;
    border-bottom: 1px dashed var(--ink-20);
}

.four04__suggest li:last-child {
    border-bottom: none;
}

.four04__suggest a {
    text-decoration: none;
    color: var(--wp--preset--color--ink);
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 500;
    font-size: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.four04__suggest a::after {
    content: "→";
    color: var(--wp--preset--color--sea);
}

.four04__suggest a:hover {
    color: var(--wp--preset--color--sea);
}

.four04__plate {
    border: var(--border) solid var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper-warm);
    padding: 32px 28px 28px;
    position: relative;
}

.four04__plate::before {
    content: "";
    position: absolute;
    top: 14px;
    right: 14px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--wp--preset--color--sea);
    border: 2px solid var(--wp--preset--color--ink);
}

.four04__num {
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 800;
    font-size: clamp(120px, 16vw, 220px);
    line-height: 0.85;
    letter-spacing: -0.04em;
    color: var(--wp--preset--color--ink);
    margin-bottom: 20px;
}

.four04__species {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 12px;
    color: var(--wp--preset--color--ink-soft);
    letter-spacing: 0.06em;
    border-top: 1px solid var(--ink-20);
    padding-top: 16px;
}

.four04__species span:first-child {
    font-family: var(--wp--preset--font-family--newsreader);
    font-style: italic;
    font-size: 18px;
    color: var(--wp--preset--color--ink);
    letter-spacing: 0;
    text-transform: none;
    margin-bottom: 4px;
}

.four04__caption {
    margin-top: 16px;
    font-size: 11px;
    color: var(--wp--preset--color--ink-soft);
    line-height: 1.6;
}

.four04__caption a {
    color: var(--wp--preset--color--sea);
}

/* ============================================================
   Phase 8c — responsive
   ============================================================ */
@media (max-width: 960px) {
    .sitemap-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .legal-shell {
        grid-template-columns: 1fr;
    }

    .legal-toc {
        position: static;
        min-height: 0;
        border-right: none;
        border-bottom: var(--border) solid var(--wp--preset--color--ink);
        padding: 32px 24px;
    }

    .legal-doc {
        padding: 40px 24px 64px;
    }
}

@media (max-width: 860px) {
    .four04__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

@media (max-width: 600px) {
    .sitemap-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Phase 9 — Accessibility + reduced motion
   ============================================================ */

.skip-link {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    z-index: 100;
    background: var(--wp--preset--color--ink);
    color: var(--wp--preset--color--paper);
    padding: 12px 18px;
    font-family: var(--wp--preset--font-family--archivo);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    letter-spacing: 0.02em;
}

.skip-link:focus,
.skip-link:focus-visible {
    position: fixed;
    left: 12px;
    top: 12px;
    width: auto;
    height: auto;
    outline: 2px solid var(--wp--preset--color--sea);
    outline-offset: 2px;
}

/* Global focus-visible */
*:focus-visible {
    outline: 2px solid var(--wp--preset--color--sea);
    outline-offset: 2px;
}

/* Buttons / button-likes — clearer focus ring on coloured surfaces */
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible,
button:focus-visible,
.nav-toggle:focus-visible,
.subtabs__btn:focus-visible,
.amt:focus-visible {
    outline: 2px solid var(--wp--preset--color--sea);
    outline-offset: 3px;
}

/* Links inside text — show focus when keyboarded */
a:focus-visible {
    outline: 2px solid var(--wp--preset--color--sea);
    outline-offset: 2px;
    border-radius: 1px;
}

/* Inputs — keep our existing focus shadow but also a visible outline for high-contrast */
.member-form input:focus-visible,
.member-form textarea:focus-visible {
    outline: 2px solid var(--wp--preset--color--sea);
    outline-offset: 0;
}

.radio-pill:focus-within {
    outline: 2px solid var(--wp--preset--color--sea);
    outline-offset: 2px;
}

/* Cards — only show outline when keyboarded, not on hover */
.card:focus-within,
.card:focus-visible,
.news-feature:focus-visible,
.part-tile:focus-visible,
.card--flat a:focus-visible {
    outline: 2px solid var(--wp--preset--color--sea);
    outline-offset: 2px;
}

/* Visually-hidden helper for sr-only content */
.screen-reader-text {
    position: absolute !important;
    clip: rect(1px, 1px, 1px, 1px);
    width: 1px;
    height: 1px;
    overflow: hidden;
    white-space: nowrap;
}

/* ============================================================
   Phase 9 — Reduced motion
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .card:hover,
    .news-feature:hover,
    .part-tile:hover {
        transform: none;
        box-shadow: none;
    }
}
