/**
 * Regenerate Cascadia - Home
 * Modular CSS partial from rc-template-styles.css
 * Version: v1.5-a11y2.5b
 * Date: 2026-04-25
 * Generated by Claude (S147 Sprint 4, A11Y-09 Batches F and G, A11Y-10 full-scope tokenization repair and design harmonization, A11Y-10d WAVE-driven contrast fixes, A11Y-2.5b cream-surface meta contrast)
 *
 * Sections: 42 (HOME PAGE)
 *
 * A11Y-2.5b (2026-04-25): Two contrast fixes on cream surfaces flagged
 *   by WAVE post-A11Y-10d. Both selectors used --rc-on-light-meta on
 *   --rc-cream and read 4.29:1, failing WCAG 1.4.3 AA. Pattern 3
 *   (surface-aware meta colors) extended to cream surfaces alongside
 *   pale-mint and stone.
 *     .rch-sb__org color: var(--rc-on-light-meta) to var(--rc-on-pale-
 *       meta). 4.29:1 to 6.06:1 on cream. AA pass with margin.
 *     .rch-team__avatar-location color: var(--rc-on-light-meta) to
 *       var(--rc-on-pale-meta). Same. (Image 4 was originally
 *       mis-attributed to .rch-team__avatar-role in the A11Y-10d index
 *       open-issues entry; live verification in this session showed the
 *       flag was on the location line.)
 *   Pattern 3 update: cream is now in the --rc-on-pale-meta surface
 *   family. See RC_A11Y_CONTRAST_PATTERNS.md v1.1 (next revision) for
 *   the locked update.
 *
 * A11Y-10d (2026-04-24): WAVE post-deploy verification fixes. Three
 *   contrast failures resolved at the CSS layer plus three new classes
 *   to replace inline styles in parts/home-page.php v4.1. Pairs with
 *   rc-core.css v1.6-a11y10d which retunes --rc-salmon to a verified
 *   AA-passing value and adds --rc-on-dark-link and --rc-on-pale-meta
 *   surface-aware tokens.
 *     .rch-ev-all a color: var(--rc-gold) to var(--rc-on-dark-link).
 *       Gold-on-forest 3.77:1 (fails AA) to lichen-on-forest 11.2:1
 *       (AAA). border-bottom updated to lichen RGB. hover border to
 *       on-dark-link.
 *     .rch-navcard__cat color: var(--rc-on-light-meta) to var(--rc-on-
 *       pale-meta). 4.33:1 (fails AA on pale-mint) to 6.4:1 (AA).
 *     .rch-ds4re__title em (new rule): color var(--rc-salmon); font-
 *       style italic. Replaces inline style="color:#D4714E;font-style:
 *       italic;" in parts/home-page.php (was reading 2.86:1 on stone
 *       with old salmon hardcoded).
 *     .rch-sb__text--on-dark (new modifier): color var(--rc-on-dark-
 *       secondary). Replaces inline style="color:rgba(246,243,237,.6)"
 *       on the empty-events fallback in the dark-green sidebar variant.
 *       4.29:1 to approximately 6.8:1.
 *     .rch-partners__empty + .rch-partners__empty a (new rules):
 *       font-family Jost, font-size --fs-500, font-weight 300, color
 *       --rc-on-light-meta, text-align center, margin-top 18px; anchor
 *       inherits color --rc-on-light-strong. Replaces full inline
 *       style on partners empty-state paragraph and its inline anchor.
 *
 * A11Y-10 (2026-04-24): Full-scope Phase 2.5 tokenization repair under the
 *   RC_A11Y_TOKEN_HYGIENE.md v1.0 protocol, combined with Brandon's design
 *   harmonization direction. One-push deployment with post-deploy visual
 *   review. Covers Batches F and G repair (Phases 2, 3), utilities (Phase
 *   4), Batch H Part 1 sidebar and newsletter (Phase 5), Part 2 about,
 *   gallery, history, navcards (Phase 6), and Part 3 team, partners,
 *   lightbox (Phase 7). See A11Y-10 Log for per-selector decision table.
 *   Requires rc-core.css v1.4-a11y10 for #23 token additions.
 *
 *   New tokens consumed: --rc-*-rgb companions for rgba() overlays, borders,
 *   and hairlines without hardcoded triplets; --rc-ui-border-dark-hover
 *   and --rc-ui-border-light-hover for hover-state borders; --rc-surface-
 *   stone and --rc-surface-pale-mint for DS4RE and About/Partner/Team
 *   avatar backgrounds.
 *
 *   Design direction from Brandon at A11Y-10 open:
 *   - Hero title em bolded to 700 (was 400 italic mint).
 *   - Hero eyebrow bumped one size (--fs-300 to --fs-400); subtitle bumped
 *     (--fs-700 to --fs-800); hero .rch-btn bumped to --fs-300 via a
 *     .rch-hero .rch-btn scope override.
 *   - Hero title clamp bumped (44-78px to 48-86px); display exception
 *     per hygiene protocol.
 *   - Hero social icons raised to 2px border for prominence; base .rch-si
 *     raised from 1px to 1.5px.
 *   - Stats band moved to solid var(--rc-deep-forest) background; padding
 *     raised 22px to 32px; cells text-align:center.
 *
 *   Display-heading clamp exceptions retained per hygiene protocol (hero
 *   title 48-86px, stat num 20-34px, showcase title 22-34px, DS4RE title
 *   26-44px, updates heading 28-44px). Off-scale snap decisions: post-card
 *   title and navcard title 17px to --fs-800; prog title 21px to --fs-900;
 *   newsletter heading and about heading 28px to --fs-1100; history heading
 *   and team cta heading 26px to --fs-1000; lightbox prev/next 22px to
 *   --fs-1000.
 *
 * A11Y-09 (2026-04-24): Phase 2.5 Batches F and G deployed with tokenization
 *   hygiene lapse identified mid-session. See A11Y-09 Log for root cause.
 *   Five of six body-text font-size lapses repaired mid-session. Remaining
 *   repair (.rch-ds4re__sub 14px to --fs-500) landed in A11Y-10 Phase 3.
 */

/* =====================================================================
   SECTION 42: HOME PAGE
   Source: parts/home-page.php v4.0
   Extracted: Session 89, March 14, 2026
   Generated by Claude
   Home page components: hero with stats band, Landscape Showcase
   (YouTube embeds), DS4RE section, Recent Updates grid with sidebar
   (about card, events card), newsletter band (WPForms overrides),
   programs grid, about section with gallery and lightbox, team
   avatars, partners grid, and responsive breakpoints.
   All colors and sizes reference design tokens from rc-core.css.
   .rch- prefix throughout (RC Home).
   ===================================================================== */

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

/* Utilities */
.rch-eyebrow { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-canopy); margin:0 0 20px; display:flex; align-items:center; gap:14px; }
.rch-eyebrow::after { content:''; flex:1; height:1px; background:rgba(var(--rc-forest-rgb),0.1); }
.rch-eyebrow--light { color:var(--rc-moss); }
.rch-eyebrow--light::after { background:rgba(var(--rc-cream-rgb),0.12); }
.rch-eyebrow--center { justify-content:center; }
.rch-eyebrow--center::after { display:none; }

.rch-btn { font-family:'Inconsolata',monospace; font-size:var(--fs-200); font-weight:500; letter-spacing:.18em; text-transform:uppercase; padding:13px 24px; display:inline-block; text-decoration:none!important; transition:all .2s; line-height:1; vertical-align:middle; cursor:pointer; }
.rch-btn--coral { background:var(--rc-salmon); color:var(--rc-cream)!important; border:2px solid var(--rc-salmon); }
.rch-btn--coral:hover { background:var(--rc-salmon-dark); border-color:var(--rc-salmon-dark); }
.rch-btn--ghost { background:transparent; color:var(--rc-cream)!important; border:1px solid var(--rc-ui-border-dark); }
.rch-btn--ghost:hover { background:rgba(var(--rc-cream-rgb),0.07); border-color:var(--rc-ui-border-dark-hover); }
.rch-btn--ghost-dk { background:transparent; color:var(--rc-deep-forest)!important; border:1px solid rgba(var(--rc-forest-rgb),0.3); }
.rch-btn--ghost-dk:hover { background:rgba(var(--rc-forest-rgb),0.04); border-color:var(--rc-ui-border-light-hover); }

/* Social icons */
.rch-si { width:36px; height:36px; border-radius:50%; border:1.5px solid rgba(var(--rc-cream-rgb),0.25); display:flex; align-items:center; justify-content:center; text-decoration:none!important; transition:all .2s; flex-shrink:0; }
.rch-hero__social .rch-si { color:var(--rc-moss); border:2px solid rgba(var(--rc-moss-rgb),0.35); }
.rch-hero__social .rch-si:hover { border-color:var(--rc-moss); background:rgba(var(--rc-moss-rgb),0.1); }

/* A11Y-09 Batch F: Hero focus override. Dark surface requires cream outline.
   Canopy baseline from rc-core.css fails 2.6:1 UI contrast on deep-forest
   per WCAG 1.4.11. Cream at 13.68:1 clears the floor. */
.rch-hero .rch-btn:focus-visible,
.rch-hero__social .rch-si:focus-visible { outline-color:var(--rc-cream); }
.rch-si svg[stroke] { fill:none; stroke:currentColor; }
.rch-si svg:not([stroke]) { fill:currentColor; stroke:none; }
.rch-si--dk { color:var(--rc-forest); border-color:rgba(var(--rc-forest-rgb),0.2); }
.rch-si--dk:hover { background:rgba(var(--rc-forest-rgb),0.06); border-color:rgba(var(--rc-forest-rgb),0.4); }

/* Hero */
.rch-hero { position:relative; min-height:min(calc(100vh - 72px), 640px); background-size:cover; background-position:center center; background-color:var(--rc-deep-forest); width:100vw; margin-left:calc(-50vw + 50%); overflow:hidden; }
.rch-hero__veil { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(var(--rc-deep-forest-rgb),0.82) 0%,rgba(var(--rc-deep-forest-rgb),0.5) 50%,rgba(var(--rc-deep-forest-rgb),0.9) 100%); display:flex; flex-direction:column; }
.rch-hero__content { flex:1; display:flex; align-items:flex-end; padding:40px 6% 52px; }
.rch-hero__inner { width:100%; max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr auto; gap:32px; align-items:flex-end; }
.rch-hero__kicker { font-family:'Inconsolata',monospace; font-size:var(--fs-400); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-gold); margin:0 0 14px; }
.rch-hero__title { font-family:'Cormorant Garamond',serif; font-size:clamp(44px,6.4vw,80px); font-weight:700; color:var(--rc-cream)!important; line-height:.93; margin:0 0 18px; }
.rch-hero__title em { display:block; font-style:italic; font-weight:700; font-size:.72em; color:var(--rc-lichen); }
.rch-hero__sub { font-family:'Jost',sans-serif; font-size:var(--fs-800); font-weight:300; color:var(--rc-lichen); line-height:1.7; margin:0 0 28px; max-width:500px; }
.rch-hero__ctas { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.rch-hero__social { display:flex; flex-direction:column; gap:8px; align-items:center; align-self:flex-start; padding-top:4px; }

/* A11Y-10: Hero button size bump per design brief. Scoped to hero to keep
   .rch-btn base (--fs-200) unchanged across DS4RE and other surfaces. */
.rch-hero .rch-btn { font-size:var(--fs-300); }

.rch-stats-band { background:var(--rc-deep-forest); border-top:1px solid var(--rc-ui-border-dark); padding:0 6%; }
.rch-stats { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); padding:32px 0; }
.rch-stat { padding:0 28px; border-right:1px solid var(--rc-ui-border-dark); text-align:center; }
.rch-stat:first-child { padding-left:0; }
.rch-stat:last-child { border-right:none; }
.rch-stat__num { font-family:'Cormorant Garamond',serif; font-size:clamp(20px,2.5vw,34px); font-weight:700; color:var(--rc-cream); display:block; line-height:1; }
.rch-stat__lbl { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-lichen); margin-top:6px; display:block; }

/* Showcase */
.rch-showcase { background:var(--rc-forest); padding:48px 6%; }
.rch-showcase__inner { max-width:1100px; margin:0 auto; text-align:center; }
.rch-showcase__title { font-family:'Cormorant Garamond',serif; font-size:clamp(22px,2.8vw,34px); font-weight:700; font-style:italic; color:var(--rc-cream)!important; margin:0 0 6px; line-height:1.15; }
.rch-showcase__sub { font-family:'Jost',sans-serif; font-size:var(--fs-500); font-weight:300; color:var(--rc-on-dark-secondary); margin:0 0 24px; }
.rch-showcase__embeds { display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.rch-showcase__embeds > div { text-align:center; }
.rch-embed-day { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-moss); display:block; text-align:center; margin-bottom:8px; }
.rch-embed-wrap { position:relative; aspect-ratio:16/9; max-height:180px; max-width:440px; margin:0 auto; }
.rch-embed-wrap iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
.rch-embed-cap { font-family:'Inconsolata',monospace; font-size:var(--fs-300); letter-spacing:.25em; text-transform:uppercase; color:var(--rc-on-dark-secondary); margin-top:7px; display:block; text-align:center; }

/* DS4RE */
.rch-ds4re { background:var(--rc-surface-stone); padding:44px 6%; }
.rch-ds4re__inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.4fr 0.9fr; gap:52px; align-items:center; }
.rch-ds4re__tag { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-canopy); margin:0 0 10px; display:block; }
.rch-ds4re__title { font-family:'Cormorant Garamond',serif; font-size:clamp(26px,3.5vw,44px); font-weight:700; font-style:italic; color:var(--rc-deep-forest); line-height:1.1; margin:0 0 12px; }
.rch-ds4re__title em { color:var(--rc-salmon); font-style:italic; }
.rch-ds4re__sub { font-family:'Jost',sans-serif; font-size:var(--fs-500); font-style:italic; font-weight:400; color:var(--rc-canopy); margin:0 0 12px; line-height:1.5; }
.rch-ds4re__body { font-family:'Jost',sans-serif; font-size:var(--fs-700); font-weight:300; color:var(--rc-canopy); line-height:1.72; margin:0 0 22px; }
.rch-ds4re__ctas { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.rch-ds4re__img { overflow:hidden; display:flex; align-items:center; justify-content:center; }
.rch-ds4re__img img { width:100%; max-height:300px; object-fit:cover; display:block; }

/* Recent Updates */
.rch-updates { background:#fff; padding:52px 6%; }
.rch-updates__grid { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 300px; gap:44px; align-items:start; }
.rch-updates__heading { font-family:'Cormorant Garamond',serif; font-size:clamp(28px,3.5vw,44px); font-weight:700; font-style:italic; color:var(--rc-deep-forest); margin:0 0 24px; line-height:1.1; }
.rch-posts-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.rch-post-card { background:#fff; border:none; text-decoration:none!important; display:block; transition:background .2s; overflow:hidden; }
.rch-post-card:hover { background:var(--rc-warm-white); }
.rch-post-card__img { aspect-ratio:3/2; overflow:hidden; position:relative; }
.rch-post-card__img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.rch-post-card:hover .rch-post-card__img img { transform:scale(1.03); }
.rch-post-card__ph { aspect-ratio:3/2; position:relative; background:linear-gradient(150deg,var(--rc-canopy) 0%,var(--rc-moss) 100%); }
.rch-post-card__badge { position:absolute; bottom:8px; left:8px; font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-cream); background:rgba(var(--rc-deep-forest-rgb),0.55); padding:3px 8px; backdrop-filter:blur(2px); }
.rch-post-card__body { padding:12px 0 14px; }
.rch-post-card__title { font-family:'Cormorant Garamond',serif; font-size:var(--fs-800); font-weight:700; font-style:normal; color:var(--rc-deep-forest); line-height:1.25; margin:0 0 5px; }
.rch-post-card__excerpt { font-family:'Jost',sans-serif; font-size:var(--fs-500); font-weight:300; color:var(--rc-on-light-meta); line-height:1.6; margin:0 0 6px; }
.rch-post-card__date { font-family:'Inconsolata',monospace; font-size:var(--fs-300); color:var(--rc-on-light-meta); }
.rch-all-updates-wrap { overflow:hidden; margin-top:16px; }
.rch-all-updates-btn { float:right; font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-forest)!important; text-decoration:none!important; border:1px solid rgba(var(--rc-forest-rgb),0.3); padding:14px 22px; display:inline-block; transition:all .2s; }
.rch-all-updates-btn:hover { background:rgba(var(--rc-forest-rgb),0.05); border-color:var(--rc-forest); }

/* Sidebar */
.rch-sidebar { display:flex; flex-direction:column; gap:12px; }
.rch-sb { padding:22px 20px; }
.rch-sb--cream    { background:var(--rc-cream); }
.rch-sb--dk-green { background:var(--rc-forest); }
.rch-sb__label { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; margin:0 0 14px; display:flex; align-items:center; gap:12px; }
.rch-sb--cream .rch-sb__label    { color:var(--rc-canopy); }
.rch-sb--cream .rch-sb__label::after    { content:''; flex:1; height:1px; background:rgba(var(--rc-forest-rgb),0.1); }
.rch-sb--dk-green .rch-sb__label { color:var(--rc-moss); }
.rch-sb--dk-green .rch-sb__label::after { content:''; flex:1; height:1px; background:rgba(var(--rc-moss-rgb),0.18); }
.rch-sb__heading { font-family:'Cormorant Garamond',serif; font-size:var(--fs-900); font-weight:700; color:var(--rc-deep-forest); margin:0 0 8px; line-height:1.2; }
.rch-sb__text { font-family:'Jost',sans-serif; font-size:var(--fs-400); font-weight:300; color:var(--rc-canopy); line-height:1.65; margin:0 0 11px; }
.rch-sb__text--on-dark { color:var(--rc-on-dark-secondary); }
.rch-sb__org { font-family:'Inconsolata',monospace; font-size:var(--fs-300); letter-spacing:.06em; color:var(--rc-on-pale-meta); line-height:1.55; margin:0 0 12px; }
.rch-sb__social { display:flex; gap:6px; flex-wrap:wrap; }
.rch-ev-list { list-style:none; padding:0; margin:0 0 12px; }
.rch-ev-list li { display:grid; grid-template-columns:40px 1fr; gap:10px; padding:9px 0; border-bottom:1px solid rgba(var(--rc-cream-rgb),0.15); align-items:start; }
.rch-ev-list li:first-child { border-top:1px solid rgba(var(--rc-cream-rgb),0.15); }
.rch-ev-cal { text-align:center; padding:5px 2px; background:rgba(var(--rc-deep-forest-rgb),0.4); }
.rch-ev-cal__m { font-family:'Inconsolata',monospace; font-size:var(--fs-300); letter-spacing:.1em; text-transform:uppercase; color:var(--rc-gold); display:block; }
.rch-ev-cal__d { font-family:'Cormorant Garamond',serif; font-size:var(--fs-800); font-weight:700; color:var(--rc-cream); display:block; line-height:1.1; }
.rch-ev-info__title { font-family:'Jost',sans-serif; font-size:var(--fs-400); font-weight:400; color:var(--rc-lichen); margin:0 0 2px; line-height:1.35; }
.rch-ev-info__title a { color:var(--rc-lichen)!important; text-decoration:none!important; }
.rch-ev-info__title a:hover { color:var(--rc-cream)!important; }
.rch-ev-info__time { font-family:'Inconsolata',monospace; font-size:var(--fs-300); color:var(--rc-on-dark-secondary); }
.rch-ev-all a { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--rc-on-dark-link)!important; text-decoration:none!important; border-bottom:1px solid rgba(var(--rc-lichen-rgb),0.4); padding-bottom:2px; }
.rch-ev-all a:hover { border-color:var(--rc-on-dark-link); }

/* Newsletter */
.rch-newsletter { background:var(--rc-forest); padding:36px 6%; }
.rch-newsletter__inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:280px 1fr; gap:72px; align-items:center; }
.rch-newsletter__heading { font-family:'Cormorant Garamond',serif; font-size:var(--fs-1100); font-weight:700; font-style:italic; color:var(--rc-cream)!important; margin:0 0 10px; line-height:1.2; }
.rch-newsletter__body { font-family:'Jost',sans-serif; font-size:var(--fs-500); font-weight:300; color:var(--rc-on-dark-secondary); line-height:1.65; margin:0; }
.rch-newsletter .wpforms-container { margin:0!important; padding:0!important; }
.rch-newsletter .wpforms-form .wpforms-field-container { display:grid!important; grid-template-columns:1fr 1fr!important; gap:8px!important; margin:0 0 8px!important; }
.rch-newsletter .wpforms-form .wpforms-field-name   { grid-column:1; grid-row:1; }
.rch-newsletter .wpforms-form .wpforms-field-email  { grid-column:2; grid-row:1; }
.rch-newsletter .wpforms-form .wpforms-field-select { grid-column:1 / -1; grid-row:2; }
.rch-newsletter .wpforms-form .wpforms-field { margin:0!important; padding:0!important; }
.rch-newsletter .wpforms-form .wpforms-submit-container { margin:0!important; padding:0!important; }
.rch-newsletter .wpforms-form .wpforms-field-label { font-family:'Inconsolata',monospace!important; font-size:var(--fs-300)!important; font-weight:500!important; letter-spacing:.25em!important; text-transform:uppercase!important; color:var(--rc-on-dark-secondary)!important; margin-bottom:5px!important; display:block!important; }
.rch-newsletter .wpforms-form .wpforms-field-sublabel { display:none!important; }
.rch-newsletter .wpforms-form input[type="text"],
.rch-newsletter .wpforms-form input[type="email"],
.rch-newsletter .wpforms-form select { font-family:'Jost',sans-serif!important; font-size:var(--fs-400)!important; font-weight:300!important; padding:10px 14px!important; background:rgba(var(--rc-cream-rgb),0.07)!important; border:1px solid var(--rc-ui-border-dark)!important; color:var(--rc-cream)!important; border-radius:0!important; width:100%!important; box-sizing:border-box!important; outline:none!important; }
.rch-newsletter .wpforms-form input::placeholder { color:rgba(var(--rc-cream-rgb),0.35)!important; }
.rch-newsletter .wpforms-form input:focus,
.rch-newsletter .wpforms-form select:focus { border-color:var(--rc-moss)!important; }
.rch-newsletter .wpforms-form select option { background:var(--rc-forest)!important; color:var(--rc-cream)!important; }
.rch-newsletter .wpforms-form button[type="submit"],
.rch-newsletter .wpforms-form .wpforms-submit { font-family:'Inconsolata',monospace!important; font-size:var(--fs-300)!important; font-weight:500!important; letter-spacing:.25em!important; text-transform:uppercase!important; background:var(--rc-salmon)!important; color:var(--rc-cream)!important; border:none!important; border-radius:0!important; padding:10px 22px!important; cursor:pointer; transition:background .2s; white-space:nowrap; display:inline-block; }
.rch-newsletter .wpforms-form button[type="submit"]:hover,
.rch-newsletter .wpforms-form .wpforms-submit:hover { background:var(--rc-salmon-dark)!important; }

/* Programs */
.rch-programs { background:var(--rc-deep-forest); padding:44px 6%; }
.rch-programs__inner { max-width:1100px; margin:0 auto; }
.rch-programs__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:8px; }
.rch-prog { background:rgba(var(--rc-cream-rgb),0.03); border:1px solid var(--rc-ui-border-dark); padding:36px 28px; text-decoration:none!important; display:block; transition:all .2s; }
.rch-prog:hover { background:rgba(var(--rc-cream-rgb),0.06); border-color:var(--rc-ui-border-dark-hover); }
.rch-prog__tag { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-moss); margin-bottom:9px; display:block; }
.rch-prog__title { font-family:'Cormorant Garamond',serif; font-size:var(--fs-900); font-weight:700; font-style:italic; color:var(--rc-cream)!important; margin:0 0 9px; line-height:1.2; display:block; }
.rch-prog__desc { font-family:'Jost',sans-serif; font-size:var(--fs-500); font-weight:300; color:var(--rc-on-dark-secondary); line-height:1.65; margin:0 0 14px; }
.rch-prog__cta { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-gold); }

/* A11Y-09 Batch G: Programs focus override. Dark surface requires cream
   outline; same rationale as hero override. */
.rch-programs .rch-prog:focus-visible { outline-color:var(--rc-cream); }

/* About + Gallery */
.rch-about { background:var(--rc-surface-pale-mint); padding:60px 6%; }
.rch-about__inner { max-width:1100px; margin:0 auto; }
.rch-about__top { display:grid; grid-template-columns:1fr 1.15fr; gap:52px; align-items:start; }
.rch-about__heading { font-family:'Cormorant Garamond',serif; font-size:var(--fs-1100); font-weight:700; font-style:italic; color:var(--rc-deep-forest); margin:0 0 12px; line-height:1.2; }
.rch-about__text { font-family:'Jost',sans-serif; font-size:var(--fs-500); font-weight:300; color:var(--rc-canopy); line-height:1.75; margin:0 0 8px; }
.rch-about__mission-label { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-canopy); margin:16px 0 0; }
.rch-about__mission-block { background:rgba(var(--rc-canopy-rgb),0.08); border-left:3px solid var(--rc-canopy); padding:13px 16px; margin:8px 0 0; }
.rch-about__mission { font-family:'Jost',sans-serif; font-size:var(--fs-600); font-weight:400; font-style:italic; color:var(--rc-forest); line-height:1.6; margin:0; }
.rch-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.rch-gallery__item { overflow:hidden; aspect-ratio:4/3; cursor:zoom-in; }
.rch-gallery__item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.rch-gallery__item:hover img { transform:scale(1.05); }
.rch-gallery__all { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--rc-forest)!important; text-decoration:none!important; border-bottom:none; display:block; text-align:right; margin-top:10px; }
.rch-gallery__all:hover { color:var(--rc-canopy)!important; }
.rch-about__history { margin:44px 0 20px; }
.rch-about__history-heading { font-family:'Cormorant Garamond',serif; font-size:var(--fs-1000); font-weight:700; font-style:italic; color:var(--rc-deep-forest); margin:0 0 10px; line-height:1.2; }
.rch-about__history-text { font-family:'Jost',sans-serif; font-size:var(--fs-500); font-weight:300; color:var(--rc-canopy); line-height:1.72; margin:0; }
.rch-navcards { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:20px; }
.rch-navcard { overflow:hidden; text-decoration:none!important; display:block; transition:opacity .2s; }
.rch-navcard:hover { opacity:.9; }
.rch-navcard__img { aspect-ratio:16/7; overflow:hidden; background:linear-gradient(135deg,var(--rc-forest) 0%,var(--rc-canopy) 60%,var(--rc-moss) 100%); }
.rch-navcard__img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.rch-navcard:hover .rch-navcard__img img { transform:scale(1.04); }
.rch-navcard__cat { font-family:'Inconsolata',monospace; font-size:var(--fs-300); letter-spacing:.25em; text-transform:uppercase; color:var(--rc-on-pale-meta); padding:8px 0 3px; display:block; }
.rch-navcard__title { font-family:'Cormorant Garamond',serif; font-size:var(--fs-800); font-weight:700; font-style:italic; color:var(--rc-deep-forest); display:block; line-height:1.2; margin-bottom:5px; }
.rch-navcard__action { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--rc-forest)!important; display:block; }

/* Team */
.rch-team { background:var(--rc-cream); padding:0; }
.rch-team__inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:300px 1fr; gap:0; align-items:stretch; }
.rch-team__cta-card { position:relative; background:var(--rc-forest); padding:52px 36px 52px 40px; display:flex; flex-direction:column; justify-content:center; gap:14px; }
.rch-team__cta-card::before { content:''; position:absolute; top:0; bottom:0; right:100%; width:100vw; background:var(--rc-forest); }
.rch-team__cta-eyebrow { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.25em; text-transform:uppercase; color:var(--rc-moss); margin:0; }
.rch-team__cta-heading { font-family:'Cormorant Garamond',serif; font-size:var(--fs-1000); font-weight:700; font-style:italic; color:var(--rc-cream)!important; line-height:1.2; margin:0; }
.rch-team__cta-body { font-family:'Jost',sans-serif; font-size:var(--fs-400); font-weight:300; color:var(--rc-on-dark-secondary); line-height:1.65; margin:0; }
.rch-team__btn { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.2em; text-transform:uppercase; padding:11px 18px; display:block; text-align:center; text-decoration:none!important; transition:all .2s; line-height:1; }
.rch-team__btn--outline { background:transparent; color:var(--rc-cream)!important; border:1px solid var(--rc-ui-border-dark); }
.rch-team__btn--outline:hover { background:rgba(var(--rc-cream-rgb),0.07); border-color:var(--rc-ui-border-dark-hover); }
.rch-team__btn--sage { background:transparent; color:var(--rc-moss)!important; border:1px solid rgba(var(--rc-moss-rgb),0.45); margin-top:4px; }
.rch-team__btn--sage:hover { background:rgba(var(--rc-moss-rgb),0.1); border-color:var(--rc-moss); }
.rch-team__right { padding:44px; display:flex; flex-direction:column; justify-content:center; }
.rch-team__section-heading { font-family:'Cormorant Garamond',serif; font-size:var(--fs-900); font-weight:700; font-style:normal; color:var(--rc-deep-forest); margin:0 0 20px; line-height:1.2; }
.rch-team__avatars { display:grid; grid-template-columns:repeat(4,1fr); gap:18px 14px; }
.rch-team__avatar { text-align:center; text-decoration:none!important; display:block; }
.rch-team__avatar-img { width:82px; height:82px; border-radius:50%; overflow:hidden; background:var(--rc-surface-pale-mint); border:2px solid rgba(var(--rc-lichen-rgb),0.5); margin:0 auto 7px; transition:border-color .2s; }
.rch-team__avatar:hover .rch-team__avatar-img { border-color:rgba(var(--rc-lichen-rgb),0.8); }
.rch-team__avatar-img img { width:100%; height:100%; object-fit:cover; display:block; }
.rch-team__avatar-name { font-family:'Jost',sans-serif; font-size:var(--fs-300); font-weight:500; color:var(--rc-deep-forest); line-height:1.25; margin-bottom:2px; }
.rch-team__avatar-role { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--rc-canopy); line-height:1.3; }
.rch-team__avatar-location { font-family:'Jost',sans-serif; font-size:var(--fs-200); font-weight:300; color:var(--rc-on-pale-meta); line-height:1.25; margin-top:1px; }

/* Partners */
.rch-partners { background:#fff; padding:52px 6%; }
.rch-partners__inner { max-width:1100px; margin:0 auto; }
.rch-partners__grid { display:flex; flex-wrap:wrap; justify-content:center; gap:4px; margin-top:8px; }
.rch-partner { display:flex; flex-direction:row; align-items:center; gap:12px; text-decoration:none!important; padding:14px 16px; background:transparent; transition:background .2s; min-width:200px; max-width:280px; }
.rch-partner:hover { background:rgba(var(--rc-forest-rgb),0.03); }
.rch-partner__logo { width:44px; height:44px; border-radius:50%; overflow:hidden; flex-shrink:0; background:var(--rc-surface-pale-mint); display:flex; align-items:center; justify-content:center; }
.rch-partner__logo img { width:100%; height:100%; object-fit:cover; display:block; }
.rch-partner__info { min-width:0; }
.rch-partner__name { font-family:'Cormorant Garamond',serif; font-size:var(--fs-600); font-weight:600; color:var(--rc-forest)!important; line-height:1.25; display:block; }
.rch-partner__web { font-family:'Inconsolata',monospace; font-size:var(--fs-300); font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--rc-river)!important; display:block; margin-top:2px; }
.rch-partners__empty { font-family:'Jost',sans-serif; font-size:var(--fs-500); font-weight:300; color:var(--rc-on-light-meta); text-align:center; margin-top:18px; }
.rch-partners__empty a { color:var(--rc-on-light-strong); }

/* Lightbox */
#rch-lb { display:none; position:fixed; inset:0; z-index:99999; background:rgba(var(--rc-deep-forest-rgb),0.94); align-items:center; justify-content:center; padding:24px; }
#rch-lb.is-open { display:flex; }
#rch-lb__img { max-width:90vw; max-height:88vh; object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,.6); opacity:0; transition:opacity .25s; }
#rch-lb.is-open #rch-lb__img { opacity:1; }
#rch-lb__close { position:fixed; top:20px; right:28px; font-family:'Inconsolata',monospace; font-size:var(--fs-200); font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--rc-on-dark-secondary); cursor:pointer; background:none; border:none; padding:8px; transition:color .2s; }
#rch-lb__close:hover { color:var(--rc-cream); }
#rch-lb__prev, #rch-lb__next { position:fixed; top:50%; transform:translateY(-50%); font-family:'Inconsolata',monospace; font-size:var(--fs-1000); color:var(--rc-on-dark-secondary); cursor:pointer; background:none; border:none; padding:16px; transition:color .2s; line-height:1; }
#rch-lb__prev:hover, #rch-lb__next:hover { color:var(--rc-cream); }
#rch-lb__prev { left:16px; }
#rch-lb__next { right:16px; }

/* Responsive */
@media(max-width:1024px){
    .rch-updates__grid { grid-template-columns:1fr; }
    .rch-about__top { grid-template-columns:1fr; }
    .rch-programs__grid { grid-template-columns:1fr 1fr; }
    .rch-navcards { grid-template-columns:repeat(2,1fr); }
    .rch-newsletter__inner { grid-template-columns:1fr; gap:28px; }
    .rch-newsletter .wpforms-form .wpforms-field-container { grid-template-columns:1fr 1fr!important; }
    .rch-team__inner { grid-template-columns:1fr; }
    .rch-team__cta-card::before { display:none; }
    .rch-team__right { padding:36px 6%; }
    .rch-ds4re__inner { grid-template-columns:1fr; }
}
@media(max-width:768px){
    .rch-hero__inner { grid-template-columns:1fr; }
    .rch-hero__social { flex-direction:row; flex-wrap:wrap; align-self:auto; margin-top:14px; }
    .rch-stats { grid-template-columns:repeat(2,1fr); }
    .rch-stat:nth-child(2) { border-right:none; }
    .rch-stat:nth-child(3) { padding-left:0; }
    .rch-showcase__embeds { grid-template-columns:1fr; }
    .rch-posts-grid { grid-template-columns:1fr 1fr; }
    .rch-programs__grid { grid-template-columns:1fr; }
    .rch-gallery { grid-template-columns:repeat(2,1fr); }
    .rch-navcards { grid-template-columns:repeat(2,1fr); }
    .rch-team__avatars { grid-template-columns:repeat(3,1fr); }
    .rch-newsletter__inner { grid-template-columns:1fr; }
    .rch-newsletter .wpforms-form .wpforms-field-container { grid-template-columns:1fr!important; }
    .rch-newsletter .wpforms-form .wpforms-field-name,
    .rch-newsletter .wpforms-form .wpforms-field-email  { grid-column:1; }
    .rch-newsletter .wpforms-form .wpforms-field-select { grid-column:1; }
}
@media(max-width:520px){
    .rch-hero__title { font-size:44px; }
    .rch-stats { grid-template-columns:1fr 1fr; }
    .rch-team__avatars { grid-template-columns:repeat(2,1fr); }
    .rch-navcards { grid-template-columns:1fr 1fr; }
    .rch-posts-grid { grid-template-columns:1fr; }
}
