/**
 * Regenerate Cascadia - Chrome
 * Modular CSS partial from rc-template-styles.css
 * Version: v1.18-a11y3.0a
 * Date: 2026-04-27
 * Generated by Claude (A11Y-10c salmon contrast retune, A11Y-2.5b CTA eyebrow contrast, A11Y-2.5b chrome inline-style cleanup, A11Y-3.0a chrome floor-raise sub-batch)
 *
 * v1.18 (A11Y-3.0a, 2026-04-27): Chrome floor-raise sub-batch.
 *   Pairs with rc-core.css v1.7-a11y3.0a which adds four new tokens:
 *   --rc-ui-border-dark-strong (rgba 0.5 alpha) and the
 *   --rc-fill-dark-{subtle,soft,medium} family for dark-surface
 *   translucent backgrounds.
 *
 *   Section 38 (TOP BAR) edits:
 *
 *   Below-floor type-size raises (var(--fs-200) 11px to var(--fs-300) 12px,
 *   reflecting the floor change locked at A11Y-2.5B):
 *     .rc-tb-search-input::placeholder font-size raise.
 *     .rc-tb-link font-size raise.
 *     .rc-tb-btn-login font-size raise.
 *     .rc-tb-role font-size raise.
 *     .rc-tb-logout font-size raise.
 *     .rc-tb-btn-hiring (base) font-size raise.
 *     .rc-tb-btn-hiring @ max-width 900px font-size raise.
 *     .rc-tb-link @ max-width 480px font-size raise.
 *     .rc-tb-btn-hiring @ max-width 480px font-size raise.
 *
 *   Pure tokenization (no visual change at default browser settings):
 *     .rc-tb-link--outline border value rgba(255,255,255,0.5) tokenized
 *       to var(--rc-ui-border-dark-strong). Sits between base
 *       --rc-ui-border-dark (0.4) and --rc-ui-border-dark-hover (0.55);
 *       use case is static visible outline, not a hover state. Removes
 *       the "pending tokenization" flag from the v1.17 comment block.
 *     .rc-tb-search background base rgba(255,255,255,0.08) tokenized to
 *       var(--rc-fill-dark-subtle).
 *     .rc-tb-search:hover background rgba(255,255,255,0.12) tokenized to
 *       var(--rc-fill-dark-soft).
 *     .rc-tb-btn-login:hover background rgba(255,255,255,0.18) tokenized
 *       to var(--rc-fill-dark-medium).
 *
 *   Sub-perceptual visual collapses (each shifts 2 alpha points to
 *   collapse onto the canonical fill token; visual delta below the 0.06
 *   threshold accepted at A11Y-2.5B for mega-divider unification):
 *     .rc-tb-search:focus-within background 0.14 to 0.12 (collapse to
 *       var(--rc-fill-dark-soft)).
 *     .rc-tb-btn-login background 0.10 to 0.08 (collapse to
 *       var(--rc-fill-dark-subtle)).
 *
 *   Contrast fix (sRGB-linearized verification):
 *     .rc-tb-search-input::placeholder color rgba(255,255,255,0.35)
 *       composited to approximately rgb(113,128,118) on the search-pill
 *       fill, gives approximately 2.83:1 vs the input background, fails
 *       WCAG 1.4.3 AA. Replaced with var(--rc-on-dark-muted)
 *       (rgba(255,255,255,0.55)), composited to approximately rgb(157,
 *       165,158), gives approximately 4.5:1, marginal AA pass. The S185
 *       search input had not been through an accessibility batch; this
 *       finding came up during the floor-raise rule audit.
 *
 *   Section 39 (MAIN NAVIGATION) edits:
 *
 *   Below-floor type-size raises:
 *     .rc-nav-btn-join (base) font-size raise.
 *     .rc-updates-post-date font-size raise.
 *     .rc-nav-btn-join @ max-width 1100px font-size raise.
 *
 *   Total this sub-batch: 12 floor raises across Sections 38 and 39,
 *   1 border tokenization, 5 fill tokenizations (3 pure tokenizations
 *   plus 2 sub-perceptual collapses), 1 contrast fix.
 *
 *   Audit note (handoff calibration): the A11Y-2.5B handoff estimated
 *   6 nav.php --fs-200 instances. Live-disk audit found 3. The other 3
 *   handoff candidates (.rc-mega-col-label, .rc-biofi-sub-label,
 *   .rc-mm-label) were already raised to var(--fs-300) by A11Y-04 v1.10
 *   Tier L work.
 *
 *   Documentation accuracy correction (the v1.17 comment claimed
 *   --rc-ui-border-dark is rgba(255,255,255,0.15); actual is 0.4).
 *   The naming "hover-strong" used in handoff and pattern docs is
 *   superseded; new token is named --rc-ui-border-dark-strong because
 *   its use case (static outline at 0.5 alpha) sits between base (0.4)
 *   and hover (0.55), not above hover. The companion docs
 *   (RC_A11Y_CONTRAST_PATTERNS.md, RC_DESIGN_TOKENS.md,
 *   RC_A11Y_TOKEN_HYGIENE.md) get the correction at session close.
 *
 * v1.17 (A11Y-2.5b, 2026-04-25): Chrome inline-style cleanup. Six new
 *   utility classes added; eighteen inline style attributes retired
 *   in parts/nav.php and parts/topbar.php. Pairs with parts/nav.php
 *   v5.10 and parts/topbar.php v2.8.
 *   Section 38 additions:
 *     .rc-tb-link--outline modifier. Replaces inline border + padding
 *       + border-radius on the Learning Journey link in topbar.php.
 *       Border value rgba(255,255,255,0.5) preserved literal pending
 *       a future tokenization pass; the existing --rc-ui-border-dark
 *       (rgba(255,255,255,0.15)) is too dim to provide a visible
 *       outline at this contrast. Flagged for Phase 3 token expansion.
 *   Section 39 additions (new "MEGA-DROPDOWN STRUCTURAL UTILITIES"
 *   subsection placed after .rc-biofi-sub-label):
 *     .rc-mega--narrow (520px) and .rc-mega--wide (760px) modifiers.
 *       Base .rc-mega width unchanged at 680px. Modifiers retire five
 *       inline width:520px;padding-right:24px and width:760px;padding-
 *       right:24px attributes on About, BioFi, InfoHub, Updates, and
 *       Events mega-dropdown wrappers.
 *     .rc-mega-3col grid utility. Retires three identical inline
 *       display:grid;grid-template-columns:1fr 1fr auto;gap:24px;
 *       padding-top:16px attributes on the InfoHub, Updates, and
 *       Events mega columns.
 *     .rc-mega-3col__sidebar min-width utility. Retires three
 *       identical inline min-width:150px attributes on the third
 *       column inside the same megas.
 *     .rc-mega-divider base + .rc-mega-divider--lg + .rc-mega-divider
 *       --xs. Retires three inline divider <div> elements with
 *       hardcoded rgba(0,0,0) backgrounds at 0.04, 0.06, and 0.08
 *       opacity respectively. Background standardized to 0.06 across
 *       all three; the About inner divider darkens 0.04 to 0.06 and
 *       the Events Browse divider lightens 0.08 to 0.06. Visual delta
 *       at 1px height is sub-perceptual; documented here rather than
 *       silent. Margin variants preserve original spacing intent.
 *   Pattern 7 finding (worth flagging): the existing rule
 *   .rc-mm-actions a { text-align: center; display: block; } already
 *   covers the two style="text-align:center" inline attributes on
 *   the mobile-panel Join and Donate buttons in nav.php. Those
 *   inline styles were redundant and are removed without any
 *   accompanying CSS change.
 *
 * v1.16 (A11Y-2.5b, 2026-04-25): CTA eyebrow contrast fix. WAVE
 *   flagged .rc-cta-eyebrow gold-on-forest at 3.75:1, failing WCAG
 *   1.4.3 AA normal text. Gold (#B8963E) on forest (#1A4731) reads
 *   3.72:1 with sRGB linearization. Replaced with var(--rc-moss)
 *   which reads 5.15:1 on forest, AA pass with margin. Aligns with
 *   the rch-eyebrow--light pattern on the home page where moss is
 *   the established eyebrow-on-dark color (.rch-eyebrow--light,
 *   .rch-prog__tag, .rch-team__cta-eyebrow, .rch-embed-day all use
 *   --rc-moss). Pattern 2 distinction refined: link text on dark
 *   surfaces uses --rc-on-dark-link (lichen); decorative eyebrow
 *   text on dark surfaces uses --rc-moss. The footer column labels
 *   (.rc-footer-col-label, .rc-footer-nl-label) on deep-forest are
 *   out of scope for this fix because gold-on-deep-forest reads
 *   5.39:1 (AA pass); only the forest surface failed. See
 *   RC_A11Y_CONTRAST_PATTERNS.md v1.1 (next revision) for the
 *   Pattern 2 refinement.
 *
 * v1.15 (A11Y-10c, 2026-04-24): Brand salmon contrast retune. Pairs
 *   with rc-core.css v1.5-a11y10c which moves --rc-salmon, --rc-salmon-
 *   dark, and --rc-error to AA-passing values at the token layer.
 *   Three selector edits in this file:
 *     .rc-tb-btn-hiring color: #FFFFFF (hardcoded) to var(--rc-cream).
 *       Tokenization per hygiene #25. Now pulls cream through the same
 *       token system as every other on-salmon button across home and
 *       chrome.
 *     .rc-tb-btn-hiring:hover color: #FFFFFF to var(--rc-cream). Same.
 *     .rc-tb-logout:hover color: var(--rc-salmon) to var(--rc-salmon-
 *       light). Brightening hover pattern unified with footer column
 *       link pattern locked at A11Y-06. Salmon-light (#E89F7A) on deep
 *       forest approximately 8.1:1, well above AA. The new --rc-salmon
 *       on deep forest reads approximately 4.5:1 (bare AA), which is
 *       acceptable for buttons but undesirable for hover-state text;
 *       salmon-light keeps the warm coral identity while clearing
 *       contrast comfortably.
 *     Inline comment on .rc-tb-btn-hiring corrected. Prior comment
 *       claimed 4.31:1 against #D4714E; actual was approximately
 *       3.41:1. New comment references the correct 4.62:1 against the
 *       new --rc-salmon (#B85A3A).
 *   No other selector in this file consumes --rc-salmon, --rc-salmon-
 *   dark, or --rc-error directly; the token retune in rc-core.css
 *   carries through to .rc-cta-btn-primary, .rc-footer-newsletter
 *   submit, and any other consumer automatically.
 *
 * v1.14 (A11Y-07, 2026-04-23): Phase 2 focus indicator sweep across
 *   chrome surfaces plus cleanup of the Phase 1 !important cascade on
 *   paired focus-visible rules. Works with the new global baseline in
 *   rc-core.css v1.3-a11y07 (:focus-visible { outline: 2px solid
 *   var(--rc-canopy); outline-offset: 2px; }) and scroll-padding-top
 *   for WCAG 2.4.11.
 *
 *   Footer and CTA band (Section 41) focus indicators (new).
 *     .rc-footer-newsletter WPForms inputs: removed the base
 *       `outline: none !important;`. Added a :focus-visible rule
 *       providing a cream 2px outline (13.68:1 on deep forest) with
 *       2px offset. The existing :focus border-color change to moss
 *       stays for the mouse case.
 *     .rc-footer-newsletter WPForms submit: added matching cream
 *       :focus-visible outline.
 *     .rc-cta-btn-primary, .rc-cta-btn-outline: added cream
 *       :focus-visible outline with 2px offset. No focus state was
 *       previously defined.
 *     .rc-footer-col a, .rc-footer-bottom-links a,
 *       .rc-footer-social-icon: added cream :focus-visible outline.
 *       Canopy (the global baseline default) only reads approximately
 *       2.6:1 on deep forest and does not meet the 3:1 UI component
 *       threshold; cream reads 13.68:1 per the tokens doc.
 *
 *   Chrome !important cleanup (Sections 39, 40). The Phase 1 chrome
 *   surfaces use a pattern of outline:none !important on all states
 *   followed by outline:2px !important on :focus-visible. This works
 *   but creates an unnecessary !important cascade. Converted to the
 *   plan's preferred pattern: outline:none on base without !important,
 *   outline:2px on :focus-visible without !important.
 *     .rc-nav-item > a, > button (base outline:none unchanged, no
 *       !important was present).
 *     .rc-nav-item > a:hover, > button:hover outline:none !important
 *       retained on :hover only (this is a pointer-state reset, not
 *       a focus reset, and keeps the hover-underline animation from
 *       drawing a spurious ring on mouse interactions).
 *     .rc-nav-item > button:focus, :active outline:none !important
 *       dropped. The base rule's outline:none already covers this.
 *     .rc-nav-item > button:focus-visible !important flag removed;
 *       the outline:2px var(--rc-canopy) outline-offset:2px pair is
 *       now the preferred pattern.
 *     .rc-hamburger base outline:none !important: !important dropped.
 *     .rc-hamburger:hover, :focus, :active outline:none !important
 *       retained on :hover and :active (pointer states), dropped on
 *       :focus (covered by base).
 *     .rc-hamburger:focus-visible !important flag removed.
 *     .rc-mp-close base outline:none !important: !important dropped.
 *     .rc-mp-close:hover, :focus, :active outline:none !important
 *       kept on :hover/:active, dropped on :focus.
 *     .rc-mp-close:focus-visible !important flag removed.
 *     .rc-mm-section > button base outline:none !important: !important
 *       dropped.
 *     .rc-mm-section > button:hover, :focus, :active outline:none
 *       !important kept on :hover/:active, dropped on :focus.
 *     .rc-mm-section > button:focus-visible !important flag removed.
 *     .rc-sb-toggle base outline:none !important: !important dropped.
 *     .rc-sb-toggle:hover, :focus, :active outline:none !important
 *       kept on :hover/:active, dropped on :focus.
 *     .rc-sb-toggle:focus-visible !important flag removed.
 *   Net result: keyboard focus now reaches these elements via a
 *   clean :focus-visible rule without the !important cascade. Mouse
 *   interactions remain visually clean because :focus-visible does
 *   not fire on pointer focus.
 *
 *   See docs/living/sessions/a11y/A11Y-07_Log.md and
 *   docs/living/RC_A11Y_PLAN.md v1.4.
 *
 * v1.13.3 (A11Y-06, 2026-04-23): Footer social icon circle container
 *   removed. The prior circular border treatment added visual noise
 *   without distinguishing the icons from the surrounding footer
 *   content, and at the rendered size the thin 1px border read as
 *   visual clutter rather than containment. Icons now render as plain
 *   mint marks on the deep forest background with cream-on-hover.
 *     .rc-footer-social-icon: removed border (1px var(--rc-ui-border-
 *       dark)) and border-radius 50%. Width and height stay 44px to
 *       preserve the --tap-generous WCAG 2.2 AAA tap target; the
 *       container is now an invisible click area around each SVG.
 *     .rc-footer-social-icon:hover: removed background rgba(255,255,
 *       255,0.05) and border-color rgba(255,255,255,0.6). The mint-
 *       to-cream SVG fill transition is the sole hover indicator.
 *
 * v1.13.2 (A11Y-06, 2026-04-23): Footer social icon visual polish (D.9).
 *   Circular container treatment and mint icon color to match the
 *   intended design. All changes use existing --rc-* tokens.
 *     .rc-footer-social-icon: width/height 32px to 44px; added
 *       border-radius 50% (square to circle). Tap target now
 *       --tap-generous (44px, WCAG 2.2 AAA). Border unchanged.
 *     .rc-footer-social-icon svg: width/height 14px to 20px; fill
 *       var(--rc-on-dark-secondary) to var(--rc-lichen). Approximately
 *       11.2:1 on deep forest (AAA). Added transition fill 0.2s.
 *     .rc-footer-social-icon:hover svg: new rule, fill
 *       var(--rc-on-dark-strong) (cream). Hover brightens icon to
 *       match column link hover pattern (D.1.3b parallel).
 *   Pairs with parts/footer.php v1.3 which replaces the Bluesky SVG
 *   path with the official butterfly mark (prior path was a generic
 *   diamond-like glyph).
 *
 * v1.13.1 (A11Y-06, 2026-04-23): Post-review size and color adjustments
 *   to six selectors in Section 41. All six use existing --fs-* and
 *   --rc-* tokens (no new tokens, no new styles).
 *     .rc-cta-eyebrow font-size: var(--fs-300) (12px) to var(--fs-400)
 *       (13px).
 *     .rc-cta-btn-primary font-size: var(--fs-200) (11px) to var(--fs-300)
 *       (12px).
 *     .rc-cta-btn-outline font-size: var(--fs-200) (11px) to var(--fs-300)
 *       (12px).
 *     .rc-footer-nl-label font-size: var(--fs-200) (11px) to var(--fs-300)
 *       (12px).
 *     .rc-footer-org font-size: var(--fs-300) (12px) to var(--fs-400)
 *       (13px).
 *     .rc-footer-col-label font-size: var(--fs-200) (11px) to var(--fs-300)
 *       (12px).
 *   Footer column link color swap (existing tokens, no new styles):
 *     .rc-footer-col a default color: var(--rc-on-dark-secondary)
 *       (white 0.7 alpha, approximately 6.8:1) to var(--rc-lichen)
 *       (#B7E4C7, approximately 11.2:1 on deep forest). Passes AAA.
 *     .rc-footer-col a:hover color: var(--rc-lichen) to
 *       var(--rc-on-dark-strong) (cream #F6F3ED, 13.68:1). Hover now
 *       brightens (default mint, hover cream) instead of dimming.
 *
 * v1.13 (A11Y-06, 2026-04-23): Batch D + E, footer and CTA band
 *   (Section 41) completion pass under surface-complete batching. Every
 *   actively-emitted text element in Section 41 now references the --fs-*
 *   token scale and sits at or above the 11px (--fs-200) floor. UI component
 *   borders raised to the 3:1 WCAG 1.4.11 threshold. Tap targets raised to
 *   --tap-comfort 32px on footer column links and bottom bar links. The two
 *   gold section labels (.rc-footer-col-label, .rc-footer-nl-label) collapsed
 *   into a dark-surface variant of the Tier L system: Inconsolata var(--fs-200)
 *   500 gold uppercase .25em. Gold on deep forest verified at approximately
 *   5.46:1 (passes AA normal text).
 *   Contrast fixes (visible change, WCAG AA target):
 *     .rc-footer-org color: rgba(255,255,255,0.2) to
 *       var(--rc-on-dark-secondary). Approximately 1.88:1 to 6.8:1 on deep
 *       forest. (D.1.1, plan Issue 11)
 *     .rc-footer-copyright color: rgba(255,255,255,0.2) to
 *       var(--rc-on-dark-secondary). Same. (D.1.2, plan Issue 12a)
 *     .rc-footer-bottom-links a color: rgba(255,255,255,0.2) to
 *       var(--rc-on-dark-secondary). Same. (D.1.3, plan Issue 12b)
 *     .rc-footer-bottom-links a:hover color: rgba(255,255,255,0.5) to
 *       var(--rc-cream). Previously hover darkened the text (reversed
 *       direction); now hover brightens. (D.1.3b, mid-audit finding)
 *     .rc-footer-col a color: rgba(255,255,255,0.5) to
 *       var(--rc-on-dark-secondary). Approximately 4.70:1 to 6.8:1.
 *       (D.1.4, plan Issue 14)
 *     WPForms input border: rgba(255,255,255,0.1) to var(--rc-ui-border-dark).
 *       Below 3:1 to 3:1 per WCAG 1.4.11. (D.1.5, plan Issue 15)
 *     WPForms field label color: rgba(255,255,255,0.4) to
 *       var(--rc-on-dark-secondary). Approximately 3.76:1 to 6.8:1.
 *       (D.1.6, plan Issue 16)
 *     .rc-footer-social-icon border: rgba(255,255,255,0.08) to
 *       var(--rc-ui-border-dark). Below 3:1 to 3:1. (D.1.7, plan Issue 17a)
 *     .rc-footer-social-icon svg fill: rgba(255,255,255,0.35) to
 *       var(--rc-on-dark-secondary). Approximately 3.29:1 to 6.8:1.
 *       (D.1.8, plan Issue 17b)
 *     WPForms placeholder color: rgba(255,255,255,0.25) to
 *       var(--rc-on-dark-muted). Approximately 2.35:1 to 4.9:1. (D.1.9)
 *     .rc-footer-social-icon:hover border: rgba(255,255,255,0.15) to
 *       rgba(255,255,255,0.6). (D.1.10)
 *     .rc-cta-btn-outline border: rgba(255,255,255,0.15) to
 *       var(--rc-ui-border-dark). Below 3:1 to 3:1. (D.6.5)
 *     .rc-cta-btn-outline:hover border: rgba(255,255,255,0.3) to
 *       rgba(255,255,255,0.6). (D.6.6)
 *   Pure tokenizations (no visual change at default browser settings,
 *   enables WCAG 1.4.4 Resize Text):
 *     .rc-footer-tagline font-size: 16px to var(--fs-700). (D.2.1)
 *     .rc-footer-nl-heading font-size: 24px to var(--fs-1000). (D.2.2)
 *     .rc-footer-nl-text font-size: 14px to var(--fs-500). (D.2.3)
 *     .rc-footer-col a font-size: 14px to var(--fs-500). (D.2.4)
 *     WPForms input font-size: 13px to var(--fs-400). (D.2.5)
 *     .rc-cta-text font-size: 16px to var(--fs-700). (D.6.2)
 *     .rc-cta-btn-primary font-size: 11px to var(--fs-200). (D.6.3)
 *     .rc-cta-btn-outline font-size: 11px to var(--fs-200). (D.6.4)
 *     .rc-cta-btn-primary color: white to var(--rc-cream). Establishes
 *       Phase 3 salmon-button text-color pattern. (D.6.3b)
 *     WPForms submit color: white to var(--rc-cream). (D.3.7b)
 *   Below-floor size raises and Tier L unification (visible change, meets
 *   --fs-200 floor; D.5.1 Option U on .rc-footer-col-label and
 *   .rc-footer-nl-label):
 *     .rc-footer-org font-size: 10px to var(--fs-300) (12px). (D.3.1,
 *       plan Issue 11b)
 *     .rc-footer-copyright font-size: 10px to var(--fs-300) (12px).
 *       (D.3.2, plan Issue 12c)
 *     .rc-footer-bottom-links a font-size: 10px to var(--fs-300) (12px).
 *       (D.3.3, plan Issue 12d)
 *     .rc-footer-col-label size 9px to var(--fs-200); letter-spacing .3em to
 *       .25em (Tier L); weight 500 unchanged; color var(--rc-gold) unchanged.
 *       Gold on deep forest verified 5.46:1. (D.3.4, plan Issue 13,
 *       D.5.1 Tier L)
 *     .rc-footer-nl-label size 9px to var(--fs-200); letter-spacing .3em to
 *       .25em (Tier L); weight 500 unchanged; color var(--rc-gold) unchanged.
 *       (D.3.5, D.5.1 Tier L)
 *     WPForms field label font-size: 10px to var(--fs-200) (11px). (D.3.6)
 *     WPForms submit font-size: 10px to var(--fs-300) (12px). (D.3.7)
 *     .rc-cta-eyebrow font-size: 10px to var(--fs-300). (D.6.1,
 *       plan Issue 18)
 *   Tap target raises (WCAG 2.2 SC 2.5.8, --tap-comfort 32px floor):
 *     .rc-footer-col a padding: 0 to 7px 0; display inline-block. Tap
 *       approximately 20 to 34px. (D.4.1)
 *     .rc-footer-bottom-links a padding: 0 to 8px 0; display inline-block.
 *       Tap approximately 15 to 33px. (D.4.2)
 *     .rc-footer-social-icon already 32x32 at --tap-comfort; unchanged. (D.4.3)
 *   Unchanged (decorative exception or out of scope): .rc-footer-top and
 *   .rc-footer-links border-bottom at rgba(255,255,255,0.06) (decorative
 *   section dividers). .rc-cta-band::before overlay ring. WPForms input
 *   background rgba(255,255,255,0.05) (surface fill). WPForms input focus
 *   border var(--rc-moss) (verified 4.2:1 on deep forest). .rc-cta-heading
 *   Cormorant clamp 32-52px cream on forest (passes AAA). .rc-footer-tagline
 *   Cormorant 16px italic sky-water on deep forest approximately 5.4:1
 *   (passes AA). .rc-footer-nl-heading Cormorant 24px cream on deep forest
 *   (passes AAA).
 *   Pairs with parts/footer.php v1.2 which removes redundant inline
 *   style="height: 40px; width: auto;" attribute on .rc-footer-logo img
 *   (covered by existing CSS rule).
 *   See docs/living/sessions/a11y/A11Y-06_Log.md and
 *   docs/living/RC_DESIGN_TOKENS.md v1.0.
 *
 * v1.12.1 (A11Y-05, 2026-04-23): Hotfix for the v1.12 mobile
 *   steward bar. The v1.12 rule set hid .rc-sb-right > .rc-sb-links
 *   outright, but the four bar-line dropdowns (Connect, Add,
 *   Steward, Staff) are nested inside .rc-sb-links in the PHP
 *   markup (not as siblings), so they were hidden along with the
 *   container. Result at mobile: only the left-zone role identity
 *   rendered; the entire right zone was blank. Fix swaps the
 *   container-level hide for two direct-child rules that target
 *   only the anchors (Members, Organizations, Dashboard) and the
 *   two <span class="rc-sb-div"> dividers inside .rc-sb-links.
 *   The .rc-sb-dropdown children are not matched by either rule
 *   and stay visible. The spurious .rc-sb-right > .rc-sb-div and
 *   .rc-sb-right > a rules from v1.12 also removed; neither
 *   matched any element in the DOM.
 *
 * v1.12 (A11Y-05, 2026-04-23): Batch C.m2 mobile steward bar
 *   restructure. The flat accordion-inside-panel approach from v1.11
 *   was clipped by the parent .rc-sb-panel max-height capture on
 *   open. Replaced with four icon-only dropdown triggers on the
 *   steward bar line itself at max-width 960px (Connect, Add,
 *   Steward, Staff). Each trigger opens its existing .rc-sb-dropdown-
 *   menu as a positioned overlay, right-aligned to the viewport with
 *   a width cap of calc(100vw - 32px) and max-height cap of
 *   calc(100vh - 140px) with internal scroll. Two and three-column
 *   desktop dropdowns (Steward, Staff) stack vertically on mobile
 *   via flex-direction column on .rc-sb-dropdown-cols. Bar-line
 *   anchors Members, Organizations, and Dashboard hidden below
 *   960px; their destinations are reachable via the new Connect
 *   dropdown which also carries RC Zoom and DS4RE for learner+.
 *   The .rc-sb-panel, .rc-sb-toggle, .rc-sb-panel-inner, .rc-sb-
 *   panel-heading rules are retained in this file for backward
 *   compatibility pending the next nav hygiene session; the PHP
 *   markup is removed in steward-bar.php v10.5. Panel-interior
 *   accordion rules added in v1.11 are removed as dead code.
 *   Desktop addition: horizontal divider under .rc-sb-dd-heading
 *   using the same rgba(0,0,0,0.06) pattern already used by
 *   .rc-sb-dd-col + .rc-sb-dd-col (internal column divider).
 *   Mobile trigger icon-only pattern: font-size 0 on the trigger,
 *   restored to var(--fs-400) on child .rc-sb-dropdown-menu a so
 *   the text label is suppressed without markup change. No new CSS
 *   classes, no new design tokens introduced (protocol item #23
 *   clear).
 *   See docs/living/sessions/a11y/A11Y-05_Log.md.
 *
 * v1.11 (A11Y-05, 2026-04-23): Batch C, steward bar (Section 40)
 *   completion pass under surface-complete batching. Every actively-
 *   emitted text element in Section 40 now references the --fs-* token
 *   scale and sits at or above the 11px (--fs-200) floor. Both section-
 *   label headings (.rc-sb-panel-heading, .rc-sb-dd-heading) collapsed
 *   into the Tier L system established in A11Y-04 B.6.2 (Inconsolata
 *   var(--fs-300) 12px 500 canopy uppercase .25em).
 *   Contrast fixes (visible change, WCAG AA target):
 *     .rc-sb-panel-heading color: var(--rc-fern) to var(--rc-canopy).
 *       Approximately 3.47:1 to 5.77:1 on cream. (C.1.1, plan Issue 6;
 *       supersedes under C.5.1 Option U)
 *     .rc-sb-dd-heading color: rgba(0,0,0,0.3) to var(--rc-canopy).
 *       Approximately 2.10:1 to 5.77:1 on cream. (C.1.2, plan Issue 7;
 *       supersedes under C.5.1 Option U)
 *     .rc-sb-dropdown-menu border: rgba(0,0,0,0.08) to var(--rc-ui-
 *       border-light). Below 3:1 to 3:1. UI container border per WCAG
 *       1.4.11. (C.1.3)
 *   Pure tokenizations (no visual change at default browser settings,
 *   enables WCAG 1.4.4 Resize Text):
 *     .rc-sb-role-label font-size: 13px to var(--fs-400). (C.2.1)
 *     .rc-sb-links a font-size: 13px to var(--fs-400). (C.2.2)
 *     .rc-sb-panel-inner a font-size: 14px to var(--fs-500). (C.2.3)
 *     .rc-sb-panel-inner a @ 600px font-size: 13px to var(--fs-400).
 *       (C.2.4)
 *     .rc-sb-dropdown-trigger font-size: 13px to var(--fs-400). (C.2.5)
 *     .rc-sb-dropdown-menu a font-size: 13px to var(--fs-400). (C.2.6)
 *     .rc-sb-dd-col a font-size: 13px to var(--fs-400). (C.2.7)
 *   Below-floor size raises and Tier L collapse (visible change,
 *   C.5.1 Option U, supersedes C.1.1, C.1.2, C.3.1, C.3.2):
 *     .rc-sb-panel-heading size 10px to var(--fs-300); weight 600 to
 *       500; letter-spacing .08em to .25em; color already handled
 *       above. (C.3.1, C.5.1)
 *     .rc-sb-dd-heading size 9px to var(--fs-300); weight 600 to 500;
 *       letter-spacing .15em to .25em; color already handled above.
 *       (C.3.2, C.5.1)
 *   Tap target raises (WCAG 2.2 SC 2.5.8, --tap-comfort 32px floor):
 *     .rc-sb-links a padding: 4px 6px to 10px 10px. Tap approximately
 *       21 to 33px. (C.4.1, plan Issue 5)
 *     .rc-sb-dropdown-trigger padding: 4px 6px to 10px 10px. Tap
 *       approximately 21 to 33px. (C.4.2)
 *     .rc-sb-dropdown-menu a padding: 7px 16px to 10px 16px. Tap
 *       approximately 27 to 33px. (C.4.3)
 *     .rc-sb-dd-col a padding: 5px 0 to 10px 0. Tap approximately 23
 *       to 33px. (C.4.4)
 *   Dead code removal:
 *     .rc-sb-dd-divider rule block removed. Not emitted by steward-
 *     bar.php v10.3 or v10.4. (C.6)
 *   Unchanged (decorative exception or out of scope): .rc-sb-div bg,
 *   .rc-sb-dd-col + .rc-sb-dd-col border-left, .rc-sb-wrap border-
 *   bottom, .rc-sb-panel-inner a:hover text-decoration-color. All
 *   below 3:1 and confirmed decorative. .rc-sb-panel-inner min-height
 *   48px (desktop) and 44px (at 600px) already pass --tap-comfort.
 *   .rc-sb-toggle 44x44 passes.
 *   Mobile menu restructure (Batch C.m, M2 hybrid):
 *     The flat two-column mobile panel interior becomes three
 *     accordion sections (Add, Steward, Staff) mirroring the desktop
 *     three-dropdown split, bracketed by always-visible Browse (top)
 *     and Connect (bottom) sections. Reuses existing .rc-sb-dropdown,
 *     .rc-sb-dropdown-trigger, .rc-sb-dropdown-menu, .rc-sb-dropdown-
 *     cols, .rc-sb-dd-col, .rc-sb-dd-heading classes. No new CSS
 *     classes or design tokens introduced (protocol item #23 clear).
 *     Accordion toggle behavior reuses the existing click handler in
 *     parts/steward-bar.php which listens on all .rc-sb-dropdown
 *     instances globally.
 *   Mobile media query additions (inside @media max-width 960px):
 *     Scoped the existing .rc-sb-dropdown hide rule to .rc-sb-right
 *       .rc-sb-dropdown so panel-interior dropdowns remain visible.
 *     Added .rc-sb-panel .rc-sb-dropdown inline-accordion rules:
 *       full-width trigger, static-positioned menu with no shadow or
 *       border, stacked .rc-sb-dropdown-cols columns, leading-icon
 *       SVG sizing, indent and top-border dividers between stacked
 *       Finance / Community / RC Budget subsections.
 *   See docs/living/sessions/a11y/A11Y-05_Log.md and
 *   docs/living/RC_DESIGN_TOKENS.md v1.0.
 *
 * v1.10 (A11Y-04, 2026-04-22): Batch B.6 main nav submenu typography
 *   standardization. Follow-on pass after Batch B.1 to B.4 completed.
 *   All changes use existing tokens from rc-core.css v1.2-a11y02; no
 *   new tokens, no new token scale values introduced.
 *   Tier L section labels raised fs-200 to fs-300:
 *     .rc-mega-col-label font-size: var(--fs-200) to var(--fs-300).
 *       11px to 12px.
 *     .rc-mm-label font-size: var(--fs-200) to var(--fs-300). 11px
 *       to 12px.
 *     .rc-biofi-sub-label font-size: var(--fs-200) to var(--fs-300);
 *       color var(--rc-on-light-meta) to var(--rc-canopy). Collapses
 *       the BioFi sub-label into the unified Tier L label style.
 *       (B.6.2)
 *   Secondary tier unified to 14px / 300 / text-gray (matches current
 *   landscape CPT style):
 *     .rc-mega-nav-light a font-size: var(--fs-400) to var(--fs-500).
 *       13px to 14px.
 *     .rc-biofi-grid .rc-mega-nav-light a font-size: var(--fs-400) to
 *       var(--fs-500). 13px to 14px.
 *     .rc-mega-landscapes a unchanged (already at target post-B.4.2).
 *     Primary and secondary tiers now share size (14px); hierarchy
 *     carried by weight (400 vs 300) and color (forest vs text-gray).
 *     (B.6.3, Option Y extended per Brandon)
 *   Donate button hover:
 *     .rc-nav-btn-donate:hover background var(--rc-deep-forest) to
 *       var(--rc-canopy). Earlier deep-forest hover read as
 *       near-identical to the forest base; canopy provides a clearly
 *       lighter state. Approximately 8:1 cream-on-canopy contrast.
 *       (B.6.1 option A)
 *   New class for empty-state fallback text:
 *     .rc-mega-empty added to Section 39. Jost, var(--fs-400), 400,
 *       var(--rc-on-light-meta). Replaces three inline style=
 *       "font-size:13px;color:#888;margin:8px 0;" attributes on
 *       <p> fallback elements in parts/nav.php v5.8 (no opportunities
 *       / no resources / no upcoming events branches). (B.6.5)
 *   Pairs with parts/nav.php v5.8, which removes four inline
 *   style="font-weight:600" attributes from Events Browse items
 *   (two desktop, two mobile) so they inherit the primary / Tier 1
 *   link style uniformly. (B.6.4)
 *
 * v1.9 (A11Y-04, 2026-04-22): Phase 1 Batch B, main navigation (Section 39)
 *   completion pass under surface-complete batching. Every actively-emitted
 *   text element in Section 39 now references the --fs-* token scale and
 *   sits at or above the 11px (--fs-200) floor defined in the Phase 0
 *   tokens doc, except decorative glyphs (.rc-nav-arrow 8px, .rc-chevron
 *   10px) which remain below the floor per the decorative exception.
 *   Contrast fixes (visible change, WCAG AA target):
 *     .rc-nav-btn-donate: bg var(--rc-gold) to var(--rc-forest); color
 *       white to var(--rc-cream); hover bg var(--rc-gold-dark) to
 *       var(--rc-deep-forest). Approximately 2.81:1 to approximately
 *       11:1. Passes AA and AAA. (B.1.1 option B, plan Issue 8)
 *     .rc-mega-col-label color: var(--rc-fern) to var(--rc-canopy).
 *       Approximately 3.47:1 to approximately 5.77:1 on warm-white.
 *       Passes AA. (B.1.2, plan Issue 9)
 *     .rc-updates-post-date color: rgba(0,0,0,.3) to var(--rc-on-light-
 *       meta). Approximately 2.10:1 to approximately 5.5:1 on warm-white.
 *       Passes AA. (B.1.4, plan Issue 10)
 *     .rc-biofi-sub-label color: rgba(0,0,0,.2) to var(--rc-on-light-
 *       meta). Approximately 1.47:1 to approximately 5.5:1. Passes AA.
 *       (B.1.5)
 *     .rc-mm-label color: var(--rc-fern) to var(--rc-canopy). Approximately
 *       3.47:1 to approximately 5.77:1 on var(--rc-warm-white). Passes AA.
 *       (B.1.7, mid-session finding on mobile panel section labels,
 *       parallel to B.1.2 on mega labels)
 *   Tokenizations (no visual change at default browser settings, enables
 *   WCAG 1.4.4 Resize Text):
 *     .rc-nav-item > a, .rc-nav-item > button font-size: 13.5px to
 *       var(--fs-500). Applies to .rc-nav-btn-donate base (same value).
 *       (B.4.1)
 *     .rc-mega-landscapes a font-size: 14.5px to var(--fs-500). Rounded
 *       down. (B.4.2)
 *     .rc-mega-nav a font-size: 14px to var(--fs-500). (B.2.1)
 *     .rc-about-grid .rc-mega-nav a font-size: 14px to var(--fs-500).
 *       (B.2.2)
 *     .rc-biofi-grid .rc-mega-nav a font-size: 14px to var(--fs-500).
 *       (B.2.3)
 *     .rc-mega-nav-light a font-size: 13px to var(--fs-400). (B.2.4)
 *     .rc-biofi-grid .rc-mega-nav-light a font-size: 13px to
 *       var(--fs-400). (B.2.5)
 *     .rc-updates-post-title font-size: 13px to var(--fs-400). (B.2.6)
 *     .rc-skip-link font-size: 12px to var(--fs-300). (B.2.7)
 *     .rc-nav-btn-join font-size: 11px to var(--fs-200). (B.2.8)
 *     .rc-mm-section > button font-size: 13px to var(--fs-400). (B.2.9)
 *     .rc-mm-sub a font-size: 16px to var(--fs-700). (B.2.10)
 *     .rc-nav-item > a @ 1100px font-size: 12.5px to var(--fs-400).
 *       (B.4.3)
 *     .rc-nav-btn-donate @ 1100px font-size: 11px to var(--fs-300).
 *       Prominence preserved for primary CTA. (B.4.4)
 *   Below-floor size raises (visible change, meets --fs-200 floor):
 *     .rc-mega-col-label font-size: 9px to var(--fs-200). (B.3.1)
 *     .rc-biofi-sub-label font-size: 8px to var(--fs-200). Noticeable
 *       change inside BioFi mega. (B.3.2)
 *     .rc-updates-post-date font-size: 9px to var(--fs-200). (B.3.3)
 *     .rc-mm-label font-size: 10px to var(--fs-200). (B.3.4)
 *     .rc-nav-btn-join @ 1100px font-size: 10px to var(--fs-200). (B.3.5)
 *   Unchanged (decorative exception or out of scope): .rc-nav-arrow 8px,
 *   .rc-chevron 10px (paired decorative glyphs), decorative dividers
 *   (.rc-biofi-divider, .rc-mm-divider, various border-bottom values at
 *   rgba(0,0,0,.03) to .06), .rc-nav-wrap border, .rc-updates-thumb-empty
 *   svg fill. See docs/living/sessions/a11y/A11Y-04_Log.md and
 *   docs/living/RC_DESIGN_TOKENS.md v1.0.
 *   Side finding (not deployed): Section 39 contains dead CSS targeting
 *   selectors that nav.php v5.7 does not emit. The .rc-dd block, .rc-
 *   updates-grid, .rc-updates-links, .rc-mm-link. Scoped for a future
 *   nav hygiene session.
 *
 * v1.8 (A11Y-03, 2026-04-22): Phase 1 Batch A.10, mobile overflow fix.
 *   Hide .rc-tb-user (avatar + name wrapper) and its trailing divider at
 *   max-width 480px. Avatar was overflowing the viewport at phone width.
 *   Name was already hidden at 900px so this only removes the avatar and
 *   its divider at phone width. Tablet (481 to 900px) unchanged.
 *
 * v1.7 (A11Y-03, 2026-04-22): Phase 1 Batch A.6 through A.9, top bar
 *   completion pass. Every text element in Section 38 now references the
 *   --fs-* token scale and sits at or above the 11px (--fs-200) floor
 *   defined in the Phase 0 tokens doc. UI component borders and the
 *   search icon raised to the 3:1 WCAG 1.4.11 threshold.
 *   Tokenizations (no visual change at default browser settings, enables
 *   WCAG 1.4.4 Resize Text):
 *     .rc-tb-search-input font-size: 12px to var(--fs-300).
 *     .rc-tb-link font-size: 11px to var(--fs-200).
 *     .rc-tb-btn-hiring font-size: 11px to var(--fs-200).
 *     .rc-tb-btn-login font-size: 11px to var(--fs-200).
 *     .rc-tb-name font-size: 13px to var(--fs-400).
 *   Below-floor size raises (visible change, meets --fs-200 floor):
 *     .rc-tb-logout font-size: 10px to var(--fs-200).
 *     .rc-tb-search-input::placeholder font-size: 10px to var(--fs-200).
 *     .rc-tb-role font-size: 9px to var(--fs-200).
 *     .rc-tb-link at max-width 480px: 9px to var(--fs-200).
 *     .rc-tb-btn-hiring at max-width 900px: 10px to var(--fs-200).
 *     .rc-tb-btn-hiring at max-width 480px: 9px to var(--fs-200).
 *   UI-contrast fixes:
 *     .rc-tb-avatar border: rgba(255,255,255,.15) to var(--rc-ui-border-dark). (A.7)
 *     .rc-tb-btn-login border: rgba(255,255,255,.08) to var(--rc-ui-border-dark). (A.8)
 *     .rc-tb-search-submit color: rgba(255,255,255,.45) to var(--rc-on-dark-secondary). (A.9)
 *   See docs/living/RC_DESIGN_TOKENS.md v1.0 and RC_A11Y_PLAN.md v1.0.
 *
 * v1.6 (A11Y-03, 2026-04-22): Phase 1 Batch A, top bar token swaps.
 *   .rc-tb-link color: rgba(255,255,255,.45) to var(--rc-on-dark-secondary).
 *     Approximately 4.19:1 to 6.8:1 on --rc-deep-forest. (Issue 1)
 *   .rc-tb-logout color: rgba(255,255,255,.25) to var(--rc-on-dark-secondary).
 *     Approximately 2.35:1 to 6.8:1 on --rc-deep-forest. (Issue 2)
 *   .rc-tb-name color: rgba(255,255,255,.5) to var(--rc-on-dark-primary).
 *     Approximately 4.70:1 to 9.6:1 on --rc-deep-forest. (Issue 3)
 *   .rc-tb-social a width/height: 22px to var(--tap-comfort) (32px).
 *     Mobile responsive override raised 20px to var(--tap-min) (24px).
 *     WCAG 2.2 SC 2.5.8 Target Size AA floor. SVG glyphs unchanged. (Issue 4)
 *   .rc-tb-div background: rgba(255,255,255,.08) to var(--rc-ui-border-dark).
 *     Below UI threshold to 3:1 per WCAG 1.4.11. (Issue 20)
 *   See docs/living/RC_DESIGN_TOKENS.md v1.0 and RC_A11Y_PLAN.md v1.0.
 *
 * v1.5 (S185, 2026-04-21): Replaced top-bar construction text with site
 *   search form. Added .rc-tb-search, .rc-tb-search-input,
 *   .rc-tb-search-submit. Removed .rc-tb-text rule (dead after
 *   topbar.php v2.7). Swapped responsive hide target at 900px from
 *   .rc-tb-text to .rc-tb-search.
 *
 * v1.4 (Ops 2026-04-20): Added .rc-tb-btn-hiring for the top-bar OM Hiring
 *   button. Salmon on deep forest (4.31:1 ratio, passes WCAG AA large-text).
 *   Visible :focus-visible outline, 28px minimum touch target.
 *
 * Sections: 38 (TOP BAR), 39 (MAIN NAVIGATION), 40 (STEWARD BAR), 41 (FOOTER AND CTA BAND)
 */

/* =====================================================================
   SECTION 38: TOP BAR
   Source: parts/topbar.php v2.3
   Extracted: Session 88, March 13, 2026
   Generated by Claude
   Sitewide utility bar (dark background). Contains: left-side
   construction notice, right-side social icons, Learning Journey,
   Hiring, and auth controls (avatar + role badge when logged in,
   login button when logged out).
   ===================================================================== */

/* Wrapper */
.rc-tb { background: var(--rc-deep-forest); position: relative; z-index: 10000; }
.rc-tb-inner {
  display: flex; align-items: center; justify-content: space-between;
  max-width: 1200px; margin: 0 auto; padding: 0 40px; height: 40px; gap: 16px;
}
.rc-tb-left { flex-shrink: 0; }

/* Site search (S185)
   Replaces the prior "Site Under Construction" text. Dark translucent
   pill input with embedded magnifier submit button. Submits to
   WordPress default search (?s=). Hidden below 900px; mobile search
   UX to be addressed in a follow-on. */
.rc-tb-search {
  display: flex; align-items: center; position: relative;
  height: 26px;
  background: var(--rc-fill-dark-subtle);
  border: 1px solid rgba(255,255,255,.1);
  transition: background .2s, border-color .2s;
}
.rc-tb-search:hover {
  background: var(--rc-fill-dark-soft);
  border-color: rgba(255,255,255,.15);
}
.rc-tb-search:focus-within {
  background: var(--rc-fill-dark-soft);
  border-color: rgba(255,255,255,.25);
}
.rc-tb-search-input {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300); font-weight: 400; letter-spacing: .06em;
  color: var(--rc-cream);
  background: transparent; border: 0; outline: 0;
  padding: 0 10px; height: 100%; width: 200px; line-height: 1;
  -webkit-appearance: none; appearance: none;
}
.rc-tb-search-input::placeholder {
  color: var(--rc-on-dark-muted);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: var(--fs-300);
}
/* Strip native search-field clear button to keep the dark pill uniform */
.rc-tb-search-input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.rc-tb-search-submit {
  background: transparent; border: 0;
  padding: 0 8px; height: 100%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--rc-on-dark-secondary);
  transition: color .2s;
}
.rc-tb-search-submit:hover { color: var(--rc-lichen); }
.rc-tb-search-submit:focus { outline: none; }
.rc-tb-search-submit:focus-visible {
  outline: 2px solid var(--rc-cream);
  outline-offset: 2px;
}
.rc-tb-search-submit svg { width: 13px; height: 13px; fill: currentColor; }
@media (prefers-reduced-motion: reduce) {
  .rc-tb-search, .rc-tb-search-submit { transition: none; }
}
.rc-tb-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }

/* Social icons */
.rc-tb-social { display: flex; align-items: center; gap: 7px; flex-shrink: 0; }
.rc-tb-social a {
  display: flex; align-items: center; justify-content: center;
  width: var(--tap-comfort); height: var(--tap-comfort); transition: opacity .2s; opacity: .4; text-decoration: none;
}
.rc-tb-social a:hover { opacity: .7; }
.rc-tb-social svg { width: 12px; height: 12px; fill: var(--rc-lichen); }

/* Nav links */
.rc-tb-link {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .15em; text-transform: uppercase; color: var(--rc-on-dark-secondary);
  text-decoration: none; white-space: nowrap; transition: color .2s;
}
.rc-tb-link:hover { color: var(--rc-lichen); }

/* Top-bar link outline modifier (A11Y-2.5b, tokenized A11Y-3.0a).
   Replaces inline border + padding + border-radius on the Learning
   Journey link in topbar.php. The 0.5-alpha border value is now
   tokenized as --rc-ui-border-dark-strong (rc-core.css v1.7-a11y3.0a),
   sitting between --rc-ui-border-dark (0.4) and --rc-ui-border-dark-
   hover (0.55). Use case is a static visible outline, not a hover
   state. */
.rc-tb-link--outline {
  border: 1px solid var(--rc-ui-border-dark-strong);
  padding: 2px 10px;
  border-radius: 4px;
}

/* Divider */
.rc-tb-div { width: 1px; height: 14px; background: var(--rc-ui-border-dark); flex-shrink: 0; }

/* Logged-out login button */
.rc-tb-btn-login {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase; text-decoration: none;
  padding: 5px 14px; transition: all .2s; white-space: nowrap; line-height: 1;
  color: var(--rc-cream); background: var(--rc-fill-dark-subtle); border: 1px solid var(--rc-ui-border-dark);
}
.rc-tb-btn-login:hover {
  color: var(--rc-cream); background: var(--rc-fill-dark-medium); border-color: rgba(255,255,255,.15);
}

/* Logged-in user section */
.rc-tb-user { display: flex; align-items: center; gap: 8px; }
.rc-tb-avatar {
  width: 24px; height: 24px; border-radius: 50%; overflow: hidden;
  flex-shrink: 0; border: 1.5px solid var(--rc-ui-border-dark);
}
.rc-tb-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rc-tb-avatar-placeholder {
  width: 100%; height: 100%; display: flex; align-items: center;
  justify-content: center; background: var(--rc-canopy);
}
.rc-tb-avatar-placeholder svg { width: 13px; height: 13px; fill: var(--rc-lichen); }

/* Role badge */
.rc-tb-role {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase; padding: 2px 7px; line-height: 1;
}
.tb-role-admin, .tb-role-staff { background: rgba(184,150,62,.2); color: var(--rc-gold); }
.tb-role-steward { background: rgba(64,145,108,.2); color: var(--rc-fern); }
.tb-role-learner { background: rgba(90,155,181,.2); color: var(--rc-sky-water); }
.tb-role-member { background: rgba(116,198,157,.15); color: var(--rc-moss); }

/* Name and logout */
.rc-tb-name {
  font-family: 'Jost', sans-serif; font-size: var(--fs-400); font-weight: 400;
  letter-spacing: .06em; color: var(--rc-on-dark-primary); white-space: nowrap;
}
.rc-tb-logout {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .15em; text-transform: uppercase; color: var(--rc-on-dark-secondary);
  text-decoration: none; transition: color .2s; white-space: nowrap;
}
.rc-tb-logout:hover { color: var(--rc-salmon-light); }

/* OM Hiring button (Ops 2026-04-20, retuned A11Y-10c 2026-04-24)
   Cream on new salmon (#B85A3A) = 4.62:1 contrast, passes WCAG AA
   normal text. The prior comment claim of 4.31:1 against #D4714E
   was inaccurate (actual approximately 3.41:1, failing WAVE).
   A11Y-10c retunes --rc-salmon to clear AA at the token layer.
   Focus-visible outline meets WCAG 2.4.7 and 2.4.13. */
.rc-tb-btn-hiring {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300); font-weight: 600; letter-spacing: .15em;
  text-transform: uppercase; white-space: nowrap;
  color: var(--rc-cream); background: var(--rc-salmon);
  padding: 6px 12px; min-height: 24px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--rc-salmon);
  text-decoration: none; line-height: 1;
  transition: background .2s, border-color .2s, color .2s;
}
.rc-tb-btn-hiring:hover {
  background: var(--rc-salmon-dark);
  border-color: var(--rc-salmon-dark);
  color: var(--rc-cream);
}
.rc-tb-btn-hiring:focus { outline: none; }
.rc-tb-btn-hiring:focus-visible {
  outline: 2px solid var(--rc-cream);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .rc-tb-btn-hiring { transition: none; }
}

/* Top bar responsive */
@media (max-width: 900px) {
  .rc-tb-inner { padding: 0 24px; height: 36px; gap: 8px; }
  .rc-tb-search { display: none; }
  .rc-tb-social { gap: 5px; }
  .rc-tb-social a { width: var(--tap-min); height: var(--tap-min); }
  .rc-tb-social svg { width: 11px; height: 11px; }
  .rc-tb-name { display: none; }
  .rc-tb-btn-hiring { font-size: var(--fs-300); padding: 5px 10px; letter-spacing: .12em; }
}
@media (max-width: 480px) {
  .rc-tb-inner { padding: 0 16px; }
  .rc-tb-role { display: none; }
  .rc-tb-user { display: none; }
  .rc-tb-user + .rc-tb-div { display: none; }
  .rc-tb-link { font-size: var(--fs-300); letter-spacing: .1em; }
  .rc-tb-btn-hiring { font-size: var(--fs-300); padding: 4px 8px; letter-spacing: .1em; }
}



/* =====================================================================
   SECTION 39: MAIN NAVIGATION
   Source: parts/nav.php v4.5
   Extracted: Session 88, March 13, 2026
   Generated by Claude
   Main navigation bar with mega dropdowns (desktop) and slide-out
   panel (mobile). Includes: navbar layout, nav items with underline
   animation, standard and mega dropdowns (About, Landscapes, BioFi,
   Updates with recent posts, Events), action buttons (Join, Donate),
   hamburger, mobile panel with accordion, backdrop, and responsive
   breakpoints. Hardcoded hex values converted to var() references.
   ===================================================================== */

/* === WRAPPER === */
.rc-nav-wrap {
  background: #FFFFFF;
  border-bottom: 1px solid rgba(0,0,0,.06);
  position: relative;
  z-index: 9999;
}

/* === RESET === */
.rc-nav-bar button,
.rc-mobile-panel .rc-mp-close,
.rc-mm-section > button {
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  -webkit-appearance: none;
  appearance: none;
}
.rc-nav-bar button:hover,
.rc-nav-bar button:focus,
.rc-nav-bar button:active,
.rc-mobile-panel .rc-mp-close:hover,
.rc-mobile-panel .rc-mp-close:focus,
.rc-mobile-panel .rc-mp-close:active {
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* === NAVBAR LAYOUT === */
.rc-nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  height: 72px;
  position: relative;
}
.rc-nav-logo { flex-shrink: 0; }
.rc-nav-logo img { width: 180px; height: auto; display: block; }
.rc-nav-center {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-grow: 1;
  overflow: visible;
  position: relative;
}
.rc-nav-item { position: relative; }

/* === SKIP LINK === */
.rc-skip-link {
  position: absolute; left: -9999px; top: auto;
  width: 1px; height: 1px; overflow: hidden; z-index: 99999;
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .15em; text-transform: uppercase; text-decoration: none; color: var(--rc-cream);
}
.rc-skip-link:focus {
  position: fixed; top: 0; left: 0; width: auto; height: auto;
  padding: 12px 24px; background: var(--rc-deep-forest); z-index: 99999;
}

/* === NAV ITEMS === */
.rc-nav-item > a,
.rc-nav-item > button {
  font-family: 'Jost', sans-serif;
  font-size: var(--fs-500); font-weight: 500; letter-spacing: .10em; text-transform: uppercase;
  color: var(--rc-forest); text-decoration: none; padding: 8px 9px;
  display: flex; align-items: center; gap: 5px; position: relative;
  transition: color .2s; cursor: pointer; white-space: nowrap;
  background: none; background-color: transparent; border: none;
  border-radius: 0; outline: none; box-shadow: none;
  -webkit-appearance: none; appearance: none;
}
.rc-nav-item > a:hover,
.rc-nav-item > button:hover {
  color: var(--rc-canopy);
  background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important;
}
.rc-nav-item > button:focus,
.rc-nav-item > button:active {
  background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important;
}
.rc-nav-item > button:focus-visible {
  outline: 2px solid var(--rc-canopy); outline-offset: 2px;
}

/* Underline animation */
.rc-nav-item > a::after,
.rc-nav-item > button::after {
  content: ''; position: absolute; bottom: 2px; left: 9px; right: 9px;
  height: 1px; background: var(--rc-gold); transform: scaleX(0); transition: transform .2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .rc-nav-item > a:hover::after,
  .rc-nav-item > button:hover::after { transform: scaleX(1); }
}
.rc-nav-item > a:active::after,
.rc-nav-item > button:active::after { transform: scaleX(1); }
.rc-nav-arrow { font-size: 8px; opacity: .4; }

/* === ACTION BUTTONS === */
.rc-nav-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.rc-nav-btn-join {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .15em; text-transform: uppercase; color: var(--rc-cream);
  background: var(--rc-canopy); border: 1px solid var(--rc-canopy);
  padding: 9px 18px; text-decoration: none; transition: all .2s; display: inline-block;
}
.rc-nav-btn-join:hover { background: var(--rc-forest); color: var(--rc-cream); border-color: var(--rc-forest); }
.rc-nav-btn-donate {
  font-family: 'Jost', sans-serif; font-size: var(--fs-500); font-weight: 500;
  letter-spacing: .10em; text-transform: uppercase; background: var(--rc-forest); color: var(--rc-cream);
  border: none; padding: 10px 20px; text-decoration: none;
  transition: background .2s; display: inline-block;
}
.rc-nav-btn-donate:hover { background: var(--rc-canopy); }

/* === STANDARD DROPDOWN === */
.rc-dd {
  position: absolute; top: 100%; left: 0; background: var(--rc-warm-white);
  border: 1px solid rgba(0,0,0,.06); box-shadow: 0 8px 32px rgba(0,0,0,.08);
  min-width: 260px; padding: 8px 0 12px;
  opacity: 0; pointer-events: none; transform: translateY(4px);
  transition: all .2s ease; z-index: 9999;
}
@media (hover: hover) and (pointer: fine) {
  .rc-nav-item:hover > .rc-dd { opacity: 1; pointer-events: auto; transform: translateY(0); }
}
.rc-dd-label {
  font-family: 'Inconsolata', monospace; font-size: 9px; font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase; color: var(--rc-fern);
  padding: 8px 24px 6px; display: block;
}
.rc-dd-divider { height: 1px; background: rgba(0,0,0,.04); margin: 8px 24px; }
.rc-dd a {
  font-family: 'Jost', sans-serif; font-size: 14px; font-weight: 400;
  color: var(--rc-forest); text-decoration: none; display: block; padding: 8px 24px; transition: all .15s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-dd a:hover { background: var(--rc-fog); padding-left: 28px; }
}
.rc-dd a:active { background: var(--rc-fog); }
.rc-dd .rc-dd-sub {
  font-family: 'Inconsolata', monospace; font-size: 10px;
  color: rgba(0,0,0,.25); display: block; margin-top: 2px;
}

/* === MEGA DROPDOWN === */
.rc-mega {
  position: absolute; top: 100%; left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--rc-warm-white); border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 8px 32px rgba(0,0,0,.08);
  width: 680px; padding: 8px 32px 28px;
  opacity: 0; pointer-events: none; transition: all .2s ease; z-index: 9999;
}
@media (hover: hover) and (pointer: fine) {
  .rc-nav-item:hover > .rc-mega { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0); }
}
/* Right-align Events mega to prevent right-edge overflow */
#dd-events { left: auto; right: 0; transform: translateY(4px); max-width: calc(100vw - 40px); }
@media (hover: hover) and (pointer: fine) {
  .rc-nav-item:hover > #dd-events { transform: translateY(0); }
}
.rc-mega-grid { display: grid; grid-template-columns: 180px 1fr; gap: 28px; padding-top: 20px; }
.rc-mega-col-label {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase; color: var(--rc-canopy);
  margin-bottom: 12px; display: block;
}
.rc-mega-nav a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-500); font-weight: 400;
  color: var(--rc-forest); text-decoration: none; display: block; padding: 6px 0; transition: all .15s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-mega-nav a:hover { color: var(--rc-canopy); padding-left: 4px; }
}
.rc-mega-nav a:active { color: var(--rc-canopy); }
.rc-mega-nav a.rc-mega-active { font-weight: 500; color: var(--rc-salmon); }

/* Landscape 3-col grid */
.rc-mega-landscapes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.rc-mega-landscapes a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-500); font-weight: 300;
  color: var(--rc-text); text-decoration: none; display: block; padding: 9px 12px;
  border-bottom: 1px solid rgba(0,0,0,.03); transition: all .15s; white-space: nowrap;
}
@media (hover: hover) and (pointer: fine) {
  .rc-mega-landscapes a:hover { background: var(--rc-fog); color: var(--rc-forest); }
}
.rc-mega-landscapes a:active { background: var(--rc-fog); color: var(--rc-forest); }
.rc-mega-dot {
  display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--rc-moss); margin-right: 6px; vertical-align: middle;
}

/* About two-column grid */
.rc-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding-top: 16px; }
.rc-about-grid .rc-mega-nav a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-500); font-weight: 400;
  color: var(--rc-forest); text-decoration: none; display: block; padding: 6px 0; transition: all .15s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-about-grid .rc-mega-nav a:hover { color: var(--rc-canopy); padding-left: 4px; }
}
.rc-about-grid .rc-mega-nav a:active { color: var(--rc-canopy); }

/* Light nav style */
.rc-mega-nav-light a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-500); font-weight: 300;
  color: var(--rc-text); text-decoration: none; display: block; padding: 8px 12px;
  border-bottom: 1px solid rgba(0,0,0,.03); transition: all .15s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-mega-nav-light a:hover { background: var(--rc-fog); color: var(--rc-forest); padding-left: 16px; }
}
.rc-mega-nav-light a:active { background: var(--rc-fog); color: var(--rc-forest); }

/* Light style inside standard dropdown */
.rc-dd .rc-dd-light a {
  font-family: 'Jost', sans-serif; font-size: 13px; font-weight: 300;
  color: var(--rc-text); text-decoration: none; display: block; padding: 8px 24px;
  border-bottom: 1px solid rgba(0,0,0,.03); transition: all .15s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-dd .rc-dd-light a:hover { background: var(--rc-fog); color: var(--rc-forest); padding-left: 28px; }
}
.rc-dd .rc-dd-light a:active { background: var(--rc-fog); color: var(--rc-forest); }
.rc-dd .rc-dd-light .rc-dd-sub {
  font-family: 'Inconsolata', monospace; font-size: 10px;
  color: rgba(0,0,0,.25); display: block; margin-top: 2px;
}

/* === BIOFI MEGA DROPDOWN === */
.rc-biofi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding-top: 16px; }
.rc-biofi-grid .rc-mega-nav a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-500); font-weight: 400;
  color: var(--rc-forest); text-decoration: none; display: block; padding: 6px 0; transition: all .15s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-biofi-grid .rc-mega-nav a:hover { color: var(--rc-river); padding-left: 4px; }
}
.rc-biofi-grid .rc-mega-nav a:active { color: var(--rc-river); }
.rc-biofi-grid .rc-mega-nav-light a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-500); font-weight: 300;
  color: var(--rc-text); text-decoration: none; display: block; padding: 8px 12px;
  border-bottom: 1px solid rgba(0,0,0,.03); transition: all .15s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-biofi-grid .rc-mega-nav-light a:hover { background: var(--rc-fog); color: var(--rc-river); padding-left: 16px; }
}
.rc-biofi-grid .rc-mega-nav-light a:active { background: var(--rc-fog); color: var(--rc-river); }
.rc-biofi-divider { height: 1px; background: rgba(0,0,0,.04); margin: 8px 0; }
.rc-biofi-sub-label {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase; color: var(--rc-canopy);
  padding: 10px 0 4px; display: block;
}

/* === MEGA-DROPDOWN STRUCTURAL UTILITIES (A11Y-2.5b) === */
/* Tokenizes 13 inline structural overrides in parts/nav.php that
   previously bypassed CSS architecture. Width modifiers, three-column
   grid layout, sidebar column constraint, and decorative dividers. */

/* Mega-dropdown width modifiers. The base .rc-mega rule defaults to
   680px; these modifiers override to the two distinct widths used
   by the menus that need a wider or narrower frame. Replaces five
   inline width:520px;padding-right:24px and width:760px;padding-
   right:24px attributes on About, BioFi, InfoHub, Updates, Events. */
.rc-mega.rc-mega--narrow { width: 520px; padding-right: 24px; }
.rc-mega.rc-mega--wide   { width: 760px; padding-right: 24px; }

/* Three-column grid pattern used by InfoHub, Updates, Events megas.
   Replaces three identical inline display:grid;grid-template-columns:
   1fr 1fr auto;gap:24px;padding-top:16px attributes. */
.rc-mega-3col {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 24px;
  padding-top: 16px;
}

/* Third-column constraint inside .rc-mega-3col grids. Replaces three
   identical inline min-width:150px attributes on the sidebar column
   inside InfoHub, Updates, and Events megas. */
.rc-mega-3col__sidebar { min-width: 150px; }

/* Decorative horizontal divider for use inside mega-dropdown columns.
   Replaces three inline divider <div> elements in parts/nav.php with
   varying hardcoded backgrounds (rgba(0,0,0) at 0.04, 0.06, 0.08) and
   margins (12px, 8px, 6px-8px). Background opacity standardized to
   0.06 across all three; visual delta at 1px height is sub-perceptual.
   Three margin variants preserve the original spacing intent: base
   (8px) is the most common; --lg (12px) for the About inner divider;
   --xs (6px-8px) for the Events Browse column. */
.rc-mega-divider {
  height: 1px;
  background: rgba(0,0,0,0.06);
  margin: 8px 0;
}
.rc-mega-divider--lg { margin: 12px 0; }
.rc-mega-divider--xs { margin: 6px 0 8px; }

/* === UPDATES MEGA: RECENT POSTS === */
.rc-updates-grid { display: grid; grid-template-columns: 1fr 180px; gap: 28px; padding-top: 16px; }
.rc-updates-posts { display: flex; flex-direction: column; gap: 0; }
.rc-updates-post {
  display: flex; gap: 14px; align-items: center;
  padding: 10px 0; border-bottom: 1px solid rgba(0,0,0,.04);
  text-decoration: none; transition: background .15s;
}
.rc-updates-post:last-child { border-bottom: none; }
@media (hover: hover) and (pointer: fine) {
  .rc-updates-post:hover { background: rgba(232,237,228,.5); margin: 0 -8px; padding: 10px 8px; }
}
.rc-updates-thumb {
  width: 52px; height: 52px; flex-shrink: 0; overflow: hidden;
  background: var(--rc-fog);
}
.rc-updates-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rc-updates-thumb-empty {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
}
.rc-updates-thumb-empty svg { width: 20px; height: 20px; fill: rgba(0,0,0,.12); }
.rc-updates-post-info { min-width: 0; }
.rc-updates-post-title {
  font-family: 'Jost', sans-serif; font-size: var(--fs-400); font-weight: 500;
  color: var(--rc-forest); line-height: 1.3; display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rc-updates-post-date {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); letter-spacing: .1em;
  color: var(--rc-on-light-meta); margin-top: 3px;
}
/* Empty-state fallback text inside mega dropdowns (A11Y-04 B.6.5).
   Replaces three inline style="font-size:13px;color:#888;margin:8px 0;"
   attributes on <p> tags in parts/nav.php fallback branches (no
   opportunities / no resources / no upcoming events). */
.rc-mega-empty {
  font-family: 'Jost', sans-serif; font-size: var(--fs-400); font-weight: 400;
  color: var(--rc-on-light-meta); margin: 8px 0;
}
.rc-updates-links { padding-top: 4px; }
.rc-updates-links a {
  font-family: 'Jost', sans-serif; font-size: 14px; font-weight: 400;
  color: var(--rc-forest); text-decoration: none; display: block; padding: 6px 0; transition: all .15s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-updates-links a:hover { color: var(--rc-canopy); padding-left: 4px; }
}

/* === HAMBURGER === */
.rc-hamburger {
  display: none;
  background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important; outline: none;
  -webkit-appearance: none; appearance: none; cursor: pointer; padding: 12px;
  flex-shrink: 0; position: relative; z-index: 9999;
  width: 48px; height: 48px; align-items: center; justify-content: center;
}
.rc-hamburger:hover, .rc-hamburger:focus, .rc-hamburger:active {
  background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important;
}
.rc-hamburger:focus-visible { outline: 2px solid var(--rc-canopy); outline-offset: 2px; }
.rc-hamburger span {
  display: block; width: 20px; height: 2px; background: var(--rc-forest);
  transition: all .3s; position: absolute; left: 14px;
}
.rc-hamburger span:nth-child(1) { top: 16px; }
.rc-hamburger span:nth-child(2) { top: 23px; }
.rc-hamburger span:nth-child(3) { top: 30px; }
.rc-hamburger[aria-expanded="true"] span:nth-child(1) { top: 23px; transform: rotate(45deg); }
.rc-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rc-hamburger[aria-expanded="true"] span:nth-child(3) { top: 23px; transform: rotate(-45deg); }

/* === MOBILE PANEL === */
.rc-mobile-panel {
  position: fixed; top: 0; left: 0; bottom: 0;
  width: min(320px, 85vw); background: var(--rc-warm-white);
  box-shadow: 4px 0 32px rgba(0,0,0,.12); z-index: 10002;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  transform: translateX(-100%); transition: transform .25s ease;
}
.rc-mobile-panel.rc-panel-open { transform: translateX(0); }
.rc-mp-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 24px; border-bottom: 1px solid rgba(0,0,0,.06);
}
.rc-mp-header img { width: 140px; height: auto; }
.rc-mp-close {
  background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important; outline: none;
  -webkit-appearance: none; appearance: none; cursor: pointer; padding: 8px;
  width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;
  color: var(--rc-forest); font-size: 20px;
}
.rc-mp-close:hover, .rc-mp-close:focus, .rc-mp-close:active {
  background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important;
  color: var(--rc-canopy);
}
.rc-mp-close:focus-visible { outline: 2px solid var(--rc-canopy); outline-offset: 2px; }

/* Mobile accordion */
.rc-mm-section { border-bottom: 1px solid rgba(0,0,0,.04); }
.rc-mm-section > button {
  font-family: 'Jost', sans-serif; font-size: var(--fs-400); font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase; color: var(--rc-forest);
  background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important; outline: none;
  -webkit-appearance: none; appearance: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 16px 24px; min-height: 52px; transition: color .15s;
}
.rc-mm-section > button:hover, .rc-mm-section > button:focus, .rc-mm-section > button:active {
  color: var(--rc-forest); background: var(--rc-fog) !important; background-color: var(--rc-fog) !important;
  border: none !important; box-shadow: none !important;
}
.rc-mm-section > button:focus-visible { outline: 2px solid var(--rc-canopy); outline-offset: -2px; }
.rc-chevron { font-size: 10px; opacity: .4; transition: transform .2s; }
.rc-mm-section > button[aria-expanded="true"] .rc-chevron { transform: rotate(180deg); }
.rc-mm-link { border-bottom: 1px solid rgba(0,0,0,.04); }
.rc-mm-link a {
  font-family: 'Inconsolata', monospace; font-size: 13px; font-weight: 500;
  letter-spacing: .15em; text-transform: uppercase; color: var(--rc-forest);
  text-decoration: none; display: flex; align-items: center;
  padding: 16px 24px; min-height: 52px; transition: color .15s;
}
.rc-mm-link a:hover { color: var(--rc-forest); background: var(--rc-fog); }
.rc-mm-sub { padding: 0 24px 16px 32px; }
.rc-mm-sub[hidden] { display: none; }
.rc-mm-label {
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase; color: var(--rc-canopy);
  padding: 10px 0 4px; display: block;
}
.rc-mm-divider { height: 1px; background: rgba(0,0,0,.04); margin: 8px 0; }
.rc-mm-sub a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-700); font-weight: 400;
  color: var(--rc-forest); text-decoration: none; display: flex; align-items: center;
  padding: 6px 0; min-height: 40px; transition: color .15s;
}
.rc-mm-sub a:hover { color: var(--rc-forest); background: var(--rc-fog); border-radius: 4px; }
.rc-mm-actions {
  padding: 20px 24px; border-top: 1px solid rgba(0,0,0,.06);
  display: flex; flex-direction: column; gap: 10px;
}
.rc-mm-actions a { text-align: center; display: block; }
.rc-backdrop {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,.3); z-index: 10001; opacity: 0; transition: opacity .25s;
}
.rc-backdrop.rc-backdrop-visible { opacity: 1; }
.rc-backdrop[hidden] { display: none; }

/* === NAV RESPONSIVE === */
@media (max-width: 1100px) {
  .rc-nav-item > a,
  .rc-nav-item > button { padding: 8px 7px; font-size: var(--fs-400); letter-spacing: .08em; }
  .rc-nav-actions { gap: 8px; }
  .rc-nav-btn-join { padding: 8px 14px; font-size: var(--fs-300); }
  .rc-nav-btn-donate { padding: 9px 16px; font-size: var(--fs-300); letter-spacing: .15em; }
  .rc-nav-bar { padding: 0 28px; }
}
@media (max-width: 960px) {
  .rc-nav-center { display: none; }
  .rc-hamburger { display: flex; }
  .rc-nav-bar { padding: 0 24px; }
  .rc-nav-logo img { width: 160px; }
  .rc-nav-actions { display: none; }
}
@media (max-width: 600px) {
  .rc-nav-bar { height: 64px; padding: 0 16px; }
  .rc-nav-logo img { width: 140px; }
  .rc-mobile-panel { width: min(300px, 90vw); }
}
@media (prefers-reduced-motion: reduce) {
  .rc-mobile-panel, .rc-backdrop, .rc-hamburger span, .rc-chevron { transition: none; }
}
body.admin-bar .rc-mobile-panel { top: 32px; height: calc(100% - 32px); }
@media (max-width: 782px) {
  body.admin-bar .rc-mobile-panel { top: 46px; height: calc(100% - 46px); }
}



/* =====================================================================
   SECTION 40: STEWARD BAR
   Source: parts/steward-bar.php v6.5
   Extracted: Session 88, March 13, 2026
   Generated by Claude
   Logged-in tools navigation bar below main nav. Role dot and label
   on far left. Role-gated links: all users get Members, Orgs, Add
   Post, Add Event, Dashboard. Learner+ gets RC Zoom, RC MN, DS4RE.
   Steward+ gets Reportback, Payments. Mobile: grid icon toggle with
   two-column panel. Hardcoded hex values converted to var() refs.
   ===================================================================== */

/* Wrapper */
.rc-sb-wrap { background: var(--rc-cream); border-bottom: 1px solid rgba(0,0,0,0.04); }

/* Desktop bar */
.rc-sb {
  display: flex; align-items: center; justify-content: space-between;
  max-width: 1200px; margin: 0 auto; padding: 0 40px; height: 36px;
}
.rc-sb-left { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.rc-sb-right { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }

/* Identity */
.rc-sb-identity { display: flex; align-items: center; gap: 7px; padding: 4px 8px; white-space: nowrap; }
.rc-sb-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.sb-dot-admin, .sb-dot-staff { background: var(--rc-gold); }
.sb-dot-steward { background: var(--rc-fern); }
.sb-dot-learner { background: var(--rc-river); }
.sb-dot-member { background: var(--rc-moss); }
.rc-sb-role-label {
  font-family: 'Jost', sans-serif; font-size: var(--fs-400); font-weight: 500;
  letter-spacing: .02em; text-transform: capitalize; color: var(--rc-forest);
}

/* Links */
.rc-sb-links { display: flex; align-items: center; gap: 4px; flex-wrap: nowrap; }
.rc-sb-links a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-400); font-weight: 400;
  letter-spacing: .02em; text-transform: capitalize; color: var(--rc-canopy);
  text-decoration: none; padding: 10px 10px; transition: color .15s; white-space: nowrap;
}
@media (hover: hover) and (pointer: fine) {
  .rc-sb-links a:hover {
    color: var(--rc-forest); text-decoration: underline;
    text-underline-offset: 3px; text-decoration-color: rgba(184,150,62,.5);
  }
}
.rc-sb-links a:active { color: var(--rc-forest); }

/* Divider */
.rc-sb-div { width: 1px; height: 14px; background: rgba(0,0,0,.14); flex-shrink: 0; margin: 0 4px; }

/* Mobile toggle */
.rc-sb-toggle {
  display: none; background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important; outline: none;
  -webkit-appearance: none; appearance: none; cursor: pointer;
  width: 44px; height: 44px; align-items: center; justify-content: center;
  padding: 0; flex-shrink: 0;
}
.rc-sb-toggle:hover, .rc-sb-toggle:focus, .rc-sb-toggle:active {
  background: none !important; background-color: transparent !important;
  border: none !important; box-shadow: none !important;
}
.rc-sb-toggle:focus-visible { outline: 2px solid var(--rc-canopy); outline-offset: 2px; }
.rc-sb-grid-icon { display: grid; grid-template-columns: 4px 4px; gap: 3px; }
.rc-sb-grid-icon span {
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--rc-fern); display: block; transition: opacity .2s;
}
.rc-sb-toggle[aria-expanded="true"] .rc-sb-grid-icon span { background: var(--rc-forest); }

/* Mobile panel */
.rc-sb-panel { overflow: hidden; transition: max-height .25s ease; }
.rc-sb-panel[hidden] { display: none; }
.rc-sb-panel-inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: 2px; padding: 8px 24px 16px;
}
.rc-sb-panel-inner a {
  font-family: 'Jost', sans-serif; font-size: var(--fs-500); font-weight: 400;
  letter-spacing: .02em; text-transform: capitalize; color: var(--rc-canopy);
  text-decoration: none; padding: 12px 12px; min-height: 48px;
  display: flex; align-items: center; white-space: nowrap;
  transition: color .15s; border-radius: 4px;
}
@media (hover: hover) and (pointer: fine) {
  .rc-sb-panel-inner a:hover {
    color: var(--rc-forest); text-decoration: underline;
    text-underline-offset: 3px; text-decoration-color: rgba(184,150,62,.5);
  }
}
.rc-sb-panel-inner a:active { color: var(--rc-forest); }

/* Steward bar responsive */
@media (max-width: 960px) {
  .rc-sb { height: 44px; padding: 0 24px; }
  /* RC Zoom and DS4RE (left zone) are duplicated inside the Connect
     dropdown at mobile, so hide them on the bar line to avoid dupes
     and to free up horizontal space. (A11Y-05 C.m2) */
  .rc-sb-left .rc-sb-links { display: none; }
  .rc-sb-left .rc-sb-div { display: none; }
}
@media (max-width: 600px) {
  .rc-sb { padding: 0 16px; }
  .rc-sb-panel-inner { padding: 8px 16px 16px; }
  .rc-sb-panel-inner a { font-size: var(--fs-400); padding: 10px 12px; min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .rc-sb-panel { transition: none; }
}

/* Steward bar dropdowns (v8.0, S121) */
.rc-sb-dropdown { position: relative; display: flex; align-items: center; }
.rc-sb-dropdown-trigger {
  font-family: 'Jost', sans-serif; font-size: var(--fs-400); font-weight: 500;
  letter-spacing: .02em; text-transform: capitalize; color: var(--rc-canopy);
  background: none; border: none; cursor: pointer;
  padding: 10px 10px; display: flex; align-items: center; gap: 6px;
  white-space: nowrap; transition: color .15s;
}
.rc-sb-dropdown-trigger svg {
  flex-shrink: 0; width: 14px; height: 14px;
  color: var(--rc-canopy);
}
@media (hover: hover) and (pointer: fine) {
  .rc-sb-dropdown-trigger:hover { color: var(--rc-forest); }
  .rc-sb-dropdown-trigger:hover svg { color: var(--rc-forest); }
}

/* Connect dropdown is mobile-only. On desktop its contents are already
   visible as bar-line anchors (Members, Organizations, Dashboard) and
   left-zone links (RC Zoom, DS4RE). Hidden at 961px and up. (A11Y-05 C.m2) */
@media (min-width: 961px) {
  #rc-sb-dd-connect { display: none; }
}
.rc-sb-caret {
  display: inline-block; width: 0; height: 0;
  border-left: 3.5px solid transparent; border-right: 3.5px solid transparent;
  border-top: 4px solid currentColor; margin-top: 1px;
  transition: transform .15s;
}
.rc-sb-dropdown-trigger[aria-expanded="true"] .rc-sb-caret { transform: rotate(180deg); }
.rc-sb-dropdown-menu {
  display: none; position: absolute; top: 100%; left: 0; z-index: 1000;
  background: var(--rc-cream); border: 1px solid var(--rc-ui-border-light);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  padding: 6px 0; min-width: 160px; margin-top: 4px;
}
.rc-sb-dropdown-menu.rc-sb-dd-open { display: block; }
.rc-sb-dropdown-menu a {
  display: block; padding: 10px 16px;
  font-family: 'Jost', sans-serif; font-size: var(--fs-400); font-weight: 400;
  letter-spacing: .02em; text-transform: capitalize; color: var(--rc-canopy); text-decoration: none;
  transition: background .1s, color .1s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-sb-dropdown-menu a:hover { background: rgba(0,0,0,0.03); color: var(--rc-forest); }
}

/* Mobile panel section headers (v8.0, S121; Tier L unified A11Y-05 C.5.1) */
.rc-sb-panel-heading {
  grid-column: 1 / -1;
  font-family: 'Inconsolata', monospace; font-size: var(--fs-300); font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase; color: var(--rc-canopy);
  padding: 12px 12px 2px; margin-top: 4px;
}
.rc-sb-panel-heading:first-child { margin-top: 0; padding-top: 4px; }

/* Two-column dropdown (Steward menu, v8.3 S136) */
.rc-sb-dropdown-cols {
    display: none;
    flex-direction: row;
    padding: 10px 0;
    min-width: auto;
    right: 0;
    left: auto;
}
.rc-sb-dropdown-cols.rc-sb-dd-open {
  display: flex;
}
.rc-sb-dd-col {
  padding: 0 16px;
  min-width: 130px;
}
.rc-sb-dd-col + .rc-sb-dd-col {
  border-left: 1px solid rgba(0,0,0,0.06);
}
.rc-sb-dd-heading {
  display: block;
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300);
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--rc-canopy);
  margin-bottom: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.rc-sb-dd-col a {
  display: block;
  padding: 10px 0;
  font-family: 'Jost', sans-serif;
  font-size: var(--fs-400);
  font-weight: 400;
  letter-spacing: .02em;
  text-transform: capitalize;
  color: var(--rc-canopy);
  text-decoration: none;
  transition: color .1s;
}
@media (hover: hover) and (pointer: fine) {
  .rc-sb-dd-col a:hover { color: var(--rc-forest); }
}

/* Add dropdown divider (v8.3 S136): removed A11Y-05 C.6 (not emitted by
   steward-bar.php v10.3 or v10.4, dead CSS). */

/* Mobile steward bar: four icon-only dropdown triggers on the bar
   line itself, replacing the panel+accordion approach from v1.11.
   At max-width 960px, bar-line anchors (Members, Organizations,
   Dashboard) hide and the four .rc-sb-dropdown instances (Connect,
   Add, Steward, Staff) render as 40x40 icon buttons. Each dropdown
   menu opens as a positioned overlay right-aligned to the viewport.
   (A11Y-05 C.m2) */
@media (max-width: 960px) {
  /* Bar-line flat anchors and their dividers hide on mobile; their
     destinations live inside the Connect dropdown instead. The four
     .rc-sb-dropdown children of .rc-sb-links (Connect, Add, Steward,
     Staff) stay visible. Members, Organizations, Dashboard anchors
     and the two <span class="rc-sb-div"> dividers hide. (A11Y-05 C.m2) */
  .rc-sb-right > .rc-sb-links > a { display: none; }
  .rc-sb-right > .rc-sb-links > .rc-sb-div { display: none; }

  /* Icon-only trigger styling: font-size 0 on the trigger suppresses
     the text label without markup change; the inner SVG keeps its
     own dimensions. The .rc-sb-caret is hidden at mobile via
     display none since the icon itself signals intent. */
  .rc-sb-right .rc-sb-dropdown-trigger {
    font-size: 0;
    padding: 0;
    width: 40px;
    height: 40px;
    min-height: 40px;
    justify-content: center;
    gap: 0;
  }
  .rc-sb-right .rc-sb-dropdown-trigger .rc-sb-caret {
    display: none;
  }
  .rc-sb-right .rc-sb-dropdown-trigger svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--rc-forest);
  }

  /* Mobile dropdown menu: right-aligned to the viewport edge to
     avoid overflow. Width caps at viewport minus 32px; vertical
     scroll inside the menu if content exceeds viewport height. */
  .rc-sb-right .rc-sb-dropdown-menu {
    right: 0;
    left: auto;
    min-width: 240px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 140px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Mobile menu link rows: font-size restored (the trigger font
     suppression does not cascade into the menu because font-size
     0 on the trigger only affects its own direct text node). */
  .rc-sb-right .rc-sb-dropdown-menu a {
    font-size: var(--fs-400);
  }

  /* Multi-column dropdowns (Steward, Staff): stack columns
     vertically on mobile. Column dividers switch from left-border
     to top-border; first column has no top border. */
  .rc-sb-right .rc-sb-dropdown-cols {
    flex-direction: column;
    padding: 10px 0;
  }
  .rc-sb-right .rc-sb-dropdown-cols .rc-sb-dd-col {
    padding: 8px 16px;
    min-width: 0;
  }
  .rc-sb-right .rc-sb-dropdown-cols .rc-sb-dd-col + .rc-sb-dd-col {
    border-left: none;
    border-top: 1px solid rgba(0,0,0,0.06);
    margin-top: 4px;
  }

  /* Gap between icon triggers on the bar line so they read as
     distinct actions rather than a single cluster. */
  .rc-sb-right { gap: 6px; }

  /* Desktop toggle and panel are retired in steward-bar.php v10.5
     but we defensively hide them here in case any cached HTML
     reaches the browser during the deploy window. */
  .rc-sb-toggle { display: none; }
  .rc-sb-panel { display: none; }
}



/* =====================================================================
   SECTION 41: FOOTER AND CTA BAND
   Source: parts/footer.php v1.0
   Extracted: Session 88, March 13, 2026
   Generated by Claude
   CTA band (dark green, tagline, two buttons) and four-column
   footer (brand + newsletter, link columns, social icons, copyright
   bar). Includes WPForms overrides for dark background newsletter
   form. Hardcoded hex values converted to var() references.
   ===================================================================== */

/* CTA Band */
.rc-cta-band {
  background: var(--rc-forest);
  padding: 72px 40px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.rc-cta-band::before {
  content: '';
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  width: 600px;
  height: 600px;
  border-radius: 50%;
  border: 100px solid rgba(255,255,255,0.01);
}
.rc-cta-eyebrow {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-400);
  font-weight: 500;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--rc-moss);
  margin-bottom: 20px;
  position: relative;
  z-index: 2;
}
.rc-cta-heading {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 700;
  font-style: italic;
  color: var(--rc-cream);
  line-height: 1.1;
  margin-bottom: 16px;
  position: relative;
  z-index: 2;
}
.rc-cta-text {
  font-family: 'Jost', sans-serif;
  font-size: var(--fs-700);
  font-weight: 300;
  color: var(--rc-lichen);
  max-width: 480px;
  margin: 0 auto 28px;
  line-height: 1.7;
  position: relative;
  z-index: 2;
}
.rc-cta-buttons {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}
.rc-cta-btn-primary {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  background: var(--rc-salmon);
  color: var(--rc-cream);
  padding: 14px 32px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s;
}
.rc-cta-btn-primary:hover { background: var(--rc-salmon-dark); }
.rc-cta-btn-outline {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  background: transparent;
  color: var(--rc-cream);
  padding: 14px 32px;
  border: 1px solid var(--rc-ui-border-dark);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s;
}
.rc-cta-btn-outline:hover {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.6);
}
.rc-cta-btn-primary:focus-visible,
.rc-cta-btn-outline:focus-visible {
  outline: 2px solid var(--rc-cream);
  outline-offset: 2px;
}

/* Footer */
.rc-footer {
  background: var(--rc-deep-forest);
  font-family: 'Jost', sans-serif;
}

/* Top: brand + newsletter */
.rc-footer-top {
  max-width: 1120px;
  margin: 0 auto;
  padding: 56px 40px 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.rc-footer-logo img { height: 40px; width: auto; }
.rc-footer-tagline {
  font-family: 'Cormorant Garamond', serif;
  font-size: var(--fs-700);
  font-style: italic;
  color: var(--rc-sky-water);
  margin: 12px 0 20px;
  line-height: 1.5;
}
.rc-footer-org {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-400);
  letter-spacing: 0.15em;
  color: var(--rc-on-dark-secondary);
  line-height: 1.6;
}
.rc-footer-nl-label {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300);
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--rc-gold);
  margin-bottom: 10px;
}
.rc-footer-nl-heading {
  font-family: 'Cormorant Garamond', serif;
  font-size: var(--fs-1000);
  font-weight: 700;
  color: var(--rc-cream);
  margin-bottom: 8px;
}
.rc-footer-nl-text {
  font-family: 'Jost', sans-serif;
  font-size: var(--fs-500);
  font-weight: 300;
  color: var(--rc-lichen);
  margin-bottom: 16px;
  line-height: 1.6;
}

/* WPForms overrides for dark footer */
.rc-footer-newsletter .wpforms-container {
  margin: 0 !important;
  padding: 0 !important;
}
.rc-footer-newsletter .wpforms-form input[type="text"],
.rc-footer-newsletter .wpforms-form input[type="email"],
.rc-footer-newsletter .wpforms-form select,
.rc-footer-newsletter .wpforms-form textarea {
  font-family: 'Jost', sans-serif !important;
  font-size: var(--fs-400) !important;
  font-weight: 300 !important;
  padding: 10px 14px !important;
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid var(--rc-ui-border-dark) !important;
  color: var(--rc-cream) !important;
  transition: border-color 0.2s;
}
.rc-footer-newsletter .wpforms-form input::placeholder,
.rc-footer-newsletter .wpforms-form textarea::placeholder {
  color: var(--rc-on-dark-muted) !important;
}
.rc-footer-newsletter .wpforms-form input:focus,
.rc-footer-newsletter .wpforms-form select:focus,
.rc-footer-newsletter .wpforms-form textarea:focus {
  border-color: var(--rc-moss) !important;
}
.rc-footer-newsletter .wpforms-form input:focus-visible,
.rc-footer-newsletter .wpforms-form select:focus-visible,
.rc-footer-newsletter .wpforms-form textarea:focus-visible {
  outline: 2px solid var(--rc-cream);
  outline-offset: 2px;
}
.rc-footer-newsletter .wpforms-form select option {
  background: var(--rc-deep-forest) !important;
  color: var(--rc-cream) !important;
}
.rc-footer-newsletter .wpforms-form label,
.rc-footer-newsletter .wpforms-form .wpforms-field-label {
  font-family: 'Inconsolata', monospace !important;
  font-size: var(--fs-200) !important;
  font-weight: 500 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--rc-on-dark-secondary) !important;
  margin-bottom: 4px !important;
}
.rc-footer-newsletter .wpforms-form .wpforms-field-sublabel {
  display: none !important;
}
.rc-footer-newsletter .wpforms-form button[type="submit"],
.rc-footer-newsletter .wpforms-form .wpforms-submit {
  font-family: 'Inconsolata', monospace !important;
  font-size: var(--fs-300) !important;
  font-weight: 500 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  background: var(--rc-salmon) !important;
  color: var(--rc-cream) !important;
  border: none !important;
  padding: 12px 24px !important;
  cursor: pointer;
  transition: background 0.2s;
}
.rc-footer-newsletter .wpforms-form button[type="submit"]:hover,
.rc-footer-newsletter .wpforms-form .wpforms-submit:hover {
  background: var(--rc-salmon-dark) !important;
}
.rc-footer-newsletter .wpforms-form button[type="submit"]:focus-visible,
.rc-footer-newsletter .wpforms-form .wpforms-submit:focus-visible {
  outline: 2px solid var(--rc-cream);
  outline-offset: 2px;
}
.rc-footer-newsletter .wpforms-form .wpforms-field {
  margin-bottom: 10px !important;
  padding: 0 !important;
}

/* Link columns */
.rc-footer-links {
  max-width: 1120px;
  margin: 0 auto;
  padding: 40px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.rc-footer-col-label {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300);
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--rc-gold);
  margin-bottom: 16px;
}
.rc-footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.rc-footer-col li { margin-bottom: 8px; }
.rc-footer-col a {
  font-family: 'Jost', sans-serif;
  font-size: var(--fs-500);
  font-weight: 300;
  color: var(--rc-lichen);
  text-decoration: none;
  padding: 7px 0;
  display: inline-block;
  transition: color 0.2s;
}
.rc-footer-col a:hover { color: var(--rc-on-dark-strong); }

/* Social icons */
.rc-footer-social {
  display: flex;
  gap: 12px;
  margin-top: 8px;
}
.rc-footer-social-icon {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  cursor: pointer;
  text-decoration: none;
}
.rc-footer-social-icon:hover svg {
  fill: var(--rc-on-dark-strong);
}
.rc-footer-social-icon svg {
  width: 20px;
  height: 20px;
  fill: var(--rc-lichen);
  transition: fill 0.2s;
}

/* Focus indicators on the deep forest surface (A11Y-07).
   Cream (13.68:1 on deep forest) meets WCAG 1.4.11 with ample headroom.
   Canopy (the global baseline default in rc-core.css) reads only
   approximately 2.6:1 on deep forest and would fail the 3:1 UI component
   threshold, so these elements override the default. */
.rc-footer-col a:focus-visible,
.rc-footer-bottom-links a:focus-visible,
.rc-footer-social-icon:focus-visible {
  outline: 2px solid var(--rc-cream);
  outline-offset: 2px;
}

/* Bottom bar */
.rc-footer-bottom {
  max-width: 1120px;
  margin: 0 auto;
  padding: 20px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.rc-footer-copyright {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300);
  letter-spacing: 0.1em;
  color: var(--rc-on-dark-secondary);
}
.rc-footer-bottom-links {
  display: flex;
  gap: 20px;
}
.rc-footer-bottom-links a {
  font-family: 'Inconsolata', monospace;
  font-size: var(--fs-300);
  letter-spacing: 0.1em;
  color: var(--rc-on-dark-secondary);
  text-decoration: none;
  padding: 8px 0;
  display: inline-block;
  transition: color 0.2s;
}
.rc-footer-bottom-links a:hover { color: var(--rc-cream); }

/* Footer responsive */
@media (max-width: 768px) {
  .rc-cta-band { padding: 56px 24px; }
  .rc-footer-top {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 40px 24px 32px;
  }
  .rc-footer-links {
    grid-template-columns: 1fr 1fr;
    padding: 32px 24px;
  }
  .rc-footer-bottom {
    flex-direction: column;
    text-align: center;
    padding: 20px 24px;
  }
}
@media (max-width: 480px) {
  .rc-footer-links { grid-template-columns: 1fr; }
}


