/* =============================================================
   CONGOPA — CANONICAL STYLESHEET
   Single source of truth for all pages.
   No variables. No overrides. No light mode. One truth.
   We don't release our work until it works for all.

   ═════════════════════════════════════════════════════════════
   LOCKED DESIGN STANDARDS — last updated 2026-03-02
   ═════════════════════════════════════════════════════════════


   1. PALETTE
   ─────────────────────────────────────────────────────────────
     Brand turquoise (high):  #62CCAC  — eyebrows, brand, reveals, stage labels,
                                         river intro, spine label, blockquote borders
     Brand turquoise (mid):   #4FAF97  — buttons, blockquote border, footer give ring
     Cream-white (headings):  #FDFBF6  — h1–h5, blockquote text
     Cream (body):            #F6F3EC  — paragraph text
     Cream (muted):           #e8e2d5  — secondary prose, lead text, footer text
     Warm muted:              #b0a898  — captions, notes, tertiary text
     Warm amber:              #FFF0C8  — focus rings ONLY (reserved — never for text)
     Link default:            #B2FAED  — lighter turquoise for in-prose links
     Deep night (footer):     #392f24 → #4d4337

     Turquoise is the through-line. It carries from the eyebrow
     through the stage labels, the river intro, the blockquote
     border, the spine label, the nav pill, the footer give
     button, and the brand mark. One color, one voice, one thread.


   2. TYPOGRAPHY HIERARCHY (three voices)
   ─────────────────────────────────────────────────────────────
     Voice 1: Eyebrow  — #62CCAC, 13px uppercase, 2px tracking
              The congregation's orientation voice. "Where you are."
              Always precedes a heading. Never decoration.

     Voice 2: Heading  — #FDFBF6, Lora serif, 600/700 weight
              Meaning. What this section is about.
              Guardian headings (those that head prose) outdent: margin-left: -24px
              Non-guardian headings (card titles, affirmation headers) do not outdent.

     Voice 3: Body     — #F6F3EC, Inter sans-serif, 17px, line-height 1.7
              The unfolding. Prose. Left-aligned. One spine, one ragged edge.

     Font stack: Lora (serif) for headings, blockquotes, spine, brand.
                 Inter (sans) for body, nav, eyebrows, buttons, metadata.


   3. ALIGNMENT — ONE SPINE, ONE RAGGED EDGE
   ─────────────────────────────────────────────────────────────
     Left alignment is the standard. Every heading, every paragraph,
     every image sits on one vertical spine. The right edge is ragged —
     that's how the eye tracks prose without fatigue.

     Centered text creates two ragged edges. The reader must pin down
     both sides simultaneously, multiplied by every line. Centered
     prose is a decoding exercise, not a reading experience.

     CENTERED IS PERMITTED ONLY FOR:
       - Journey spine (navigation, not prose)
       - Footer (metadata, not prose)
       - River intro (single directional line over image)
       - Affirmations (liturgical recitation — the one exception)
       - The affirmations-note beneath the blockquote

     NEVER CENTER: openings, invitations, body prose, headings that
     guard prose, blockquotes, captions, or any text meant to be read
     as continuous thought.

     THIS IS A MATCHED PAIR WITH SECTION 4 BELOW.
     Alignment without breath control is half a fix. A left-aligned
     paragraph that the browser wraps at arbitrary points is better
     than centered — but not good enough. Every piece of short-form
     text (headings, lead lines, blockquotes, invitation closings)
     needs BOTH: left-alignment from the CSS, AND controlled <br>
     breaks from the HTML. Neither works alone.


   4. CONTROLLED BREATH — <br> AS DESIGN TOOL
   ─────────────────────────────────────────────────────────────
     The browser never decides where a line breaks. We do.

     THIS IS THE HTML HALF OF THE ALIGNMENT STANDARD (section 3).
     The CSS sets text-align: left. The HTML controls WHERE each
     line ends within that left-aligned block. Together they
     produce text that reads the way it was written — with pauses
     where meaning pauses, not where the viewport runs out of room.

     WHAT GETS CONTROLLED BREAKS:
       - Headings: break at the phrase boundary.
           YES: Walking alongside —<br>from wellness through passage.
           NO:  Walking alongside — from wellness through passage.
       - Lead text / subtitle lines beneath headings.
       - Blockquote text (every blockquote, every time).
       - Invitation closing lines.
       - Any short passage (under ~4 lines) that carries weight.

     WHAT DOES NOT NEED CONTROLLED BREAKS:
       - Long-form body prose (paragraphs of 3+ sentences).
         These flow naturally within the left-aligned column
         and the browser's word-wrap is fine. Controlling every
         line in a full paragraph would be brittle across screen
         sizes and would break on mobile.

     VERTICAL BREATH:
       - Between paragraphs in invitation/closing sections,
         add a bare <br> between </p> and <p> when the default
         margin isn't enough — especially where the pace slows.
       - Use <br><br> sparingly, only for a true pause between
         movements (e.g., between the prose close and a final
         blockquote).

     WIDOWS AND ORPHANS:
       A single word alone on a line is a failure of care.
       Fix with <br> before the widow appears.

     HOW TO COORDINATE WHEN BUILDING A NEW PAGE:
       1. Set the section to text-align: left (CSS default does this).
       2. Write the heading. Read it aloud. Break it where you pause.
       3. Write the lead text. Break it at phrase boundaries.
       4. Write body prose. Let it flow — no breaks needed.
       5. Write blockquotes. Break at every phrase boundary.
       6. Write invitation/closing text. Break every line.
       7. Read the whole section top to bottom. If any line
          ends at an awkward word, add a <br> to fix it.
       8. Test at mobile width. If a controlled break creates
          a worse result on small screens, consider whether
          the break should be a natural space instead.


   5. GUARDIAN HEADINGS — THE OUTDENT
   ─────────────────────────────────────────────────────────────
     Any h1 or h2 that introduces a prose block steps outside
     the text column: margin-left: -24px (applied inline).

     This signals: "I guard what follows." The heading stands
     slightly proud of the prose it introduces, the way a
     chapter title sits above the paragraph indent.

     DO outdent: page h1s, section h2s that head body text.
     DO NOT outdent: card titles, affirmation headers, or any
     heading inside a contained component (blockquote, card, spine).


   6. TEMPORAL ARC — THE SCORE
   ─────────────────────────────────────────────────────────────
     The background is the score beneath the content.

     In a beautiful film, the score is what makes you expect,
     crave, and feel unsettled until the moment arrives. Without
     it, the same scene falls flat. You wouldn't know why — you'd
     just feel less. The temporal arc works the same way.

     The reader never notices the background changing. But they
     would notice if it stopped. The cool grey of dawn tells the
     body: this is a threshold, something is about to be asked
     of you. The warmth that builds through afternoon says: you've
     stayed, and now this matters more. The golden dusk of an
     invitation section earns its warmth because the reader
     walked through every section before it.

     "Treasures from advocacy are eternal" lands at dusk —
     not because dusk is pretty, but because the reader has been
     carried there by everything that came before. Place it at
     dawn and it's a slogan. Place it where it belongs and it's
     a closing truth.

     THE PALETTE:
       Dawn:        #4e5356 → #565d60 → #5e655e   (threshold, opening)
       Morning:     #5d6358 → #656b5e → #6d6c5d   (first content section)
       Midday:      #656258 → #6e6a5b → #736e5f   (practical, grounded)
       Afternoon:   #6e675a → #746c5e → #6b6457   (warmth builds)
       Dusk:        #766752 → #7B644D → #6e5c4a   (golden, invitation)
       Night:       #4d4337 → #423929 → #392f24   (footer only)

     HOW TO USE IT:
       Applied via inline style on each <section>. The arc is
       page-specific — each page's content earns its own
       progression based on emotional weight, not formula.

       A six-section page may move dawn → morning → midday →
       afternoon → dusk → night. A three-section page may
       move dawn → afternoon → dusk. There is no rule that
       says every step must be used. The score follows the
       content. When the content shifts weight, the light shifts.

       When building a new page: read the content aloud. Feel
       where the emotional temperature rises. Place the gradients
       there. If a section feels warm when you read it, it should
       look warm when you see it. Trust the content to tell you
       where the light belongs.


   7. BLOCKQUOTE STANDARD
   ─────────────────────────────────────────────────────────────
     border-left: 5px solid #4FAF97 (turquoise — the thread)
     background:  rgba(0,0,0,.18)   (dark neutral, no color cast)
     text:        #FDFBF6, Lora italic 18px, line-height 1.6
     padding:     18px 22px
     radius:      0 8px 8px 0 (rounds away from the border)

     The blockquote is a moment of stillness in the prose.
     The turquoise border connects it to the site's through-line.
     The dark neutral background lets the cream text breathe
     without introducing a competing color temperature.

     NO turquoise text inside blockquotes.
     NO turquoise background wash.
     NO amber borders (old standard, retired).


   8. IMAGE SYSTEM
   ─────────────────────────────────────────────────────────────
     Images sit on the left spine: margin: 28px 0 12px
     (NOT centered with margin: auto)

     Container: padding 16px, gradient background that echoes
     the temporal arc, 1px white-alpha border, 12px radius.
     The image inside: full width, 8px radius.

     Captions: only for literal photo credits.
     Generated images carry their description in alt text only.
     Do not caption generated/illustrated images.


   9. ARTICLE CARDS — STEPPING STONES
   ─────────────────────────────────────────────────────────────
     Cards live inside .card-stream (flex column, 24px gap).
     Each card: dark glass background, blur, turquoise left border.

     Stage labels (.article-stage): 11px uppercase, #62CCAC turquoise,
     same voice as eyebrows — orientation, not decoration.

     Card titles: Lora 20px 700, cream-white.
     Card descriptions: 14px, muted cream.

     Hover: border brightens to full turquoise, subtle lift.
     Cards do NOT get guardian outdents — they're contained components.


   10. RIVER OVERLAY SYSTEM
   ─────────────────────────────────────────────────────────────
     Full-bleed background image ghosted beneath content.
     Image opacity: .60
     Vertical vignette fades image at top and bottom.
     Horizontal edge-fade blends to page background color.

     River intro text: Lora italic 15px, #62CCAC turquoise,
     centered (the one permitted centered text over the image —
     a single directional line, not prose).

     Content sits in .river-content at z-index: 1.
     Max-width: 520px with 28px padding to prevent card clipping
     against overflow: hidden on the section.


   11. OPENING SECTIONS
   ─────────────────────────────────────────────────────────────
     Every page has one. Default: left-aligned (text-align: left).
     Padding: 80px 20px 60px.
     Eyebrow → h1 → lead text.

     The opening is not a hero. It is a threshold.
     It earns the reader's attention with quiet confidence,
     not volume.


   12. INVITATION / CLOSING SECTIONS
   ─────────────────────────────────────────────────────────────
     Left-aligned. Not centered.
     H2 gets guardian outdent.
     Prose max-width: 600px.
     Controlled <br> at phrase boundaries.

     The invitation earns its own section because it shifts voice —
     from unfolding to offering. But it still sits on the spine.


   13. JOURNEY SPINE
   ─────────────────────────────────────────────────────────────
     Every page ends with a spine that moves the reader forward.
     Label: Lora italic, #62CCAC, "Continue the journey . . ."
     Centered (navigation, not prose — this is permitted).

     Link text is forward motion — describes where the reader
     is going, not what they just left.
     Example: "The belief we gather around ⇨" not "⇨ About page"


   14. NAVIGATION
   ─────────────────────────────────────────────────────────────
     Fixed top bar. Always hamburger (no desktop link row).
     Brand: "CongoPA" in Lora 700, #62CCAC.
     "Begin Your Directive" pill: only CTA button on the site.
     It lives in the nav ONLY — never repeated in page body.

     No body buttons. No "Give them that gift." No inline CTAs.
     The nav carries the action. The content earns the click.


   15. FOOTER
   ─────────────────────────────────────────────────────────────
     Night gradient. Centered (metadata, not prose — permitted).
     Three lines: status, ethic, invitation to give.
     "Give" button: ghost ring, #62CCAC turquoise border.
     Address line: CongoPA.org · PO Box 1177 · Pecos, New Mexico · 87552


   16. ACCESSIBILITY & WORD CHOICES
   ─────────────────────────────────────────────────────────────
     Dyslexia-aware: "sacred" → "profound" throughout.
     (A dyslexic reader in a healthcare context sees "scared.")

     Focus rings: 3px solid #FFF0C8, offset 3px.
     Skip link: hidden until keyboard focus, then centered top.
     All images: descriptive alt text.
     Decorative images: alt="" aria-hidden="true".
     Semantic HTML: <main>, <nav>, <section>, <figure>, <footer>.
     ARIA labels on navigation landmarks.

     We don't release our work until it works for all.


   17. PAGE-SPECIFIC STYLES
   ─────────────────────────────────────────────────────────────
     Each page may carry a small <style> block for patterns
     that are genuinely unique to that page:

       index.html    — .advocate-reveal, .threshold-question (~20 lines)
       advocate.html — .lead2 (~8 lines)
       about.html    — .affirmation-line, .affirmations-note (~25 lines)
       articles.html — NONE (zero page-specific styles)

     If a pattern appears on two or more pages, it belongs here
     in the canonical sheet. Page-specific blocks should shrink
     over time, not grow.

   ============================================================= */


/* ── Reset & Base ─────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }
html { background: #4e5356; }
html, body { height: 100%; }

body {
  margin: 0;
  padding-top: 64px; /* nav height */
  min-height: 100vh;
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  color: #F6F3EC;
  background: #4e5356;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}


/* ── Typography ───────────────────────────────────────────────────────────── */

h1, h2, h3, h4, h5 {
  font-family: 'Lora', serif;
  color: #FDFBF6;
  margin: 0 0 24px 0;
  line-height: 1.18;
  letter-spacing: -0.2px;
}

p { margin: 0 0 18px 0; color: #F6F3EC; }
p:last-child { margin-bottom: 0; }

a { color: #B2FAED; text-decoration: none; }
a:hover { color: #8EDDCC; }

::selection { background: rgba(79,175,151,.3); color: #FDFBF6; }


/* ── Focus: accessibility ─────────────────────────────────────────────────── */

a:focus-visible,
button:focus-visible {
  outline: 3px solid #FFF0C8;
  outline-offset: 3px;
  border-radius: 10px;
}


/* ── Skip link ────────────────────────────────────────────────────────────── */

.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: 1000;
}
.skip-link:focus {
  position: fixed;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  height: auto;
  overflow: visible;
  padding: 10px 20px;
  background: #4FAF97;
  color: #000;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  z-index: 10000;
}


/* ── Navigation ───────────────────────────────────────────────────────────── */

.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  background: rgba(96,90,78,.97);
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 9999;
}
.nav-inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand {
  font-family: 'Lora', serif;
  font-weight: 700;
  color: #62CCAC;
  font-size: 22px;
  letter-spacing: 0.1px;
  white-space: nowrap;
  margin-right: auto;
  text-decoration: none;
}
.brand:hover { color: #7EDBBE; }

.nav-right {
  display: flex;
  align-items: center;
  gap: 12px;
}
.nav-links { display: none; } /* desktop links hidden — hamburger always */

/* Nav pill — "Begin Your Directive" */
.nav-pill-sm {
  display: inline-flex;
  align-items: center;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.3px;
  padding: 8px 18px;
  border-radius: 999px;
  background: #4FAF97;
  color: #000000;
  text-decoration: none;
  box-shadow: 0 3px 10px rgba(79,175,151,.2);
  white-space: nowrap;
  transition: all 0.2s ease;
}
.nav-pill-sm:hover {
  background: #62CCAC;
  color: #000000;
  box-shadow: 0 5px 14px rgba(79,175,151,.35);
  transform: translateY(-1px);
}
.nav-pill-sm:focus-visible { outline: 3px solid #FFF0C8; outline-offset: 3px; }

/* Hamburger */
.hamburger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.1);
  border-radius: 12px;
  padding: 10px 12px;
  cursor: pointer;
  line-height: 0;
}
.hamburger svg { display: block; width: 20px; height: 20px; stroke: #F6F3EC; }
.hamburger:hover {
  background: rgba(79,175,151,.12);
  border-color: rgba(79,175,151,.3);
}
.hamburger:focus-visible { outline: 3px solid #FFF0C8; outline-offset: 3px; }

/* Mobile panel */
.mobile-panel {
  display: none;
  max-width: 400px;
  margin: 8px auto 12px;
  padding: 12px 16px 16px;
  background: rgba(40,38,32,.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(98,204,172,.12);
  border-radius: 14px;
}
.mobile-panel.is-open { display: block; }
.mobile-panel a {
  display: block;
  padding: 13px 14px;
  border-radius: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #F6F3EC;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,.05);
  text-decoration: none;
  transition: background .15s ease;
}
.mobile-panel a:last-child { border-bottom: none; }
.mobile-panel a:hover { background: rgba(98,204,172,.1); color: #F6F3EC; }


/* ── Layout ───────────────────────────────────────────────────────────────── */

.container {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}

.prose {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
.container .prose {
  padding-left: 0;
  padding-right: 0;
}

.spacer-16 { height: 16px; }
.spacer-20 { height: 20px; }
.spacer-32 { height: 32px; }


/* ── Section padding ──────────────────────────────────────────────────────── */

.section {
  padding: 80px 20px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.closing { padding: 60px 20px; }


/* ── Temporal arc — section backgrounds ──────────────────────────────────── */
/* Apply via inline style or page-specific class. Arc: dawn → dusk */

/* Dawn */
.bg-dawn {
  background: linear-gradient(180deg, #4e5356 0%, #565d60 45%, #5e655e 100%);
}
/* Morning */
.bg-morning {
  background: linear-gradient(180deg, #5d6358 0%, #656b5e 45%, #6d6c5d 100%);
}
/* Midday */
.bg-midday {
  background: linear-gradient(180deg, #656258 0%, #6e6a5b 45%, #736e5f 100%);
}
/* Afternoon */
.bg-afternoon {
  background: linear-gradient(180deg, #6e675a 0%, #746c5e 45%, #6b6457 100%);
}
/* Dusk */
.bg-dusk {
  background: linear-gradient(180deg, #766752 0%, #7B644D 45%, #6e5c4a 100%);
}


/* ── Eyebrows ─────────────────────────────────────────────────────────────── */
/* Congregation voice. Orientation. Never decoration. */

.eyebrow {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #62CCAC;
  margin: 0 0 14px 0;
  font-weight: 600;
}


/* ── Headings ─────────────────────────────────────────────────────────────── */

.section-heading {
  font-size: 32px;
  font-weight: 700;
}

/* Guardian headings: prose-facing h2s step outside the column */
/* Apply margin-left: -24px via inline style on any h2 that heads prose */


/* ── Body text ────────────────────────────────────────────────────────────── */

.section-body {
  font-size: 17px;
  color: #F6F3EC;
  line-height: 1.7;
  margin: 0;
}
.section-body + .section-body { margin-top: 16px; }

.lead {
  font-size: 18px;
  color: #e8e2d5;
  line-height: 1.7;
}
.lead + .lead { margin-top: 16px; }
.lead-muted {
  font-size: 16px;
  color: #b0a898;
  line-height: 1.7;
  margin-top: 16px;
}

.body-text p {
  font-size: 17px;
  color: #F6F3EC;
  line-height: 1.7;
  margin: 0 0 18px 0;
}
.body-text p:last-child { margin-bottom: 0; }


/* ── Blockquote — locked standard ────────────────────────────────────────── */
/* Border signals. Text remains legible. No color netting. */

blockquote {
  border-left: 5px solid #4FAF97;
  background: rgba(0,0,0,.18);
  padding: 18px 22px;
  border-radius: 0 8px 8px 0;
  margin: 28px 0 0 0;
}
blockquote p {
  margin: 0;
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 18px;
  color: #FDFBF6;
  line-height: 1.6;
}

/* Liturgical variant — self-centering, wider breath for recitation */
.blockquote-liturgical {
  padding: 24px 28px;
  max-width: 520px;
  margin: 0 auto;
}
.blockquote-liturgical p {
  line-height: 2;
}


/* ── Buttons ──────────────────────────────────────────────────────────────── */

.hero-button, .cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  font-family: 'Lora', serif;
  background: #4FAF97;
  color: #000000;
  font-weight: 700;
  border-radius: 999px;
  box-shadow: 0 4px 16px rgba(79,175,151,.25);
  transition: all 0.2s ease;
  text-decoration: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.hero-button { font-size: 16px; padding: 16px 40px; }
.cta-button  { font-size: 18px; padding: 20px 48px; }
.hero-button:hover, .cta-button:hover {
  background: #62CCAC;
  box-shadow: 0 6px 20px rgba(79,175,151,.35);
  transform: translateY(-1px) scale(1.02);
  color: #000000;
}
.hero-button:active, .cta-button:active { transform: translateY(0); }
.hero-button:focus-visible, .cta-button:focus-visible {
  outline: 3px solid #FFF0C8;
  outline-offset: 3px;
}


/* ── Image system ─────────────────────────────────────────────────────────── */

img { max-width: 100%; height: auto; display: block; }

figure, .hero-image, .portrait-img {
  max-width: 600px;
  width: 100%;
  margin: 28px 0 12px;
  padding: 16px;
  background: linear-gradient(180deg,
    rgba(78,83,86,.45) 0%,
    rgba(93,99,88,.35) 50%,
    rgba(110,106,91,.25) 100%);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  box-sizing: border-box;
}
figure img, .hero-image img, .portrait-img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}
figure figcaption {
  font-size: 13px;
  color: #b0a898;
  font-style: italic;
  margin-top: 10px;
}


/* ── Journey spine ────────────────────────────────────────────────────────── */
/* Every page ends here. Label: "Continue the journey . . ." */
/* Link text is forward motion — not a re-introduction of what was just read. */

.journey-spine {
  max-width: 640px;
  margin: 48px auto 40px;
  padding: 40px 32px 44px;
  text-align: center;
  background: rgba(40,36,30,.65);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
}
.journey-spine-label {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 20px;
  color: #62CCAC;
  letter-spacing: 0.3px;
  margin-bottom: 24px;
}
.journey-spine a {
  display: block;
  padding: 18px 24px;
  margin: 10px auto;
  max-width: 520px;
  border-radius: 12px;
  font-family: 'Lora', serif;
  font-size: 18px;
  font-weight: 600;
  color: #F6F3EC;
  text-decoration: none;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  transition: all 0.2s ease;
}
.journey-spine a:hover {
  background: rgba(98,204,172,.15);
  border-color: rgba(98,204,172,.35);
  color: #F6F3EC;
  transform: translateY(-1px);
}
.journey-spine .journey-directive {
  background: #4FAF97;
  color: #000000;
  border: none;
  margin-top: 20px;
  font-weight: 700;
}
.journey-spine .journey-directive:hover { background: #62CCAC; color: #000000; }


/* ── Footer — Night ───────────────────────────────────────────────────────── */

footer {
  background: linear-gradient(180deg, #4d4337 0%, #423929 50%, #392f24 100%);
  color: #e8e2d5;
  padding: 80px 20px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.footer-inner { max-width: 800px; margin: 0 auto; text-align: center; }
.footer-text {
  font-size: 17px;
  color: #e8e2d5;
  max-width: 760px;
  margin: 0 auto 24px auto;
}
footer a { color: #4FAF97; text-decoration: none; }
footer p { color: #e8e2d5; }

.footer-give {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 14px;
  padding: 10px 16px;
  border-radius: 999px;
  border: 2px solid #62CCAC;
  color: #62CCAC;
  background: transparent;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
}
.footer-give:hover {
  background: rgba(98,204,172,.15);
  border-color: #7EDBBE;
  transform: translateY(-1px);
  color: #7EDBBE;
}
.footer-meta {
  margin-top: 16px;
  font-size: 14px;
  color: #e8e2d5;
}


/* ── Misc ─────────────────────────────────────────────────────────────────── */

hr { border: none; border-top: 1px solid rgba(255,255,255,.08); }

.caption {
  font-size: 13px;
  color: #b0a898;
  font-style: italic;
  margin-top: 10px;
}


/* ── Opening sections ─────────────────────────────────────────────────────── */
/* Every page has one. Centered by default; override with text-align:left inline. */

.opening {
  padding: 80px 20px 60px;
  text-align: left;
  border-top: 1px solid rgba(255,255,255,.08);
}
.opening .eyebrow { margin-bottom: 12px; }
.opening h1 {
  font-size: 38px;
  font-weight: 700;
  color: #FDFBF6;
  margin: 0 0 20px 0;
  line-height: 1.2;
}
.opening p, .opening .subtitle {
  font-size: 18px;
  color: #e8e2d5;
  max-width: 600px;
  margin: 0;
  line-height: 1.6;
}


/* ── Prose blocks ────────────────────────────────────────────────────────── */

.prose p {
  margin-bottom: 22px;
  line-height: 1.8;
}


/* ── Invitation sections ─────────────────────────────────────────────────── */
/* Closing CTA or thematic close on content pages. */

.invitation { padding: 80px 20px; }
.invitation h2 {
  font-size: 36px;
  font-weight: 700;
  text-align: left;
}
.invitation .prose {
  text-align: left;
  max-width: 600px;
}
.invite { padding: 80px 20px; }


/* ── River section — articles page overlay system ────────────────────────── */
/* River image ghosted beneath cards. Reusable for any full-bleed image section. */

.river-section {
  position: relative;
  overflow: hidden;
  padding: 80px 20px;
}
.river-section .river-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  justify-content: center;
}
.river-section .river-bg-inner {
  width: 100%;
  max-width: 800px;
  height: 100%;
  position: relative;
}
.river-section .river-bg-inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  opacity: .60;  /* river visibility */
}
.river-section .river-vignette {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(78,83,86,.5)  0%,
    rgba(78,83,86,.2)  12%,
    rgba(93,99,88,.12) 50%,
    rgba(93,99,88,.2)  88%,
    rgba(110,106,91,.55) 100%);
}
.river-section .river-edge-fade {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(90deg,
    rgba(93,99,88,1)   0%,
    rgba(93,99,88,0)   12%,
    rgba(93,99,88,0)   88%,
    rgba(93,99,88,1)   100%);
}
.river-section .river-content {
  position: relative;
  z-index: 1;
  max-width: 520px;
  margin: 0 auto;
  padding: 0 28px;
}
.river-section .river-intro {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 15px;
  color: #62CCAC;
  text-align: center;
  margin: 0 0 24px 0;
}


/* ── Article cards — stepping stones on the river ────────────────────────── */

.card-stream {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.article-card {
  display: block;
  padding: 22px 20px;
  border-radius: 12px;
  background: rgba(40,38,32,.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(98,204,172,.15);
  border-left: 3px solid rgba(98,204,172,.4);
  text-decoration: none;
  transition: all 0.2s ease;
}
.article-card:hover {
  border-color: rgba(98,204,172,.35);
  border-left-color: #62CCAC;
  box-shadow: 0 4px 20px rgba(98,204,172,.12);
  transform: translateY(-1px);
  background: rgba(40,38,32,.82);
}
.article-card h2 {
  font-family: 'Lora', serif;
  font-size: 20px;
  font-weight: 700;
  color: #FDFBF6;
  margin: 0 0 8px 0;
}
.article-card p {
  font-size: 14px;
  color: #e8e2d5;
  margin: 0;
  line-height: 1.5;
}
.article-stage {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: #62CCAC;
  font-weight: 600;
  margin: 0 0 4px 0;
}


/* ── Responsive ───────────────────────────────────────────────────────────── */

@media (max-width: 600px) {
  .container { padding-left: 24px; padding-right: 24px; }
  .prose     { padding-left: 24px; padding-right: 24px; }
  .section   { padding: 56px 24px; }
  .river-section { padding: 56px 24px; }
  .opening   { padding: 56px 24px 40px; }
  .opening h1 { font-size: 30px; }
  .closing   { padding: 48px 24px; }
  .invitation { padding: 56px 24px; }
  .invitation h2 { font-size: 28px; }
  .invite    { padding: 56px 24px; }

  .section-heading { font-size: 26px; }

  .card-stream { gap: 20px; }
  .article-card { padding: 18px 16px; }

  figure, .hero-image, .portrait-img {
    max-width: 100%;
    margin: 20px 0 8px;
    padding: 12px;
    border-radius: 10px;
  }
  figure img, .hero-image img, .portrait-img img { border-radius: 6px; }

  .journey-spine { margin: 36px 16px 32px; padding: 28px 20px 32px; }
  .journey-spine a { padding: 16px 20px; font-size: 16px; }
  .journey-spine-label { font-size: 18px; }

  footer { padding: 56px 24px; }
}

@media (min-width: 1200px) {
  figure, .hero-image, .portrait-img {
    max-width: 640px;
    padding: 20px;
  }
}
