/*
  CMS 3.0 Unified Theme - Consolidated Blueprint Theme Bridge
  Mechanical consolidation of Waves 2-13 plus final compatibility hardening.
  Rule order, selectors, declarations, specificity, and per-wave gates from the
  consolidated waves are preserved.

  LONG-TERM ROLE
  This file is a compatibility adapter for existing/renderer-sensitive blueprints.
  New or substantially revised blueprints should consume the semantic/component
  token contract directly and should not require default-literal [style*=...]
  detection. Add new bridge rules only when direct token adoption is not safely
  possible. Do not deduplicate/reorder legacy rules without regression validation.
*/
/* ===== BEGIN ffr-blueprint-wave2-bridge.css ===== */
/* ==========================================================================
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 2 — Renderer-Safe CSS Bridge
   2026-08-22

   PURPOSE
   - Themes four renderer-sensitive blueprints without modifying their source,
     form definition, model description, identity, or compiled CMS template.
   - Scoped to the Variant Master Wave 2 activation gate only.
   - Maps only known legacy/default author values to semantic site tokens.
   - Non-default author color values remain authoritative.

   IMPORTANT
   These declarations intentionally use !important only where required to
   override inline custom properties or unlayered blueprint-local styles.
   Do not generalize this compatibility pattern outside renderer-sensitive
   blueprints without review.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Featured Block with Images
   Known working source emits inline custom properties when configured.
   Only legacy defaults (or missing variables) inherit the site theme.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block[style*="--ffr-featured-background: #ffffff"],
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block:not([style*="--ffr-featured-background:"]) {
  --ffr-featured-background: var(--ffr-bg-surface, #ffffff) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-featured-block[style*="--ffr-featured-header-color: #243b63"],
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block:not([style*="--ffr-featured-header-color:"]) {
  --ffr-featured-header-color: var(--ffr-text-primary, #243b63) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-featured-block[style*="--ffr-featured-description-color: #2b2b2b"],
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block:not([style*="--ffr-featured-description-color:"]) {
  --ffr-featured-description-color: var(--ffr-text-secondary, #2b2b2b) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-featured-block[style*="--ffr-featured-button-background: #f69f00"],
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block:not([style*="--ffr-featured-button-background:"]) {
  --ffr-featured-button-background: var(--ffr-button-primary-bg, #f69f00) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-featured-block[style*="--ffr-featured-button-text: #ffffff"],
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block:not([style*="--ffr-featured-button-text:"]) {
  --ffr-featured-button-text: var(--ffr-button-primary-text, #ffffff) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-featured-block[style*="--ffr-featured-button-background: #f69f00"] .ffr-featured-btn:hover,
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block[style*="--ffr-featured-button-background: #f69f00"] .ffr-featured-btn:focus-visible,
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block:not([style*="--ffr-featured-button-background:"]) .ffr-featured-btn:hover,
body[data-ffr-blueprint-wave2="1"] .ffr-featured-block:not([style*="--ffr-featured-button-background:"]) .ffr-featured-btn:focus-visible {
  background-color: var(--ffr-button-primary-hover-bg, var(--ffr-button-primary-bg, #f69f00)) !important;
  color: var(--ffr-button-primary-hover-text, var(--ffr-button-primary-text, #ffffff)) !important;
  filter: none !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-featured-block .ffr-featured-btn:focus-visible {
  outline-color: var(--ffr-focus-ring, currentColor) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-featured-block .ffr-img-holder {
  background-color: var(--ffr-bg-surface-soft, rgba(0, 0, 0, 0.04)) !important;
}


/* --------------------------------------------------------------------------
   Program Spotlight
   Default picker values inherit site semantics. Non-default author picker
   values remain unchanged because these selectors no longer match.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight[style*="--ffr-spotlight-background:"][style*="#f5f7fa"] {
  --ffr-spotlight-background: var(--ffr-bg-surface, #f5f7fa) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight[style*="--ffr-spotlight-title-color:"][style*="#2d4668"] {
  --ffr-spotlight-title-color: var(--ffr-text-primary, #2d4668) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight[style*="--ffr-spotlight-description-color:"][style*="#5f6d79"] {
  --ffr-spotlight-description-color: var(--ffr-text-muted, #5f6d79) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight[style*="--ffr-spotlight-item-title-color:"][style*="#2d4668"] {
  --ffr-spotlight-item-title-color: var(--ffr-text-primary, #2d4668) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight[style*="--ffr-spotlight-item-description-color:"][style*="#5f6d79"] {
  --ffr-spotlight-item-description-color: var(--ffr-text-muted, #5f6d79) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight .ffr-program-spotlight__itemLink:hover,
body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight .ffr-program-spotlight__itemLink:focus-visible {
  background: var(--ffr-bg-surface-soft, rgba(255, 255, 255, 0.5)) !important;
  border-color: var(--ffr-border-subtle, rgba(45, 70, 104, 0.14)) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight .ffr-program-spotlight__itemLink:focus-visible {
  outline-color: var(--ffr-focus-ring, currentColor) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight .ffr-program-spotlight__icoPh,
body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight .ffr-program-spotlight__mediaPh {
  background: var(--ffr-bg-surface-strong, rgba(45, 70, 104, 0.12)) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-program-spotlight .ffr-program-spotlight__media {
  background: var(--ffr-bg-elevated, #ffffff) !important;
  border-color: var(--ffr-border-default, rgba(45, 70, 104, 0.14)) !important;
}


/* --------------------------------------------------------------------------
   Alternating Image Link List
   Existing working template is left untouched, including its current config
   property contract. Only exact legacy/default values are remapped.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-bg: #ffffff"] {
  --ffr-offset-bg: var(--ffr-bg-page, #ffffff) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-panel-a: #ffffff"] {
  --ffr-offset-panel-a: var(--ffr-card-bg, #ffffff) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-panel-b: #f7f9fc"] {
  --ffr-offset-panel-b: var(--ffr-bg-surface-alt, #f7f9fc) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-title: #2d4668"] {
  --ffr-offset-title: var(--ffr-text-primary, #2d4668) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-text: #333333"] {
  --ffr-offset-text: var(--ffr-text-secondary, #333333) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-muted: #5f6b7a"] {
  --ffr-offset-muted: var(--ffr-text-muted, #5f6b7a) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-accent: #f5a623"] {
  --ffr-offset-accent: var(--ffr-accent, #f5a623) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list .ffr-offset-link-list__media {
  background: var(--ffr-palette-950, #001a31) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list .ffr-offset-link-list__image-placeholder {
  background: linear-gradient(135deg, var(--ffr-palette-700, #2d4668), var(--ffr-palette-950, #001a31)) !important;
  color: #ffffff !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-accent: #f5a623"] .ffr-offset-link-list__button {
  border-color: var(--ffr-button-primary-bg, #f5a623) !important;
  background: var(--ffr-button-primary-bg, #f5a623) !important;
  color: var(--ffr-button-primary-text, #ffffff) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-accent: #f5a623"] .ffr-offset-link-list__button:hover,
body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list[style*="--ffr-offset-accent: #f5a623"] .ffr-offset-link-list__button:focus-visible {
  border-color: var(--ffr-button-primary-hover-bg, var(--ffr-button-primary-bg, #f5a623)) !important;
  background: var(--ffr-button-primary-hover-bg, var(--ffr-button-primary-bg, #f5a623)) !important;
  color: var(--ffr-button-primary-hover-text, var(--ffr-button-primary-text, #ffffff)) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list .ffr-offset-link-list__button:focus-visible,
body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list .ffr-offset-link-list__image-link:focus-visible,
body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list .ffr-offset-link-list__back-top:focus-visible {
  outline-color: var(--ffr-focus-ring, currentColor) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list .ffr-offset-link-list__back-top {
  color: var(--ffr-link, var(--ffr-offset-title)) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list .ffr-offset-link-list__back-top:hover,
body[data-ffr-blueprint-wave2="1"] .ffr-offset-link-list .ffr-offset-link-list__back-top:focus-visible {
  color: var(--ffr-link-hover, var(--ffr-offset-accent)) !important;
}


/* --------------------------------------------------------------------------
   Sponsor Block
   No author-facing theme colors are changed in the working blueprint.
   Sponsor artwork retains a neutral/elevated tile surface.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave2="1"] .ffr-sponsor-block .ffr-sponsor-block__title {
  color: var(--ffr-text-primary, #111111) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-sponsor-block .ffr-sponsor-block__subtitle,
body[data-ffr-blueprint-wave2="1"] .ffr-sponsor-block .ffr-sponsor-block__label {
  color: var(--ffr-text-muted, #444444) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-sponsor-block .ffr-sponsor-block__logo,
body[data-ffr-blueprint-wave2="1"] .ffr-sponsor-block .ffr-sponsor-block__fallback {
  border-color: var(--ffr-card-border, #d7d7d7) !important;
  background-color: var(--ffr-bg-elevated, #ffffff) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-sponsor-block .ffr-sponsor-block__fallback {
  color: var(--ffr-text-primary, #111111) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-sponsor-block .ffr-sponsor-block__item:hover .ffr-sponsor-block__logo {
  border-color: var(--ffr-link, #2d4668) !important;
}

body[data-ffr-blueprint-wave2="1"] .ffr-sponsor-block .ffr-sponsor-block__item:focus-visible .ffr-sponsor-block__logo {
  border-color: var(--ffr-focus-ring, #2d4668) !important;
  box-shadow: 0 0 0 3px var(--ffr-focus-ring, rgba(45, 70, 104, 0.35)) !important;
}
/* ===== END ffr-blueprint-wave2-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave3-bridge.css ===== */
/* ==========================================================================
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 3 — Renderer-Safe CSS Bridge
   2026-08-22

   PURPOSE
   - Themes Wave 3 blueprints without modifying their CMS blueprint packages.
   - Scoped to the Variant Master Wave 3 activation gate only.
   - Uses stable wrapper classes/selectors already emitted by known-working source.
   - Preserves explicit author color choices on configurable blueprints by
     remapping only known legacy/default values.

   WAVE 3 COMPONENTS
   1. Distributed 4 Wide Link List
   2. Distributed Block Title 6 Column Link List
   3. Distributed LinkList Anchor Nav
   4. Distributed Simple UL Link List
   5. Distributed Simple UL Link List 1
   6. Custom CTA Banner
   7. Distributed Section Header & Content

   IMPORTANT
   !important is used only when needed to override inline author-default custom
   properties/direct inline colors while still allowing non-default author
   values to remain authoritative.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Distributed 4 Wide Link List
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 {
  background: var(--ffr-bg-page, #ffffff);
  color: var(--ffr-text-secondary, #000000);
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 .ffr-linklist4__card {
  background: var(--ffr-card-bg, #ffffff);
  color: var(--ffr-card-text, #0f172a);
  border-color: var(--ffr-card-border, #d7dde5);
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 .ffr-linklist4__media {
  background: var(--ffr-bg-surface-strong, #e9e9e9);
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 .ffr-linklist4__title {
  color: var(--ffr-text-primary, #2d4668);
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 .ffr-linklist4__teaser {
  color: var(--ffr-text-secondary, #000000);
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 .ffr-btn--cta {
  background: var(--ffr-button-primary-bg, #f59e0b);
  color: var(--ffr-button-primary-text, #ffffff);
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 .ffr-btn--cta:hover,
body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 .ffr-btn--cta:focus-visible {
  background: var(--ffr-button-primary-hover-bg, var(--ffr-button-primary-bg, #d97706));
  color: var(--ffr-button-primary-hover-text, var(--ffr-button-primary-text, #ffffff));
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist4 .ffr-btn--cta:focus-visible {
  outline-color: var(--ffr-focus-ring, currentColor);
}

/* --------------------------------------------------------------------------
   2. Distributed Block Title 6 Column Link List
   Migrated to the direct semantic theme contract in components.css.
   Typography, theme colors, hover, and focus behavior no longer require a
   blueprint compatibility override here.
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   3. Distributed LinkList Anchor Nav
   The working blueprint emits inline custom properties. Only exact legacy
   defaults (or missing variables) are remapped; custom author values remain.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav[style*="--ffr-linklist-dropdown-bg: #ffffff" i],
body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav:not([style*="--ffr-linklist-dropdown-bg:"]) {
  --ffr-linklist-dropdown-bg: var(--ffr-bg-surface, #ffffff) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav[style*="--ffr-linklist-dropdown-border: rgba(45,70,104,.22)" i],
body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav:not([style*="--ffr-linklist-dropdown-border:"]) {
  --ffr-linklist-dropdown-border: var(--ffr-border-default, rgba(45,70,104,.22)) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav[style*="--ffr-linklist-dropdown-title: #2d4668" i],
body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav:not([style*="--ffr-linklist-dropdown-title:"]) {
  --ffr-linklist-dropdown-title: var(--ffr-text-primary, #2d4668) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav[style*="--ffr-linklist-dropdown-text: #2d4668" i],
body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav:not([style*="--ffr-linklist-dropdown-text:"]) {
  --ffr-linklist-dropdown-text: var(--ffr-form-control-text, var(--ffr-text-primary, #2d4668)) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav[style*="--ffr-linklist-dropdown-muted: #5f6b7a" i],
body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav:not([style*="--ffr-linklist-dropdown-muted:"]) {
  --ffr-linklist-dropdown-muted: var(--ffr-text-muted, #5f6b7a) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav[style*="--ffr-linklist-dropdown-accent: #f5a623" i],
body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav:not([style*="--ffr-linklist-dropdown-accent:"]) {
  --ffr-linklist-dropdown-accent: var(--ffr-accent, #f5a623) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav[style*="--ffr-linklist-dropdown-control-bg: #ffffff" i],
body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav:not([style*="--ffr-linklist-dropdown-control-bg:"]) {
  --ffr-linklist-dropdown-control-bg: var(--ffr-form-control-bg, #ffffff) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-linklist-dropdown-nav .ffr-linklist-dropdown-nav__select:focus {
  border-color: var(--ffr-focus-ring, var(--ffr-linklist-dropdown-accent));
  outline: 3px solid var(--ffr-focus-ring, var(--ffr-linklist-dropdown-accent));
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   4. Distributed Simple UL Link List (image link grid)
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave3="1"] .ffr-image-link-grid {
  background: var(--ffr-bg-page, #ffffff);
}

body[data-ffr-blueprint-wave3="1"] .ffr-image-link-grid .ffr-image-link-grid__title {
  color: var(--ffr-text-primary, #2d4668);
}

body[data-ffr-blueprint-wave3="1"] .ffr-image-link-grid .ffr-image-link-grid__underline {
  background: var(--ffr-accent, #f79e00);
}

body[data-ffr-blueprint-wave3="1"] .ffr-image-link-grid .ffr-image-link-grid__subheader {
  color: var(--ffr-text-muted, #5f6b7a);
}

body[data-ffr-blueprint-wave3="1"] .ffr-image-link-grid .ffr-image-link-grid__link {
  background: var(--ffr-card-bg, #ffffff);
}

body[data-ffr-blueprint-wave3="1"] .ffr-image-link-grid.ffr-image-link-grid--cards .ffr-image-link-grid__link {
  border-color: var(--ffr-card-border, #e9e9e9);
}

body[data-ffr-blueprint-wave3="1"] .ffr-image-link-grid .ffr-image-link-grid__link:focus-visible {
  outline-color: var(--ffr-focus-ring, currentColor);
}

/* --------------------------------------------------------------------------
   5. Distributed Simple UL Link List 1 (text link cards)
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave3="1"] .ffr-link-list {
  background: var(--ffr-bg-page, #ffffff);
}

body[data-ffr-blueprint-wave3="1"] .ffr-link-list .ffr-link-list__title {
  color: var(--ffr-text-primary, #2d4668);
}

body[data-ffr-blueprint-wave3="1"] .ffr-link-list .ffr-link-list__underline {
  background: var(--ffr-accent, #f79e00);
}

body[data-ffr-blueprint-wave3="1"] .ffr-link-list .ffr-link-list__subheader {
  color: var(--ffr-text-muted, #5f6b7a);
}

body[data-ffr-blueprint-wave3="1"] .ffr-link-list .ffr-link-list__link {
  color: var(--ffr-card-text, var(--ffr-text-primary, #0f172a));
  background: var(--ffr-card-bg, #ffffff);
  border-color: var(--ffr-card-border, #e9e9e9);
}

body[data-ffr-blueprint-wave3="1"] .ffr-link-list .ffr-link-list__link:hover,
body[data-ffr-blueprint-wave3="1"] .ffr-link-list .ffr-link-list__link:focus-visible {
  border-color: var(--ffr-link, var(--ffr-text-primary, #2d4668));
}

body[data-ffr-blueprint-wave3="1"] .ffr-link-list .ffr-link-list__link:focus-visible {
  outline-color: var(--ffr-focus-ring, currentColor);
}

body[data-ffr-blueprint-wave3="1"] .ffr-link-list .ffr-link-list__chevron {
  color: var(--ffr-link, var(--ffr-text-primary, #2d4668));
}

/* --------------------------------------------------------------------------
   6. Custom CTA Banner
   This renderer-sensitive blueprint emits configuration values as inline
   custom properties. Only the exact shipped/default colors are themed.
   Non-default author selections remain untouched.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner[style*="--ffr-custom-hero-overlay-start: #092d59" i] {
  --ffr-custom-hero-overlay-start: var(--ffr-palette-950, #092d59) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner[style*="--ffr-custom-hero-overlay-end: #0f4c81" i] {
  --ffr-custom-hero-overlay-end: var(--ffr-palette-700, #0f4c81) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner[style*="--ffr-custom-hero-eyebrow-color: #d8ecf5" i] {
  --ffr-custom-hero-eyebrow-color: var(--ffr-palette-100, #d8ecf5) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner[style*="--ffr-custom-hero-description-color: #d8e8f5" i] {
  --ffr-custom-hero-description-color: var(--ffr-palette-100, #d8e8f5) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner[style*="--ffr-custom-hero-button-bg: #092d59" i] {
  --ffr-custom-hero-button-bg: var(--ffr-button-primary-bg, #092d59) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner[style*="--ffr-custom-hero-button-text: #ffffff" i] {
  --ffr-custom-hero-button-text: var(--ffr-button-primary-text, #ffffff) !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner[style*="--ffr-custom-hero-button-bg: #092d59" i] .ffr-custom-hero-banner__button:hover,
body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner[style*="--ffr-custom-hero-button-bg: #092d59" i] .ffr-custom-hero-banner__button:focus-visible {
  background-color: var(--ffr-button-primary-hover-bg, var(--ffr-button-primary-bg, #092d59)) !important;
  color: var(--ffr-button-primary-hover-text, var(--ffr-button-primary-text, #ffffff)) !important;
  filter: none !important;
}

body[data-ffr-blueprint-wave3="1"] .ffr-custom-hero-banner .ffr-custom-hero-banner__button:focus-visible {
  outline: 3px solid #ffffff !important;
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   7. Distributed Section Header & Content
   Direct inline colors are emitted by the working template. Only shipped
   defaults are overridden. Non-default author picker values do not match.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave3="1"] .c-section-heading .c-section-heading__inner[style*="background-color: #ffffff" i] {
  /* The shipped white is the legacy default, not an intentional panel. */
  background-color: var(--ffr-bg-section, transparent) !important;
}

body[data-ffr-blueprint-wave3="1"] .c-section-heading .c-section-heading__title[style*="color: #172033" i] {
  color: var(--ffr-text-primary, #172033) !important;
}

body[data-ffr-blueprint-wave3="1"] .c-section-heading .c-section-heading__subheader[style*="color: #3b4a5a" i] {
  color: var(--ffr-text-secondary, #3b4a5a) !important;
}

body[data-ffr-blueprint-wave3="1"] .c-section-heading .c-section-heading__description[style*="color: #536273" i] {
  color: var(--ffr-text-muted, #536273) !important;
}

body[data-ffr-blueprint-wave3="1"] .c-section-heading .c-section-heading__accent[style*="background-color: #f3a712" i] {
  background-color: var(--ffr-accent, #f3a712) !important;
}

body[data-ffr-blueprint-wave3="1"] .c-section-heading .c-section-heading__description a:focus-visible {
  outline: 3px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 2px;
}
/* ===== END ffr-blueprint-wave3-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave4-bridge.css ===== */
/* ==========================================================================
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 4 — Renderer-Safe CSS Bridge
   2026-08-22

   Scope
   - Distributed Location List Accordion
   - Distributed Tab Layout (core Stage 2 already provides primary theme map)
   - Distributed Newsletter Signup 1
   - Distributed Search Results (core Stage 2 already provides primary theme map)
   - Distributed Announcement Alert
   - Announcement Detail (core Stage 1 already provides primary theme map)
   - Distributed Location Detail

   Renderer-safety rule
   No Wave 4 blueprint source, Form Definition, Model Description, identity,
   metadata, or JavaScript is modified. This stylesheet supplies only the
   theme decisions that are not already covered by Core Stage 1 / Stage 2.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Distributed Location List Accordion
   The blueprint's structural CSS remains local. These unlayered declarations
   map only presentation roles into the Stage 2 accordion contract.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap {
  color: var(--ffr-text-secondary, #000000);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion-wrap__title {
  color: var(--ffr-text-primary, #2d4668);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion-wrap__subheader {
  color: var(--ffr-text-muted, #64748b);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion {
  background: var(--ffr-accordion-bg, #ffffff);
  color: var(--ffr-accordion-text, #0f172a);
  border-color: var(--ffr-accordion-border, #e2e8f0);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__item,
body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__opener {
  border-color: var(--ffr-accordion-border, #e2e8f0);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__opener {
  color: var(--ffr-text-primary, #2d4668);
  background: var(--ffr-accordion-trigger-bg, #ffffff);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__opener:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__opener:focus-visible,
body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__item.active .ffr-accordion__opener {
  color: var(--ffr-text-primary, #2d4668);
  background: var(--ffr-accordion-trigger-hover-bg, #f0f9ff);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__opener:focus-visible {
  outline: 3px solid var(--ffr-accordion-focus, #2f6fec);
  outline-offset: 2px;
}

/* Replace the fixed blue SVG chevron with a currentColor CSS chevron. */
body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__opener::after {
  width: 9px;
  height: 9px;
  background-image: none;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-65%) rotate(45deg);
  transform-origin: center;
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__item.active .ffr-accordion__opener::after {
  transform: translateY(-35%) rotate(225deg);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__content-area {
  background: var(--ffr-accordion-bg, #ffffff);
  color: var(--ffr-accordion-text, #0f172a);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__content-area a {
  color: var(--ffr-link, #20639b);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__content-area a:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__content-area a:focus-visible {
  color: var(--ffr-link-hover, #2d4668);
}

body[data-ffr-blueprint-wave4="1"] .ffr-accordion-wrap .ffr-accordion__content-area a:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   2. Distributed Tab Layout
   No replacement skin is needed: .ffr-tabs__* already consumes the Stage 2
   --ffr-tab-* contract. Wave 4 adds panel focus only for keyboard workflows.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave4="1"] .ffr-tabs .ffr-tabs__panel:focus-visible {
  outline: 2px solid var(--ffr-tab-focus, var(--ffr-focus-ring, currentColor));
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   3. Distributed Newsletter Signup 1
   The blueprint itself is a renderer helper call. Theme the generated form
   externally so the CMS-rendered form contract remains untouched.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm label,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm legend {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form .help-text,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form .description,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form .hint,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form small {
  color: var(--ffr-text-muted, #64748b);
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="text"],
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="email"],
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="search"],
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="tel"],
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm select,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm textarea {
  border-color: var(--ffr-form-control-border, #d8dee8);
  background: var(--ffr-form-control-bg, #ffffff);
  color: var(--ffr-form-control-text, #1f2937);
  box-shadow: var(--ffr-shadow-1, 0 1px 2px rgba(15,23,42,.06));
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input::placeholder,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm textarea::placeholder {
  color: var(--ffr-form-control-placeholder, #64748b);
  opacity: 1;
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="text"]:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="email"]:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="search"]:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="tel"]:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm select:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm textarea:hover {
  border-color: var(--ffr-border-strong, var(--ffr-form-control-border));
  background: var(--ffr-form-control-bg, #ffffff);
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="text"]:focus,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="email"]:focus,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="search"]:focus,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="tel"]:focus,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm select:focus,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm textarea:focus {
  border-color: var(--ffr-form-control-focus, #2f6fec);
  background: var(--ffr-form-control-bg, #ffffff);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ffr-form-control-focus, #2f6fec) 28%, transparent);
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input:disabled,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm select:disabled,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm textarea:disabled {
  background: var(--ffr-form-control-disabled-bg, #f1f5f9);
  color: var(--ffr-form-control-disabled-text, #94a3b8);
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="checkbox"],
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="radio"] {
  accent-color: var(--ffr-button-primary-bg, #1d4ed8);
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm button,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="submit"] {
  background: var(--ffr-button-primary-bg, #1d4ed8);
  color: var(--ffr-button-primary-text, #ffffff);
  box-shadow: var(--ffr-shadow-1, 0 1px 2px rgba(15,23,42,.06));
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm button:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="submit"]:hover {
  background: var(--ffr-button-primary-hover-bg, #173ea5);
  color: var(--ffr-button-primary-hover-text, #ffffff);
  box-shadow: var(--ffr-shadow-2, 0 2px 12px rgba(15,23,42,.10));
}

body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm button:focus-visible,
body[data-ffr-blueprint-wave4="1"] .ffr-newsletter-signup__form #NewsletterForm input[type="submit"]:focus-visible {
  outline: 3px solid var(--ffr-focus-ring, #2f6fec);
  outline-offset: 3px;
  box-shadow: none;
}

/* --------------------------------------------------------------------------
   4. Distributed Search Results
   Core Stage 2 already supplies search/pagination tokens. Add explicit focus
   visibility and root text inheritance without touching result markup.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave4="1"] .ffr-search-results {
  color: var(--ffr-text-secondary, #000000);
}

body[data-ffr-blueprint-wave4="1"] .ffr-search-results a:focus-visible,
body[data-ffr-blueprint-wave4="1"] .ffr-search-results button:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   5. Distributed Announcement Alert
   The working blueprint exposes its configured colors in data attributes and
   re-applies its custom properties in JavaScript. Only exact shipped/default
   values are remapped, using !important solely to beat those inline runtime
   custom properties. Non-default author colors remain authoritative.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar[data-alert-background="#123A5A" i] {
  --ffr-announcement-bg: var(--ffr-button-primary-bg, #123a5a) !important;
}

body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar[data-alert-text="#FFFFFF" i] {
  --ffr-announcement-text: var(--ffr-button-primary-text, #ffffff) !important;
}

body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar[data-alert-accent="#F5C242" i] {
  --ffr-announcement-accent: var(--ffr-accent, #f5c242) !important;
}

body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__badge-dot {
  box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 14%, transparent);
}

body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__button,
body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__dismiss {
  border-color: color-mix(in srgb, currentColor 58%, transparent);
}

body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__dismiss {
  background: color-mix(in srgb, currentColor 12%, transparent);
}

body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__button:hover,
body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__dismiss:hover {
  background: color-mix(in srgb, currentColor 16%, transparent);
}

body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__button:focus-visible,
body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__dismiss:focus-visible,
body[data-ffr-blueprint-wave4="1"] .ffr-announcement-bar .ffr-announcement-bar__link:focus-visible {
  outline-color: var(--ffr-focus-ring, var(--ffr-announcement-accent));
}

/* --------------------------------------------------------------------------
   6. Announcement Detail
   Core Stage 1 already themes its shared page/card/info/social classes. Wave 4
   only guarantees keyboard focus for the detail-specific share/action links.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave4="1"] .ffr-page-header .ffr-social-btn:focus-visible,
body[data-ffr-blueprint-wave4="1"] .ffr-sidebar .ffr-action-link:focus-visible,
body[data-ffr-blueprint-wave4="1"] .ffr-sidebar .ffr-download-link:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   7. Distributed Location Detail
   Core Stage 1 themes the shared detail layout and Core Stage 2 themes its
   legacy Regional tabs. The remaining showtime table is mapped here using
   the Stage 2 table contract, scoped to detail-page tab content only.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table {
  background: var(--ffr-table-bg, #ffffff);
  color: var(--ffr-table-text, #000000);
  border-color: var(--ffr-table-border, #e2e8f0);
}

body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table th,
body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table td {
  border-color: var(--ffr-table-border, #e2e8f0);
}

body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table thead th {
  background: var(--ffr-table-header-bg, #2d4668);
  color: var(--ffr-table-header-text, #ffffff);
}

body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table tbody .subheader td {
  background: var(--ffr-table-stripe-bg, #f3f5f7);
  color: var(--ffr-table-text, #000000);
}

body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table tbody tr:not(.subheader):hover td {
  background: var(--ffr-table-hover-bg, #f0f9ff);
}

body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table a {
  color: var(--ffr-link, #20639b);
}

body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table a:hover {
  color: var(--ffr-link-hover, #2d4668);
}

body[data-ffr-blueprint-wave4="1"] .ffr-main-content .tabs-wrap .table a:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 2px;
}
/* ===== END ffr-blueprint-wave4-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave5-bridge.css ===== */
/* ==========================================================================
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 5 — Renderer-Safe CSS Bridge
   2026-08-22

   Scope
   - Distributed Featured Events
   - Distributed Event List
   - Distributed Activity Detail
   - Distributed News List (Cards)
   - Distributed News Detail
   - Distributed News Ticker / compact news presentation

   Renderer-safety rule
   No Wave 5 blueprint source, Form Definition, Model Description, identity,
   metadata, or JavaScript is modified. This stylesheet supplies only the
   remaining theme decisions and interaction states not already covered by
   Core Stage 1 / Stage 2 or prior blueprint waves.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Distributed Featured Events
   The blueprint carries its structural CSS inline. These selectors are more
   specific than the local class rules so theme decisions can remain external.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave5="1"] .ffr-featured-events {
  background: var(--ffr-bg-page, #ffffff);
  color: var(--ffr-text-secondary, #1f2937);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__title {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__scroller {
  background: var(--ffr-card-bg, #ffffff);
  border-color: var(--ffr-card-border, #d7dde5);
  color: var(--ffr-card-text, #0f172a);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__item {
  border-bottom-color: var(--ffr-card-border, #d7dde5);
  color: var(--ffr-card-text, #0f172a);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__item:hover,
body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__item:focus-visible {
  background: var(--ffr-bg-surface-strong, rgba(15, 23, 42, 0.08));
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__item:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: -2px;
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__media {
  background: var(--ffr-bg-surface-alt, #eef2f6);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__img-fallback {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--ffr-text-primary, #0f172a) 5%, transparent),
    color-mix(in srgb, var(--ffr-text-primary, #0f172a) 11%, transparent)
  );
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__date,
body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__empty {
  color: var(--ffr-text-muted, #64748b);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__item-title {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__teaser {
  color: var(--ffr-text-secondary, #334155);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__more {
  border-color: var(--ffr-button-primary-bg, #1d4ed8);
  background: var(--ffr-button-primary-bg, #1d4ed8);
  color: var(--ffr-button-primary-text, #ffffff);
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__more:hover {
  border-color: var(--ffr-button-primary-hover-bg, #173ea5);
  background: var(--ffr-button-primary-hover-bg, #173ea5);
  color: var(--ffr-button-primary-hover-text, #ffffff);
  filter: none;
}

body[data-ffr-blueprint-wave5="1"] .ffr-featured-events__more:focus-visible {
  border-color: var(--ffr-button-primary-hover-bg, #173ea5);
  background: var(--ffr-button-primary-hover-bg, #173ea5);
  color: var(--ffr-button-primary-hover-text, #ffffff);
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
  filter: none;
}

/* --------------------------------------------------------------------------
   2. Distributed Event List
   Core Stage 1 already themes the primary shell/cards/datepicker. Wave 5
   separates hover from active button states and adds explicit focus behavior.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave5="1"] .ffr-events-title {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave5="1"] .ffr-events-view-btn.active {
  background-color: var(--ffr-button-primary-bg, #1d4ed8);
  color: var(--ffr-button-primary-text, #ffffff);
  border-color: var(--ffr-button-primary-bg, #1d4ed8);
}

body[data-ffr-blueprint-wave5="1"] .ffr-events-view-btn:not(.active):hover {
  background-color: var(--ffr-button-primary-hover-bg, #173ea5);
  color: var(--ffr-button-primary-hover-text, #ffffff);
  border-color: var(--ffr-button-primary-hover-bg, #173ea5);
}

body[data-ffr-blueprint-wave5="1"] .ffr-events-view-btn:focus-visible,
body[data-ffr-blueprint-wave5="1"] .ffr-events-datepicker-input:focus-visible,
body[data-ffr-blueprint-wave5="1"] .ffr-events-datepicker-input .cms-datepicker:focus-visible,
body[data-ffr-blueprint-wave5="1"] .ffr-event-card__link:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
}

body[data-ffr-blueprint-wave5="1"] .ffr-event-card:hover {
  border-color: var(--ffr-border-strong, var(--ffr-card-border, #d7dde5));
}

/* --------------------------------------------------------------------------
   3. Distributed Activity Detail
   Core Stage 1 provides the detail-page semantic mappings. Wave 5 only adds
   detail-specific focus visibility without changing renderer markup.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave5="1"] .ffr-activity-title {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave5="1"] .ffr-main-content .ffr-action-link:focus-visible,
body[data-ffr-blueprint-wave5="1"] .ffr-page-header .ffr-social-btn:focus-visible,
body[data-ffr-blueprint-wave5="1"] .ffr-sidebar .ffr-download-link:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   4. Distributed News List (Cards)
   The card body already inherits Wave 3's .ffr-linklist4 contract. Wave 5
   connects the news-only heading/accent/extra-link elements that were outside
   that original bridge.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave5="1"] .ffr-card-grid-heading {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave5="1"] .ffr-grid-gold-line {
  background: var(--ffr-accent, #c79a3b);
}

body[data-ffr-blueprint-wave5="1"] .ffr-extra-link-btn {
  background: var(--ffr-button-primary-bg, #1d4ed8);
  color: var(--ffr-button-primary-text, #ffffff);
}

body[data-ffr-blueprint-wave5="1"] .ffr-extra-link-btn:hover {
  background: var(--ffr-button-primary-hover-bg, #173ea5);
  color: var(--ffr-button-primary-hover-text, #ffffff);
}

body[data-ffr-blueprint-wave5="1"] .ffr-extra-link-btn:focus-visible {
  background: var(--ffr-button-primary-hover-bg, #173ea5);
  color: var(--ffr-button-primary-hover-text, #ffffff);
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   5. Distributed News Detail
   Uses the same shared detail primitives already converted in Core Stage 1.
   Keep Wave 5 limited to explicit keyboard focus and headline inheritance.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave5="1"] .ffr-page-header .ffr-title {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave5="1"] .ffr-main-content .ffr-action-link:focus-visible,
body[data-ffr-blueprint-wave5="1"] .ffr-sidebar .ffr-action-link:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   6. Distributed News Ticker
   Its compact markup has a unique .news-list wrapper in the current package,
   allowing a safe external theme mapping without touching ticker logic.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave5="1"] .news-list[data-ffr-news-ticker] {
  color: var(--ffr-text-secondary, #334155);
}

body[data-ffr-blueprint-wave5="1"] .news-list[data-ffr-news-ticker] .title a {
  color: var(--ffr-link, #1d4ed8);
}

body[data-ffr-blueprint-wave5="1"] .news-list[data-ffr-news-ticker] .title a:hover {
  color: var(--ffr-link-hover, #173ea5);
}

body[data-ffr-blueprint-wave5="1"] .news-list[data-ffr-news-ticker] .title a:focus-visible {
  color: var(--ffr-link-hover, #173ea5);
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
  border-radius: 2px;
}
/* ===== END ffr-blueprint-wave5-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave6-bridge.css ===== */
/* ==========================================================================
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 6 — Renderer-Safe CSS Bridge
   2026-08-22

   Scope
   - Simple Event List
   - News List — Cards with Dynamic Control
   - News List — Wide Block
   - News List — With Paging
   - News Anime / ticker variant
   - Standard Distributed Activity Detail

   Renderer-safety rule
   No Wave 6 blueprint SourceCode, Form Definition, Model Description,
   identity, metadata, or JavaScript is modified. Existing author-facing color
   controls remain authoritative. Known shipped/default values are mapped to
   semantic site-theme tokens only where the DOM exposes a safe external hook.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Simple Event List
   This blueprint already consumes legacy --ffr-color-* variables throughout
   its ID-scoped inline CSS. Remapping those variables at the component root
   themes the renderer-safe source without fighting its high-specificity rules.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave6="1"] [data-ffr-simple-event-list-v3] {
  --ffr-color-text-main: var(--ffr-text-primary, #0f172a);
  --ffr-color-primary: var(--ffr-link, #2d4668);
  --ffr-color-primary-dark: var(--ffr-link-hover, #20639b);
  --ffr-color-text-muted: var(--ffr-text-muted, #64748b);
  --ffr-color-text-light: var(--ffr-text-disabled, var(--ffr-text-muted, #94a3b8));
  --ffr-color-divider: var(--ffr-border-subtle, #e9e9e9);
}

/* The heading is not an action, so keep it on the stronger primary text role. */
body[data-ffr-blueprint-wave6="1"] [data-ffr-simple-event-list-v3] .ffr-simple-event-list-v3__heading {
  color: var(--ffr-text-primary, #0f172a) !important;
}

body[data-ffr-blueprint-wave6="1"] [data-ffr-simple-event-list-v3] .ffr-simple-event-list-v3__item:focus-within,
body[data-ffr-blueprint-wave6="1"] [data-ffr-simple-event-list-v3] .ffr-simple-event-list-v3__footer:focus-within {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   2. News List — Cards with Dynamic Control
   Wave 3 already themes the shared .ffr-linklist4 card contract and Wave 5
   themes its news-specific heading/accent/extra CTA. Wave 6 only closes the
   date/focus gaps unique to this dynamic-control variant.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave6="1"] .ffr-linklist4[data-ffr-linklist4] .ffr-linklist4__teaser small span[style*="color: grey"],
body[data-ffr-blueprint-wave6="1"] .ffr-linklist4[data-ffr-linklist4] .ffr-linklist4__teaser small span[style*="color:grey"],
body[data-ffr-blueprint-wave6="1"] .ffr-linklist4[data-ffr-linklist4] .ffr-linklist4__teaser small span[style*="color: gray"],
body[data-ffr-blueprint-wave6="1"] .ffr-linklist4[data-ffr-linklist4] .ffr-linklist4__teaser small span[style*="color:gray"] {
  color: var(--ffr-text-muted, #64748b) !important;
}

body[data-ffr-blueprint-wave6="1"] .ffr-linklist4[data-ffr-linklist4] .ffr-linklist4__btn:focus-visible,
body[data-ffr-blueprint-wave6="1"] .ffr-linklist4[data-ffr-linklist4] .ffr-extra-link-btn:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   3. News List — Wide Block
   The renderer writes --ffr-nw-bg inline. Only the shipped fallback #1a3146
   is treated as theme-inheriting. Any author-selected BackgroundColor remains
   untouched because it no longer matches the default-value selector.
   HeaderColor remains authoritative whenever the renderer emits an inline
   color style on .ffr-nw-title.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] {
  --ffr-nw-bg: var(--ffr-bg-surface, #ffffff) !important;
  background-color: var(--ffr-nw-bg) !important;
  color: var(--ffr-text-secondary, #334155);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-title:not([style]) {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article {
  background: var(--ffr-card-bg, #ffffff);
  border-left-color: transparent;
  color: var(--ffr-card-text, #0f172a);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article:hover,
body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article:focus-within {
  background: var(--ffr-bg-surface-strong, rgba(15, 23, 42, 0.08));
  border-left-color: var(--ffr-accent, #c79a3b);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-date {
  color: var(--ffr-text-muted, #64748b);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article-title {
  color: var(--ffr-card-text, #0f172a);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article:hover .ffr-nw-article-title,
body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article:focus-within .ffr-nw-article-title {
  color: var(--ffr-link-hover, #173ea5);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article-teaser {
  color: var(--ffr-text-secondary, #334155);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-arrow {
  background: var(--ffr-bg-surface-alt, rgba(15, 23, 42, 0.06));
  color: var(--ffr-link, #1d4ed8);
}

body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article:hover .ffr-nw-arrow,
body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper[style*="--ffr-nw-bg: #1a3146"] .ffr-nw-article:focus-within .ffr-nw-arrow {
  background: var(--ffr-button-primary-bg, #1d4ed8);
  color: var(--ffr-button-primary-text, #ffffff);
}

/* Focus applies to both default-themed and author-colored Wide Block variants. */
body[data-ffr-blueprint-wave6="1"] .ffr-nw-wrapper .ffr-nw-article-link:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
  border-radius: 10px;
}

/* --------------------------------------------------------------------------
   4. News List — With Paging
   The blueprint itself is markup-only; its presentation comes from the shared
   components.css implementation. Map those legacy shared colors into the
   semantic contract without changing paging/model behavior.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave6="1"] .ffr-news-paged {
  background: var(--ffr-bg-page, #ffffff);
  color: var(--ffr-text-secondary, #334155);
}

body[data-ffr-blueprint-wave6="1"] .ffr-news-paged__heading,
body[data-ffr-blueprint-wave6="1"] .ffr-news-paged__title {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave6="1"] .ffr-news-paged__date {
  color: var(--ffr-text-muted, #64748b);
}

body[data-ffr-blueprint-wave6="1"] .ffr-news-paged__teaser {
  color: var(--ffr-text-secondary, #334155);
}

body[data-ffr-blueprint-wave6="1"] .ffr-news-paged__media {
  background: var(--ffr-bg-surface-alt, #eef2f6);
}

body[data-ffr-blueprint-wave6="1"] .ffr-news-paged__link:focus-visible {
  outline-color: var(--ffr-focus-ring, currentColor);
}

/* --------------------------------------------------------------------------
   5. News Anime / alternate ticker presentation
   Its JavaScript writes inline text/icon colors. The bridge overrides only
   blank/shipped-default values. Explicit author TextColor/IconColor values do
   not match these selectors and remain authoritative.

   NOTE: BackgroundColor exists in FormDefinition but the current renderer does
   not expose/apply it in markup or JavaScript, so it cannot be safely bridged
   externally without changing renderer source. That functional mismatch is
   documented for a later isolated repair.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave6="1"] [data-ffr-news-ticker-variant][data-text-color=""],
body[data-ffr-blueprint-wave6="1"] [data-ffr-news-ticker-variant][data-text-color="003b5c" i],
body[data-ffr-blueprint-wave6="1"] [data-ffr-news-ticker-variant][data-text-color="#003b5c" i] {
  color: var(--ffr-text-primary, #0f172a) !important;
}

body[data-ffr-blueprint-wave6="1"] [data-ffr-news-ticker-variant][data-icon-color=""] .ffr-news-ticker-variant__icon,
body[data-ffr-blueprint-wave6="1"] [data-ffr-news-ticker-variant][data-icon-color="ffc72c" i] .ffr-news-ticker-variant__icon,
body[data-ffr-blueprint-wave6="1"] [data-ffr-news-ticker-variant][data-icon-color="#ffc72c" i] .ffr-news-ticker-variant__icon {
  color: var(--ffr-accent, #c79a3b) !important;
}

body[data-ffr-blueprint-wave6="1"] [data-ffr-news-ticker-variant] .ffr-news-ticker-variant__link:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
  border-radius: 2px;
}

/* --------------------------------------------------------------------------
   6. Standard Distributed Activity Detail
   This renderer already centralizes its visual surfaces/borders into local
   --activity-* properties. Remap those stable hooks to semantic theme roles;
   structural sizing, layout, social/calendar behavior, and ad integration stay
   untouched.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave6="1"] .ffr-activity-page {
  --activity-border: var(--ffr-border-subtle, rgba(45, 70, 104, 0.14));
  --activity-border-strong: var(--ffr-border-strong, rgba(45, 70, 104, 0.22));
  --activity-surface: var(--ffr-card-bg, #ffffff);
  --activity-surface-soft: var(--ffr-bg-surface-alt, #f6f8fb);
  --activity-text-muted: var(--ffr-text-muted, #526274);
}

body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-activity-title,
body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-activity-details-heading,
body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-activity-detail-card__value,
body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-activity-detail-card__content address {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-activity-detail-card__content a {
  color: var(--ffr-link, #1d4ed8);
}

body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-activity-detail-card__content a:hover {
  color: var(--ffr-link-hover, #173ea5);
}

body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-social-btn:focus-visible,
body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-add-calendar__link:focus-visible,
body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-activity-detail-card__content a:focus-visible,
body[data-ffr-blueprint-wave6="1"] .ffr-activity-page .ffr-activity-downloads a:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
}
/* ===== END ffr-blueprint-wave6-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave7-bridge.css ===== */
/* ========================================================================== 
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 7 — Renderer-Safe CSS Bridge
   2026-08-22

   Scope
   - Job List and Search
   - Job Detail (reviewed; already covered by Core Stage 1 shared primitives)
   - Program Landing Page

   Renderer-safety rule
   No Wave 7 blueprint SourceCode, Form Definition, Model Description,
   identity, metadata, or JavaScript is modified. Wave 7 fills theme gaps only
   through stable external selectors. Job search/filter/sort/paging behavior
   remains wholly owned by the existing blueprint renderer and JavaScript.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Job List and Search
   Stable namespace: .ffr-jobs
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave7="1"] .ffr-jobs {
  color: var(--ffr-text-secondary, #334155);
  background: var(--ffr-bg-page, #ffffff);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__title {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__subtitle,
body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__pagerinfo {
  color: var(--ffr-text-muted, #64748b);
}

/* Search surface */
body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__search {
  background: linear-gradient(
    135deg,
    var(--ffr-bg-surface, #ffffff) 0%,
    var(--ffr-bg-surface-alt, #eef3f8) 100%
  );
  border-color: var(--ffr-border-default, #d7dde5);
  box-shadow: var(--ffr-shadow-2, 0 2px 12px rgba(15, 23, 42, .10));
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__field label {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs input.ffr-jobs__input {
  color: var(--ffr-form-control-text, #0f172a);
  background: var(--ffr-form-control-bg, #ffffff);
  border-color: var(--ffr-form-control-border, #cbd5e1);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs input.ffr-jobs__input::placeholder {
  color: var(--ffr-form-control-placeholder, #64748b);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs input.ffr-jobs__input:focus {
  border-color: var(--ffr-form-control-focus, var(--ffr-focus-ring, #243b5a));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ffr-form-control-focus, var(--ffr-focus-ring)) 18%, transparent);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs button.ffr-jobs__btn {
  color: var(--ffr-button-primary-text, #ffffff);
  background: var(--ffr-button-primary-bg, #243b5a);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs button.ffr-jobs__btn:hover {
  color: var(--ffr-button-primary-hover-text, var(--ffr-button-primary-text, #ffffff));
  background: var(--ffr-button-primary-hover-bg, #17324d);
  filter: none;
  box-shadow: var(--ffr-shadow-2, 0 2px 12px rgba(15, 23, 42, .10));
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs button.ffr-jobs__btn:focus-visible,
body[data-ffr-blueprint-wave7="1"] .ffr-jobs a:focus-visible,
body[data-ffr-blueprint-wave7="1"] .ffr-jobs button.ffr-jobs__sortbtn:focus-visible,
body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tablewrap:focus-visible {
  outline: 3px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
}

/* Results headings and cards */
body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__thead th {
  color: var(--ffr-text-muted, #526174);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tbody tr {
  background: var(--ffr-card-bg, #ffffff);
  border-color: var(--ffr-card-border, #dce3eb);
  box-shadow: var(--ffr-shadow-1, 0 1px 2px rgba(15, 23, 42, .06));
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tbody tr::before {
  background: var(--ffr-accent, #c79a3b);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tbody tr:hover,
body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tbody tr:focus-within {
  background: var(--ffr-card-bg, #ffffff);
  border-color: var(--ffr-border-strong, #bdc9d6);
  box-shadow: var(--ffr-shadow-2, 0 2px 12px rgba(15, 23, 42, .10));
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tbody tr:focus-within {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 2px;
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tbody td {
  color: var(--ffr-text-secondary, #334155);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs a.ffr-jobs__link {
  color: var(--ffr-link, #174a78);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs a.ffr-jobs__link:hover {
  color: var(--ffr-link-hover, #0f385e);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__sortbtn:hover {
  color: var(--ffr-link-hover, #243b5a);
}

@media (max-width: 767px) {
  body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tbody td {
    border-top-color: var(--ffr-border-subtle, #edf1f5) !important;
  }

  body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__tbody td::before {
    color: var(--ffr-text-muted, #64748b);
  }
}

/* Pagination */
body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__pages a {
  color: var(--ffr-pagination-text, var(--ffr-link, #243b5a));
  background: var(--ffr-pagination-bg, var(--ffr-card-bg, #ffffff));
  border-color: var(--ffr-pagination-border, var(--ffr-card-border, #d7dde5));
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__pages a:hover {
  color: var(--ffr-link-hover, #17324d);
  background: var(--ffr-bg-surface-alt, #f1f5f9);
  border-color: var(--ffr-pagination-hover-border, var(--ffr-border-strong, #b8c3cf));
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__pages li.current a {
  color: var(--ffr-pagination-active-text, var(--ffr-button-primary-text, #ffffff));
  background: var(--ffr-pagination-active-bg, var(--ffr-button-primary-bg, #243b5a));
  border-color: var(--ffr-pagination-active-border, var(--ffr-focus-ring, #243b5a));
}

/* Empty/loading states */
body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__empty {
  color: var(--ffr-text-secondary, #475569);
  background: var(--ffr-bg-surface, #f8fafc);
  border-color: var(--ffr-border-default, #dce3eb);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__loading {
  background: color-mix(in srgb, var(--ffr-bg-page, #ffffff) 82%, transparent);
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__spinner {
  color: var(--ffr-text-primary, #0f172a);
  background: var(--ffr-card-bg, #ffffff);
  border-color: var(--ffr-card-border, #d7dde5);
  box-shadow: var(--ffr-shadow-2, 0 2px 12px rgba(15, 23, 42, .10));
}

body[data-ffr-blueprint-wave7="1"] .ffr-jobs .ffr-jobs__spinner::before {
  border-color: color-mix(in srgb, var(--ffr-link, #243b5a) 22%, transparent);
  border-top-color: var(--ffr-link, #243b5a);
}

/* --------------------------------------------------------------------------
   2. Job Detail
   No dedicated Wave 7 styling is intentionally added. The blueprint uses the
   shared .ffr-layout-grid, .ffr-title, .ffr-rich-text, .ffr-social-*,
   .ffr-info-*, .ffr-action-link, .ffr-divider and .ffr-ad-slot primitives,
   which are already mapped by Core Stage 1. Avoiding generic Wave 7 selectors
   prevents collateral changes to Activity/Location detail layouts that reuse
   the same framework classes.
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   3. Program Landing Page
   Stable namespace: .ffr-program-list
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave7="1"] .ffr-program-list {
  color: var(--ffr-text-secondary, #334155);
  background: var(--ffr-bg-page, #ffffff);
}

body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__heading {
  color: var(--ffr-text-primary, #0f172a);
}

body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__subheading,
body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__teaser {
  color: var(--ffr-text-muted, #64748b);
}

body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__list {
  border-top-color: var(--ffr-border-subtle, #e9e9e9);
}

body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__item {
  border-bottom-color: var(--ffr-border-subtle, #e9e9e9);
}

body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__title {
  color: var(--ffr-link, #2d4668);
}

body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__link:hover .ffr-program-list__title,
body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__link:focus-visible .ffr-program-list__title {
  color: var(--ffr-link-hover, #17324d);
}

body[data-ffr-blueprint-wave7="1"] .ffr-program-list .ffr-program-list__link:focus-visible {
  outline: 2px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 4px;
}
/* ===== END ffr-blueprint-wave7-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave8-bridge.css ===== */
/* ========================================================================== 
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 8 — Event Showcase Renderer-Safe CSS Bridge
   2026-08-22

   Scope
   - activity.distributed_event_showcase

   Renderer-safety rule
   The Event Showcase blueprint package is not modified. This bridge themes the
   existing .ffr-des / [data-ffr-dynamic-event-showcase] contract externally.
   Existing author controls for AccentColor and SurfaceColor remain authoritative.
   Only the shipped defaults (#2D4668 and #FFFFFF) are interpreted as theme-
   inheriting defaults.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Root typography and neutral roles
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] {
  color: var(--ffr-text-secondary, #334155);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__subtitle {
  color: var(--ffr-text-muted, #64748b);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__control-label {
  color: var(--ffr-text-primary, #0f172a);
}

/* Card-body neutrals follow the site tone only while the shipped surface
   default is in use. A custom SurfaceColor keeps the blueprint's original
   fixed card text/border treatment, preserving the author's local decision. */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__summary,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__details,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__registration-note,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__date-range-word,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__address-part + .ffr-des__address-part::before,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__contact-part + .ffr-des__contact-part::before {
  color: var(--ffr-text-muted, #64748b);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__title,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__detail-label {
  color: var(--ffr-text-primary, #0f172a);
}

/* --------------------------------------------------------------------------
   Author-configured Accent Color
   Only the shipped #2D4668 default is remapped. Any non-default author value
   continues to drive the blueprint's original local accent behavior.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__heading,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__date-line,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__more-link {
  color: var(--ffr-link, #174a7e);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__detail-icon {
  stroke: var(--ffr-link, #174a7e);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__date-arrow {
  border-right-color: var(--ffr-link, #174a7e);
  border-bottom-color: var(--ffr-link, #174a7e);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__date-badge {
  /* The badge sits on the always-white elevated surface in all tones, so use
     the form-control foreground (family 950) rather than the tone link color. */
  color: var(--ffr-form-control-text, #172033);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__view-button[aria-pressed="true"],
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__chip--featured,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__cta {
  background: var(--ffr-button-primary-bg, #2d4668);
  color: var(--ffr-button-primary-text, #ffffff);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"].ffr-des--style-minimal .ffr-des__card-link:hover {
  border-color: var(--ffr-link-hover, #17324d);
}

/* --------------------------------------------------------------------------
   Author-configured Surface Color
   Only the shipped #FFFFFF default is remapped. Any other configured surface
   stays under author control.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__card-link {
  background: var(--ffr-card-bg, #ffffff);
}

/* --------------------------------------------------------------------------
   Date filter and view controls
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__date-input {
  color: var(--ffr-form-control-text, #0f172a);
  background: var(--ffr-form-control-bg, #ffffff);
  border-color: var(--ffr-form-control-border, #cbd5e1);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__date-input::placeholder {
  color: var(--ffr-form-control-placeholder, #64748b);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__date-input:focus-visible,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__view-button:focus-visible,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__card-link:focus-visible,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__more-link:focus-visible {
  outline: 3px solid var(--ffr-focus-ring, currentColor);
  outline-offset: 3px;
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__date-input:focus-visible {
  border-color: var(--ffr-form-control-focus, var(--ffr-focus-ring, currentColor));
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__datepicker-inline {
  border-color: var(--ffr-border-default, #d7dde7);
  background: var(--ffr-bg-elevated, #ffffff);
  box-shadow: var(--ffr-shadow-2, 0 2px 12px rgba(15, 23, 42, .10));
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__view-toggle {
  border-color: var(--ffr-border-default, #d5dce6);
  background: var(--ffr-bg-surface, #ffffff);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__view-button {
  color: var(--ffr-text-muted, #637086);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__view-button:not([aria-pressed="true"]):hover {
  color: var(--ffr-link-hover, #17324d);
  background: var(--ffr-bg-surface-alt, #f1f5f9);
}

/* --------------------------------------------------------------------------
   Cards, borders, media and hover states
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase].ffr-des--style-elevated .ffr-des__card-link,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase].ffr-des--style-bordered .ffr-des__card-link {
  border-color: var(--ffr-card-border, #d7dde5);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase].ffr-des--style-minimal .ffr-des__card-link {
  border-bottom-color: var(--ffr-border-subtle, #e5e7eb);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__card-link:hover {
  border-color: var(--ffr-border-strong, #b8c3cf);
  box-shadow: var(--ffr-shadow-2, 0 2px 12px rgba(15, 23, 42, .10));
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__media {
  background: linear-gradient(135deg, var(--ffr-bg-surface-alt, #eef3f7), var(--ffr-bg-surface, #ffffff));
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__media-fallback {
  color: var(--ffr-text-muted, #64748b);
  background:
    radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--ffr-bg-elevated, #ffffff) 78%, transparent), transparent 35%),
    linear-gradient(135deg, var(--ffr-bg-surface-alt, #eef3f7), var(--ffr-bg-surface, #ffffff));
}

/* Date badge uses an opaque semantic surface for predictable contrast over imagery. */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__date-badge {
  border-color: var(--ffr-border-default, #d9e0ea);
  background: var(--ffr-bg-elevated, #ffffff);
  box-shadow: var(--ffr-shadow-2, 0 2px 12px rgba(15, 23, 42, .10));
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"]:not(.ffr-des--show-images) .ffr-des__date-badge {
  background: var(--ffr-bg-surface-alt, #f7f9fb);
  border-color: var(--ffr-border-default, #d9e0ea);
}

/* --------------------------------------------------------------------------
   Status chips
   Featured follows the author accent only when explicitly customized.
   Registration and countdown use stable status semantics.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__chip--registration {
  border-color: var(--ffr-status-success-border, #2e7668);
  background: var(--ffr-status-success-bg, #e7f5ee);
  color: var(--ffr-status-success-text, #1f5b43);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__chip--countdown {
  border-color: var(--ffr-status-warning-border, #d89a2b);
  background: var(--ffr-status-warning-bg, #fff4df);
  color: var(--ffr-status-warning-text, #6c4300);
}

/* --------------------------------------------------------------------------
   Card body and footer details
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-surface: #FFFFFF"] .ffr-des__card-footer {
  border-top-color: var(--ffr-border-subtle, #e4e8ee);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__empty {
  border-color: var(--ffr-border-default, #cbd3df);
  background: var(--ffr-bg-surface-alt, #f8fafc);
  color: var(--ffr-text-muted, #5e6a7d);
}

body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase] .ffr-des__more-link:hover {
  color: var(--ffr-link-hover, #17324d);
}

/* Default CTA receives the normal themed hover pair. Custom author AccentColor
   remains under the blueprint's original hover behavior because its root no
   longer matches the shipped-default detector. */
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__card-link:hover .ffr-des__cta,
body[data-ffr-blueprint-wave8="1"] .ffr-des[data-ffr-dynamic-event-showcase][style*="--ffr-des-accent: #2D4668"] .ffr-des__card-link:focus-visible .ffr-des__cta {
  background: var(--ffr-button-primary-hover-bg, #17324d);
  color: var(--ffr-button-primary-hover-text, var(--ffr-button-primary-text, #ffffff));
}
/* ===== END ffr-blueprint-wave8-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave9-bridge.css ===== */
/* ========================================================================== 
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 9 — Enhanced PDF Document Viewer CSS Bridge
   2026-08-22

   Scope
   - jsondata.distributed_enhanced_pdf_document_viewer

   Renderer-safety rule
   The PDF Viewer blueprint package is not modified. This bridge themes the
   existing .ffr-document-viewer-variant contract externally. The site's
   selected theme family supplies the palette; the blueprint's existing
   Appearance Variant (Light / Medium / Dark) remains the local tone override.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Local viewer tone contract derived from the selected site family.
   !important is intentional: the blueprint emits its original --dv-* values
   from an inline <style> block after head stylesheets. The bridge must override
   those local defaults without modifying renderer source.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant {
  --dv-bg: var(--ffr-palette-100) !important;
  --dv-surface: #FFFFFF !important;
  --dv-toolbar: color-mix(in srgb, var(--ffr-palette-950) 6%, #FFFFFF) !important;
  --dv-text: var(--ffr-palette-950) !important;
  --dv-muted: var(--ffr-palette-900) !important;
  --dv-accent: var(--ffr-palette-900) !important;
  --dv-border: var(--ffr-palette-500) !important;
  --dv-stage: color-mix(in srgb, var(--ffr-palette-950) 8%, #FFFFFF) !important;

  --dv-wave9-divider: color-mix(in srgb, var(--ffr-palette-950) 18%, transparent);
  --dv-wave9-hover: color-mix(in srgb, var(--ffr-palette-950) 8%, transparent);
  --dv-wave9-focus: var(--ffr-palette-700);
  --dv-wave9-focus-offset: #FFFFFF;
  --dv-wave9-primary-bg: var(--ffr-palette-700);
  --dv-wave9-primary-text: #FFFFFF;
  --dv-wave9-primary-hover-bg: var(--ffr-palette-900);
  --dv-wave9-primary-hover-text: #FFFFFF;
  --dv-wave9-elevated-bg: #FFFFFF;
  --dv-wave9-elevated-text: var(--ffr-palette-950);
  --dv-wave9-elevated-muted: var(--ffr-palette-900);
  --dv-wave9-elevated-border: color-mix(in srgb, var(--ffr-palette-950) 16%, transparent);
  --dv-wave9-tooltip-bg: var(--ffr-palette-950);
  --dv-wave9-tooltip-text: #FFFFFF;
  --dv-wave9-mark-bg: var(--ffr-palette-accent);
  --dv-wave9-mark-text: var(--ffr-palette-accent-contrast);
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant.ffr-document-viewer-variant--medium {
  --dv-bg: var(--ffr-palette-700) !important;
  --dv-surface: var(--ffr-palette-900) !important;
  --dv-toolbar: color-mix(in srgb, var(--ffr-palette-950) 35%, var(--ffr-palette-700)) !important;
  --dv-text: #FFFFFF !important;
  --dv-muted: var(--ffr-palette-100) !important;
  --dv-accent: #FFFFFF !important;
  --dv-border: rgba(255,255,255,.30) !important;
  --dv-stage: var(--ffr-palette-950) !important;

  --dv-wave9-divider: rgba(255,255,255,.24);
  --dv-wave9-hover: rgba(255,255,255,.14);
  --dv-wave9-focus: #FFFFFF;
  --dv-wave9-focus-offset: var(--ffr-palette-950);
  --dv-wave9-primary-bg: var(--ffr-palette-accent);
  --dv-wave9-primary-text: var(--ffr-palette-accent-contrast);
  --dv-wave9-primary-hover-bg: var(--ffr-palette-100);
  --dv-wave9-primary-hover-text: var(--ffr-palette-950);
  --dv-wave9-tooltip-bg: #FFFFFF;
  --dv-wave9-tooltip-text: var(--ffr-palette-950);
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant.ffr-document-viewer-variant--dark {
  --dv-bg: var(--ffr-palette-950) !important;
  --dv-surface: var(--ffr-palette-900) !important;
  --dv-toolbar: color-mix(in srgb, var(--ffr-palette-950) 78%, var(--ffr-palette-900)) !important;
  --dv-text: #FFFFFF !important;
  --dv-muted: var(--ffr-palette-100) !important;
  --dv-accent: #FFFFFF !important;
  --dv-border: rgba(255,255,255,.22) !important;
  --dv-stage: color-mix(in srgb, var(--ffr-palette-950) 88%, #000000) !important;

  --dv-wave9-divider: rgba(255,255,255,.20);
  --dv-wave9-hover: rgba(255,255,255,.12);
  --dv-wave9-focus: #FFFFFF;
  --dv-wave9-focus-offset: var(--ffr-palette-950);
  --dv-wave9-primary-bg: var(--ffr-palette-accent);
  --dv-wave9-primary-text: var(--ffr-palette-accent-contrast);
  --dv-wave9-primary-hover-bg: var(--ffr-palette-100);
  --dv-wave9-primary-hover-text: var(--ffr-palette-950);
  --dv-wave9-tooltip-bg: #FFFFFF;
  --dv-wave9-tooltip-text: var(--ffr-palette-950);
}

/* --------------------------------------------------------------------------
   Core viewer controls and interaction states
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__toolbar > .ffr-document-viewer-variant__group + .ffr-document-viewer-variant__group,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__actions > * + * {
  border-left-color: var(--dv-wave9-divider) !important;
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__button:hover,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__button:focus,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__thumb:hover,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__thumb:focus,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__share-menu a:hover,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__share-menu a:focus,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__share-menu button:hover,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__share-menu button:focus,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__search-result:hover,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__search-result:focus {
  background: var(--dv-wave9-hover) !important;
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__button:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__page:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__thumb:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__search-form input:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__primary-button:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__search-result:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__share-menu a:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__share-menu button:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__extracted-text:focus-visible,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__viewport:focus-visible {
  outline: 3px solid var(--dv-wave9-focus) !important;
  outline-offset: 3px !important;
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__thumb.is-active {
  border-color: var(--dv-wave9-focus) !important;
}

/* --------------------------------------------------------------------------
   Form controls and primary actions
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__page,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__search-form input {
  background: var(--dv-wave9-elevated-bg) !important;
  color: var(--dv-wave9-elevated-text) !important;
  border-color: var(--dv-wave9-elevated-border) !important;
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__search-form input::placeholder {
  color: var(--dv-wave9-elevated-muted) !important;
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__primary-button {
  background: var(--dv-wave9-primary-bg) !important;
  color: var(--dv-wave9-primary-text) !important;
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__primary-button:hover,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__primary-button:focus-visible {
  background: var(--dv-wave9-primary-hover-bg) !important;
  color: var(--dv-wave9-primary-hover-text) !important;
}

/* --------------------------------------------------------------------------
   Tooltips
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant [data-tooltip]::after {
  background: var(--dv-wave9-tooltip-bg) !important;
  color: var(--dv-wave9-tooltip-text) !important;
}
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant [data-tooltip]::before {
  border-bottom-color: var(--dv-wave9-tooltip-bg) !important;
}

/* --------------------------------------------------------------------------
   Elevated reading/search surfaces stay light for predictable PDF/text UX.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__extracted-text {
  background: var(--dv-wave9-elevated-bg) !important;
  color: var(--dv-wave9-elevated-text) !important;
  border-color: var(--dv-wave9-elevated-border) !important;
}

body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__search-result mark {
  background: var(--dv-wave9-mark-bg) !important;
  color: var(--dv-wave9-mark-text) !important;
}

/* PDF pages and browser-native PDF frames intentionally remain white. */
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant canvas,
body[data-ffr-blueprint-wave9="1"][data-ffr-theme] .ffr-document-viewer-variant__native iframe {
  background: #FFFFFF !important;
}
/* ===== END ffr-blueprint-wave9-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave10-bridge.css ===== */
/* ========================================================================== 
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 10 — Hero / Featured Media CSS Bridge
   2026-08-22

   Scope
   - ProgramDetail.distributed_location_hero_banner
   - jsondata.distributed_featured_video
   - LinkListLink.distributed_fancy_parallax

   Renderer-safety rule
   These blueprint packages are not modified. Theme behavior is applied through
   their existing stable wrapper classes and data attributes. Existing author
   color controls remain authoritative; only shipped/default values are mapped
   to the unified theme contract.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Location Hero Banner
   The shipped/default background (#17384a) follows the selected site tone.
   An author-selected Background Color remains untouched because the selector
   no longer matches the shipped value.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .n94p-hero-169[style*="background-color:#17384a"] {
  background-color: var(--ffr-bg-page) !important;
}

/* Image-overlay controls stay high-contrast while taking their dark neutral
   from the selected family. */
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .n94p-hero-169__arrow {
  background: var(--ffr-bg-overlay) !important;
  color: #FFFFFF !important;
  border-color: rgba(255,255,255,.72) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .n94p-hero-169__arrow:hover,
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .n94p-hero-169__arrow:focus-visible {
  background: var(--ffr-palette-950) !important;
  color: #FFFFFF !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .n94p-hero-169__arrow:focus-visible,
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .n94p-hero-169__link:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}

/* --------------------------------------------------------------------------
   Featured Video
   BackgroundColorCss is emitted as an inline custom property. Only the
   blueprint's default var(--ffr-color-primary) value is remapped. A custom
   author color therefore stays authoritative without renderer changes.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video[style*="--ffr-featured-video-bg: var(--ffr-color-primary)"] {
  --ffr-featured-video-bg: var(--ffr-header-bg) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video[style*="--ffr-featured-video-bg: var(--ffr-color-primary)"] .ffr-featured-video__title {
  color: var(--ffr-header-text) !important;
}

/* The curved cutout should reveal the selected page tone rather than forcing
   a permanent white transition. */
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video[data-curve="on"]::after {
  background: var(--ffr-bg-page) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video__content {
  color: var(--ffr-text-primary) !important;
}

/* Keep the video itself on a predictable elevated media surface. */
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video__card {
  background: var(--ffr-bg-elevated) !important;
  border-color: var(--ffr-bg-elevated) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video__btn {
  background: var(--ffr-button-primary-bg) !important;
  color: var(--ffr-button-primary-text) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video__btn:hover,
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video__btn:focus-visible {
  background: var(--ffr-button-primary-hover-bg) !important;
  color: var(--ffr-button-primary-hover-text) !important;
  filter: none !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video__btn:focus-visible,
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-featured-video__video:focus-visible {
  outline: 3px solid var(--ffr-focus-ring) !important;
  outline-offset: 3px !important;
}

/* --------------------------------------------------------------------------
   Fancy Parallax Carousel
   Photography remains the dominant visual. The family supplies a dark overlay
   and coordinated CTA/supporting text. White primary text and dot controls are
   intentionally retained for predictable text-over-image readability.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__slide::before {
  background: var(--ffr-bg-overlay) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__content,
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__title {
  color: #FFFFFF !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__desc {
  color: var(--ffr-palette-100) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__btn {
  background: var(--ffr-button-primary-bg) !important;
  color: var(--ffr-button-primary-text) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__btn:hover,
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__btn:focus-visible {
  background: var(--ffr-button-primary-hover-bg) !important;
  color: var(--ffr-button-primary-hover-text) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__btn:focus-visible,
body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__dot:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__dot {
  border-color: rgba(255,255,255,.95) !important;
  background: transparent !important;
}

body[data-ffr-blueprint-wave10="1"][data-ffr-theme] .ffr-parallax-carousel__dot.is-active {
  background: rgba(255,255,255,.95) !important;
}
/* ===== END ffr-blueprint-wave10-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave11-bridge.css ===== */
/* ========================================================================== 
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 11 — Gallery / Carousel CSS Bridge
   2026-08-22

   Scope
   - gallerymediaitem.distributed_carousel_with_headline
   - gallerymediaitem.distributed_dynamic_slideshow_carousel
   - gallerymediaitem.distributed_gallery_images_block
   - gallerymediaitem.distributed_gallery_with_popup
   - gallerymediaitem.distributed_multi-frame_carousel_v2
   - gallerymediaitem.distributed_regional_carousel
   - gallerymediaitem.distributed_slick_carousel

   Renderer-safety rule
   Blueprint packages are not modified. Theme behavior is applied through
   existing stable wrapper classes/data attributes. Existing author color
   controls remain authoritative; only shipped/default values are remapped.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Carousel with Headline
   Photography stays dominant. Family-dark overlay/panel values coordinate the
   component while inverse text and media controls remain predictable.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__overlay {
  background: color-mix(in srgb, var(--ffr-palette-950) 62%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__panel {
  background: color-mix(in srgb, var(--ffr-palette-950) 78%, transparent) !important;
  color: #FFFFFF !important;
  border: 1px solid color-mix(in srgb, var(--ffr-palette-100) 24%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__subhead,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__body {
  color: var(--ffr-palette-100) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__btn {
  background: var(--ffr-button-primary-bg) !important;
  color: var(--ffr-button-primary-text) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__btn:hover,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__btn:focus-visible {
  background: var(--ffr-button-primary-hover-bg) !important;
  color: var(--ffr-button-primary-hover-text) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__btn:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__arrow:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__dot:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__arrow {
  color: #FFFFFF !important;
  background: color-mix(in srgb, var(--ffr-palette-950) 48%, transparent) !important;
  border-radius: 999px !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__arrow:hover {
  color: #FFFFFF !important;
  background: color-mix(in srgb, var(--ffr-palette-950) 76%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__dot {
  border-color: rgba(255,255,255,.95) !important;
  background: transparent !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__dot.is-active,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-hero-carousel__dot[aria-current="true"] {
  background: #FFFFFF !important;
}

/* --------------------------------------------------------------------------
   Dynamic Slideshow Carousel
   Blank/default author values inherit the family. Non-default inline custom
   properties stay authoritative. The bridge also reconciles the existing
   DescriptionTextColor property-name mismatch without touching renderer code.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel:not([style*="--ffr-cta-carousel-overlay-start:"]),
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-overlay-start: #000000" i] {
  --ffr-cta-carousel-overlay-start: var(--ffr-palette-950) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel:not([style*="--ffr-cta-carousel-overlay-end:"]),
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-overlay-end: #000000" i] {
  --ffr-cta-carousel-overlay-end: var(--ffr-palette-900) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel:not([style*="--ffr-cta-carousel-title-color:"]),
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-title-color: #ffffff" i] {
  --ffr-cta-carousel-title-color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel:not([style*="--ffr-cta-carousel-description-color:"]) {
  --ffr-cta-carousel-desc-color: var(--ffr-palette-100) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-description-color:"] .ffr-cta-carousel__description {
  color: var(--ffr-cta-carousel-description-color) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-description-color: #ffffff" i] .ffr-cta-carousel__description {
  color: var(--ffr-palette-100) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel:not([style*="--ffr-cta-carousel-link-color:"]) .ffr-cta-carousel__link,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-link-color: #ffffff" i] .ffr-cta-carousel__link {
  color: var(--ffr-button-primary-text) !important;
  background: var(--ffr-button-primary-bg) !important;
  border-color: color-mix(in srgb, var(--ffr-button-primary-text) 40%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel:not([style*="--ffr-cta-carousel-link-color:"]) .ffr-cta-carousel__link:hover,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel:not([style*="--ffr-cta-carousel-link-color:"]) .ffr-cta-carousel__link:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-link-color: #ffffff" i] .ffr-cta-carousel__link:hover,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-link-color: #ffffff" i] .ffr-cta-carousel__link:focus-visible {
  color: var(--ffr-button-primary-hover-text) !important;
  background: var(--ffr-button-primary-hover-bg) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel__arrow {
  background: color-mix(in srgb, var(--ffr-palette-950) 58%, transparent) !important;
  color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel__arrow:hover {
  background: color-mix(in srgb, var(--ffr-palette-950) 82%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel__link:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel__arrow:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-cta-carousel__dot:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}

/* --------------------------------------------------------------------------
   Gallery Images Block
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block {
  background: var(--ffr-palette-950) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block__bg::after {
  background: color-mix(in srgb, var(--ffr-palette-950) 88%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block__h2,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block__h3 {
  color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block__desc {
  color: var(--ffr-palette-100) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block__btn {
  background: var(--ffr-button-primary-bg) !important;
  color: var(--ffr-button-primary-text) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block__btn:hover,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block__btn:focus-visible {
  background: var(--ffr-button-primary-hover-bg) !important;
  color: var(--ffr-button-primary-hover-text) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery__arrow,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery__dot {
  color: #FFFFFF !important;
  border-color: rgba(255,255,255,.95) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery__dot.is-active {
  background: #FFFFFF !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery__card:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery__arrow:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery__dot:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-gallery-block__btn:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}

/* --------------------------------------------------------------------------
   Gallery with Popup / Lightbox
   Main gallery uses family colors. The modal itself remains deliberately dark
   and neutral so photographs retain predictable contrast and color fidelity.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block {
  background: var(--ffr-palette-950) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block__bg::after {
  background: color-mix(in srgb, var(--ffr-palette-950) 88%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block__h2,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block__h3 {
  color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block__desc {
  color: var(--ffr-palette-100) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block__btn {
  background: var(--ffr-button-primary-bg) !important;
  color: var(--ffr-button-primary-text) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block__btn:hover,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block__btn:focus-visible {
  background: var(--ffr-button-primary-hover-bg) !important;
  color: var(--ffr-button-primary-hover-text) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-card:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-sq-gallery-block__btn:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-lightbox__close:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-lightbox__nav:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
}

/* --------------------------------------------------------------------------
   Multi-Frame Carousel v2
   Only the shipped #17384a background follows the site theme. A custom author
   Background Color remains untouched.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .n94p-media-hero[style*="background-color:#17384a" i] {
  background-color: var(--ffr-bg-page) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .n94p-media-hero__arrow {
  background: color-mix(in srgb, var(--ffr-palette-950) 58%, transparent) !important;
  color: #FFFFFF !important;
  border-color: rgba(255,255,255,.72) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .n94p-media-hero__arrow:hover,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .n94p-media-hero__arrow:focus-visible {
  background: color-mix(in srgb, var(--ffr-palette-950) 84%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .n94p-media-hero__arrow:focus-visible,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .n94p-media-hero__link:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}

/* --------------------------------------------------------------------------
   Regional Coverflow Carousel
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-coverflow__viewport {
  background: var(--ffr-palette-950) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-coverflow__slide::after {
  background: color-mix(in srgb, var(--ffr-palette-950) 62%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-coverflow__slide.is-center::after {
  background: transparent !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-coverflow__btn {
  background: color-mix(in srgb, var(--ffr-palette-950) 54%, transparent) !important;
  color: #FFFFFF !important;
  border-color: rgba(255,255,255,.82) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-coverflow__btn:hover,
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-coverflow__btn:focus-visible {
  background: color-mix(in srgb, var(--ffr-palette-950) 82%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-coverflow__btn:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}

/* --------------------------------------------------------------------------
   Slick Carousel
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-carousel__viewport {
  background: var(--ffr-bg-surface) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-carousel__dots {
  background: color-mix(in srgb, var(--ffr-palette-950) 64%, transparent) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-carousel__dot {
  background: rgba(255,255,255,.68) !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-carousel__dot[aria-current="true"] {
  background: #FFFFFF !important;
}
body[data-ffr-blueprint-wave11="1"][data-ffr-theme] .ffr-carousel__dot:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}
/* ===== END ffr-blueprint-wave11-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave12-bridge.css ===== */
/* ========================================================================== 
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 12 — Specialized Media / Carousel CSS Bridge
   2026-08-23

   Scope
   - gallerymediaitem.distributed_media_cta_hero_carousel
   - LinkListLink.distributed_gallery_videos
   - LinkListLink.distributed_video_carousel_with_content

   Renderer-safety rule
   Blueprint packages are not modified. Wave 12 builds on the Wave 11 carousel
   contracts and adds only specialized sponsor/video/gallery roles that were not
   already covered. Author-facing color/media configuration remains authoritative.
   ========================================================================== */

/* Media CTA Hero Carousel: Wave 11 already themes the shared .ffr-cta-carousel
   system. Wave 12 adds sponsor-specific inheritance. */
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-cta-carousel:not([style*="--ffr-cta-carousel-sponsor-text-color:"]) .ffr-cta-carousel__sponsor-text {
  color: var(--ffr-cta-carousel-description-color, var(--ffr-palette-100)) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-cta-carousel[style*="--ffr-cta-carousel-sponsor-text-color: #ffffff" i] .ffr-cta-carousel__sponsor-text {
  color: var(--ffr-palette-100) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-cta-carousel__sponsor-media {
  border-radius: var(--ffr-radius-md, 10px);
}

/* Gallery Videos */
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel {
  --ffr-blue-overlay: color-mix(in srgb, var(--ffr-palette-950) 72%, transparent);
  background-color: var(--ffr-palette-950) !important;
  color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__title {
  color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__subheader,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__desc,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCard__p,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCard__missing {
  color: var(--ffr-palette-100) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCard__h {
  color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__viewAll {
  background: var(--ffr-button-primary-bg) !important;
  color: var(--ffr-button-primary-text) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__viewAll:hover,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__viewAll:focus-visible {
  background: var(--ffr-button-primary-hover-bg) !important;
  color: var(--ffr-button-primary-hover-text) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__viewAll[aria-disabled="true"] {
  background: color-mix(in srgb, var(--ffr-palette-100) 22%, transparent) !important;
  color: color-mix(in srgb, #FFFFFF 70%, transparent) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__arrow {
  background: color-mix(in srgb, var(--ffr-palette-950) 62%, transparent) !important;
  color: #FFFFFF !important;
  border: 1px solid color-mix(in srgb, #FFFFFF 28%, transparent) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__arrow:hover {
  background: color-mix(in srgb, var(--ffr-palette-950) 84%, transparent) !important;
  color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__dot {
  background: color-mix(in srgb, #FFFFFF 36%, transparent) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__dot.is-active,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__dot[aria-current="true"] {
  background: #FFFFFF !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCard__media {
  background: color-mix(in srgb, #FFFFFF 10%, var(--ffr-palette-950)) !important;
  border: 1px solid color-mix(in srgb, #FFFFFF 18%, transparent) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCard__play {
  color: #FFFFFF !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCard:focus-visible,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__viewAll:focus-visible,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__arrow:focus-visible,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoCarousel__dot:focus-visible,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoModal__close:focus-visible {
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--ffr-palette-950) !important;
}

/* Modal/video playback surfaces remain neutral-dark so embedded video keeps
   predictable contrast and color fidelity across every site theme. */
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoModal__backdrop {
  background: color-mix(in srgb, #000000 76%, transparent) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoModal__dialog,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoModal__body,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoModal__video {
  background: #000000 !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoModal__close {
  background: color-mix(in srgb, var(--ffr-palette-950) 72%, transparent) !important;
  color: #FFFFFF !important;
  border: 1px solid color-mix(in srgb, #FFFFFF 28%, transparent) !important;
}
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-videoModal__close:hover {
  background: var(--ffr-palette-950) !important;
}

/* Video Carousel with Content: Wave 11 already themes the shared hero-carousel
   overlay/panel/CTA/arrows/dots. Wave 12 adds only the video fallback surface. */
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-hero-carousel__video,
body[data-ffr-blueprint-wave12="1"][data-ffr-theme] .ffr-hero-carousel__video-el {
  background: var(--ffr-palette-950) !important;
}
/* ===== END ffr-blueprint-wave12-bridge.css ===== */

/* ===== BEGIN ffr-blueprint-wave13-bridge.css ===== */
/* ========================================================================== 
   CMS 3.0 Unified Theme Architecture
   Blueprint Migration Wave 13 — Utility / Integration Coverage Bridge
   2026-08-23

   Renderer-safety rule
   - No blueprint package is modified.
   - Theme only CMS-owned wrappers, placeholders, labels and controls.
   - Third-party ad/embed/iframe interiors remain untouched.
   - Existing author configuration remains authoritative.

   New bridge scope
   - jsondata.distributed_mwr_menu
   - jsondata.distributed_enterprise_ad
   - jsondata.distributed_n9_ad
   - jsondata.distributed_facebook_embed
   - jsondata.distributed_universal_embed

   Audited / already covered / intentionally no new rules
   - gallerymediaitem.distributed_resources (Core Stage 2)
   - gallerymediaitem.distributed_simple_list (Core Stage 2)
   - jsondata.distrubted_variant_header (shell architecture)
   - navitem.distributed_variant_navigation (shell architecture)
   - jsondata.distributed_variant_footer (shell architecture)
   - navitem.distributed_main_navigation (legacy/Base path retained)
   - LinkListLink.distributed_footer_links (legacy/Base helper retained)
   - jsondata.distributed_google_analytics_configurable (non-visual)
   - jsondata.distributed_token_override (author override layer retained)
   ========================================================================== */

/* --------------------------------------------------------------------------
   MWR Menu / Region Side Menu
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__panel,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__header {
  background: var(--ffr-bg-surface) !important;
  color: var(--ffr-text-primary) !important;
  border-color: var(--ffr-border-default) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__title-text,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__opener,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__link,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__back-btn,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__close-btn {
  color: var(--ffr-text-primary) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__opener:hover,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__link:hover,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__opener:focus-visible,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__link:focus-visible,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu .has-drop-down.is-open > .ffr-sidemenu__opener {
  background: var(--ffr-bg-surface-strong) !important;
  color: var(--ffr-text-primary) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__opener:focus-visible,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__link:focus-visible,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__back-btn:focus-visible,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__close-btn:focus-visible,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__trigger:focus-visible {
  outline: 3px solid var(--ffr-focus-ring) !important;
  outline-offset: 3px !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__trigger-caret {
  border-top-color: var(--ffr-text-primary) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-gray-overlay {
  background: var(--ffr-bg-surface-alt) !important;
}

/* Keep the modal backdrop neutral so it consistently communicates occlusion. */
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-sidemenu__backdrop {
  background: rgba(0,0,0,.42) !important;
}

/* --------------------------------------------------------------------------
   Enterprise Ad / N9 Ad
   Only CMS-owned wrapper and fallback/placeholder UI is themed. The actual
   advertising payload is not recolored or restyled.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-ads {
  background: var(--ffr-bg-surface-alt) !important;
  border-bottom-color: var(--ffr-border-subtle) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-adslot__placeholder,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-adslot__noscript,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-n9-ad__placeholder,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-n9-ad__noscript {
  background: var(--ffr-bg-surface) !important;
  border-color: var(--ffr-border-default) !important;
  color: var(--ffr-text-primary) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-adslot__placeholder-inner,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-n9-ad__placeholder-inner {
  color: var(--ffr-text-primary) !important;
}

/* --------------------------------------------------------------------------
   Facebook Embed
   The iframe content belongs to Facebook and remains untouched. Only the CMS
   frame and keyboard focus treatment participate in the site theme.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-fb__frame {
  background: var(--ffr-bg-surface-alt) !important;
  box-shadow: var(--ffr-shadow-2) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-fb__frame:focus-within {
  outline: 3px solid var(--ffr-focus-ring) !important;
  outline-offset: 3px !important;
}

/* --------------------------------------------------------------------------
   Universal Embed
   Preserve Config.BackgroundColor on the outer section. Theme only CMS-owned
   consent, empty, caption, fallback and interaction UI. Embedded/raw third-
   party content is not recolored.
   -------------------------------------------------------------------------- */
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__framewrap:not([data-ffr-embed-provider="facebook"]) {
  background: var(--ffr-bg-surface-alt) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__consent {
  background: var(--ffr-bg-surface) !important;
  color: var(--ffr-text-primary) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__consentTitle {
  color: var(--ffr-text-primary) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__consentNote {
  color: var(--ffr-text-primary) !important;
  opacity: 1 !important;
}


body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__btn {
  background: var(--ffr-button-primary-bg) !important;
  color: var(--ffr-button-primary-text) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__btn:hover,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__btn:focus-visible {
  background: var(--ffr-button-primary-hover-bg) !important;
  color: var(--ffr-button-primary-hover-text) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__link {
  color: var(--ffr-text-primary) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__link:hover {
  color: var(--ffr-link-hover) !important;
}

body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__btn:focus-visible,
body[data-ffr-blueprint-wave13="1"][data-ffr-theme] .ffr-embed__link:focus-visible {
  outline: 3px solid var(--ffr-focus-ring) !important;
  outline-offset: 3px !important;
}
/* ===== END ffr-blueprint-wave13-bridge.css ===== */

/* ========================================================================== 
   FINAL THEME HARDENING — 2026-08-23
   Scoped by data-ffr-theme-hardening="1" for UAT rollback.

   Goals
   - Treat default content-section backgrounds as inherited page canvas rather
     than a second opaque panel in Medium/Dark themes.
   - Preserve cards, panels, forms, popovers and author-selected custom colors.
   - Make Social/Share foregrounds adapt to the active site tone so transparent
     social UI never resolves to same-color-on-same-color combinations.
   - Keep legacy default-value detection in this compatibility bridge only.
   ========================================================================== */

/* --------------------------------------------------------------------------
   A. Section canvas normalization
   -------------------------------------------------------------------------- */

/* Renderer-sensitive configurable section backgrounds: only shipped defaults
   are converted. Any non-default author picker value remains authoritative. */
body[data-ffr-theme-hardening="1"][data-ffr-blueprint-wave2="1"]
  .ffr-featured-block[style*="--ffr-featured-background: #ffffff"],
body[data-ffr-theme-hardening="1"][data-ffr-blueprint-wave2="1"]
  .ffr-featured-block:not([style*="--ffr-featured-background:"]) {
  --ffr-featured-background: var(--ffr-bg-section, transparent) !important;
}

body[data-ffr-theme-hardening="1"][data-ffr-blueprint-wave2="1"]
  .ffr-program-spotlight[style*="--ffr-spotlight-background:"][style*="#f5f7fa"] {
  --ffr-spotlight-background: var(--ffr-bg-section, transparent) !important;
}

body[data-ffr-theme-hardening="1"][data-ffr-blueprint-wave2="1"]
  .ffr-offset-link-list[style*="--ffr-offset-bg: #ffffff"] {
  --ffr-offset-bg: var(--ffr-bg-section, transparent) !important;
}

body[data-ffr-theme-hardening="1"][data-ffr-blueprint-wave3="1"]
  .c-section-heading .c-section-heading__inner[style*="background-color: #ffffff" i] {
  background-color: var(--ffr-bg-section, transparent) !important;
}

/* Shared section wrappers. These previously painted the page color or a full
   surface over the page. Transparent inheritance is visually identical where
   the colors matched, but avoids stacked canvases when the component is nested
   or when Medium/Dark page and surface roles intentionally differ. */
body[data-ffr-theme-hardening="1"] .ffr-linklist4,
body[data-ffr-theme-hardening="1"] .ffr-image-link-grid,
body[data-ffr-theme-hardening="1"] .ffr-link-list,
body[data-ffr-theme-hardening="1"] .ffr-featured-events,
body[data-ffr-theme-hardening="1"] .ffr-news-paged,
body[data-ffr-theme-hardening="1"] .ffr-jobs,
body[data-ffr-theme-hardening="1"] .ffr-program-list {
  background: var(--ffr-bg-section, transparent) !important;
}

/* --------------------------------------------------------------------------
   B. Social / Share contrast contract

   The Social + Share blueprint has a transparent background. Its legacy
   Light/Medium/Dark appearance values therefore cannot safely map to literal
   light/medium/dark family shades: e.g. Modern Navy Medium previously mapped
   both the page and the icon foreground to palette-700 (#0B2545).

   Appearance now means relative emphasis within the active site tone:
   Light  -> soft foreground role
   Medium -> default foreground role
   Dark   -> strong foreground role

   The semantic roles automatically become dark enough on Light pages and
   light enough on Medium/Dark pages. The author-facing appearance setting is
   preserved; only its color resolution is made context-aware.
   -------------------------------------------------------------------------- */
body[data-ffr-theme-hardening="1"][data-ffr-theme]
  .ffr-social-share-variant[data-ffr-appearance="light"] {
  --ffr-social-share-color: var(--ffr-social-control-fg-soft) !important;
  --ffr-social-share-label-color: var(--ffr-social-control-fg-soft) !important;
  --ffr-social-share-border: var(--ffr-social-control-border-soft) !important;
  --ffr-social-share-divider-color: var(--ffr-social-control-border-soft) !important;
  --ffr-social-share-hover-bg: var(--ffr-social-control-hover-bg) !important;
  --ffr-social-share-hover-color: var(--ffr-social-control-hover-text) !important;
  --ffr-social-share-hover-border: var(--ffr-social-control-hover-border) !important;
}

body[data-ffr-theme-hardening="1"][data-ffr-theme]
  .ffr-social-share-variant[data-ffr-appearance="medium"] {
  --ffr-social-share-color: var(--ffr-social-control-fg-default) !important;
  --ffr-social-share-label-color: var(--ffr-social-control-fg-default) !important;
  --ffr-social-share-border: var(--ffr-social-control-border-default) !important;
  --ffr-social-share-divider-color: var(--ffr-social-control-border-default) !important;
  --ffr-social-share-hover-bg: var(--ffr-social-control-hover-bg) !important;
  --ffr-social-share-hover-color: var(--ffr-social-control-hover-text) !important;
  --ffr-social-share-hover-border: var(--ffr-social-control-hover-border) !important;
}

body[data-ffr-theme-hardening="1"][data-ffr-theme]
  .ffr-social-share-variant[data-ffr-appearance="dark"] {
  --ffr-social-share-color: var(--ffr-social-control-fg-strong) !important;
  --ffr-social-share-label-color: var(--ffr-social-control-fg-strong) !important;
  --ffr-social-share-border: var(--ffr-social-control-border-strong) !important;
  --ffr-social-share-divider-color: var(--ffr-social-control-border-strong) !important;
  --ffr-social-share-hover-bg: var(--ffr-social-control-hover-bg) !important;
  --ffr-social-share-hover-color: var(--ffr-social-control-hover-text) !important;
  --ffr-social-share-hover-border: var(--ffr-social-control-hover-border) !important;
}

body[data-ffr-theme-hardening="1"][data-ffr-theme]
  .ffr-social-share-variant__link:focus-visible {
  outline-color: var(--ffr-social-control-focus, var(--ffr-focus-ring)) !important;
}

/* Shared detail-page social buttons use the same context-aware contract. */
body[data-ffr-theme-hardening="1"][data-ffr-theme]
  .ffr-social-share .ffr-social-btn {
  color: var(--ffr-social-control-fg-default) !important;
  border-color: var(--ffr-social-control-border-default) !important;
}

body[data-ffr-theme-hardening="1"][data-ffr-theme]
  .ffr-social-share .ffr-social-btn:hover,
body[data-ffr-theme-hardening="1"][data-ffr-theme]
  .ffr-social-share .ffr-social-btn:focus-visible {
  background: var(--ffr-social-control-hover-bg) !important;
  color: var(--ffr-social-control-hover-text) !important;
  border-color: var(--ffr-social-control-hover-border) !important;
}

body[data-ffr-theme-hardening="1"][data-ffr-theme]
  .ffr-social-share .ffr-social-btn:focus-visible {
  outline: 3px solid var(--ffr-social-control-focus, var(--ffr-focus-ring)) !important;
  outline-offset: 3px !important;
}

