/* tokens.css is linked from header.php ahead of this file (an @import here
   would serialize the two fetches and block render). */
/* Holy Scriptures and Israel — site.css
   Consolidated from concept-fable-06 + interior page vocabulary (2026-07-04).
   Sections: shell (tokens/masthead/homepage) -> interior v1 -> hub v2 -> level-2.
   Cascade order preserved from the mockup generator; do not re-sort casually. */

/* ============ SHELL: tokens, masthead tiers, homepage sections ============ */

  /* Self-hosted fonts (Ad Grants perf pass 2026-07-10): no external font CSS,
     no fonts.googleapis.com round-trip. Latin subsets for the Latin faces;
     FrankRuhlLibre.woff2 carries Hebrew+Latin; Cronos is subset to the
     masthead's Latin range (129 KB OTF -> 20 KB woff2). */
  @font-face {
    font-family: 'Cronos Pro';
    src: url('/fonts/CronosPro-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Source Serif 4';
    src: url('/fonts/source-serif-4-roman-latin.woff2') format('woff2');
    font-weight: 300 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: 'Source Serif 4';
    src: url('/fonts/source-serif-4-italic-latin.woff2') format('woff2');
    font-weight: 300 900;
    font-style: italic;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: 'Inter';
    src: url('/fonts/inter-var-latin.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: 'Frank Ruhl Libre';
    src: url('/fonts/FrankRuhlLibre.woff2') format('woff2');
    font-weight: 300 900;
    font-style: normal;
    font-display: swap;
  }
  :root {
    /* shared brand tokens come from tokens.css; below = public-surface only */
    --white: #FFFFFF;
    --bg: #FFFFFF;
    --paper-deep: #EAF1F7;
    --cyan-light: #5DC5F0;
  }
  * { box-sizing: border-box; } html, body { margin: 0; padding: 0; }
  body { font-family: var(--serif); background: var(--bg); color: var(--ink); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
  a { color: var(--navy); text-decoration: none; } a:hover { color: var(--cyan); }
  img { display: block; }

  /* UTILITY + HEADER */
  .utility { background: var(--card); font-family: var(--sans); font-size: 12px; padding: 4px 32px 0; display: flex; justify-content: flex-end; gap: 22px; }
  .utility a { color: var(--ink-soft); }
  .utility .u-ghost { visibility: hidden; }
  .utility a:hover { color: var(--navy); }
  .he-ui { font-family: var(--hebrew); font-size: 13px; line-height: 1; vertical-align: -0.5px; }

  header.bar { background: var(--card); padding: 0 32px 14px; border-bottom: 1px solid var(--rule); display: flex; justify-content: space-between; align-items: center; gap: 20px; position: relative; z-index: 10; }
  .brand { display: flex; align-items: center; gap: 14px; margin-top: -9px; }
  .brand img { height: 56px; }
  .brand-text { font-family: 'Cronos Pro', var(--serif); font-weight: 700; font-size: 24px; color: var(--navy); line-height: 1.1; letter-spacing: 0.005em; white-space: nowrap; }
  .brand-text small { display: block; font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--ink-soft); margin-top: 4px; font-weight: 600; }
  nav.main { display: contents; font-family: var(--sans); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; white-space: nowrap; }
  nav.main a { color: var(--ink); }
  nav.main a:hover { color: var(--cyan); }
  .btn-partner { background: var(--gold); color: var(--ink); padding: 11px 22px; font-family: var(--sans); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; border-radius: 4px; white-space: nowrap; }
  .btn-partner:hover { background: var(--navy); color: var(--white); }
  .header-actions { display: flex; align-items: center; gap: 14px; }
  .header-search, .header-account { display: inline-flex; align-items: center; justify-content: center; color: var(--ink-soft); transition: color 0.15s; }
  .header-search:hover, .header-account:hover { color: var(--navy); }
  .header-search svg, .header-account svg { width: 19px; height: 19px; }

  /* HERO — magazine cover */
  .hero { position: relative; min-height: 620px; overflow: hidden; }
  .hero-img { position: absolute; inset: 0; background: url('/images/jerusalem.jpg') center 40%/cover; }
  .hero-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,43,71,0.50) 0%, rgba(6,43,71,0.92) 100%); }
  .hero-cover { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto; padding: 96px 48px 80px; color: var(--white); }
  .hero-deck-top { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.32em; color: var(--gold-light); margin-bottom: 32px; font-weight: 700; display: flex; align-items: center; gap: 16px; justify-content: center; }
  .hero-deck-top::before, .hero-deck-top::after { content: ''; height: 1.5px; background: var(--gold-light); flex: 0 1 80px; }
  .hero-mission .hero-line { display: block; }
  .hero-mission { font-family: var(--serif); font-weight: 400; font-size: 64px; line-height: 1.05; letter-spacing: -0.025em; margin: 0 0 28px; text-align: center; text-wrap: balance; }
  .hero-mission em { font-style: italic; color: var(--gold-light); }
  .hero-deck { font-family: var(--serif); font-size: 21px; line-height: 1.55; margin: 0 auto 40px; max-width: 720px; color: rgba(255,255,255,0.92); text-align: center; }
  .hero-deck strong { font-weight: 600; color: var(--white); }
  .hero-actions { display: flex; gap: 16px; justify-content: center; }
  .btn-hero { padding: 16px 32px; font-family: var(--sans); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; border-radius: 4px; text-decoration: none; }
  .btn-hero.primary { background: var(--gold); color: var(--ink); }
  .btn-hero.primary:hover { background: var(--gold-light); }
  .btn-hero.secondary { background: transparent; color: var(--white); border: 1.5px solid rgba(255,255,255,0.5); }
  .btn-hero.secondary:hover { background: rgba(255,255,255,0.1); }
  .hero-credit { position: absolute; bottom: 16px; right: 32px; color: rgba(255,255,255,0.55); font-family: var(--sans); font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; z-index: 2; }

  /* ACTION GRID — 4 cards immediately below the hero */
  .actions { background: var(--bg); padding: 48px 32px 64px; }
  .actions-grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
  .action-card { background: var(--card); border: 1px solid var(--rule); border-top: 4px solid var(--gold); border-radius: 6px; padding: 32px 28px; display: flex; flex-direction: column; cursor: pointer; transition: all 0.18s; box-shadow: 0 1px 0 rgba(12,86,130,0.02); }
  .action-card:hover { transform: translateY(-3px); box-shadow: 0 24px 56px rgba(12,86,130,0.18); border-color: var(--rule); }
  .action-icon { width: 36px; height: 36px; color: var(--navy); margin-bottom: 18px; }
  .action-icon svg { width: 100%; height: 100%; display: block; }
  .action-title { font-family: var(--serif); font-weight: 600; font-size: 26px; line-height: 1.05; margin: 0 0 10px; color: var(--ink); letter-spacing: -0.005em; }
  .action-title em { font-style: italic; color: var(--navy); }
  .action-body { font-family: var(--serif); font-size: 15px; line-height: 1.5; color: var(--ink-soft); margin: 0 0 22px; flex: 1; }
  .action-body strong { color: var(--ink); font-weight: 600; }
  .action-body-m { display: none; font-family: var(--serif); font-size: 13.5px; line-height: 1.45; color: var(--ink-soft); margin: 0 0 12px; }
  .action-card.give .action-body-m { color: rgba(255,255,255,0.86); }
  a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
  .nav-partner { display: none; }
  .action-link { font-family: var(--sans); font-size: 12px; color: var(--navy); text-transform: uppercase; letter-spacing: 0.12em; align-self: flex-start; border-bottom: 1.5px solid var(--gold); padding-bottom: 4px; font-weight: 700; }
  .action-link:hover { color: var(--cyan); border-bottom-color: var(--cyan); }
  .action-card.give { background: var(--navy); border-color: var(--navy); border-top-color: var(--gold-text); color: var(--white); }
  .action-card.give .action-icon { color: var(--gold-light); }
  .action-card.give .action-title { color: var(--white); }
  .action-card.give .action-title em { color: var(--gold-light); }
  .action-card.give .action-body { color: rgba(255,255,255,0.86); }
  .action-card.give .action-body strong { color: var(--white); }
  .action-card.give .action-link { color: var(--gold-light); border-bottom-color: var(--gold-light); }

  /* PREMIERE STRIP */
  .strip { background: var(--gold); color: var(--ink); padding: 14px 32px; display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: center; font-family: var(--sans); font-size: 13px; }
  .strip-tag { background: var(--ink); color: var(--gold); padding: 6px 14px; border-radius: 999px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; font-size: 11px; }
  .strip-content { display: flex; align-items: center; gap: 16px; }
  .strip-passage { font-family: var(--serif); font-style: italic; font-weight: 600; }
  .strip-cta { color: var(--ink); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; font-size: 12px; border-bottom: 2px solid var(--ink); padding-bottom: 2px; }

  /* VERSE BAND — editorial spread: real photo + paper-light text panel */
  .verse-band { background: var(--bg); border-top: 4px solid var(--gold); border-bottom: 4px solid var(--gold); display: grid; grid-template-columns: 1fr 1.1fr; min-height: 520px; }
  .verse-photo { background: url('/images/western-wall.jpg') center 40%/cover; position: relative; }
  .verse-photo-caption { position: absolute; bottom: 18px; left: 24px; color: var(--white); font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; text-shadow: 0 1px 8px rgba(0,0,0,0.6); }
  .verse-panel { padding: 80px 72px; display: flex; flex-direction: column; justify-content: center; background: var(--bg); }
  .verse-eyebrow { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.3em; color: var(--gold-text); margin-bottom: 24px; font-weight: 700; display: inline-flex; align-items: center; gap: 12px; }
  .verse-eyebrow::before { content: ''; width: 36px; height: 1.5px; background: var(--gold); }
  .verse-text-en { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 30px; line-height: 1.38; margin: 0 0 14px; color: var(--ink); letter-spacing: -0.005em; }
  .verse-cite { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--gold-text); font-weight: 700; }
  .verse-rule { width: 80px; height: 2px; background: var(--gold); margin: 36px 0; }
  .verse-text-he { font-family: var(--hebrew); direction: rtl; font-weight: 400; font-size: 32px; line-height: 1.55; margin: 0 0 14px; color: var(--ink); text-align: right; }
  .verse-cite-he { font-family: var(--hebrew); direction: rtl; font-size: 18px; color: var(--gold-text); text-align: right; }

  /* FOUNDATION VERSE — illuminated typographic band */
  .verse-grand { background: linear-gradient(180deg, #FDFEFF 0%, var(--paper) 100%); border-top: 4px double var(--gold); border-bottom: 4px double var(--gold); padding: 44px 32px 42px; text-align: center; }
  .verse-grand-eyebrow { font-family: var(--sans); font-size: 10px; text-transform: uppercase; letter-spacing: 0.3em; color: var(--gold-text); font-weight: 700; display: inline-flex; align-items: center; gap: 14px; margin-bottom: 22px; }
  .verse-grand-eyebrow::before, .verse-grand-eyebrow::after { content: ''; width: 44px; height: 1.5px; background: var(--gold); }
  .verse-grand-he { font-family: var(--hebrew); direction: rtl; font-weight: 500; font-size: 28px; line-height: 1.6; color: var(--navy); max-width: 1120px; margin: 0 auto 18px; }
  .verse-grand-orn { width: 110px; height: 1.5px; background: var(--gold); margin: 0 auto 18px; position: relative; }
  .verse-grand-orn::after { content: ''; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; background: var(--gold); transform: translate(-50%, -50%) rotate(45deg); }
  .verse-grand-en { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 17.5px; line-height: 1.55; color: var(--ink); max-width: 880px; margin: 0 auto 16px; }
  .verse-grand-cite { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.3em; color: var(--gold-text); font-weight: 700; display: inline-flex; gap: 14px; align-items: center; }
  .verse-grand-cite-he { font-family: var(--hebrew); font-size: 16px; color: var(--navy); letter-spacing: 0; text-transform: none; font-weight: 500; }

  /* STATS */
  .stats { background: var(--paper); padding: 56px 32px; border-bottom: 1px solid var(--rule); }
  .stats-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; text-align: center; }
  .stat { padding: 0 16px; }
  .stat:not(:last-child) { border-right: 1px solid var(--rule); }
  .stat-num { font-family: var(--serif); font-weight: 600; font-size: 56px; line-height: 1; color: var(--navy); letter-spacing: -0.02em; margin-bottom: 12px; }
  .stat-label { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--ink-soft); font-weight: 700; line-height: 1.5; }

  /* CO-FOUNDERS — Alfred subsection below Teacher feature */
  .cofounders { background: var(--paper); padding: 56px 32px; border-top: 1px solid var(--rule); }
  .cofounders-inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 220px 1fr; gap: 48px; align-items: center; }
  .cofounders-photo { aspect-ratio: 1/1; border-radius: 999px; overflow: hidden; background: var(--white); border: 4px solid var(--white); box-shadow: 0 8px 32px rgba(12,86,130,0.12); }
  .cofounders-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
  .cofounders-eyebrow { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--gold-text); margin-bottom: 12px; font-weight: 700; display: inline-flex; align-items: center; gap: 12px; }
  .cofounders-eyebrow::before { content: ''; width: 28px; height: 1.5px; background: var(--gold); }
  .cofounders-name { font-family: var(--serif); font-weight: 500; font-size: 32px; line-height: 1.1; margin: 0 0 6px; letter-spacing: -0.01em; }
  .cofounders-role { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--ink-soft); font-weight: 600; margin-bottom: 16px; }
  .cofounders-body { font-family: var(--serif); font-size: 16px; line-height: 1.65; color: var(--ink); margin: 0 0 14px; }
  .cofounders-body strong { font-weight: 600; color: var(--navy); }
  .cofounders-link { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--navy); font-weight: 700; border-bottom: 1.5px solid var(--gold); padding-bottom: 3px; }

  /* TEACHER FEATURE — Mount of Olives photo */
  .teacher-feature { padding: 96px 32px; background: var(--bg); }
  .teacher-inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.3fr 1fr; gap: 72px; align-items: center; }
  .teacher-media { position: relative; aspect-ratio: 16/10; overflow: hidden; border-radius: 4px; box-shadow: 0 24px 64px rgba(12,86,130,0.20); border-top: 4px solid var(--gold); }
  .teacher-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
  .teacher-tag { position: absolute; top: 18px; left: 18px; background: var(--gold); color: var(--ink); padding: 6px 14px; font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; border-radius: 4px; }
  .teacher-caption { position: absolute; bottom: 18px; left: 18px; right: 18px; color: var(--white); font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; text-shadow: 0 1px 8px rgba(0,0,0,0.5); }
  .teacher-eyebrow { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--gold-text); margin-bottom: 16px; font-weight: 700; display: inline-flex; align-items: center; gap: 12px; }
  .teacher-eyebrow::before { content: ''; width: 32px; height: 1.5px; background: var(--gold); }
  .teacher-name { font-family: var(--serif); font-weight: 500; font-size: 56px; line-height: 1.05; margin: 0 0 6px; letter-spacing: -0.015em; }
  .teacher-name-he { font-family: var(--hebrew); direction: rtl; text-align: left; font-size: 30px; color: var(--ink-soft); margin-bottom: 24px; }
  .teacher-body { font-family: var(--serif); font-size: 19px; line-height: 1.7; color: var(--ink); margin: 0 0 16px; }
  .teacher-body strong { font-weight: 600; color: var(--navy); }
  .teacher-cta { margin-top: 12px; }
  .btn-card { padding: 14px 24px; font-family: var(--sans); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; border-radius: 4px; text-decoration: none; display: inline-block; }
  .btn-card.primary { background: var(--navy); color: var(--white); }
  .btn-card.primary:hover { background: var(--cyan); }
  .btn-card.secondary { background: transparent; color: var(--ink); border: 1.5px solid var(--ink); }

  /* SECTION HEAD */
  .section { padding: 96px 32px; }
  .section.paper { background: var(--paper); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
  .section-inner { max-width: 1280px; margin: 0 auto; }
  .section-head { text-align: center; margin-bottom: 56px; }
  .section-head-eyebrow { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--gold-text); margin-bottom: 14px; font-weight: 700; display: inline-flex; align-items: center; gap: 12px; }
  .section-head-eyebrow::before, .section-head-eyebrow::after { content: ''; width: 32px; height: 1.5px; background: var(--gold); }
  .section-head-title { font-family: var(--serif); font-weight: 500; font-size: 46px; line-height: 1.1; margin: 0; letter-spacing: -0.012em; }
  .section-head-title em { font-style: italic; }
  .section-head.flush { text-align: left; }
  .section-head.flush .section-head-eyebrow::after { display: none; }

  /* WEEKLY PREMIERE CARD */
  .weekly-card { background: var(--card); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; display: grid; grid-template-columns: 1.05fr 1fr; box-shadow: 0 12px 48px rgba(12,86,130,0.10); max-width: 1100px; margin: 0 auto; }
  .weekly-image { position: relative; background: var(--ink); overflow: hidden; min-height: 420px; }
  .weekly-image img { width: 100%; height: 100%; object-fit: cover; }
  .weekly-image-tag { position: absolute; top: 24px; left: 24px; background: var(--gold); color: var(--ink); padding: 6px 14px; font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; border-radius: 4px; }
  .weekly-content { padding: 56px 48px; display: flex; flex-direction: column; justify-content: center; }
  .weekly-eyebrow { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--cyan-text); margin-bottom: 20px; font-weight: 700; display: flex; align-items: center; gap: 12px; }
  .weekly-countdown { background: var(--cyan-text); color: var(--white); padding: 4px 12px; border-radius: 999px; font-size: 11px; letter-spacing: 0.12em; }
  .weekly-passage { font-family: var(--serif); font-style: italic; font-size: 18px; color: var(--ink-soft); margin-bottom: 8px; }
  .weekly-title { font-family: var(--serif); font-weight: 500; font-size: 42px; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.012em; }
  .weekly-meta { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 32px; font-weight: 500; }
  .weekly-actions { display: flex; gap: 12px; }

  /* FEATURED BOOKS — real cover art */
  .books-featured { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 32px; }
  .book-tile { position: relative; aspect-ratio: 16/9; border-radius: 4px; overflow: hidden; box-shadow: 0 8px 32px rgba(12,86,130,0.14); cursor: pointer; transition: all 0.2s; }
  .book-tile:hover { transform: translateY(-4px); box-shadow: 0 24px 56px rgba(12,86,130,0.22); }
  .book-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
  .book-tile:hover img { transform: scale(1.04); }
  .book-tile-meta { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 22px 16px; background: linear-gradient(180deg, transparent 0%, rgba(6,43,71,0.78) 60%, rgba(6,43,71,0.92) 100%); color: var(--white); }
  .book-tile-count { font-family: var(--sans); font-size: 10px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--gold-light); font-weight: 700; margin-bottom: 4px; }
  .book-tile-name { font-family: var(--serif); font-weight: 600; font-size: 22px; line-height: 1; letter-spacing: -0.005em; }
  .books-all { text-align: center; }
  /* BOOK WALL — typographic archive depth (transplanted from fable concepts, recolored to 36) */
  .bookwall { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; margin-bottom: 32px; }
  .bookcell { background: var(--card); padding: 22px 24px; display: flex; flex-direction: column; gap: 2px; transition: background 0.15s; }
  a.bookcell { text-decoration: none; color: inherit; }
  .bookcell:hover { background: var(--paper); }
  .bookcell-name { font-family: var(--serif); font-weight: 600; font-size: 19px; color: var(--ink); display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
  .bookcell-he { font-family: var(--hebrew); font-size: 16px; color: var(--navy); font-weight: 500; }
  .bookcell-count { font-family: var(--sans); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-soft); font-weight: 600; }
  .bookcell.more { background: var(--navy); align-items: center; justify-content: center; text-align: center; }
  .bookcell.more a { color: var(--white); font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.14em; font-weight: 700; }
  .bookcell.more a:hover { color: var(--gold-light); }
  .books-all a { font-family: var(--sans); font-size: 12px; color: var(--ink); text-transform: uppercase; letter-spacing: 0.18em; font-weight: 700; border-bottom: 2px solid var(--gold); padding-bottom: 4px; }
  .books-all a:hover { color: var(--cyan); border-bottom-color: var(--cyan); }

  /* LATEST LIST — tighter feed-style, distinct from premiere card and book grid */
  .latest-list { list-style: none; margin: 0 auto; padding: 0; max-width: 860px; }
  .latest-list li { display: grid; grid-template-columns: 96px 1fr auto; gap: 18px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--rule); }
  .latest-list li:first-child { border-top: 1px solid var(--rule); }
  .latest-thumb { aspect-ratio: 16/9; background: var(--paper); border-radius: 3px; overflow: hidden; }
  .latest-thumb img { width: 100%; height: 100%; object-fit: cover; }
  .latest-passage { font-family: var(--sans); font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--gold-text); margin-bottom: 3px; font-weight: 700; }
  .latest-title { font-family: var(--serif); font-size: 16px; line-height: 1.3; font-weight: 500; }
  .latest-action { font-family: var(--sans); font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink); font-weight: 700; border-bottom: 1.5px solid var(--gold); padding-bottom: 2px; }

  /* RADIO SURFACE — On the Air */
  .radio { background: var(--navy-deep); color: var(--white); padding: 88px 32px; position: relative; overflow: hidden; }
  .radio::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 20%, rgba(21,162,220,0.18) 0%, transparent 60%); pointer-events: none; }
  .radio-inner { position: relative; max-width: 1280px; margin: 0 auto; }
  .radio-head { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; margin-bottom: 40px; padding-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,0.18); }
  .radio-eyebrow { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.28em; color: var(--gold-light); margin-bottom: 14px; font-weight: 700; display: inline-flex; align-items: center; gap: 12px; }
  .radio-eyebrow::before { content: ''; width: 32px; height: 1.5px; background: var(--gold-light); }
  .radio-title { font-family: var(--serif); font-weight: 400; font-size: 48px; line-height: 1.1; margin: 0; letter-spacing: -0.015em; color: var(--white); }
  .radio-title em { font-style: italic; color: var(--gold-light); }
  .radio-deck { font-family: var(--serif); font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.85); margin: 0; max-width: 380px; text-align: right; }
  .radio-stations { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .station { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); border-radius: 6px; padding: 28px 24px; transition: all 0.18s; }
  .station:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.28); transform: translateY(-2px); }
  .station-call { font-family: var(--serif); font-weight: 600; font-size: 28px; line-height: 1; margin: 0 0 4px; color: var(--white); letter-spacing: -0.01em; }
  .station-market { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--gold-light); margin-bottom: 18px; font-weight: 700; }
  .station-schedule { font-family: var(--serif); font-size: 14px; line-height: 1.55; color: rgba(255,255,255,0.88); margin: 0 0 10px; }
  .station-schedule strong { color: var(--white); font-weight: 600; }
  .station-length { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.6); font-weight: 600; }
  .radio-stream-line { margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.18); font-family: var(--serif); font-size: 15px; color: rgba(255,255,255,0.82); text-align: center; font-style: italic; }
  .radio-stream-line a { color: var(--gold-light); border-bottom: 1.5px solid var(--gold-light); padding-bottom: 2px; font-style: normal; }

  /* OLIVE BRANCH DIVIDER */
  .olive-divider { display: flex; align-items: center; justify-content: center; padding: 48px 32px; gap: 24px; max-width: 600px; margin: 0 auto; }
  .olive-divider svg { width: 72px; height: 22px; color: var(--gold); flex-shrink: 0; } /* decorative ornament, not text */
  .olive-divider::before, .olive-divider::after { content: ''; flex: 1; height: 1px; background: var(--rule); }

  /* PAIR — daily + newsletter (legacy from 28, retained for any pair use) */
  .pair { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; max-width: 1280px; margin: 0 auto; }
  /* DEVOTIONAL — single, centered (29) */
  .devotional-single { max-width: 760px; margin: 0 auto; }
  .devotional-single .pair-card { padding: 48px 52px; }
  .devotional-actions { display: flex; gap: 12px; flex-wrap: wrap; }
  .pair-card { padding: 44px; border-radius: 6px; }
  .pair-card.daily { background: var(--card); border: 1px solid var(--rule); }
  .pair-card.news { background: linear-gradient(135deg, var(--navy) 0%, var(--cyan) 100%); color: var(--white); }
  .pair-card-eyebrow { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; margin-bottom: 14px; font-weight: 700; }
  .pair-card.daily .pair-card-eyebrow { color: var(--gold-text); }
  .pair-card.news .pair-card-eyebrow { color: var(--gold-light); }
  .pair-card h3 { font-family: var(--serif); font-weight: 500; font-size: 34px; line-height: 1.12; margin: 0 0 18px; }
  .pair-card.news h3 { color: var(--white); }
  .pair-card h3 em { font-style: italic; }
  .pair-card-body { font-family: var(--serif); font-size: 16px; line-height: 1.6; margin: 0 0 24px; }
  .pair-card.daily .pair-card-body { color: var(--ink-soft); }
  .pair-card.news .pair-card-body { color: rgba(255,255,255,0.92); }
  .daily-passage { font-family: var(--serif); font-style: italic; font-size: 17px; line-height: 1.55; color: var(--ink); border-left: 3px solid var(--gold); padding: 8px 0 8px 18px; margin: 0 0 16px; }
  .daily-citation { font-family: var(--sans); font-size: 11px; color: var(--ink-soft); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 24px; font-weight: 700; }
  .news-form { display: flex; margin-top: 16px; }
  .news-form input { flex: 1; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.3); color: var(--white); padding: 14px 16px; font-family: var(--serif); font-size: 15px; border-radius: 4px 0 0 4px; outline: none; }
  .news-form input::placeholder { color: rgba(255,255,255,0.6); }
  .news-form button { background: var(--gold); color: var(--ink); border: none; padding: 14px 22px; font-family: var(--sans); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; border-radius: 0 4px 4px 0; }
  .pair-card-secondary { margin-top: 16px; font-family: var(--serif); font-size: 15px; color: var(--ink-soft); }
  .pair-card-secondary a { color: var(--navy); border-bottom: 1.5px solid var(--gold); padding-bottom: 2px; font-weight: 500; }
  .pair-card-secondary a:hover { color: var(--cyan); border-bottom-color: var(--cyan); }
  .news-preview-list { margin: 0 0 22px; padding: 18px 0 0; border-top: 1px solid rgba(255,255,255,0.18); }
  .news-preview-item { font-family: var(--serif); font-size: 15px; line-height: 1.55; color: rgba(255,255,255,0.92); margin-bottom: 6px; }
  .news-preview-item em { font-style: italic; color: var(--gold-light); }
  .btn-card-on-navy { display: inline-block; padding: 14px 24px; font-family: var(--sans); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; border-radius: 4px; text-decoration: none; background: var(--gold); color: var(--ink); }
  .btn-card-on-navy:hover { background: var(--white); }
  .pair-card-secondary-on-navy { margin-top: 16px; font-family: var(--serif); font-size: 14px; color: rgba(255,255,255,0.78); }
  .pair-card-secondary-on-navy a { color: var(--gold-light); border-bottom: 1px solid rgba(229,196,109,0.4); padding-bottom: 2px; }

  /* FOOTER SUBSCRIBE BAND — Stay Connected */
  .footer-subscribe { background: var(--paper); border-top: 4px solid var(--gold); padding: 72px 32px; }
  .footer-subscribe-inner { max-width: 1100px; margin: 0 auto; text-align: center; }
  .footer-subscribe-eyebrow { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.28em; color: var(--gold-text); margin-bottom: 18px; font-weight: 700; display: inline-flex; align-items: center; gap: 14px; }
  .footer-subscribe-eyebrow::before, .footer-subscribe-eyebrow::after { content: ''; width: 32px; height: 1.5px; background: var(--gold); }
  .footer-subscribe-title { font-family: var(--serif); font-weight: 500; font-size: 40px; line-height: 1.12; margin: 0 0 14px; letter-spacing: -0.012em; }
  .footer-subscribe-title em { font-style: italic; }
  .footer-subscribe-deck { font-family: var(--serif); font-size: 17px; line-height: 1.55; color: var(--ink-soft); margin: 0 auto 36px; max-width: 640px; }
  .footer-subscribe-options { display: flex; gap: 22px; flex-wrap: wrap; justify-content: center; margin: 0 auto 28px; max-width: 900px; }
  .footer-subscribe-options label { display: inline-flex; align-items: center; gap: 10px; font-family: var(--sans); font-size: 14px; color: var(--ink); cursor: pointer; font-weight: 500; }
  .footer-subscribe-options input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--navy); cursor: pointer; }
  .footer-subscribe-form { display: flex; gap: 0; align-items: stretch; max-width: 540px; margin: 0 auto; box-shadow: 0 8px 32px rgba(12,86,130,0.08); border-radius: 4px; overflow: hidden; }
  .footer-subscribe-form input[type="email"] { flex: 1; padding: 16px 20px; font-family: var(--serif); font-size: 16px; border: 1px solid var(--rule); border-right: none; border-radius: 4px 0 0 4px; outline: none; background: var(--card); color: var(--ink); }
  .footer-subscribe-form input[type="email"]:focus { border-color: var(--navy); }
  .footer-subscribe-form input[type="email"]::placeholder { color: var(--ink-soft); }
  .footer-subscribe-form button { background: var(--navy); color: var(--white); border: none; padding: 16px 32px; font-family: var(--sans); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; cursor: pointer; border-radius: 0 4px 4px 0; }
  .footer-subscribe-form button:hover { background: var(--cyan); }
  .footer-subscribe-fineprint { margin-top: 18px; font-family: var(--sans); font-size: 12px; color: var(--ink-soft); }
  .footer-subscribe-fineprint a, .prose a, .dl-list a, .crumbs a { text-decoration: underline; text-underline-offset: 2px; } /* links inside running text need more than a color shift (WCAG link-in-text-block) */
  .platform-follow { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--rule); display: flex; gap: 24px; align-items: center; justify-content: center; flex-wrap: wrap; }
  .platform-follow-label { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-soft); font-weight: 600; }
  .platform-follow a { font-family: var(--sans); font-size: 13px; font-weight: 700; color: var(--navy); border-bottom: 1.5px solid var(--gold); padding-bottom: 2px; }
  .platform-follow a:hover { color: var(--cyan); border-bottom-color: var(--cyan); }

  /* TWO-CARD SECONDARY ROW — Tours + Local Assembly, photo-led */
  .two-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; max-width: 1280px; margin: 0 auto; }
  .photo-card { background: var(--card); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; box-shadow: 0 4px 24px rgba(12,86,130,0.06); transition: all 0.2s; }
  .photo-card:hover { transform: translateY(-3px); box-shadow: 0 16px 48px rgba(12,86,130,0.14); }
  .photo-card-image { position: relative; min-height: 240px; overflow: hidden; }
  .photo-card-image img { width: 100%; height: 100%; object-fit: cover; }
  .photo-card-tag { position: absolute; top: 16px; left: 16px; background: var(--gold); color: var(--ink); padding: 5px 12px; font-family: var(--sans); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; border-radius: 4px; }
  .photo-card-content { padding: 32px 28px; display: flex; flex-direction: column; justify-content: center; }
  .photo-card-eyebrow { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--gold-text); margin-bottom: 10px; font-weight: 700; }
  .photo-card h3 { font-family: var(--serif); font-weight: 500; font-size: 26px; line-height: 1.12; margin: 0 0 12px; letter-spacing: -0.005em; }
  .photo-card h3 em { font-style: italic; }
  .photo-card p { font-family: var(--serif); font-size: 15px; line-height: 1.55; color: var(--ink-soft); margin: 0 0 18px; }
  .photo-card a { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--navy); font-weight: 700; border-bottom: 1.5px solid var(--gold); padding-bottom: 3px; align-self: flex-start; }

  /* LITERATURE FEATURE — compressed: cover + title + single View link */
  .literature { padding: 80px 32px; background: var(--bg); border-top: 1px solid var(--rule); }
  .literature-inner { max-width: 1280px; margin: 0 auto; }
  .literature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-bottom: 32px; }
  .lit-item { display: flex; flex-direction: column; text-align: center; }
  .lit-cover { aspect-ratio: 2/3; background: var(--paper); border-radius: 4px; overflow: hidden; box-shadow: 0 12px 36px rgba(12,86,130,0.14); margin-bottom: 18px; transition: all 0.2s; }
  .lit-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .lit-item:hover .lit-cover { transform: translateY(-3px); box-shadow: 0 20px 48px rgba(12,86,130,0.22); }
  .lit-title { font-family: var(--serif); font-weight: 500; font-size: 19px; line-height: 1.25; margin: 0 0 12px; letter-spacing: -0.005em; }
  .lit-title em { font-style: italic; }
  .lit-view { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--navy); font-weight: 700; border-bottom: 1.5px solid var(--gold); padding-bottom: 2px; align-self: center; }
  .lit-view:hover { color: var(--cyan); border-bottom-color: var(--cyan); }
  .literature-all { text-align: center; }
  .literature-all a { font-family: var(--sans); font-size: 12px; color: var(--ink); text-transform: uppercase; letter-spacing: 0.18em; font-weight: 700; border-bottom: 2px solid var(--gold); padding-bottom: 4px; }

  /* PARTNER — Golden Gate backdrop */
  .partner { background: linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 100%); color: var(--white); padding: 112px 32px; position: relative; overflow: hidden; }
  .partner::before { content: ''; position: absolute; inset: 0; background: url('/images/golden-gate.jpg') center 60%/cover; opacity: 0.22; }
  .partner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,43,71,0.55) 0%, rgba(6,43,71,0.85) 100%); }
  .partner-inner { position: relative; z-index: 1; max-width: 1080px; margin: 0 auto; text-align: center; }
  .partner-eyebrow { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.28em; color: var(--gold-light); margin-bottom: 22px; font-weight: 700; display: inline-flex; align-items: center; gap: 14px; }
  .partner-eyebrow::before, .partner-eyebrow::after { content: ''; width: 32px; height: 1.5px; background: var(--gold-light); }
  .partner h2 { font-family: var(--serif); font-weight: 400; font-size: 64px; line-height: 1.05; margin: 0 0 28px; letter-spacing: -0.018em; }
  .partner h2 em { font-style: italic; color: var(--gold-light); }
  .partner-body { font-family: var(--serif); font-size: 20px; line-height: 1.6; margin: 0 auto 44px; max-width: 680px; color: rgba(255,255,255,0.94); }
  .partner-amounts { display: inline-flex; background: var(--white); border-radius: 6px; overflow: hidden; margin-bottom: 28px; box-shadow: 0 8px 32px rgba(0,0,0,0.32); }
  .partner-amounts a { padding: 18px 30px; font-family: var(--sans); font-weight: 700; font-size: 14px; color: var(--navy); border-right: 1px solid var(--rule); }
  .partner-amounts a:last-child { border-right: none; }
  .partner-amounts a.selected, .partner-amounts a:hover { background: var(--gold); color: var(--ink); }
  .partner-cta { display: inline-block; background: var(--gold); color: var(--ink); padding: 18px 52px; font-family: var(--sans); font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: 0.1em; border-radius: 4px; }
  .partner-cta:hover { background: var(--white); }
  .partner-once { margin-top: 20px; font-family: var(--serif); font-size: 17px; color: rgba(255,255,255,0.88); }
  .partner-once a { color: var(--gold-light); border-bottom: 1.5px solid var(--gold-light); padding-bottom: 3px; font-weight: 600; }
  .partner-once a:hover { color: var(--white); border-bottom-color: var(--white); }
  .partner-fineprint { margin-top: 22px; font-family: var(--sans); font-size: 11px; color: rgba(255,255,255,0.55); letter-spacing: 0.04em; }
  .partner-proof { font-family: var(--serif); font-style: italic; font-size: 16px; color: rgba(255,255,255,0.78); margin-bottom: 36px; font-weight: 400; }

  /* FOOTER */
  footer { background: var(--card); border-top: 1px solid var(--rule); padding: 72px 32px 24px; }
  .footer-grid { max-width: 1280px; margin: 0 auto 48px; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 56px; }
  .footer-brand img { height: 64px; margin-bottom: 18px; }
  .footer-brand-name { font-family: var(--serif); font-weight: 700; font-size: 19px; color: var(--navy); margin-bottom: 6px; }
  .footer-brand-tagline { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-soft); margin-bottom: 18px; font-weight: 600; }
  .footer-brand-meta { font-family: var(--serif); font-size: 14px; line-height: 1.7; color: var(--ink-soft); }
  /* column labels are divs, not h4s — they're visual labels, and heading
     levels that skip (page h2 -> footer h4) fail WCAG heading-order */
  footer .footer-col-title { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--gold-text); margin: 0 0 16px; font-weight: 700; }
  footer ul { list-style: none; padding: 0; margin: 0; }
  footer ul li { font-family: var(--serif); font-size: 15px; margin-bottom: 8px; }
  footer ul li a { color: var(--ink); }
  .footer-verse { max-width: 1280px; margin: 0 auto 18px; padding: 28px 0 18px; border-top: 1px solid var(--rule); display: grid; grid-template-columns: 1fr auto 1fr; gap: 24px; align-items: center; }
  .footer-verse-en { font-family: var(--serif); font-style: italic; font-size: 16px; line-height: 1.45; color: var(--ink); }
  .footer-verse-cite { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--gold-text); font-weight: 700; text-align: center; padding: 0 14px; border-left: 1px solid var(--rule); border-right: 1px solid var(--rule); }
  .footer-verse-he { font-family: var(--hebrew); direction: rtl; font-size: 22px; color: var(--navy); text-align: right; }
  .footer-bottom { max-width: 1280px; margin: 0 auto; padding-top: 18px; border-top: 1px solid var(--rule); display: flex; justify-content: space-between; font-family: var(--sans); font-size: 11px; color: var(--ink-soft); }

  /* FRONT PAGE — lead + today rail (fable transplant, 36 palette) */
  .frontpage-grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.8fr 1fr; gap: 44px; align-items: start; }
  .lead-card { background: var(--card); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; box-shadow: 0 12px 48px rgba(12,86,130,0.10); }
  .lead-media { position: relative; aspect-ratio: 16/8; overflow: hidden; background: var(--ink); }
  .lead-media img { width: 100%; height: 100%; object-fit: cover; }
  .lead-body { padding: 34px 38px 38px; }
  .rail { border-top: 3px solid var(--navy); }
  .rail-block { padding: 22px 0 24px; border-bottom: 1px solid var(--rule); }
  .rail-kicker { font-family: var(--sans); font-size: 10px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--gold-text); font-weight: 700; margin-bottom: 12px; }
  .rail-quote { font-family: var(--serif); font-style: italic; font-size: 16.5px; line-height: 1.55; color: var(--ink); border-left: 3px solid var(--gold); padding-left: 15px; margin: 0 0 8px; }
  .rail-cite { font-family: var(--sans); font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-soft); font-weight: 700; margin-bottom: 13px; }
  .rail-link { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--navy); font-weight: 700; border-bottom: 1.5px solid var(--gold); padding-bottom: 3px; }
  .rail-air-row { display: flex; justify-content: space-between; gap: 12px; font-family: var(--serif); font-size: 14.5px; padding: 6px 0; border-bottom: 1px dotted var(--rule); }
  .rail-air-row:last-of-type { border-bottom: none; margin-bottom: 10px; }
  .rail-air-call { font-weight: 600; color: var(--navy); }
  .rail-air-when { color: var(--ink-soft); text-align: right; }
  .rail-item { padding: 8px 0; border-bottom: 1px dotted var(--rule); }
  .rail-item:last-of-type { border-bottom: none; margin-bottom: 10px; }
  .rail-item-passage { font-family: var(--sans); font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--gold-text); font-weight: 700; margin-bottom: 2px; }
  .rail-item-title { font-family: var(--serif); font-size: 15.5px; font-weight: 500; line-height: 1.35; }
  .rail-item-title a { color: var(--ink); } .rail-item-title a:hover { color: var(--navy); }

  /* FOUNDING LINE — slim strip, the ministry's own sentence */
  .founding-band { background: var(--bg); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 30px 24px; text-align: center; }
  .founding-band p { font-family: var(--serif); font-style: italic; font-size: 17px; line-height: 1.6; color: var(--ink-soft); margin: 0 auto; max-width: 1000px; }
  .founding-band strong { font-style: italic; font-weight: 600; color: var(--ink); }

  /* RADIO TIMETABLE — inside the dark band */
  .air-table { border-top: 1px solid rgba(255,255,255,0.25); }
  .air-row { display: grid; grid-template-columns: 170px 1.1fr 1.3fr 150px; gap: 24px; align-items: baseline; padding: 20px 8px; border-bottom: 1px solid rgba(255,255,255,0.16); transition: background 0.15s; }
  .air-row:hover { background: rgba(255,255,255,0.05); }
  .air-call { font-family: var(--serif); font-weight: 600; font-size: 25px; color: var(--white); letter-spacing: -0.01em; }
  .air-market { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--gold-light); font-weight: 700; }
  .air-when { font-family: var(--serif); font-size: 15.5px; color: rgba(255,255,255,0.9); }
  .air-when strong { color: var(--white); font-weight: 600; }
  .air-len { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.6); font-weight: 600; text-align: right; }

  /* ============================================================
     RESPONSIVE — mobile-first. Tiers: 0 / 375 / 402 / 768 / 1024 / 1280
     0-374 tiny · 375-401 small phone · 402-767 phone · 768-1023 tablet
     1024-1279 compact desktop · 1280+ full desktop
     ============================================================ */

  /* ===== TIER 0+ (base: tiny phone) ===== */
  @media (min-width: 0px) {
    html, body { overflow-x: hidden; }
    .utility { padding: 4px 16px 0; gap: 18px; }
    header.bar { flex-wrap: wrap; padding: 0 16px; gap: 0 12px; }
    .brand { order: 1; gap: 10px; margin-top: -8px; }
    .brand img { height: 40px; }
    .brand-text { font-size: 19px; }
    .brand-text small { font-size: 9px; letter-spacing: 0.1em; }
    .brand-founded { display: none; }
    .header-actions { order: 2; margin-left: auto; margin-top: -8px; gap: 8px; }
    .header-actions .btn-partner { display: none; }
    .header-search, .header-account { transform: translateY(12px); }
    .header-search svg, .header-account svg { width: 17px; height: 17px; }
    nav.main { display: flex; width: calc(100% + 32px); margin: 16px -16px 0; order: 3; align-items: center; background: var(--paper); border-top: 1px solid var(--rule); font-size: 10px; letter-spacing: 0; gap: 4px; padding: 5px 16px; flex-wrap: nowrap; justify-content: space-between; }
    .nav-l { display: none; }
    .nav-s { display: inline; }
    .nav-partner { display: inline-block; border-radius: 999px; padding: 4px 8px; font-size: 9px; letter-spacing: 0; }
    .nav-partner .heart { display: none; }
    .section, .teacher-feature { padding: 52px 20px; }
    .literature { padding: 52px 20px; }
    .radio { padding: 52px 20px; }
    .partner { padding: 64px 20px; }
    .footer-subscribe { padding: 52px 20px; }
    .actions { padding: 32px 20px 40px; }
    .cofounders { padding: 44px 20px; }
    .section-head { margin-bottom: 32px; }
    .section-head-title { font-size: 32px; }
    .hero { min-height: 0; }
    .hero-cover { padding: 56px 24px; }
    .hero-mission { font-size: 33px; }
    .hero-deck { font-size: 17px; }
    .hero-deck-top { letter-spacing: 0.2em; }
    .hero-actions { flex-direction: column; align-items: center; }
    .actions-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .action-card { padding: 18px 16px; }
    .action-icon { width: 26px; height: 26px; margin-bottom: 10px; }
    .action-title { font-size: 18px; margin-bottom: 8px; }
    .action-body { display: none; }
    .action-body-m { display: block; }
    .action-link { font-size: 10.5px; }
    .frontpage-grid { grid-template-columns: 1fr; gap: 40px; }
    .lead-media { aspect-ratio: 16/9; }
    .lead-body { padding: 24px 22px 28px; }
    .weekly-title { font-size: 27px; }
    .weekly-eyebrow { margin-bottom: 12px; }
    .weekly-meta { margin-bottom: 18px; }
    .weekly-actions { flex-direction: column; }
    .weekly-actions .btn-card { text-align: center; }
    .weekly-card { grid-template-columns: 1fr; }
    .weekly-image { min-height: 280px; }
    .teacher-inner { grid-template-columns: 1fr; gap: 40px; }
    .teacher-media { aspect-ratio: 4/3; }
    .cofounders-inner { grid-template-columns: 1fr; text-align: center; justify-items: center; gap: 24px; }
    .cofounders-eyebrow::before { display: none; }
    .cofounders-photo { width: 140px; }
    .founding-band p { font-size: 15px; }
    .verse-grand { padding: 36px 20px 34px; }
    .verse-grand-he { font-size: 21px; }
    .verse-grand-en { font-size: 16px; }
    .books-featured { grid-template-columns: 1fr; }
    .bookwall { grid-template-columns: repeat(2, 1fr); }
    .radio-head { grid-template-columns: 1fr; }
    .radio-deck { text-align: left; max-width: none; }
    .air-row { display: block; padding: 14px 2px; }
    .air-call { font-size: 20px; display: inline; margin-right: 10px; }
    .air-market { display: inline; font-size: 10px; }
    .air-when { display: block; margin-top: 5px; font-size: 14.5px; }
    .air-len { display: block; text-align: left; margin-top: 2px; font-size: 10px; }
    .two-cards { grid-template-columns: 1fr; gap: 40px; }
    .photo-card { grid-template-columns: 1fr; }
    .photo-card-image { min-height: 190px; }
    .literature-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
    .lit-title { font-size: 14px; }
    .lit-view { font-size: 10px; }
    .partner h2 { font-size: 40px; }
    .partner-amounts { display: inline-grid; grid-template-columns: 1fr 1fr; }
    .footer-subscribe-form { flex-direction: column; gap: 10px; box-shadow: none; }
    .footer-subscribe-form input[type="email"] { border-radius: 4px; border-right: 1px solid var(--rule); padding: 14px 16px; }
    .footer-subscribe-form button { border-radius: 4px; width: 100%; }
    .news-form { flex-direction: column; gap: 10px; }
    .news-form input, .news-form button { border-radius: 4px; }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 24px 20px; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-verse { grid-template-columns: 1fr; text-align: center; }
    .footer-verse-he { text-align: center; }
    .footer-verse-cite { border: none; }
  }

  /* ===== TIER 375+ (small phone: nav single line) ===== */
  @media (min-width: 375px) {
    nav.main { font-size: 10px; gap: 3px; padding: 5px 16px; flex-wrap: nowrap; justify-content: space-between; }
    .nav-l { display: inline; }
    .nav-s { display: none; }
    .nav-partner { padding: 5px 6px; font-size: 9.5px; }
  }

  /* ===== TIER 402+ (phone: full nav size) ===== */
  @media (min-width: 402px) {
    nav.main { font-size: 10.5px; gap: 4px; }
    .nav-partner { padding: 4px 8px; font-size: 10px; }
  }

  /* ===== TIER 768+ (tablet: stacked masthead, roomier everything) ===== */
  @media (min-width: 768px) {
    .utility { padding: 4px 32px 0; gap: 22px; }
    header.bar { padding: 0 32px; gap: 0 20px; }
    .brand { gap: 14px; margin-top: -11px; }
    .brand img { height: 42px; }
    .brand-text { font-size: 21px; }
    .brand-text small { font-size: 11px; letter-spacing: 0.16em; }
    .header-actions { gap: 14px; }
    .header-search, .header-account { transform: translateY(10px); }
    .header-search svg, .header-account svg { width: 19px; height: 19px; }
    nav.main { width: calc(100% + 64px); margin: 13px -32px 0; padding: 6px 32px; gap: 8px; font-size: 12px; letter-spacing: 0.06em; }
    .nav-partner { padding: 6px 14px; font-size: 11px; letter-spacing: 0.06em; }
    .nav-partner .heart { display: inline; }
    .section, .teacher-feature { padding: 96px 32px; }
    .literature { padding: 80px 32px; }
    .radio { padding: 88px 32px; }
    .partner { padding: 112px 32px; }
    .footer-subscribe { padding: 72px 32px; }
    .actions { padding: 48px 32px 64px; }
    .cofounders { padding: 56px 32px; }
    .section-head { margin-bottom: 56px; }
    .section-head-title { font-size: 46px; }
    .hero { min-height: 620px; }
    .hero-cover { padding: 96px 48px 80px; }
    .hero-mission { font-size: 46px; }
    .hero-deck { font-size: 21px; }
    .hero-deck-top { letter-spacing: 0.32em; }
    .hero-actions { flex-direction: row; align-items: center; }
    .actions-grid { gap: 18px; }
    .action-card { padding: 32px 28px; }
    .action-icon { width: 36px; height: 36px; margin-bottom: 18px; }
    .action-title { font-size: 26px; margin-bottom: 10px; }
    .action-body { display: block; }
    .action-body-m { display: none; }
    .action-link { font-size: 12px; }
    .lead-body { padding: 34px 38px 38px; }
    .weekly-title { font-size: 42px; }
    .weekly-eyebrow { margin-bottom: 20px; }
    .weekly-meta { margin-bottom: 32px; }
    .weekly-actions { flex-direction: row; }
    .weekly-actions .btn-card { text-align: left; }
    .teacher-media { aspect-ratio: 16/10; }
    .cofounders-photo { width: auto; }
    .founding-band p { font-size: 17px; }
    .verse-grand { padding: 44px 32px 42px; }
    .verse-grand-he { font-size: 28px; }
    .verse-grand-en { font-size: 17.5px; }
    .books-featured { grid-template-columns: repeat(3, 1fr); }
    .bookwall { grid-template-columns: repeat(3, 1fr); }
    .air-row { display: grid; grid-template-columns: 140px 1fr; gap: 24px; padding: 20px 8px; }
    .air-call { font-size: 25px; display: block; margin-right: 0; }
    .air-market { display: block; font-size: 11px; }
    .air-when { grid-column: 2; margin-top: 0; font-size: 15.5px; }
    .air-len { grid-column: 2; text-align: left; margin-top: 0; font-size: 11px; }
    .photo-card { grid-template-columns: 1fr 1fr; }
    .photo-card-image { min-height: 240px; }
    .literature-grid { grid-template-columns: repeat(3, 1fr); gap: 40px; }
    .lit-title { font-size: 19px; }
    .lit-view { font-size: 11px; }
    .partner h2 { font-size: 64px; }
    .partner-amounts { display: inline-flex; }
    .footer-subscribe-form { flex-direction: row; gap: 0; box-shadow: 0 8px 32px rgba(12,86,130,0.08); }
    .footer-subscribe-form input[type="email"] { border-radius: 4px 0 0 4px; border-right: none; padding: 16px 20px; }
    .footer-subscribe-form button { border-radius: 0 4px 4px 0; width: auto; }
    .news-form { flex-direction: row; gap: 0; }
    .news-form input { border-radius: 4px 0 0 4px; }
    .news-form button { border-radius: 0 4px 4px 0; }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
    .footer-brand { grid-column: auto; }
    .footer-verse { grid-template-columns: 1fr auto 1fr; text-align: left; }
    .footer-verse-he { text-align: right; }
    .footer-verse-cite { border-left: 1px solid var(--rule); border-right: 1px solid var(--rule); }
  }

  /* ===== TIER 1024+ (compact desktop: single-row masthead, full sizes, no "Founded 1984") ===== */
  @media (min-width: 1024px) {
    .utility { padding-top: 6px; }
    header.bar { flex-wrap: nowrap; padding: 0 32px 16px; gap: 10px; }
    .brand { order: 0; margin-top: -9px; }
    .header-actions { order: 0; }
    .brand img { height: 56px; }
    .brand-text { font-size: 24px; }
    .header-actions { margin-left: 0; margin-top: 0; gap: 10px; }
    .header-actions .btn-partner { display: inline-block; }
    .btn-partner { padding: 10px 14px; font-size: 11px; letter-spacing: 0.06em; }
    .header-search, .header-account { transform: none; }
    nav.main { display: contents; font-size: 13px; letter-spacing: 0.08em; }
    .nav-partner { display: none; }
    .actions-grid { grid-template-columns: repeat(4, 1fr); }
    .frontpage-grid { grid-template-columns: 1.8fr 1fr; gap: 44px; }
    .lead-media { aspect-ratio: 16/8; }
    .weekly-card { grid-template-columns: 1.05fr 1fr; }
    .weekly-image { min-height: 420px; }
    .teacher-inner { grid-template-columns: 1.3fr 1fr; gap: 72px; }
    .cofounders-inner { grid-template-columns: 220px 1fr; gap: 48px; text-align: left; justify-items: stretch; }
    .cofounders-eyebrow::before { display: initial; }
    .bookwall { grid-template-columns: repeat(4, 1fr); }
    .two-cards { grid-template-columns: repeat(2, 1fr); gap: 28px; }
    .air-row { grid-template-columns: 170px 1.1fr 1.3fr 150px; }
    .air-when { grid-column: auto; }
    .air-len { grid-column: auto; text-align: right; }
    .radio-head { grid-template-columns: 1fr auto; }
    .radio-deck { text-align: right; max-width: 380px; }
    .footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; gap: 56px; }
    .hero-mission { font-size: 64px; }
  }

  /* ===== TIER 1280+ (full desktop: Founded 1984 returns, full nav air) ===== */
  @media (min-width: 1280px) {
    .brand-founded { display: inline; }
    header.bar { gap: 20px; }
    .header-actions { gap: 14px; }
    nav.main { letter-spacing: 0.1em; }
    .btn-partner { padding: 11px 22px; font-size: 12px; letter-spacing: 0.1em; }
  }

  /* DARK MODE — system-driven (prefers-color-scheme), no toggle. Brand navy/gold kept. */
  @media (prefers-color-scheme: dark) {
    :root {
      /* shared dark tokens from tokens.css; public keeps a darker navy-deep */
      --bg: #0D141B;
      --paper-deep: #0C141C;
      --navy-deep: #071E30;
    }
    /* keep brand-navy SURFACES navy (they already work in the dark) */
    .btn-card.primary, .action-card.give, .bookcell.more, .footer-subscribe-form button, .news-form button { background: #0C5682; }
    .btn-card.primary:hover, .footer-subscribe-form button:hover { background: #15A2DC; }
    .partner { background: linear-gradient(135deg, #05131F 0%, #0A3552 100%); }
    /* gold surfaces keep DARK text (ink flips light in dark mode) */
    .btn-partner, .btn-hero.primary, .weekly-image-tag, .photo-card-tag, .teacher-tag, .strip-tag { color: #1B2733; }
    .btn-partner:hover { color: var(--white); }
    .partner-amounts a { color: #0C5682; }
    .partner-amounts a.selected, .partner-amounts a:hover { color: #1B2733; }
    .verse-grand { background: linear-gradient(180deg, #101B26 0%, #0D141B 100%); }
    .hero-img::after { background: linear-gradient(180deg, rgba(4,20,33,0.55) 0%, rgba(4,20,33,0.94) 100%); }
    .btn-hero.secondary { border-color: rgba(255,255,255,0.5); color: var(--white); }
    .lead-media { background: #060D13; }
    .action-card:hover { box-shadow: 0 24px 56px rgba(0,0,0,0.5); }
    .lead-card, .weekly-card { box-shadow: 0 12px 48px rgba(0,0,0,0.4); }
    img { opacity: 0.92; }
  }

/* ============ INTERIOR V1: page-hero, archive search, platform cards ============ */

  /* ===== INTERIOR PAGE VOCABULARY (shared by section mockups) ===== */
  .page-hero { background: linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 130%); color: var(--white); padding: 64px 32px 56px; }
  .page-hero-inner { max-width: 1280px; margin: 0 auto; }
  .page-eyebrow { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.3em; color: var(--gold-light); font-weight: 700; margin-bottom: 14px; display: inline-flex; align-items: center; gap: 12px; }
  .page-eyebrow::before { content: ''; width: 32px; height: 1.5px; background: var(--gold-light); }
  .page-hero h1 { font-family: var(--serif); font-weight: 400; font-size: 54px; line-height: 1.05; margin: 0 0 14px; letter-spacing: -0.015em; color: var(--white); }
  .page-hero h1 em { font-style: italic; color: var(--gold-light); }
  .page-deck { font-family: var(--serif); font-size: 19px; line-height: 1.6; color: rgba(255,255,255,0.9); max-width: 720px; margin: 0; }
  .archive-search { display: flex; max-width: 620px; margin: 28px 0 0; border-radius: 4px; overflow: hidden; box-shadow: 0 10px 36px rgba(0,0,0,0.25); }
  .archive-search input { flex: 1; min-width: 0; padding: 16px 20px; font-family: var(--serif); font-size: 16px; border: none; outline: none; background: var(--white); color: #11202E; }
  .archive-search button { background: var(--gold); color: #1B2733; border: none; padding: 16px 28px; font-family: var(--sans); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; }
  .archive-search button:hover { background: var(--gold-light); }
  .topic-chips { display: flex; flex-wrap: wrap; gap: 10px; max-width: 1000px; margin: 0 auto; justify-content: center; }
  .topic-chips a { font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--navy); background: var(--card); border: 1px solid var(--rule); border-radius: 999px; padding: 9px 18px; }
  .topic-chips a:hover { border-color: var(--navy); }
  .platform-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; max-width: 1280px; margin: 0 auto; }
  .platform-card { background: var(--card); border: 1px solid var(--rule); border-top: 4px solid var(--gold); border-radius: 6px; padding: 26px 24px; display: flex; flex-direction: column; }
  .platform-name { font-family: var(--serif); font-weight: 600; font-size: 22px; margin: 0 0 6px; color: var(--ink); }
  .platform-note { font-family: var(--serif); font-size: 14.5px; line-height: 1.5; color: var(--ink-soft); margin: 0 0 16px; flex: 1; }
  .platform-link { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--navy); font-weight: 700; border-bottom: 1.5px solid var(--gold); padding-bottom: 3px; align-self: flex-start; overflow-wrap: anywhere; max-width: 100%; }
  .play-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(6,43,71,0.25); }
  .play-overlay span { width: 72px; height: 72px; border-radius: 999px; background: rgba(255,255,255,0.92); display: flex; align-items: center; justify-content: center; font-size: 26px; color: var(--navy); padding-left: 5px; }
  .audio-mock { display: flex; align-items: center; gap: 14px; background: var(--paper); border: 1px solid var(--rule); border-radius: 999px; padding: 10px 18px; margin: 18px 0; font-family: var(--sans); font-size: 12px; color: var(--ink-soft); }
  .audio-mock .bar { flex: 1; height: 4px; border-radius: 2px; background: var(--rule); position: relative; }
  .audio-mock .bar::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 34%; border-radius: 2px; background: var(--navy); }
  .audio-mock .pl { width: 32px; height: 32px; border-radius: 999px; background: var(--navy); color: var(--white); display: flex; align-items: center; justify-content: center; padding-left: 2px; }
  nav.main a.active { color: var(--navy); }
  .section-sub { font-family: var(--serif); font-size: 16.5px; color: var(--ink-soft); text-align: center; max-width: 680px; margin: -36px auto 40px; line-height: 1.6; }
  .see-all { text-align: center; margin-top: 32px; }
  .see-all a { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; font-weight: 700; color: var(--ink); border-bottom: 2px solid var(--gold); padding-bottom: 4px; }
  @media (min-width: 0px) {
    .page-hero { padding: 40px 20px 36px; }
    .page-hero h1 { font-size: 34px; }
    .page-deck { font-size: 16px; }
    .platform-grid { grid-template-columns: minmax(0, 1fr); }
    .archive-search { margin-top: 20px; }
    /* bookwall: fable-06's tier ladder re-declared with minmax(0,1fr) — long book names
       (Revelation + Hebrew) otherwise force min-content tracks past the viewport */
    .bookwall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bookcell { padding: 16px 16px; }
    .bookcell-name { flex-wrap: wrap; font-size: 17px; }
  }
  @media (min-width: 768px) {
    .page-hero { padding: 64px 32px 56px; }
    .page-hero h1 { font-size: 54px; }
    .page-deck { font-size: 19px; }
    .platform-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bookwall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bookcell { padding: 22px 24px; }
    .bookcell-name { font-size: 19px; }
  }
  @media (min-width: 1024px) {
    .platform-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .platform-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; }
    .platform-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .bookwall { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  }

/* ============ HUB V2: toc bookshelf, theater, rhythm, stations ============ */

  /* ===== V2 HUB VOCABULARY (mobile-first) ===== */
  .page-hero { position: relative; overflow: hidden; }
  .page-hero.tex::before { content: ''; position: absolute; inset: 0; background: url('/images/western-wall-texture-l.jpg') center/cover; opacity: 0.13; }
  .page-hero-inner { position: relative; z-index: 1; }
  /* cutout hero — Gideon stands on the band; gold glow + ring behind, nameplate chip */
  .page-hero.cut { padding-bottom: 0; }
  .page-hero.cut .page-hero-inner { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; align-items: end; }
  .page-hero.cut .bio-copy { padding-bottom: 40px; }
  .cut-stage { position: relative; justify-self: center; width: min(360px, 92%); margin-top: 4px; }
  .cut-stage::before { content: ''; position: absolute; left: 50%; bottom: -30%; transform: translateX(-50%); width: 150%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(201,155,63,0.30) 0%, rgba(201,155,63,0) 62%); }
  .cut-stage::after { content: ''; position: absolute; left: 50%; bottom: 4%; transform: translateX(-50%); width: 88%; aspect-ratio: 1; border-radius: 50%; border: 1.5px solid rgba(229,196,109,0.45); }
  .cut-photo { position: relative; z-index: 1; display: block; width: 100%; height: auto; filter: drop-shadow(0 26px 48px rgba(0,0,0,0.45)); }
  .cut-cap { position: absolute; z-index: 2; left: 0; bottom: 30px; background: rgba(6,27,45,0.85); border: 1px solid rgba(229,196,109,0.4); border-left: 3px solid var(--gold); padding: 10px 16px; font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; color: var(--gold-light); }
  .cut-cap small { display: block; margin-top: 4px; font-size: 9px; font-weight: 600; letter-spacing: 0.14em; color: rgba(255,255,255,0.6); }

  /* bio hero — framed portrait on the navy band */
  .page-hero.bio .page-hero-inner { display: grid; grid-template-columns: minmax(0,1fr); gap: 40px; align-items: center; }
  .bio-plate { justify-self: center; width: min(300px, 82%); }
  .bio-frame { padding: 10px; border: 1px solid rgba(229,196,109,0.55); background: rgba(255,255,255,0.04); box-shadow: 0 18px 50px rgba(0,0,0,0.35); }
  .bio-frame img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: 40% 0%; background: #fff; }
  .bio-cap { margin-top: 14px; text-align: center; font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.22em; color: var(--gold-light); }
  .bio-cap small { display: block; margin-top: 5px; font-size: 9px; font-weight: 600; letter-spacing: 0.16em; color: rgba(255,255,255,0.55); }
  .hero-anchors { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
  .hero-anchors a { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #fff; border: 1px solid rgba(255,255,255,0.35); border-radius: 999px; padding: 8px 16px; }
  .hero-anchors a:hover { border-color: var(--gold-light); color: var(--gold-light); }

  .hub-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; border-bottom: 2px solid var(--rule); padding-bottom: 16px; margin-bottom: 34px; }
  .hub-eyebrow { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.24em; color: var(--gold-text); margin-bottom: 10px; }
  .hub-title { font-family: var(--serif); font-weight: 400; font-size: 27px; line-height: 1.1; margin: 0; color: var(--ink); letter-spacing: -0.01em; }
  .hub-title em { font-style: italic; }
  .hub-count { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-soft); font-weight: 600; padding-bottom: 4px; white-space: nowrap; }
  .link-caps { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--navy); font-weight: 700; border-bottom: 1.5px solid var(--gold); padding-bottom: 3px; }
  .hub-action { padding-bottom: 4px; white-space: nowrap; }

  /* now-teaching band */
  .nt-band { background: var(--card); border-bottom: 1px solid var(--rule); padding: 26px 20px; }
  .nt-inner { max-width: 1280px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 48px; }
  .nt-left { flex: 1 1 300px; }
  .nt-title { font-family: var(--serif); font-weight: 600; font-size: 24px; margin: 6px 0 4px; color: var(--ink); }
  .nt-title .he { font-family: var(--hebrew); font-weight: 500; font-size: 20px; color: var(--navy); }
  .nt-sub { font-family: var(--sans); font-size: 12px; color: var(--ink-soft); }
  .nt-parts { display: flex; flex-wrap: wrap; gap: 8px; }
  .nt-part { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; border: 1px solid var(--rule); border-radius: 4px; padding: 8px 12px; color: var(--ink-soft); }
  .nt-part.done { background: var(--navy); border-color: var(--navy); color: #fff; }
  .nt-part.now { background: var(--gold); border-color: var(--gold-text); color: #1B2733; }

  /* table-of-contents bookshelf */
  .toc { columns: 3 290px; column-gap: 52px; }
  .toc-div { break-inside: avoid; margin-bottom: 32px; }
  .toc-div h3 { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2em; color: var(--ink); border-bottom: 2px solid var(--gold); padding-bottom: 9px; margin: 0 0 10px; }
  .toc-div h3 .he { font-family: var(--hebrew); font-size: 16px; font-weight: 500; color: var(--navy); letter-spacing: 0; text-transform: none; }
  a.toc-row { display: flex; align-items: baseline; gap: 8px; padding: 4px 0; }
  .toc-name { font-family: var(--serif); font-size: 15.5px; color: var(--ink); white-space: nowrap; }
  .toc-he { font-family: var(--hebrew); font-size: 13px; color: var(--ink-soft); white-space: nowrap; }
  .toc-lead { flex: 1; min-width: 14px; border-bottom: 1px dotted var(--rule); transform: translateY(-3px); }
  .toc-count { font-family: var(--sans); font-size: 11px; font-weight: 700; color: var(--navy); }
  .toc-row:hover .toc-name { color: var(--navy); }
  .toc-row.mute .toc-name, .toc-row.mute .toc-he { color: var(--ink-soft); opacity: 0.85; } /* dimmed but >=4.5:1 in both modes — opacity 0.6 fell below WCAG */
  .toc-row.mute .toc-count { color: var(--ink-soft); font-weight: 500; }

  /* pathways */
  .pathways { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
  .pathway { background: var(--card); border: 1px solid var(--rule); border-radius: 6px; padding: 28px 28px 24px; display: flex; flex-direction: column; }
  .pathway-num { font-family: var(--serif); font-style: italic; font-size: 40px; line-height: 1; color: var(--gold-text); margin-bottom: 14px; }
  .pathway h3 { font-family: var(--serif); font-weight: 600; font-size: 21px; margin: 0 0 8px; color: var(--ink); }
  .pathway p { font-family: var(--serif); font-size: 14.5px; line-height: 1.55; color: var(--ink-soft); margin: 0 0 18px; flex: 1; }
  .pathway .link-caps { align-self: flex-start; }

  /* series list */
  .series-list { border-top: 1px solid var(--rule); }
  a.series-row { display: grid; grid-template-columns: 84px minmax(0,1fr); gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--rule); }
  .series-row img { width: 84px; height: auto; aspect-ratio: 16/10; object-fit: cover; border-radius: 4px; display: block; }
  /* no approved cover -> a quiet brand tile, never stock/mock imagery */
  .art-empty { width: 84px; aspect-ratio: 16/10; border-radius: 4px; background: linear-gradient(135deg, var(--navy) 0%, #1b3a55 100%); display: block; }
  .sh-art-empty { width: 100%; max-width: 380px; aspect-ratio: 16/9; border-radius: 6px; background: linear-gradient(135deg, var(--navy) 0%, #1b3a55 100%); box-shadow: 0 16px 44px rgba(9,30,48,0.28); }
  .series-name { display: block; font-family: var(--serif); font-weight: 600; font-size: 18px; color: var(--ink); }
  .series-meta { display: block; font-family: var(--sans); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-soft); margin-top: 4px; }
  .series-status { display: none; font-family: var(--sans); font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; border-radius: 999px; padding: 6px 12px; white-space: nowrap; justify-self: end; }
  .series-status.now { background: var(--gold); color: #1B2733; }
  .series-status.done { border: 1px solid var(--rule); color: var(--ink-soft); }
  .series-row:hover .series-name { color: var(--navy); }

  /* message table */
  .msg-table { border-top: 1px solid var(--rule); }
  .msg-head { display: none; font-family: var(--sans); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--ink-soft); padding: 0 0 10px; border-bottom: 2px solid var(--rule); }
  .mt-row { display: block; padding: 16px 0; border-bottom: 1px solid var(--rule); }
  .mt-date, .mt-len { font-family: var(--sans); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); }
  .mt-len { margin-right: 14px; }
  .mt-pass { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--navy); }
  .mt-title { font-family: var(--serif); font-size: 17px; color: var(--ink); margin: 5px 0 7px; }
  .mt-act { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; color: var(--navy); border-bottom: 1.5px solid var(--gold); padding-bottom: 2px; }
  .mt-row:hover .mt-title { color: var(--navy); }

  /* topic index */
  .topic-index { display: flex; flex-wrap: wrap; gap: 10px; }
  .topic-index a { font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--ink); background: var(--card); border: 1px solid var(--rule); border-radius: 999px; padding: 9px 16px; }
  .topic-index a b { color: var(--navy); font-weight: 700; margin-left: 7px; }
  .topic-index a:hover { border-color: var(--navy); color: var(--navy); }

  /* theater */
  .theater { background: #0D1B27; padding: 48px 20px 56px; }
  .theater-inner { max-width: 1280px; margin: 0 auto; }
  .theater-eyebrow { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold-light); margin-bottom: 26px; display: flex; align-items: center; gap: 14px; }
  .theater-eyebrow::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,0.14); }
  .theater-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 36px; }
  .tp-frame { position: relative; aspect-ratio: 16/9; border-radius: 6px; overflow: hidden; background: #000; }
  .tp-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .tp-pass { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-light); margin: 22px 0 6px; }
  .tp-pass .he { font-family: var(--hebrew); letter-spacing: 0; font-weight: 500; }
  .tp-title { font-family: var(--serif); font-weight: 400; font-size: 24px; color: #fff; margin: 0 0 6px; }
  .tp-sub { font-family: var(--sans); font-size: 12.5px; color: rgba(255,255,255,0.55); margin: 0 0 20px; }
  .tp-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
  .btn-gold { background: var(--gold); color: #1B2733; font-family: var(--sans); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 12px 20px; border-radius: 4px; }
  .btn-gold:hover { background: var(--gold-light); }
  .btn-ghost { border: 1px solid rgba(255,255,255,0.4); color: #fff; font-family: var(--sans); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 11px 20px; border-radius: 4px; }
  .btn-ghost:hover { border-color: var(--gold-light); color: var(--gold-light); }
  .tr h3 { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.5); border-bottom: 1px solid rgba(255,255,255,0.15); padding-bottom: 10px; margin: 0 0 4px; }
  a.tr-item { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
  .tr-item img { width: 92px; aspect-ratio: 16/9; object-fit: cover; border-radius: 3px; display: block; }
  .tr-pass { font-family: var(--sans); font-size: 9.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-light); }
  .tr-title { font-family: var(--serif); font-size: 15px; color: #fff; margin: 3px 0 2px; }
  .tr-dur { font-family: var(--sans); font-size: 10.5px; color: rgba(255,255,255,0.45); }
  .tr-item:hover .tr-title { color: var(--gold-light); }
  .tr-all { display: inline-block; margin-top: 16px; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-light); border-bottom: 1.5px solid var(--gold); padding-bottom: 3px; }

  /* weekly rhythm */
  .rhythm { display: grid; grid-template-columns: minmax(0,1fr); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
  .beat { padding: 28px 8px; border-top: 1px solid var(--rule); }
  .beat:first-child { border-top: none; }
  .beat-day { display: inline-block; background: var(--navy); color: #fff; font-family: var(--sans); font-size: 10.5px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; padding: 6px 12px; border-radius: 3px; }
  .beat-time { font-family: var(--serif); font-size: 26px; color: var(--ink); margin: 14px 0 4px; }
  .beat-what { font-family: var(--sans); font-size: 13px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
  .beat-note { font-family: var(--serif); font-size: 14.5px; line-height: 1.5; color: var(--ink-soft); max-width: 320px; }

  /* channel rows */
  .channels { display: grid; gap: 16px; }
  .channel { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; background: var(--card); border: 1px solid var(--rule); border-radius: 6px; padding: 22px 26px; }
  .ch-badge { width: 52px; height: 52px; border-radius: 8px; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--sans); font-weight: 800; font-size: 15px; letter-spacing: 0.04em; flex: none; }
  .ch-body { flex: 1 1 280px; }
  .ch-name { font-family: var(--serif); font-weight: 600; font-size: 20px; margin: 0 0 3px; color: var(--ink); }
  .ch-desc { font-family: var(--serif); font-size: 14.5px; color: var(--ink-soft); margin: 0; line-height: 1.5; }
  .ch-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
  .btn-navy { background: var(--navy); color: #fff; font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; padding: 11px 18px; border-radius: 4px; }
  .btn-navy:hover { background: var(--navy-deep); }

  /* podcast feature */
  .podcast { display: grid; grid-template-columns: minmax(0,1fr); gap: 32px; align-items: center; margin-bottom: 44px; }
  .pod-cover { width: 100%; max-width: 240px; aspect-ratio: 1; background: linear-gradient(160deg, var(--navy-deep) 0%, #123A5C 100%); border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center; box-shadow: 0 14px 40px rgba(9,30,48,0.25); }
  .pod-cover img { height: 54px; filter: brightness(0) invert(1); opacity: 0.95; }
  .pod-cover-name { font-family: var(--serif); font-size: 17px; line-height: 1.3; color: #fff; }
  .pod-cover-tag { font-family: var(--sans); font-size: 9px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-light); }
  .pod-body h3 { font-family: var(--serif); font-weight: 400; font-size: 26px; margin: 0 0 10px; color: var(--ink); }
  .pod-body p { font-family: var(--serif); font-size: 15.5px; line-height: 1.6; color: var(--ink-soft); margin: 0 0 20px; max-width: 560px; }
  .pod-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
  .badge-btn { border: 1.5px solid var(--navy); color: var(--navy); font-family: var(--sans); font-size: 12px; font-weight: 700; padding: 10px 18px; border-radius: 999px; }
  .badge-btn:hover { background: var(--navy); color: #fff; }
  .pod-note { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); }
  .od-head { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 6px; }
  .od-row { display: flex; align-items: center; gap: 16px; padding: 15px 0; border-top: 1px dotted var(--rule); flex-wrap: wrap; }
  .od-badge { width: 40px; height: 40px; border-radius: 6px; border: 1px solid var(--rule); color: var(--navy); display: flex; align-items: center; justify-content: center; font-family: var(--sans); font-weight: 800; font-size: 10.5px; flex: none; background: var(--card); }
  .od-body { flex: 1 1 240px; }
  .od-name { font-family: var(--serif); font-weight: 600; font-size: 16.5px; color: var(--ink); }
  .od-desc { font-family: var(--serif); font-size: 13.5px; color: var(--ink-soft); }

  /* station directory */
  .radio-hub { display: grid; grid-template-columns: minmax(0,1fr); gap: 40px; }
  .radio-intro p { font-family: var(--serif); font-size: 15.5px; line-height: 1.65; color: var(--ink-soft); margin: 14px 0 22px; }
  .stations { display: grid; grid-template-columns: minmax(0,1fr); gap: 18px; }
  .station { background: var(--card); border: 1px solid var(--rule); border-radius: 6px; padding: 22px 24px; }
  .st-top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-bottom: 1px dotted var(--rule); padding-bottom: 12px; margin-bottom: 12px; }
  .st-call { font-family: var(--serif); font-weight: 600; font-size: 24px; color: var(--ink); }
  .st-freq { font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--navy); white-space: nowrap; }
  .st-market { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-soft); margin-bottom: 10px; }
  .st-when { font-family: var(--serif); font-size: 15px; color: var(--ink); line-height: 1.55; }
  .st-when strong { font-weight: 600; }
  .st-note { font-family: var(--sans); font-size: 11px; color: var(--ink-soft); margin-top: 10px; }
  .stream-note { margin-top: 32px; border: 1px solid var(--rule); border-left: 4px solid var(--gold); background: var(--card); border-radius: 4px; padding: 18px 24px; font-family: var(--serif); font-style: italic; font-size: 15.5px; color: var(--ink); line-height: 1.6; }
  .stream-note a { font-style: normal; margin-left: 8px; }

  @media (min-width: 768px) {
    .page-hero.cut .page-hero-inner { grid-template-columns: minmax(0,1fr) 470px; gap: 48px; }
    .page-hero.cut .bio-copy { align-self: start; padding-bottom: 56px; }
    .cut-stage { width: 100%; justify-self: end; }
    .cut-cap { left: -18px; bottom: 44px; }
    .page-hero.bio .page-hero-inner { grid-template-columns: minmax(0,1fr) 300px; gap: 56px; }
    .page-hero.bio { padding-bottom: 48px; }
    .bio-plate { width: 100%; justify-self: end; }
    .hub-title { font-size: 34px; }
    .nt-band { padding: 26px 32px; }
    .pathways { grid-template-columns: repeat(3, minmax(0,1fr)); }
    a.series-row { grid-template-columns: 104px minmax(0,1fr) auto; }
    .series-row img { width: 104px; }
    .art-empty { width: 104px; }
    .series-status { display: inline-block; }
    .msg-head { display: grid; grid-template-columns: 92px 170px minmax(0,1fr) 62px 90px; gap: 16px; }
    .mt-row { display: grid; grid-template-columns: 92px 170px minmax(0,1fr) 62px 90px; gap: 16px; align-items: baseline; }
    .mt-title { margin: 0; font-size: 16.5px; }
    .mt-act { justify-self: end; }
    .msg-head span:last-child { justify-self: end; }
    .theater { padding: 64px 32px 72px; }
    .tp-title { font-size: 30px; }
    .podcast { grid-template-columns: 240px minmax(0,1fr); }
    .pod-body h3 { font-size: 28px; }
    .stations { grid-template-columns: repeat(2, minmax(0,1fr)); }
  }
  @media (min-width: 1024px) {
    .cut-cap { left: -20px; bottom: 42px; }
    .theater-grid { grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); }
    .rhythm { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .beat { border-top: none; border-left: 1px solid var(--rule); padding: 10px 36px; }
    .beat:first-child { border-left: none; padding-left: 8px; }
    .beat-time { font-size: 30px; }
    .radio-hub { grid-template-columns: minmax(0,0.85fr) minmax(0,1.5fr); }
  }
  @media (prefers-color-scheme: dark) {
    .page-hero { background: linear-gradient(180deg, #0A121A 0%, #14293C 130%); }
    .ch-badge, .beat-day, .btn-navy, .nt-part.done { background: #0C5682; border-color: #0C5682; }
    .btn-navy:hover { background: #0A4568; }
    .badge-btn:hover { background: #0C5682; border-color: #0C5682; }
    .pod-cover { background: linear-gradient(160deg, #0B1B29 0%, #123A5C 100%); }
    .theater { background: #0A141D; }
    .archive-search input { background: #15202B; color: var(--ink); }
  }

/* ============ LEVEL 2: message page, series/book/topic indexes ============ */

  /* ===== LEVEL-2 VOCABULARY (message page + series/book/topic indexes) ===== */
  .crumbs { font-family: var(--sans); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.5); margin-bottom: 18px; }
  .crumbs a { color: rgba(255,255,255,0.75); }
  .crumbs a:hover { color: var(--gold-light); }
  .crumbs .sep { margin: 0 8px; color: rgba(255,255,255,0.3); }
  .crumbs.on-light { color: var(--ink-soft); margin-bottom: 22px; }
  .crumbs.on-light a { color: var(--ink-soft); }
  .crumbs.on-light a:hover { color: var(--navy); }
  .crumbs.on-light .sep { color: var(--rule); }

  /* message page */
  .player-well { background: #0D1B27; padding: 22px 20px 36px; }
  .pw-inner { max-width: 980px; margin: 0 auto; }
  .msg-mast { padding: 28px 20px 0; }
  .msg-pass { font-family: var(--sans); font-size: 11.5px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-text); }
  .msg-pass .he { font-family: var(--hebrew); letter-spacing: 0; font-weight: 500; }
  .msg-title { font-family: var(--serif); font-weight: 400; font-size: 30px; line-height: 1.15; margin: 8px 0 10px; color: var(--ink); }
  .msg-meta { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-soft); }
  .msg-grid { max-width: 980px; margin: 0 auto; padding: 24px 20px 60px; display: grid; grid-template-columns: minmax(0,1fr); gap: 44px; }
  .prose p { font-family: var(--serif); font-size: 16.5px; line-height: 1.75; color: var(--ink); margin: 0 0 18px; }
  .scripture { border: 1px solid var(--rule); border-top: 3px solid var(--gold); background: var(--card); padding: 26px 28px 22px; margin: 28px 0; }
  .scripture-he { font-family: var(--hebrew); font-size: 21px; line-height: 1.8; color: var(--navy); direction: rtl; text-align: right; margin: 0 0 14px; }
  .scripture-en { font-family: var(--serif); font-style: italic; font-size: 16.5px; line-height: 1.7; color: var(--ink); margin: 0 0 12px; }
  .scripture-ref { font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); }
  .aside section { border-top: 2px solid var(--rule); padding-top: 18px; margin-bottom: 30px; }
  .part-line { display: flex; align-items: baseline; gap: 10px; padding: 9px 0; border-bottom: 1px dotted var(--rule); font-family: var(--serif); font-size: 15px; color: var(--ink); }
  .part-line .num { font-family: var(--serif); font-style: italic; color: var(--gold-text); min-width: 20px; }
  .part-line.current .t { font-weight: 600; }
  .part-line.todo { color: var(--ink-soft); }
  .part-state { margin-left: auto; font-family: var(--sans); font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); white-space: nowrap; }
  .part-state.now { color: #1B2733; background: var(--gold); border-radius: 999px; padding: 3px 9px; }
  .dl-list a { display: block; padding: 9px 0; border-bottom: 1px dotted var(--rule); font-family: var(--sans); font-size: 12.5px; font-weight: 600; color: var(--navy); }
  .dl-list a:hover { color: var(--navy-deep); }
  .dl-list .dl-note { color: var(--ink-soft); font-weight: 500; font-size: 11px; margin-left: 6px; }
  .pager { max-width: 980px; margin: 0 auto; padding: 0 20px 70px; display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; }
  .pager a { border: 1px solid var(--rule); border-radius: 6px; background: var(--card); padding: 16px 20px; display: block; }
  .pager .dir { display: block; font-family: var(--sans); font-size: 9.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 6px; }
  .pager .pt { display: block; font-family: var(--serif); font-size: 16px; color: var(--ink); }
  .pager a:hover .pt { color: var(--navy); }
  .pager .next { text-align: right; }
  .pager a.disabled { opacity: 0.55; pointer-events: none; }

  /* series page */
  .series-hero { background: var(--card); border-bottom: 1px solid var(--rule); padding: 36px 20px 44px; }
  .sh-inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: minmax(0,1fr); gap: 30px; align-items: center; }
  .sh-art img { width: 100%; height: auto; max-width: 380px; border-radius: 6px; box-shadow: 0 16px 44px rgba(9,30,48,0.28); display: block; }
  .sh-title { font-family: var(--serif); font-weight: 400; font-size: 32px; margin: 6px 0 10px; color: var(--ink); }
  .sh-title .he { font-family: var(--hebrew); font-weight: 500; color: var(--navy); }
  .sh-meta { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-soft); font-weight: 600; margin-bottom: 14px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
  .sh-meta .series-status { display: inline-block; }
  .sh-desc { font-family: var(--serif); font-size: 16px; line-height: 1.65; color: var(--ink-soft); max-width: 640px; margin: 0 0 20px; }
  .sh-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
  .part-row { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 14px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--rule); }
  .part-row .pnum { font-family: var(--serif); font-style: italic; font-size: 24px; color: var(--gold-text); }
  .part-row .ppass { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--navy); }
  .part-row .ptitle { font-family: var(--serif); font-size: 18px; color: var(--ink); display: block; margin: 4px 0; }
  .part-row .pmeta { font-family: var(--sans); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); }
  .part-row .pact { display: none; }
  .part-row.current { background: linear-gradient(90deg, rgba(201,155,63,0.08), transparent 70%); border-left: 3px solid var(--gold); padding-left: 14px; margin-left: -17px; }
  .part-row.todo { opacity: 0.6; }
  .mt-row.todo { opacity: 0.6; }

  /* book & topic index heads */
  .index-head { padding: 36px 20px 8px; }
  .idx-title { font-family: var(--serif); font-weight: 400; font-size: 32px; margin: 6px 0 10px; color: var(--ink); }
  .idx-title .he { font-family: var(--hebrew); font-weight: 500; color: var(--navy); }
  .idx-desc { font-family: var(--serif); font-size: 16px; line-height: 1.65; color: var(--ink-soft); max-width: 680px; margin: 0 0 14px; }
  .idx-stats { font-family: var(--sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-soft); font-weight: 600; }
  .chap-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
  .chap-chips a { font-family: var(--sans); font-size: 11.5px; font-weight: 700; border: 1px solid var(--rule); border-radius: 999px; padding: 7px 14px; color: var(--ink); }
  .chap-chips a b { color: var(--navy); margin-left: 5px; }
  .chap-chips a:hover { border-color: var(--navy); color: var(--navy); }
  .chap-group { margin-bottom: 44px; }
  .chap-group > h3 { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-family: var(--serif); font-weight: 600; font-size: 20px; color: var(--ink); border-bottom: 2px solid var(--rule); padding-bottom: 10px; margin: 0 0 4px; }
  .chap-group > h3 .he { font-family: var(--hebrew); font-weight: 500; font-size: 17px; color: var(--navy); }
  .chap-group .msg-table { border-top: none; }

  @media (min-width: 768px) {
    .player-well { padding: 26px 32px 44px; }
    .msg-mast { padding: 34px 32px 0; }
    .msg-title { font-size: 38px; }
    .msg-grid { padding: 30px 32px 70px; }
    .pager { grid-template-columns: repeat(2, minmax(0,1fr)); padding: 0 32px 80px; }
    .series-hero { padding: 44px 32px 52px; }
    .sh-inner { grid-template-columns: 340px minmax(0,1fr); gap: 48px; }
    .sh-title { font-size: 38px; }
    .index-head { padding: 44px 32px 8px; }
    .idx-title { font-size: 40px; }
    .part-row { grid-template-columns: 44px minmax(0,1fr) auto; }
    .part-row .pact { display: block; justify-self: end; align-self: center; }
  }
  @media (min-width: 1024px) {
    .msg-grid { grid-template-columns: minmax(0,1fr) 300px; }
  }

/* ============ ABOUT + CONTACT (authored directly in apps/www, 2026-07-05) ============ */
.person { display: grid; grid-template-columns: minmax(0,1fr); gap: 28px; align-items: center; }
.person img { width: 100%; max-width: 340px; border-radius: 6px; box-shadow: 0 14px 40px rgba(9,30,48,0.22); display: block; }
.faith-article { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 18px; padding: 20px 0; border-bottom: 1px dotted var(--rule); }
.faith-article .fnum { font-family: var(--serif); font-style: italic; font-size: 22px; color: var(--gold-text); line-height: 1.2; }
.faith-article p { font-family: var(--serif); font-size: 16px; line-height: 1.7; color: var(--ink); margin: 0; }
.faith-article .refs { display: block; margin-top: 8px; font-family: var(--sans); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-soft); }
.purpose-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
.contact-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 44px; align-items: start; }
.addr { font-family: var(--serif); font-size: 17px; line-height: 1.75; color: var(--ink); font-style: normal; }
.cform label { display: block; font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-soft); margin: 18px 0 6px; }
.cform input, .cform textarea { width: 100%; padding: 12px 14px; font-family: var(--serif); font-size: 15.5px; border: 1px solid var(--rule); border-radius: 4px; background: var(--card); color: var(--ink); }
.cform input:focus, .cform textarea:focus { outline: 2px solid var(--navy); outline-offset: -1px; }
.cform select { width: 100%; padding: 12px 38px 12px 14px; font-family: var(--serif); font-size: 15.5px; border: 1px solid var(--rule); border-radius: 4px; background-color: var(--card); color: var(--ink); appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%236B7A88' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.cform select:focus { outline: 2px solid var(--navy); outline-offset: -1px; }
.cform textarea { min-height: 150px; resize: vertical; }
button.btn-navy { border: 0; cursor: pointer; }
@media (min-width: 768px) {
  .person { grid-template-columns: 300px minmax(0,1fr); gap: 52px; }
  .purpose-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (min-width: 1024px) {
  .contact-grid { grid-template-columns: minmax(0,0.9fr) minmax(0,1.1fr); }
}

/* ============ TOURS + LITERATURE (Batch 3, 2026-07-05) ============ */
.sites { display: grid; grid-template-columns: minmax(0,1fr); gap: 0 56px; }
.site-row { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: 16px; align-items: center; padding: 10px 0; border-bottom: 1px dotted var(--rule); }
.site-thumb { width: 96px; aspect-ratio: 4/3; object-fit: cover; border-radius: 4px; display: block; }
.site-row p { font-family: var(--serif); font-size: 16px; line-height: 1.55; color: var(--ink); margin: 0; }
.site-row .ref { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--navy); white-space: nowrap; margin-left: 8px; }
.gallery { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.gallery figure { margin: 0; }
.gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 6px; display: block; }
.gallery figcaption { font-family: var(--sans); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--ink-soft); margin-top: 8px; }
.bookshop { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 36px 24px; }
.bk { display: flex; flex-direction: column; }
.bk-cover { width: 100%; aspect-ratio: 2/3; object-fit: cover; border-radius: 4px; box-shadow: 0 12px 32px rgba(9,30,48,0.22); display: block; margin-bottom: 16px; background: var(--paper); }
.bk h3 { font-family: var(--serif); font-weight: 600; font-size: 18px; line-height: 1.3; margin: 0 0 4px; color: var(--ink); }
.bk-auth { font-family: var(--sans); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--gold-text); margin-bottom: 8px; }
.bk p { font-family: var(--serif); font-size: 14px; line-height: 1.55; color: var(--ink-soft); margin: 0 0 10px; flex: 1; }
.bk-meta { font-family: var(--sans); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-soft); margin-bottom: 12px; }
.bk-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.bk-actions a { font-family: var(--sans); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; border: 1px solid var(--rule); border-radius: 4px; padding: 8px 12px; color: var(--navy); }
.bk-actions a:hover { border-color: var(--navy); }
.bk-actions a.buy { background: var(--navy); border-color: var(--navy); color: #fff; }
.bk-actions a.buy:hover { background: var(--navy-deep); }
.lit-feature { display: grid; grid-template-columns: minmax(0,1fr); gap: 32px; align-items: center; }
.lit-feature .bk-cover { max-width: 250px; margin-bottom: 0; }
@media (min-width: 768px) {
  .sites { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bookshop { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .lit-feature { grid-template-columns: 250px minmax(0,1fr); gap: 52px; }
}
@media (min-width: 1024px) {
  .gallery { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (prefers-color-scheme: dark) {
  .bk-actions a.buy { background: #0C5682; border-color: #0C5682; }
}

/* ============ TOURS photo-led rework (operator: lead with the photos) ============ */
.page-hero.photo { padding: 0; position: relative; min-height: 440px; display: flex; align-items: flex-end; overflow: hidden; }
.ph-img { position: absolute; inset: 0; z-index: 0; }
.ph-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; display: block; } /* 42% frames the dusk hero: minaret and Dome in band, plaza cropped */
.ph-scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(6,27,45,0.18) 30%, rgba(6,27,45,0.82) 100%); }
.page-hero.photo .page-hero-inner { position: relative; z-index: 2; width: 100%; padding: 140px 20px 36px; }
.hero-paused { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; border: 1px solid rgba(229,196,109,0.65); border-radius: 999px; padding: 9px 18px; font-family: var(--sans); font-size: 10.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-light); }
.hero-paused:hover { border-color: var(--gold-light); color: #fff; }

/* Footsteps of Paul — key-stops strip (2026-08-29). Neutral tiles render
   until the operator's photographs arrive at /images/tours/paul-*.jpg. */
.paul-stops { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 28px; }
.paul-stop { margin: 0; }
.paul-stop .ps-ph { aspect-ratio: 4 / 3; display: grid; place-items: center; background: var(--card); border: 1px solid var(--rule); border-radius: 6px; color: var(--gold); font-size: 20px; }
.paul-stop img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; display: block; }
.paul-stop figcaption { margin-top: 8px; font-family: var(--sans); font-size: 11px; line-height: 1.5; color: var(--ink-soft); }
.paul-stop figcaption strong { display: block; font-size: 12px; letter-spacing: 0.04em; color: var(--ink); }
@media (min-width: 768px) {
  .paul-stops { grid-template-columns: repeat(4, 1fr); }
}
.mosaic { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; grid-auto-flow: dense; }
.mosaic figure { margin: 0; position: relative; overflow: hidden; border-radius: 4px; }
.mosaic img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: transform 0.35s ease; }
.mosaic figure:hover img { transform: scale(1.04); }
.mosaic figcaption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 26px 12px 10px; background: linear-gradient(180deg, rgba(6,27,45,0) 0%, rgba(6,27,45,0.72) 100%); color: #fff; font-family: var(--sans); font-size: 9.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.mosaic .big { grid-column: span 2; grid-row: span 2; }
.mosaic .big img { aspect-ratio: auto; }
@media (min-width: 768px) {
  .page-hero.photo { min-height: 560px; }
  .page-hero.photo .page-hero-inner { padding: 200px 32px 48px; }
  .mosaic { gap: 12px; }
}
@media (min-width: 1024px) {
  .mosaic { grid-template-columns: repeat(4, minmax(0,1fr)); }
}

/* ============ BATCH 4: partner, auth, devotional, radio, search (2026-07-05) ============ */
.give-box { background: var(--card); border: 1px solid var(--rule); border-top: 4px solid var(--gold); border-radius: 8px; padding: 30px 26px; box-shadow: 0 16px 44px rgba(9,30,48,0.10); }
.give-tabs { display: flex; gap: 8px; margin-bottom: 22px; }
.give-tabs a { flex: 1; text-align: center; font-family: var(--sans); font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; padding: 12px 10px; border: 1px solid var(--rule); border-radius: 6px; color: var(--ink-soft); }
.give-tabs a.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.amounts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
.amounts a { text-align: center; font-family: var(--serif); font-weight: 600; font-size: 19px; padding: 14px 8px; border: 1px solid var(--rule); border-radius: 6px; color: var(--ink); }
.amounts a.on { border-color: var(--gold-text); background: rgba(201,155,63,0.10); color: var(--ink); box-shadow: inset 0 0 0 1px var(--gold); }
.amounts a:hover { border-color: var(--navy); }
.amounts button { text-align: center; font-family: var(--serif); font-weight: 600; font-size: 19px; padding: 14px 8px; border: 1px solid var(--rule); border-radius: 6px; color: var(--ink); background: var(--card); cursor: pointer; }
.amounts button.on { border-color: var(--gold-text); background: rgba(201,155,63,0.10); box-shadow: inset 0 0 0 1px var(--gold); }
.amounts button:hover { border-color: var(--navy); }
/* checkout form sections: clear groups so the form doesn't blend together */
.give-sec { border-top: 1px solid var(--rule); margin-top: 26px; padding-top: 20px; }
.give-sec:first-of-type { border-top: none; margin-top: 8px; padding-top: 0; }
.give-sec-head { font-family: var(--sans); font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.14em; color: var(--gold-text); margin-bottom: 4px; }
.give-note { font-family: var(--sans); font-size: 11px; color: var(--ink-soft); margin: 12px 0 18px; line-height: 1.55; }
.btn-give { display: block; width: 100%; text-align: center; background: var(--gold); color: #1B2733; font-family: var(--sans); font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; padding: 15px 20px; border-radius: 6px; border: 0; cursor: pointer; }
.btn-give:hover { background: var(--gold-light); }
.partner-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 44px; align-items: start; }
.auth-wrap { max-width: 440px; margin: 0 auto; padding: 56px 20px 90px; }
.auth-card { background: var(--card); border: 1px solid var(--rule); border-top: 4px solid var(--gold); border-radius: 8px; padding: 32px 28px; box-shadow: 0 16px 44px rgba(9,30,48,0.10); }
.auth-card h1 { font-family: var(--serif); font-weight: 400; font-size: 26px; margin: 0 0 6px; color: var(--ink); }
.auth-sub { font-family: var(--serif); font-size: 14.5px; color: var(--ink-soft); line-height: 1.55; margin: 0 0 18px; }
.auth-alt { text-align: center; font-family: var(--sans); font-size: 12px; color: var(--ink-soft); margin-top: 18px; }
.acct-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
.acct-card { background: var(--card); border: 1px solid var(--rule); border-radius: 8px; padding: 24px; }
.acct-card h3 { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; color: var(--ink-soft); margin: 0 0 14px; }
.acct-big { font-family: var(--serif); font-size: 30px; color: var(--ink); }
.acct-line { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; border-top: 1px dotted var(--rule); font-family: var(--serif); font-size: 15px; color: var(--ink); flex-wrap: wrap; }
.acct-line .sub { font-family: var(--sans); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); display: block; margin-top: 2px; }
.devo-card { background: var(--card); border: 1px solid var(--rule); border-top: 4px solid var(--gold); border-radius: 8px; padding: 40px 34px; max-width: 760px; box-shadow: 0 16px 44px rgba(9,30,48,0.10); }
.devo-date { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2em; color: var(--gold-text); margin-bottom: 10px; }
.devo-title { font-family: var(--serif); font-weight: 400; font-size: 30px; margin: 0 0 18px; color: var(--ink); }
.live-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #C0392B; margin-right: 8px; animation: livepulse 1.6s infinite; }
@keyframes livepulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
.rp-recent-list { list-style: none; margin: 8px 0 0; padding: 0; }
.rp-recent-list li { padding: 8px 0; border-bottom: 1px dotted var(--rule); font-family: var(--serif); font-size: 14.5px; }
.radio-player.is-live .rp-live { color: #7CE08A; }
.radio-player { background: #0D1B27; border-radius: 10px; padding: 34px 30px; color: #fff; max-width: 760px; }
.rp-live { font-family: var(--sans); font-size: 10.5px; font-weight: 800; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-light); }
.rp-now { font-family: var(--serif); font-size: 24px; margin: 12px 0 4px; }
.rp-sub { font-family: var(--sans); font-size: 12px; color: rgba(255,255,255,0.55); margin-bottom: 20px; }
.rp-controls { display: flex; align-items: center; gap: 16px; }
.rp-play { width: 62px; height: 62px; border-radius: 50%; background: var(--gold); color: #1B2733; display: flex; align-items: center; justify-content: center; font-size: 22px; padding-left: 4px; flex: none; }
.rp-bar { flex: 1; height: 5px; border-radius: 3px; background: rgba(255,255,255,0.18); position: relative; overflow: hidden; }
.rp-bar::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 100%; background: linear-gradient(90deg, transparent, rgba(229,196,109,0.85), transparent); animation: rpflow 3s linear infinite; }
@keyframes rpflow { from { transform: translateX(-100%);} to { transform: translateX(100%);} }
.mosaic.plain img { aspect-ratio: 4/3; }
.mosaic.plain figure:hover img { transform: none; }
@media (min-width: 768px) {
  .acct-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (min-width: 1024px) {
  .partner-grid { grid-template-columns: minmax(0,1.25fr) 420px; gap: 64px; }
}
@media (prefers-color-scheme: dark) {
  .give-tabs a.on { background: #0C5682; border-color: #0C5682; }
  .amounts a.on { background: rgba(201,155,63,0.14); }
}

/* ============ NEWSLETTER ARCHIVE (/newsletters) ============ */
.nl-featured { display: flex; justify-content: space-between; align-items: center; gap: 24px; background: var(--card); border: 1px solid var(--rule); border-top: 4px solid var(--gold); border-radius: 6px; padding: 26px 30px; margin-bottom: 36px; transition: all 0.18s; }
.nl-featured:hover { transform: translateY(-2px); box-shadow: 0 18px 44px rgba(12,86,130,0.14); }
.nl-featured-eyebrow { display: block; font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.24em; color: var(--gold-text); margin-bottom: 8px; }
.nl-featured-title { display: block; font-family: var(--serif); font-weight: 600; font-size: 27px; color: var(--ink); line-height: 1.1; margin-bottom: 8px; }
.nl-featured-note { display: block; font-family: var(--serif); font-size: 14.5px; line-height: 1.5; color: var(--ink-soft); }
.nl-featured .link-caps { flex-shrink: 0; }
.nl-years { border-top: 2px solid var(--rule); }
.nl-year { display: grid; grid-template-columns: 96px 1fr; gap: 20px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--rule); }
.nl-year-label { font-family: var(--serif); font-size: 22px; font-weight: 600; color: var(--ink); }
.nl-months { display: flex; flex-wrap: wrap; gap: 8px; }
.nl-month { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--navy); border: 1px solid var(--rule); border-radius: 4px; padding: 7px 13px; transition: all 0.15s; }
.nl-month:hover { border-color: var(--navy); background: var(--paper); }
@media (max-width: 720px) {
  .nl-featured { flex-direction: column; align-items: flex-start; gap: 14px; }
  .nl-year { grid-template-columns: 1fr; gap: 8px; padding: 14px 0; }
}

/* ============ RTL — the Hebrew locale (/he) ============
   One rule does the heavy lifting: under dir="rtl" the font TOKENS are
   redefined, so every component keeps its scale/weight but sets Hebrew-
   capable type (Frank Ruhl Libre carries both Hebrew and Latin). Flex and
   grid mirror automatically; only explicit left/right values need help. */
/* Frank Ruhl Libre renders visually smaller than Inter/Source Serif at
   equal px (operator report, measured 2026-07-10). Self-hosted aliases
   with size-adjust normalize the optical size at the FONT level, so every
   existing rule inherits the fix. Older browsers without size-adjust fall
   back to the unadjusted look — no regression. */
@font-face {
  font-family: 'FRL UI';
  src: url('/fonts/FrankRuhlLibre.woff2') format('woff2');
  font-weight: 300 900;
  font-display: swap;
  size-adjust: 115%;
}
@font-face {
  font-family: 'FRL Text';
  src: url('/fonts/FrankRuhlLibre.woff2') format('woff2');
  font-weight: 300 900;
  font-display: swap;
  size-adjust: 109%;
}
html[dir="rtl"] {
  --serif: 'FRL Text', 'Frank Ruhl Libre', 'Source Serif 4', serif;
  --sans: 'FRL UI', 'Frank Ruhl Libre', 'Inter', system-ui, sans-serif;
}
html[dir="rtl"] [class] { letter-spacing: 0; } /* tracking suits Latin caps, not Hebrew */
html[dir="rtl"] .teacher-name-he { text-align: right; }
html[dir="rtl"] .hero-mission em,
html[dir="rtl"] .section-head-title em,
html[dir="rtl"] .action-title em,
html[dir="rtl"] .radio-title em,
html[dir="rtl"] .partner em { font-style: normal; } /* italic is a Latin convention */
html[dir="rtl"] .ltr { direction: ltr; unicode-bidi: isolate; } /* addresses, call signs, times */

/* the watch-listen theater stage: the premiere plays in place (2026-09-01) */
.tp-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
