/* Foundation - button contrast, isolation, and WP Uncode reset
   Goal: every CTA is readable on every surface (hero, light, dark, header). */

/* ═══════════════════════════════════════════════════════════
   1. Base tokens
   ═══════════════════════════════════════════════════════════ */

:root {
  --fw-btn-fg: #ffffff;
  --fw-btn-bg: #6b1818;
  --fw-btn-border: #6b1818;
  --fw-btn-hover-bg: #8c2020;
  --fw-btn-hover-fg: #ffffff;
  --fw-btn-ghost-fg: #6b1818;
  --fw-btn-ghost-border: rgba(107, 24, 24, 0.45);
  --fw-btn-ghost-bg: transparent;
  --fw-btn-ghost-hover-bg: rgba(107, 24, 24, 0.08);
  --fw-btn-on-dark-fg: #ffffff;
  --fw-btn-on-dark-bg: #ffffff;
  --fw-btn-on-dark-border: #ffffff;
  --fw-btn-on-dark-text: #1a120e;
  --fw-btn-on-dark-ghost-fg: #ffffff;
  --fw-btn-on-dark-ghost-border: rgba(255, 255, 255, 0.7);
  --fw-btn-on-dark-ghost-bg: rgba(0, 0, 0, 0.28);
}

/* Brand token maps */
.theme-world {
  --fw-btn-bg: #002349;
  --fw-btn-border: #002349;
  --fw-btn-fg: #ffffff;
  --fw-btn-hover-bg: #c29b40;
  --fw-btn-hover-fg: #002349;
  --fw-btn-ghost-fg: #002349;
  --fw-btn-ghost-border: rgba(0, 35, 73, 0.4);
  --fw-btn-on-dark-bg: #c29b40;
  --fw-btn-on-dark-border: #c29b40;
  --fw-btn-on-dark-text: #002349;
  --fw-btn-on-dark-ghost-fg: #ffffff;
  --fw-btn-on-dark-ghost-border: rgba(194, 155, 64, 0.75);
  --fw-btn-on-dark-ghost-bg: rgba(0, 23, 49, 0.45);
}

.theme-israel {
  --fw-btn-bg: #000000;
  --fw-btn-border: #000000;
  --fw-btn-fg: #ffffff;
  --fw-btn-hover-bg: #171717;
  --fw-btn-hover-fg: #ffffff;
  --fw-btn-ghost-fg: #000000;
  --fw-btn-ghost-border: #000000;
  --fw-btn-on-dark-bg: #ffffff;
  --fw-btn-on-dark-border: #ffffff;
  --fw-btn-on-dark-text: #000000;
  --fw-btn-on-dark-ghost-fg: #ffffff;
  --fw-btn-on-dark-ghost-border: rgba(255, 255, 255, 0.75);
  --fw-btn-on-dark-ghost-bg: rgba(0, 0, 0, 0.35);
}

.theme-incubator {
  --fw-btn-bg: #08090a;
  --fw-btn-border: #08090a;
  --fw-btn-fg: #ffffff;
  --fw-btn-hover-bg: #27272a;
  --fw-btn-hover-fg: #ffffff;
  --fw-btn-ghost-fg: #08090a;
  --fw-btn-ghost-border: rgba(8, 9, 10, 0.25);
  --fw-btn-on-dark-bg: #e5e5e6;
  --fw-btn-on-dark-border: #e5e5e6;
  --fw-btn-on-dark-text: #08090a;
  --fw-btn-on-dark-ghost-fg: #f7f8f8;
  --fw-btn-on-dark-ghost-border: rgba(255, 255, 255, 0.28);
  --fw-btn-on-dark-ghost-bg: rgba(255, 255, 255, 0.06);
}

html[data-theme="dark"] .theme-incubator {
  --fw-btn-bg: #e5e5e6;
  --fw-btn-border: #e5e5e6;
  --fw-btn-fg: #08090a;
  --fw-btn-hover-bg: #ffffff;
  --fw-btn-hover-fg: #08090a;
  --fw-btn-ghost-fg: #e5e5e6;
  --fw-btn-ghost-border: rgba(255, 255, 255, 0.22);
  --fw-btn-ghost-hover-bg: rgba(255, 255, 255, 0.06);
}

.theme-newyork {
  --fw-btn-bg: #7c7262;
  --fw-btn-border: #7c7262;
  --fw-btn-fg: #ffffff;
  --fw-btn-hover-bg: #1c1916;
  --fw-btn-hover-fg: #ffffff;
  --fw-btn-ghost-fg: #1c1916;
  --fw-btn-ghost-border: rgba(28, 25, 22, 0.4);
  --fw-btn-on-dark-bg: rgba(255, 255, 255, 0.12);
  --fw-btn-on-dark-border: rgba(255, 255, 255, 0.85);
  --fw-btn-on-dark-text: #ffffff;
  --fw-btn-on-dark-ghost-fg: #ffffff;
  --fw-btn-on-dark-ghost-border: rgba(255, 255, 255, 0.65);
  --fw-btn-on-dark-ghost-bg: rgba(0, 0, 0, 0.3);
}

.theme-ukraine {
  --fw-btn-bg: #8c2020;
  --fw-btn-border: #8c2020;
  --fw-btn-fg: #ffffff;
  --fw-btn-hover-bg: #0a2540;
  --fw-btn-hover-fg: #ffffff;
  --fw-btn-ghost-fg: #8c2020;
  --fw-btn-ghost-border: rgba(140, 32, 32, 0.5);
  --fw-btn-on-dark-bg: #8c2020;
  --fw-btn-on-dark-border: #8c2020;
  --fw-btn-on-dark-text: #ffffff;
  --fw-btn-on-dark-ghost-fg: #ffffff;
  --fw-btn-on-dark-ghost-border: rgba(255, 255, 255, 0.75);
  --fw-btn-on-dark-ghost-bg: rgba(10, 37, 64, 0.4);
}

/* ═══════════════════════════════════════════════════════════
   2. Shared button geometry + isolation
   ═══════════════════════════════════════════════════════════ */

.fw-btn,
.fw-btn--header,
.fw-btn--ghost,
.world-btn,
.israel-btn,
.inc-btn,
.ny-btn,
.ua-btn,
.fw-page__rail a,
a.btn,
a.custom-link.btn,
.btn.border-width-0,
.btn-flat,
.btn-outline,
.btn-round {
  position: relative;
  z-index: 2;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 48px;
  padding: 0.85rem 1.5rem;
  font-family: var(--fw-font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none !important;
  text-align: center;
  line-height: 1.2;
  border-style: solid;
  border-width: 1.5px;
  border-radius: var(--fw-radius, 2px);
  cursor: pointer;
  box-sizing: border-box;
  /* Never inherit body link color */
  color: var(--fw-btn-fg) !important;
  background-color: var(--fw-btn-bg) !important;
  border-color: var(--fw-btn-border) !important;
  /* Readable over busy photography */
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  transition:
    background-color 0.25s var(--fw-ease, ease),
    border-color 0.25s var(--fw-ease, ease),
    color 0.25s var(--fw-ease, ease),
    transform 0.25s var(--fw-ease, ease),
    box-shadow 0.25s var(--fw-ease, ease);
}

.fw-btn:hover,
.fw-btn--header:hover,
.world-btn:hover,
.israel-btn:hover,
.inc-btn:hover,
.ny-btn:hover,
.ua-btn:hover,
a.btn:hover,
a.custom-link.btn:hover,
.btn.border-width-0:hover,
.btn-flat:hover,
.btn-outline:hover {
  color: var(--fw-btn-hover-fg) !important;
  background-color: var(--fw-btn-hover-bg) !important;
  border-color: var(--fw-btn-hover-bg) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* Ghost / line / outline variants */
.fw-btn--ghost,
.world-btn--ghost,
.israel-btn--line,
.inc-btn--soft,
.ny-btn--line,
.ua-btn--line,
a.btn-outline,
a.btn.btn-outline,
.btn-outline {
  color: var(--fw-btn-ghost-fg) !important;
  background-color: var(--fw-btn-ghost-bg) !important;
  border-color: var(--fw-btn-ghost-border) !important;
  box-shadow: none;
}

.fw-btn--ghost:hover,
.world-btn--ghost:hover,
.israel-btn--line:hover,
.inc-btn--soft:hover,
.ny-btn--line:hover,
.ua-btn--line:hover,
a.btn-outline:hover,
.btn-outline:hover {
  color: var(--fw-btn-ghost-fg) !important;
  background-color: var(--fw-btn-ghost-hover-bg, rgba(0, 0, 0, 0.06)) !important;
  border-color: var(--fw-btn-ghost-fg) !important;
  box-shadow: none;
}

/* ═══════════════════════════════════════════════════════════
   3. On-dark / hero surfaces (photography, navy, black)
   ═══════════════════════════════════════════════════════════ */

.world-hero .world-btn,
.world-hero .fw-btn,
.israel-hero .israel-btn,
.israel-hero .fw-btn,
.ny-hero .ny-btn,
.ny-hero .fw-btn,
.ua-hero .ua-btn,
.ua-hero .fw-btn,
.inc-hero .inc-btn,
.fw-page__hero .fw-btn,
.wd-page__cinema-copy .fw-btn,
.wd-page__cinema-copy a.btn,
[class*="-hero"] a.btn,
[class*="-hero"] a.custom-link.btn {
  color: var(--fw-btn-on-dark-text) !important;
  background-color: var(--fw-btn-on-dark-bg) !important;
  border-color: var(--fw-btn-on-dark-border) !important;
  /* Frosted plate so text never bleeds into the photo */
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);
}

.world-hero .world-btn:hover,
.world-hero .fw-btn:hover,
.israel-hero .israel-btn:hover,
.ny-hero .ny-btn:hover,
.ua-hero .ua-btn:hover,
.inc-hero .inc-btn:hover,
[class*="-hero"] a.btn:hover {
  filter: brightness(1.06);
  color: var(--fw-btn-on-dark-text) !important;
}

/* Ghost on dark - always frosted, never pure transparent */
.world-hero .world-btn--ghost,
.israel-hero .israel-btn--line,
.ny-hero .ny-btn--line,
.ua-hero .ua-btn--line,
.inc-hero .inc-btn--soft,
[class*="-hero"] a.btn-outline,
[class*="-hero"] .btn-outline {
  color: var(--fw-btn-on-dark-ghost-fg) !important;
  background-color: var(--fw-btn-on-dark-ghost-bg) !important;
  border-color: var(--fw-btn-on-dark-ghost-border) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: none;
}

.world-hero .world-btn--ghost:hover,
.israel-hero .israel-btn--line:hover,
.ny-hero .ny-btn--line:hover,
.ua-hero .ua-btn--line:hover,
.inc-hero .inc-btn--soft:hover,
[class*="-hero"] a.btn-outline:hover {
  color: #ffffff !important;
  background-color: rgba(255, 255, 255, 0.16) !important;
  border-color: #ffffff !important;
  text-shadow: none;
}

/* Hero action rows: wrap cleanly, never overlap media */
.world-hero__actions,
.israel-hero__actions,
.inc-hero__actions,
.ny-hero__actions,
.ua-hero__actions,
.fw-hero__actions,
.ix-hero__actions {
  position: relative;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  max-width: 100%;
}

.world-hero__actions > *,
.israel-hero__actions > *,
.inc-hero__actions > *,
.ny-hero__actions > *,
.ua-hero__actions > * {
  flex: 0 1 auto;
  max-width: 100%;
}

/* ═══════════════════════════════════════════════════════════
   4. Header / mobile menu CTAs
   ═══════════════════════════════════════════════════════════ */

.fw-btn--header {
  color: var(--fw-btn-fg) !important;
  background-color: var(--fw-btn-bg) !important;
  border: 1.5px solid var(--fw-btn-border) !important;
  /* Override gradient from chrome that can clash with brand */
  background-image: none !important;
}

.fw-btn--header:hover {
  color: var(--fw-btn-hover-fg) !important;
  background-color: var(--fw-btn-hover-bg) !important;
  border-color: var(--fw-btn-hover-bg) !important;
}

/* Israel header is black - white solid CTA */
.theme-israel .fw-btn--header {
  background-color: #ffffff !important;
  border-color: #ffffff !important;
  color: #000000 !important;
}
.theme-israel .fw-btn--header:hover {
  background-color: #e5e5e5 !important;
  border-color: #e5e5e5 !important;
  color: #000000 !important;
}

/* World estate header CTA — soft pill (Platform uses fw-btn--platform overrides) */
.theme-world .fw-btn--header {
  background-color: #6b1818 !important;
  border-color: #6b1818 !important;
  color: #f4ede0 !important;
  border-radius: 999px !important;
  min-height: 2.35rem !important;
  font-weight: 600 !important;
}
.theme-world .fw-btn--header:hover {
  background-color: #8c2020 !important;
  border-color: #8c2020 !important;
  color: #f4ede0 !important;
}

/* Incubator dark - light solid CTA */
.theme-incubator .fw-btn--header,
html[data-theme="dark"] .theme-incubator .fw-btn--header {
  background-color: #e5e5e6 !important;
  border-color: #e5e5e6 !important;
  color: #08090a !important;
}

/* Secondary header link must stay readable */
.fw-header__cta-secondary {
  color: var(--fw-text) !important;
  background: var(--fw-surface, #fff) !important;
  border: 1.5px solid var(--fw-border) !important;
}

.theme-israel .fw-header:not(.is-menu-open) .fw-header__cta-secondary {
  color: #fff !important;
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.45) !important;
}

/* ═══════════════════════════════════════════════════════════
   5. Page rail + compose CTAs
   ═══════════════════════════════════════════════════════════ */

.fw-page__rail a {
  min-height: 42px;
  padding: 0.65rem 1rem;
  font-size: 0.6875rem;
  color: var(--fw-text) !important;
  background-color: var(--fw-surface, #fff) !important;
  border-color: var(--fw-border) !important;
  box-shadow: none;
}

.fw-page__rail a:hover {
  color: #ffffff !important;
  background-color: var(--fw-btn-bg) !important;
  border-color: var(--fw-btn-bg) !important;
}

.theme-world .fw-page__rail a:hover {
  background-color: #002349 !important;
  border-color: #002349 !important;
  color: #ffffff !important;
}

.theme-israel .fw-page__rail a {
  border-color: #000 !important;
  color: #000 !important;
  background: #fff !important;
}
.theme-israel .fw-page__rail a:hover {
  background: #000 !important;
  color: #fff !important;
}

.theme-ukraine .fw-page__rail a {
  background: #0a2540 !important;
  border-color: #0a2540 !important;
  color: #f4ede0 !important;
}
.theme-ukraine .fw-page__rail a:hover {
  background: #8c2020 !important;
  border-color: #8c2020 !important;
  color: #fff !important;
}

/* ═══════════════════════════════════════════════════════════
   6. WP / Uncode button reset (CMS body leftovers)
   ═══════════════════════════════════════════════════════════ */

/* Kill Uncode icon absolute positioning that overlaps labels */
a.btn .btn-icon,
a.custom-link .btn-icon,
.btn .icon-box,
.btn i[class*="fa-"],
.btn .fa,
.btn .ticon,
.btn .btn-container,
.btn .btn-icon-holder {
  display: none !important;
}

a.btn,
a.custom-link.btn {
  width: auto !important;
  max-width: 100%;
  margin: 0.35rem 0.35rem 0.35rem 0 !important;
  float: none !important;
  clear: none !important;
  white-space: normal;
}

/* Block full-width WP buttons become normal CTAs in prose */
.fw-compose a.btn.btn-block,
.fw-compose a.btn-block,
.ix-rich-prose a.btn.btn-block,
.fw-prose a.btn.btn-block {
  display: inline-flex !important;
  width: auto !important;
  max-width: 100%;
}

/* Underline-only Uncode typographic buttons → solid CTAs */
a.btn-underline-out,
a.btn-custom-typo,
.btn-underline-out {
  min-height: 48px;
  padding: 0.85rem 1.5rem !important;
  border: 1.5px solid var(--fw-btn-border) !important;
  background: var(--fw-btn-bg) !important;
  color: var(--fw-btn-fg) !important;
  text-decoration: none !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  box-shadow: none;
}

a.btn-underline-out:hover,
a.btn-custom-typo:hover {
  background: var(--fw-btn-hover-bg) !important;
  border-color: var(--fw-btn-hover-bg) !important;
  color: var(--fw-btn-hover-fg) !important;
}

/* Flat WP buttons often inherit white-on-white */
a.btn-flat,
.btn-flat {
  background-color: var(--fw-btn-bg) !important;
  color: var(--fw-btn-fg) !important;
  border-color: var(--fw-btn-border) !important;
}

/* Group consecutive CMS buttons */
.fw-compose p:has(> a.btn),
.fw-chapter__inner p:has(> a.btn) {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
}

/* ═══════════════════════════════════════════════════════════
   7. Global link color must NOT paint buttons
   ═══════════════════════════════════════════════════════════ */

.theme-world a.fw-btn,
.theme-world a.world-btn,
.theme-world a.btn,
.theme-israel a.fw-btn,
.theme-israel a.israel-btn,
.theme-israel a.btn,
.theme-incubator a.fw-btn,
.theme-incubator a.inc-btn,
.theme-incubator a.btn,
.theme-newyork a.fw-btn,
.theme-newyork a.ny-btn,
.theme-newyork a.btn,
.theme-ukraine a.fw-btn,
.theme-ukraine a.ua-btn,
.theme-ukraine a.btn {
  /* Reinforced against brand `a { color: ... }` rules */
  text-decoration: none !important;
}

/* Feature / stack / compose: links inside body stay links; CTAs stay CTAs */
.fw-feature a:not(.btn):not([class*="-btn"]),
.fw-stack-row a:not(.btn):not([class*="-btn"]),
.fw-faq-item a:not(.btn):not([class*="-btn"]) {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

/* ═══════════════════════════════════════════════════════════
   8. Dark mode global surfaces
   ═══════════════════════════════════════════════════════════ */

html[data-theme="dark"] .theme-world,
html[data-theme="dark"] .theme-israel,
html[data-theme="dark"] .theme-newyork,
html[data-theme="dark"] .theme-ukraine {
  --fw-btn-ghost-hover-bg: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .theme-world {
  --fw-btn-bg: #c29b40;
  --fw-btn-border: #c29b40;
  --fw-btn-fg: #001731;
  --fw-btn-hover-bg: #d4b05a;
  --fw-btn-hover-fg: #001731;
  --fw-btn-ghost-fg: #d4b05a;
  --fw-btn-ghost-border: rgba(194, 155, 64, 0.5);
}

html[data-theme="dark"] .theme-israel {
  --fw-btn-bg: #ffffff;
  --fw-btn-border: #ffffff;
  --fw-btn-fg: #0a0a0a;
  --fw-btn-hover-bg: #e5e5e5;
  --fw-btn-hover-fg: #0a0a0a;
  --fw-btn-ghost-fg: #fafafa;
  --fw-btn-ghost-border: rgba(255, 255, 255, 0.35);
}

html[data-theme="dark"] .theme-newyork {
  /* Solid plates: cream on charcoal (dark ink text) */
  --fw-btn-bg: #f0eeea;
  --fw-btn-border: #f0eeea;
  --fw-btn-fg: #12100e;
  --fw-btn-hover-bg: #ffffff;
  --fw-btn-hover-fg: #12100e;
  --fw-btn-ghost-fg: #f0eeea;
  --fw-btn-ghost-border: rgba(240, 238, 234, 0.45);
  --fw-btn-ghost-bg: transparent;
  --fw-btn-ghost-hover-bg: rgba(240, 238, 234, 0.1);
  /* On photography / inverse surfaces */
  --fw-btn-on-dark-bg: #f0eeea;
  --fw-btn-on-dark-border: #f0eeea;
  --fw-btn-on-dark-text: #12100e;
  --fw-btn-on-dark-ghost-fg: #f0eeea;
  --fw-btn-on-dark-ghost-border: rgba(240, 238, 234, 0.7);
  --fw-btn-on-dark-ghost-bg: rgba(0, 0, 0, 0.35);
}

html[data-theme="dark"] .theme-ukraine {
  --fw-btn-bg: #b4463e;
  --fw-btn-border: #b4463e;
  --fw-btn-fg: #ffffff;
  --fw-btn-hover-bg: #8c2020;
  --fw-btn-hover-fg: #ffffff;
  --fw-btn-ghost-fg: #f4ede0;
  --fw-btn-ghost-border: rgba(244, 237, 224, 0.4);
}

/* ═══════════════════════════════════════════════════════════
   9. Color-mode chips (not CTAs, but must stay readable)
   ═══════════════════════════════════════════════════════════ */

.fw-color-mode__btn {
  color: var(--fw-text) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  min-height: 0;
  padding: 0.35rem 0.55rem;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  box-shadow: none !important;
  transform: none !important;
}

.fw-color-mode__btn.is-active,
.fw-color-mode__btn[aria-pressed="true"] {
  background: var(--fw-surface-alt, #f4f4f4) !important;
  border-color: var(--fw-border) !important;
  color: var(--fw-text) !important;
}

/* Israel light: brand crimson chips (never white-on-white).
   Dark overrides live in israel-compass.css */
.theme-israel .fw-header .fw-color-mode__btn {
  color: #8c2020 !important;
  background: transparent !important;
  border-color: transparent !important;
}
.theme-israel .fw-header .fw-color-mode__btn.is-active,
.theme-israel .fw-header .fw-color-mode__btn[aria-pressed="true"] {
  color: #ffffff !important;
  background: #8c2020 !important;
  border-color: #8c2020 !important;
}
.theme-israel .fw-header .fw-color-mode__btn:hover {
  color: #6b1818 !important;
  background: color-mix(in srgb, #8c2020 12%, transparent) !important;
}
.theme-israel .fw-header .fw-color-mode__btn.is-active:hover,
.theme-israel .fw-header .fw-color-mode__btn[aria-pressed="true"]:hover {
  color: #ffffff !important;
  background: #6b1818 !important;
  border-color: #6b1818 !important;
}

/* ═══════════════════════════════════════════════════════════
   10. Mobile safety
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 600px) {
  .world-hero__actions,
  .israel-hero__actions,
  .inc-hero__actions,
  .ny-hero__actions,
  .ua-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .world-hero__actions > *,
  .israel-hero__actions > *,
  .inc-hero__actions > *,
  .ny-hero__actions > *,
  .ua-hero__actions > *,
  a.btn,
  a.custom-link.btn {
    width: 100%;
    max-width: 100%;
  }
}

/* Prevent magnetic / tilt transforms from clipping button labels off-screen */
[data-fw-magnetic].fw-btn,
[data-fw-magnetic].world-btn,
[data-fw-magnetic].israel-btn,
[data-fw-magnetic].inc-btn,
[data-fw-magnetic].ny-btn,
[data-fw-magnetic].ua-btn,
[data-fw-magnetic].btn {
  will-change: transform;
}

/* Prefer reduced motion: no hover slide that can feel like overlap */
@media (prefers-reduced-motion: reduce) {
  .fw-btn:hover,
  .world-btn:hover,
  .israel-btn:hover,
  .inc-btn:hover,
  .ny-btn:hover,
  .ua-btn:hover,
  a.btn:hover {
    transform: none;
  }
}

/* ═══════════════════════════════════════════════════════════
   11. Dark composed chapters / footers / cinematic bands
   ═══════════════════════════════════════════════════════════ */

.theme-ukraine .fw-chapter:nth-child(3n) a.btn,
.theme-ukraine .fw-chapter:nth-child(3n) a.custom-link.btn,
.theme-footer--cinematic a.fw-btn,
.theme-footer--cinematic a.btn,
.theme-footer--operator a.fw-btn,
.wd-page__contact-intro a.fw-btn,
.wd-page__contact-intro a.btn,
.wd-page__network-copy a.fw-btn,
.wd-page__network-copy a.btn,
.wd-page__inc-head a.fw-btn,
.wd-page__inc-head a.btn {
  color: var(--fw-btn-on-dark-text) !important;
  background-color: var(--fw-btn-on-dark-bg) !important;
  border-color: var(--fw-btn-on-dark-border) !important;
}

.theme-footer a.fw-btn,
.theme-footer a.btn {
  /* Footers are often dark - default to on-dark plate */
  color: var(--fw-btn-on-dark-text) !important;
  background-color: var(--fw-btn-on-dark-bg) !important;
  border-color: var(--fw-btn-on-dark-border) !important;
}

/* Light footers (Ukraine editorial) keep light tokens */
.theme-footer--editorial a.fw-btn,
.theme-footer--editorial a.btn {
  color: var(--fw-btn-fg) !important;
  background-color: var(--fw-btn-bg) !important;
  border-color: var(--fw-btn-border) !important;
}

/* Never let body link underline bleed onto CTAs */
a.fw-btn,
a.world-btn,
a.israel-btn,
a.inc-btn,
a.ny-btn,
a.ua-btn,
a.btn,
a.custom-link.btn {
  text-decoration: none !important;
  text-underline-offset: 0;
}

/* Focus rings for accessibility without breaking layout */
a.fw-btn:focus-visible,
a.world-btn:focus-visible,
a.israel-btn:focus-visible,
a.inc-btn:focus-visible,
a.ny-btn:focus-visible,
a.ua-btn:focus-visible,
a.btn:focus-visible,
.fw-page__rail a:focus-visible {
  outline: 2px solid var(--fw-btn-bg);
  outline-offset: 3px;
}

html[data-theme="dark"] a.fw-btn:focus-visible,
html[data-theme="dark"] a.btn:focus-visible {
  outline-color: var(--fw-btn-fg);
}

/* Hero copy always above media + veil */
.world-hero__copy,
.israel-hero__copy,
.israel-hero__market,
.inc-hero__stage,
.inc-hero__copy,
.ny-hero__copy,
.ua-hero__kinetic-copy,
.fw-page__hero-copy {
  position: relative;
  z-index: 3;
}

.world-hero__media,
.ny-hero__media,
.ua-hero__media,
.fw-page__hero-media {
  z-index: 0;
}

.world-hero__veil,
.ny-hero__scrim,
.ny-hero__gradient,
.ua-hero__veil,
.fw-page__hero-veil {
  z-index: 1;
  pointer-events: none;
}
