/* ==========================================================================
   FixHire Components
   Layout helpers for the reusable Batch 3 marketing component blueprints
   (heroes, strips, editorial intros, card grids, CTA bands, FAQ, chips).
   Depends on fixhire-design-system.css for tokens + base utilities.
   All classes are theme-neutral, fh- prefixed, Elementor Free-compatible.
   ========================================================================== */

/* Package / Stage Cards widgets (Batch 14C-1). Scoped to the widget wrappers so
   existing blueprint .fh-package-card / .fh-stage-card usage is unaffected. Adds a
   subtle accent top edge and consistent CTA spacing; cards stretch to equal height. */
.fh-package-cards .fh-package-card,
.fh-stage-cards .fh-stage-card {
  border-top: 3px solid var(--fh-accent);
  display: flex;
  flex-direction: column;
  height: 100%;
}
.fh-package-cards .fh-card-cta,
.fh-stage-cards .fh-card-cta { margin-top: auto; align-self: flex-start; }
.fh-package-cards .fh-list-checks,
.fh-stage-cards .fh-list-checks { margin: 12px 0; }

/* Container-aware wrapping so cards reduce columns by available width (not just the
   viewport) and never get clipped. auto-fit + minmax lets 4->3->2->1 happen naturally
   inside narrow Elementor columns; the per-count min track keeps the chosen layout's
   intent. min-width:0 stops long content from forcing overflow. Scoped to these widgets
   only, so blueprint .fh-grid usage is unaffected. */
.fh-package-cards .fh-grid,
.fh-stage-cards .fh-grid { overflow: visible; }
/* 14K column fix: honour the selected desktop column count exactly. Earlier this used
   repeat(auto-fit, minmax(...)), which packed extra cards (e.g. 2-col showed 3). Explicit
   repeat(N) respects the choice; min-width:0 on the cards (below) prevents overflow, and the
   tablet/mobile data-attr rules still override at smaller widths. */
.fh-package-cards .fh-grid-2,
.fh-stage-cards .fh-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fh-package-cards .fh-grid-3,
.fh-stage-cards .fh-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fh-package-cards .fh-grid-4,
.fh-stage-cards .fh-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fh-package-cards .fh-grid-1,
.fh-stage-cards .fh-grid-1 { grid-template-columns: 1fr; }
.fh-package-cards .fh-package-card,
.fh-stage-cards .fh-stage-card { min-width: 0; max-width: 100%; }
.fh-package-cards .fh-package-card *,
.fh-stage-cards .fh-stage-card * { min-width: 0; }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.fh-hero { /* place .fh-split inside for the 2-column layout */ }
.fh-hero__text { max-width: 560px; }
.fh-hero__note {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  font-size: 14px;
  color: var(--fh-muted);
}
.fh-hero__note .fh-icon { color: var(--fh-accent); }

/* Button / action rows (used by heroes and CTAs) */
.fh-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }

/* --------------------------------------------------------------------------
   Value strip / meta strip / location strip
   -------------------------------------------------------------------------- */
.fh-value-strip {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 40px;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-card);
}
.fh-value-item { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.fh-value-item__label { font-size: 14px; font-weight: 600; color: var(--fh-ink); }
.fh-value-item__sub { font-size: 13px; color: var(--fh-muted); }

.fh-meta-strip { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.fh-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--fh-bg-soft);
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-pill);
  font-size: 13px;
  font-weight: 600;
  color: var(--fh-ink);
}
.fh-meta-item .fh-icon { color: var(--fh-accent); }

/* Large visual CTA band (C15-C): bigger padding on desktop, eased on small screens
   so it never crowds at 480px. Replaces former inline padding. */
.fh-cta-card--xl { padding: 48px; }
@media (max-width: 767px) { .fh-cta-card--xl { padding: 28px; } }

/* Small presentational utilities (replace former inline styles; keeps blueprints
   clean and rebuildable as native Elementor widgets). */
.fh-center { display: flex; align-items: center; justify-content: center; }
.fh-text-center { text-align: center; }
.fh-mt-12 { margin-top: 12px; }
.fh-mb-16 { margin-bottom: 16px; }
.fh-meta-strip--center { justify-content: center; }
.fh-logo-img { width: auto; height: 24px; border-radius: 0; }      /* partner logo */
.fh-logo-img--lg { width: auto; height: auto; max-height: 80px; }  /* case-study logo */

.fh-location-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 32px;
}
.fh-location-card {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-lg);
}
.fh-location-card .fh-icon-holder { margin-bottom: 0; }
.fh-location-card__city { font-weight: 700; color: var(--fh-ink); margin: 0 0 4px; }
.fh-location-card__meta { font-size: 14px; color: var(--fh-muted); margin: 0; }

/* Overlapping hero value cards (Pre-Validate; blueprint provided for reuse) */
.fh-hero-overlap { position: relative; }
.fh-hero-overlap__cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: -40px;
  position: relative;
  z-index: 2;
}

/* --------------------------------------------------------------------------
   Editorial intro (left copy + cards)
   -------------------------------------------------------------------------- */
.fh-editorial { display: grid; grid-template-columns: 34% 1fr; gap: 48px; align-items: start; }
.fh-editorial__copy { max-width: 420px; }

/* --------------------------------------------------------------------------
   Dual CTA card grid
   -------------------------------------------------------------------------- */
.fh-cta-card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }

/* --------------------------------------------------------------------------
   Product Studio system (Batch 4A)
   -------------------------------------------------------------------------- */

/* Phase flow / phase summary card (C06-A, C10-C): 4 phases with connectors */
.fh-phase-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  align-items: stretch;
}
.fh-phase {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 20px;
  background: #fff;
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-md);
}
.fh-phase__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: var(--fh-radius-sm);
  background: var(--fh-accent-bg); color: var(--fh-accent); margin-bottom: 4px;
}
.fh-phase__name { font-weight: 700; color: var(--fh-ink); }
.fh-phase__sub { font-size: 13px; color: var(--fh-muted); }
/* Connector arrow between phases (hidden on the last; hidden when stacked) */
.fh-phase:not(:last-child)::after {
  content: "";
  position: absolute; top: 50%; right: -12px; width: 12px; height: 2px;
  background: var(--fh-border);
}

/* Package card grid (C07-A): 4 product packages, accent per card */
.fh-package-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.fh-package-card__meta { font-size: 13px; font-weight: 600; color: var(--fh-accent); margin: 0 0 8px; }
.fh-package-card__price { margin-top: auto; padding-top: 16px; font-weight: 700; color: var(--fh-ink); }
.fh-package-card__price small { display: block; font-weight: 500; font-size: 12px; color: var(--fh-muted); }
.fh-package-card .fh-card-cta { margin-top: 16px; }

/* Work module grid (C08): 6 or 8 compact cards */
.fh-module-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.fh-module-grid--8 { grid-template-columns: repeat(4, 1fr); }
.fh-module-card { display: flex; gap: 12px; align-items: flex-start; padding: 18px; background: #fff; border: 1px solid var(--fh-border); border-radius: var(--fh-radius-sm); }
.fh-module-card .fh-icon { color: var(--fh-accent); margin-top: 2px; }

/* Deliverables / process panels (C11): 2 or 3 panels */
.fh-deliverables-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.fh-deliverables-grid--3 { grid-template-columns: repeat(3, 1fr); }

/* Pricing card (C23-A) */
.fh-pricing-card { background: var(--fh-accent-bg); border: 1px solid var(--fh-border); border-radius: var(--fh-radius-lg); padding: 28px; }
.fh-pricing-card__value { font-size: clamp(28px, 3vw, 36px); font-weight: 700; color: var(--fh-accent); margin: 8px 0; }
.fh-pricing-card__note { font-size: 13px; color: var(--fh-muted); }

/* --------------------------------------------------------------------------
   Venture Studio system (Batch 5)
   -------------------------------------------------------------------------- */

/* Stage card grid (C07-B): 4 stage cards; CTA is solid stage colour (fh-btn-stage) */
.fh-stage-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.fh-stage-card__meta { font-size: 13px; font-weight: 600; color: var(--fh-accent); margin: 0 0 8px; }
.fh-stage-card__equity { margin-top: auto; padding-top: 16px; font-weight: 700; color: var(--fh-ink); }
/* Venture stage Scope (Batch 15C.4A) — compact metadata, subordinate to the stage name. */
/* Venture stage Scope (Batch 15C.4A/B) — value-only compact metadata, subordinate to title. */
.fh-stage-card__scope { margin: 4px 0 0; font-size: 14px; font-weight: 600; color: var(--fh-accent); }
.fh-stage-card .fh-card-cta { margin-top: 16px; }

/* Equity structure panel (C23-B) and equity range card (C23-C) */
.fh-equity-card {
  background: var(--fh-accent-bg);
  border: 1px solid color-mix(in srgb, var(--fh-accent) 30%, var(--fh-border));
  border-radius: var(--fh-radius-lg);
  padding: 32px;
  box-shadow: var(--fh-shadow-soft);
}
/* 0.6.12.1: match Product Studio pricing-card value typography (was clamp(36px,5vw,56px)). */
.fh-equity-card__value { font-size: clamp(28px, 3vw, 36px); font-weight: 700; color: var(--fh-accent); line-height: 1.1; margin: 8px 0; }
.fh-equity-card__label { font-size: 14px; font-weight: 600; color: var(--fh-muted); }
.fh-equity-card__divider { height: 1px; background: var(--fh-border); margin: 20px 0; border: 0; }

/* External Ventures strip (Pre-Scale only) */
.fh-external-ventures {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 28px;
  background: var(--fh-bg-soft);
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-lg);
}
.fh-external-ventures__logos { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.fh-external-ventures__logo {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 96px; height: 44px; padding: 0 16px;
  background: #fff; border: 1px solid var(--fh-border); border-radius: var(--fh-radius-sm);
  font-size: 13px; font-weight: 600; color: var(--fh-muted);
}

/* Card Grid widget per-device columns (Batch 14B-2).
   Attribute selectors (higher specificity than the .fh-grid-N collapse rules) let the
   widget honour the chosen tablet/mobile column counts. Only the Card Grid widget emits
   these data attributes, so existing blueprint pages are unaffected. */
@media (max-width: 1024px) {
  .fh-grid[data-fh-cols-tablet="1"] { grid-template-columns: 1fr; }
  .fh-grid[data-fh-cols-tablet="2"] { grid-template-columns: repeat(2, 1fr); }
  .fh-grid[data-fh-cols-tablet="3"] { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .fh-grid[data-fh-cols-mobile="1"] { grid-template-columns: 1fr; }
  .fh-grid[data-fh-cols-mobile="2"] { grid-template-columns: repeat(2, 1fr); }
}

/* --------------------------------------------------------------------------
   Currency selector + price (Batch 14B-Currency-4)
   Small, scoped control that can sit beside a language selector.
   -------------------------------------------------------------------------- */

/* Wrapper so a site can place [En] [$] together (the language switcher is NOT built
   by this plugin; this is only a layout wrapper). */
.fh-locale-tools { display: inline-flex; align-items: center; gap: 8px; }
.fh-locale-tool { display: inline-flex; align-items: center; }

/* 0.6.15.3: currency switcher mirrors the language selector — it inherits colour and
   typography from its parent container, with no boxed button and no hardcoded light/dark
   text colours. Dark/light is handled purely through inheritance (the caret uses
   currentColor). Only the dropdown panel below carries its own surface. */
.fh-currency-switcher {
  position: relative; display: inline-flex; align-items: center; gap: 8px;
}
/* No-FX-price pages (0.6.21.1): the JS sets the hidden attribute on switchers when a page has
   zero price targets. This rule must beat the inline-flex base above (a class rule outranks the
   UA [hidden] default), so force display:none with !important. */
[data-fh-currency-switcher][hidden],
.fh-currency-switcher[hidden] { display: none !important; }
.fh-currency-switcher__label { font: inherit; color: inherit; opacity: 0.7; }

/* Minimal, non-conflicting fallback. Typography/colour/weight are owned by the Lexend
   utility classes on the element (hstack gap-1 text-none color-inherit fw-medium); these
   declarations only match those utilities (so they never fight them) and provide a safe
   baseline on non-Lexend themes. No explicit/dark colour, no box, no opacity/visibility. */
.fh-currency-trigger {
  display: inline-flex; align-items: center; gap: 6px;
  margin: 0; padding: 0; border: 0; background: transparent;
  color: inherit; font: inherit; cursor: pointer;
  white-space: nowrap; text-decoration: none;
}
.fh-currency-trigger:hover,
.fh-currency-trigger:focus { color: inherit; text-decoration: none; }
.fh-currency-trigger:focus-visible { outline: none; box-shadow: var(--fh-focus); }
.fh-currency-trigger__caret {
  width: 0; height: 0; margin-left: 2px;
  border-left: 4px solid transparent; border-right: 4px solid transparent;
  border-top: 5px solid currentColor; opacity: 0.7;
}

/* The panel sets only its surface (the white/dark background); it no longer forces a text
   colour (that old `color: var(--fh-ink)` fought the dark-mode system). Colour is set on the
   option per panel context below, so items stay readable regardless of the footer's colour. */
.fh-currency-menu {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 60;
  min-width: 140px; margin: 0; padding: 6px; list-style: none;
  background: #fff;
  border: 1px solid var(--fh-border); border-radius: var(--fh-radius-sm);
  box-shadow: var(--fh-shadow-soft);
}
.fh-currency-menu[hidden] { display: none; }
.fh-currency-menu li { list-style: none; margin: 0; }

/* Smart drop direction (0.6.15.9): JS toggles a wrapper class based on viewport space, so a
   footer-placed switcher opens upward and never breaks the page bottom. Default = downward. */
.fh-currency-switcher--drop-up .fh-currency-menu { top: auto; bottom: calc(100% + 6px); }
.fh-currency-switcher--drop-down .fh-currency-menu { top: calc(100% + 6px); bottom: auto; }

/* Plain link menu item (language-switcher pattern). Dark text on the white panel; light
   text on the dark panel (dark-mode block below). No underline; minimal styling. */
.fh-currency-option {
  display: flex; align-items: center; gap: 6px; width: 100%;
  box-sizing: border-box; padding: 6px 8px; border-radius: var(--fh-radius-xs);
  font-size: 14px; color: #111827; text-decoration: none; cursor: pointer;
}
.fh-currency-option:hover,
.fh-currency-option:focus,
.fh-currency-option-active { color: #111827; } /* readable on the white panel */
.fh-currency-option:hover,
.fh-currency-option:focus { background: var(--fh-bg-soft); text-decoration: none; outline: none; }
.fh-currency-option:focus-visible { box-shadow: var(--fh-focus); }
.fh-currency-option__symbol { min-width: 20px; font-weight: 700; }
.fh-currency-option__code { font-weight: 600; }
.fh-currency-option__name { color: var(--fh-muted); font-size: 13px; }
.fh-currency-option-active { font-weight: 600; background: var(--fh-icon-bg); }

/* Dark mode: the panel is dark, so option text (incl. hover/active) becomes light. Scoped
   to html.uc-dark only (the shortcode renders outside .fh-scope, e.g. header/footer). */
html.uc-dark .fh-currency-menu {
  background: #161c26; border-color: #2b3342;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
}
html.uc-dark .fh-currency-option,
html.uc-dark .fh-currency-option:hover,
html.uc-dark .fh-currency-option:focus,
html.uc-dark .fh-currency-option-active { color: #f4f6fb; }
html.uc-dark .fh-currency-option:hover,
html.uc-dark .fh-currency-option:focus { background: rgba(255, 255, 255, 0.06); }
html.uc-dark .fh-currency-option__name { color: #98a2b6; }
html.uc-dark .fh-currency-option-active { background: rgba(255, 255, 255, 0.10); }

/* Price + separate muted note (note is no longer inline next to the price). */
.fh-price { white-space: nowrap; }
.fh-price__prefix { font-weight: 400; }
.fh-price-note { display: block; margin-top: 6px; color: var(--fh-muted); white-space: normal; }


/* --------------------------------------------------------------------------
   Language switcher (Batch 15K.4)
   Dormant provider-aware bridge retained for a future multilingual phase. The runtime is
   checked first, with WPML only as an optional fallback. Mirrors the plain
   currency-selector pattern: inherited trigger colour, explicit dropdown panel
   surface, no JavaScript dependency.
   -------------------------------------------------------------------------- */
.fh-language-switcher {
  position: relative; display: inline-flex; align-items: center; gap: 8px;
  color: inherit; font: inherit;
}
.fh-language-switcher__label { font: inherit; color: inherit; opacity: 0.7; }
.fh-language-switcher__dropdown { position: relative; display: inline-flex; }
.fh-language-switcher__trigger {
  display: inline-flex; align-items: center; gap: 6px;
  margin: 0; padding: 0; border: 0; background: transparent;
  color: inherit; font: inherit; cursor: pointer; list-style: none;
  white-space: nowrap; text-decoration: none;
}
.fh-language-switcher__trigger::-webkit-details-marker { display: none; }
.fh-language-switcher__trigger:hover,
.fh-language-switcher__trigger:focus { color: inherit; text-decoration: none; }
.fh-language-switcher__trigger:focus-visible { outline: none; box-shadow: var(--fh-focus); }
.fh-language-switcher__caret {
  width: 0; height: 0; margin-left: 2px;
  border-left: 4px solid transparent; border-right: 4px solid transparent;
  border-top: 5px solid currentColor; opacity: 0.7;
}
.fh-language-switcher__menu,
.fh-language-switcher__list {
  margin: 0; padding: 0; list-style: none;
}
.fh-language-switcher__menu {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 65;
  min-width: 160px; padding: 6px;
  background: #fff; border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-sm); box-shadow: var(--fh-shadow-soft);
}
.fh-language-switcher__menu li,
.fh-language-switcher__list li { list-style: none; margin: 0; }
.fh-language-switcher__list--inline {
  display: inline-flex; flex-wrap: wrap; gap: 6px;
}
.fh-language-switcher__option {
  display: flex; align-items: center; gap: 6px; width: 100%;
  box-sizing: border-box; padding: 6px 8px; border-radius: var(--fh-radius-xs);
  font-size: 14px; color: #111827; text-decoration: none; cursor: pointer;
}
.fh-language-switcher__option:hover,
.fh-language-switcher__option:focus,
.fh-language-switcher__option.is-active { color: #111827; text-decoration: none; }
.fh-language-switcher__option:hover,
.fh-language-switcher__option:focus { background: var(--fh-bg-soft); outline: none; }
.fh-language-switcher__option:focus-visible { box-shadow: var(--fh-focus); }
.fh-language-switcher__code { font-weight: 700; letter-spacing: 0.02em; }
.fh-language-switcher__name { font-weight: 600; }
.fh-language-switcher__option.is-active { font-weight: 700; background: var(--fh-icon-bg); }
.fh-language-switcher--inline .fh-language-switcher__option {
  width: auto; color: inherit; border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  background: transparent;
}
.fh-language-switcher--inline .fh-language-switcher__option:hover,
.fh-language-switcher--inline .fh-language-switcher__option:focus,
.fh-language-switcher--inline .fh-language-switcher__option.is-active {
  color: inherit; background: color-mix(in srgb, currentColor 8%, transparent);
}
.fh-language-switcher--notice {
  padding: 10px 12px; border: 1px solid var(--fh-border); border-radius: var(--fh-radius-sm);
  background: var(--fh-bg-soft); color: var(--fh-text); font-size: 13px;
}
html.uc-dark .fh-language-switcher__menu {
  background: #161c26; border-color: #2b3342;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
}
html.uc-dark .fh-language-switcher__option,
html.uc-dark .fh-language-switcher__option:hover,
html.uc-dark .fh-language-switcher__option:focus,
html.uc-dark .fh-language-switcher__option.is-active { color: #f4f6fb; }
html.uc-dark .fh-language-switcher__option:hover,
html.uc-dark .fh-language-switcher__option:focus { background: rgba(255, 255, 255, 0.06); }
html.uc-dark .fh-language-switcher__option.is-active { background: rgba(255, 255, 255, 0.10); }
html.uc-dark .fh-language-switcher--notice {
  background: #161c26; border-color: #2b3342; color: #f4f6fb;
}

/* Batch 15M.1 — footer language switcher parity with the currency selector.
 * The public footer remains dark in both light and dark site modes. The currency
 * switcher already inherits the correct footer utility colour; the language
 * switcher now carries the same utility classes and has a footer-context fallback
 * so the trigger remains readable in light mode while the dropdown panel keeps
 * currency-menu-style readable option colours. */
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher {
  color: rgba(255, 255, 255, 0.88);
}
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__label,
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__trigger {
  color: inherit !important;
}
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__trigger:hover,
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__trigger:focus {
  color: #fff !important;
  text-decoration: none;
}
/* Direction is now viewport-aware (Batch 15M.2). Footer placement no longer
 * forces the panel upward; JS toggles drop-up/drop-down classes per open event. */
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__menu .fh-language-switcher__option,
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__menu .fh-language-switcher__option:hover,
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__menu .fh-language-switcher__option:focus,
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__menu .fh-language-switcher__option.is-active {
  color: #111827;
}
html.uc-dark :is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__menu .fh-language-switcher__option,
html.uc-dark :is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__menu .fh-language-switcher__option:hover,
html.uc-dark :is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__menu .fh-language-switcher__option:focus,
html.uc-dark :is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__menu .fh-language-switcher__option.is-active {
  color: #f4f6fb;
}


/* Batch 15M.2 — viewport-aware language dropdown direction.
 * Native details still works without JS, but the enhanced state mirrors the
 * currency switcher's intelligent drop direction. */
.fh-language-switcher__dropdown--drop-up .fh-language-switcher__menu,
.fh-language-switcher--drop-up .fh-language-switcher__menu {
  top: auto;
  bottom: calc(100% + 6px);
}
.fh-language-switcher__dropdown--drop-down .fh-language-switcher__menu,
.fh-language-switcher--drop-down .fh-language-switcher__menu {
  top: calc(100% + 6px);
  bottom: auto;
}
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__dropdown--drop-up .fh-language-switcher__menu,
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher--drop-up .fh-language-switcher__menu {
  top: auto;
  bottom: calc(100% + 6px);
}
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher__dropdown--drop-down .fh-language-switcher__menu,
:is(footer, .footer, .site-footer, .elementor-location-footer, .uc-footer, .tg-footer, .fh-footer) .fh-language-switcher--drop-down .fh-language-switcher__menu {
  top: calc(100% + 6px);
  bottom: auto;
}

/* --------------------------------------------------------------------------
   Legal / Trust / Governance system (Batch 6A)
   -------------------------------------------------------------------------- */

/* Legal index grid (C13-A): numbered link cards, up to 5 across */
.fh-legal-index { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.fh-legal-index-card {
  display: flex; gap: 10px; align-items: baseline;
  padding: 14px 16px; text-decoration: none;
  background: #fff; border: 1px solid var(--fh-border); border-radius: var(--fh-radius-sm);
  transition: border-color .18s ease, background-color .18s ease;
}
.fh-legal-index-card:hover { border-color: color-mix(in srgb, var(--fh-blue) 35%, transparent); background: var(--fh-bg-soft); }
.fh-legal-index-card__num { font-weight: 700; color: var(--fh-blue); font-size: 13px; }
.fh-legal-index-card__title { font-size: 14px; font-weight: 600; color: var(--fh-ink); }

/* Detail matrix (C13-B/C/D): dense documentation panels, up to 4 across */
.fh-legal-matrix { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: start; }
.fh-legal-matrix--4 { grid-template-columns: repeat(4, 1fr); }
.fh-legal-panel__num {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 28px; height: 28px; padding: 0 8px; margin-bottom: 10px;
  background: var(--fh-icon-bg); color: var(--fh-blue);
  border-radius: var(--fh-radius-sm); font-size: 13px; font-weight: 700;
}
.fh-legal-panel__heading { font-size: 16px; font-weight: 700; color: var(--fh-ink); margin: 0 0 8px; }
.fh-legal-panel ul { margin: 8px 0 0; padding-left: 18px; }
.fh-legal-panel li { font-size: 14px; color: var(--fh-text); line-height: 1.6; }
.fh-legal-subcard { margin-top: 12px; padding: 12px; background: var(--fh-bg-soft); border: 1px solid var(--fh-border-soft); border-radius: var(--fh-radius-xs); }

/* Permitted / not-permitted rows (governance) — never colour alone: icon + text */
.fh-legal-rule { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; }
.fh-legal-rule--yes { color: var(--fh-success); }
.fh-legal-rule--no { color: var(--fh-danger); }

/* Information layer cards (C13-E): 4 cards */
.fh-info-layers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .fh-value-strip { grid-template-columns: repeat(3, 1fr); }
  .fh-legal-index { grid-template-columns: repeat(3, 1fr); }
  .fh-legal-matrix, .fh-legal-matrix--4 { grid-template-columns: repeat(2, 1fr); }
  .fh-info-layers { grid-template-columns: repeat(2, 1fr); }
  .fh-editorial { grid-template-columns: 1fr; gap: 28px; }
  .fh-hero-overlap__cards { grid-template-columns: repeat(2, 1fr); margin-top: 24px; }
  .fh-phase-flow { grid-template-columns: repeat(2, 1fr); }
  .fh-phase:not(:last-child)::after { display: none; }
  .fh-package-grid { grid-template-columns: repeat(2, 1fr); }
  .fh-module-grid, .fh-module-grid--8 { grid-template-columns: repeat(2, 1fr); }
  .fh-deliverables-grid, .fh-deliverables-grid--3 { grid-template-columns: 1fr; }
  .fh-stage-grid { grid-template-columns: repeat(2, 1fr); }
  .fh-external-ventures { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .fh-value-strip { grid-template-columns: 1fr 1fr; padding: 20px; }
  .fh-meta-strip { gap: 8px; }
  .fh-location-grid { grid-template-columns: 1fr; }
  .fh-cta-card-grid { grid-template-columns: 1fr; }
  .fh-hero-overlap__cards { grid-template-columns: 1fr; }
  .fh-actions { flex-direction: column; }
  .fh-actions .fh-btn { width: 100%; }
  .fh-phase-flow { grid-template-columns: 1fr; }
  .fh-package-grid { grid-template-columns: 1fr; }
  .fh-module-grid, .fh-module-grid--8 { grid-template-columns: 1fr; }
  .fh-stage-grid { grid-template-columns: 1fr; }
  .fh-legal-index { grid-template-columns: 1fr; }
  .fh-legal-matrix, .fh-legal-matrix--4 { grid-template-columns: 1fr; }
  .fh-info-layers { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .fh-value-strip { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Specialised widgets (Batch 14C-2): Phase Flow, Contact Chips, Information Layers.
   All rules are scoped to each widget wrapper and reuse existing fh- tokens. The widget
   roots are emitted with `fh-scope`, so `.fh-scope.fh-phase-flow` (higher specificity)
   neutralises the existing blueprint `.fh-phase-flow` grid without touching blueprints.
   -------------------------------------------------------------------------- */

/* Phase Flow widget */
.fh-scope.fh-phase-flow { display: block; }
.fh-phase-flow__item {
  position: relative;
  display: flex; flex-direction: column; gap: 8px;
  padding: 20px; background: #fff;
  border: 1px solid var(--fh-border); border-top: 3px solid var(--fh-accent);
  border-radius: var(--fh-radius-md);
  min-width: 0; max-width: 100%;
}
.fh-phase-flow__item * { min-width: 0; }
.fh-phase-flow__label {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; padding: 0 10px;
  background: var(--fh-accent-bg); color: var(--fh-accent);
  border-radius: var(--fh-radius-sm); font-weight: 700; font-size: 14px;
}
.fh-phase-flow__cta { margin-top: 12px; align-self: flex-start; }
.fh-phase-flow--compact .fh-phase-flow__item { padding: 14px 16px; }
/* Connectors only on desktop horizontal; hidden when wrapped/stacked/compact. */
.fh-phase-flow__connector { display: none; }
@media (min-width: 1025px) {
  .fh-phase-flow--horizontal.fh-phase-flow--conn-line .fh-phase-flow__connector,
  .fh-phase-flow--horizontal.fh-phase-flow--conn-arrow .fh-phase-flow__connector {
    display: block; position: absolute; top: 28px; right: -12px;
    width: 12px; height: 2px; background: var(--fh-border);
  }
  .fh-phase-flow--horizontal.fh-phase-flow--conn-arrow .fh-phase-flow__connector::after {
    content: ""; position: absolute; right: -2px; top: -3px;
    border-left: 6px solid var(--fh-border);
    border-top: 4px solid transparent; border-bottom: 4px solid transparent;
  }
}

/* Contact Chips widget */
.fh-contact-chips__list { display: flex; flex-wrap: wrap; gap: 12px; }
.fh-contact-chips__list--stacked { flex-direction: column; }
.fh-contact-chips__list--grid .fh-contact-chip,
.fh-contact-chips__list--stacked .fh-contact-chip { display: flex; width: 100%; }
.fh-contact-chip {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 14px; background: #fff;
  border: 1px solid var(--fh-border); border-left: 3px solid var(--fh-accent);
  border-radius: var(--fh-radius-sm); min-width: 0; max-width: 100%;
}
.fh-contact-chip__icon { display: inline-flex; flex: 0 0 auto; color: var(--fh-accent); }
.fh-contact-chip__body { display: flex; flex-direction: column; min-width: 0; }
.fh-contact-chip__label { font-size: 12px; font-weight: 600; color: var(--fh-muted); }
.fh-contact-chip__value { font-size: 14px; font-weight: 600; color: var(--fh-ink); text-decoration: none; word-break: break-word; }
a.fh-contact-chip__value:hover { color: var(--fh-blue); text-decoration: underline; }
.fh-contact-chip--brand,
.fh-contact-chip--blue { --fh-accent: var(--fh-blue); }
.fh-contact-chip--red { --fh-accent: var(--fh-red); }
.fh-contact-chip--neutral { --fh-accent: var(--fh-border); }

/* Information Layers widget */
.fh-information-layers__list { display: flex; flex-direction: column; gap: 16px; }
.fh-information-layer {
  padding: 16px 20px; background: #fff; /* 0.6.11.1 density polish: from 20px 24px */
  border: 1px solid var(--fh-border); border-left: 4px solid var(--fh-accent);
  border-radius: var(--fh-radius-md); min-width: 0; max-width: 100%;
}
.fh-information-layer__eyebrow {
  display: block; font-size: 12px; font-weight: 600; color: var(--fh-accent);
  margin-bottom: 4px; text-transform: uppercase; letter-spacing: .04em;
}
.fh-information-layer__title { margin: 0 0 8px; }
.fh-information-layer__note { color: var(--fh-muted); margin-top: 8px; }
.fh-information-layer__cta { display: inline-flex; margin-top: 12px; }
.fh-information-layers--split .fh-information-layers__list {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
}
.fh-information-layers--cards .fh-information-layers__list {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
@media (max-width: 767px) {
  .fh-information-layers--split .fh-information-layers__list { grid-template-columns: 1fr; }
}

/* Legal Matrix widget (Batch 14C-3). The widget root carries `fh-scope`, so
   `.fh-scope.fh-legal-matrix` (higher specificity) neutralises the existing blueprint
   `.fh-legal-matrix` grid; the widget grid lives on `.fh-legal-matrix__grid` (reusing
   `.fh-grid` + the data-attr responsive rules). Scoped to the widget; blueprints unaffected. */
.fh-scope.fh-legal-matrix { display: block; }
.fh-legal-matrix__item {
  display: flex; flex-direction: column; gap: 8px;
  padding: 22px; background: #fff;
  border: 1px solid var(--fh-border); border-top: 3px solid var(--fh-accent);
  border-radius: var(--fh-radius-md);
  min-width: 0; max-width: 100%;
}
.fh-legal-matrix__item * { min-width: 0; }
.fh-legal-matrix__item--red { --fh-accent: var(--fh-red); }
.fh-legal-matrix__item--neutral { --fh-accent: var(--fh-border); }
.fh-legal-matrix__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: var(--fh-radius-sm);
  background: var(--fh-accent-bg); color: var(--fh-accent);
}
.fh-legal-matrix__category {
  font-size: 12px; font-weight: 600; color: var(--fh-accent);
  text-transform: uppercase; letter-spacing: .04em;
}
.fh-legal-matrix__label { margin: 0; }
.fh-legal-matrix__detail { color: var(--fh-muted); }
.fh-legal-matrix__status { font-size: 13px; font-weight: 600; color: var(--fh-ink); margin-top: 2px; }
.fh-legal-matrix__cta { display: inline-flex; margin-top: 10px; align-self: flex-start; }
/* ---- Layout differentiation (Batch 14C-3.1), scoped to .fh-legal-matrix ---- */

/* Matrix: structured governance-register feel — flatter surface, tighter spacing,
   stronger alignment, status as an emphasis strip. */
.fh-legal-matrix--matrix .fh-legal-matrix__grid { gap: 12px; }
.fh-legal-matrix--matrix .fh-legal-matrix__item {
  gap: 6px; padding: 16px 18px;
  background: var(--fh-bg-soft);
  border: 1px solid var(--fh-border-soft);
  border-top: 2px solid var(--fh-accent);
  border-radius: var(--fh-radius-sm);
  box-shadow: none;
}
.fh-legal-matrix--matrix .fh-legal-matrix__icon {
  width: 32px; height: 32px; border-radius: var(--fh-radius-xs);
}
.fh-legal-matrix--matrix .fh-legal-matrix__category {
  letter-spacing: .08em; font-size: 11px;
}
.fh-legal-matrix--matrix .fh-legal-matrix__label { font-size: 16px; }
.fh-legal-matrix--matrix .fh-legal-matrix__status {
  margin-top: 8px; padding-top: 8px;
  border-top: 1px solid var(--fh-border);
  font-size: 12px; text-transform: uppercase; letter-spacing: .04em;
  color: var(--fh-accent);
}

/* Cards: softer, editorial/marketing feel — more space, larger radius, lifted card,
   prominent icon, relaxed category/status. */
.fh-legal-matrix--cards .fh-legal-matrix__grid { gap: 24px; }
.fh-legal-matrix--cards .fh-legal-matrix__item {
  gap: 12px; padding: 20px; /* 0.6.11.1 density polish: from 32px */
  border: 1px solid var(--fh-border);
  border-top: 3px solid var(--fh-accent);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-card);
  transition: box-shadow .18s ease, transform .18s ease;
}
.fh-legal-matrix--cards .fh-legal-matrix__item:hover {
  box-shadow: var(--fh-shadow-soft); transform: translateY(-2px);
}
.fh-legal-matrix--cards .fh-legal-matrix__icon {
  width: 56px; height: 56px; border-radius: var(--fh-radius-md); margin-bottom: 4px;
}
.fh-legal-matrix--cards .fh-legal-matrix__category {
  color: var(--fh-muted); letter-spacing: .02em;
}
.fh-legal-matrix--cards .fh-legal-matrix__status {
  font-weight: 600; color: var(--fh-muted);
}

/* Compact: dense scan layout — tighter padding, detail hidden, reduced spacing. */
.fh-legal-matrix--compact .fh-legal-matrix__grid { gap: 10px; }
.fh-legal-matrix--compact .fh-legal-matrix__item { gap: 4px; padding: 14px 16px; box-shadow: none; }
.fh-legal-matrix--compact .fh-legal-matrix__detail { display: none; }

/* Card Grid widget icon size (Batch 14D Card-Grid icon-size). 28px default baseline for
   both Elementor native icons (i / svg via Icons_Manager) and legacy FixHire SVGs, scoped
   to the Card Grid icon wrapper so no other widget is affected. The Style-tab "Icon size"
   slider overrides this via higher-specificity {{WRAPPER}} selectors. */
.fh-card-grid__icon { font-size: 28px; line-height: 1; }
.fh-card-grid__icon i { font-size: 28px; line-height: 1; }
.fh-card-grid__icon svg { width: 28px; height: 28px; }

/* Card Grid icon position (Batch 14D widget UX). "top" is the default block flow; "left"
   places the icon beside the text block. Scoped to the Card Grid card; the text is wrapped
   in .fh-card__content so the two become flex items without breaking title/description/CTA
   or responsive wrapping. */
.fh-card--icon-left { display: flex; align-items: flex-start; gap: 14px; }
.fh-card--icon-left > .fh-card-grid__icon { flex: 0 0 auto; margin-bottom: 0; }
.fh-card--icon-left > .fh-card__content { flex: 1 1 auto; min-width: 0; }

/* Button icon (Batch 14D widget UX): Hero CTA + CTA Band primary/secondary. Scoped to a new
   span class so existing .fh-btn styles are untouched. Icon scales with the button text. */
.fh-btn__icon { display: inline-flex; align-items: center; vertical-align: middle; }
.fh-btn__icon svg { width: 1em; height: 1em; }
.fh-btn__icon i { font-size: 1em; line-height: 1; }
.fh-btn__icon--left { margin-right: 6px; }
.fh-btn__icon--right { margin-left: 6px; }

/* Section header alignment + intro width (Batch 14D). Scoped to the section header. The
   alignment modifier (render-driven) controls text-align AND the constrained intro's
   horizontal margins, so a narrowed intro sits correctly under each alignment. The doubled
   class guarantees it overrides the default .fh-section-header--center regardless of load
   order. Width is applied per-instance by the widget's "Intro max width" selector. */
.fh-section-header--center .fh-body { margin-left: auto; margin-right: auto; }
.fh-section-header.fh-section-header--align-left   { text-align: left; }
.fh-section-header.fh-section-header--align-center { text-align: center; }
.fh-section-header.fh-section-header--align-right  { text-align: right; }
.fh-section-header--align-left   .fh-body { margin-left: 0; margin-right: auto; }
.fh-section-header--align-center .fh-body { margin-left: auto; margin-right: auto; }
.fh-section-header--align-right  .fh-body { margin-left: auto; margin-right: 0; }

/* --------------------------------------------------------------------------
   Accent-responsive Hero CTA + CTA Band (Batch 14D accent patch).
   The Hero and CTA Band widgets emit their accent on the .fh-scope wrapper as a
   `fh-accent-*` class (which sets --fh-accent / --fh-accent-bg). Brand/blue emits NO
   accent class, so these rules don't apply and the default blue / sky-blue design is
   preserved. Scoped so Hero (.fh-actions) and CTA Band (.fh-bottom-cta) are independent.
   Style-tab overrides (e.g. CTA Band background) use higher-specificity {{WRAPPER}}
   selectors and still win. Uses existing accent CSS variables — no hardcoded colours.
   -------------------------------------------------------------------------- */

/* Note: `!important` is used on the accent declarations so they reliably beat the base
   `.fh-btn-*` colours and any Elementor/theme button rules in live output. Scoped strictly
   to accent wrappers, so brand/default (no accent class) is never affected. */

/* Hero: primary CTA filled with the selected accent. */
.fh-scope[class*="fh-accent-"] .fh-actions .fh-btn-primary {
  background: var(--fh-accent) !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent-on, #fff) !important;
}
/* 0.6.19: solid primary inverts to an outline on hover (outline secondary already inverts to
   solid below), giving a clean reciprocal hover. */
.fh-scope[class*="fh-accent-"] .fh-actions .fh-btn-primary:hover {
  background: transparent !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent) !important;
}

/* Hero: secondary CTA as an accent outline (border + text accent; hover fills accent). */
.fh-scope[class*="fh-accent-"] .fh-actions .fh-btn-secondary {
  background: #fff !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent) !important;
}
.fh-scope[class*="fh-accent-"] .fh-actions .fh-btn-secondary:hover {
  background: var(--fh-accent) !important;
  color: var(--fh-accent-on, #fff) !important;
}

/* CTA Band: accent tints the band background and colours the primary button. */
.fh-scope[class*="fh-accent-"] .fh-bottom-cta,
.fh-scope[class*="fh-accent-"] .fh-cta-band { background: var(--fh-accent-bg) !important; }
.fh-scope[class*="fh-accent-"] .fh-cta-band__actions .fh-btn-primary {
  background: var(--fh-accent) !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent-on, #fff) !important;
}
.fh-scope[class*="fh-accent-"] .fh-cta-band__actions .fh-btn-primary:hover {
  background: transparent !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent) !important;
}
/* CTA Band: secondary stays a readable white/outline button on the tinted band; on hover it
   fills with the accent and uses white text (0.6.18: never a red hover). */
.fh-scope[class*="fh-accent-"] .fh-cta-band__actions .fh-btn-secondary {
  background: #fff !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent) !important;
}
.fh-scope[class*="fh-accent-"] .fh-cta-band__actions .fh-btn-secondary:hover {
  background: var(--fh-accent) !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent-on, #fff) !important;
}

/* Brand (no accent class) Hero + CTA Band hover inversion (0.6.19). Lower specificity than the
   accent-runtime rules above, so accent pages still win; applies to brand-blue buttons only.
   Solid blue primary -> outline blue on hover; red outline secondary -> solid red on hover. */
.fh-actions .fh-btn-primary:hover,
.fh-cta-band__actions .fh-btn-primary:hover {
  background: transparent;
  border-color: var(--fh-blue);
  color: var(--fh-blue);
}
.fh-actions .fh-btn-secondary:hover,
.fh-cta-band__actions .fh-btn-secondary:hover {
  background: var(--fh-red);
  border-color: var(--fh-red);
  color: #fff;
}
/* Dark mode: keep the brand outline-hover text readable on the dark page. */
html.uc-dark .fh-actions .fh-btn-primary:hover,
html.uc-dark .fh-cta-band__actions .fh-btn-primary:hover {
  color: color-mix(in srgb, var(--fh-blue) 45%, #ffffff);
  border-color: color-mix(in srgb, var(--fh-blue) 45%, #ffffff);
}

/* Pricing / Equity card: value, accent surfaces, and button follow the selected accent. */
.fh-scope[class*="fh-accent-"] .fh-pricing-card__value,
.fh-scope[class*="fh-accent-"] .fh-equity-card__value { color: var(--fh-accent) !important; }
.fh-scope[class*="fh-accent-"] .fh-pricing-card .fh-btn-package,
.fh-scope[class*="fh-accent-"] .fh-pricing-card .fh-btn-stage,
.fh-scope[class*="fh-accent-"] .fh-equity-card .fh-btn-package,
.fh-scope[class*="fh-accent-"] .fh-equity-card .fh-btn-stage {
  background: var(--fh-accent) !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent-on, #fff) !important;
}
/* 0.6.19.2: Pricing/Equity CTA inverts to outline on hover (!important to beat the forced solid). */
.fh-scope[class*="fh-accent-"] .fh-pricing-card .fh-btn-package:hover,
.fh-scope[class*="fh-accent-"] .fh-pricing-card .fh-btn-stage:hover,
.fh-scope[class*="fh-accent-"] .fh-equity-card .fh-btn-package:hover,
.fh-scope[class*="fh-accent-"] .fh-equity-card .fh-btn-stage:hover {
  background: transparent !important;
  border-color: var(--fh-accent) !important;
  color: var(--fh-accent) !important;
}

/* 0.6.19.2: section-level final CTA (Card Grid / Package / Stage) hover inversion. The base
   helper renders into .fh-section-cta; brand-blue primary inverts to outline, package/stage
   solids invert via the base rules above, accent-outline inverts to solid via the base. */
.fh-section-cta .fh-btn-primary:hover {
  background: transparent;
  border-color: var(--fh-blue);
  color: var(--fh-blue);
}
html.uc-dark .fh-section-cta .fh-btn-primary:hover {
  color: color-mix(in srgb, var(--fh-blue) 45%, #ffffff);
  border-color: color-mix(in srgb, var(--fh-blue) 45%, #ffffff);
}

/* --------------------------------------------------------------------------
   0.6.11.1 — Package / Stage card list indentation defence
   --------------------------------------------------------------------------
   Some host themes (e.g. Lexend) set a global `ul { padding-left: 25px; }`,
   which leaks into the feature/support lists inside Package and Stage cards and
   over-indents them. These lists already use custom check icons (list-style:
   none), so the left padding is unwanted. Scoped + !important so only the card
   feature/support lists are reset; no global `ul` rule is changed and no other
   widget lists (e.g. legal panel ul) are affected. */
.fh-package-cards .fh-package-card ul,
.fh-stage-cards .fh-stage-card ul,
.fh-package-card .fh-list-checks,
.fh-stage-card .fh-list-checks {
  padding-left: 0 !important;
  margin-left: 0 !important;
  list-style-position: outside;
}

/* --------------------------------------------------------------------------
   0.6.18 — Card Grid "Image" variant (people / team cards)
   -------------------------------------------------------------------------- */
.fh-person-card { position: relative; display: flex; flex-direction: column; height: 100%; }
.fh-person-card__media {
  width: 72px; height: 72px; margin-bottom: 14px;
  border-radius: var(--fh-radius-pill); overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--fh-accent-bg); flex: 0 0 auto;
}
.fh-person-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fh-person-card__placeholder {
  font-weight: 700; font-size: 22px; color: var(--fh-accent); line-height: 1;
}
.fh-person-card .fh-card__content { display: flex; flex-direction: column; flex: 1 1 auto; }
.fh-person-card__socials {
  display: flex; gap: 8px; margin-top: auto; padding-top: 14px;
  justify-content: flex-end;
}
.fh-person-card__social {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: var(--fh-radius-sm);
  color: var(--fh-muted); background: var(--fh-bg-soft);
  border: 1px solid var(--fh-border); text-decoration: none;
  transition: color .15s ease, border-color .15s ease;
}
.fh-person-card__social:hover { color: var(--fh-accent); border-color: var(--fh-accent); }
.fh-person-card__social svg { width: 16px; height: 16px; }

/* --------------------------------------------------------------------------
   0.6.18 — Phase Flow "Numbered circles" variant
   -------------------------------------------------------------------------- */
.fh-phase-flow--num-circles .fh-phase-flow__label {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: var(--fh-radius-pill);
  background: var(--fh-accent); color: var(--fh-accent-on, #fff);
  font-size: 15px; font-weight: 700; line-height: 1; margin-bottom: 12px;
}

/* --------------------------------------------------------------------------
   0.6.19 — Card Grid final CTA + Package/Pricing timeline + dark grayscale images
   -------------------------------------------------------------------------- */
.fh-card-grid__final-cta { margin-top: 28px; text-align: center; }

.fh-package-card__timeline,
.fh-pricing-card__timeline,
.fh-equity-card__timeline {
  display: inline-block; font-weight: 600;
  color: var(--fh-muted); margin: 2px 0 8px;
}
/* 14K typography: pricing timeline stronger, package timeline subordinate to title.
   Equity timeline keeps its prior 13px. Split from the shared group so only the
   intended elements change; colour / weight / line-height inherited from the group. */
.fh-equity-card__timeline { font-size: 13px; }
.fh-package-card__timeline { font-size: 15px; }
.fh-pricing-card__timeline { font-size: 17px; }

/* Package metadata row (Batch 15C.3C) — Timeline + Output as one compact inline
   group; dark-safe via tokens; wraps cleanly on mobile. No stacked label block. */
.fh-package-card__meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 14px;
  row-gap: 4px;
  margin: 2px 0 12px;
}
.fh-package-card__meta-row .fh-package-card__timeline {
  margin: 0;
}
.fh-package-card__output {
  font-size: 15px;
  font-weight: 600;
  color: var(--fh-accent);
}
/* Output sits inline after Timeline, separated by the row gap; accent colour and
   slightly heavier weight distinguish the artifact from the muted timeline value. */

/* Dark mode: grayscale only real <img> in hero media slots and Card Grid people cards.
   SVG icons (spans/svg) and logos outside these scopes are not affected. */
html.uc-dark .fh-hero__media img,
html.uc-dark .fh-person-card__img {
  filter: grayscale(100%);
  transition: filter .2s ease;
}
html.uc-dark .fh-hero__media img:hover,
html.uc-dark .fh-person-card__img:hover { filter: grayscale(0%); }

/* --------------------------------------------------------------------------
   0.6.19.2 — Hero heading-tag typography + Card Grid people-image layouts
   -------------------------------------------------------------------------- */
/* Heading tag drives visible size (semantic tag + responsive typography). Loaded after
   the design system, so these override .fh-h1's font-size. */
.fh-hero__title--h1 { font-size: clamp(34px, 5vw, 60px); }
.fh-hero__title--h2 { font-size: clamp(28px, 3.4vw, 40px); }
.fh-hero__title--h3 { font-size: clamp(22px, 2.2vw, 30px); }
.fh-hero__title--h4 { font-size: clamp(20px, 2vw, 26px); }
.fh-hero__title--h5 { font-size: 20px; }
.fh-hero__title--h6 { font-size: 18px; }
/* div keeps the default .fh-h1 size. */

/* People-image layouts. Default = round avatar (existing). Square / full-width thumbnails
   fill the card content width and crop without distortion. Border radius comes from the
   image_radius control (Elementor selector) and overrides these defaults when set. */
.fh-person-card--square .fh-person-card__media,
.fh-person-card--full .fh-person-card__media {
  width: 100%; height: auto; aspect-ratio: 1 / 1;
  border-radius: var(--fh-radius-md); margin-bottom: 16px;
}
.fh-person-card--full .fh-person-card__media { aspect-ratio: 16 / 10; }
.fh-person-card--square .fh-person-card__img,
.fh-person-card--full .fh-person-card__img {
  width: 100%; height: 100%; object-fit: cover; border-radius: inherit;
}
.fh-person-card--square .fh-person-card__placeholder,
.fh-person-card--full .fh-person-card__placeholder { font-size: 28px; }

/* =========================================================================
 * Batch 15A — FixHire Brand Showcase / Marquee (native, CSS-only motion)
 * -------------------------------------------------------------------------
 * Seamless loop via a duplicated, aria-hidden track translated -50%. No JS, no
 * third-party dependency, and unrelated to the retired generic animation system.
 * Respects prefers-reduced-motion, pauses on hover/focus, supports dark-mode logos.
 * ====================================================================== */
@keyframes fh-bs-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.fh-brand-showcase { width: 100%; }
.fh-brand-showcase__viewport { overflow: hidden; }
.fh-brand-showcase__lane {
  display: flex; align-items: center; gap: 48px; width: max-content;
  will-change: transform;
  animation: fh-bs-scroll var(--fh-bs-duration, 30s) linear infinite;
}
.fh-brand-showcase--right .fh-brand-showcase__lane { animation-direction: reverse; }
.fh-brand-showcase__item { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; }
.fh-brand-showcase__link { display: inline-flex; align-items: center; text-decoration: none; }
.fh-brand-showcase__link:focus-visible { outline: none; box-shadow: var(--fh-focus); border-radius: var(--fh-radius-sm); }
.fh-brand-showcase__logo {
  height: 40px; width: auto; max-width: 100%; display: block; opacity: 0.7;
  transition: opacity 0.2s ease, filter 0.2s ease;
}
.fh-brand-showcase--grayscale .fh-brand-showcase__logo { filter: grayscale(100%); }
.fh-brand-showcase--grayscale .fh-brand-showcase__item:hover .fh-brand-showcase__logo { filter: grayscale(0); }

/* Pause behaviour (CSS only) */
.fh-brand-showcase[data-fh-pause-hover="yes"]:hover .fh-brand-showcase__lane { animation-play-state: paused; }
.fh-brand-showcase[data-fh-pause-focus="yes"]:focus-within .fh-brand-showcase__lane { animation-play-state: paused; }

/* Edge fade / mask */
.fh-brand-showcase--fade .fh-brand-showcase__viewport {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}

/* Dark-mode logos: show the dark variant when supplied, otherwise keep the light one.
   Sibling-free check (:only-child) avoids needing :has() support. */
.fh-brand-showcase__logo--dark { display: none; }
html.uc-dark .fh-brand-showcase__logo--dark { display: block; }
html.uc-dark .fh-brand-showcase__logo--light:not(:only-child) { display: none; }

/* Editor: pause the marquee for a stable preview. */
body.elementor-editor-active .fh-brand-showcase__lane { animation-play-state: paused; }

/* Empty-state guidance (editor only). */
.fh-brand-showcase__empty {
  padding: 16px; text-align: center; color: var(--fh-muted);
  border: 1px dashed var(--fh-border); border-radius: var(--fh-radius-sm);
}

/* Reduced motion: stop movement, wrap into a stable strip, hide the duplicate set. */
@media (prefers-reduced-motion: reduce) {
  .fh-brand-showcase__lane { animation: none; width: auto; flex-wrap: wrap; row-gap: 24px; }
  .fh-brand-showcase__viewport { overflow: visible; }
  .fh-brand-showcase__item[aria-hidden="true"] { display: none; }
}

/* =========================================================================
 * Batch 15A — Hero responsive safeguards + Venture equity note
 * ====================================================================== */
/* Hero CTA buttons keep intrinsic width and never get crushed. */
.fh-actions .fh-btn { min-width: 0; }
/* Tablet CTA layout options (768–1024). Auto wrap is the safe default. */
@media (min-width: 768px) and (max-width: 1024px) {
  .fh-actions--tablet-auto  { flex-wrap: wrap; }
  .fh-actions--tablet-row   { flex-wrap: nowrap; }
  .fh-actions--tablet-row .fh-btn { flex: 0 0 auto; }
  .fh-actions--tablet-stack { flex-direction: column; align-items: stretch; }
  .fh-actions--tablet-stack .fh-btn { width: 100%; }
}
/* Hero mobile item order (≤767). Text-first is the default DOM order. */
@media (max-width: 767px) {
  .fh-hero--m-text .fh-hero__text   { order: -1; }
  .fh-hero--m-image .fh-hero__media { order: -1; }
}

/* Hero tablet item order (768–1024, incl. ~834 portrait). Separate from the mobile control;
   only applied when not "Inherit desktop". Non-overlapping with the mobile range above. */
@media (min-width: 768px) and (max-width: 1024px) {
  .fh-hero--t-text .fh-hero__text   { order: -1; }
  .fh-hero--t-image .fh-hero__media { order: -1; }
}

/* Venture Stage Cards equity note (subordinate to the equity value, above the CTA). */
.fh-stage-cards__final-note {
  margin: 0 0 12px; font-size: 13px; line-height: 1.45; color: var(--fh-muted);
}

/* =========================================================================
 * Batch 15A.2 — Brand Showcase heading tag-aware default typography
 * -------------------------------------------------------------------------
 * The heading HTML tag (H2/H3/H4/Div) now drives the default visual scale, reusing the
 * FixHire design-system heading tokens (.fh-h2/.fh-h3 values) and the established hero
 * tag scale for H4. Div keeps the neutral default (the base .fh-h2 look). These are scoped,
 * low-specificity rules, so a custom Elementor Typography value (injected as
 * .elementor-element-XXX .fh-brand-showcase__title, later in the cascade) overrides them.
 * ====================================================================== */
/* Batch 15C.1.5: heading size is independent of the semantic tag (compact trust-strip
   default; the Group Typography control still overrides via {{WRAPPER}} specificity). */
.fh-brand-showcase__header { text-align: center; }
.fh-brand-showcase .fh-brand-showcase__title { font-size: 24px; line-height: 1.25; }
@media (max-width: 1024px) { .fh-brand-showcase .fh-brand-showcase__title { font-size: 22px; } }
@media (max-width: 767px)  { .fh-brand-showcase .fh-brand-showcase__title { font-size: 20px; } }
/* Div intentionally has no override: it inherits the neutral default (.fh-h2 base style). */

/* =========================================================================
 * Batch 15B.1 — Shared fidelity pattern widgets
 * Editorial Split (C16), Metrics Strip (C17), Proof Panel (C18).
 * Scoped selectors, FixHire tokens, exact responsive columns, no JS, no !important.
 * ====================================================================== */

/* ---- C16 Editorial Split ---- */
.fh-editorial-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.fh-editorial-split--ratio-60-40 { grid-template-columns: 6fr 4fr; }
.fh-editorial-split--ratio-40-60 { grid-template-columns: 4fr 6fr; }
.fh-editorial-split--single { grid-template-columns: 1fr; }
.fh-editorial-split--v-center { align-items: center; }
.fh-editorial-split--v-end { align-items: end; }
.fh-editorial-split > * { min-width: 0; }
.fh-editorial-split--support-text .fh-editorial-split__text { order: 2; }
.fh-editorial-split--support-text .fh-editorial-split__support { order: 1; }
.fh-editorial-split__list { margin: 16px 0; }
.fh-editorial-split__media { margin: 0; }
.fh-editorial-split__media .fh-img { width: 100%; height: auto; display: block; border-radius: var(--fh-radius-lg); }
.fh-editorial-split__media--fit-cover .fh-img { object-fit: cover; }
.fh-editorial-split__media--fit-contain .fh-img { object-fit: contain; }
.fh-editorial-split__media--ratio-16-9 .fh-img { aspect-ratio: 16 / 9; }
.fh-editorial-split__media--ratio-4-3 .fh-img { aspect-ratio: 4 / 3; }
.fh-editorial-split__media--ratio-1-1 .fh-img { aspect-ratio: 1 / 1; }
.fh-editorial-split__media--ratio-3-2 .fh-img { aspect-ratio: 3 / 2; }
.fh-editorial-split__caption { margin-top: 8px; color: var(--fh-muted); }
.fh-editorial-split__panel { display: grid; gap: 16px; }
.fh-editorial-split__panel-item { background: var(--fh-card); border: 1px solid var(--fh-border); border-radius: var(--fh-radius-md); padding: 20px; }
.fh-editorial-split__panel-icon { color: var(--fh-accent); display: inline-flex; margin-bottom: 8px; }
.fh-editorial-split__img--dark { display: none; }
html.uc-dark .fh-editorial-split__img--dark { display: block; }
html.uc-dark .fh-editorial-split__img--light:not(:only-child) { display: none; }
/* 15B.6: when no dedicated dark image, grayscale the standard image in dark mode (reusing the
   exact Hero fallback: grayscale(100%) + hover grayscale(0%) + transition). Only --no-dark. */
html.uc-dark .fh-editorial-split__media--no-dark .fh-editorial-split__img--light {
  filter: grayscale(100%); transition: filter 0.2s ease;
}
html.uc-dark .fh-editorial-split__media--no-dark .fh-editorial-split__img--light:hover { filter: grayscale(0%); }

/* ---- C17 Metrics Strip ---- */
.fh-metrics-strip__grid { display: grid; gap: 24px; margin: 0; }
.fh-metrics-strip__grid.fh-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fh-metrics-strip__grid.fh-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fh-metrics-strip__grid.fh-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fh-metrics-strip--align-center { text-align: center; }
.fh-metrics-strip--align-right { text-align: right; }
.fh-metric { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fh-metrics-strip--align-center .fh-metric { align-items: center; }
.fh-metrics-strip--align-right .fh-metric { align-items: flex-end; }
.fh-metrics-strip--equal .fh-metric { height: 100%; }
.fh-metric__icon { color: var(--fh-accent); display: inline-flex; }
.fh-metric__value { order: -1; margin: 0; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.1; font-weight: 700; color: var(--fh-ink); }
.fh-metric__affix { font-size: 0.6em; font-weight: 600; }
.fh-metric__label { font-size: 15px; font-weight: 600; color: var(--fh-ink); }
.fh-metric__context { margin: 4px 0 0; font-size: 13px; color: var(--fh-muted); }
.fh-metrics-strip--card .fh-metric,
.fh-metrics-strip--divided .fh-metric { background: var(--fh-card); border: 1px solid var(--fh-border); border-radius: var(--fh-radius-md); padding: 24px; }
.fh-metrics-strip--divided .fh-metrics-strip__grid { gap: 0; }
.fh-metrics-strip--divided .fh-metric { border-radius: 0; border-width: 0 1px 0 0; }
.fh-metric__link { text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 4px; }
.fh-metric__link:hover .fh-metric__value { color: var(--fh-accent); }
.fh-metric__link:focus-visible { outline: none; box-shadow: var(--fh-focus); border-radius: var(--fh-radius-sm); }
.fh-metrics-strip__empty { padding: 16px; text-align: center; color: var(--fh-muted); border: 1px dashed var(--fh-border); border-radius: var(--fh-radius-sm); }

/* ---- C18 Proof Panel ---- */
.fh-proof-panel__card { background: var(--fh-card); border: 1px solid var(--fh-border); border-radius: var(--fh-radius-lg); padding: 32px; }
.fh-proof-panel__split { display: grid; gap: 40px; align-items: start; }
.fh-proof-panel--split-on .fh-proof-panel__split { grid-template-columns: 1fr 1fr; }
.fh-proof-panel--proof-media.fh-proof-panel--split-on .fh-proof-panel__media { order: 2; }
.fh-proof-panel--metrics-beside .fh-proof-panel__split { grid-template-columns: 1.4fr 1fr; }
.fh-proof-panel__split > * { min-width: 0; }
.fh-proof-panel__figure { margin: 0; }
.fh-proof-panel__figure .fh-img { width: 100%; height: auto; display: block; border-radius: var(--fh-radius-md); object-fit: cover; }
.fh-proof-panel__logo-wrap { display: inline-flex; margin-bottom: 12px; }
.fh-proof-panel__logo { height: 40px; width: auto; }
.fh-proof-panel__meta { color: var(--fh-muted); margin: 4px 0 12px; }
.fh-proof-panel__block { margin: 12px 0; }
.fh-proof-panel__evidence { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; margin: 20px 0 0; }
.fh-proof-panel--metrics-beside .fh-proof-panel__evidence { grid-template-columns: 1fr; }
.fh-proof-panel__evidence-item { min-width: 0; }
.fh-proof-panel__evidence-value { order: -1; margin: 0; font-size: clamp(24px, 2.6vw, 32px); font-weight: 700; line-height: 1.1; color: var(--fh-accent); }
.fh-proof-panel__evidence-label { font-size: 14px; font-weight: 600; color: var(--fh-ink); }
.fh-proof-panel__evidence-note { margin: 4px 0 0; font-size: 13px; color: var(--fh-muted); }
.fh-proof-panel__img--dark { display: none; }
html.uc-dark .fh-proof-panel__img--dark { display: block; }
html.uc-dark .fh-proof-panel__img--light:not(:only-child) { display: none; }
.fh-proof-panel__logo--dark { display: none; }
html.uc-dark .fh-proof-panel__logo--dark { display: block; }
html.uc-dark .fh-proof-panel__logo--light:not(:only-child) { display: none; }

/* ---- Shared responsive (tablet 768-1024) ---- */
@media (min-width: 768px) and (max-width: 1024px) {
  .fh-editorial-split--t-text .fh-editorial-split__text { order: 1; }
  .fh-editorial-split--t-text .fh-editorial-split__support { order: 2; }
  .fh-editorial-split--t-support .fh-editorial-split__text { order: 2; }
  .fh-editorial-split--t-support .fh-editorial-split__support { order: 1; }
  .fh-metrics-strip__grid[data-fh-cols-tablet="1"] { grid-template-columns: 1fr; }
  .fh-metrics-strip__grid[data-fh-cols-tablet="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-metrics-strip__grid[data-fh-cols-tablet="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fh-proof-panel--t-text .fh-proof-panel__media { order: 2; }
  .fh-proof-panel--t-support .fh-proof-panel__media { order: 1; }
}

/* ---- Shared responsive (mobile <=767): single column + item order ---- */
@media (max-width: 767px) {
  .fh-editorial-split,
  .fh-editorial-split--ratio-60-40,
  .fh-editorial-split--ratio-40-60 { grid-template-columns: 1fr; }
  .fh-editorial-split--m-support .fh-editorial-split__text { order: 2; }
  .fh-editorial-split--m-support .fh-editorial-split__support { order: 1; }
  .fh-editorial-split--m-text .fh-editorial-split__text { order: 1; }
  .fh-editorial-split--m-text .fh-editorial-split__support { order: 2; }
  .fh-metrics-strip__grid[data-fh-cols-mobile="1"] { grid-template-columns: 1fr; }
  .fh-metrics-strip__grid[data-fh-cols-mobile="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-proof-panel--split-on .fh-proof-panel__split,
  .fh-proof-panel--metrics-beside .fh-proof-panel__split { grid-template-columns: 1fr; }
  .fh-proof-panel--m-support .fh-proof-panel__media { order: 1; }
  .fh-proof-panel--divided .fh-metric { border-width: 0 0 1px; }
}

/* =========================================================================
 * Batch 15B.2 — Deliverables (C19), Location/Contact (C20), and extensions
 * (Phase Flow states/orientation, Timeline layouts, Card Grid team fields).
 * Scoped, token-based, exact columns, no JS, no !important.
 * ====================================================================== */

/* ---- C19 Deliverables / Checklist ---- */
.fh-deliverables__grid { display: grid; gap: 16px; margin: 0; padding: 0; }
.fh-deliverables__grid.fh-cols-1 { grid-template-columns: 1fr; }
.fh-deliverables__grid.fh-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fh-deliverables__grid.fh-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
ul.fh-deliverables__grid, .fh-deliverables__group-list { list-style: none; }
.fh-deliverables--align-center .fh-deliverables__item { text-align: center; }
.fh-deliverables--align-right .fh-deliverables__item { text-align: right; }
.fh-deliverables__item { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.fh-deliverables--icon-top .fh-deliverables__item { flex-direction: column; }
.fh-deliverables--cards .fh-deliverables__item { background: var(--fh-card); border: 1px solid var(--fh-border); border-radius: var(--fh-radius-md); padding: 20px; }
.fh-deliverables--equal.fh-deliverables--cards .fh-deliverables__item { height: 100%; }
.fh-deliverables__icon { color: var(--fh-accent); display: inline-flex; flex: 0 0 auto; }
.fh-deliverables__seq { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 6px; border-radius: var(--fh-radius-pill); background: var(--fh-accent-bg); color: var(--fh-accent); font-weight: 700; font-size: 13px; }
.fh-deliverables__body { min-width: 0; }
.fh-deliverables__row { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fh-deliverables__title { font-weight: 600; color: var(--fh-ink); }
.fh-deliverables__badge { font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: var(--fh-radius-pill); background: var(--fh-accent-bg); color: var(--fh-accent); }
.fh-deliverables__desc, .fh-deliverables__meta { margin: 4px 0 0; color: var(--fh-muted); }
.fh-deliverables__group { margin-bottom: 24px; }
.fh-deliverables__group-title { display: block; margin: 0 0 12px; }
.fh-deliverables__group-list { display: grid; gap: 12px; padding: 0; }
.fh-deliverables__link { display: inline-block; margin-top: 6px; color: var(--fh-accent); }
.fh-deliverables__link:focus-visible { outline: none; box-shadow: var(--fh-focus); border-radius: var(--fh-radius-sm); }
.fh-deliverables__empty { padding: 16px; text-align: center; color: var(--fh-muted); border: 1px dashed var(--fh-border); border-radius: var(--fh-radius-sm); }

/* ---- C20 Location / Contact ---- */
.fh-loc__grid { display: grid; gap: 24px; }
.fh-loc__grid.fh-cols-1 { grid-template-columns: 1fr; }
.fh-loc__grid.fh-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fh-loc__grid.fh-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fh-loc__card { background: var(--fh-card); border: 1px solid var(--fh-border); border-radius: var(--fh-radius-md); padding: 24px; min-width: 0; }
.fh-loc--equal .fh-loc__card { height: 100%; }
.fh-loc--align-center .fh-loc__card { text-align: center; }
.fh-loc__icon { color: var(--fh-accent); display: inline-flex; margin-bottom: 8px; }
.fh-loc__type { display: block; margin-bottom: 4px; }
.fh-loc__address { font-style: normal; color: var(--fh-muted); margin: 8px 0; }
.fh-loc__contacts { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; }
.fh-loc__contact a { color: var(--fh-accent); text-decoration: none; }
.fh-loc__contact a:focus-visible { outline: none; box-shadow: var(--fh-focus); border-radius: var(--fh-radius-sm); }
.fh-loc__hours { color: var(--fh-muted); }
.fh-loc__actions { margin-top: 16px; }
.fh-loc__card--featured { border-color: var(--fh-accent); box-shadow: var(--fh-shadow-soft); }
.fh-loc__map { min-width: 0; }
.fh-loc__map-frame { width: 100%; height: 360px; overflow: hidden; border-radius: inherit; }
.fh-loc__map-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fh-loc__map-link { margin-top: 12px; }
.fh-loc__empty { padding: 16px; text-align: center; color: var(--fh-muted); border: 1px dashed var(--fh-border); border-radius: var(--fh-radius-sm); }
/* Split layout (locations + map side by side) */
.fh-loc--split-on { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: start; }
.fh-loc--split-on.fh-loc--map-left { grid-template-columns: 1fr 1.2fr; }
.fh-loc--split-on.fh-loc--map-left .fh-loc__map { order: 1; }
.fh-loc--split-on.fh-loc--map-left .fh-loc__locations { order: 2; }
.fh-loc--split-on > * { min-width: 0; }
/* Map below */
.fh-loc--map-below .fh-loc__map { margin-top: 32px; }

/* ---- Phase Flow extensions: states, icon, duration/output, orientation ---- */
.fh-phase-flow__icon { color: var(--fh-accent); display: inline-flex; margin-bottom: 8px; }
.fh-phase-flow__state { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: var(--fh-radius-pill); margin-bottom: 8px; border: 1px solid var(--fh-border); color: var(--fh-muted); }
.fh-phase-flow__item--current { border-color: var(--fh-accent); }
.fh-phase-flow__item--current .fh-phase-flow__state { background: var(--fh-accent-bg); color: var(--fh-accent); border-color: var(--fh-accent); }
.fh-phase-flow__item--complete .fh-phase-flow__state { background: var(--fh-bg-soft); }
.fh-phase-flow__item--upcoming { opacity: 0.92; }
.fh-phase-flow__duration { margin: 8px 0 0; font-size: 13px; font-weight: 600; color: var(--fh-muted); }
.fh-phase-flow__output { margin: 6px 0 0; font-size: 13px; color: var(--fh-muted); }
@media (min-width: 768px) and (max-width: 1024px) {
  .fh-phase-flow--t-vertical .fh-phase-flow__grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .fh-phase-flow--m-scroll .fh-phase-flow__grid { display: flex; overflow-x: auto; gap: 16px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
  .fh-phase-flow--m-scroll .fh-phase-flow__item { flex: 0 0 80%; scroll-snap-align: start; }
}

/* ---- Timeline extensions: states, date/outcome/meta/link, vertical variants ---- */
.fh-timeline-step__state { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: var(--fh-radius-pill); border: 1px solid var(--fh-border); color: var(--fh-muted); margin-bottom: 4px; }
.fh-timeline-step--current .fh-timeline-step__state { background: var(--fh-accent-bg); color: var(--fh-accent); border-color: var(--fh-accent); }
.fh-timeline-step__date { display: block; font-size: 13px; font-weight: 600; color: var(--fh-muted); }
.fh-timeline-step__outcome { margin: 6px 0 0; font-size: 13px; color: var(--fh-muted); }
.fh-timeline-step__meta { margin: 4px 0 0; color: var(--fh-muted); }
.fh-timeline-step__link { display: inline-block; margin-top: 6px; color: var(--fh-accent); }
.fh-timeline-step__link:focus-visible { outline: none; box-shadow: var(--fh-focus); border-radius: var(--fh-radius-sm); }
.fh-timeline-vertical--right .fh-timeline-step { text-align: right; }
.fh-timeline-vertical--compact { gap: 12px; }
.fh-timeline-vertical--alternating .fh-timeline-step:nth-child(even) { text-align: right; }
@media (max-width: 767px) {
  .fh-timeline-vertical--alternating .fh-timeline-step,
  .fh-timeline-vertical--right .fh-timeline-step,
  .fh-timeline-vertical--alternating .fh-timeline-step:nth-child(even) { text-align: left; }
}

/* ---- Card Grid Team-variant additions ---- */
.fh-person-card__role { margin: 2px 0 0; font-size: 14px; font-weight: 600; color: var(--fh-accent); }
.fh-person-card__expertise { display: inline-block; margin: 6px 0 0; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: var(--fh-radius-pill); background: var(--fh-accent-bg); color: var(--fh-accent); }
.fh-person-card__location { margin: 8px 0 0; font-size: 13px; color: var(--fh-muted); }
.fh-person-card__img--dark { display: none; }
html.uc-dark .fh-person-card__img--dark { display: block; }
html.uc-dark .fh-person-card__img--light:not(:only-child) { display: none; }

/* ---- Shared responsive columns (data-attr) for C19/C20 ---- */
@media (min-width: 768px) and (max-width: 1024px) {
  .fh-deliverables__grid[data-fh-cols-tablet="1"], .fh-loc__grid[data-fh-cols-tablet="1"] { grid-template-columns: 1fr; }
  .fh-deliverables__grid[data-fh-cols-tablet="2"], .fh-loc__grid[data-fh-cols-tablet="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-loc--split-on, .fh-loc--split-on.fh-loc--map-left { grid-template-columns: 1fr; }
  .fh-loc--t-support .fh-loc__map { order: 1; }
  .fh-loc--t-support .fh-loc__locations { order: 2; }
}
@media (max-width: 767px) {
  .fh-deliverables__grid, .fh-deliverables__grid.fh-cols-2, .fh-deliverables__grid.fh-cols-3,
  .fh-loc__grid, .fh-loc__grid.fh-cols-2, .fh-loc__grid.fh-cols-3 { grid-template-columns: 1fr; }
  .fh-deliverables__grid[data-fh-cols-mobile="2"], .fh-loc__grid[data-fh-cols-mobile="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-loc--split-on, .fh-loc--split-on.fh-loc--map-left { grid-template-columns: 1fr; }
  .fh-loc--m-support .fh-loc__map { order: 1; }
  .fh-loc--m-support .fh-loc__locations { order: 2; }
}

/* =========================================================================
 * Batch 15B.3 — Shared pattern corrections
 * ====================================================================== */

/* 1. Editorial Split: tablet two-column control */
@media (min-width: 768px) and (max-width: 1024px) {
  .fh-editorial-split--tablet-two:not(.fh-editorial-split--single) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .fh-editorial-split--tablet-two.fh-editorial-split--ratio-60-40 { grid-template-columns: 6fr 4fr; }
  .fh-editorial-split--tablet-two.fh-editorial-split--ratio-40-60 { grid-template-columns: 4fr 6fr; }
  .fh-editorial-split--tablet-stack:not(.fh-editorial-split--single) { grid-template-columns: 1fr; }
}

/* 3+4. Timeline content order + connectors (vertical). Horizontal timeline unchanged. */
.fh-timeline-step__eyebrow { display: block; }
.fh-timeline-vertical { --fh-tl-node: 40px; --fh-tl-thickness: 2px; --fh-tl-conn: var(--fh-border); position: relative; }
.fh-timeline-vertical .fh-timeline-step { position: relative; min-height: var(--fh-tl-node); padding-left: calc(var(--fh-tl-node) + 20px); }
.fh-timeline-vertical .fh-timeline-node { position: absolute; left: 0; top: 0; width: var(--fh-tl-node); height: var(--fh-tl-node); margin: 0; z-index: 1; }
/* Continuous rail from first node centre to last node centre (no trailing line). */
.fh-timeline-vertical:not(.fh-timeline--conn-none)::before {
  content: ""; position: absolute; top: calc(var(--fh-tl-node) / 2); bottom: calc(var(--fh-tl-node) / 2);
  left: calc(var(--fh-tl-node) / 2 - var(--fh-tl-thickness) / 2); width: var(--fh-tl-thickness);
  background: var(--fh-tl-conn);
}
/* One-sided right */
.fh-timeline-vertical--right .fh-timeline-step { padding-left: 0; padding-right: calc(var(--fh-tl-node) + 20px); text-align: right; }
.fh-timeline-vertical--right .fh-timeline-node { left: auto; right: 0; }
.fh-timeline-vertical--right:not(.fh-timeline--conn-none)::before { left: auto; right: calc(var(--fh-tl-node) / 2 - var(--fh-tl-thickness) / 2); }
/* Compact */
.fh-timeline-vertical--compact { gap: 12px; }
/* Alternating: central rail; nodes on the rail; content alternates sides (desktop). */
@media (min-width: 768px) {
  .fh-timeline-vertical--alternating .fh-timeline-step { width: 50%; box-sizing: border-box; padding-left: 0; padding-right: 40px; text-align: right; }
  .fh-timeline-vertical--alternating .fh-timeline-step:nth-child(even) { margin-left: 50%; padding-left: 40px; padding-right: 0; text-align: left; }
  .fh-timeline-vertical--alternating .fh-timeline-node { left: auto; right: calc(-1 * var(--fh-tl-node) / 2); }
  .fh-timeline-vertical--alternating .fh-timeline-step:nth-child(even) .fh-timeline-node { left: calc(-1 * var(--fh-tl-node) / 2); right: auto; }
  .fh-timeline-vertical--alternating:not(.fh-timeline--conn-none)::before { left: calc(50% - var(--fh-tl-thickness) / 2); right: auto; }
}
/* No-connector mode */
.fh-timeline--conn-none::before { display: none; }

/* 5. Deliverables badge accents */
.fh-deliverables__badge--neutral { background: var(--fh-bg-soft); color: var(--fh-muted); }
.fh-deliverables__badge--red { background: color-mix(in srgb, var(--fh-red, #DA0025) 12%, #fff); color: var(--fh-red, #DA0025); }
.fh-deliverables__badge.fh-accent-clarify, .fh-deliverables__badge.fh-accent-validate,
.fh-deliverables__badge.fh-accent-launch, .fh-deliverables__badge.fh-accent-scale,
.fh-deliverables__badge.fh-accent-pre-validate, .fh-deliverables__badge.fh-accent-pre-launch,
.fh-deliverables__badge.fh-accent-pre-scale, .fh-deliverables__badge.fh-accent-post-scale {
  background: var(--fh-accent-bg); color: var(--fh-accent);
}
.fh-deliverables__badge--custom { background: color-mix(in srgb, var(--fh-badge-c) 12%, #fff); color: var(--fh-badge-c); border: 1px solid color-mix(in srgb, var(--fh-badge-c) 40%, #fff); }
html.uc-dark .fh-deliverables__badge--custom { background: color-mix(in srgb, var(--fh-badge-c) 24%, #000); }

/* 6. Card Grid Team: identity (image + title/role/expertise) and details regions */
.fh-person-card__identity-content { min-width: 0; }
.fh-person-card__details { min-width: 0; }
.fh-person-card__details > :first-child { margin-top: 12px; }
.fh-person-card__expertise-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fh-person-card__expertise-list .fh-person-card__expertise { margin: 0; }
/* Per-card expertise accents (scoped to the list) */
.fh-person-card__expertise-list.fh-person-card--exp-neutral .fh-person-card__expertise { background: var(--fh-bg-soft); color: var(--fh-muted); }
.fh-person-card__expertise-list.fh-person-card--exp-red .fh-person-card__expertise { background: color-mix(in srgb, var(--fh-red, #DA0025) 12%, #fff); color: var(--fh-red, #DA0025); }
.fh-person-card__expertise-list.fh-person-card--exp-custom .fh-person-card__expertise { background: color-mix(in srgb, var(--fh-team-expertise-accent) 12%, #fff); color: var(--fh-team-expertise-accent); border: 1px solid color-mix(in srgb, var(--fh-team-expertise-accent) 40%, #fff); }
html.uc-dark .fh-person-card__expertise-list.fh-person-card--exp-custom .fh-person-card__expertise { background: color-mix(in srgb, var(--fh-team-expertise-accent) 24%, #000); }
/* Image Top (default): conventional stacked hierarchy */
.fh-person-card--img-top .fh-person-card__identity { display: block; }
/* Image Left: only image + identity share the row; details span beneath */
@media (min-width: 768px) {
  .fh-person-card--img-left .fh-person-card__identity { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: center; text-align: left; }
  .fh-person-card--img-left .fh-person-card__media { margin: 0; }
  .fh-person-card--img-left .fh-card-title { font-size: 18px; }
}

/* 2. Proof Panel multiple cases */
.fh-proof-panel__cases { display: grid; gap: 32px; }
.fh-proof-panel--cases-cards .fh-proof-panel__cases.fh-cols-1 { grid-template-columns: 1fr; }
.fh-proof-panel--cases-cards .fh-proof-panel__cases.fh-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fh-proof-panel--cases-cards .fh-proof-panel__cases.fh-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fh-proof-panel__case { min-width: 0; }
.fh-proof-panel__case--split .fh-proof-panel__split { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; }
.fh-proof-panel__case--split.fh-proof-panel__case--flip .fh-proof-panel__media { order: 2; }
.fh-proof-panel__case--split .fh-proof-panel__split > * { min-width: 0; }
.fh-proof-panel--cases-featured .fh-proof-panel__case--featured { grid-column: 1 / -1; }
.fh-proof-panel__empty { padding: 16px; text-align: center; color: var(--fh-muted); border: 1px dashed var(--fh-border); border-radius: var(--fh-radius-sm); }
@media (min-width: 768px) and (max-width: 1024px) {
  .fh-proof-panel__cases[data-fh-cols-tablet="1"] { grid-template-columns: 1fr; }
  .fh-proof-panel__cases[data-fh-cols-tablet="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .fh-proof-panel__cases, .fh-proof-panel--cases-cards .fh-proof-panel__cases { grid-template-columns: 1fr; }
  .fh-proof-panel__case--split .fh-proof-panel__split { grid-template-columns: 1fr; }
  .fh-person-card--img-left .fh-person-card__identity { display: block; }
}

/* =========================================================================
 * Batch 15B.4 — Editorial named-area grid + complete timeline connectors
 * ====================================================================== */

/* 8. Editorial Split: definitive named grid areas (pins each child to a column,
   eliminating any auto-placement/order interaction that produced the checkerboard). */
.fh-editorial-split { grid-template-areas: "content support"; }
.fh-editorial-split__text { grid-area: content; min-width: 0; width: 100%; }
.fh-editorial-split__support { grid-area: support; min-width: 0; }
.fh-editorial-split--support-text { grid-template-areas: "support content"; }
.fh-editorial-split--single { grid-template-areas: "content"; }
.fh-editorial-split--ratio-60-40 { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.fh-editorial-split--ratio-40-60 { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
@media (min-width: 768px) and (max-width: 1024px) {
  .fh-editorial-split--tablet-two.fh-editorial-split--t-support:not(.fh-editorial-split--single) { grid-template-areas: "support content"; }
  .fh-editorial-split--tablet-two.fh-editorial-split--t-text:not(.fh-editorial-split--single) { grid-template-areas: "content support"; }
  .fh-editorial-split--tablet-stack:not(.fh-editorial-split--single) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "content" "support"; }
  .fh-editorial-split--tablet-stack.fh-editorial-split--t-support:not(.fh-editorial-split--single) { grid-template-areas: "support" "content"; }
}
@media (max-width: 767px) {
  .fh-editorial-split:not(.fh-editorial-split--single) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "content" "support"; }
  .fh-editorial-split--m-support:not(.fh-editorial-split--single) { grid-template-areas: "support" "content"; }
}

/* 9+10. Timeline: shared connector variables + horizontal connectors + dashed/arrow. */
.fh-timeline { --fh-tl-node: 40px; --fh-tl-thickness: 2px; --fh-tl-conn: var(--fh-border); --fh-tl-gap: 24px; }
.fh-timeline-node { position: relative; z-index: 1; width: var(--fh-tl-node, 40px); height: var(--fh-tl-node, 40px); }

/* Vertical: dashed + arrow on top of the existing rail */
.fh-timeline-vertical.fh-timeline--conn-dashed::before { background: none; width: 0; border-left: var(--fh-tl-thickness) dashed var(--fh-tl-conn); }
.fh-timeline-vertical--right.fh-timeline--conn-dashed::before { border-left: 0; border-right: var(--fh-tl-thickness) dashed var(--fh-tl-conn); }
.fh-timeline-vertical.fh-timeline--conn-arrow .fh-timeline-step:not(:last-child)::after {
  content: ""; position: absolute; left: calc(var(--fh-tl-node) / 2); bottom: calc(-1 * var(--fh-tl-gap) / 2); transform: translateX(-50%);
  width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 6px solid var(--fh-tl-conn); z-index: 1;
}
.fh-timeline-vertical--right.fh-timeline--conn-arrow .fh-timeline-step:not(:last-child)::after { left: auto; right: calc(var(--fh-tl-node) / 2); transform: translateX(50%); }
.fh-timeline-vertical--alternating.fh-timeline--conn-arrow .fh-timeline-step:not(:last-child)::after { left: 50%; right: auto; }

/* Horizontal (15B.5): the node sits in a stable top band of height = node size, so the
   connector is centred on the node's vertical midpoint regardless of content height, node
   size, thickness, or gap. padding-top:0 removes the legacy 8px offset; the connector top is
   the node midpoint and translateY(-50%) centres the connector thickness on that line.
   Geometry: start at the current node's right edge, end at the next node's left edge. */
.fh-timeline-horizontal .fh-timeline-step { position: relative; text-align: center; padding-top: 0; }
.fh-timeline-horizontal .fh-timeline-node { margin-left: auto; margin-right: auto; }
.fh-timeline-horizontal:not(.fh-timeline--conn-none) .fh-timeline-step:not(:last-child)::after {
  content: ""; position: absolute; top: calc(var(--fh-tl-node) / 2);
  left: calc(50% + var(--fh-tl-node) / 2); width: calc(100% + var(--fh-tl-gap) - var(--fh-tl-node));
  height: var(--fh-tl-thickness); background: var(--fh-tl-conn); transform: translateY(-50%); z-index: 0;
}
.fh-timeline-horizontal.fh-timeline--conn-dashed .fh-timeline-step:not(:last-child)::after { background: none; height: 0; border-top: var(--fh-tl-thickness) dashed var(--fh-tl-conn); }
/* Horizontal arrowhead, centred on the node line, ending at the next node's left edge. */
.fh-timeline-horizontal.fh-timeline--conn-arrow .fh-timeline-step:not(:last-child)::before {
  content: ""; position: absolute; top: calc(var(--fh-tl-node) / 2);
  left: calc(150% + var(--fh-tl-gap) - var(--fh-tl-node) / 2); transform: translate(-100%, -50%);
  width: 0; height: 0; border-top: calc(3px + var(--fh-tl-thickness)) solid transparent; border-bottom: calc(3px + var(--fh-tl-thickness)) solid transparent;
  border-left: calc(4px + var(--fh-tl-thickness)) solid var(--fh-tl-conn); z-index: 1;
}
/* Contained horizontal scroll (when many items) */
.fh-timeline-horizontal { overflow-x: auto; }

/* =========================================================================
 * Batch 15B.8 — Dark-mode accent bridges (timeline, expertise, final CTA)
 * Dark-only, low-specificity so genuine user/custom Elementor colours still win.
 * Light mode is untouched (all rules gated by html.uc-dark / :where(html.uc-dark)).
 * ====================================================================== */

/* 5. Timeline connector: default to the selected accent in dark (was --fh-border, i.e.
   #2b3342, invisible on dark). :where() keeps specificity at 0,1,0 so the Elementor
   "Connector colour" control ({{WRAPPER}} .fh-timeline, 0,2,0) still overrides it. */
:where(html.uc-dark) .fh-timeline { --fh-tl-conn: var(--fh-accent); }

/* 6. Timeline node: readable accent text on a restrained dark accent tint. :where() keeps
   specificity at 0,1,0 so the Elementor "Node colour" control still wins. */
:where(html.uc-dark) .fh-timeline-node {
  color: var(--fh-accent);
  background: color-mix(in srgb, var(--fh-accent) 18%, var(--fh-card));
}

/* 8. Team expertise (Studio/Venture accents only): approved lighter accent text + border +
   restrained dark tint. Neutral/Brand-Red/Custom keep their own rules (no fh-accent-* class). */
html.uc-dark .fh-person-card__expertise-list[class*="fh-accent-"] .fh-person-card__expertise {
  color: var(--fh-accent);
  border: 1px solid color-mix(in srgb, var(--fh-accent) 72%, transparent);
  background: color-mix(in srgb, var(--fh-accent) 15%, var(--fh-card));
}

/* 10. Final CTA accent propagation (dark only): when the widget itself carries a Studio/Venture
   accent class (e.g. Card Grid), its section-level final CTA primary follows that accent. Widgets
   with per-card accents and no widget-level accent (Package/Stage) keep the brand fallback. */
html.uc-dark .fh-scope[class*="fh-accent-"] .fh-section-cta .fh-btn-primary {
  background: var(--fh-accent);
  border-color: var(--fh-accent);
  color: var(--fh-accent-on, #fff);
}
html.uc-dark .fh-scope[class*="fh-accent-"] .fh-section-cta .fh-btn-primary:hover {
  background: transparent;
  border-color: var(--fh-accent);
  color: var(--fh-accent);
}

/* =========================================================================
 * Batch 15B.10 — Explicit Brand-Blue states: Timeline, Team Role/Title, Final CTA
 * The Brand accent path is given explicit render classes instead of being
 * represented only by the absence of a Studio/Venture class. Brand values are
 * set directly from the canonical token var(--fh-blue) so they resolve to
 * #0F2A8C in light and #506BCD in dark without relying on the --fh-accent
 * indirection that failed at runtime. Genuine Elementor custom colours keep
 * winning (higher {{WRAPPER}} ID-level specificity). No !important; light
 * mode is unchanged (dark rules gated by html.uc-dark; the accent-token and
 * text-link rules use token values identical to current inherited behaviour).
 * ====================================================================== */

/* --- 1. Timeline: explicit Brand accent -------------------------------- */
/* Connector: token/default path only. A custom "Connector colour" control still
   wins via its {{WRAPPER}} specificity. Applies to both orientations and to the
   Line/Dashed/Arrow pseudo-elements (they all consume --fh-tl-conn). */
html.uc-dark .fh-timeline--accent-brand.fh-timeline--connector-token { --fh-tl-conn: var(--fh-blue); }
/* Node foreground + restrained dark-blue tint, token/default path only. Node
   geometry (size, radius) is untouched; numeric and icon nodes both follow color. */
html.uc-dark .fh-timeline--accent-brand.fh-timeline--node-token .fh-timeline-node {
  color: var(--fh-blue);
  background: color-mix(in srgb, var(--fh-blue) 16%, var(--fh-card));
}
html.uc-dark .fh-timeline--accent-brand.fh-timeline--node-token .fh-timeline-node svg { stroke: currentColor; }

/* --- 2. Team Role/Title: explicit Brand accent ------------------------- */
/* .fh-person-card__role is colour: var(--fh-accent). On the Brand card grid
   (no accent class) force the dark brand token so the role is readable on dark
   cards. Studio/Venture card grids keep their accent via the existing cascade. */
html.uc-dark .fh-card-grid--accent-brand .fh-person-card__role { color: var(--fh-blue); }

/* --- 3. Final CTA: explicit accent state ------------------------------- */
/* Stable per-accent hook on the CTA wrapper. Values equal what the wrapper would
   otherwise inherit, so light mode and Studio/Venture are unchanged; the Brand
   hook makes the brand path explicit (var(--fh-blue) -> #506BCD in dark) instead
   of relying on inheritance through an absent accent class. */
.fh-section-cta--accent-brand        { --fh-accent: var(--fh-blue); }
.fh-section-cta--accent-clarify      { --fh-accent: var(--fh-clarify); }
.fh-section-cta--accent-validate     { --fh-accent: var(--fh-validate); }
.fh-section-cta--accent-launch       { --fh-accent: var(--fh-launch); }
.fh-section-cta--accent-scale        { --fh-accent: var(--fh-scale); }
.fh-section-cta--accent-pre-validate { --fh-accent: var(--fh-pre-validate); }
.fh-section-cta--accent-pre-launch   { --fh-accent: var(--fh-pre-launch); }
.fh-section-cta--accent-pre-scale    { --fh-accent: var(--fh-pre-scale); }
.fh-section-cta--accent-post-scale   { --fh-accent: var(--fh-post-scale); }

/* Solid Brand final CTA: dark brand token background + white foreground (white is
   the established, readable brand-solid foreground; not the Studio/Venture dark fg). */
html.uc-dark .fh-section-cta--accent-brand .fh-btn-primary,
html.uc-dark .fh-section-cta--accent-brand .fh-btn-package,
html.uc-dark .fh-section-cta--accent-brand .fh-btn-stage {
  background: var(--fh-blue);
  border-color: var(--fh-blue);
  color: #fff;
}
html.uc-dark .fh-section-cta--accent-brand .fh-btn-primary:hover,
html.uc-dark .fh-section-cta--accent-brand .fh-btn-package:hover,
html.uc-dark .fh-section-cta--accent-brand .fh-btn-stage:hover {
  background: var(--fh-blue-hover);
  border-color: var(--fh-blue-hover);
  color: #fff;
}

/* Outline final CTA: never a white fill on dark; accent text/border/icon on a
   transparent surface, restrained accent tint on hover. */
html.uc-dark .fh-section-cta .fh-btn-accent-outline {
  background: transparent;
  color: var(--fh-accent);
  border-color: var(--fh-accent);
}
html.uc-dark .fh-section-cta .fh-btn-accent-outline:hover {
  background: color-mix(in srgb, var(--fh-accent) 16%, var(--fh-card));
  color: var(--fh-accent);
  border-color: var(--fh-accent);
}

/* Text final CTA: explicit accent link (no fill, no visible border). Works in both
   modes via var(--fh-accent); restrained tint + underline on hover. Focus uses the
   shared .fh-btn:focus-visible ring. Icon follows currentColor. */
.fh-section-cta .fh-btn-accent-text {
  background: transparent;
  border-color: transparent;
  color: var(--fh-accent);
}
.fh-section-cta .fh-btn-accent-text:hover {
  background: color-mix(in srgb, var(--fh-accent) 12%, transparent);
  color: var(--fh-accent);
  text-decoration: underline;
}
.fh-section-cta .fh-btn-accent-text .fh-icon { color: var(--fh-accent); }

/* =========================================================================
 * Batch 15C.1.2 — Proof Panel: Client Showcase variant
 * A wide, centred client card: centred logo, accent-tinted surface, large
 * outcome statement, evidence stats, attribution, optional portrait/CTA.
 * Reuses existing proof-panel logo/evidence/CTA markup. Dark-mode safe.
 * ====================================================================== */
.fh-proof-panel--client-showcase .fh-proof-panel__client {
  max-width: 880px;
  margin: 0 auto;
  border-radius: var(--fh-radius-lg, 20px);
  padding: 48px 40px;
  text-align: center;
}
.fh-proof-panel--client-showcase.fh-proof-panel--cs-left .fh-proof-panel__client { text-align: left; margin-left: 0; }
.fh-proof-panel--cs-bg-tint .fh-proof-panel__client {
  background: color-mix(in srgb, var(--fh-accent) 8%, var(--fh-card));
  border: 1px solid color-mix(in srgb, var(--fh-accent) 18%, var(--fh-border));
}
.fh-proof-panel--cs-bg-surface .fh-proof-panel__client { background: var(--fh-card); border: 1px solid var(--fh-border); }
.fh-proof-panel--cs-bg-plain .fh-proof-panel__client { background: transparent; }
.fh-proof-panel--client-showcase .fh-proof-panel__logo-wrap { display: inline-flex; justify-content: center; margin-bottom: 16px; }
.fh-proof-panel--client-showcase .fh-proof-panel__logo { height: 40px; width: auto; }
.fh-proof-panel--client-showcase .fh-proof-panel__quote-mark {
  display: block; font-size: 44px; line-height: 1; font-weight: 700;
  color: var(--fh-accent); margin-bottom: 4px;
}
.fh-proof-panel--cs-left .fh-proof-panel__quote-mark { text-align: left; }
.fh-proof-panel--client-showcase .fh-proof-panel__cs-eyebrow { display: block; margin-bottom: 8px; }
.fh-proof-panel--client-showcase .fh-proof-panel__statement { font-size: 18px; margin: 8px auto 0; max-width: 64ch; }
.fh-proof-panel--cs-left .fh-proof-panel__statement { margin-left: 0; }
.fh-proof-panel--client-showcase .fh-proof-panel__evidence {
  display: flex; flex-wrap: wrap; gap: 24px 40px; justify-content: center; margin-top: 24px;
}
.fh-proof-panel--cs-left .fh-proof-panel__evidence { justify-content: flex-start; }
.fh-proof-panel--client-showcase .fh-proof-panel__cs-attribution {
  display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 24px; flex-wrap: wrap;
}
.fh-proof-panel--cs-left .fh-proof-panel__cs-attribution { justify-content: flex-start; }
.fh-proof-panel--client-showcase .fh-proof-panel__cs-portrait img { width: 56px; height: 56px; border-radius: var(--fh-radius-pill); object-fit: cover; }
.fh-proof-panel--client-showcase .fh-proof-panel__cs-byline { margin: 0; font-weight: 600; }
.fh-proof-panel--client-showcase .fh-proof-panel__cs-name { color: var(--fh-ink); }
.fh-proof-panel--client-showcase .fh-proof-panel__cs-role,
.fh-proof-panel--client-showcase .fh-proof-panel__cs-org { color: var(--fh-accent); }
.fh-proof-panel--client-showcase .fh-proof-panel__cs-meta { margin: 2px 0 0; color: var(--fh-muted); }
.fh-proof-panel--client-showcase .fh-actions { justify-content: center; margin-top: 24px; }
.fh-proof-panel--cs-left .fh-actions { justify-content: flex-start; }
@media (max-width: 767px) {
  .fh-proof-panel--client-showcase .fh-proof-panel__client { padding: 32px 20px; }
  .fh-proof-panel--client-showcase .fh-proof-panel__statement { font-size: 16px; }
}

/* =========================================================================
 * Batch 15C.1.3 — Dynamic Insights article cards (Card Grid Posts source)
 * Dark-mode-safe category/reading-time pills (token-based, no hard-coded blue).
 * ====================================================================== */
.fh-card-grid--posts { align-items: stretch; }
.fh-article-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.fh-article-card__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--fh-icon-bg); }
.fh-article-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter .2s ease, transform .25s ease; }
html.uc-dark .fh-article-card__img { filter: grayscale(100%); }
html.uc-dark .fh-article-card:hover .fh-article-card__img { filter: grayscale(0%); }
.fh-article-card__placeholder { position: absolute; inset: 0; background: color-mix(in srgb, var(--fh-accent) 12%, var(--fh-card)); }
.fh-article-card__pills { position: absolute; top: 12px; left: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.fh-article-card__pill {
  display: inline-block; font-size: 12px; font-weight: 600; line-height: 1; padding: 6px 10px;
  border-radius: var(--fh-radius-pill, 999px); backdrop-filter: saturate(140%) blur(2px);
}
.fh-article-card__pill--cat { background: var(--fh-accent); color: var(--fh-accent-on, #fff); }
.fh-article-card__pill--read { background: rgba(255, 255, 255, 0.92); color: var(--fh-ink); }
html.uc-dark .fh-scope .fh-article-card__pill--read { background: rgba(22, 28, 38, 0.86); color: var(--fh-text); }
.fh-article-card__body { display: flex; flex-direction: column; gap: 8px; padding: 20px; }
.fh-article-card__title { margin: 0; }
.fh-article-card__title-link { color: var(--fh-ink); text-decoration: none; }
.fh-article-card__title-link:hover { color: var(--fh-accent); }
.fh-article-card__title-link:focus-visible { outline: none; box-shadow: var(--fh-focus); border-radius: var(--fh-radius-sm); }
.fh-article-card__media:focus-visible { outline: none; box-shadow: var(--fh-focus); }
.fh-article-card__excerpt { margin: 0; color: var(--fh-muted); }
.fh-card-grid__empty { text-align: center; color: var(--fh-muted); }

/* --- Client Showcase: explicit dark-safe accent tokens (no hard-coded light blue) --- */
.fh-proof-panel--client-showcase .fh-proof-panel__cs-eyebrow,
.fh-proof-panel--client-showcase .fh-proof-panel__quote-mark,
.fh-proof-panel--client-showcase .fh-proof-panel__evidence-value,
.fh-proof-panel--client-showcase .fh-proof-panel__cs-role,
.fh-proof-panel--client-showcase .fh-proof-panel__cs-org { color: var(--fh-accent); }
.fh-proof-panel--client-showcase .fh-proof-panel__heading { color: var(--fh-ink); }
.fh-proof-panel--client-showcase .fh-proof-panel__statement,
.fh-proof-panel--client-showcase .fh-proof-panel__evidence-label { color: var(--fh-text); }

/* =========================================================================
 * Batch 15C.1.4 — Proof Panel explicit accent state (Client Showcase)
 * Brand is given an explicit class (not represented by the absence of one), so
 * --fh-accent resolves from the canonical token directly: #0F2A8C in light and
 * #506BCD in dark (via html.uc-dark .fh-scope), and named/Red accents use their
 * approved light/dark values. The Client Showcase elements (eyebrow, quote mark,
 * evidence values, company/product, tint, border, CTA) already consume
 * var(--fh-accent), so they follow the selected accent in both modes. No
 * hard-coded light Brand Blue. No !important.
 * ====================================================================== */
.fh-proof-panel--accent-brand        { --fh-accent: var(--fh-blue); }
.fh-proof-panel--accent-red          { --fh-accent: var(--fh-red); }
.fh-proof-panel--accent-clarify      { --fh-accent: var(--fh-clarify); }
.fh-proof-panel--accent-validate     { --fh-accent: var(--fh-validate); }
.fh-proof-panel--accent-launch       { --fh-accent: var(--fh-launch); }
.fh-proof-panel--accent-scale        { --fh-accent: var(--fh-scale); }
.fh-proof-panel--accent-pre-validate { --fh-accent: var(--fh-pre-validate); }
.fh-proof-panel--accent-pre-launch   { --fh-accent: var(--fh-pre-launch); }
.fh-proof-panel--accent-pre-scale    { --fh-accent: var(--fh-pre-scale); }
.fh-proof-panel--accent-post-scale   { --fh-accent: var(--fh-post-scale); }
/* Client Showcase accent-tinted card: tint over the dark/light card surface
   (never hard-coded white as the mix base). */
.fh-proof-panel--client-showcase.fh-proof-panel--cs-bg-tint .fh-proof-panel__client {
  background: color-mix(in srgb, var(--fh-accent) 12%, var(--fh-card));
  border: 1px solid color-mix(in srgb, var(--fh-accent) 22%, var(--fh-border));
}

/* =========================================================================
 * Batch 15C.1.5 — Client Showcase accent bridge (live-cascade fix)
 * The explicit fh-proof-panel--accent-* root class sets --fh-accent. A local
 * bridge --fh-proof-accent is set on the card and consumed by every accent
 * element, so a single source controls them. To guarantee the COMPUTED colour
 * in dark mode (independent of any upstream var-resolution edge case), the
 * bridge is also pinned to the approved literal accent values per accent state
 * and mode. No !important; light mode keeps the canonical token values.
 * ====================================================================== */
.fh-proof-panel__client { --fh-proof-accent: var(--fh-accent); }

/* Light-mode literal pins (canonical FixHire values) */
.fh-proof-panel--accent-brand        .fh-proof-panel__client { --fh-proof-accent: #0F2A8C; }
.fh-proof-panel--accent-red          .fh-proof-panel__client { --fh-proof-accent: #DA0025; }
.fh-proof-panel--accent-clarify      .fh-proof-panel__client { --fh-proof-accent: #1245b4; }
.fh-proof-panel--accent-validate     .fh-proof-panel__client { --fh-proof-accent: #3f8946; }
.fh-proof-panel--accent-launch       .fh-proof-panel__client { --fh-proof-accent: #7132af; }
.fh-proof-panel--accent-scale        .fh-proof-panel__client { --fh-proof-accent: #e77414; }
.fh-proof-panel--accent-pre-validate .fh-proof-panel__client { --fh-proof-accent: #e2ab1e; }
.fh-proof-panel--accent-pre-launch   .fh-proof-panel__client { --fh-proof-accent: #1e8f9f; }
.fh-proof-panel--accent-pre-scale    .fh-proof-panel__client { --fh-proof-accent: #6443aa; }
.fh-proof-panel--accent-post-scale   .fh-proof-panel__client { --fh-proof-accent: #df6724; }

/* Dark-mode literal pins (approved lighter values) */
html.uc-dark .fh-proof-panel--accent-brand        .fh-proof-panel__client { --fh-proof-accent: #506BCD; }
html.uc-dark .fh-proof-panel--accent-red          .fh-proof-panel__client { --fh-proof-accent: #FF6D92; }
html.uc-dark .fh-proof-panel--accent-clarify      .fh-proof-panel__client { --fh-proof-accent: #6F8FE8; }
html.uc-dark .fh-proof-panel--accent-validate     .fh-proof-panel__client { --fh-proof-accent: #79C982; }
html.uc-dark .fh-proof-panel--accent-launch       .fh-proof-panel__client { --fh-proof-accent: #A77BE6; }
html.uc-dark .fh-proof-panel--accent-scale        .fh-proof-panel__client { --fh-proof-accent: #F2A35B; }
html.uc-dark .fh-proof-panel--accent-pre-validate .fh-proof-panel__client { --fh-proof-accent: #F3C95E; }
html.uc-dark .fh-proof-panel--accent-pre-launch   .fh-proof-panel__client { --fh-proof-accent: #63C6D3; }
html.uc-dark .fh-proof-panel--accent-pre-scale    .fh-proof-panel__client { --fh-proof-accent: #9B82E6; }
html.uc-dark .fh-proof-panel--accent-post-scale   .fh-proof-panel__client { --fh-proof-accent: #F29A61; }

/* Affected elements consume the bridge (outcome/evidence value, company/product,
   role, eyebrow, quote mark). Heading + body keep readable text colours. */
.fh-proof-panel--client-showcase .fh-proof-panel__cs-eyebrow,
.fh-proof-panel--client-showcase .fh-proof-panel__quote-mark,
.fh-proof-panel--client-showcase .fh-proof-panel__evidence-value,
.fh-proof-panel--client-showcase .fh-proof-panel__cs-role,
.fh-proof-panel--client-showcase .fh-proof-panel__cs-org { color: var(--fh-proof-accent); }
/* Eyebrow uses the shared lightened-accent dark rule by default; pin it to the
   bridge so it matches the selected accent exactly (higher specificity than the
   global html.uc-dark .fh-scope .fh-eyebrow rule). */
html.uc-dark .fh-scope .fh-proof-panel--client-showcase .fh-proof-panel__cs-eyebrow { color: var(--fh-proof-accent); }

/* Accent-tinted card surface + border from the bridge (dark-safe; never white base). */
.fh-proof-panel--client-showcase.fh-proof-panel--cs-bg-tint .fh-proof-panel__client {
  background: color-mix(in srgb, var(--fh-proof-accent) 12%, var(--fh-card));
  border: 1px solid color-mix(in srgb, var(--fh-proof-accent) 40%, var(--fh-border));
}

/* =========================================================================
 * Batch 15C.1.6 — Client Showcase contrast-safe text accent
 * The decorative accent (--fh-proof-accent, from 15C.1.5 per-accent literals)
 * drives the quote mark, tint and border. A separate, contrast-boosted text
 * accent (--fh-proof-accent-text) drives the accent TEXT so it passes WCAG on
 * the dark tinted card: in dark mode the text accent is a lighter mix of the
 * decorative accent with white; in light mode it equals the (already dark)
 * accent. No global FixHire token is changed; no hard-coded light Brand Blue.
 * ====================================================================== */
.fh-proof-panel__client { --fh-proof-accent-text: var(--fh-proof-accent); }
html.uc-dark .fh-proof-panel__client { --fh-proof-accent-text: color-mix(in srgb, var(--fh-proof-accent) 65%, #ffffff 35%); }

/* Contrast-sensitive accent text consumes the text accent. */
.fh-proof-panel--client-showcase .fh-proof-panel__evidence-value,
.fh-proof-panel--client-showcase .fh-proof-panel__cs-org,
.fh-proof-panel--client-showcase .fh-proof-panel__cs-role,
.fh-proof-panel--client-showcase .fh-proof-panel__cs-eyebrow { color: var(--fh-proof-accent-text); }
html.uc-dark .fh-scope .fh-proof-panel--client-showcase .fh-proof-panel__cs-eyebrow { color: var(--fh-proof-accent-text); }
/* Decorative quote mark keeps the base (stronger) accent. */
.fh-proof-panel--client-showcase .fh-proof-panel__quote-mark { color: var(--fh-proof-accent); }

/* ============================================================================
   Stage comparison table — fh-card-grid "comparison" variant (Batch 15C.3A)
   Genuine semantic <table>; accent-aware headers; dark-mode safe via tokens.
   Contained horizontal scroll on narrow viewports (never page-level overflow).
   ========================================================================== */
.fh-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.fh-comparison-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 8px;
}
.fh-comparison-wrap:focus-visible {
  outline: 2px solid var(--fh-blue);
  outline-offset: 2px;
  border-radius: 8px;
}
.fh-comparison {
  width: 100%;
  border-collapse: collapse;
  min-width: 720px;
  font-size: 15px;
  color: var(--fh-ink);
}
.fh-comparison__caption {
  text-align: left;
  color: var(--fh-muted);
  font-size: 14px;
  padding: 0 0 12px;
}
.fh-comparison th,
.fh-comparison td {
  text-align: left;
  vertical-align: top;
  padding: 14px 16px;
  border-bottom: 1px solid var(--fh-border);
}
.fh-comparison thead th { border-bottom: 2px solid var(--fh-border); }
.fh-comparison__corner { background: transparent; border-bottom-color: transparent; }
.fh-comparison__criterion {
  font-weight: 700;
  color: var(--fh-ink);
  white-space: nowrap;
}
.fh-comparison__stage { font-weight: 700; }
.fh-comparison__stage-inner {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.fh-comparison__stage .fh-icon { color: var(--fh-accent); flex: none; }
.fh-comparison__stage-name { color: var(--fh-ink); }
.fh-comparison tbody tr:last-child th,
.fh-comparison tbody tr:last-child td { border-bottom: 0; }

/* =========================================================================
 * Batch 15D.2 — Dynamic Content Feed
 * Reusable article presentation for Insights, Learning, Home and related posts.
 * ====================================================================== */
.fh-content-feed--accent-brand { --fh-accent: var(--fh-blue); }
.fh-content-feed__items {
  display: grid;
  gap: var(--fh-space-6, 24px);
  align-items: stretch;
}
.fh-content-feed__items--grid[data-fh-cols-desktop="1"] { grid-template-columns: 1fr; }
.fh-content-feed__items--grid[data-fh-cols-desktop="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fh-content-feed__items--grid[data-fh-cols-desktop="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fh-content-feed__items--grid[data-fh-cols-desktop="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fh-content-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-lg, 16px);
  background: var(--fh-card);
  box-shadow: var(--fh-shadow-sm);
}
.fh-content-card__media {
  display: block;
  position: relative;
  overflow: hidden;
  background: var(--fh-icon-bg);
}
.fh-content-card__media--16-9 { aspect-ratio: 16 / 9; }
.fh-content-card__media--16-10 { aspect-ratio: 16 / 10; }
.fh-content-card__media--4-3 { aspect-ratio: 4 / 3; }
.fh-content-card__media--1-1 { aspect-ratio: 1 / 1; }
.fh-content-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease, filter .2s ease; }
.fh-content-card:hover .fh-content-card__img { transform: scale(1.02); }
/* Shared editorial-image fallback: retain the standard featured image in light mode,
   render it in grayscale in dark mode, and restore colour on hover. */
html.uc-dark .fh-content-card__img { filter: grayscale(100%); }
html.uc-dark .fh-content-card:hover .fh-content-card__img { filter: grayscale(0%); }
.fh-content-card__placeholder {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--fh-accent) 12%, var(--fh-card));
}
.fh-content-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 12px;
  padding: 22px;
}
.fh-content-card__labels { display: flex; flex-wrap: wrap; gap: 8px; }
.fh-content-card__label {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: var(--fh-radius-pill, 999px);
  background: color-mix(in srgb, var(--fh-accent) 12%, var(--fh-card));
  color: var(--fh-accent);
  font-size: 12px;
  font-weight: 650;
  line-height: 1;
}
.fh-content-card__label--type { background: var(--fh-icon-bg); color: var(--fh-muted); }
.fh-content-card__title { margin: 0; color: var(--fh-ink); font-size: clamp(20px, 2vw, 25px); line-height: 1.25; }
.fh-content-card__title a { color: inherit; text-decoration: none; }
.fh-content-card__title a:hover { color: var(--fh-accent); }
.fh-content-card__title a:focus-visible,
.fh-content-card__cta:focus-visible,
.fh-content-feed__pagination a:focus-visible,
.fh-content-feed__pagination span:focus-visible { outline: none; box-shadow: var(--fh-focus); border-radius: var(--fh-radius-sm); }
.fh-content-card__excerpt { margin: 0; color: var(--fh-muted); line-height: 1.65; }
.fh-content-card__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: auto; color: var(--fh-muted); font-size: 13px; }
.fh-content-card__meta span + span { position: relative; }
.fh-content-card__meta span + span::before { content: ""; position: absolute; left: -9px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: currentColor; transform: translateY(-50%); opacity: .7; }
.fh-content-card__cta { align-self: flex-start; color: var(--fh-accent); font-weight: 650; text-decoration: none; }
.fh-content-card__cta:hover { text-decoration: underline; text-underline-offset: 3px; }
.fh-content-feed__empty { padding: 28px; border: 1px dashed var(--fh-border); border-radius: var(--fh-radius-lg); text-align: center; color: var(--fh-muted); }

.fh-content-feed__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 28px;
}
.fh-content-feed__filter {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid var(--fh-border);
  border-radius: 999px;
  background: var(--fh-surface);
  color: var(--fh-ink);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}
.fh-content-feed__filter:hover { border-color: var(--fh-accent); color: var(--fh-accent); }
.fh-content-feed__filter.is-active { border-color: var(--fh-accent); background: var(--fh-accent); color: var(--fh-accent-on, #fff); }
.fh-content-feed__filter:focus-visible { outline: none; box-shadow: var(--fh-focus); }

/* Featured editorial treatment. */
.fh-content-feed__items--featured { grid-template-columns: 1fr; }
.fh-content-card--featured { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); }
.fh-content-card--featured .fh-content-card__media { min-height: 100%; height: 100%; aspect-ratio: auto; }
.fh-content-card--featured .fh-content-card__img,
.fh-content-card--featured .fh-content-card__placeholder { position: absolute; inset: 0; width: 100%; height: 100%; }
.fh-content-card--featured .fh-content-card__body { justify-content: center; padding: clamp(28px, 4vw, 56px); }
.fh-content-card--featured .fh-content-card__title { font-size: clamp(28px, 4vw, 44px); }

/* Compact related-content treatment. */
.fh-content-feed__items--compact { grid-template-columns: 1fr; gap: 14px; }
.fh-content-card--compact { display: grid; grid-template-columns: 180px minmax(0, 1fr); }
.fh-content-card--compact .fh-content-card__media { min-height: 100%; aspect-ratio: auto; }
.fh-content-card--compact .fh-content-card__body { padding: 18px 20px; gap: 8px; }
.fh-content-card--compact .fh-content-card__title { font-size: 20px; }
.fh-content-card--compact .fh-content-card__excerpt { display: none; }

/* Pagination. */
.fh-content-feed__pagination { margin-top: 32px; }
.fh-content-feed__pagination .page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.fh-content-feed__pagination a,
.fh-content-feed__pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-sm);
  background: var(--fh-card);
  color: var(--fh-ink);
  text-decoration: none;
}
.fh-content-feed__pagination a:hover { border-color: var(--fh-accent); color: var(--fh-accent); }
.fh-content-feed__pagination .current { border-color: var(--fh-accent); background: var(--fh-accent); color: var(--fh-accent-on, #fff); }

@media (max-width: 1024px) {
  .fh-content-feed__items--grid[data-fh-cols-tablet="1"] { grid-template-columns: 1fr; }
  .fh-content-feed__items--grid[data-fh-cols-tablet="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-content-feed__items--grid[data-fh-cols-tablet="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fh-content-card--featured { grid-template-columns: 1fr; }
  .fh-content-card--featured .fh-content-card__media { aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
  .fh-content-feed__items--grid[data-fh-cols-mobile="1"] { grid-template-columns: 1fr; }
  .fh-content-feed__items--grid[data-fh-cols-mobile="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-content-card--compact { grid-template-columns: 110px minmax(0, 1fr); }
  .fh-content-card--compact .fh-content-card__body { padding: 14px 16px; }
  .fh-content-card--compact .fh-content-card__labels,
  .fh-content-card--compact .fh-content-card__cta { display: none; }
  .fh-content-card__meta span + span::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .fh-content-card__img { transition: none; }
  .fh-content-card:hover .fh-content-card__img { transform: none; }
}

.fh-content-feed__filters--index { margin-top: 8px; margin-bottom: 0; }

/* =========================================================================
 * Batch 15D.4A — Complete archive controls
 * Accessible filtering, sorting, search and result-count treatment.
 * ====================================================================== */
.fh-content-feed__archive-tools {
  display: grid;
  gap: 18px;
  margin: 0 0 20px;
  padding: 20px;
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-lg, 16px);
  background: var(--fh-card);
  box-shadow: var(--fh-shadow-sm);
}
.fh-content-feed__tool-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(160px, 1fr));
  gap: 14px;
  align-items: end;
}
.fh-content-feed__tool {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: var(--fh-ink);
  font-size: 13px;
  font-weight: 650;
}
.fh-content-feed__tool input,
.fh-content-feed__tool select {
  width: 100%;
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-sm, 10px);
  background: var(--fh-surface);
  color: var(--fh-ink);
  font: inherit;
  font-weight: 500;
}
.fh-content-feed__tool input::placeholder { color: var(--fh-muted); }
.fh-content-feed__tool input:focus-visible,
.fh-content-feed__tool select:focus-visible,
.fh-content-feed__apply:focus-visible,
.fh-content-feed__reset:focus-visible {
  outline: none;
  box-shadow: var(--fh-focus);
}
.fh-content-feed__tool-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.fh-content-feed__apply,
.fh-content-feed__reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 16px;
  border-radius: var(--fh-radius-sm, 10px);
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
  cursor: pointer;
}
.fh-content-feed__apply {
  border: 1px solid var(--fh-accent);
  background: var(--fh-accent);
  color: var(--fh-accent-on, #fff);
}
.fh-content-feed__apply:hover { filter: brightness(.96); }
.fh-content-feed__reset {
  border: 1px solid var(--fh-border);
  background: var(--fh-surface);
  color: var(--fh-ink);
}
.fh-content-feed__reset:hover { border-color: var(--fh-accent); color: var(--fh-accent); }
.fh-content-feed__result-count {
  margin: 0 0 18px;
  color: var(--fh-muted);
  font-size: 14px;
  line-height: 1.5;
}
@media (max-width: 1100px) {
  .fh-content-feed__tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .fh-content-feed__archive-tools { padding: 16px; }
  .fh-content-feed__tool-grid { grid-template-columns: 1fr; }
  .fh-content-feed__tool-actions { align-items: stretch; }
  .fh-content-feed__apply,
  .fh-content-feed__reset { flex: 1 1 140px; }
}


/* Batch 15D.4B — Collapsible archive tools. Native details/summary keeps the
 * controls keyboard accessible and functional without adding JavaScript. */
.fh-content-feed__archive-panel {
  margin: 0 0 20px;
  border: 1px solid var(--fh-border);
  border-radius: var(--fh-radius-lg, 16px);
  background: var(--fh-card);
  box-shadow: var(--fh-shadow-sm);
  overflow: clip;
}
.fh-content-feed__archive-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 14px 20px;
  color: var(--fh-ink);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.fh-content-feed__archive-summary::-webkit-details-marker { display: none; }
.fh-content-feed__archive-summary:hover { color: var(--fh-accent); }
.fh-content-feed__archive-summary:focus-visible {
  outline: none;
  box-shadow: inset var(--fh-focus);
}
.fh-content-feed__archive-summary-label { min-width: 0; }
.fh-content-feed__archive-active {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 3px 9px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--fh-accent) 12%, transparent);
  color: var(--fh-accent);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.fh-content-feed__archive-chevron {
  width: 10px;
  height: 10px;
  margin-left: auto;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transform-origin: center;
  transition: transform .2s ease;
}
.fh-content-feed__archive-panel[open] .fh-content-feed__archive-chevron {
  transform: rotate(225deg) translate(-1px, -1px);
}
.fh-content-feed__archive-panel .fh-content-feed__archive-tools {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--fh-border);
  border-radius: 0;
  box-shadow: none;
}
@media (max-width: 767px) {
  .fh-content-feed__archive-summary { padding: 13px 16px; }
  .fh-content-feed__archive-active { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .fh-content-feed__archive-chevron { transition: none; }
}

/* Batch 15D.5 — shared single article template
 * Batch 15D.5D (0.6.34.4) completes dark-mode coverage and adds the
 * Product Studio sidebar promotion. All article rules remain inside the
 * purpose-built single-post shell, so the theme header and other pages are untouched.
 */
.fh-article-shell {
  min-height: 100vh;
  background: var(--fh-bg, #fff);
  color: var(--fh-text, #344054);
}
.fh-article-shell,
.fh-article-shell * { box-sizing: border-box; }
.fh-article__hero {
  padding: clamp(4rem, 8vw, 7rem) 1.25rem 3rem;
  background-color: var(--fh-bg, #fff);
  background-image: linear-gradient(180deg, rgba(15, 42, 140, .08), transparent);
}
.fh-article__hero-inner,
.fh-article__layout,
.fh-article__footer {
  width: min(1180px, calc(100% - 2.5rem));
  margin-inline: auto;
}
.fh-article__breadcrumb,
.fh-article__tax-row,
.fh-article__meta {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
}
.fh-article__breadcrumb {
  margin-bottom: 1.5rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: inherit !important;
  box-shadow: none;
  color: var(--fh-muted, #667085);
  font-size: .875rem;
}
.fh-article__breadcrumb a {
  color: var(--fh-text, #344054);
  text-decoration: none;
}
.fh-article__breadcrumb a:hover { color: var(--fh-blue, #0F2A8C); }
.fh-article__section,
.fh-article__type,
.fh-article__chips a {
  display: inline-flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: .38rem .75rem;
  background: color-mix(in srgb, var(--fh-blue, #0F2A8C) 10%, transparent);
  color: var(--fh-blue, #0F2A8C);
  font-size: .82rem;
  font-weight: 650;
  text-decoration: none;
}
.fh-single-article--learning .fh-article__section {
  background: color-mix(in srgb, var(--fh-red, #DA0025) 10%, transparent);
  color: var(--fh-red, #DA0025);
}
.fh-article__hero h1 {
  max-width: 900px;
  margin: .9rem 0 1.15rem;
  color: var(--fh-ink, #101828);
  font-size: clamp(2.35rem, 5vw, 4.75rem);
  line-height: 1.04;
  letter-spacing: -.035em;
}
.fh-article__standfirst {
  max-width: 790px;
  margin: 0 0 1.5rem;
  color: var(--fh-text, #344054);
  font-size: clamp(1.08rem, 1.7vw, 1.35rem);
  line-height: 1.65;
}
.fh-article__meta {
  color: var(--fh-muted, #667085);
  font-size: .92rem;
}
.fh-article__meta span + span::before { content: '•'; margin-right: .65rem; }
.fh-article__featured-media {
  float: left;
  width: calc(50% - .85rem);
  margin: .2rem 1.7rem 1rem 0;
  border-radius: 18px;
  overflow: hidden;
}

.fh-article__share {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
}
.fh-article__share--hero {
  margin-top: 1.3rem;
}
.fh-article__share > span {
  color: var(--fh-muted, #667085);
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.fh-article__share-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid var(--fh-border, #E5EAF3);
  border-radius: 999px;
  background: var(--fh-card, #fff);
  color: var(--fh-blue, #0F2A8C);
  line-height: 0;
  text-decoration: none;
  transition: border-color .2s ease, background-color .2s ease, color .2s ease, transform .2s ease;
}
.fh-article__share-link svg {
  position: static;
  display: block !important;
  flex: 0 0 auto;
  width: 1.5rem !important;
  height: 1.5rem !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  fill: currentColor;
  overflow: visible;
  transform: none;
  transform-origin: center;
}
.fh-article__share-link::before,
.fh-article__share-link::after {
  position: absolute;
  left: 50%;
  z-index: 20;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, .25rem);
  transition: opacity .16s ease, visibility .16s ease, transform .16s ease;
}
.fh-article__share-link::before {
  content: attr(data-tooltip);
  bottom: calc(100% + .55rem);
  width: max-content;
  max-width: 12rem;
  padding: .42rem .58rem;
  border-radius: 6px;
  background: #111827;
  color: #fff;
  font-size: .72rem;
  font-weight: 650;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .18);
}
.fh-article__share-link::after {
  content: '';
  bottom: calc(100% + .23rem);
  border: .34rem solid transparent;
  border-top-color: #111827;
}
.fh-article__share-link:hover,
.fh-article__share-link:focus-visible {
  border-color: var(--fh-blue, #0F2A8C);
  background: var(--fh-blue, #0F2A8C);
  color: #fff;
  transform: translateY(-1px);
}
.fh-article__share-link:hover::before,
.fh-article__share-link:hover::after,
.fh-article__share-link:focus-visible::before,
.fh-article__share-link:focus-visible::after {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
.fh-article__share-block { padding: .55rem 0; }
.fh-article__share--aside {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: .35rem;
}
.fh-article__share--aside .fh-article__share-link {
  min-height: 0;
  border-radius: 999px;
}

.fh-article__featured-media img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: filter .2s ease;
}
.fh-article__layout {
  width: min(1180px, calc(100% - 2.5rem));
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: clamp(2rem, 5vw, 5rem);
  padding-top: clamp(1.5rem, 3vw, 3rem);
  padding-bottom: clamp(3rem, 6vw, 6rem);
}
.fh-article__content {
  display: flow-root;
  max-width: 780px;
  color: var(--fh-text, #344054);
  font-size: 1.05rem;
  line-height: 1.78;
}
.fh-article__content :where(p, ul, ol, dl, blockquote, figure, table, pre) { margin-block: 0 1.35rem; }
.fh-article__content :where(p, li, dd, dt, blockquote, cite, td, th) { color: var(--fh-text, #344054); }
.fh-article__content :where(h2, h3, h4, h5, h6) { color: var(--fh-ink, #101828); }
.fh-article__content h2 {
  margin: 2.6rem 0 1rem;
  font-size: clamp(1.7rem, 3vw, 2.45rem);
  line-height: 1.2;
}
.fh-article__content h3 { margin: 2rem 0 .75rem; font-size: 1.35rem; }
.fh-article__content a:not(.wp-element-button) {
  color: var(--fh-blue, #0F2A8C);
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
}
.fh-article__content :where(strong, b) { color: var(--fh-ink, #101828); }
.fh-article__content :where(img:not(.emoji):not(.wp-smiley)) {
  max-width: 100%;
  height: auto;
  border-radius: 14px;
  transition: filter .2s ease;
}
.fh-article__content :where(figcaption, .wp-element-caption, .blocks-gallery-caption) {
  margin-top: .55rem;
  color: var(--fh-muted, #667085);
  font-size: .82rem;
  line-height: 1.55;
}
.fh-article__content :where(blockquote, .wp-block-quote, .wp-block-pullquote) {
  border-color: var(--fh-border, #E5EAF3);
}
.fh-article__content :where(pre, code, .wp-block-code) {
  border-color: var(--fh-border, #E5EAF3);
  background: var(--fh-bg-soft, #F6FAFF);
  color: var(--fh-ink, #101828);
}
.fh-article__content :where(table, th, td) { border-color: var(--fh-border, #E5EAF3); }
.fh-article__content hr,
.fh-article__content .wp-block-separator { border-color: var(--fh-border, #E5EAF3); }

/* Sidebar: 18px horizontal padding, a clear surface, and balanced internal rhythm. */
.fh-article__aside {
  position: sticky;
  top: clamp(5rem, 8vw, 5.5rem);
  align-self: start;
  padding: .35rem 18px 1rem;
  border: 1px solid var(--fh-border, #E5EAF3);
  border-radius: 18px;
  background: var(--fh-card, #fff);
  color: var(--fh-text, #344054);
  box-shadow: var(--fh-shadow-card, 0 8px 24px rgba(15, 42, 140, .04));
}
.fh-article__aside-block {
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--fh-border, #E5EAF3);
}
.fh-article__aside-block:last-child { border-bottom: 0; }
.fh-article__aside h2,
.fh-article__studio-eyebrow {
  color: #000;
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.fh-article__aside h2 {
  margin: 0 0 .85rem;
}
.fh-article__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.fh-article__chips a:hover { border-color: currentColor; }
.fh-article__category-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
}
.fh-article__category-links a {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--fh-border, #E5EAF3);
  border-radius: 999px;
  padding: .38rem .75rem;
  background: transparent;
  color: var(--fh-blue, #0F2A8C);
  font-size: .82rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
}
.fh-article__category-links a:hover,
.fh-article__category-links a:focus-visible {
  border-color: currentColor;
  background: color-mix(in srgb, var(--fh-blue, #0F2A8C) 8%, transparent);
  color: var(--fh-blue, #0F2A8C);
  text-decoration: none;
}
.fh-article__category-links a.is-current {
  border-color: var(--fh-blue, #0F2A8C);
  background: var(--fh-blue, #0F2A8C);
  color: #fff;
  font-weight: 750;
}
.fh-article__chips a.is-current {
  border-color: var(--fh-blue, #0F2A8C);
  background: var(--fh-blue, #0F2A8C);
  color: #fff;
  font-weight: 750;
}

/* Product Studio promotion, placed immediately after Tags. */
.fh-article__studio-promo { padding-bottom: .25rem; }
.fh-article__studio-eyebrow {
  margin: 0 0 .6rem;
  color: var(--fh-blue, #0F2A8C);
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.fh-article__aside .fh-article__studio-title {
  margin: 0 0 .6rem;
  font-size: 1.15rem;
  line-height: 1.3;
  letter-spacing: -.015em;
  text-transform: none;
}
.fh-article__stage-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem;
}
.fh-article__stage-link {
  --fh-stage-accent: var(--fh-blue, #0F2A8C);
  display: grid;
  align-content: start;
  gap: .08rem;
  min-width: 0;
  padding: .58rem .62rem;
  border: 1px solid color-mix(in srgb, var(--fh-stage-accent) 35%, var(--fh-border, #E5EAF3));
  border-radius: 10px;
  background: color-mix(in srgb, var(--fh-stage-accent) 8%, var(--fh-card, #fff));
  color: var(--fh-ink, #101828);
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease, background-color .2s ease;
}
.fh-article__stage-link:hover {
  border-color: var(--fh-stage-accent);
  background: color-mix(in srgb, var(--fh-stage-accent) 13%, var(--fh-card, #fff));
  transform: translateY(-1px);
}
.fh-article__stage-link--clarify { --fh-stage-accent: var(--fh-clarify, #1245b4); }
.fh-article__stage-link--validate { --fh-stage-accent: var(--fh-validate, #3f8946); }
.fh-article__stage-link--launch { --fh-stage-accent: var(--fh-launch, #7132af); }
.fh-article__stage-link--scale { --fh-stage-accent: var(--fh-scale, #e77414); }
.fh-article__stage-name { color: var(--fh-stage-accent); font-size: .84rem; font-weight: 750; }
.fh-article__stage-outcome {
  overflow-wrap: anywhere;
  color: var(--fh-muted, #667085);
  font-size: .75rem;
  line-height: 1.3;
}
.fh-article__studio-cta { width: 100%; margin-top: .75rem; padding-inline: .7rem; text-align: center; }
.fh-article__studio-cta:hover,
.fh-article__studio-cta:focus-visible {
  border-color: var(--fh-blue, #0F2A8C);
  background: transparent;
  color: var(--fh-blue, #0F2A8C);
}

.fh-article__footer { padding-bottom: 4rem; }
.fh-article__author {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.2rem;
  padding: 2rem;
  border: 1px solid var(--fh-border, #E5EAF3);
  border-radius: 18px;
  background: var(--fh-card, #fff);
  color: var(--fh-text, #344054);
}
.fh-article__author-avatar { border-radius: 50%; }
.fh-article__eyebrow {
  margin: 0 0 .45rem;
  color: var(--fh-blue, #0F2A8C);
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.fh-article__author h2 { margin: 0; color: var(--fh-ink, #101828); }
.fh-article__author-role { margin: .3rem 0 .6rem; color: var(--fh-ink, #101828); font-weight: 650; }
.fh-article__related { padding-block: clamp(3rem, 6vw, 5rem); }
.fh-article__related > .fh-article__eyebrow { font-size: .9rem; letter-spacing: 0; text-transform: none; }
.fh-article__related h2 {
  margin: .2rem 0 1.4rem;
  color: var(--fh-ink, #101828);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
}
.fh-article__related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.fh-article-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--fh-border, #E5EAF3);
  border-radius: 16px;
  background: var(--fh-card, #fff);
  color: var(--fh-text, #344054);
}
.fh-article-card__media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; line-height: 0; }
.fh-article-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter .2s ease, transform .2s ease;
}
.fh-article-card:hover img { transform: scale(1.02); }
.fh-article-card__body { flex: 1; padding: 1.1rem; color: var(--fh-text, #344054); }
.fh-article-card__body p { color: var(--fh-text, #344054); }
.fh-article-card__meta { color: var(--fh-muted, #667085) !important; font-size: .82rem; }
.fh-article-card h3 { margin: .45rem 0; color: var(--fh-ink, #101828); font-size: 1.15rem; line-height: 1.35; }
.fh-article-card h3 a { color: inherit; text-decoration: none; }
.fh-article-card h3 a:hover { color: var(--fh-blue, #0F2A8C); }
.fh-article__cta-wrap { padding-bottom: 0; }
.fh-article__cta-wrap .fh-bottom-cta__text { max-width: 760px; }
.fh-article__cta-wrap .fh-h2 { margin: .25rem 0 0; }

/* Hide theme/SEO breadcrumb trails while retaining the purpose-built article breadcrumb. */
.fh-single-article .site-breadcrumbs:not(.fh-article__breadcrumb),
.fh-single-article .breadcrumbs:not(.fh-article__breadcrumb),
.fh-single-article .breadcrumb:not(.fh-article__breadcrumb),
.fh-single-article .ast-breadcrumbs-wrapper,
.fh-single-article .kadence-breadcrumbs,
.fh-single-article .generate-breadcrumbs,
.fh-single-article .rank-math-breadcrumb,
.fh-single-article .yoast-breadcrumb { display: none !important; }

/* Complete article dark mode. The body/page surfaces are scoped by the single-post
 * body class; text, media and components are scoped to the article shell. */
html.uc-dark body.fh-single-article,
html.uc-dark body.fh-single-article .fh-article-shell {
  background-color: #0f141d !important;
  color: #d4dae6 !important;
}
html.uc-dark .fh-article-shell {
  background: var(--fh-bg, #0f141d);
  color: var(--fh-text, #d4dae6);
}
html.uc-dark .fh-article__hero {
  background-color: var(--fh-bg, #0f141d);
  background-image: linear-gradient(180deg, rgba(80, 107, 205, .16), transparent);
}
html.uc-dark .fh-article__breadcrumb {
  background: inherit !important;
  color: var(--fh-muted, #98a2b6) !important;
}
html.uc-dark .fh-article__breadcrumb a { color: var(--fh-text, #d4dae6) !important; }
html.uc-dark .fh-article__hero h1,
html.uc-dark .fh-article__content :where(h2, h3, h4, h5, h6),
html.uc-dark .fh-article__aside h2,
html.uc-dark .fh-article__author h2,
html.uc-dark .fh-article__author-role,
html.uc-dark .fh-article__related h2,
html.uc-dark .fh-article-card h3,
html.uc-dark .fh-article-card h3 a,
html.uc-dark .fh-article__content :where(strong, b) {
  color: var(--fh-ink, #f4f6fb) !important;
}
html.uc-dark .fh-article__standfirst,
html.uc-dark .fh-article__content,
html.uc-dark .fh-article__content :where(p, li, dd, dt, blockquote, cite, td, th),
html.uc-dark .fh-article__author,
html.uc-dark .fh-article__author p,
html.uc-dark .fh-article-card__body,
html.uc-dark .fh-article-card__body p {
  color: var(--fh-text, #d4dae6) !important;
}
html.uc-dark .fh-article__meta,
html.uc-dark .fh-article__stage-outcome,
html.uc-dark .fh-article-card__meta,
html.uc-dark .fh-article__content :where(figcaption, .wp-element-caption, .blocks-gallery-caption),
html.uc-dark .fh-article__content :where(.wp-block-audio figcaption, .wp-block-embed figcaption, .wp-block-table figcaption, .wp-block-video figcaption) {
  color: var(--fh-muted, #98a2b6) !important;
}

html.uc-dark .fh-article__share > span {
  color: var(--fh-muted, #98a2b6) !important;
}
html.uc-dark .fh-article__share-link {
  border-color: var(--fh-border, #2b3342);
  background: var(--fh-card, #161c26);
  color: var(--fh-blue, #506BCD);
}
html.uc-dark .fh-article__share-link:hover,
html.uc-dark .fh-article__share-link:focus-visible {
  border-color: var(--fh-blue, #506BCD);
  background: var(--fh-blue, #506BCD);
  color: #fff;
}

html.uc-dark .fh-article__eyebrow { color: var(--fh-blue, #506BCD) !important; }
html.uc-dark .fh-article__aside h2,
html.uc-dark .fh-article__studio-eyebrow { color: var(--fh-ink, #f5f7fb) !important; }
html.uc-dark .fh-article__content a:not(.wp-element-button) { color: var(--fh-blue, #506BCD) !important; }
html.uc-dark .fh-article__category-links a:not(.is-current) {
  border-color: var(--fh-border, #374151);
  background: transparent;
  color: var(--fh-blue, #7f95e0);
}
html.uc-dark .fh-article__category-links a:hover,
html.uc-dark .fh-article__category-links a:focus-visible {
  border-color: var(--fh-blue, #506BCD);
  background: color-mix(in srgb, var(--fh-blue, #506BCD) 12%, transparent);
  color: var(--fh-blue, #7f95e0);
}
html.uc-dark .fh-article__category-links a.is-current {
  border-color: var(--fh-blue, #506BCD);
  background: var(--fh-blue, #506BCD);
  color: #fff;
}

html.uc-dark .fh-article__section,
html.uc-dark .fh-article__type,
html.uc-dark .fh-article__chips a:not(.is-current) {
  border-color: var(--fh-border, #2b3342);
  background: color-mix(in srgb, var(--fh-blue, #506BCD) 20%, var(--fh-card, #161c26));
  color: var(--fh-text, #d4dae6);
}
html.uc-dark .fh-single-article--learning .fh-article__section {
  background: color-mix(in srgb, var(--fh-red, #FF6D92) 18%, var(--fh-card, #161c26));
  color: var(--fh-red, #FF6D92);
}
html.uc-dark .fh-article__aside,
html.uc-dark .fh-article__author,
html.uc-dark .fh-article-card,
html.uc-dark .fh-article__cta-wrap .fh-bottom-cta {
  border-color: var(--fh-border, #2b3342);
  background: var(--fh-card, #161c26);
  color: var(--fh-text, #d4dae6);
}
html.uc-dark .fh-article__aside-block,
html.uc-dark .fh-article__content :where(blockquote, .wp-block-quote, .wp-block-pullquote, table, th, td),
html.uc-dark .fh-article__content hr,
html.uc-dark .fh-article__content .wp-block-separator {
  border-color: var(--fh-border, #2b3342) !important;
}
html.uc-dark .fh-article__content :where(pre, code, .wp-block-code) {
  border-color: var(--fh-border, #2b3342) !important;
  background: var(--fh-bg-soft, #1a212c) !important;
  color: var(--fh-ink, #f4f6fb) !important;
}
html.uc-dark .fh-article__content :where(.has-black-color, .has-cyan-bluish-gray-color) {
  color: var(--fh-text, #d4dae6) !important;
}
html.uc-dark .fh-article__content .has-white-background-color {
  background-color: var(--fh-card, #161c26) !important;
}
html.uc-dark .fh-article__content :where(img:not(.emoji):not(.wp-smiley)),
html.uc-dark .fh-article__featured-media img,
html.uc-dark .fh-article-card img {
  filter: grayscale(100%);
}
html.uc-dark .fh-article__content :where(figure:hover img, a:hover img, img:hover),
html.uc-dark .fh-article__featured-media:hover img,
html.uc-dark .fh-article-card:hover img {
  filter: grayscale(0%);
}
html.uc-dark .fh-article__stage-link {
  border-color: color-mix(in srgb, var(--fh-stage-accent) 38%, var(--fh-border, #2b3342));
  background: color-mix(in srgb, var(--fh-stage-accent) 12%, var(--fh-card, #161c26));
  color: var(--fh-ink, #f4f6fb);
}
html.uc-dark .fh-article__stage-link:hover {
  border-color: var(--fh-stage-accent);
  background: color-mix(in srgb, var(--fh-stage-accent) 18%, var(--fh-card, #161c26));
}

/* Compatibility selectors retained for non-Lexend previews. */
[data-theme="dark"] .fh-article-shell,
.dark-mode .fh-article-shell { background: #0f141d; color: #d4dae6; }
[data-theme="dark"] .fh-article__content img,
[data-theme="dark"] .fh-article__featured-media img,
[data-theme="dark"] .fh-article-card img,
.dark-mode .fh-article__content img,
.dark-mode .fh-article__featured-media img,
.dark-mode .fh-article-card img { filter: grayscale(100%); }

@media (max-width: 900px) {
  .fh-article__featured-media {
    float: none;
    width: 100%;
    margin: 0 0 1.75rem;
  }
  .fh-article__layout { grid-template-columns: 1fr; }
  .fh-article__aside { position: static; }
  .fh-article__related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 380px) {
  .fh-article__stage-list { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .fh-article__hero-inner,
  .fh-article__featured-media,
  .fh-article__layout,
  .fh-article__footer { width: min(100% - 1.5rem, 1180px); }
  .fh-article__aside { padding-inline: 16px; }
  .fh-article__related-grid { grid-template-columns: 1fr; }
  .fh-article__author { grid-template-columns: 1fr; }
  .fh-article__meta span + span::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .fh-article-card__media img,
  .fh-article__content img,
  .fh-article__featured-media img,
  .fh-article__stage-link { transition: none; }
}

/* Batch 15D.5T: responsive single-article title sizing. */
.fh-article__hero-inner > h1 {
  font-size: clamp(34px, 5vw, 60px);
}

/* Batch 15G.1: Full legal document pages with visibility-controlled sections. */
.fh-legal-doc .fh-section {
  padding-top: clamp(2.5rem, 5vw, 5rem);
}
.fh-legal-doc__notice {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: 1rem 1.125rem;
  border: 1px solid color-mix(in srgb, var(--fh-accent, #0F2A8C) 18%, var(--fh-border, #E5E7EB));
  border-radius: 16px;
  background: color-mix(in srgb, var(--fh-accent, #0F2A8C) 6%, var(--fh-card, #fff));
  color: var(--fh-text, #0E1420);
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}
.fh-legal-doc__notice strong {
  flex: 0 0 auto;
  color: var(--fh-accent, #0F2A8C);
}
.fh-legal-doc__toc {
  border: 1px solid var(--fh-border, #E5E7EB);
  border-radius: 18px;
  background: var(--fh-card, #fff);
  padding: clamp(1rem, 2vw, 1.35rem);
  box-shadow: var(--fh-shadow-sm, 0 8px 24px rgba(15, 42, 140, 0.06));
  margin-bottom: clamp(1.5rem, 4vw, 3rem);
}
.fh-legal-doc__toc-title {
  display: block;
  font-weight: 750;
  font-size: .86rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fh-muted, #64748B);
  margin-bottom: .85rem;
}
.fh-legal-doc__toc-links {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}
.fh-legal-doc__toc-links a {
  display: inline-flex;
  align-items: center;
  padding: .48rem .7rem;
  border: 1px solid var(--fh-border, #E5E7EB);
  border-radius: 999px;
  background: color-mix(in srgb, var(--fh-accent, #0F2A8C) 5%, var(--fh-card, #fff));
  color: var(--fh-text, #0E1420);
  font-size: .84rem;
  line-height: 1.25;
  text-decoration: none;
}
.fh-legal-doc__toc-links a:hover,
.fh-legal-doc__toc-links a:focus-visible {
  border-color: var(--fh-accent, #0F2A8C);
  color: var(--fh-accent, #0F2A8C);
}
.fh-legal-doc__content {
  display: grid;
  gap: clamp(1.25rem, 3vw, 2rem);
}
.fh-legal-doc__section {
  border: 1px solid var(--fh-border, #E5E7EB);
  border-radius: 18px;
  background: var(--fh-card, #fff);
  padding: clamp(1.25rem, 3vw, 2rem);
  scroll-margin-top: 6rem;
}
.fh-legal-doc__section-title {
  margin: 0 0 1rem;
  color: var(--fh-brand-blue, #0F2A8C);
  font-size: clamp(1.2rem, 2vw, 1.7rem);
  line-height: 1.25;
}
.fh-legal-doc__section-body {
  color: var(--fh-text, #0E1420);
  font-size: .98rem;
  line-height: 1.72;
}
.fh-legal-doc__section-body p,
.fh-legal-doc__section-body ul,
.fh-legal-doc__section-body ol,
.fh-legal-doc__section-body blockquote,
.fh-legal-doc__section-body table {
  margin-top: 0;
  margin-bottom: 1rem;
}
.fh-legal-doc__section-body h3,
.fh-legal-doc__section-body h4,
.fh-legal-doc__section-body h5,
.fh-legal-doc__section-body h6 {
  margin: 1.25rem 0 .6rem;
  color: var(--fh-text, #0E1420);
  line-height: 1.3;
}
.fh-legal-doc__section-body h3 { font-size: 1.08rem; }
.fh-legal-doc__section-body h4 { font-size: 1rem; }
.fh-legal-doc__section-body ul,
.fh-legal-doc__section-body ol {
  padding-left: 1.25rem;
}
.fh-legal-doc__section-body li + li {
  margin-top: .38rem;
}
.fh-legal-doc__section-body blockquote {
  border-left: 4px solid var(--fh-accent, #0F2A8C);
  padding: .9rem 1rem;
  background: color-mix(in srgb, var(--fh-accent, #0F2A8C) 6%, var(--fh-card, #fff));
  border-radius: 0 12px 12px 0;
}
.fh-legal-doc__table-wrap {
  overflow-x: auto;
  margin: 1rem 0;
}
.fh-legal-doc__section-body table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
  font-size: .9rem;
}
.fh-legal-doc__section-body th,
.fh-legal-doc__section-body td {
  border: 1px solid var(--fh-border, #E5E7EB);
  padding: .7rem .75rem;
  text-align: left;
  vertical-align: top;
}
.fh-legal-doc__section-body th {
  background: color-mix(in srgb, var(--fh-accent, #0F2A8C) 7%, var(--fh-card, #fff));
  color: var(--fh-text, #0E1420);
}
.fh-legal-doc__section-body code {
  padding: .12rem .32rem;
  border-radius: 6px;
  background: color-mix(in srgb, var(--fh-accent, #0F2A8C) 9%, var(--fh-card, #fff));
  font-size: .9em;
}
.fh-theme-dark .fh-legal-doc__notice,
.fh-theme-dark .fh-legal-doc__toc,
.fh-theme-dark .fh-legal-doc__section {
  background: var(--fh-card, #111827);
  border-color: var(--fh-border, #334155);
}
.fh-theme-dark .fh-legal-doc__section-title {
  color: var(--fh-accent, #8BA4FF);
}
.fh-theme-dark .fh-legal-doc__section-body,
.fh-theme-dark .fh-legal-doc__section-body h3,
.fh-theme-dark .fh-legal-doc__section-body h4,
.fh-theme-dark .fh-legal-doc__section-body h5,
.fh-theme-dark .fh-legal-doc__section-body h6,
.fh-theme-dark .fh-legal-doc__section-body th {
  color: var(--fh-text, #E5E7EB);
}
@media (max-width: 767px) {
  .fh-legal-doc__notice { flex-direction: column; }
  .fh-legal-doc__toc-links { display: grid; grid-template-columns: 1fr; }
}

/* Batch 15G.3: practical, responsive and print-friendly legal pages. */
.fh-hero--legal {
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.fh-hero--legal .fh-hero__text { max-width: 720px; }
.fh-hero--legal .fh-hero__title--h1,
.fh-hero--legal .fh-h1 {
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.14;
  margin-bottom: .75rem;
  color: #000;
}
.fh-hero--legal .fh-eyebrow-numbered,
.fh-hero--legal .fh-eyebrow,
.fh-hero--legal .fh-lead,
.fh-hero--legal .fh-body,
.fh-hero--legal .fh-hero__note {
  color: #000;
}
.fh-hero--legal .fh-actions { margin-top: 1rem; }
.fh-hero--legal .fh-hero__note { margin-top: .9rem; }
.fh-hero--legal .fh-hero__media .fh-img {
  width: 100%;
  max-height: 260px;
  object-fit: cover;
}
.fh-hero--legal .fh-hero__media .fh-trust-shield,
.fh-hero--legal .fh-hero__media svg {
  max-height: 260px;
}
.fh-hero--legal .fh-hero__media .fh-legal-field {
  max-height: 260px;
}

.fh-legal-field {
  position: relative;
  width: min(100%, 280px);
  aspect-ratio: 1 / 1;
  margin-inline: auto;
}
.fh-legal-field__orbit {
  position: absolute;
  inset: 14px;
  border: 2px dashed #E5EAF3;
  border-radius: 999px;
}
.fh-legal-field__core,
.fh-legal-field__node {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.fh-legal-field__core {
  inset: 50%;
  width: 138px;
  height: 138px;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--fh-accent, var(--fh-blue, #0F2A8C)) 92%, #ffffff 8%) 0%, var(--fh-accent, var(--fh-blue, #0F2A8C)) 100%);
  color: #fff;
  box-shadow: 0 16px 40px rgba(15, 42, 140, 0.16);
}
.fh-legal-field__core .fh-icon {
  stroke: currentColor;
  stroke-width: 1px !important;
}
.fh-legal-field__node {
  width: 50px;
  height: 50px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--fh-accent, var(--fh-blue, #0F2A8C)) 10%, #ffffff 90%);
  border: 2px solid color-mix(in srgb, var(--fh-accent, var(--fh-blue, #0F2A8C)) 22%, #ffffff 78%);
  color: var(--fh-accent, var(--fh-blue, #0F2A8C));
}
.fh-legal-field__node .fh-icon {
  stroke: currentColor;
  stroke-width: 1px !important;
}
.fh-legal-field__node--top {
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
}
.fh-legal-field__node--right {
  top: 50%;
  right: 0;
  transform: translate(0, -50%);
}
.fh-legal-field__node--bottom {
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 0);
}
.fh-legal-field__node--left {
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
}

html.uc-dark .fh-scope .fh-legal-field__orbit,
body.uc-dark .fh-scope .fh-legal-field__orbit,
[data-theme="dark"] .fh-scope .fh-legal-field__orbit,
.dark-mode .fh-scope .fh-legal-field__orbit,
.fh-theme-dark .fh-scope .fh-legal-field__orbit {
  border-color: rgba(152, 174, 214, 0.28);
}
html.uc-dark .fh-scope .fh-legal-field__node,
body.uc-dark .fh-scope .fh-legal-field__node,
[data-theme="dark"] .fh-scope .fh-legal-field__node,
.dark-mode .fh-scope .fh-legal-field__node,
.fh-theme-dark .fh-scope .fh-legal-field__node {
  background: color-mix(in srgb, var(--fh-accent, var(--fh-blue, #506BCD)) 18%, transparent 82%) !important;
  border-color: color-mix(in srgb, var(--fh-accent, var(--fh-blue, #506BCD)) 42%, transparent 58%) !important;
  color: color-mix(in srgb, var(--fh-accent, var(--fh-blue, #506BCD)) 72%, #ffffff 28%) !important;
}
html.uc-dark .fh-scope .fh-legal-field__core,
body.uc-dark .fh-scope .fh-legal-field__core,
[data-theme="dark"] .fh-scope .fh-legal-field__core,
.dark-mode .fh-scope .fh-legal-field__core,
.fh-theme-dark .fh-scope .fh-legal-field__core {
  background: linear-gradient(180deg, color-mix(in srgb, var(--fh-accent, var(--fh-blue, #506BCD)) 78%, #ffffff 22%) 0%, var(--fh-accent, var(--fh-blue, #506BCD)) 100%) !important;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.22);
}
.fh-legal-doc .fh-section,
.fh-legal-doc__section-wrap {
  padding-top: clamp(2rem, 4vw, 3rem);
  padding-bottom: clamp(2.25rem, 5vw, 4rem);
  background: #fff;
}
.fh-legal-doc,
.fh-legal-doc *:not(.fh-btn):not(.fh-icon):not(svg):not(path) {
  color: #000;
}
.fh-legal-doc__container { max-width: 1180px; }
.fh-legal-doc__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: start;
  padding: clamp(1.1rem, 2.2vw, 1.5rem);
  border: 1px solid #E5EAF3;
  border-radius: 16px;
  background: #fff;
  margin-bottom: 1rem;
}
.fh-legal-doc__kicker {
  margin: 0 0 .35rem;
  font-size: .78rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.fh-legal-doc__title {
  margin: 0 0 .6rem;
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.22;
  font-weight: 750;
}
.fh-legal-doc__intro {
  margin: 0;
  max-width: 760px;
  font-size: .98rem;
  line-height: 1.7;
}
.fh-legal-doc__meta {
  display: grid;
  gap: .35rem;
  min-width: 210px;
  font-size: .86rem;
  line-height: 1.5;
  font-weight: 600;
}
.fh-legal-doc__toolbar {
  display: flex;
  justify-content: flex-end;
  margin: .75rem 0 1rem;
}
.fh-legal-doc__print {
  appearance: none;
  border: 1px solid #111;
  border-radius: 999px;
  background: #fff;
  color: #000;
  cursor: pointer;
  font: inherit;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1;
  padding: .72rem 1rem;
}
.fh-legal-doc__print:hover,
.fh-legal-doc__print:focus-visible {
  background: #000;
  color: #fff;
}
.fh-legal-doc__notice {
  display: flex;
  gap: .75rem;
  padding: .9rem 1rem;
  border: 1px solid #D0D5DD;
  border-radius: 14px;
  background: #fff;
  margin-bottom: 1rem;
}
.fh-legal-doc__toc {
  border: 1px solid #E5EAF3;
  border-radius: 16px;
  background: #fff;
  padding: clamp(1rem, 2vw, 1.25rem);
  box-shadow: none;
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}
.fh-legal-doc__toc-title {
  display: block;
  font-weight: 750;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: .8rem;
}
.fh-legal-doc__toc-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: .5rem;
}
.fh-legal-doc__toc-links a {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: .55rem .7rem;
  border: 1px solid #E5EAF3;
  border-radius: 10px;
  background: #fff;
  color: #000;
  font-size: .86rem;
  line-height: 1.32;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.fh-legal-doc__toc-links a:hover,
.fh-legal-doc__toc-links a:focus-visible { border-color: #000; color: #000; }
.fh-legal-doc__content { display: grid; gap: 1rem; }
.fh-legal-doc__card {
  border: 1px solid #E5EAF3;
  border-radius: 16px;
  background: #fff;
  padding: clamp(1.05rem, 2.3vw, 1.55rem);
  scroll-margin-top: 6rem;
  break-inside: avoid;
}
.fh-legal-doc__section-title {
  margin: 0 0 .8rem;
  font-size: clamp(1.04rem, 1.45vw, 1.32rem);
  line-height: 1.32;
  font-weight: 750;
  color: #000;
}
.fh-legal-doc__section-body {
  color: #000;
  font-size: .95rem;
  line-height: 1.72;
  overflow-wrap: anywhere;
}
.fh-legal-doc__section-body p,
.fh-legal-doc__section-body ul,
.fh-legal-doc__section-body ol,
.fh-legal-doc__section-body blockquote,
.fh-legal-doc__section-body table { margin-top: 0; margin-bottom: .85rem; }
.fh-legal-doc__section-body p:last-child,
.fh-legal-doc__section-body ul:last-child,
.fh-legal-doc__section-body ol:last-child { margin-bottom: 0; }
.fh-legal-doc__section-body h3,
.fh-legal-doc__section-body h4,
.fh-legal-doc__section-body h5,
.fh-legal-doc__section-body h6 { margin: 1rem 0 .45rem; color: #000; line-height: 1.35; }
.fh-legal-doc__section-body h3 { font-size: 1rem; font-weight: 750; }
.fh-legal-doc__section-body h4 { font-size: .96rem; font-weight: 750; }
.fh-legal-doc__section-body ul,
.fh-legal-doc__section-body ol { padding-left: 1.15rem; }
.fh-legal-doc__section-body li + li { margin-top: .3rem; }
.fh-legal-doc__section-body blockquote {
  border-left: 3px solid #000;
  padding: .75rem .9rem;
  background: #fff;
  border-radius: 0 10px 10px 0;
}
.fh-legal-doc__table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: .85rem 0; }
.fh-legal-doc__section-body table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .88rem; }
.fh-legal-doc__section-body th,
.fh-legal-doc__section-body td { border: 1px solid #E5EAF3; padding: .65rem .7rem; text-align: left; vertical-align: top; }
.fh-legal-doc__section-body th { background: #fff; color: #000; }
.fh-legal-doc__section-body code {
  padding: .1rem .26rem;
  border: 1px solid #E5EAF3;
  border-radius: 6px;
  background: #fff;
  color: #000;
  font-size: .9em;
}
@media (max-width: 899px) {
  .fh-hero--legal { grid-template-columns: 1fr; }
  .fh-legal-doc__header { grid-template-columns: 1fr; }
  .fh-legal-doc__meta { min-width: 0; }
}
@media (max-width: 767px) {
  .fh-legal-doc__toolbar { justify-content: stretch; }
  .fh-legal-doc__print { width: 100%; }
  .fh-legal-doc__toc-links { grid-template-columns: 1fr; }
  .fh-legal-doc__section-body { font-size: .94rem; line-height: 1.74; }
  .fh-legal-doc__card { border-radius: 14px; }
}
@media print {
  body { background: #fff !important; }
  .fh-scope, .fh-scope * { color: #000 !important; box-shadow: none !important; text-shadow: none !important; }
  .fh-actions,
  .fh-cta-band,
  .fh-hero__media,
  .fh-legal-doc__toolbar,
  .fh-legal-doc__toc,
  .fh-legal-doc__notice,
  .elementor-location-header,
  .elementor-location-footer,
  header,
  footer { display: none !important; }
  .fh-section,
  .fh-section-compact,
  .fh-legal-doc .fh-section,
  .fh-legal-doc__section-wrap { padding: 0 !important; background: #fff !important; }
  .fh-container,
  .fh-legal-doc__container { max-width: none !important; padding: 0 !important; }
  .fh-hero,
  .fh-legal-doc__header,
  .fh-legal-doc__content { display: block !important; }
  .fh-legal-doc__header,
  .fh-legal-doc__card {
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 0 14px !important;
    margin: 0 0 16px !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .fh-legal-doc__section-body { font-size: 10.5pt !important; line-height: 1.45 !important; }
  .fh-legal-doc__section-title { font-size: 14pt !important; margin-bottom: 6pt !important; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 9pt; }
}

/* Batch 15G.4: legal page print/editability refinements. */
.fh-section-legal-hero {
  background: #fff !important;
}
.fh-legal-doc__print:hover,
.fh-legal-doc__print:focus-visible {
  background: #fff !important;
  color: #000 !important;
  border-color: #000 !important;
  box-shadow: inset 0 0 0 1px #000;
}
.fh-legal-doc__print-scope {
  display: grid;
  gap: 1rem;
}
@media print {
  @page { margin: 16mm; }
  html, body { background: #fff !important; }
  body * {
    visibility: hidden !important;
  }
  .fh-legal-doc__print-scope,
  .fh-legal-doc__print-scope * {
    visibility: visible !important;
  }
  .fh-legal-doc__print-scope {
    position: absolute !important;
    inset: 0 auto auto 0 !important;
    width: 100% !important;
    display: block !important;
    color: #000 !important;
    background: #fff !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__card {
    display: block !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 0 14px !important;
    margin: 0 0 16px !important;
    background: #fff !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-title {
    font-size: 14pt !important;
    line-height: 1.25 !important;
    margin: 0 0 6pt !important;
    color: #000 !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body {
    font-size: 10.5pt !important;
    line-height: 1.45 !important;
    color: #000 !important;
  }
  .fh-legal-doc__header,
  .fh-legal-doc__toolbar,
  .fh-legal-doc__toc,
  .fh-legal-doc__notice,
  .fh-hero,
  .fh-cta-band,
  .elementor-location-header,
  .elementor-location-footer,
  header,
  footer {
    display: none !important;
  }
  .fh-legal-doc__print-scope a[href]::after {
    content: "" !important;
  }
}

/* Batch 15G.5: legal page sidebar, print, dark-mode and editability corrections. */
.fh-legal-doc__layout {
  display: grid;
  grid-template-columns: minmax(210px, 280px) minmax(0, 1fr);
  gap: clamp(1rem, 2.2vw, 1.5rem);
  align-items: start;
}
.fh-legal-doc__sidebar {
  position: sticky;
  top: clamp(5rem, 8vw, 5.5rem);
  max-height: calc(100vh - 6.5rem);
  overflow: auto;
  padding: .9rem;
  border: 1px solid #E5EAF3;
  border-radius: 16px;
  background: #fff;
}
.fh-legal-doc__sidebar .fh-legal-doc__toc {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.fh-legal-doc__sidebar .fh-legal-doc__toc-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin: 0;
  cursor: pointer;
  list-style: none;
  color: #000;
}
.fh-legal-doc__sidebar .fh-legal-doc__toc-title::-webkit-details-marker { display: none; }
.fh-legal-doc__sidebar .fh-legal-doc__toc-title::after {
  content: "⌄";
  font-size: .9rem;
  line-height: 1;
  transform: rotate(0deg);
  transition: transform .18s ease;
}
.fh-legal-doc__sidebar .fh-legal-doc__toc:not([open]) .fh-legal-doc__toc-title::after {
  transform: rotate(-90deg);
}
.fh-legal-doc__sidebar .fh-legal-doc__toc-links {
  display: grid;
  grid-template-columns: 1fr;
  gap: .35rem;
  margin-top: .75rem;
}
.fh-legal-doc__sidebar .fh-legal-doc__toc-links a {
  padding: .5rem .55rem;
  border-color: #E5EAF3;
  border-radius: 10px;
  background: #fff;
  color: #000;
  font-size: .82rem;
}
.fh-legal-doc__sidebar .fh-legal-doc__toc-links a:hover,
.fh-legal-doc__sidebar .fh-legal-doc__toc-links a:focus-visible {
  border-color: #000;
  background: #fff;
  color: #000;
  text-decoration: none;
}
.fh-legal-doc__sidebar-tools {
  margin-top: .85rem;
  padding-top: .85rem;
  border-top: 1px solid #E5EAF3;
}
.fh-legal-doc .fh-legal-doc__print {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border: 1px solid #111;
  border-radius: 999px;
  background: #fff;
  color: #000;
  min-height: 42px;
  padding: .72rem 1rem;
}
.fh-legal-doc .fh-legal-doc__print:hover,
.fh-legal-doc .fh-legal-doc__print:focus-visible,
.fh-legal-doc__sidebar .fh-legal-doc__print:hover,
.fh-legal-doc__sidebar .fh-legal-doc__print:focus-visible {
  background: #fff !important;
  color: #000 !important;
  border-color: #000 !important;
  box-shadow: inset 0 0 0 1px #000;
}
.fh-theme-dark .fh-hero--legal,
.fh-theme-dark .fh-section-legal-hero,
.fh-theme-dark .fh-legal-doc .fh-section,
.fh-theme-dark .fh-legal-doc__section-wrap {
  background: var(--fh-bg, #0B1220) !important;
}
.fh-theme-dark .fh-hero--legal .fh-hero__title--h1,
.fh-theme-dark .fh-hero--legal .fh-h1,
.fh-theme-dark .fh-hero--legal .fh-eyebrow-numbered,
.fh-theme-dark .fh-hero--legal .fh-eyebrow,
.fh-theme-dark .fh-hero--legal .fh-lead,
.fh-theme-dark .fh-hero--legal .fh-body,
.fh-theme-dark .fh-hero--legal .fh-hero__note {
  color: var(--fh-text, #E5EAF3) !important;
}
.fh-theme-dark .fh-legal-doc,
.fh-theme-dark .fh-legal-doc *:not(.fh-btn):not(.fh-icon):not(svg):not(path) {
  color: var(--fh-text, #E5EAF3) !important;
}
.fh-theme-dark .fh-legal-doc__header,
.fh-theme-dark .fh-legal-doc__sidebar,
.fh-theme-dark .fh-legal-doc__notice,
.fh-theme-dark .fh-legal-doc__card,
.fh-theme-dark .fh-legal-doc__sidebar .fh-legal-doc__toc-links a {
  background: var(--fh-card, #111827) !important;
  border-color: var(--fh-border, #334155) !important;
}
.fh-theme-dark .fh-legal-doc__section-title,
.fh-theme-dark .fh-legal-doc__title,
.fh-theme-dark .fh-legal-doc__kicker,
.fh-theme-dark .fh-legal-doc__sidebar .fh-legal-doc__toc-title,
.fh-theme-dark .fh-legal-doc__section-body h3,
.fh-theme-dark .fh-legal-doc__section-body h4,
.fh-theme-dark .fh-legal-doc__section-body h5,
.fh-theme-dark .fh-legal-doc__section-body h6,
.fh-theme-dark .fh-legal-doc__section-body th {
  color: var(--fh-text, #E5EAF3) !important;
}
.fh-theme-dark .fh-legal-doc__section-body blockquote,
.fh-theme-dark .fh-legal-doc__section-body th,
.fh-theme-dark .fh-legal-doc__section-body code {
  background: var(--fh-card, #111827) !important;
  border-color: var(--fh-border, #334155) !important;
}
.fh-theme-dark .fh-legal-doc__section-body td,
.fh-theme-dark .fh-legal-doc__section-body th {
  border-color: var(--fh-border, #334155) !important;
}
.fh-theme-dark .fh-legal-doc .fh-legal-doc__print {
  background: var(--fh-card, #111827) !important;
  color: var(--fh-text, #E5EAF3) !important;
  border-color: var(--fh-border, #334155) !important;
}
.fh-theme-dark .fh-legal-doc .fh-legal-doc__print:hover,
.fh-theme-dark .fh-legal-doc .fh-legal-doc__print:focus-visible {
  background: var(--fh-card, #111827) !important;
  color: var(--fh-text, #E5EAF3) !important;
  border-color: var(--fh-text, #E5EAF3) !important;
  box-shadow: inset 0 0 0 1px var(--fh-text, #E5EAF3);
}
@media (max-width: 899px) {
  .fh-legal-doc__layout { grid-template-columns: 1fr; }
  .fh-legal-doc__sidebar { position: static; max-height: none; }
}
@media print {
  @page { margin: 12mm 14mm; }
  html, body {
    width: auto !important;
    min-height: 0 !important;
    background: #fff !important;
  }
  body * {
    visibility: hidden !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  .elementor-section:not(:has(.fh-legal-doc)),
  .elementor-top-section:not(:has(.fh-legal-doc)),
  .e-con:not(:has(.fh-legal-doc)),
  .fh-hero,
  .fh-cta-band,
  .fh-legal-doc__header,
  .fh-legal-doc__sidebar,
  .fh-legal-doc__notice,
  .elementor-location-header,
  .elementor-location-footer,
  header,
  footer {
    display: none !important;
  }
  .fh-legal-doc,
  .fh-legal-doc__section-wrap,
  .fh-legal-doc__container,
  .fh-legal-doc__layout,
  .fh-legal-doc__print-scope,
  .fh-legal-doc__print-scope * {
    visibility: visible !important;
  }
  .fh-legal-doc {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #000 !important;
    background: #fff !important;
  }
  .fh-legal-doc__section-wrap,
  .fh-legal-doc .fh-section,
  .fh-legal-doc__container,
  .fh-legal-doc__layout,
  .fh-legal-doc__print-scope {
    display: block !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    color: #000 !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__card {
    display: block !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 0 9pt !important;
    margin: 0 0 10pt !important;
    background: #fff !important;
    color: #000 !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-title {
    color: #000 !important;
    font-size: 13pt !important;
    line-height: 1.22 !important;
    margin: 0 0 5pt !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body * {
    color: #000 !important;
    font-size: 10pt !important;
    line-height: 1.38 !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body p,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body ul,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body ol,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body blockquote,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body table {
    margin-top: 0 !important;
    margin-bottom: 6pt !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body ul,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body ol {
    padding-left: 14pt !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body table {
    min-width: 0 !important;
    width: 100% !important;
    font-size: 9pt !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body th,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body td {
    padding: 4pt 5pt !important;
    border: 1px solid #ccc !important;
  }
  .fh-legal-doc__print-scope a[href]::after { content: "" !important; }
}

/* Batch 15G.6: legal sidebar orientation, collapse, dark-mode and print refinements. */
.fh-legal-doc__layout {
  display: grid;
  gap: clamp(1rem, 2.4vw, 1.5rem);
  align-items: start;
}
.fh-legal-doc--sidebar-right .fh-legal-doc__layout {
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
  grid-template-areas: "content sidebar";
}
.fh-legal-doc--sidebar-left .fh-legal-doc__layout {
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
  grid-template-areas: "sidebar content";
}
.fh-legal-doc__content { grid-area: content; }
.fh-legal-doc__sidebar {
  grid-area: sidebar;
  position: sticky;
  top: clamp(5rem, 8vw, 5.5rem);
  max-height: calc(100vh - 6.5rem);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  padding: .85rem;
  border: 1px solid #E5EAF3;
  border-radius: 16px;
  background: #fff;
}
.fh-legal-doc__sidebar-top { display: flex; justify-content: flex-end; margin-bottom: .7rem; }
.fh-legal-doc__sidebar-toggle {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 36px;
  border: 1px solid #E5EAF3;
  border-radius: 999px;
  background: #fff;
  color: #000;
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  padding: .45rem .68rem;
}
.fh-legal-doc__sidebar-toggle:hover,
.fh-legal-doc__sidebar-toggle:focus-visible {
  background: #fff;
  color: #000;
  border-color: #000;
  outline: 0;
}
.fh-legal-doc__sidebar-toggle-icon { font-size: 1.15rem; line-height: 1; }
.fh-legal-doc--sidebar-left .fh-legal-doc__sidebar-toggle-icon { transform: rotate(180deg); }
.fh-legal-doc__sidebar-scroll {
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: .15rem;
}
.fh-legal-doc__sidebar .fh-legal-doc__toc-links a.is-active {
  border-color: #000;
  box-shadow: inset 3px 0 0 #000;
  font-weight: 750;
}
.fh-legal-doc__sidebar-tools {
  flex: none;
  margin-top: .85rem;
  padding-top: .85rem;
  border-top: 1px solid #E5EAF3;
  background: inherit;
}
.fh-legal-doc .fh-legal-doc__print {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border: 1px solid #111;
  border-radius: 999px;
  background: #fff;
  color: #000;
  min-height: 42px;
  padding: .72rem 1rem;
  text-decoration: none;
}
.fh-legal-doc .fh-legal-doc__print:hover,
.fh-legal-doc .fh-legal-doc__print:focus-visible {
  background: #fff !important;
  color: #000 !important;
  border-color: #000 !important;
  box-shadow: inset 0 0 0 1px #000;
  outline: 0;
}
.fh-legal-doc__print-icon { flex: 0 0 auto; }
.fh-legal-doc__header {
  display: block;
}
.fh-legal-doc__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .65rem;
  margin-top: .85rem;
  min-width: 0;
}
.fh-legal-doc__meta span {
  display: inline-flex;
  align-items: center;
  border: 1px solid #E5EAF3;
  border-radius: 999px;
  padding: .32rem .58rem;
  background: #fff;
}
.fh-legal-doc.is-sidebar-collapsed.fh-legal-doc--sidebar-right .fh-legal-doc__layout {
  grid-template-columns: minmax(0, 1fr) 58px;
}
.fh-legal-doc.is-sidebar-collapsed.fh-legal-doc--sidebar-left .fh-legal-doc__layout {
  grid-template-columns: 58px minmax(0, 1fr);
}
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar {
  padding: .65rem .5rem;
}
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-top { justify-content: center; }
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-toggle {
  width: 38px;
  height: 38px;
  padding: 0;
}
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-toggle-icon { transform: rotate(180deg); }
.fh-legal-doc.is-sidebar-collapsed.fh-legal-doc--sidebar-left .fh-legal-doc__sidebar-toggle-icon { transform: rotate(0deg); }
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-toggle-text,
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__toc,
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__print-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-scroll {
  display: none;
}
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-tools {
  margin-top: auto;
  padding-top: 0;
  border-top: 0;
}
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__print {
  width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
}
[data-theme="dark"] .fh-hero--legal,
[data-theme="dark"] .fh-section-legal-hero,
[data-theme="dark"] .fh-legal-doc .fh-section,
[data-theme="dark"] .fh-legal-doc__section-wrap,
.dark-mode .fh-hero--legal,
.dark-mode .fh-section-legal-hero,
.dark-mode .fh-legal-doc .fh-section,
.dark-mode .fh-legal-doc__section-wrap,
.fh-theme-dark .fh-hero--legal,
.fh-theme-dark .fh-section-legal-hero,
.fh-theme-dark .fh-legal-doc .fh-section,
.fh-theme-dark .fh-legal-doc__section-wrap {
  background: #0f141d !important;
}
[data-theme="dark"] .fh-legal-doc,
[data-theme="dark"] .fh-legal-doc *:not(svg):not(path),
.dark-mode .fh-legal-doc,
.dark-mode .fh-legal-doc *:not(svg):not(path),
.fh-theme-dark .fh-legal-doc,
.fh-theme-dark .fh-legal-doc *:not(svg):not(path) {
  color: #d4dae6 !important;
}
[data-theme="dark"] .fh-legal-doc__header,
[data-theme="dark"] .fh-legal-doc__sidebar,
[data-theme="dark"] .fh-legal-doc__notice,
[data-theme="dark"] .fh-legal-doc__card,
[data-theme="dark"] .fh-legal-doc__meta span,
[data-theme="dark"] .fh-legal-doc__sidebar .fh-legal-doc__toc-links a,
[data-theme="dark"] .fh-legal-doc__section-body blockquote,
[data-theme="dark"] .fh-legal-doc__section-body th,
[data-theme="dark"] .fh-legal-doc__section-body code,
.dark-mode .fh-legal-doc__header,
.dark-mode .fh-legal-doc__sidebar,
.dark-mode .fh-legal-doc__notice,
.dark-mode .fh-legal-doc__card,
.dark-mode .fh-legal-doc__meta span,
.dark-mode .fh-legal-doc__sidebar .fh-legal-doc__toc-links a,
.dark-mode .fh-legal-doc__section-body blockquote,
.dark-mode .fh-legal-doc__section-body th,
.dark-mode .fh-legal-doc__section-body code,
.fh-theme-dark .fh-legal-doc__header,
.fh-theme-dark .fh-legal-doc__sidebar,
.fh-theme-dark .fh-legal-doc__notice,
.fh-theme-dark .fh-legal-doc__card,
.fh-theme-dark .fh-legal-doc__meta span,
.fh-theme-dark .fh-legal-doc__sidebar .fh-legal-doc__toc-links a,
.fh-theme-dark .fh-legal-doc__section-body blockquote,
.fh-theme-dark .fh-legal-doc__section-body th,
.fh-theme-dark .fh-legal-doc__section-body code {
  background: #151c28 !important;
  border-color: #2a3344 !important;
}
[data-theme="dark"] .fh-legal-doc__section-body td,
[data-theme="dark"] .fh-legal-doc__section-body th,
.dark-mode .fh-legal-doc__section-body td,
.dark-mode .fh-legal-doc__section-body th,
.fh-theme-dark .fh-legal-doc__section-body td,
.fh-theme-dark .fh-legal-doc__section-body th {
  border-color: #2a3344 !important;
}
[data-theme="dark"] .fh-legal-doc .fh-legal-doc__print,
[data-theme="dark"] .fh-legal-doc__sidebar-toggle,
.dark-mode .fh-legal-doc .fh-legal-doc__print,
.dark-mode .fh-legal-doc__sidebar-toggle,
.fh-theme-dark .fh-legal-doc .fh-legal-doc__print,
.fh-theme-dark .fh-legal-doc__sidebar-toggle {
  background: #151c28 !important;
  color: #d4dae6 !important;
  border-color: #2a3344 !important;
}
[data-theme="dark"] .fh-legal-doc .fh-legal-doc__print:hover,
[data-theme="dark"] .fh-legal-doc .fh-legal-doc__print:focus-visible,
[data-theme="dark"] .fh-legal-doc__sidebar-toggle:hover,
[data-theme="dark"] .fh-legal-doc__sidebar-toggle:focus-visible,
.dark-mode .fh-legal-doc .fh-legal-doc__print:hover,
.dark-mode .fh-legal-doc .fh-legal-doc__print:focus-visible,
.dark-mode .fh-legal-doc__sidebar-toggle:hover,
.dark-mode .fh-legal-doc__sidebar-toggle:focus-visible,
.fh-theme-dark .fh-legal-doc .fh-legal-doc__print:hover,
.fh-theme-dark .fh-legal-doc .fh-legal-doc__print:focus-visible,
.fh-theme-dark .fh-legal-doc__sidebar-toggle:hover,
.fh-theme-dark .fh-legal-doc__sidebar-toggle:focus-visible {
  background: #151c28 !important;
  color: #fff !important;
  border-color: #d4dae6 !important;
  box-shadow: inset 0 0 0 1px #d4dae6;
}
@media (max-width: 899px) {
  .fh-legal-doc--sidebar-left .fh-legal-doc__layout,
  .fh-legal-doc--sidebar-right .fh-legal-doc__layout,
  .fh-legal-doc.is-sidebar-collapsed.fh-legal-doc--sidebar-left .fh-legal-doc__layout,
  .fh-legal-doc.is-sidebar-collapsed.fh-legal-doc--sidebar-right .fh-legal-doc__layout {
    grid-template-columns: 1fr;
    grid-template-areas: "content" "sidebar";
  }
  .fh-legal-doc__sidebar {
    position: static;
    max-height: none;
  }
  .fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-tools { margin-left: auto; }
}
@media print {
  @page { margin: 12mm 14mm; }
  html,
  body {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  body * {
    visibility: hidden !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  .fh-legal-doc__print-scope,
  .fh-legal-doc__print-scope * {
    visibility: visible !important;
  }
  .fh-legal-doc,
  .fh-legal-doc__section-wrap,
  .fh-legal-doc__container,
  .fh-legal-doc__layout,
  .fh-legal-doc__print-scope {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    color: #000 !important;
  }
  .fh-legal-doc {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
  }
  .fh-hero,
  .fh-cta-band,
  .fh-legal-doc__sidebar,
  .fh-legal-doc__notice,
  .fh-legal-doc__meta,
  .elementor-location-header,
  .elementor-location-footer,
  header:not(.fh-legal-doc__header),
  footer {
    display: none !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__header,
  .fh-legal-doc__print-scope .fh-legal-doc__card {
    display: block !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 0 9pt !important;
    margin: 0 0 10pt !important;
    background: #fff !important;
    color: #000 !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__header {
    margin-bottom: 12pt !important;
    padding-bottom: 10pt !important;
    border-bottom: 1px solid #ccc !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__kicker { display: none !important; }
  .fh-legal-doc__print-scope .fh-legal-doc__title {
    font-size: 18pt !important;
    line-height: 1.2 !important;
    margin: 0 0 5pt !important;
    color: #000 !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__intro {
    font-size: 10pt !important;
    line-height: 1.38 !important;
    margin: 0 !important;
    color: #000 !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-title {
    color: #000 !important;
    font-size: 13pt !important;
    line-height: 1.22 !important;
    margin: 0 0 5pt !important;
    break-after: avoid;
    page-break-after: avoid;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body * {
    color: #000 !important;
    font-size: 10pt !important;
    line-height: 1.36 !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body p,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body ul,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body ol,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body blockquote,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body table {
    margin-top: 0 !important;
    margin-bottom: 5pt !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body ul,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body ol {
    padding-left: 14pt !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body table {
    min-width: 0 !important;
    width: 100% !important;
    font-size: 8.8pt !important;
    border-collapse: collapse !important;
  }
  .fh-legal-doc__print-scope .fh-legal-doc__section-body th,
  .fh-legal-doc__print-scope .fh-legal-doc__section-body td {
    padding: 3pt 4pt !important;
    border: 1px solid #ccc !important;
  }
  .fh-legal-doc__print-scope a[href]::after { content: "" !important; }
}

/* Batch 15G.7: legal dark-mode, print clone and sidebar indicator corrections. */
.fh-legal-doc__sidebar-toggle-icon {
  transform: none !important;
  min-width: 1em;
  text-align: center;
}
.fh-legal-doc--sidebar-left .fh-legal-doc__sidebar-toggle-icon,
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-toggle-icon,
.fh-legal-doc.is-sidebar-collapsed.fh-legal-doc--sidebar-left .fh-legal-doc__sidebar-toggle-icon {
  transform: none !important;
}

html.uc-dark .fh-hero--legal,
html.uc-dark .fh-section-legal-hero,
html.uc-dark .fh-legal-doc,
html.uc-dark .fh-legal-doc .fh-section,
html.uc-dark .fh-legal-doc__section-wrap,
body.uc-dark .fh-hero--legal,
body.uc-dark .fh-section-legal-hero,
body.uc-dark .fh-legal-doc,
body.uc-dark .fh-legal-doc .fh-section,
body.uc-dark .fh-legal-doc__section-wrap,
[data-theme="dark"] .fh-hero--legal,
[data-theme="dark"] .fh-section-legal-hero,
[data-theme="dark"] .fh-legal-doc,
[data-theme="dark"] .fh-legal-doc .fh-section,
[data-theme="dark"] .fh-legal-doc__section-wrap,
.dark-mode .fh-hero--legal,
.dark-mode .fh-section-legal-hero,
.dark-mode .fh-legal-doc,
.dark-mode .fh-legal-doc .fh-section,
.dark-mode .fh-legal-doc__section-wrap,
.fh-theme-dark .fh-hero--legal,
.fh-theme-dark .fh-section-legal-hero,
.fh-theme-dark .fh-legal-doc,
.fh-theme-dark .fh-legal-doc .fh-section,
.fh-theme-dark .fh-legal-doc__section-wrap {
  background: var(--fh-bg, #0f141d) !important;
}

html.uc-dark .fh-hero--legal :where(.fh-hero__title--h1, .fh-h1, .fh-eyebrow-numbered, .fh-eyebrow, .fh-lead, .fh-body, .fh-hero__note, p, span, a),
body.uc-dark .fh-hero--legal :where(.fh-hero__title--h1, .fh-h1, .fh-eyebrow-numbered, .fh-eyebrow, .fh-lead, .fh-body, .fh-hero__note, p, span, a),
[data-theme="dark"] .fh-hero--legal :where(.fh-hero__title--h1, .fh-h1, .fh-eyebrow-numbered, .fh-eyebrow, .fh-lead, .fh-body, .fh-hero__note, p, span, a),
.dark-mode .fh-hero--legal :where(.fh-hero__title--h1, .fh-h1, .fh-eyebrow-numbered, .fh-eyebrow, .fh-lead, .fh-body, .fh-hero__note, p, span, a),
.fh-theme-dark .fh-hero--legal :where(.fh-hero__title--h1, .fh-h1, .fh-eyebrow-numbered, .fh-eyebrow, .fh-lead, .fh-body, .fh-hero__note, p, span, a) {
  color: var(--fh-text, #d4dae6) !important;
}

html.uc-dark .fh-legal-doc,
html.uc-dark .fh-legal-doc *:not(.fh-btn):not(.fh-icon):not(svg):not(path),
body.uc-dark .fh-legal-doc,
body.uc-dark .fh-legal-doc *:not(.fh-btn):not(.fh-icon):not(svg):not(path),
[data-theme="dark"] .fh-legal-doc,
[data-theme="dark"] .fh-legal-doc *:not(.fh-btn):not(.fh-icon):not(svg):not(path),
.dark-mode .fh-legal-doc,
.dark-mode .fh-legal-doc *:not(.fh-btn):not(.fh-icon):not(svg):not(path),
.fh-theme-dark .fh-legal-doc,
.fh-theme-dark .fh-legal-doc *:not(.fh-btn):not(.fh-icon):not(svg):not(path) {
  color: var(--fh-text, #d4dae6) !important;
}

html.uc-dark .fh-legal-doc__header,
html.uc-dark .fh-legal-doc__sidebar,
html.uc-dark .fh-legal-doc__notice,
html.uc-dark .fh-legal-doc__card,
html.uc-dark .fh-legal-doc__meta span,
html.uc-dark .fh-legal-doc__sidebar .fh-legal-doc__toc-links a,
html.uc-dark .fh-legal-doc__section-body blockquote,
html.uc-dark .fh-legal-doc__section-body th,
html.uc-dark .fh-legal-doc__section-body code,
body.uc-dark .fh-legal-doc__header,
body.uc-dark .fh-legal-doc__sidebar,
body.uc-dark .fh-legal-doc__notice,
body.uc-dark .fh-legal-doc__card,
body.uc-dark .fh-legal-doc__meta span,
body.uc-dark .fh-legal-doc__sidebar .fh-legal-doc__toc-links a,
body.uc-dark .fh-legal-doc__section-body blockquote,
body.uc-dark .fh-legal-doc__section-body th,
body.uc-dark .fh-legal-doc__section-body code {
  background: var(--fh-card, #151c28) !important;
  border-color: var(--fh-border, #2a3344) !important;
}

html.uc-dark .fh-legal-doc__section-body td,
html.uc-dark .fh-legal-doc__section-body th,
body.uc-dark .fh-legal-doc__section-body td,
body.uc-dark .fh-legal-doc__section-body th {
  border-color: var(--fh-border, #2a3344) !important;
}

html.uc-dark .fh-legal-doc .fh-legal-doc__print,
html.uc-dark .fh-legal-doc__sidebar-toggle,
body.uc-dark .fh-legal-doc .fh-legal-doc__print,
body.uc-dark .fh-legal-doc__sidebar-toggle {
  background: var(--fh-card, #151c28) !important;
  color: var(--fh-text, #d4dae6) !important;
  border-color: var(--fh-border, #2a3344) !important;
}
html.uc-dark .fh-legal-doc .fh-legal-doc__print:hover,
html.uc-dark .fh-legal-doc .fh-legal-doc__print:focus-visible,
html.uc-dark .fh-legal-doc__sidebar-toggle:hover,
html.uc-dark .fh-legal-doc__sidebar-toggle:focus-visible,
body.uc-dark .fh-legal-doc .fh-legal-doc__print:hover,
body.uc-dark .fh-legal-doc .fh-legal-doc__print:focus-visible,
body.uc-dark .fh-legal-doc__sidebar-toggle:hover,
body.uc-dark .fh-legal-doc__sidebar-toggle:focus-visible {
  background: var(--fh-card, #151c28) !important;
  color: #fff !important;
  border-color: var(--fh-text, #d4dae6) !important;
  box-shadow: inset 0 0 0 1px var(--fh-text, #d4dae6) !important;
}

.fh-legal-print-root { display: none; }
@media print {
  @page { margin: 12mm 14mm; }
  body.fh-legal-printing {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  body.fh-legal-printing > :not(.fh-legal-print-root) {
    display: none !important;
  }
  body.fh-legal-printing .fh-legal-print-root,
  body.fh-legal-printing .fh-legal-print-root * {
    display: revert;
    visibility: visible !important;
    color: #000 !important;
    background: #fff !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  body.fh-legal-printing .fh-legal-print-root {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__header,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__card {
    display: block !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 0 7pt !important;
    margin: 0 0 8pt !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
    overflow: visible !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__header {
    margin-bottom: 10pt !important;
    padding-bottom: 8pt !important;
    border-bottom: 1px solid #ccc !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__kicker,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__meta,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__notice,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__toc,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__sidebar,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__print {
    display: none !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__title {
    display: block !important;
    font-size: 18pt !important;
    line-height: 1.18 !important;
    font-weight: 750 !important;
    margin: 0 0 4pt !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__intro {
    display: block !important;
    font-size: 9.6pt !important;
    line-height: 1.32 !important;
    margin: 0 !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-title {
    display: block !important;
    font-size: 12.5pt !important;
    line-height: 1.18 !important;
    font-weight: 750 !important;
    margin: 0 0 3.5pt !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body * {
    font-size: 9.4pt !important;
    line-height: 1.27 !important;
    overflow: visible !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body p,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body ul,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body ol,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body li,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body blockquote,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body table {
    margin-top: 0 !important;
    margin-bottom: 3.8pt !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
    widows: 2;
    orphans: 2;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body ul,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body ol {
    padding-left: 13pt !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body table {
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: collapse !important;
  }
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body th,
  body.fh-legal-printing .fh-legal-print-root .fh-legal-doc__section-body td {
    border: 1px solid #ccc !important;
    padding: 2.5pt 3.5pt !important;
  }
  body.fh-legal-printing .fh-legal-print-root a[href]::after { content: "" !important; }
}

/* Batch 15G.8: legal sidebar indicator and document-details refinements. */
.fh-legal-doc .fh-legal-doc__sidebar-toggle-icon,
.fh-legal-doc.fh-legal-doc--sidebar-left .fh-legal-doc__sidebar-toggle-icon,
.fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__sidebar-toggle-icon,
.fh-legal-doc.is-sidebar-collapsed.fh-legal-doc--sidebar-left .fh-legal-doc__sidebar-toggle-icon {
  transform: none !important;
}
.fh-legal-doc__meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, max-content));
  gap: .38rem .9rem;
  align-items: start;
  margin-top: .85rem;
  padding-top: .75rem;
  border-top: 1px solid #E5EAF3;
  min-width: 0;
}
.fh-legal-doc__meta span {
  display: inline;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: .86rem;
  line-height: 1.45;
  font-weight: 600;
  color: #000;
}
[data-theme="dark"] .fh-legal-doc__meta,
.dark-mode .fh-legal-doc__meta,
.fh-theme-dark .fh-legal-doc__meta {
  border-top-color: #2a3344 !important;
}
[data-theme="dark"] .fh-legal-doc__meta span,
.dark-mode .fh-legal-doc__meta span,
.fh-theme-dark .fh-legal-doc__meta span {
  background: transparent !important;
  border: 0 !important;
  color: #d4dae6 !important;
}
@media (max-width: 767px) {
  .fh-legal-doc__meta { grid-template-columns: 1fr; }
}


/* Batch 15G.9: remove secondary TOC-title collapse indicator and keep single sidebar toggle. */
.fh-legal-doc__sidebar .fh-legal-doc__toc-title::after {
  content: none !important;
  display: none !important;
}
.fh-legal-doc__sidebar .fh-legal-doc__toc-title {
  padding-right: 0 !important;
}


/* Batch 15G.13: align the Trust hero icon to the legal-field system and thin strokes. */
.fh-hero--legal .fh-hero__media .fh-trust-shield.fh-legal-field {
  width: min(100%, 280px);
  aspect-ratio: 1 / 1;
  max-height: none;
}
.fh-legal-field--trust .fh-legal-field__shield-check {
  stroke-width: 4px;
}

/* Batch 15G.15: legal icon fields + theme CTA controls in dark mode. */
html.uc-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle,
body.uc-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle,
[data-theme="dark"] .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle,
.dark-mode .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle,
.fh-theme-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle,
html.uc-dark .btn.btn-md.btn-primary.rounded-default,
body.uc-dark .btn.btn-md.btn-primary.rounded-default,
[data-theme="dark"] .btn.btn-md.btn-primary.rounded-default,
.dark-mode .btn.btn-md.btn-primary.rounded-default,
.fh-theme-dark .btn.btn-md.btn-primary.rounded-default {
  background: var(--fh-blue, #506BCD) !important;
  border-color: var(--fh-blue, #506BCD) !important;
  color: #fff !important;
  box-shadow: none !important;
}
html.uc-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:hover,
html.uc-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:focus-visible,
body.uc-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:hover,
body.uc-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:focus-visible,
[data-theme="dark"] .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:hover,
[data-theme="dark"] .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:focus-visible,
.dark-mode .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:hover,
.dark-mode .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:focus-visible,
.fh-theme-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:hover,
.fh-theme-dark .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:focus-visible,
html.uc-dark .btn.btn-md.btn-primary.rounded-default:hover,
html.uc-dark .btn.btn-md.btn-primary.rounded-default:focus-visible,
body.uc-dark .btn.btn-md.btn-primary.rounded-default:hover,
body.uc-dark .btn.btn-md.btn-primary.rounded-default:focus-visible,
[data-theme="dark"] .btn.btn-md.btn-primary.rounded-default:hover,
[data-theme="dark"] .btn.btn-md.btn-primary.rounded-default:focus-visible,
.dark-mode .btn.btn-md.btn-primary.rounded-default:hover,
.dark-mode .btn.btn-md.btn-primary.rounded-default:focus-visible,
.fh-theme-dark .btn.btn-md.btn-primary.rounded-default:hover,
.fh-theme-dark .btn.btn-md.btn-primary.rounded-default:focus-visible {
  background: transparent !important;
  border-color: color-mix(in srgb, var(--fh-blue, #506BCD) 58%, #ffffff 42%) !important;
  color: color-mix(in srgb, var(--fh-blue, #506BCD) 58%, #ffffff 42%) !important;
  box-shadow: inset 0 0 0 1px currentColor !important;
}

/* Batch 15G.16: stronger dark-mode primary buttons and accent-aware legal hero icon fields. */
.fh-scope .fh-legal-field {
  --fh-legal-accent: var(--fh-accent, var(--fh-blue, #0F2A8C));
}
.fh-scope .fh-legal-field__core {
  background: linear-gradient(180deg, color-mix(in srgb, var(--fh-legal-accent) 92%, #ffffff 8%) 0%, var(--fh-legal-accent) 100%) !important;
}
.fh-scope .fh-legal-field__node {
  background: color-mix(in srgb, var(--fh-legal-accent) 10%, #ffffff 90%) !important;
  border-color: color-mix(in srgb, var(--fh-legal-accent) 22%, #ffffff 78%) !important;
  color: var(--fh-legal-accent) !important;
}
html.uc-dark .fh-scope .fh-legal-field,
body.uc-dark .fh-scope .fh-legal-field,
[data-theme="dark"] .fh-scope .fh-legal-field,
.dark-mode .fh-scope .fh-legal-field,
.fh-theme-dark .fh-scope .fh-legal-field {
  --fh-legal-accent: #506BCD;
}
html.uc-dark .fh-scope.fh-accent-red .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-red .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-red .fh-legal-field,
.dark-mode .fh-scope.fh-accent-red .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-red .fh-legal-field { --fh-legal-accent: #FF6D92; }
html.uc-dark .fh-scope.fh-accent-clarify .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-clarify .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-clarify .fh-legal-field,
.dark-mode .fh-scope.fh-accent-clarify .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-clarify .fh-legal-field { --fh-legal-accent: #6F8FE8; }
html.uc-dark .fh-scope.fh-accent-validate .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-validate .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-validate .fh-legal-field,
.dark-mode .fh-scope.fh-accent-validate .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-validate .fh-legal-field { --fh-legal-accent: #79C982; }
html.uc-dark .fh-scope.fh-accent-launch .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-launch .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-launch .fh-legal-field,
.dark-mode .fh-scope.fh-accent-launch .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-launch .fh-legal-field { --fh-legal-accent: #A77BE6; }
html.uc-dark .fh-scope.fh-accent-scale .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-scale .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-scale .fh-legal-field,
.dark-mode .fh-scope.fh-accent-scale .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-scale .fh-legal-field { --fh-legal-accent: #F2A35B; }
html.uc-dark .fh-scope.fh-accent-pre-validate .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-pre-validate .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-pre-validate .fh-legal-field,
.dark-mode .fh-scope.fh-accent-pre-validate .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-pre-validate .fh-legal-field { --fh-legal-accent: #F3C95E; }
html.uc-dark .fh-scope.fh-accent-pre-launch .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-pre-launch .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-pre-launch .fh-legal-field,
.dark-mode .fh-scope.fh-accent-pre-launch .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-pre-launch .fh-legal-field { --fh-legal-accent: #63C6D3; }
html.uc-dark .fh-scope.fh-accent-pre-scale .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-pre-scale .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-pre-scale .fh-legal-field,
.dark-mode .fh-scope.fh-accent-pre-scale .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-pre-scale .fh-legal-field { --fh-legal-accent: #9B82E6; }
html.uc-dark .fh-scope.fh-accent-post-scale .fh-legal-field,
body.uc-dark .fh-scope.fh-accent-post-scale .fh-legal-field,
[data-theme="dark"] .fh-scope.fh-accent-post-scale .fh-legal-field,
.dark-mode .fh-scope.fh-accent-post-scale .fh-legal-field,
.fh-theme-dark .fh-scope.fh-accent-post-scale .fh-legal-field { --fh-legal-accent: #F29A61; }
html.uc-dark .fh-scope .fh-legal-field__orbit,
body.uc-dark .fh-scope .fh-legal-field__orbit,
[data-theme="dark"] .fh-scope .fh-legal-field__orbit,
.dark-mode .fh-scope .fh-legal-field__orbit,
.fh-theme-dark .fh-scope .fh-legal-field__orbit {
  border-color: color-mix(in srgb, var(--fh-legal-accent) 26%, transparent 74%) !important;
}
html.uc-dark .fh-scope .fh-legal-field__node,
body.uc-dark .fh-scope .fh-legal-field__node,
[data-theme="dark"] .fh-scope .fh-legal-field__node,
.dark-mode .fh-scope .fh-legal-field__node,
.fh-theme-dark .fh-scope .fh-legal-field__node {
  background: color-mix(in srgb, var(--fh-legal-accent) 18%, transparent 82%) !important;
  border-color: color-mix(in srgb, var(--fh-legal-accent) 42%, transparent 58%) !important;
  color: color-mix(in srgb, var(--fh-legal-accent) 72%, #ffffff 28%) !important;
}
html.uc-dark .fh-scope .fh-legal-field__core,
body.uc-dark .fh-scope .fh-legal-field__core,
[data-theme="dark"] .fh-scope .fh-legal-field__core,
.dark-mode .fh-scope .fh-legal-field__core,
.fh-theme-dark .fh-scope .fh-legal-field__core {
  background: linear-gradient(180deg, color-mix(in srgb, var(--fh-legal-accent) 72%, #ffffff 28%) 0%, var(--fh-legal-accent) 100%) !important;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.24) !important;
}

html.uc-dark .btn.bg-primary,
html.uc-dark button.bg-primary,
html.uc-dark a.bg-primary,
html.uc-dark .btn.btn-primary,
body.uc-dark .btn.bg-primary,
body.uc-dark button.bg-primary,
body.uc-dark a.bg-primary,
body.uc-dark .btn.btn-primary,
[data-theme="dark"] .btn.bg-primary,
[data-theme="dark"] button.bg-primary,
[data-theme="dark"] a.bg-primary,
[data-theme="dark"] .btn.btn-primary,
.dark-mode .btn.bg-primary,
.dark-mode button.bg-primary,
.dark-mode a.bg-primary,
.dark-mode .btn.btn-primary,
.fh-theme-dark .btn.bg-primary,
.fh-theme-dark button.bg-primary,
.fh-theme-dark a.bg-primary,
.fh-theme-dark .btn.btn-primary {
  background: #506BCD !important;
  background-color: #506BCD !important;
  background-image: none !important;
  border-color: #506BCD !important;
  color: #fff !important;
}
html.uc-dark .btn.bg-primary:hover,
html.uc-dark .btn.bg-primary:focus-visible,
html.uc-dark button.bg-primary:hover,
html.uc-dark button.bg-primary:focus-visible,
html.uc-dark a.bg-primary:hover,
html.uc-dark a.bg-primary:focus-visible,
html.uc-dark .btn.btn-primary:hover,
html.uc-dark .btn.btn-primary:focus-visible,
body.uc-dark .btn.bg-primary:hover,
body.uc-dark .btn.bg-primary:focus-visible,
body.uc-dark button.bg-primary:hover,
body.uc-dark button.bg-primary:focus-visible,
body.uc-dark a.bg-primary:hover,
body.uc-dark a.bg-primary:focus-visible,
body.uc-dark .btn.btn-primary:hover,
body.uc-dark .btn.btn-primary:focus-visible,
[data-theme="dark"] .btn.bg-primary:hover,
[data-theme="dark"] .btn.bg-primary:focus-visible,
[data-theme="dark"] button.bg-primary:hover,
[data-theme="dark"] button.bg-primary:focus-visible,
[data-theme="dark"] a.bg-primary:hover,
[data-theme="dark"] a.bg-primary:focus-visible,
[data-theme="dark"] .btn.btn-primary:hover,
[data-theme="dark"] .btn.btn-primary:focus-visible,
.dark-mode .btn.bg-primary:hover,
.dark-mode .btn.bg-primary:focus-visible,
.dark-mode button.bg-primary:hover,
.dark-mode button.bg-primary:focus-visible,
.dark-mode a.bg-primary:hover,
.dark-mode a.bg-primary:focus-visible,
.dark-mode .btn.btn-primary:hover,
.dark-mode .btn.btn-primary:focus-visible,
.fh-theme-dark .btn.bg-primary:hover,
.fh-theme-dark .btn.bg-primary:focus-visible,
.fh-theme-dark button.bg-primary:hover,
.fh-theme-dark button.bg-primary:focus-visible,
.fh-theme-dark a.bg-primary:hover,
.fh-theme-dark a.bg-primary:focus-visible,
.fh-theme-dark .btn.btn-primary:hover,
.fh-theme-dark .btn.btn-primary:focus-visible {
  background: #6F8FE8 !important;
  background-color: #6F8FE8 !important;
  background-image: none !important;
  border-color: #6F8FE8 !important;
  color: #08111F !important;
}


/* Batch 15G.17: hard dark-mode override for external/theme primary buttons. */
html.uc-dark,
html.uc-dark body {
  --bs-primary: var(--fh-blue, #506BCD) !important;
  --bs-primary-rgb: 80, 107, 205 !important;
}

html.uc-dark body .btn.btn-primary,
html.uc-dark body a.btn.btn-primary,
html.uc-dark body button.btn.btn-primary,
html.uc-dark body .btn.bg-primary,
html.uc-dark body a.btn.bg-primary,
html.uc-dark body button.btn.bg-primary,
html.uc-dark body .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle,
html.uc-dark body .btn.btn-md.btn-primary.rounded-default.lg\:px-3.text-none.shadow-xs.d-none.lg\:d-inline-flex {
  --bs-btn-bg: var(--fh-blue, #506BCD) !important;
  --bs-btn-border-color: var(--fh-blue, #506BCD) !important;
  --bs-btn-color: #ffffff !important;
  --bs-bg-opacity: 1 !important;
  background-color: var(--fh-blue, #506BCD) !important;
  border-color: var(--fh-blue, #506BCD) !important;
  color: #ffffff !important;
}

html.uc-dark body .btn.btn-primary:hover,
html.uc-dark body .btn.btn-primary:focus,
html.uc-dark body .btn.btn-primary:focus-visible,
html.uc-dark body a.btn.btn-primary:hover,
html.uc-dark body a.btn.btn-primary:focus,
html.uc-dark body .btn.bg-primary:hover,
html.uc-dark body .btn.bg-primary:focus,
html.uc-dark body .btn.bg-primary:focus-visible,
html.uc-dark body a.btn.bg-primary:hover,
html.uc-dark body a.btn.bg-primary:focus,
html.uc-dark body .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:hover,
html.uc-dark body .btn.btn-sm.bg-primary.text-white.w-40px.h-40px.rounded-circle:focus,
html.uc-dark body .btn.btn-md.btn-primary.rounded-default.lg\:px-3.text-none.shadow-xs.d-none.lg\:d-inline-flex:hover,
html.uc-dark body .btn.btn-md.btn-primary.rounded-default.lg\:px-3.text-none.shadow-xs.d-none.lg\:d-inline-flex:focus {
  --bs-btn-hover-bg: color-mix(in srgb, var(--fh-blue, #506BCD) 84%, #ffffff 16%) !important;
  --bs-btn-hover-border-color: color-mix(in srgb, var(--fh-blue, #506BCD) 84%, #ffffff 16%) !important;
  background-color: color-mix(in srgb, var(--fh-blue, #506BCD) 84%, #ffffff 16%) !important;
  border-color: color-mix(in srgb, var(--fh-blue, #506BCD) 84%, #ffffff 16%) !important;
  color: #ffffff !important;
}

/* Batch 15G.17: remove the legal sidebar from tablet portrait and mobile layouts. */
@media (max-width: 1024px) {
  .fh-legal-doc__sidebar {
    display: none !important;
  }

  .fh-legal-doc__layout,
  .fh-legal-doc.fh-legal-doc--sidebar-left .fh-legal-doc__layout,
  .fh-legal-doc.fh-legal-doc--sidebar-right .fh-legal-doc__layout,
  .fh-legal-doc.is-sidebar-collapsed .fh-legal-doc__layout {
    display: block !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .fh-legal-doc__content {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Batch 15H.1: compact role listings and stronger intake form usability. */
.fh-form-input::placeholder,
.fh-form-textarea::placeholder {
  color: var(--fh-muted, #667085);
  opacity: .82;
}
html.uc-dark .fh-form-input::placeholder,
html.uc-dark .fh-form-textarea::placeholder {
  color: rgba(212, 218, 230, .68);
}
.fh-faq-answer .fh-btn {
  margin-top: .75rem;
}
.fh-faq-answer ul {
  margin: .75rem 0 0;
  padding-left: 1.15rem;
}
.fh-faq-answer li + li {
  margin-top: .35rem;
}

/* Batch 15H.2: minimal modern multi-step workflow forms. */
.fh-form-card--multistep {
  padding: clamp(1.1rem, 2.5vw, 1.75rem);
}
.fh-multistep-form {
  display: grid;
  gap: 1rem;
}
.fh-form-stepper {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin-bottom: .25rem;
}
.fh-form-stepper__item {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .78rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--fh-muted, #667085);
}
.fh-form-stepper__item::before {
  content: "";
  width: .65rem;
  height: .65rem;
  border-radius: 999px;
  border: 1px solid var(--fh-border, #E5EAF3);
  background: var(--fh-card, #fff);
}
.fh-form-stepper__item.is-active {
  color: var(--fh-accent, var(--fh-blue, #0F2A8C));
}
.fh-form-stepper__item.is-active::before,
.fh-form-stepper__item.is-complete::before {
  border-color: var(--fh-accent, var(--fh-blue, #0F2A8C));
  background: var(--fh-accent, var(--fh-blue, #0F2A8C));
}
.fh-form-step {
  display: grid;
  gap: 1rem;
  padding-top: .35rem;
}
.fh-form-step[hidden] {
  display: none !important;
}
.fh-form-step__eyebrow {
  margin: 0;
  font-size: .75rem;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--fh-accent, var(--fh-blue, #0F2A8C));
}
.fh-form-step__title {
  margin: -.45rem 0 0;
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  line-height: 1.25;
  font-weight: 800;
  color: var(--fh-ink, #101828);
}
.fh-form-step__intro {
  margin: -.55rem 0 .15rem;
  max-width: 680px;
  font-size: .95rem;
  line-height: 1.65;
  color: var(--fh-muted, #667085);
}
.fh-form-nav {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  padding-top: .2rem;
}
.fh-form-nav .fh-btn {
  min-width: 132px;
}
.fh-form-field.is-client-invalid .fh-form-input,
.fh-form-field.is-client-invalid .fh-form-select,
.fh-form-field.is-client-invalid .fh-form-textarea {
  border-color: var(--fh-red, #DA0025) !important;
  box-shadow: 0 0 0 3px rgba(218, 0, 37, .12);
}
.fh-form-field.is-client-invalid .fh-form-label {
  color: var(--fh-red, #DA0025);
}
html.uc-dark .fh-scope .fh-form-step__title,
html.uc-dark .fh-scope .fh-form-card--multistep .fh-h3 {
  color: var(--fh-ink, #f5f7fb);
}
html.uc-dark .fh-scope .fh-form-stepper__item::before {
  background: var(--fh-card, #161c26);
  border-color: rgba(255,255,255,.14);
}
html.uc-dark .fh-scope .fh-form-field.is-client-invalid .fh-form-input,
html.uc-dark .fh-scope .fh-form-field.is-client-invalid .fh-form-select,
html.uc-dark .fh-scope .fh-form-field.is-client-invalid .fh-form-textarea {
  box-shadow: 0 0 0 3px rgba(255, 109, 146, .16);
}
@media (max-width: 767px) {
  .fh-form-stepper {
    gap: .45rem .7rem;
  }
  .fh-form-stepper__item {
    font-size: .72rem;
  }
  .fh-form-nav {
    display: grid;
    grid-template-columns: 1fr;
  }
  .fh-form-nav .fh-btn {
    width: 100%;
  }
}


/* Batch 15H.4: careers opportunities three-column accordion support. */
.fh-scope .fh-faq-grid.fh-faq-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1024px) {
  .fh-scope .fh-faq-grid.fh-faq-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .fh-scope .fh-faq-grid.fh-faq-grid-3 {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Batch 15H.5: opportunity accordion UX, sharing actions, and reCAPTCHA spacing. */
.fh-scope .fh-faq-grid.fh-faq-grid-3 {
  align-items: start;
}
.fh-scope .fh-faq-grid.fh-faq-grid-3 .fh-faq-item {
  align-self: start;
}
.fh-scope .fh-role-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.05rem;
}
.fh-scope .fh-role-share {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .45rem;
  margin-left: auto;
}
.fh-scope .fh-role-share__link {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--fh-border, rgba(15,42,140,.16));
  border-radius: 999px;
  color: var(--fh-blue, #0F2A8C);
  background: var(--fh-card, #fff);
  font-size: .72rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .01em;
  text-decoration: none;
}
.fh-scope .fh-role-share__link:hover,
.fh-scope .fh-role-share__link:focus-visible {
  color: #fff;
  background: var(--fh-accent, var(--fh-blue, #0F2A8C));
  border-color: var(--fh-accent, var(--fh-blue, #0F2A8C));
}
.fh-scope .fh-form-recaptcha {
  margin: .25rem 0 .75rem;
  max-width: 100%;
  overflow: hidden;
}
html.uc-dark .fh-scope .fh-role-share__link {
  color: var(--fh-ink, #f5f7fb);
  background: var(--fh-card, #161c26);
  border-color: rgba(255,255,255,.16);
}
html.uc-dark .fh-scope .fh-role-share__link:hover,
html.uc-dark .fh-scope .fh-role-share__link:focus-visible {
  color: #08111F;
  background: var(--fh-accent, #6F8FE8);
  border-color: var(--fh-accent, #6F8FE8);
}
@media (max-width: 767px) {
  .fh-scope .fh-role-actions {
    align-items: stretch;
  }
  .fh-scope .fh-role-actions .fh-btn {
    width: 100%;
  }
  .fh-scope .fh-role-share {
    width: 100%;
    justify-content: flex-start;
    margin-left: 0;
  }
}


/* Batch 15H.6: MDI sharing icons, adaptive opportunities accordion, and invisible reCAPTCHA. */
.fh-scope .fh-role-share__link i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  line-height: 1;
}
.fh-scope .fh-form-recaptcha--invisible {
  width: 0;
  height: 0;
  margin: 0;
  overflow: hidden;
}
.fh-scope .fh-faq-grid.fh-faq-grid-3 {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1.25rem;
}
.fh-scope .fh-faq-grid.fh-faq-grid-3 .fh-faq-item {
  flex: 0 1 calc(33.333% - .84rem);
  max-width: calc(33.333% - .84rem);
  transition: flex-basis .22s ease, max-width .22s ease, box-shadow .22s ease;
}
.fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item:not(.is-open) {
  flex-basis: calc(25% - .94rem);
  max-width: calc(25% - .94rem);
}
.fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open {
  flex-basis: calc(50% - .63rem);
  max-width: calc(50% - .63rem);
  box-shadow: 0 18px 46px rgba(15, 42, 140, .10);
}
html.uc-dark .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open {
  box-shadow: 0 18px 46px rgba(0, 0, 0, .22);
}
@media (max-width: 1024px) {
  .fh-scope .fh-faq-grid.fh-faq-grid-3 .fh-faq-item,
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item:not(.is-open) {
    flex-basis: calc(50% - .625rem);
    max-width: calc(50% - .625rem);
  }
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open {
    flex-basis: 100%;
    max-width: 100%;
  }
}
@media (max-width: 767px) {
  .fh-scope .fh-faq-grid.fh-faq-grid-3 .fh-faq-item,
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item,
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item:not(.is-open) {
    flex-basis: 100%;
    max-width: 100%;
  }
}

/* Batch 15H.7: visible MDI SVG sharing icons, stable opportunity row expansion, inline invisible reCAPTCHA badge, and field validation messages. */
.fh-scope .fh-role-share__icon {
  width: 1.08rem;
  height: 1.08rem;
  display: block;
  fill: currentColor;
  flex: 0 0 auto;
}
.fh-scope .fh-role-share__link svg,
.fh-scope .fh-role-share__link .fh-role-share__icon {
  pointer-events: none;
}
.fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item:not(.is-open) {
  flex-basis: calc(33.333% - .84rem);
  max-width: calc(33.333% - .84rem);
}
.fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open-row:not(.is-open) {
  flex-basis: calc(25% - .94rem);
  max-width: calc(25% - .94rem);
}
.fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open {
  flex-basis: calc(50% - .63rem);
  max-width: calc(50% - .63rem);
}
.fh-scope .fh-form-recaptcha--invisible {
  width: auto;
  height: auto;
  min-height: 60px;
  margin: .35rem 0 .85rem;
  overflow: visible;
}
.fh-form-field__client-error {
  display: block;
  margin-top: .38rem;
  font-size: .84rem;
  line-height: 1.45;
  color: #b42318;
  font-weight: 700;
}
html.uc-dark .fh-form-field__client-error {
  color: #ff9aa8;
}
@media (max-width: 1024px) {
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item:not(.is-open),
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open-row:not(.is-open) {
    flex-basis: calc(50% - .625rem);
    max-width: calc(50% - .625rem);
  }
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open {
    flex-basis: 100%;
    max-width: 100%;
  }
}
@media (max-width: 767px) {
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item,
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item:not(.is-open),
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open-row:not(.is-open),
  .fh-scope .fh-faq-grid.fh-faq-grid-3.has-open .fh-faq-item.is-open {
    flex-basis: 100%;
    max-width: 100%;
  }
}


/* Batch 15H.8: CSS-rendered MDI share icons and tooltips for Careers opportunities. */
.fh-scope .fh-role-share__link {
  position: relative;
  overflow: visible;
}
.fh-scope .fh-role-share__link svg,
.fh-scope .fh-role-share__link .fh-role-share__icon {
  display: none !important;
}
.fh-scope .fh-role-share__link::before {
  content: "";
  width: 18px;
  height: 18px;
  display: block;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.fh-scope .fh-role-share__link--linkedin::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20fill=%22black%22%20d=%22M19%203A2%202%200%200%201%2021%205V19A2%202%200%200%201%2019%2021H5A2%202%200%200%201%203%2019V5A2%202%200%200%201%205%203H19M8.5%2017V10.5H6.5V17H8.5M7.5%209.2A1.2%201.2%200%200%200%208.7%208A1.2%201.2%200%200%200%207.5%206.8A1.2%201.2%200%200%200%206.3%208A1.2%201.2%200%200%200%207.5%209.2M18%2017V13.2C18%2011.5%2017.6%2010.2%2015.7%2010.2C14.8%2010.2%2014.2%2010.7%2013.9%2011.2H13.9V10.5H12V17H14V13.6C14%2012.7%2014.2%2011.8%2015.3%2011.8C16.4%2011.8%2016.4%2012.8%2016.4%2013.7V17H18Z%22/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20fill=%22black%22%20d=%22M19%203A2%202%200%200%201%2021%205V19A2%202%200%200%201%2019%2021H5A2%202%200%200%201%203%2019V5A2%202%200%200%201%205%203H19M8.5%2017V10.5H6.5V17H8.5M7.5%209.2A1.2%201.2%200%200%200%208.7%208A1.2%201.2%200%200%200%207.5%206.8A1.2%201.2%200%200%200%206.3%208A1.2%201.2%200%200%200%207.5%209.2M18%2017V13.2C18%2011.5%2017.6%2010.2%2015.7%2010.2C14.8%2010.2%2014.2%2010.7%2013.9%2011.2H13.9V10.5H12V17H14V13.6C14%2012.7%2014.2%2011.8%2015.3%2011.8C16.4%2011.8%2016.4%2012.8%2016.4%2013.7V17H18Z%22/%3E%3C/svg%3E");
}
.fh-scope .fh-role-share__link--x::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20fill=%22black%22%20d=%22M18.901%201.153H22.581L14.541%2010.342L24%2022.846H16.594L10.793%2015.262L4.156%2022.846H0.474L9.074%2013.014L0%201.154H7.594L12.837%208.086L18.901%201.153ZM17.609%2020.644H19.648L6.486%203.24H4.298L17.609%2020.644Z%22/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20fill=%22black%22%20d=%22M18.901%201.153H22.581L14.541%2010.342L24%2022.846H16.594L10.793%2015.262L4.156%2022.846H0.474L9.074%2013.014L0%201.154H7.594L12.837%208.086L18.901%201.153ZM17.609%2020.644H19.648L6.486%203.24H4.298L17.609%2020.644Z%22/%3E%3C/svg%3E");
}
.fh-scope .fh-role-share__link--whatsapp::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20fill=%22black%22%20d=%22M12.04%202C6.58%202%202.13%206.45%202.13%2011.91C2.13%2013.66%202.59%2015.36%203.45%2016.86L2.05%2022L7.3%2020.62C8.75%2021.41%2010.38%2021.83%2012.04%2021.83C17.5%2021.83%2021.95%2017.38%2021.95%2011.92C21.95%209.27%2020.92%206.78%2019.05%204.91C17.18%203.03%2014.69%202%2012.04%202M12.05%203.67C14.25%203.67%2016.31%204.53%2017.87%206.09C19.42%207.65%2020.28%209.72%2020.28%2011.92C20.28%2016.46%2016.58%2020.15%2012.04%2020.15C10.56%2020.15%209.11%2019.76%207.85%2019L7.55%2018.83L4.43%2019.65L5.26%2016.61L5.06%2016.3C4.25%2015%203.81%2013.49%203.81%2011.91C3.82%207.37%207.51%203.67%2012.05%203.67M8.53%207.33C8.37%207.33%208.1%207.39%207.87%207.64C7.65%207.89%207%208.5%207%209.71C7%2010.93%207.89%2012.1%208%2012.27C8.14%2012.44%209.76%2014.94%2012.25%2016C14.35%2016.86%2014.78%2016.69%2015.24%2016.65C15.69%2016.61%2016.71%2016.05%2016.92%2015.47C17.12%2014.89%2017.12%2014.39%2017.06%2014.28C17%2014.18%2016.84%2014.12%2016.61%2014C16.38%2013.88%2015.24%2013.32%2015.03%2013.24C14.82%2013.16%2014.67%2013.12%2014.5%2013.36C14.35%2013.59%2013.89%2014.12%2013.75%2014.28C13.61%2014.44%2013.47%2014.46%2013.24%2014.34C13%2014.22%2012.25%2013.97%2011.36%2013.18C10.66%2012.56%2010.2%2011.8%2010.06%2011.56C9.92%2011.33%2010.04%2011.2%2010.17%2011.08C10.28%2010.97%2010.4%2010.79%2010.52%2010.65C10.64%2010.51%2010.68%2010.41%2010.76%2010.25C10.84%2010.09%2010.8%209.95%2010.74%209.83C10.68%209.71%2010.21%208.56%2010%208.08C9.81%207.61%209.6%207.67%209.47%207.66C9.33%207.65%209.18%207.65%209.03%207.65C8.88%207.65%208.68%207.59%208.53%207.33Z%22/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20fill=%22black%22%20d=%22M12.04%202C6.58%202%202.13%206.45%202.13%2011.91C2.13%2013.66%202.59%2015.36%203.45%2016.86L2.05%2022L7.3%2020.62C8.75%2021.41%2010.38%2021.83%2012.04%2021.83C17.5%2021.83%2021.95%2017.38%2021.95%2011.92C21.95%209.27%2020.92%206.78%2019.05%204.91C17.18%203.03%2014.69%202%2012.04%202M12.05%203.67C14.25%203.67%2016.31%204.53%2017.87%206.09C19.42%207.65%2020.28%209.72%2020.28%2011.92C20.28%2016.46%2016.58%2020.15%2012.04%2020.15C10.56%2020.15%209.11%2019.76%207.85%2019L7.55%2018.83L4.43%2019.65L5.26%2016.61L5.06%2016.3C4.25%2015%203.81%2013.49%203.81%2011.91C3.82%207.37%207.51%203.67%2012.05%203.67M8.53%207.33C8.37%207.33%208.1%207.39%207.87%207.64C7.65%207.89%207%208.5%207%209.71C7%2010.93%207.89%2012.1%208%2012.27C8.14%2012.44%209.76%2014.94%2012.25%2016C14.35%2016.86%2014.78%2016.69%2015.24%2016.65C15.69%2016.61%2016.71%2016.05%2016.92%2015.47C17.12%2014.89%2017.12%2014.39%2017.06%2014.28C17%2014.18%2016.84%2014.12%2016.61%2014C16.38%2013.88%2015.24%2013.32%2015.03%2013.24C14.82%2013.16%2014.67%2013.12%2014.5%2013.36C14.35%2013.59%2013.89%2014.12%2013.75%2014.28C13.61%2014.44%2013.47%2014.46%2013.24%2014.34C13%2014.22%2012.25%2013.97%2011.36%2013.18C10.66%2012.56%2010.2%2011.8%2010.06%2011.56C9.92%2011.33%2010.04%2011.2%2010.17%2011.08C10.28%2010.97%2010.4%2010.79%2010.52%2010.65C10.64%2010.51%2010.68%2010.41%2010.76%2010.25C10.84%2010.09%2010.8%209.95%2010.74%209.83C10.68%209.71%2010.21%208.56%2010%208.08C9.81%207.61%209.6%207.67%209.47%207.66C9.33%207.65%209.18%207.65%209.03%207.65C8.88%207.65%208.68%207.59%208.53%207.33Z%22/%3E%3C/svg%3E");
}
.fh-scope .fh-role-share__link::after {
  content: attr(aria-label);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  transform: translate(-50%, 4px);
  z-index: 30;
  width: max-content;
  max-width: 180px;
  padding: .42rem .56rem;
  border-radius: 8px;
  background: var(--fh-ink, #101828);
  color: #fff;
  font-size: .72rem;
  line-height: 1.2;
  font-weight: 700;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  box-shadow: 0 10px 24px rgba(16, 24, 40, .16);
  transition: opacity .16s ease, transform .16s ease;
}
.fh-scope .fh-role-share__link:hover::after,
.fh-scope .fh-role-share__link:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}
.fh-scope .fh-role-share__link:hover::before,
.fh-scope .fh-role-share__link:focus-visible::before {
  background: currentColor;
}
.fh-scope .fh-form-checkbox .fh-required {
  color: var(--fh-red, #DA0025);
  margin-left: 2px;
  font-weight: 800;
}
html.uc-dark .fh-scope .fh-role-share__link::after {
  background: #F5F7FB;
  color: #101828;
}
@media (max-width: 767px) {
  .fh-scope .fh-role-share__link::after {
    left: 0;
    transform: translate(0, 4px);
  }
  .fh-scope .fh-role-share__link:hover::after,
  .fh-scope .fh-role-share__link:focus-visible::after {
    transform: translate(0, 0);
  }
}


/* Batch 15H.9: share tooltip overflow, grey tooltip, dark forms, and dark apply button. */
.fh-scope .fh-faq-item,
.fh-scope .fh-faq-answer,
.fh-scope .fh-role-actions,
.fh-scope .fh-role-share {
  overflow: visible !important;
}
.fh-scope .fh-role-share__link {
  position: relative;
  overflow: visible !important;
  z-index: 2;
}
.fh-scope .fh-role-share__link::before {
  content: "";
  width: 18px;
  height: 18px;
  display: block;
  background-color: transparent !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  -webkit-mask: none !important;
  mask: none !important;
  filter: none;
}
.fh-scope .fh-role-share__link--linkedin::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230F2A8C' d='M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M8.5 17V10.5H6.5V17H8.5M7.5 9.2A1.2 1.2 0 0 0 8.7 8A1.2 1.2 0 0 0 7.5 6.8A1.2 1.2 0 0 0 6.3 8A1.2 1.2 0 0 0 7.5 9.2M18 17V13.2C18 11.5 17.6 10.2 15.7 10.2C14.8 10.2 14.2 10.7 13.9 11.2H13.9V10.5H12V17H14V13.6C14 12.7 14.2 11.8 15.3 11.8C16.4 11.8 16.4 12.8 16.4 13.7V17H18Z'/%3E%3C/svg%3E");
}
.fh-scope .fh-role-share__link--x::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230F2A8C' d='M18.901 1.153H22.581L14.541 10.342L24 22.846H16.594L10.793 15.262L4.156 22.846H0.474L9.074 13.014L0 1.154H7.594L12.837 8.086L18.901 1.153ZM17.609 20.644H19.648L6.486 3.24H4.298L17.609 20.644Z'/%3E%3C/svg%3E");
}
.fh-scope .fh-role-share__link--whatsapp::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230F2A8C' d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.3C4.25 15 3.81 13.49 3.81 11.91C3.82 7.37 7.51 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C14.35 16.86 14.78 16.69 15.24 16.65C15.69 16.61 16.71 16.05 16.92 15.47C17.12 14.89 17.12 14.39 17.06 14.28C17 14.18 16.84 14.12 16.61 14C16.38 13.88 15.24 13.32 15.03 13.24C14.82 13.16 14.67 13.12 14.5 13.36C14.35 13.59 13.89 14.12 13.75 14.28C13.61 14.44 13.47 14.46 13.24 14.34C13 14.22 12.25 13.97 11.36 13.18C10.66 12.56 10.2 11.8 10.06 11.56C9.92 11.33 10.04 11.2 10.17 11.08C10.28 10.97 10.4 10.79 10.52 10.65C10.64 10.51 10.68 10.41 10.76 10.25C10.84 10.09 10.8 9.95 10.74 9.83C10.68 9.71 10.21 8.56 10 8.08C9.81 7.61 9.6 7.67 9.47 7.66C9.33 7.65 9.18 7.65 9.03 7.65C8.88 7.65 8.68 7.59 8.53 7.33Z'/%3E%3C/svg%3E");
}
.fh-scope .fh-role-share__link:hover::before,
.fh-scope .fh-role-share__link:focus-visible::before {
  filter: brightness(0) invert(1);
}
.fh-scope .fh-role-share__link::after {
  background: #475467 !important;
  color: #fff !important;
  z-index: 9999;
  overflow: visible;
}
html.uc-dark .fh-scope .fh-role-share__link::after {
  background: #667085 !important;
  color: #fff !important;
}
html.uc-dark .fh-scope .fh-form-stepper__item.is-active,
html.uc-dark .fh-scope .fh-form-stepper__item.is-complete {
  color: #D8E4FF;
}
html.uc-dark .fh-scope .fh-form-stepper__item.is-active::before,
html.uc-dark .fh-scope .fh-form-stepper__item.is-complete::before {
  background: #6F8FE8;
  border-color: #6F8FE8;
  box-shadow: 0 0 0 3px rgba(111,143,232,.16);
}
html.uc-dark .fh-scope .fh-form-step__eyebrow {
  color: #AFC2FF;
}
html.uc-dark .fh-scope .fh-role-actions .fh-btn-accent-outline {
  color: #D8E4FF;
  border-color: rgba(216,228,255,.55);
  background: rgba(111,143,232,.08);
}
html.uc-dark .fh-scope .fh-role-actions .fh-btn-accent-outline:hover,
html.uc-dark .fh-scope .fh-role-actions .fh-btn-accent-outline:focus-visible {
  color: #08111F;
  border-color: #8EA3FF;
  background: #8EA3FF;
}

/* Batch 15H.10: final careers share buttons and tooltip colour reset. */
.fh-scope .fh-role-share__link {
  position: relative;
  overflow: visible !important;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--fh-border, #E5EAF3) !important;
  border-radius: 999px;
  background: var(--fh-card, #fff) !important;
  color: var(--fh-blue, #0F2A8C) !important;
  text-decoration: none;
  transform: none;
  box-shadow: none;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.fh-scope .fh-role-share__link::before {
  content: "" !important;
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  flex: 0 0 auto;
  background: currentColor !important;
  background-image: none !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;
  filter: none !important;
}
.fh-scope .fh-role-share__link--linkedin::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M8.5 17V10.5H6.5V17H8.5M7.5 9.2A1.2 1.2 0 0 0 8.7 8A1.2 1.2 0 0 0 7.5 6.8A1.2 1.2 0 0 0 6.3 8A1.2 1.2 0 0 0 7.5 9.2M18 17V13.2C18 11.5 17.6 10.2 15.7 10.2C14.8 10.2 14.2 10.7 13.9 11.2H13.9V10.5H12V17H14V13.6C14 12.7 14.2 11.8 15.3 11.8C16.4 11.8 16.4 12.8 16.4 13.7V17H18Z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M8.5 17V10.5H6.5V17H8.5M7.5 9.2A1.2 1.2 0 0 0 8.7 8A1.2 1.2 0 0 0 7.5 6.8A1.2 1.2 0 0 0 6.3 8A1.2 1.2 0 0 0 7.5 9.2M18 17V13.2C18 11.5 17.6 10.2 15.7 10.2C14.8 10.2 14.2 10.7 13.9 11.2H13.9V10.5H12V17H14V13.6C14 12.7 14.2 11.8 15.3 11.8C16.4 11.8 16.4 12.8 16.4 13.7V17H18Z'/%3E%3C/svg%3E") !important;
}
.fh-scope .fh-role-share__link--x::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153H22.581L14.541 10.342L24 22.846H16.594L10.793 15.262L4.156 22.846H0.474L9.074 13.014L0 1.154H7.594L12.837 8.086L18.901 1.153ZM17.609 20.644H19.648L6.486 3.24H4.298L17.609 20.644Z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153H22.581L14.541 10.342L24 22.846H16.594L10.793 15.262L4.156 22.846H0.474L9.074 13.014L0 1.154H7.594L12.837 8.086L18.901 1.153ZM17.609 20.644H19.648L6.486 3.24H4.298L17.609 20.644Z'/%3E%3C/svg%3E") !important;
}
.fh-scope .fh-role-share__link--whatsapp::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.3C4.25 15 3.81 13.49 3.81 11.91C3.82 7.37 7.51 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C14.35 16.86 14.78 16.69 15.24 16.65C15.69 16.61 16.71 16.05 16.92 15.47C17.12 14.89 17.12 14.39 17.06 14.28C17 14.18 16.84 14.12 16.61 14C16.38 13.88 15.24 13.32 15.03 13.24C14.82 13.16 14.67 13.12 14.5 13.36C14.35 13.59 13.89 14.12 13.75 14.28C13.61 14.44 13.47 14.46 13.24 14.34C13 14.22 12.25 13.97 11.36 13.18C10.66 12.56 10.2 11.8 10.06 11.56C9.92 11.33 10.04 11.2 10.17 11.08C10.28 10.97 10.4 10.79 10.52 10.65C10.64 10.51 10.68 10.41 10.76 10.25C10.84 10.09 10.8 9.95 10.74 9.83C10.68 9.71 10.21 8.56 10 8.08C9.81 7.61 9.6 7.67 9.47 7.66C9.33 7.65 9.18 7.65 9.03 7.65C8.88 7.65 8.68 7.59 8.53 7.33Z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.3C4.25 15 3.81 13.49 3.81 11.91C3.82 7.37 7.51 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C14.35 16.86 14.78 16.69 15.24 16.65C15.69 16.61 16.71 16.05 16.92 15.47C17.12 14.89 17.12 14.39 17.06 14.28C17 14.18 16.84 14.12 16.61 14C16.38 13.88 15.24 13.32 15.03 13.24C14.82 13.16 14.67 13.12 14.5 13.36C14.35 13.59 13.89 14.12 13.75 14.28C13.61 14.44 13.47 14.46 13.24 14.34C13 14.22 12.25 13.97 11.36 13.18C10.66 12.56 10.2 11.8 10.06 11.56C9.92 11.33 10.04 11.2 10.17 11.08C10.28 10.97 10.4 10.79 10.52 10.65C10.64 10.51 10.68 10.41 10.76 10.25C10.84 10.09 10.8 9.95 10.74 9.83C10.68 9.71 10.21 8.56 10 8.08C9.81 7.61 9.6 7.67 9.47 7.66C9.33 7.65 9.18 7.65 9.03 7.65C8.88 7.65 8.68 7.59 8.53 7.33Z'/%3E%3C/svg%3E") !important;
}
.fh-scope .fh-role-share__link:hover,
.fh-scope .fh-role-share__link:focus-visible {
  border-color: var(--fh-blue, #0F2A8C) !important;
  background: var(--fh-blue, #0F2A8C) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(15, 42, 140, .16);
}
.fh-scope .fh-role-share__link::after {
  content: attr(aria-label);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  transform: translate(-50%, 4px);
  z-index: 9999;
  width: max-content;
  max-width: 180px;
  padding: .42rem .56rem;
  border-radius: 8px;
  background: #475467 !important;
  color: #fff !important;
  font-size: .72rem;
  line-height: 1.2;
  font-weight: 700;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  box-shadow: 0 10px 24px rgba(16, 24, 40, .16);
  transition: opacity .16s ease, transform .16s ease;
}
.fh-scope .fh-role-share__link:hover::after,
.fh-scope .fh-role-share__link:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}
html.uc-dark .fh-scope .fh-role-share__link {
  border-color: var(--fh-border, #2b3342) !important;
  background: var(--fh-card, #161c26) !important;
  color: #D8E4FF !important;
}
html.uc-dark .fh-scope .fh-role-share__link:hover,
html.uc-dark .fh-scope .fh-role-share__link:focus-visible {
  border-color: var(--fh-blue, #506BCD) !important;
  background: var(--fh-blue, #506BCD) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(80, 107, 205, .20);
}
html.uc-dark .fh-scope .fh-role-share__link::after {
  background: #667085 !important;
  color: #fff !important;
}

/* Batch 15I.1: Discovery Call Scheduling Gateway. */
.fh-scope.fh-discovery-call,
.fh-scope .fh-discovery-call {
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: clamp(2rem, 4vw, 3.5rem);
  border: 1px solid var(--fh-border, rgba(15, 42, 140, .14));
  border-radius: 22px;
  background: var(--fh-card, #fff);
  box-shadow: 0 22px 60px rgba(15, 42, 140, .08);
}
.fh-scope .fh-discovery-call__header,
.fh-scope.fh-discovery-call .fh-discovery-call__header {
  max-width: 760px;
  margin-bottom: 1.5rem;
}
.fh-scope .fh-discovery-call__grid,
.fh-scope.fh-discovery-call .fh-discovery-call__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .85rem;
  margin: 1.5rem 0 1.75rem;
}
.fh-scope .fh-discovery-call__route,
.fh-scope.fh-discovery-call .fh-discovery-call__route {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  min-height: 148px;
  padding: 1rem;
  border: 1px solid var(--fh-border, rgba(15, 42, 140, .14));
  border-radius: 16px;
  background: color-mix(in srgb, var(--fh-blue, #0F2A8C) 4%, #fff);
  color: var(--fh-ink, #101828);
  text-decoration: none;
  transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.fh-scope .fh-discovery-call__route:hover,
.fh-scope .fh-discovery-call__route:focus-visible,
.fh-scope .fh-discovery-call__route.is-active,
.fh-scope.fh-discovery-call .fh-discovery-call__route:hover,
.fh-scope.fh-discovery-call .fh-discovery-call__route:focus-visible,
.fh-scope.fh-discovery-call .fh-discovery-call__route.is-active {
  border-color: var(--fh-blue, #0F2A8C);
  background: color-mix(in srgb, var(--fh-blue, #0F2A8C) 9%, #fff);
  box-shadow: 0 14px 34px rgba(15, 42, 140, .10);
  transform: translateY(-1px);
}
.fh-scope .fh-discovery-call__route-label,
.fh-scope.fh-discovery-call .fh-discovery-call__route-label {
  font-size: .72rem;
  line-height: 1.2;
  font-weight: 800;
  color: var(--fh-blue, #0F2A8C);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.fh-scope .fh-discovery-call__route-title,
.fh-scope.fh-discovery-call .fh-discovery-call__route-title {
  font-weight: 800;
  line-height: 1.25;
}
.fh-scope .fh-discovery-call__route-copy,
.fh-scope.fh-discovery-call .fh-discovery-call__route-copy {
  color: var(--fh-muted, #667085);
  font-size: .92rem;
  line-height: 1.5;
}
.fh-scope .fh-discovery-call__booking,
.fh-scope.fh-discovery-call .fh-discovery-call__booking {
  padding: 1.25rem;
  border: 1px solid var(--fh-border, rgba(15, 42, 140, .14));
  border-radius: 18px;
  background: color-mix(in srgb, var(--fh-blue, #0F2A8C) 3%, #fff);
}
.fh-scope .fh-discovery-call__booking-header,
.fh-scope.fh-discovery-call .fh-discovery-call__booking-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.fh-scope .fh-discovery-call__booking-header .fh-h3,
.fh-scope.fh-discovery-call .fh-discovery-call__booking-header .fh-h3 {
  margin: 0;
}
.fh-scope .fh-discovery-call__iframe,
.fh-scope.fh-discovery-call .fh-discovery-call__iframe {
  display: block;
  width: 100%;
  min-height: 720px;
  border: 0;
  border-radius: 14px;
  background: #fff;
}
.fh-scope .fh-discovery-call__external,
.fh-scope.fh-discovery-call .fh-discovery-call__external {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
html.uc-dark .fh-scope.fh-discovery-call,
html.uc-dark .fh-scope .fh-discovery-call {
  background: var(--fh-card, #121826);
  border-color: rgba(255, 255, 255, .14);
  box-shadow: 0 22px 60px rgba(0, 0, 0, .28);
}
html.uc-dark .fh-scope .fh-discovery-call__route,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route {
  background: rgba(255, 255, 255, .045);
  border-color: rgba(255, 255, 255, .14);
  color: var(--fh-ink, #f5f7fb);
}
html.uc-dark .fh-scope .fh-discovery-call__route:hover,
html.uc-dark .fh-scope .fh-discovery-call__route:focus-visible,
html.uc-dark .fh-scope .fh-discovery-call__route.is-active,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route:hover,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route:focus-visible,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route.is-active {
  background: rgba(111, 143, 232, .16);
  border-color: var(--fh-accent, #6F8FE8);
}
html.uc-dark .fh-scope .fh-discovery-call__route-label,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route-label {
  color: var(--fh-accent, #6F8FE8);
}
html.uc-dark .fh-scope .fh-discovery-call__route-copy,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route-copy {
  color: var(--fh-muted, #a8b3c7);
}
html.uc-dark .fh-scope .fh-discovery-call__booking,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__booking {
  background: rgba(255, 255, 255, .035);
  border-color: rgba(255, 255, 255, .14);
}
@media (max-width: 1024px) {
  .fh-scope .fh-discovery-call__grid,
  .fh-scope.fh-discovery-call .fh-discovery-call__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .fh-scope.fh-discovery-call,
  .fh-scope .fh-discovery-call {
    padding: 1.25rem;
    border-radius: 18px;
  }
  .fh-scope .fh-discovery-call__grid,
  .fh-scope.fh-discovery-call .fh-discovery-call__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .fh-scope .fh-discovery-call__booking-header,
  .fh-scope.fh-discovery-call .fh-discovery-call__booking-header,
  .fh-scope .fh-discovery-call__external,
  .fh-scope.fh-discovery-call .fh-discovery-call__external {
    align-items: stretch;
    flex-direction: column;
  }
  .fh-scope .fh-discovery-call__iframe,
  .fh-scope.fh-discovery-call .fh-discovery-call__iframe {
    min-height: 680px;
  }
}


/* Batch 15I.3: stable gateway anchor offset for fixed headers. */
#call-gateway {
  scroll-margin-top: 120px;
}

@media (max-width: 767px) {
  #call-gateway {
    scroll-margin-top: 88px;
  }
}

/* Batch 15I.4: Discovery Call anchor rename and dark-mode token bridge. */
#call-gateway {
  scroll-margin-top: 120px;
}

.fh-scope.fh-discovery-call,
.fh-scope .fh-discovery-call {
  --fh-discovery-bg: var(--fh-card, #fff);
  --fh-discovery-surface: color-mix(in srgb, var(--fh-blue, #0F2A8C) 3%, #fff);
  --fh-discovery-route-bg: color-mix(in srgb, var(--fh-blue, #0F2A8C) 4%, #fff);
  --fh-discovery-route-bg-active: color-mix(in srgb, var(--fh-blue, #0F2A8C) 9%, #fff);
  --fh-discovery-border: var(--fh-border, rgba(15, 42, 140, .14));
  --fh-discovery-heading: var(--fh-ink, #101828);
  --fh-discovery-text: var(--fh-muted, #667085);
  --fh-discovery-accent: var(--fh-blue, #0F2A8C);
  background: var(--fh-discovery-bg);
  border-color: var(--fh-discovery-border);
  color: var(--fh-discovery-heading);
}

.fh-scope .fh-discovery-call .fh-h2,
.fh-scope .fh-discovery-call .fh-h3,
.fh-scope.fh-discovery-call .fh-h2,
.fh-scope.fh-discovery-call .fh-h3,
.fh-scope .fh-discovery-call__route-title,
.fh-scope.fh-discovery-call .fh-discovery-call__route-title {
  color: var(--fh-discovery-heading);
}

.fh-scope .fh-discovery-call .fh-body,
.fh-scope.fh-discovery-call .fh-body,
.fh-scope .fh-discovery-call__external,
.fh-scope.fh-discovery-call .fh-discovery-call__external,
.fh-scope .fh-discovery-call__empty,
.fh-scope.fh-discovery-call .fh-discovery-call__empty {
  color: var(--fh-discovery-text);
}

.fh-scope .fh-discovery-call__route,
.fh-scope.fh-discovery-call .fh-discovery-call__route {
  background: var(--fh-discovery-route-bg);
  border-color: var(--fh-discovery-border);
  color: var(--fh-discovery-heading);
}

.fh-scope .fh-discovery-call__route:hover,
.fh-scope .fh-discovery-call__route:focus-visible,
.fh-scope .fh-discovery-call__route.is-active,
.fh-scope.fh-discovery-call .fh-discovery-call__route:hover,
.fh-scope.fh-discovery-call .fh-discovery-call__route:focus-visible,
.fh-scope.fh-discovery-call .fh-discovery-call__route.is-active {
  border-color: var(--fh-discovery-accent);
  background: var(--fh-discovery-route-bg-active);
}

.fh-scope .fh-discovery-call__route-label,
.fh-scope.fh-discovery-call .fh-discovery-call__route-label {
  color: var(--fh-discovery-accent);
}

.fh-scope .fh-discovery-call__route-copy,
.fh-scope.fh-discovery-call .fh-discovery-call__route-copy {
  color: var(--fh-discovery-text);
}

.fh-scope .fh-discovery-call__booking,
.fh-scope.fh-discovery-call .fh-discovery-call__booking {
  background: var(--fh-discovery-surface);
  border-color: var(--fh-discovery-border);
}

html.uc-dark .fh-scope.fh-discovery-call,
html.uc-dark .fh-scope .fh-discovery-call,
body.uc-dark .fh-scope.fh-discovery-call,
body.uc-dark .fh-scope .fh-discovery-call,
html[data-theme="dark"] .fh-scope.fh-discovery-call,
html[data-theme="dark"] .fh-scope .fh-discovery-call,
body[data-theme="dark"] .fh-scope.fh-discovery-call,
body[data-theme="dark"] .fh-scope .fh-discovery-call {
  --fh-discovery-bg: var(--fh-card, #121826);
  --fh-discovery-surface: rgba(255, 255, 255, .045);
  --fh-discovery-route-bg: rgba(255, 255, 255, .055);
  --fh-discovery-route-bg-active: rgba(111, 143, 232, .18);
  --fh-discovery-border: rgba(255, 255, 255, .16);
  --fh-discovery-heading: var(--fh-ink, #F5F7FB);
  --fh-discovery-text: var(--fh-muted, #A8B3C7);
  --fh-discovery-accent: var(--fh-accent, #6F8FE8);
  box-shadow: 0 22px 60px rgba(0, 0, 0, .30);
}

html.uc-dark .fh-scope .fh-discovery-call__iframe,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__iframe,
body.uc-dark .fh-scope .fh-discovery-call__iframe,
body.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__iframe,
html[data-theme="dark"] .fh-scope .fh-discovery-call__iframe,
html[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__iframe,
body[data-theme="dark"] .fh-scope .fh-discovery-call__iframe,
body[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__iframe {
  background: #111827;
}

@media (max-width: 767px) {
  #call-gateway {
    scroll-margin-top: 88px;
  }
}


/* Batch 15I.5: Discovery Call dark-mode neutral bridge and CTA-label correction. */
html.uc-dark .fh-scope.fh-discovery-call,
html.uc-dark .fh-scope .fh-discovery-call,
body.uc-dark .fh-scope.fh-discovery-call,
body.uc-dark .fh-scope .fh-discovery-call,
html[data-theme="dark"] .fh-scope.fh-discovery-call,
html[data-theme="dark"] .fh-scope .fh-discovery-call,
body[data-theme="dark"] .fh-scope.fh-discovery-call,
body[data-theme="dark"] .fh-scope .fh-discovery-call {
  --fh-discovery-bg: var(--fh-card, #121826);
  --fh-discovery-surface: rgba(255, 255, 255, .045);
  --fh-discovery-route-bg: rgba(255, 255, 255, .055);
  --fh-discovery-route-bg-active: rgba(255, 255, 255, .085);
  --fh-discovery-border: rgba(255, 255, 255, .16);
  --fh-discovery-border-active: rgba(203, 213, 225, .42);
  --fh-discovery-heading: var(--fh-ink, #F5F7FB);
  --fh-discovery-text: var(--fh-muted, #A8B3C7);
  --fh-discovery-accent: #CBD5E1;
  --fh-discovery-accent-hover: #E5E7EB;
}

html.uc-dark .fh-scope .fh-discovery-call__route-label,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route-label,
body.uc-dark .fh-scope .fh-discovery-call__route-label,
body.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route-label,
html[data-theme="dark"] .fh-scope .fh-discovery-call__route-label,
html[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__route-label,
body[data-theme="dark"] .fh-scope .fh-discovery-call__route-label,
body[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__route-label {
  color: var(--fh-discovery-accent);
}

html.uc-dark .fh-scope .fh-discovery-call__route:hover,
html.uc-dark .fh-scope .fh-discovery-call__route:focus-visible,
html.uc-dark .fh-scope .fh-discovery-call__route.is-active,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route:hover,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route:focus-visible,
html.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route.is-active,
body.uc-dark .fh-scope .fh-discovery-call__route:hover,
body.uc-dark .fh-scope .fh-discovery-call__route:focus-visible,
body.uc-dark .fh-scope .fh-discovery-call__route.is-active,
body.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route:hover,
body.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route:focus-visible,
body.uc-dark .fh-scope.fh-discovery-call .fh-discovery-call__route.is-active,
html[data-theme="dark"] .fh-scope .fh-discovery-call__route:hover,
html[data-theme="dark"] .fh-scope .fh-discovery-call__route:focus-visible,
html[data-theme="dark"] .fh-scope .fh-discovery-call__route.is-active,
html[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__route:hover,
html[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__route:focus-visible,
html[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__route.is-active,
body[data-theme="dark"] .fh-scope .fh-discovery-call__route:hover,
body[data-theme="dark"] .fh-scope .fh-discovery-call__route:focus-visible,
body[data-theme="dark"] .fh-scope .fh-discovery-call__route.is-active,
body[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__route:hover,
body[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__route:focus-visible,
body[data-theme="dark"] .fh-scope.fh-discovery-call .fh-discovery-call__route.is-active {
  border-color: var(--fh-discovery-border-active);
  background: var(--fh-discovery-route-bg-active);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
}

html.uc-dark .fh-scope .fh-discovery-call .fh-btn-accent-text,
html.uc-dark .fh-scope.fh-discovery-call .fh-btn-accent-text,
body.uc-dark .fh-scope .fh-discovery-call .fh-btn-accent-text,
body.uc-dark .fh-scope.fh-discovery-call .fh-btn-accent-text,
html[data-theme="dark"] .fh-scope .fh-discovery-call .fh-btn-accent-text,
html[data-theme="dark"] .fh-scope.fh-discovery-call .fh-btn-accent-text,
body[data-theme="dark"] .fh-scope .fh-discovery-call .fh-btn-accent-text,
body[data-theme="dark"] .fh-scope.fh-discovery-call .fh-btn-accent-text {
  color: var(--fh-discovery-accent);
  border-color: transparent;
  background: transparent;
}

html.uc-dark .fh-scope .fh-discovery-call .fh-btn-accent-text:hover,
html.uc-dark .fh-scope .fh-discovery-call .fh-btn-accent-text:focus-visible,
html.uc-dark .fh-scope.fh-discovery-call .fh-btn-accent-text:hover,
html.uc-dark .fh-scope.fh-discovery-call .fh-btn-accent-text:focus-visible,
body.uc-dark .fh-scope .fh-discovery-call .fh-btn-accent-text:hover,
body.uc-dark .fh-scope .fh-discovery-call .fh-btn-accent-text:focus-visible,
body.uc-dark .fh-scope.fh-discovery-call .fh-btn-accent-text:hover,
body.uc-dark .fh-scope.fh-discovery-call .fh-btn-accent-text:focus-visible,
html[data-theme="dark"] .fh-scope .fh-discovery-call .fh-btn-accent-text:hover,
html[data-theme="dark"] .fh-scope .fh-discovery-call .fh-btn-accent-text:focus-visible,
html[data-theme="dark"] .fh-scope.fh-discovery-call .fh-btn-accent-text:hover,
html[data-theme="dark"] .fh-scope.fh-discovery-call .fh-btn-accent-text:focus-visible,
body[data-theme="dark"] .fh-scope .fh-discovery-call .fh-btn-accent-text:hover,
body[data-theme="dark"] .fh-scope .fh-discovery-call .fh-btn-accent-text:focus-visible,
body[data-theme="dark"] .fh-scope.fh-discovery-call .fh-btn-accent-text:hover,
body[data-theme="dark"] .fh-scope.fh-discovery-call .fh-btn-accent-text:focus-visible {
  color: var(--fh-discovery-accent-hover);
  background: rgba(255, 255, 255, .06);
}


/* Batch 15J.2 — Optional responsive visibility toggles for comparison sections. */
@media (min-width: 768px) and (max-width: 899px) {
  .fh-card-grid--comparison.fh-card-grid--comparison-hide-tablet-portrait {
    display: none;
  }
}

@media (max-width: 767px) {
  .fh-card-grid--comparison.fh-card-grid--comparison-hide-mobile {
    display: none;
  }
}


/* Batch 15J.3 — Restore full comparison table behaviour; use visibility toggles instead of stacked-card conversion. */
.fh-scope .fh-comparison-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 900px) {
  .fh-scope .fh-comparison {
    min-width: 760px;
  }
}

/* Batch 15L.1 — editorial import content helpers */
.fh-imported-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: 0.95rem;
}
.fh-imported-table th,
.fh-imported-table td {
	border: 1px solid var(--fh-border, #E5EAF3);
	padding: 0.75rem 0.85rem;
	text-align: left;
	vertical-align: top;
}
.fh-imported-table th {
	background: var(--fh-bg-soft, #F6FAFF);
	color: var(--fh-ink, #101828);
	font-weight: 700;
}
.fh-imported-table td {
	color: var(--fh-text, #344054);
}
[data-theme="dark"] .fh-imported-table th,
body.fh-dark-mode .fh-imported-table th,
html.dark .fh-imported-table th {
	background: color-mix(in srgb, var(--fh-card, #111827) 84%, #ffffff 16%);
	color: var(--fh-ink, #F8FAFC);
}
[data-theme="dark"] .fh-imported-table th,
[data-theme="dark"] .fh-imported-table td,
body.fh-dark-mode .fh-imported-table th,
body.fh-dark-mode .fh-imported-table td,
html.dark .fh-imported-table th,
html.dark .fh-imported-table td {
	border-color: var(--fh-border, #334155);
}
[data-theme="dark"] .fh-imported-table td,
body.fh-dark-mode .fh-imported-table td,
html.dark .fh-imported-table td {
	color: var(--fh-text, #CBD5E1);
}
@media (max-width: 767px) {
	.fh-imported-table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* Batch 15L.5: editorial QA refinements for imported article media, sidebar compactness, and latest-post metadata. */
.fh-article__content figure.wp-block-image:not(.fh-article__featured-media),
.fh-article__content .wp-block-image:not(.fh-article__featured-media) {
  float: left;
  width: calc(50% - .85rem);
  max-width: 380px;
  margin: .25rem 1.7rem 1rem 0;
  border-radius: 16px;
  overflow: hidden;
}
.fh-article__content figure.wp-block-image:not(.fh-article__featured-media) img,
.fh-article__content .wp-block-image:not(.fh-article__featured-media) img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.fh-article__taxonomy-block {
  padding-block: .9rem;
}
.fh-article__taxonomy-block .fh-article__category-links,
.fh-article__taxonomy-block .fh-article__chips {
  gap: .38rem;
}
.fh-article__taxonomy-block .fh-article__category-links a,
.fh-article__taxonomy-block .fh-article__chips a {
  padding: .32rem .58rem;
  font-size: .76rem;
  line-height: 1.15;
}
.fh-article__studio-promo {
  padding-block: .95rem;
}
.fh-article__studio-promo .fh-article__studio-cta {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  margin: 0 0 .65rem;
  border: 1px solid var(--fh-blue, #0F2A8C) !important;
  background: var(--fh-blue, #0F2A8C) !important;
  color: #fff !important;
  font-weight: 750;
  text-decoration: none !important;
}
.fh-article__studio-promo .fh-article__studio-cta:hover,
.fh-article__studio-promo .fh-article__studio-cta:focus-visible {
  background: transparent !important;
  color: var(--fh-blue, #0F2A8C) !important;
}
.fh-article__studio-promo .fh-article__stage-list {
  gap: .35rem;
}
.fh-article__studio-promo .fh-article__stage-link {
  padding: .46rem .52rem;
}
.fh-article-card__meta {
  margin: .15rem 0 .55rem;
  color: var(--fh-muted, #667085);
  font-size: .82rem;
  line-height: 1.45;
}
@media (max-width: 900px) {
  .fh-article__content figure.wp-block-image:not(.fh-article__featured-media),
  .fh-article__content .wp-block-image:not(.fh-article__featured-media) {
    float: none;
    width: 100%;
    max-width: none;
    margin: 0 0 1.35rem;
  }
}

/* Batch 15L.6 — editorial inline images should wrap beside paragraphs only. */
.fh-article__content :where(figure.wp-block-image.fh-editorial-inline-image) {
  float: right;
  width: min(42%, 320px);
  max-width: 320px;
  margin: .25rem 0 1rem 1.25rem;
  clear: none;
}
.fh-article__content :where(figure.wp-block-image.fh-editorial-inline-image:nth-of-type(even)) {
  float: left;
  margin: .25rem 1.25rem 1rem 0;
}
.fh-article__content :where(figure.wp-block-image.fh-editorial-inline-image img) {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}
.fh-article__content :where(h2, h3, h4, table, .fh-imported-table, .wp-block-table) {
  clear: both;
}
@media (max-width: 760px) {
  .fh-article__content :where(figure.wp-block-image.fh-editorial-inline-image),
  .fh-article__content :where(figure.wp-block-image.fh-editorial-inline-image:nth-of-type(even)) {
    float: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 1.25rem;
  }
}

/* Batch 15L.7 — stronger article inline-image wrapping and sidebar spacing.
 * The earlier :where() selector was intentionally low-specificity, but some
 * theme/Gutenberg image rules could still flatten the float. These selectors
 * intentionally outrank generic figure/wp-block-image rules while keeping the
 * wrap away from headings and tables.
 */
.fh-article__content figure.wp-block-image.fh-editorial-inline-image {
  display: block !important;
  float: right !important;
  width: min(38%, 300px) !important;
  max-width: 300px !important;
  margin: .25rem 0 1rem 1.35rem !important;
  clear: none !important;
}
.fh-article__content figure.wp-block-image.fh-editorial-inline-image:nth-of-type(even) {
  float: left !important;
  margin: .25rem 1.35rem 1rem 0 !important;
}
.fh-article__content figure.wp-block-image.fh-editorial-inline-image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}
.fh-article__content :where(h2, h3, h4, table, .fh-imported-table, .wp-block-table) {
  clear: both;
}
.fh-article__stage-list {
  margin-bottom: 1.05rem;
}
.fh-article__studio-cta {
  margin-top: .35rem;
}
@media (max-width: 760px) {
  .fh-article__content figure.wp-block-image.fh-editorial-inline-image,
  .fh-article__content figure.wp-block-image.fh-editorial-inline-image:nth-of-type(even) {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1.25rem !important;
  }
}


/* Batch 15L.8 — inline image wrap hardening.
 * Adds alignleft/alignright-aware selectors and keeps wrapping tied to body
 * paragraphs while headings and tables remain clear of floated media.
 */
.fh-article__content figure.wp-block-image.fh-editorial-inline-image.alignright {
  float: right !important;
  width: min(38%, 300px) !important;
  max-width: 300px !important;
  margin: .25rem 0 1rem 1.35rem !important;
  clear: none !important;
  display: block !important;
}
.fh-article__content figure.wp-block-image.fh-editorial-inline-image.alignleft {
  float: left !important;
  width: min(38%, 300px) !important;
  max-width: 300px !important;
  margin: .25rem 1.35rem 1rem 0 !important;
  clear: none !important;
  display: block !important;
}
.fh-article__content figure.wp-block-image.fh-editorial-inline-image + p,
.fh-article__content h2 + figure.wp-block-image.fh-editorial-inline-image + p,
.fh-article__content h3 + figure.wp-block-image.fh-editorial-inline-image + p {
  margin-top: 0 !important;
}
.fh-article__content h2,
.fh-article__content h3,
.fh-article__content h4,
.fh-article__content table,
.fh-article__content .fh-imported-table,
.fh-article__content .wp-block-table {
  clear: both;
}
@media (max-width: 760px) {
  .fh-article__content figure.wp-block-image.fh-editorial-inline-image.alignright,
  .fh-article__content figure.wp-block-image.fh-editorial-inline-image.alignleft {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1.25rem !important;
  }
}

/* Batch 15L.9 — paragraph-level inline media wrapping.
 * Imported inline figures are converted into a floated media span at the start
 * of the next paragraph. This makes the image sit to the right of paragraph
 * copy instead of depending on Gutenberg figure float behaviour.
 */
.fh-article__content .fh-editorial-paragraph-media {
  float: right !important;
  display: block !important;
  width: min(38%, 300px) !important;
  max-width: 300px !important;
  margin: .18rem 0 .9rem 1.35rem !important;
  clear: none !important;
}
.fh-article__content .fh-editorial-paragraph-media img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 14px;
}
.fh-article__content .fh-editorial-paragraph-media__caption {
  display: block;
  margin-top: .42rem;
  color: var(--fh-muted, #667085);
  font-size: .76rem;
  line-height: 1.35;
}
.fh-article__content p:has(.fh-editorial-paragraph-media) {
  min-height: 12rem;
}
.fh-article__content :where(h2, h3, h4, table, .fh-imported-table, .wp-block-table) {
  clear: both;
}
@media (max-width: 760px) {
  .fh-article__content .fh-editorial-paragraph-media {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1.15rem !important;
  }
  .fh-article__content p:has(.fh-editorial-paragraph-media) {
    min-height: 0;
  }
}

/* Batch 15L.10 — deterministic side-specific paragraph media wrapping.
 * inline-1 media sits on the right of paragraph copy; inline-2 media sits on
 * the left. These rules target the span created by the repair workflow and
 * override earlier paragraph-media defaults.
 */
.fh-article__content .fh-editorial-paragraph-media.fh-editorial-paragraph-media--right {
  float: right !important;
  display: block !important;
  width: min(38%, 300px) !important;
  max-width: 300px !important;
  margin: .18rem 0 .9rem 1.35rem !important;
  clear: none !important;
}
.fh-article__content .fh-editorial-paragraph-media.fh-editorial-paragraph-media--left {
  float: left !important;
  display: block !important;
  width: min(38%, 300px) !important;
  max-width: 300px !important;
  margin: .18rem 1.35rem .9rem 0 !important;
  clear: none !important;
}
.fh-article__content .fh-editorial-paragraph-media.fh-editorial-paragraph-media--right img,
.fh-article__content .fh-editorial-paragraph-media.fh-editorial-paragraph-media--left img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 16px;
  overflow: hidden;
}
.fh-article__content p:has(.fh-editorial-paragraph-media--right),
.fh-article__content p:has(.fh-editorial-paragraph-media--left) {
  min-height: 12rem;
}
@media (max-width: 760px) {
  .fh-article__content .fh-editorial-paragraph-media.fh-editorial-paragraph-media--right,
  .fh-article__content .fh-editorial-paragraph-media.fh-editorial-paragraph-media--left {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1.15rem !important;
  }
  .fh-article__content p:has(.fh-editorial-paragraph-media--right),
  .fh-article__content p:has(.fh-editorial-paragraph-media--left) {
    min-height: 0;
  }
}

/* Batch 15L.11 — restore v0.6.39.9-style figure float/wrap for imported inline images.
 * This intentionally uses figure-level floats rather than paragraph-media spans.
 * inline-1 is right; inline-2 is left. Headings and tables remain cleared.
 */
.fh-article__content figure.wp-block-image.fh-editorial-inline-image.alignright,
.fh-article__content figure.wp-block-image.fh-editorial-inline-image:not(.alignleft) {
  display: block !important;
  float: right !important;
  width: min(38%, 300px) !important;
  max-width: 300px !important;
  margin: .25rem 0 1rem 1.35rem !important;
  clear: none !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}
.fh-article__content figure.wp-block-image.fh-editorial-inline-image.alignleft {
  display: block !important;
  float: left !important;
  width: min(38%, 300px) !important;
  max-width: 300px !important;
  margin: .25rem 1.35rem 1rem 0 !important;
  clear: none !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}
.fh-article__content figure.wp-block-image.fh-editorial-inline-image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
}
.fh-article__content figure.wp-block-image.fh-editorial-inline-image + p {
  margin-top: 0 !important;
}
.fh-article__content h2,
.fh-article__content h3,
.fh-article__content h4,
.fh-article__content table,
.fh-article__content .fh-imported-table,
.fh-article__content .wp-block-table {
  clear: both !important;
}
@media (max-width: 760px) {
  .fh-article__content figure.wp-block-image.fh-editorial-inline-image.alignright,
  .fh-article__content figure.wp-block-image.fh-editorial-inline-image:not(.alignleft),
  .fh-article__content figure.wp-block-image.fh-editorial-inline-image.alignleft {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1.25rem !important;
  }
}

/* Batch 15L.12 — newspaper-style paragraph media wrap.
 * Final inline-image layout: the repair workflow moves imported inline images
 * into the next paragraph as a floated span. inline-1 sits right; inline-2
 * sits left. Headings and tables remain clear, so wrapping applies to normal
 * paragraph copy only.
 */
.fh-article__content p > .fh-editorial-newspaper-media {
  display: block !important;
  width: min(36%, 280px) !important;
  max-width: 280px !important;
  clear: none !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: var(--fh-card, #fff);
}
.fh-article__content p > .fh-editorial-newspaper-media--right {
  float: right !important;
  margin: .2rem 0 .9rem 1.25rem !important;
}
.fh-article__content p > .fh-editorial-newspaper-media--left {
  float: left !important;
  margin: .2rem 1.25rem .9rem 0 !important;
}
.fh-article__content p > .fh-editorial-newspaper-media img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  border-radius: 16px !important;
}
.fh-article__content p > .fh-editorial-newspaper-media__caption,
.fh-article__content p > .fh-editorial-newspaper-media .fh-editorial-newspaper-media__caption {
  display: block;
  padding: .4rem .5rem 0;
  color: var(--fh-muted, #667085);
  font-size: .74rem;
  line-height: 1.35;
}
.fh-article__content p:has(> .fh-editorial-newspaper-media) {
  min-height: 10.8rem;
}
.fh-article__content :where(h2, h3, h4, table, .fh-imported-table, .wp-block-table) {
  clear: both !important;
}
@media (max-width: 760px) {
  .fh-article__content p > .fh-editorial-newspaper-media,
  .fh-article__content p > .fh-editorial-newspaper-media--right,
  .fh-article__content p > .fh-editorial-newspaper-media--left {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1.15rem !important;
  }
  .fh-article__content p:has(> .fh-editorial-newspaper-media) {
    min-height: 0;
  }
}

/* Batch 15L.13 — paragraph-contained newspaper wrap guard.
 * Inline media must live inside a real <p> and float inside that paragraph:
 * inline-1/right, inline-2/left. These selectors intentionally override
 * earlier figure/span experiments while preserving heading/table clearing.
 */
.fh-article__content p .fh-editorial-newspaper-media {
  display: block !important;
  width: min(36%, 280px) !important;
  max-width: 280px !important;
  clear: none !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: var(--fh-card, #fff) !important;
}
.fh-article__content p .fh-editorial-newspaper-media--right {
  float: right !important;
  margin: .2rem 0 .9rem 1.35rem !important;
}
.fh-article__content p .fh-editorial-newspaper-media--left {
  float: left !important;
  margin: .2rem 1.35rem .9rem 0 !important;
}
.fh-article__content p .fh-editorial-newspaper-media img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  border-radius: 16px !important;
}
.fh-article__content p:has(.fh-editorial-newspaper-media) {
  min-height: 10rem !important;
  overflow: visible !important;
  clear: none !important;
}
.fh-article__content :where(h2, h3, h4, table, .fh-imported-table, .wp-block-table) {
  clear: both !important;
}
@media (max-width: 760px) {
  .fh-article__content p .fh-editorial-newspaper-media,
  .fh-article__content p .fh-editorial-newspaper-media--right,
  .fh-article__content p .fh-editorial-newspaper-media--left {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1.15rem !important;
  }
  .fh-article__content p:has(.fh-editorial-newspaper-media) {
    min-height: 0 !important;
  }
}

/* Batch 15M.3 — language switcher flag display modes.
 * Default language display now replaces country/language code with the resolved
 * flag, while shortcode attributes can still opt into code, name, or mixed
 * variants when a specific placement needs them. */
.fh-language-switcher__flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35em;
  line-height: 1;
  font-size: 1.05em;
  letter-spacing: 0;
}
.fh-language-switcher--display-flag .fh-language-switcher__trigger,
.fh-language-switcher--display-flag-code .fh-language-switcher__trigger {
  gap: 5px;
}
.fh-language-switcher--display-flag .fh-language-switcher__menu {
  min-width: auto;
  width: auto;
}
.fh-language-switcher--display-flag .fh-language-switcher__option {
  justify-content: center;
  min-width: 2.35rem;
}
.fh-language-switcher--display-flag-name .fh-language-switcher__code,
.fh-language-switcher--display-flag .fh-language-switcher__code,
.fh-language-switcher--display-flag-name .fh-language-switcher__option .fh-language-switcher__code,
.fh-language-switcher--display-flag .fh-language-switcher__option .fh-language-switcher__code {
  display: none;
}

/* Batch 15M.5 — language-switcher flag box sizing.
 * Reverts the v0.6.39.22 200% glyph enlargement and instead gives every
 * flag a predictable 1.7em square visual box. This keeps footer/header rhythm
 * stable while still making the flag target clearer than a raw text code.
 */
.fh-language-switcher__flag {
  width: 1.7em;
  height: 1.7em;
  min-width: 1.7em;
  max-width: 1.7em;
  font-size: 1em;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0;
  flex: 0 0 1.7em;
}
.fh-language-switcher__trigger,
.fh-language-switcher__option {
  align-items: center;
}
.fh-language-switcher--display-flag .fh-language-switcher__option {
  min-width: 2.75rem;
  min-height: 2.35rem;
}
.fh-language-switcher--display-flag .fh-language-switcher__trigger {
  min-height: 2.2rem;
}
.fh-language-switcher--display-flag-name .fh-language-switcher__trigger,
.fh-language-switcher--display-flag-code .fh-language-switcher__trigger,
.fh-language-switcher--display-flag-name .fh-language-switcher__option,
.fh-language-switcher--display-flag-code .fh-language-switcher__option {
  gap: 7px;
}

/* Batch 15M.6 — language-switcher Twemoji flag image sizing.
 * Undo the wrapper-box sizing from v0.6.39.23 and target the actual
 * Twemoji-rendered flag image. Native emoji fallback remains normal-size;
 * when WordPress/Twemoji converts the flag to img.emoji, the image itself
 * becomes a consistent 1.7em square.
 */
.fh-language-switcher__flag {
  width: auto !important;
  height: auto !important;
  min-width: 1.35em !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  font-size: 1.05em !important;
  line-height: 1 !important;
}
.fh-language-switcher__flag img.emoji,
.fh-language-switcher__flag .emoji {
  display: inline-block !important;
  height: 1.7em !important;
  width: 1.7em !important;
  max-height: 1.7em !important;
  max-width: 1.7em !important;
  min-height: 1.7em !important;
  min-width: 1.7em !important;
  margin: 0 !important;
  object-fit: contain !important;
  vertical-align: -0.28em !important;
}
.fh-language-switcher--display-flag .fh-language-switcher__trigger,
.fh-language-switcher--display-flag .fh-language-switcher__option,
.fh-language-switcher--display-flag-name .fh-language-switcher__trigger,
.fh-language-switcher--display-flag-name .fh-language-switcher__option,
.fh-language-switcher--display-flag-code .fh-language-switcher__trigger,
.fh-language-switcher--display-flag-code .fh-language-switcher__option {
  align-items: center !important;
}

/* Batch 15M.7 — left-align selector trigger and option content.
 * Keep the visual parity between footer utilities while ensuring the language
 * flag/name and currency symbol/code/name read from the left edge in both the
 * trigger and dropdown rows, even when utility classes such as `items-end` are
 * present on the menu element. */
.fh-language-switcher__trigger,
.fh-language-switcher__option,
.fh-currency-trigger,
.fh-currency-option {
  justify-content: flex-start !important;
  text-align: left !important;
}
.fh-language-switcher__menu,
.fh-language-switcher__list,
.fh-currency-menu {
  text-align: left !important;
  align-items: stretch !important;
}
.fh-language-switcher__option,
.fh-currency-option {
  align-self: stretch !important;
}
.fh-language-switcher__flag,
.fh-language-switcher__code,
.fh-language-switcher__name,
.fh-currency-trigger__symbol,
.fh-currency-trigger__code,
.fh-currency-option__symbol,
.fh-currency-option__code,
.fh-currency-option__name {
  text-align: left !important;
}
.fh-language-switcher--display-flag .fh-language-switcher__option {
  justify-content: flex-start !important;
}


/* Batch 15M.8 — source-level left alignment for language and currency menus.
 * v0.6.39.25 did not change the rendered result because menu utility classes
 * could still right-align the dropdown content. v0.6.39.26 removes the right
 * alignment utility from shortcode markup and uses this shared structural class
 * to force the menu rows and visible children to begin from the left edge. */
.fh-currency-switcher,
.fh-language-switcher {
  text-align: left !important;
}
.fh-utility-menu--left,
.fh-currency-menu.fh-utility-menu--left,
.fh-language-switcher__menu.fh-utility-menu--left,
.fh-language-switcher__list {
  align-items: stretch !important;
  justify-content: flex-start !important;
  justify-items: stretch !important;
  text-align: left !important;
}
.fh-utility-menu--left > li,
.fh-currency-menu.fh-utility-menu--left > li,
.fh-language-switcher__menu.fh-utility-menu--left > li,
.fh-language-switcher__list > li {
  display: block !important;
  width: 100% !important;
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.fh-currency-trigger,
.fh-language-switcher__trigger,
.fh-utility-menu--left > li > a,
.fh-currency-menu.fh-utility-menu--left > li > .fh-currency-option,
.fh-language-switcher__menu.fh-utility-menu--left > li > .fh-language-switcher__option,
.fh-language-switcher__list > li > .fh-language-switcher__option {
  display: flex !important;
  flex-direction: row !important;
  justify-content: flex-start !important;
  align-items: center !important;
  text-align: left !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}
.fh-currency-trigger > *,
.fh-currency-option > *,
.fh-language-switcher__trigger > *,
.fh-language-switcher__option > * {
  margin-left: 0 !important;
  text-align: left !important;
}
.fh-currency-trigger__symbol,
.fh-currency-trigger__code,
.fh-currency-option__symbol,
.fh-currency-option__code,
.fh-currency-option__name,
.fh-language-switcher__flag,
.fh-language-switcher__code,
.fh-language-switcher__name {
  flex: 0 0 auto !important;
  text-align: left !important;
}

/* Batch 15N.8 — AI answer-readiness block */
.fh-ai-answer-block {
  margin: clamp(2rem, 4vw, 3.5rem) auto;
  padding: clamp(1.25rem, 3vw, 2rem);
  max-width: 1120px;
  border: 1px solid rgba(15, 42, 140, 0.14);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(232, 243, 255, 0.92), rgba(255, 255, 255, 0.96));
  box-shadow: 0 18px 45px rgba(15, 42, 140, 0.08);
}

.fh-ai-answer-block__eyebrow {
  color: #0f2a8c;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin-bottom: 0.55rem;
  text-transform: uppercase;
}

.fh-ai-answer-block__title {
  color: #071333;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.12;
  margin: 0 0 0.85rem;
}

.fh-ai-answer-block__summary {
  color: rgba(7, 19, 51, 0.78);
  font-size: 1.02rem;
  line-height: 1.75;
  margin: 0 0 1.25rem;
  max-width: 820px;
}

.fh-ai-answer-block__grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1.25rem 0 1.35rem;
}

.fh-ai-answer-block__item {
  border: 1px solid rgba(15, 42, 140, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
  padding: 1rem;
}

.fh-ai-answer-block__item span {
  display: block;
  color: rgba(7, 19, 51, 0.58);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin-bottom: 0.35rem;
  text-transform: uppercase;
}

.fh-ai-answer-block__item strong {
  color: #071333;
  display: block;
  font-size: 0.96rem;
  line-height: 1.55;
}

.fh-ai-answer-block__cta {
  align-items: center;
  background: #0f2a8c;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-weight: 800;
  gap: 0.45rem;
  justify-content: center;
  padding: 0.82rem 1.18rem;
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.fh-ai-answer-block__cta:hover,
.fh-ai-answer-block__cta:focus {
  color: #fff;
  box-shadow: 0 14px 28px rgba(15, 42, 140, 0.2);
  transform: translateY(-1px);
}

.fh-theme-dark .fh-ai-answer-block,
[data-theme="dark"] .fh-ai-answer-block,
.dark .fh-ai-answer-block {
  border-color: rgba(255, 255, 255, 0.14);
  background: linear-gradient(135deg, rgba(15, 42, 140, 0.26), rgba(11, 18, 32, 0.94));
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.22);
}

.fh-theme-dark .fh-ai-answer-block__eyebrow,
[data-theme="dark"] .fh-ai-answer-block__eyebrow,
.dark .fh-ai-answer-block__eyebrow,
.fh-theme-dark .fh-ai-answer-block__title,
[data-theme="dark"] .fh-ai-answer-block__title,
.dark .fh-ai-answer-block__title,
.fh-theme-dark .fh-ai-answer-block__item strong,
[data-theme="dark"] .fh-ai-answer-block__item strong,
.dark .fh-ai-answer-block__item strong {
  color: #ffffff;
}

.fh-theme-dark .fh-ai-answer-block__summary,
[data-theme="dark"] .fh-ai-answer-block__summary,
.dark .fh-ai-answer-block__summary,
.fh-theme-dark .fh-ai-answer-block__item span,
[data-theme="dark"] .fh-ai-answer-block__item span,
.dark .fh-ai-answer-block__item span {
  color: rgba(255, 255, 255, 0.74);
}

.fh-theme-dark .fh-ai-answer-block__item,
[data-theme="dark"] .fh-ai-answer-block__item,
.dark .fh-ai-answer-block__item {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
}

@media (max-width: 820px) {
  .fh-ai-answer-block__grid {
    grid-template-columns: 1fr;
  }
}

/* Batch 15N.44 — Team layout options.
   The original 3-card team layout remains available through the Card Grid widget.
   This class supports the deliberate 2-card Founder / Talent Network presentation. */
.fh-card-grid--team-layout-two-card-editorial .fh-grid-2 {
  align-items: stretch;
}
.fh-card-grid--team-layout-two-card-editorial .fh-person-card {
  min-height: 100%;
  padding: clamp(1.5rem, 2vw, 2rem);
}
.fh-card-grid--team-layout-two-card-editorial .fh-person-card .fh-card-title,
.fh-card-grid--team-layout-two-card-editorial .fh-person-card .fh-person-card__name {
  font-size: clamp(1.25rem, 1.4vw, 1.55rem);
}
@media (min-width: 768px) {
  .fh-card-grid--team-layout-two-card-editorial .fh-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .fh-card-grid--team-layout-two-card-editorial .fh-grid-2 {
    grid-template-columns: 1fr;
  }
}
