/* Generated by scripts/stamp-chrome.py. Edit site4 + widgets, then stamp. */
/* ════════════════════════════════════════════════════════
   JIL Site4 design system - CANONICAL institutional chrome
   Source of truth: jilsovereign.com homepage (homepage.html)
   Structure from JIL_SITE_4.html; palette = jil-tokens gold/navy
   (never mint). Nav/footer partials: header|footer-institutional.
   Legacy v2 nav/footer auto-follow via jil-header.css Site4 rules.
   Version: 20260912q
   ════════════════════════════════════════════════════════ */

:root {
      --navy: #0A0D10;
      --navy2: #102A43;
      --blue: #2563EB;
      --gold: #C9A227;
      --gold-primary: #C9A227;
      --gold-soft: #E4C35A;
      --gold-deep: #A87C1F;
      --gold-light: #F2D47A;
      --text-on-gold: #0B0F16;
      --sand: #f6f1e8;
      --ink: #0f172a;
      --muted: #5b6570;
      --line: rgba(255,255,255,0.14);
      --glow: rgba(201,162,39,0.35);
      --nav-bg: rgba(10,13,16,0.94);
    }
    /* Do NOT unscoped-reset * margin/padding - that flattens docs content
       spacing when this sheet is injected into /docs pages. Box-sizing only. */
    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body.site4-body {
      font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif;
      color: var(--ink);
      background: #fff;
      line-height: 1.55;
      margin: 0;
    }
    /* Nav links keep inherit; body content links must not turn navy-on-navy. */
    header.s4-header a { color: inherit; text-decoration: none; }
    /* Header bar uses class="wrap nav" on ONE div - keep horizontal inset here.
       Never set padding to "0.75rem 0" alone on .nav: that wiped left/right margin. */
    header.s4-header .wrap,
    header.s4-header .wrap.nav,
    .s4-footer .wrap,
    footer:has(.foot-top) > .wrap {
      width: min(1120px, 100%);
      max-width: 1120px;
      margin: 0 auto;
      padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
      padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
      box-sizing: border-box;
    }

    /* CRITICAL: only the Site4 chrome header - never bare `header` (docs pages
       use content heroes that must stay in-flow). */
    header.s4-header {
      position: sticky; top: 0; z-index: 3000;
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      background: var(--nav-bg, rgba(10,13,16,0.94));
      border-bottom: 1px solid rgba(201,162,39,0.18);
    }
    header.s4-header .nav,
    header.s4-header .wrap.nav {
      display: flex; align-items: center; justify-content: space-between;
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
      /* horizontal padding lives on .wrap - do not zero it here */
      gap: 0.75rem;
      flex-wrap: nowrap;
      min-height: 64px;
    }
    .logo {
      display: inline-flex; align-items: center; gap: 0.55rem;
      color: #fff; font-weight: 800; letter-spacing: 0.08em; font-size: 0.92rem;
      text-decoration: none;
      flex-shrink: 0;
      min-width: 0;
    }
    .logo .logo-mark {
      width: 56px; height: 56px; display: block; flex-shrink: 0;
      border-radius: 10px;
      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.4));
    }
    .logo .logo-word { font-size: 1rem; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; }
    .nav-links {
      display: flex; gap: 1.05rem; flex-wrap: nowrap; align-items: center;
      flex: 1 1 auto; justify-content: flex-end; min-width: 0;
    }
    header.s4-header,
    header.s4-header .logo,
    header.s4-header .logo-word,
    header.s4-header .logo-sub,
    header.s4-header .nav-links,
    header.s4-header .nav-links a,
    header.s4-header .nav-cta,
    header.s4-header .nav-dd-trigger,
    header.s4-header .nav-dd-m-trigger,
    .s4-mobile-links a,
    .s4-mobile-links button,
    .s4-footer,
    .s4-footer a,
    .s4-footer strong {
      font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif!important;
    }
    .nav-links a {
      color: #b7c9d8; text-decoration: none; font-size: 0.86rem; transition: color 0.15s;
      white-space: nowrap;
    }
    .nav-links a:hover { color: #fff; }
    .nav-dd { position: relative; }
    .nav-dd-trigger {
      display: inline-flex; align-items: center; gap: 0.4rem;
      color: #b7c9d8; text-decoration: none; font-size: 0.86rem;
      white-space: nowrap; background: none; border: 0; cursor: pointer;
    }
    .nav-dd-trigger svg { opacity: 0.7; flex-shrink: 0; }
    .nav-dd:hover .nav-dd-trigger,
    .nav-dd:focus-within .nav-dd-trigger,
    .nav-dd.open .nav-dd-trigger { color: #fff; }
    .nav-dd.open .nav-dd-trigger svg,
    .nav-dd:hover .nav-dd-trigger svg { transform: rotate(180deg); }
    .nav-dd-trigger svg { transition: transform 0.15s ease; }
    .nav-dd-panel {
      position: absolute; left: 50%; top: 100%;
      transform: translateX(-50%);
      padding-top: 0.7rem;
      opacity: 0; visibility: hidden; pointer-events: none;
      transition: opacity 0.15s ease, visibility 0.15s ease;
      z-index: 4000;
    }
    .nav-dd:hover .nav-dd-panel,
    .nav-dd:focus-within .nav-dd-panel,
    .nav-dd.open .nav-dd-panel {
      opacity: 1; visibility: visible; pointer-events: auto;
    }
    .nav-dd-panel-inner {
      min-width: 15.5rem;
      background: #0A0D10;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 1rem;
      box-shadow: 0 16px 40px rgba(0,0,0,0.4);
      overflow: hidden;
    }
    .nav-dd-panel-inner a {
      display: block;
      padding: 0.85rem 1.15rem;
      color: #e8eef4 !important;
      font-size: 0.88rem;
      font-weight: 600;
      border-bottom: 1px solid rgba(255,255,255,0.06);
      white-space: nowrap;
    }
    .nav-dd-panel-inner a:last-child { border-bottom: 0; }
    .nav-dd-panel-inner a:hover,
    .nav-dd-panel-inner a:focus {
      background: rgba(201,162,39,0.1);
      color: #fff !important;
    }
    .nav-dd-mobile { border-bottom: 1px solid rgba(255,255,255,0.08); }
    .nav-dd-m-trigger {
      display: flex; align-items: center; justify-content: space-between;
      width: 100%;
      padding: 0.9rem 0.35rem;
      color: #c9d9e6;
      background: none; border: 0;
      font-size: 1rem; font-weight: 600;
      cursor: pointer; text-align: left;
    }
    .nav-dd-m-trigger svg { opacity: 0.7; }
    .nav-dd-m-trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
    .nav-dd-m-panel a {
      padding-left: 1.15rem !important;
      font-weight: 500 !important;
      font-size: 0.95rem !important;
    }
    .nav-cta {
      background: var(--gold); color: var(--text-on-gold, #0B0F16) !important; text-decoration: none;
      padding: 0.55rem 1rem; border-radius: 999px; font-size: 0.85rem; font-weight: 800;
      box-shadow: 0 0 0 1px rgba(201,162,39,0.35), 0 8px 24px rgba(201,162,39,0.22);
      flex-shrink: 0; white-space: nowrap;
    }
    .nav-cta:hover { filter: brightness(1.06); color: var(--text-on-gold, #0B0F16) !important; }

    /* --- Site4 mobile nav (hamburger + drawer) --- */
    .s4-nav-toggle {
      display: none;
      position: relative;
      width: 44px; height: 44px;
      margin: 0; padding: 0;
      border: 1px solid rgba(255,255,255,0.28);
      border-radius: 10px;
      background: rgba(255,255,255,0.04);
      cursor: pointer;
      flex-shrink: 0;
      z-index: 60;
    }
    .s4-nav-toggle span {
      position: absolute; left: 11px; right: 11px;
      height: 2px; border-radius: 2px;
      background: #e8eef4;
      transition: transform 0.2s ease, opacity 0.2s ease, top 0.2s ease;
    }
    .s4-nav-toggle span:nth-child(1) { top: 14px; }
    .s4-nav-toggle span:nth-child(2) { top: 21px; }
    .s4-nav-toggle span:nth-child(3) { top: 28px; }
    .s4-nav-toggle.open span:nth-child(1) { top: 21px; transform: rotate(45deg); }
    .s4-nav-toggle.open span:nth-child(2) { opacity: 0; }
    .s4-nav-toggle.open span:nth-child(3) { top: 21px; transform: rotate(-45deg); }
    .s4-mobile-panel {
      display: none;
      background: #0A0D10;
      border-top: 1px solid rgba(201,162,39,0.22);
      padding: 0.75rem 1rem 1.25rem;
      box-shadow: 0 16px 40px rgba(0,0,0,0.35);
    }
    .s4-mobile-panel[hidden] { display: none !important; }
    .s4-mobile-links {
      display: flex; flex-direction: column; gap: 0;
    }
    .s4-mobile-links a {
      display: block;
      padding: 0.9rem 0.35rem;
      color: #c9d9e6;
      text-decoration: none;
      font-size: 1rem; font-weight: 600;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    .s4-mobile-links a:hover,
    .s4-mobile-links a:focus {
      color: #fff;
      background: rgba(201,162,39,0.08);
    }
    .s4-mobile-cta {
      display: block !important;
      text-align: center;
      margin-top: 1rem;
      width: 100%;
      box-sizing: border-box;
    }
    body.s4-nav-open { overflow: hidden; }

    @media (max-width: 900px) {
      header.s4-header .nav,
      header.s4-header .wrap.nav {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
        min-height: 56px;
        gap: 0.5rem;
      }
      header.s4-header .logo .logo-mark { width: 44px; height: 44px; }
      header.s4-header .logo .logo-word { font-size: 0.85rem; letter-spacing: 0.06em; }
      header.s4-header .nav-links,
      .s4-nav-cta-desktop { display: none !important; }
      .s4-nav-toggle { display: inline-block; }
      .s4-mobile-panel:not([hidden]) { display: block; }
      /* i18n widget: keep compact on the bar */
      header.s4-header .jil-lang-selector,
      header.s4-header .jil-i18n-selector,
      header.s4-header .jil-i18n-wrap {
        margin-left: auto;
      }
    }
    @media (max-width: 420px) {
      header.s4-header .logo .logo-word { display: none; }
    }
    /* Lang selector on navy Site4 header */
    header.s4-header .jil-lang-selector,
    header.s4-header .jil-i18n-selector,
    body.site4-body header.s4-header .jil-lang-selector {
      color: #b7c9d8;
    }
    header .jil-lang-selector button,
    header .jil-lang-selector .jil-lang-trigger,
    body.site4-body header.s4-header #jil-lang-current {
      color: #e8eef4 !important;
      border-color: rgba(255,255,255,0.22);
    }

    .hero {
      /* Canonical JIL hero: graphite navy + gold glow (jil-tokens --gold / --navy) */
      background:
        radial-gradient(ellipse 900px 480px at 50% -10%, rgba(212,175,55,0.16) 0%, transparent 55%),
        radial-gradient(700px 360px at 12% 20%, rgba(201,162,39,0.12), transparent 50%),
        radial-gradient(600px 320px at 90% 80%, rgba(37,99,235,0.10), transparent 50%),
        linear-gradient(165deg, #0B1220 0%, #0F172A 48%, #111827 100%);
      color: #fff;
      padding: 5rem 0 4.25rem;
      overflow: hidden;
      position: relative;
    }
    .hero-kicker {
      display: inline-flex; align-items: center; gap: 0.45rem;
      font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase;
      color: #9ec0d6; margin-bottom: 1.2rem;
      border: 1px solid rgba(158,192,214,0.35);
      padding: 0.35rem 0.8rem; border-radius: 999px;
      background: rgba(255,255,255,0.04);
    }
    .hero-kicker i {
      width: 7px; height: 7px; border-radius: 50%; background: var(--gold);
      box-shadow: 0 0 14px var(--glow); display: inline-block;
    }
    .hero h1 {
      font-size: clamp(2.2rem, 5.6vw, 3.7rem);
      line-height: 1.03; max-width: none; font-weight: 800;
      margin-bottom: 1.15rem; letter-spacing: -0.03em;
    }
    .hero h1 span {
      display: block;
      background: linear-gradient(90deg, #F5E6A8, #D4AF37 45%, #A87C1F);
      -webkit-background-clip: text; background-clip: text;
      color: transparent;
    }
    .hero-lead {
      font-size: 1.15rem; max-width: none; color: #c9d9e6;
      margin-bottom: 1.7rem; line-height: 1.5;
    }
    .hero-lead + .hero-adapt { margin-top: -0.75rem; }
    .hero-adapt {
      font-size: 0.92rem; max-width: none; color: #a9bdd0;
      margin: 0 0 0.85rem; line-height: 1.5;
    }
    .hero-track {
      display: flex;
      align-items: center;
      gap: 0.65rem;
      margin: 0 0 1.35rem;
      min-width: 0;
    }
    .hero-track-label {
      flex: 0 0 auto;
      font-size: 0.66rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: #E4C35A;
      white-space: nowrap;
    }
    .hero-track-pills {
      display: flex;
      gap: 0.4rem;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      min-width: 0;
      padding-bottom: 0.1rem;
    }
    .hero-track-pills::-webkit-scrollbar { display: none; }
    .hero-track-pills .pill {
      flex: 0 0 auto;
      white-space: nowrap;
      font-size: 0.68rem;
      color: #d8c98a;
      border-color: rgba(228,195,90,0.28);
      background: rgba(228,195,90,0.08);
    }
    @media (max-width: 640px) {
      .hero-track { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
    }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-bottom: 1.85rem; }
    .btn {
      display: inline-block; text-decoration: none; font-weight: 750;
      padding: 0.9rem 1.3rem; border-radius: 10px; font-size: 0.96rem;
      transition: transform 0.15s, filter 0.15s, border-color 0.15s;
    }
    .btn:hover { transform: translateY(-1px); }
    .btn-primary {
      background: var(--gold); color: #0B0F16;
      box-shadow: 0 10px 30px rgba(201,162,39,0.28);
    }
    .btn-primary, .btn-primary:link, .btn-primary:visited, .btn-primary:hover {
      color: #0B0F16 !important;
      -webkit-text-fill-color: #0B0F16;
    }
    .btn-primary:hover { filter: brightness(1.06); }
    /* Default ghost = light-surface (dark ink). Dark surfaces re-declare below. */
    .btn-ghost {
      background: rgba(15,23,42,0.04); color: #102A43;
      border: 1px solid rgba(16,42,67,0.28);
    }
    .btn-ghost:hover { border-color: #102A43; background: rgba(15,23,42,0.08); }
    /* Ghost / outline on dark bands (hero, navy sections) */
    .hero .btn-ghost, .hero a.btn-ghost,
    .sting .btn-ghost, .cta-band .btn-ghost, .radv .btn-ghost,
    .quote-band .btn-ghost, .v2-hero .btn-ghost {
      background: rgba(255,255,255,0.04); color: #f8fafc;
      border: 1px solid rgba(255,255,255,0.35);
    }
    .hero .btn-ghost:hover, .hero a.btn-ghost:hover,
    .sting .btn-ghost:hover, .cta-band .btn-ghost:hover {
      border-color: #fff; background: rgba(255,255,255,0.10); color: #fff;
    }
    .pills { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-bottom: 1.75rem; }
    .pill {
      font-size: 0.73rem; color: #d0e2ef; font-weight: 600;
      border: 1px solid rgba(255,255,255,0.16);
      background: rgba(255,255,255,0.05);
      padding: 0.36rem 0.72rem; border-radius: 999px;
    }
    .hero-caps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0.65rem;
      margin-top: 0.25rem;
    }
    @media (max-width: 800px) {
      .hero-caps { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 520px) {
      .hero-caps { grid-template-columns: 1fr; }
    }
    .hero-cap {
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 12px;
      padding: 0.85rem 0.9rem;
      transition: border-color 0.15s, background 0.15s;
    }
    .hero-cap:hover {
      border-color: rgba(228,195,90,0.45);
      background: rgba(201,162,39,0.08);
    }
    .hero-cap strong {
      display: block;
      font-size: 0.78rem;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: #E4C35A;
      margin-bottom: 0.3rem;
      font-weight: 800;
    }
    .hero-cap span {
      display: block;
      font-size: 0.86rem;
      color: #c9d9e6;
      line-height: 1.35;
    }
    .hero h1 { max-width: none !important; }

    .marquee {
      background: #0A0D10; color: #E4C35A;
      padding: 0.68rem 0; overflow: hidden; white-space: nowrap;
      border-top: 1px solid rgba(228,195,90,0.28);
      border-bottom: 1px solid rgba(228,195,90,0.28);
      font-size: 0.8rem; font-weight: 700; letter-spacing: 0.03em;
      position: relative;
    }
    /* Flex + max-content so -50% is a true seamless loop (inline-block was sticky) */
    .marquee-track {
      display: flex;
      flex-wrap: nowrap;
      width: max-content;
      gap: 0;
      animation: s4-marquee-scroll 38s linear infinite;
      will-change: transform;
      transform: translate3d(0, 0, 0);
    }
    .marquee-group {
      display: flex;
      flex-wrap: nowrap;
      flex-shrink: 0;
      align-items: center;
    }
    @keyframes s4-marquee-scroll {
      from { transform: translate3d(0, 0, 0); }
      to { transform: translate3d(-50%, 0, 0); }
    }
    .marquee-group > span {
      display: inline-block;
      padding: 0 1.2rem;
      flex-shrink: 0;
    }
    .marquee .dot { color: #C9A227; margin: 0 0.35rem; }
    /* Keep ticker moving even when design-system sets animation-iteration-count:1 */
    @media (prefers-reduced-motion: reduce) {
      .marquee-track {
        animation: s4-marquee-scroll 90s linear infinite !important;
        animation-duration: 90s !important;
        animation-iteration-count: infinite !important;
      }
    }

    .shift {
      background: var(--sand);
      padding: 3.4rem 0;
    }
    .shift-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem;
    }
    @media (max-width: 800px) { .shift-grid { grid-template-columns: 1fr; } }
    .shift-card {
      border-radius: 18px; padding: 1.5rem 1.4rem;
      border: 1px solid #e5e0d6;
    }
    .shift-card.old { background: #fff; }
    .shift-card.next {
      background: #071a28; color: #fff; border-color: #102A43;
      box-shadow: 0 20px 50px rgba(15,23,42,0.2);
    }
    .shift-card .tag {
      font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase;
      font-weight: 800; margin-bottom: 0.5rem;
    }
    .shift-card.old .tag { color: #94a3b8; }
    .shift-card.next .tag { color: #E4C35A; }
    .shift-card h3 {
      font-size: 1.2rem; margin-bottom: 0.85rem; letter-spacing: -0.01em;
    }
    .shift-card.old h3 { color: var(--navy); }
    .shift-card.next h3 { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
    .shift-card ul { list-style: none; }
    .shift-card li {
      padding: 0.35rem 0 0.35rem 1.1rem; position: relative;
      font-size: 0.94rem;
    }
    .shift-card.old li { color: #475569; }
    .shift-card.next li { color: #c9d9e6; }
    .shift-card.old li::before { content: "-"; position: absolute; left: 0; color: #94a3b8; }
    .shift-card.next li::before { content: "→"; position: absolute; left: 0; color: #E4C35A; font-weight: 700; }

    .section-kicker {
      font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase;
      color: var(--blue); font-weight: 800; margin-bottom: 0.5rem;
    }
    .section-title {
      font-size: clamp(1.65rem, 3.3vw, 2.3rem); line-height: 1.12;
      color: var(--navy); margin-bottom: 0.6rem; max-width: none;
      letter-spacing: -0.025em;
    }
    .section-sub { color: var(--muted); max-width: none; margin-bottom: 1.85rem; font-size: 1.02rem; }

    .future { padding: 3.75rem 0; background: #fff; }
    .future-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem;
    }
    @media (max-width: 900px) { .future-grid { grid-template-columns: 1fr; } }
    .future-card {
      border-radius: 16px; padding: 1.35rem 1.25rem;
      border: 1px solid #e5e7eb; background: #fafbfc;
      transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
    }
    .future-card:hover {
      transform: translateY(-2px);
      border-color: #E4C35A;
      box-shadow: 0 14px 36px rgba(201,162,39,0.1);
    }
    .future-card .icon {
      font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
      color: var(--gold-deep); font-weight: 800; margin-bottom: 0.45rem;
    }
    .future-card h3 { font-size: 1.05rem; color: var(--navy); margin-bottom: 0.45rem; }
    .future-card p { font-size: 0.92rem; color: #475569; }

    .sting {
      background: #071a28; color: #fff; padding: 3.25rem 0;
    }
    .sting-inner {
      display: grid; grid-template-columns: 1.2fr 0.9fr; gap: 2rem; align-items: center;
    }
    @media (max-width: 800px) { .sting-inner { grid-template-columns: 1fr; } }
    .sting h2 {
      font-size: clamp(1.55rem, 3.2vw, 2.1rem); line-height: 1.15;
      margin-bottom: 0.9rem; letter-spacing: -0.02em;
    }
    .sting p { color: #b7c9d7; font-size: 1.02rem; margin-bottom: 0.7rem; }
    .sting-stat {
      background: rgba(201,162,39,0.08);
      border: 1px solid rgba(228,195,90,0.3);
      border-radius: 16px; padding: 1.4rem 1.3rem;
    }
    .sting-stat .num {
      font-size: 2rem; font-weight: 800; color: #E4C35A;
      letter-spacing: -0.03em; margin-bottom: 0.35rem;
    }
    .sting-stat .lbl { font-size: 0.92rem; color: #c9d9e6; }

    .contrast { padding: 3.75rem 0; background: var(--sand); }
    .paths {
      display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: stretch;
    }
    @media (max-width: 820px) {
      .paths { grid-template-columns: 1fr; }
      .paths .arrow { display: none; }
    }
    .path {
      border-radius: 18px; padding: 1.5rem 1.35rem; border: 1px solid #e5e7eb; background: #fff;
    }
    .path-new {
      background: linear-gradient(165deg, #FFFBEB 0%, #FEF9E7 100%);
      border-color: #E4C35A;
      box-shadow: 0 16px 40px rgba(201,162,39,0.12);
    }
    .path h3 { font-size: 1.05rem; margin-bottom: 0.8rem; color: var(--navy); }
    .path ul { list-style: none; }
    .path li {
      padding: 0.4rem 0 0.4rem 1.15rem; position: relative;
      font-size: 0.95rem; color: #334155;
    }
    .path-old li::before { content: "-"; position: absolute; left: 0; color: #94a3b8; font-weight: 700; }
    .path-new li::before { content: "✓"; position: absolute; left: 0; color: var(--gold-deep); font-weight: 700; }
    .path .end {
      margin-top: 1rem; padding-top: 0.9rem; border-top: 1px dashed #cbd5e1;
      font-size: 0.88rem; font-weight: 750;
    }
    .path-old .end { color: #64748b; }
    .path-new .end { color: var(--gold-deep); }
    .arrow { align-self: center; text-align: center; font-size: 1.7rem; color: #94a3b8; font-weight: 800; }

    .quote-band {
      background: #050f18; color: #fff; padding: 2.6rem 0; text-align: center;
    }
    .quote-band blockquote {
      font-size: clamp(1.2rem, 2.8vw, 1.75rem);
      font-weight: 800; line-height: 1.25; max-width: 20ch; margin: 0 auto;
      letter-spacing: -0.02em;
    }
    .quote-band blockquote span { color: #E4C35A; }
    .quote-band p { margin-top: 0.8rem; color: #8aa0b3; font-size: 0.92rem; }

    .radv {
      background:
        radial-gradient(700px 320px at 80% 0%, rgba(201,162,39,0.12), transparent 55%),
        #050f18;
      color: #fff;
      padding: 3.75rem 0;
    }
    .radv .section-kicker { color: #E4C35A; }
    .radv .section-title { color: #fff; max-width: none; }
    .radv .section-sub { color: #a8bdcd; }
    .radv-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem;
    }
    @media (max-width: 800px) { .radv-grid { grid-template-columns: 1fr; } }
    .radv-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 16px; padding: 1.3rem;
      transition: border-color 0.15s, background 0.15s;
    }
    .radv-card:hover {
      border-color: rgba(228,195,90,0.45);
      background: rgba(201,162,39,0.06);
    }
    .radv-card strong {
      display: block; color: #E4C35A; font-size: 0.76rem; letter-spacing: 0.08em;
      text-transform: uppercase; margin-bottom: 0.45rem;
    }
    .radv-card p { color: #d5e3ed; font-size: 0.95rem; }

    .products { padding: 3.75rem 0; background: #fff; }
    .dual {
      display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; margin-bottom: 1.25rem;
    }
    @media (max-width: 750px) { .dual { grid-template-columns: 1fr; } }
    .prod {
      background: #fafbfc; border-radius: 18px; padding: 1.5rem;
      border: 1px solid #e5e7eb;
      transition: transform 0.15s, box-shadow 0.15s;
    }
    .prod:hover { transform: translateY(-2px); box-shadow: 0 16px 40px rgba(15,23,42,0.08); }
    .prod.creb { border-top: 5px solid #dc2626; }
    .prod.areb { border-top: 5px solid var(--gold-deep); }
    .prod .tag {
      font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase;
      font-weight: 800; margin-bottom: 0.4rem;
    }
    .prod.creb .tag { color: #dc2626; }
    .prod.areb .tag { color: var(--gold-deep); }
    .prod h3 { font-size: 1.2rem; color: var(--navy); margin-bottom: 0.5rem; }
    .prod p { color: #3d4650; font-size: 0.95rem; }
    .line {
      text-align: center; font-size: 1.05rem; font-weight: 800; color: var(--navy);
      margin-top: 0.35rem;
    }

    .how { padding: 3.75rem 0; background: var(--sand); }
    .steps { counter-reset: step; max-width: none; }
    .steps li {
      list-style: none; counter-increment: step;
      padding: 1.05rem 0 1.05rem 3.2rem; position: relative;
      border-bottom: 1px solid #e8e0d4;
    }
    .steps li:last-child { border-bottom: 0; }
    .steps li::before {
      content: counter(step);
      position: absolute; left: 0; top: 1rem;
      width: 2.15rem; height: 2.15rem; border-radius: 50%;
      background: var(--navy); color: #fff;
      display: flex; align-items: center; justify-content: center;
      font-size: 0.85rem; font-weight: 800;
    }
    .steps strong { color: var(--navy); }

    .trust { padding: 2.75rem 0; background: #0b1722; }
    .trust-row {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.85rem;
    }
    @media (max-width: 800px) { .trust-row { grid-template-columns: 1fr 1fr; } }
    .trust-item {
      background: rgba(255,255,255,0.04); border-radius: 14px; padding: 1.05rem 0.85rem;
      border: 1px solid rgba(255,255,255,0.08); text-align: center;
    }
    .trust-item strong { display: block; color: #E4C35A; font-size: 0.92rem; margin-bottom: 0.28rem; }
    .trust-item span { font-size: 0.8rem; color: #9db4c6; }

    .cta-band {
      background:
        radial-gradient(600px 280px at 20% 0%, rgba(201,162,39,0.25), transparent 60%),
        linear-gradient(135deg, #0B3D5C, #102A43);
      color: #fff; padding: 3.6rem 0; text-align: center;
    }
    .cta-band h2 {
      font-size: clamp(1.6rem, 3.4vw, 2.3rem); margin-bottom: 0.65rem;
      letter-spacing: -0.02em;
    }
    .cta-band p { color: #CBD5E1; max-width: none; margin: 0 auto 1.45rem; font-size: 1.02rem; }
    .cta-band .hero-actions { justify-content: center; }

    /* Institutional chrome footer only (has .foot-top). Bare <footer> on
       docs content pages must not inherit this dark slab. */
    footer:has(.foot-top),
    footer.s4-footer {
      background: #050f18; color: #8aa0b3; padding: 3rem 0 1.5rem; font-size: 0.84rem;
    }
    footer:has(.foot-top) a,
    footer.s4-footer a { color: #b7c9d8; text-decoration: none; }
    footer:has(.foot-top) a:hover,
    footer.s4-footer a:hover { color: #fff; }
    .foot-top {
      display: grid;
      grid-template-columns: 1.4fr repeat(4, 1fr);
      gap: 1.75rem 1.25rem;
      padding-bottom: 2rem;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    @media (max-width: 980px) {
      .foot-top { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 560px) {
      .foot-top { grid-template-columns: 1fr; }
    }
    .foot-brand .foot-logo {
      display: inline-flex; align-items: center; gap: 0.55rem;
      margin-bottom: 0.75rem; color: #fff;
    }
    .foot-brand .foot-logo img {
      width: 52px; height: 52px; border-radius: 10px;
      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.4));
    }
    .foot-brand strong {
      color: #fff; display: block; margin-bottom: 0.55rem; font-size: 0.92rem; letter-spacing: 0.06em;
    }
    .foot-brand p { line-height: 1.5; margin-bottom: 0.85rem; max-width: none; }
    .foot-brand .phone { color: #E4C35A; font-weight: 700; }
    .foot-col strong {
      color: #fff; display: block; margin-bottom: 0.7rem; font-size: 0.82rem;
      letter-spacing: 0.04em; text-transform: uppercase;
    }
    .foot-col a {
      display: block; padding: 0.22rem 0; font-size: 0.84rem;
    }
    .foot-mid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem;
      padding: 1.75rem 0;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    @media (max-width: 800px) {
      .foot-mid { grid-template-columns: 1fr; }
    }
    .foot-bottom {
      display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem;
      justify-content: space-between; align-items: center;
      padding-top: 1.25rem; font-size: 0.78rem; color: #7a8f9f;
    }
    .foot-bottom-links { display: flex; flex-wrap: wrap; gap: 0.85rem; }
    .foot-bottom-links a { color: #9db4c6; }
  
/* Hide legacy jil-nav if any residual markup appears */
body.site4-body .jil-nav { display: none !important; }
/* Print: hide Site4 chrome on print briefs */
@media print { header, footer { display: none !important; } }


/* ========== Legacy page bridge (editorial / v14 under Site4 chrome) ========== */
/* v2-hero → canonical JIL navy + gold */
body.site4-body .v2-hero,
body.site4-body section.v2-hero {
  background:
    radial-gradient(ellipse 900px 480px at 50% -10%, rgba(212,175,55,0.16), transparent 55%),
    linear-gradient(165deg, #0B1220 0%, #0F172A 50%, #111827 100%) !important;
  color: #e2e8f0 !important;
  border-bottom: 1px solid rgba(201,162,39,0.18);
  padding: 3.5rem 0 3rem !important;
}
body.site4-body .v2-hero .v2-hero-title,
body.site4-body .v2-hero h1 {
  color: #f8fafc !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif!important;
}
body.site4-body .v2-hero .v2-hero-title em,
body.site4-body .v2-hero h1 em {
  font-style: normal !important;
  background: linear-gradient(90deg, #F5E6A8, #D4AF37 45%, #A87C1F);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}
body.site4-body .v2-hero .v2-section-subtitle,
body.site4-body .v2-hero p {
  color: #c9d9e6 !important;
}
body.site4-body .v2-hero .v2-label,
body.site4-body .v2-hero .eyebrow {
  color: #9ec0d6 !important;
  border-color: rgba(158,192,214,0.35) !important;
}
body.site4-body .v2-container {
  width: min(1120px, calc(100% - 2rem));
  margin-left: auto;
  margin-right: auto;
}
/* Align Site4 with canonical jil-tokens gold */
body.site4-body {
  --gold: #C9A227;
  --gold-primary: #C9A227;
  --gold-soft: #E4C35A;
  --gold-deep: #A87C1F;
  --label-eyebrow: #7C5F18;
  --navy: #102A43;
  --navy-primary: #102A43;
}
body.site4-body .btn-primary,
body.site4-body a.btn-primary,
body.site4-body .btn-primary-lg,
body.site4-body .jil-btn--primary,
body.site4-body button.jil-btn--primary {
  display: inline-block;
  background: #C9A227 !important;
  color: #0B0F16 !important;
  border: none !important;
  border-radius: 10px !important;
  font-weight: 750 !important;
  padding: 0.85rem 1.25rem !important;
  text-decoration: none !important;
  box-shadow: 0 10px 30px rgba(201,162,39,0.28);
}
body.site4-body .btn-primary:hover,
body.site4-body a.btn-primary:hover {
  filter: brightness(1.06);
}
body.site4-body .btn-outline,
body.site4-body a.btn-outline,
body.site4-body .btn-ghost {
  display: inline-block;
  background: rgba(15,23,42,0.04) !important;
  color: #102A43 !important;
  border: 1px solid rgba(11,61,92,0.28) !important;
  border-radius: 10px !important;
  font-weight: 700 !important;
  padding: 0.85rem 1.25rem !important;
  text-decoration: none !important;
}
body.site4-body .editorial-hero,
body.site4-body .editorial-hero-section,
body.site4-body section.editorial-hero {
  background:
    radial-gradient(ellipse 900px 480px at 50% -10%, rgba(212,175,55,0.16), transparent 55%),
    linear-gradient(165deg, #0B1220 0%, #0F172A 50%, #111827 100%) !important;
  color: #e2e8f0 !important;
  border-bottom: 1px solid rgba(201,162,39,0.18);
  padding: 3.5rem 0 3rem !important;
}
body.site4-body .editorial-hero h1,
body.site4-body .editorial-hero .section-title,
body.site4-body .editorial-hero-section h1,
body.site4-body .editorial-hero-section .section-title {
  color: #f8fafc !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
}
body.site4-body .editorial-hero h1 em,
body.site4-body .editorial-hero .section-title em,
body.site4-body .editorial-hero-section h1 em {
  font-style: normal;
  background: linear-gradient(90deg, #F5E6A8, #D4AF37 45%, #A87C1F);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}
body.site4-body .editorial-hero p,
body.site4-body .editorial-hero .hero-sub,
body.site4-body .editorial-hero .body-lg,
body.site4-body .editorial-hero-section p,
body.site4-body .editorial-hero-section .section-desc {
  color: #c9d9e6 !important;
}
body.site4-body .editorial-hero .section-marker,
body.site4-body .editorial-hero-section .section-marker {
  color: #9ec0d6 !important;
  border-color: rgba(158,192,214,0.35) !important;
}
body.site4-body .editorial-hero .btn-outline,
body.site4-body .editorial-hero a.btn-outline,
body.site4-body .editorial-hero-section .btn-outline {
  background: rgba(255,255,255,0.04) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
}
body.site4-body .section-marker {
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 800;
  color: #102A43;
}
/* Canonical gold CTAs */
body.site4-body .btn-gold,
body.site4-body a.hw-btn-gold,
body.site4-body .hw-btn-gold {
  background: #C9A227 !important;
  color: #0B0F16 !important;
  border-color: transparent !important;
}

/* ========== Sitewide body consistency (all site4-body pages) ========== */
body.site4-body {
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif!important;
  background: #fff !important;
  color: #0f172a !important;
}
/* Content shells: center the column AND keep a real left/right gutter.
   max-width alone left .wrap flush to the viewport edge (homepage body
   stuck to the left). Header uses .wrap.nav - excluded so chrome rules win. */
body.site4-body main,
body.site4-body .container,
body.site4-body .wrap:not(.nav),
body:has(header.s4-header) .wrap:not(.nav),
.hero .wrap, .phero .wrap, .lead .wrap, .band .wrap, .cta-band .wrap {
  max-width: 1120px;
  width: min(1120px, 100%);
  margin-left: auto;
  margin-right: auto;
  padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
  padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
  box-sizing: border-box;
}
body.site4-body .container {
  width: min(1120px, calc(100% - 2rem));
  /* horizontal gutter already from padding above; keep width calc as belt */
}
/* Unify legacy section titles with Site4 */
body.site4-body .section-title,
body.site4-body h2.section-title,
body.site4-body .v2-section-title {
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif!important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: #102A43 !important;
}
body.site4-body .section-desc,
body.site4-body .body-lg,
body.site4-body .lede {
  color: #5b6570 !important;
  line-height: 1.6 !important;
}
body.site4-body .section-marker,
body.site4-body .eyebrow,
body.site4-body .section-kicker {
  font-size: 0.72rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  color: #102A43 !important;
}
/* Cards */
body.site4-body .cap-card,
body.site4-body .card,
body.site4-body .pr-state,
body.site4-body .feature-card {
  border-radius: 14px !important;
  border: 1px solid #e5e0d6 !important;
  border-top: 3px solid #C9A227 !important;
  background: #fff !important;
}
body.site4-body .cap-card h3,
body.site4-body .cap-card h4,
body.site4-body .card h3 {
  color: #0f172a !important;
  font-family: inherit !important;
}
/* Gold callouts - canonical */
body.site4-body .callout.gold,
body.site4-body .callout {
  background: rgba(201,162,39,0.10) !important;
  border: 1px solid rgba(201,162,39,0.28) !important;
  border-radius: 12px !important;
  color: #0f172a !important;
}
body.site4-body a {
  color: inherit;
}
body.site4-body main a:not(.btn):not(.btn-primary):not(.btn-outline):not(.btn-ghost):not(.nav-cta):not(.jil-nav__dropdown-link) {
  color: #102A43;
}
/* Sticky header slightly lighter to match hero */
body.site4-body > header,
body.site4-body header.s4-header {
  background: rgba(10, 13, 16, 0.94) !important;
  border-bottom: 1px solid rgba(201,162,39,0.18) !important;
}
/* Soft sand bands for alternating sections when used */
body.site4-body .s4-band.alt,
body.site4-body section.alt-band {
  background: #f6f1e8;
}
/* Hide legacy gold underline decorations that clash */
body.site4-body .section-title em {
  font-style: normal !important;
  color: #A87C1F !important;
  background: none !important;
  -webkit-text-fill-color: unset !important;
}
/* Docs-page padding shouldn't fight site4 */
body.site4-body.docs-page main {
  max-width: none;
  padding: 0;
}


/* ========== CONTRAST GUARANTEES (readable type + CTAs) ==========
   Rules:
   - Gold / warm fills → near-black text (#0B0F16), never white-on-gold
   - Dark navy surfaces → light text (#e8eef4 / #f8fafc)
   - Light page surfaces → dark ink (#0f172a / #102A43)
   - Ghost/outline → surface-aware (dark ink on light, light ink on dark)
   ================================================================== */

/* --- Gold primary CTAs: black-on-gold only --- */
body.site4-body .btn-primary,
body.site4-body a.btn-primary,
body.site4-body a.btn-primary:link,
body.site4-body a.btn-primary:visited,
body.site4-body a.btn-primary:hover,
body.site4-body a.btn-primary:active,
body.site4-body .btn-primary-lg,
body.site4-body a.btn-primary-lg,
body.site4-body .nav-cta,
body.site4-body a.nav-cta,
body.site4-body a.nav-cta:link,
body.site4-body a.nav-cta:visited,
body.site4-body a.nav-cta:hover,
body.site4-body .jil-btn--primary,
body.site4-body a.jil-btn--primary,
body.site4-body a.jil-btn--primary:link,
body.site4-body a.jil-btn--primary:visited,
body.site4-body a.jil-btn--primary:hover,
body.site4-body button.jil-btn--primary,
body.site4-body .btn-gold,
body.site4-body a.btn-gold,
body.site4-body a.hw-btn-gold,
body.site4-body .hw-btn-gold,
body.site4-body .jil-nav .jil-btn--primary,
body.site4-body .jil-nav__cta.jil-btn--primary {
  background: #C9A227 !important;
  background-color: #C9A227 !important;
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
  border-color: transparent !important;
  text-decoration: none !important;
}
body.site4-body .btn-primary:hover,
body.site4-body a.btn-primary:hover,
body.site4-body .nav-cta:hover,
body.site4-body a.nav-cta:hover,
body.site4-body .jil-btn--primary:hover {
  filter: brightness(1.05);
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
}

/* --- Light page body --- */
body.site4-body {
  background: #ffffff !important;
  color: #0f172a !important;
}
body.site4-body main,
body.site4-body .s4-band:not(.alt),
body.site4-body .future,
body.site4-body .products,
body.site4-body .shift,
body.site4-body .contrast,
body.site4-body .how,
body.site4-body .s4-band.alt {
  color: #0f172a;
}
body.site4-body .s4-band.alt,
body.site4-body section.alt-band,
body.site4-body .shift,
body.site4-body .contrast,
body.site4-body .how {
  /* sand bands stay light */
  color: #0f172a !important;
}

/* Outline / ghost on light surfaces: dark ink */
body.site4-body .btn-outline,
body.site4-body a.btn-outline,
body.site4-body a.btn-outline:link,
body.site4-body a.btn-outline:visited,
body.site4-body .btn-ghost,
body.site4-body a.btn-ghost,
body.site4-body a.btn-ghost:link,
body.site4-body a.btn-ghost:visited,
body.site4-body .jil-btn--ghost,
body.site4-body .jil-btn--outline,
body.site4-body a.jil-btn--ghost,
body.site4-body a.jil-btn--outline {
  color: #102A43 !important;
  -webkit-text-fill-color: #102A43 !important;
  background: #ffffff !important;
  border: 1px solid rgba(16, 42, 67, 0.32) !important;
  text-decoration: none !important;
}
body.site4-body .btn-outline:hover,
body.site4-body a.btn-outline:hover,
body.site4-body .btn-ghost:hover,
body.site4-body a.btn-ghost:hover {
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
  background: #f8fafc !important;
  border-color: #102A43 !important;
}

/* --- Dark surfaces: light text (never dark ink on navy) --- */
body.site4-body > header,
body.site4-body header.s4-header,
body.site4-body .hero,
body.site4-body section.hero,
body.site4-body .v2-hero,
body.site4-body section.v2-hero,
body.site4-body .editorial-hero,
body.site4-body .editorial-hero-section,
body.site4-body footer,
body.site4-body .sting,
body.site4-body .radv,
body.site4-body .cta-band,
body.site4-body .quote-band,
body.site4-body .marquee,
body.site4-body .trust,
body.site4-body .shift-card.next {
  color: #e8eef4 !important;
}
body.site4-body header.s4-header .logo,
body.site4-body header.s4-header .logo-word,
body.site4-body header.s4-header .nav-links a {
  color: #e8eef4 !important;
  -webkit-text-fill-color: unset;
}
body.site4-body header.s4-header .nav-links a { color: #b7c9d8 !important; }
body.site4-body header.s4-header .nav-links a:hover { color: #ffffff !important; }

body.site4-body .hero h1,
body.site4-body .hero .hero-lead,
body.site4-body .v2-hero h1,
body.site4-body .v2-hero .v2-hero-title,
body.site4-body .v2-hero p,
body.site4-body .sting h2,
body.site4-body .sting p,
body.site4-body .radv .section-title,
body.site4-body .radv .section-sub,
body.site4-body .cta-band h2,
body.site4-body .cta-band p,
body.site4-body footer,
body.site4-body footer p,
body.site4-body footer a {
  /* ensure no dark-on-dark from generic title rules */
}
body.site4-body .hero h1,
body.site4-body .v2-hero h1,
body.site4-body .v2-hero .v2-hero-title { color: #f8fafc !important; }
body.site4-body .hero .hero-lead,
body.site4-body .v2-hero p,
body.site4-body .v2-hero .v2-section-subtitle { color: #c9d9e6 !important; }
body.site4-body .sting h2,
body.site4-body .radv .section-title,
body.site4-body .cta-band h2,
body.site4-body .quote-band blockquote { color: #f8fafc !important; }
body.site4-body .sting p,
body.site4-body .radv .section-sub,
body.site4-body .cta-band p { color: #c9d9e6 !important; }
body.site4-body .radv .section-kicker { color: #E4C35A !important; }

/* Ghost/outline ON dark surfaces: light text on transparent dark */
body.site4-body .hero .btn-ghost,
body.site4-body .hero a.btn-ghost,
body.site4-body .hero .btn-outline,
body.site4-body .hero a.btn-outline,
body.site4-body .v2-hero .btn-ghost,
body.site4-body .v2-hero a.btn-ghost,
body.site4-body .v2-hero .btn-outline,
body.site4-body .editorial-hero .btn-ghost,
body.site4-body .editorial-hero .btn-outline,
body.site4-body .editorial-hero a.btn-outline,
body.site4-body .sting .btn-ghost,
body.site4-body .sting .btn-outline,
body.site4-body .sting a.btn-outline,
body.site4-body .cta-band .btn-ghost,
body.site4-body .cta-band .btn-outline,
body.site4-body .cta-band a.btn-outline,
body.site4-body .radv .btn-ghost,
body.site4-body .radv .btn-outline {
  color: #f8fafc !important;
  -webkit-text-fill-color: #f8fafc !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.38) !important;
}
body.site4-body .hero .btn-ghost:hover,
body.site4-body .hero a.btn-ghost:hover,
body.site4-body .cta-band .btn-outline:hover,
body.site4-body .sting a.btn-outline:hover {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: rgba(255,255,255,0.12) !important;
  border-color: #ffffff !important;
}

/* Gold primary still dark text even inside hero */
body.site4-body .hero .btn-primary,
body.site4-body .hero a.btn-primary,
body.site4-body .cta-band .btn-primary,
body.site4-body .cta-band a.btn-primary,
body.site4-body .sting .btn-primary,
body.site4-body .v2-hero .btn-primary,
body.site4-body .v2-hero a.btn-primary {
  background: #C9A227 !important;
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
}

/* Section titles on light pages stay navy (don't inherit footer white) */
body.site4-body .future .section-title,
body.site4-body .products .section-title,
body.site4-body .how .section-title,
body.site4-body .shift .section-title,
body.site4-body .contrast .section-title,
body.site4-body .s4-band:not(.alt) h2 {
  color: #102A43 !important;
}
body.site4-body main p,
body.site4-body main li,
body.site4-body .s4-band p,
body.site4-body .s4-card p {
  color: #B9C4D8;
}
body.site4-body .s4-card h3 {
  color: #F1F5FF;
}
body.site4-body .s4-card .tag { color: #E4C35A; }

/* Footer: light muted on dark navy */
body.site4-body footer { color: #9db4c6 !important; }
body.site4-body footer a { color: #c9d9e6 !important; }
body.site4-body footer a:hover { color: #ffffff !important; }
body.site4-body footer strong,
body.site4-body footer .foot-brand strong,
body.site4-body footer .foot-logo { color: #f8fafc !important; }
body.site4-body footer .phone { color: #E4C35A !important; }

/* Prevent generic title rule from darkening hero headings */
body.site4-body .hero .section-title,
body.site4-body .radv .section-title,
body.site4-body .sting .section-title {
  color: #f8fafc !important;
}

/* Form controls on light surfaces */
body.site4-body input,
body.site4-body select,
body.site4-body textarea {
  color: #0f172a;
  background: #ffffff;
  border-color: #d9e2ec;
}
body.site4-body input::placeholder,
body.site4-body textarea::placeholder {
  color: #64748b;
  opacity: 1;
}

/* Docs unlock / cards: dark on light */
body.site4-body .docs-unlock-card,
body.site4-body .docs-unlock-card h1,
body.site4-body .docs-unlock-card p,
body.site4-body .docs-unlock-card label {
  color: #0f172a;
}
body.site4-body .docs-unlock-card h1 { color: #102A43 !important; }
body.site4-body .docs-unlock-card p { color: #334155 !important; }
body.site4-body .docs-unlock-card .cta {
  background: #C9A227 !important;
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
}
body.site4-body .docs-unlock-card .cta.secondary {
  background: #ffffff !important;
  color: #102A43 !important;
  -webkit-text-fill-color: #102A43 !important;
  border: 1px solid rgba(16,42,67,0.28) !important;
}
body.site4-body .docs-unlock-card button[type=submit] {
  background: #102A43 !important;
  color: #f8fafc !important;
  -webkit-text-fill-color: #f8fafc !important;
}

/* Kill white text forced onto light gold from design-system inverse tokens */
body.site4-body [class*="btn"][style*="background"] {
  /* no-op: specificity anchor */
}


/* ========== SITE4 CHROME TEMPLATE (homepage is the source of truth) ==========
   Applied on every institutional page via body.site4-body.
   Sticky header owns the top. Breadcrumb sits UNDER the nav (document flow).
   No fixed-nav body padding that shoves chrome around.
   ========================================================================== */

/* --- Sticky header owns viewport top; cancel legacy fixed-nav body padding --- */
body.site4-body,
body.site4-body.has-breadcrumb {
  padding-top: 0 !important;
}
body.site4-body > header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1100 !important;
}

/* --- Breadcrumb: in-flow under header (never fixed above the nav) --- */
body.site4-body .jil-breadcrumb {
  position: static !important;
  top: auto !important;
  inset: auto !important;
  width: 100% !important;
  z-index: 40 !important;
  background: #f6f1e8 !important;
  border-bottom: 1px solid #e5e0d6 !important;
  font-size: 0.82rem !important;
  line-height: 1.35 !important;
}
body.site4-body .jil-breadcrumb__inner {
  max-width: 1120px !important;
  width: min(1120px, calc(100% - 2rem)) !important;
  margin: 0 auto !important;
  padding: 0.55rem 0 !important;
}
body.site4-body .jil-breadcrumb .jil-breadcrumb__link {
  color: #5b6570 !important;
}
body.site4-body .jil-breadcrumb .jil-breadcrumb__link:hover {
  color: #A87C1F !important;
}
body.site4-body .jil-breadcrumb__sep {
  color: #94a3b8 !important;
}
body.site4-body .jil-breadcrumb__current {
  color: #102A43 !important;
  font-weight: 700 !important;
}

/* --- Marquee ticker: JIL gold band (not mint/teal) --- */
body.site4-body .marquee,
.marquee {
  background: linear-gradient(90deg, #0B1220 0%, #102A43 50%, #0B1220 100%) !important;
  color: #F2D47A !important;
  border-top: 1px solid rgba(201,162,39,0.45) !important;
  border-bottom: 1px solid rgba(201,162,39,0.45) !important;
}
body.site4-body .marquee .dot,
.marquee .dot {
  color: #C9A227 !important;
}

/* --- Language switcher inside Site4 nav (dark bar) --- */
body.site4-body header.s4-header .nav {
  gap: 0.65rem;
}
body.site4-body header.s4-header .jil-i18n-wrap {
  flex: 0 0 auto;
  order: 3;
  z-index: 20;
}
body.site4-body header.s4-header .nav-cta {
  order: 4;
}
body.site4-body header.s4-header .jil-i18n-btn {
  color: #e8eef4 !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  background: rgba(255,255,255,0.06) !important;
  border-radius: 8px !important;
  padding: 0.4rem 0.7rem !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
}
body.site4-body header.s4-header .jil-i18n-btn:hover {
  border-color: rgba(201,162,39,0.55) !important;
  background: rgba(201,162,39,0.12) !important;
  color: #F2D47A !important;
}
body.site4-body header.s4-header .jil-i18n-dropdown {
  background: #ffffff !important;
  border: 1px solid #e5e0d6 !important;
  z-index: 1200 !important;
}
body.site4-body header.s4-header .jil-i18n-dropdown a {
  color: #0f172a !important;
}
body.site4-body header.s4-header .jil-i18n-dropdown a:hover {
  background: #fbf7ee !important;
  color: #102A43 !important;
}
body.site4-body header.s4-header .jil-i18n-dropdown a.active {
  color: #A87C1F !important;
}
/* Hide floating fallback picker when Site4 nav is present */
body.site4-body #jil-i18n-fallback-picker {
  display: none !important;
}

/* --- June persona: compact bar under chrome --- */
body.site4-body .jil-persona-wrap {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  padding: 0.65rem 1rem !important;
}
body.site4-body .jil-persona {
  border-color: #e5e0d6 !important;
  box-shadow: 0 1px 2px rgba(15,23,42,0.04) !important;
}
body.site4-body .jil-persona-send {
  background: #C9A227 !important;
  color: #0B0F16 !important;
}
body.site4-body .jil-persona-send:hover {
  background: #E4C35A !important;
  color: #0B0F16 !important;
}

/* --- Homepage-like page sections for legacy editorial/docs pages --- */
body.site4-body.docs-page main,
body.site4-body .docs-page main {
  max-width: 1120px;
  margin: 0 auto;
  padding: 1.5rem 1rem 3rem;
}
body.site4-body .v2-hero,
body.site4-body section.v2-hero,
body.site4-body .phi-hero {
  /* already themed in contrast block; ensure light stats readable */
}
body.site4-body .phi-hero {
  background:
    radial-gradient(ellipse 900px 480px at 50% -10%, rgba(212,175,55,0.14), transparent 55%),
    linear-gradient(165deg, #0B1220 0%, #0F172A 50%, #111827 100%) !important;
  color: #e8eef4 !important;
  border-bottom: 1px solid rgba(201,162,39,0.2) !important;
}
body.site4-body .phi-hero h1 { color: #f8fafc !important; }
body.site4-body .phi-hero-sub { color: #c9d9e6 !important; }
body.site4-body .phi-hero-stat-value { color: #F2D47A !important; }
body.site4-body .phi-hero-stat-label {
  color: #9db4c6 !important; /* was near-white on light - unreadable on light heroes */
}
/* Proof cards: always dark ink on white tiles */
body.site4-body .phi-card,
body.site4-body a.phi-card {
  background: #ffffff !important;
  border: 1px solid #e5e0d6 !important;
  border-top: 3px solid #C9A227 !important;
  color: #0f172a !important;
}
body.site4-body .phi-card h3,
body.site4-body .phi-card .phi-card-number,
body.site4-body .phi-card-link {
  color: #102A43 !important;
}
body.site4-body .phi-card p,
body.site4-body .phi-card-highlights li {
  color: #475569 !important;
}
body.site4-body .phi-card-badge {
  color: #A87C1F !important;
  background: rgba(201,162,39,0.12) !important;
  border-color: rgba(201,162,39,0.35) !important;
}
body.site4-body .phi-card-highlights li::before {
  color: #C9A227 !important;
}
body.site4-body .phi-validation-banner,
body.site4-body .phi-assurance-map,
body.site4-body .phi-boundary,
body.site4-body .phi-bundle {
  background: #ffffff !important;
  color: #0f172a !important;
}
body.site4-body .phi-validation-inner h2,
body.site4-body .phi-validation-firm-name {
  color: #102A43 !important;
}
body.site4-body .phi-validation-inner p,
body.site4-body .phi-validation-firm-loc {
  color: #475569 !important;
}
body.site4-body .phi-validation-firm-badge {
  background: #C9A227 !important;
}
body.site4-body .phi-validation-points li {
  color: #334155 !important;
}
body.site4-body .phi-validation-points li::before {
  color: #C9A227 !important;
}

/* Products page cards → homepage card language */
body.site4-body .pr-card,
body.site4-body .pr-state,
body.site4-body .pr-layer {
  background: #ffffff !important;
  border-color: #e5e0d6 !important;
  color: #0f172a !important;
}
body.site4-body .pr-card h3,
body.site4-body .pr-state h3,
body.site4-body .pr-layer h4 {
  color: #102A43 !important;
}
body.site4-body .pr-card .cap,
body.site4-body .pr-state p,
body.site4-body .pr-layer p {
  color: #475569 !important;
}
body.site4-body .pr-badge.live,
body.site4-body .pr-status.live {
  background: rgba(201,162,39,0.12) !important;
  color: #A87C1F !important;
  border-color: #C9A227 !important;
}
body.site4-body .pr-card {
  border-top: 3px solid #C9A227 !important;
  border-radius: 14px !important;
}

/* Sample CREB / callouts: JIL gold not UPS brown */
body.site4-body .callout.gold,
body.site4-body .callout {
  background: rgba(201,162,39,0.10) !important;
  border: 1px solid rgba(201,162,39,0.35) !important;
  color: #0f172a !important;
}
body.site4-body .callout.gold strong,
body.site4-body .callout strong {
  color: #102A43 !important;
}
body.site4-body .creb-envelope dd span,
body.site4-body .creb-envelope dd code {
  background: rgba(201,162,39,0.12) !important;
  color: #7C5F18 !important; /* gold-brown readable on cream, not UPS brown */
}
body.site4-body .creb-envelope {
  color: #0f172a !important;
}
body.site4-body .creb-envelope h1,
body.site4-body .creb-envelope h2,
body.site4-body .creb-envelope h3 {
  color: #102A43 !important;
}

/* Generic light-tile rescue: any white/near-white card with inherited light text */
body.site4-body [class*="card"],
body.site4-body [class*="tile"],
body.site4-body .feature-card,
body.site4-body .cap-card {
  color: #0f172a;
}


/* ═══════════════════════════════════════════════════════════════════
   CONTRAST LAW - permanent NEVER-DO rules (do not weaken)
   ─────────────────────────────────────────────────────────────────
   These are brand/engineering invariants for every Site4 surface
   (jilsovereign.com, docs.jilsovereign.com, injected institutional
   chrome). Encode the ban as CSS so a later stylesheet cannot paint
   unreadable CTAs without deliberately removing this block.

   NEVER:
     ✗ Gold (#C9A227 / #E4C35A / #F2D47A) TEXT on gold FILL
     ✗ White / near-white TEXT on gold FILL
     ✗ Light ink on light-gold / cream buttons
     ✗ Dark navy TEXT on dark navy BACKGROUND
     ✗ Body link `a { color: gold }` winning over filled gold CTAs

   ALWAYS:
     ✓ Gold primary fill (#C9A227) → text #0B0F16 (near-black)
     ✓ Dark navy / graphite surfaces → text #e8eef4 / #f8fafc
     ✓ Light page surfaces → text #0f172a / #102A43
     ✓ Ghost/outline on dark → light border + light text
     ✓ Ghost/outline on light → navy border + navy text

   Covered controls: .nav-cta, .btn-primary*, .btn-gold, .cta*,
   .jil-btn--primary, .docs-session-btn.primary, .v14-btn-buy,
   .hw-btn-gold, and any [class*="btn"] sitting on gold fill.
   ═══════════════════════════════════════════════════════════════════ */

/* Gold FILL → black TEXT only (nuclear; last-in cascade on Site4 pages) */
html body.site4-body a.nav-cta,
html body.site4-body a.nav-cta:link,
html body.site4-body a.nav-cta:visited,
html body.site4-body a.nav-cta:hover,
html body.site4-body a.nav-cta:active,
html body.site4-body a.nav-cta:focus,
html body.site4-body .nav-cta,
html body.site4-body button.nav-cta,
html body.site4-body a.btn-primary,
html body.site4-body a.btn-primary:link,
html body.site4-body a.btn-primary:visited,
html body.site4-body a.btn-primary:hover,
html body.site4-body a.btn-primary:active,
html body.site4-body .btn-primary,
html body.site4-body a.btn-primary-lg,
html body.site4-body .btn-primary-lg,
html body.site4-body a.btn-gold,
html body.site4-body .btn-gold,
html body.site4-body a.cta-primary,
html body.site4-body .cta-primary,
html body.site4-body a.cta-gold,
html body.site4-body .cta-gold,
html body.site4-body a.cta:not(.secondary):not(.cta-secondary),
html body.site4-body .cta:not(.secondary):not(.cta-secondary),
html body.site4-body a.jil-btn--primary,
html body.site4-body .jil-btn--primary,
html body.site4-body a.jil-nav__cta,
html body.site4-body .jil-nav__cta,
html body.site4-body a.docs-session-btn.primary,
html body.site4-body .docs-session-btn.primary,
html body.site4-body a.v14-btn-buy,
html body.site4-body .v14-btn-buy,
html body.site4-body a.hw-btn-gold,
html body.site4-body .hw-btn-gold,
html body.site4-body a.v2-mobile-cta,
html body.site4-body .v2-mobile-cta {
  background: #C9A227 !important;
  background-color: #C9A227 !important;
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
  /* kill accidental gold/white text inheritance from bare `a` rules */
  text-decoration: none !important;
  text-shadow: none !important;
}

/* Explicit ban: never recolor gold-fill CTA text to gold or white */
html body.site4-body a.nav-cta[style*="color"],
html body.site4-body .nav-cta[style*="color"] {
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
}

/* Also lock when data-theme is editorial (docs unlock) even if body class races */
html[data-theme="sovereign-editorial"] a.nav-cta,
html[data-theme="sovereign-editorial"] a.nav-cta:link,
html[data-theme="sovereign-editorial"] a.nav-cta:visited,
html[data-theme="sovereign-editorial"] a.nav-cta:hover,
html[data-theme="sovereign-editorial"] .nav-cta,
html[data-theme="sovereign-editorial"] a.docs-session-btn.primary,
html[data-theme="sovereign-editorial"] .docs-session-btn.primary,
html[data-theme="sovereign-editorial"] a.cta:not(.secondary),
html[data-theme="sovereign-editorial"] .docs-unlock-card .cta:not(.secondary),
html[data-theme="sovereign-editorial"] .docs-unlock-card a.cta:not(.secondary) {
  background: #C9A227 !important;
  background-color: #C9A227 !important;
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
}

/* Docs host global: same lock without requiring site4-body (belt + suspenders) */
html a.nav-cta,
html a.nav-cta:link,
html a.nav-cta:visited,
html a.nav-cta:hover,
html a.nav-cta:active,
html .nav-cta {
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
}
/* Only force gold fill when the control is meant to be the gold pill CTA
   (class present). Do not paint every .nav-cta child. */
html a.nav-cta,
html .nav-cta {
  background: #C9A227 !important;
  background-color: #C9A227 !important;
}

/* Docs auto-hero paints a cream plate on the first container h1.
   Site4 editorial heroes are navy with white type. Strip the plate so
   the title stays on the navy band (white on cream was unreadable). */
body.site4-body .editorial-hero h1,
body.site4-body .editorial-hero .section-title,
body.site4-body .editorial-hero-section h1,
body.site4-body .editorial-hero-section .section-title {
  background: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 0 0.25rem !important;
  border-bottom: none !important;
  color: #f8fafc !important;
  -webkit-text-fill-color: #f8fafc !important;
}
body.site4-body .editorial-hero h1::after,
body.site4-body .editorial-hero .section-title::after,
body.site4-body .editorial-hero-section h1::after,
body.site4-body .editorial-hero-section .section-title::after {
  content: none !important;
  display: none !important;
}

/* Paragraphs fill the wrap. A second measure made copy stop mid-page. */
body.site4-body :is(p, .lede, .dek, .section-sub, .section-desc, .hero-lead, .hero-adapt, .sec-lede, .body-lg, .v2-section-subtitle, .section-title),
body.site4-body .hero h1,
body.site4-body .vp-hero h1,
body.site4-body .vp-section h2 {
  max-width: none;
}

/* ===================================================================
   DARK CONTAINER CONTRAST LAW (no dark/black text on dark backgrounds)
   Reverses all text on dark containers to crisp white and light accents.
   =================================================================== */

/* Ensure shift-card.next (dark card) h3 title is crisp white */
body.site4-body .shift-card.next h3 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* All headings inside dark containers and main */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section,
  .card, .lcard, .acard, .inst-card, .step, .holding, .cside, .note, .tpcall,
  footer.s4-footer, footer:has(.foot-top), .jil-footer,
  header.s4-header, .s4-mobile-panel
) :is(h1, h2, h3, h4, h5, h6, .section-title, .v2-hero-title, .v2-section-title) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Bold lead-ins and strong tags inside dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section,
  .card, .lcard, .acard, .inst-card, .step, .holding, .cside, .note, .tpcall,
  footer.s4-footer, footer:has(.foot-top), .jil-footer
) :is(strong, b) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Body copy and paragraphs inside dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section,
  .card, .lcard, .acard, .inst-card, .step, .holding, .cside, .note, .tpcall,
  footer.s4-footer, footer:has(.foot-top), .jil-footer
) :is(p, .body-lg, .lede, .sec-desc, .section-desc, .hero-lead, .hero-adapt, .sub, .dek, .sec-lede, .v2-section-subtitle, li, blockquote, .section-sub) {
  color: #c9d9e6 !important;
  -webkit-text-fill-color: #c9d9e6 !important;
}

/* Section markers, kickers, eyebrows, and tags inside dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section,
  .card, .lcard, .acard, .inst-card, .step, .holding, .cside, .note, .tpcall
) :is(.section-marker, .eyebrow, .section-kicker, .sec-kicker, .hero-kicker, .tag, .vol, .hero-label) {
  color: #9ec0d6 !important;
  -webkit-text-fill-color: #9ec0d6 !important;
  border-color: rgba(158, 192, 214, 0.35) !important;
}

/* Gold kicker / tag exceptions on dark backgrounds */
body.site4-body .shift-card.next .tag,
body.site4-body .radv .section-kicker,
body.site4-body .sec-kicker {
  color: #E4C35A !important;
  -webkit-text-fill-color: #E4C35A !important;
}

/* Heading gold accents / gradients */
body.site4-body :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .shift-card.next
) :is(h1, h2, h3, h4, .section-title, .v2-hero-title) :is(.accent, em, .gold, .gold-txt) {
  background: linear-gradient(90deg, #F5E6A8, #D4AF37 45%, #A87C1F) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

/* Inline links on dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section
) a:not(.btn):not(.btn-primary):not(.btn-gold):not(.nav-cta):not(.hw-btn-gold):not(.btn-outline):not(.btn-ghost):not(.btn-hero-outline):not(.btn-hero-primary):not(.jil-btn--primary):not(.v2-inline-lang-trigger):not(.v2-inline-lang-opt):not(.btn.p):not(.btn.g):not(.lcard):not(.btn-white) {
  color: #c9d9e6 !important;
  -webkit-text-fill-color: #c9d9e6 !important;
  text-decoration: underline !important;
}
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section
) a:not(.btn):not(.btn-primary):not(.btn-gold):not(.nav-cta):not(.hw-btn-gold):not(.btn-outline):not(.btn-ghost):not(.btn-hero-outline):not(.btn-hero-primary):not(.jil-btn--primary):not(.v2-inline-lang-trigger):not(.v2-inline-lang-opt):not(.btn.p):not(.btn.g):not(.lcard):not(.btn-white):hover {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Outline and Ghost buttons on dark containers: crisp white text */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .v2-section-navy, .v2-section-graphite,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  main > section
) :is(.btn-ghost, a.btn-ghost, .btn-outline, a.btn-outline, .btn-hero-outline, a.btn-hero-outline, .btn.g, a.btn.g) {
  color: #f8fafc !important;
  -webkit-text-fill-color: #f8fafc !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.38) !important;
}
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .v2-section-navy, .v2-section-graphite,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  main > section
) :is(.btn-ghost, a.btn-ghost, .btn-outline, a.btn-outline, .btn-hero-outline, a.btn-hero-outline, .btn.g, a.btn.g):hover {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: #ffffff !important;
}

/* Code blocks on dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .cta-band, section.cta-band,
  .sting, section.sting,
  article, article.paper,
  main > section
) :is(code, pre) {
  color: #e2e8f0 !important;
  -webkit-text-fill-color: #e2e8f0 !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

/* White buttons on dark containers: crisp dark ink on white */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .v2-section-navy, .v2-section-graphite,
  .shift-card.next
) :is(.btn-white, a.btn-white) {
  background: #ffffff !important;
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  border: 1px solid #ffffff !important;
}

/* Badges inside dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .v2-section-navy, .v2-section-graphite
) :is(.v2-badge, .badge, [class*="badge"]) {
  background: rgba(201, 162, 39, 0.15) !important;
  color: #F2D47A !important;
  -webkit-text-fill-color: #F2D47A !important;
  border: 1px solid rgba(201, 162, 39, 0.4) !important;
}

/* Light theme protection: .v2-section-alt */
body.site4-body :is([data-theme="sovereign-light"], [data-theme="sovereign-editorial"], html[data-theme="sovereign-light"], html[data-theme="sovereign-editorial"]) .v2-section-alt :is(h1, h2, h3, h4, h5, h6, .section-title, strong, b) {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
body.site4-body :is([data-theme="sovereign-light"], [data-theme="sovereign-editorial"], html[data-theme="sovereign-light"], html[data-theme="sovereign-editorial"]) .v2-section-alt :is(p, .body-lg, .lede, .sec-desc, li, blockquote) {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}

.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
  pointer-events: none;
  z-index: 0;
  opacity: 0.6;
}
video.live-wallpaper-backdrop,
body.site4-body > video.live-wallpaper-backdrop {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  object-fit: cover !important;
  object-position: center !important;
  pointer-events: none !important;
  z-index: -1 !important;
  opacity: 0.22 !important;
  transform: translateZ(0) !important;
  will-change: transform !important;
}




/* ===== widgets ===== */
/* JIL Sovereign Holdings widgets on Site4 chrome.
   Layout and tokens follow jilsovereign.com (jil-net-site4.css).
   Contrast rule: never light text on a light surface, never dark text on a
   dark surface. Dark ink on white/sand. Light ink on navy/hero/footer. */

body.site4-body {
  background-color: #ffffff;
}
body.site4-body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  /* 201 KB of JPEG for a texture sitting at 7% opacity. The plain url()
     stays first as the fallback; image-set() serves WebP where supported. */
  background: url("/assets/brand/bg-mesh.jpg") center / cover no-repeat;
  background: image-set(url("/assets/brand/bg-mesh.webp") type("image/webp"),
                        url("/assets/brand/bg-mesh.jpg") type("image/jpeg"))
              center / cover no-repeat;
  opacity: 0.07;
  filter: saturate(0.85);
}
body.site4-body > * { position: relative; z-index: 1; }
body.site4-body > [data-jil-chrome="header"] {
  z-index: 3000;
  overflow: visible;
}

.hero, .phero, .lead, .band, .cta-band, .federation, footer.s4-footer {
  position: relative;
  overflow: hidden;
}
header.s4-header {
  overflow: visible;
}
.hero::before, .phero::before, .lead::before, .band::before, .cta-band::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: 42rem; height: 42rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,162,39,.32), transparent 62%);
  top: -12rem; right: -8rem;
  pointer-events: none;
  animation: jil-glow 7s ease-in-out infinite;
}
.hero .wrap, .phero .wrap, .lead .wrap, .band .wrap, .cta-band .wrap {
  position: relative;
  z-index: 1;
}
.hero::after, .phero::after {
  content: "";
  position: absolute;
  width: 28rem; height: 28rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(56,189,248,.16), transparent 65%);
  bottom: -10rem; left: -6rem;
  pointer-events: none;
  animation: jil-glow 9s ease-in-out infinite reverse;
}
@keyframes jil-glow {
  0%, 100% { transform: scale(1); opacity: .85; }
  50% { transform: scale(1.12); opacity: 1; }
}
.pill, .hero-kicker {
  box-shadow: 0 0 0 1px rgba(201,162,39,.22), 0 0 18px rgba(201,162,39,.18);
}
.btn-primary, .btn.p, .nav-cta {
  box-shadow: 0 10px 30px rgba(201,162,39,.28), 0 0 22px rgba(201,162,39,.22);
}
.btn-primary:hover, .btn.p:hover, .nav-cta:hover {
  box-shadow: 0 12px 36px rgba(201,162,39,.4), 0 0 28px rgba(201,162,39,.32);
}
.card:hover, .acard:hover, .inst-card:hover, .future-card:hover {
  box-shadow: 0 16px 40px rgba(201,162,39,.16), 0 0 24px rgba(201,162,39,.1);
}
.proof {
  box-shadow: inset 0 0 40px rgba(201,162,39,.08);
}
@media (prefers-reduced-motion: reduce) {
  .hero::before, .phero::before, .hero::after, .phero::after, .band::before, .cta-band::before {
    animation: none;
  }
}

/* Cher chrome is the shared JILPersona nav-row (jil-persona.js + jil-net-persona.js).
   Do not add a second orb here. */

/* Site4 constrains `main` to 1120px; holdings pages paint full-bleed bands
   (hero, proof strip, CTA) with an inner .wrap. Undo that clamp. */
body.site4-body main {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}

body.site4-body {
  --fd: "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
  --fb: "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
  --pearl: #fff;
  --pearl-2: #fff;
  --mist: #f6f1e8;
  --ink: #0f172a;
  --ink-2: #102A43;
  --ink-soft: #5b6570;
  --gold: #C9A227;
  --gold-deep: #A87C1F;
  --gold-lit: #E4C35A;
  --gold-pale: #F2D47A;
  --gold-line: rgba(201,162,39,.45);
  --gold-hair: rgba(201,162,39,.22);
  --sky-soft: #c9d9e6;
  --garnet: #7D2233;
  --garnet-soft: #B65566;
  --night: #0B1220;
  --night-2: #0F172A;
  --night-panel: #102A43;
}

body.site4-body img { max-width: 100%; }
body.site4-body .skip {
  /* Was left:-9999px, which under dir=rtl parks the link 9999px past the
     inline edge and gives every Arabic, Hebrew and Persian page a horizontal
     scrollbar. A logical inset moves the overflow rather than removing it, so
     clip the link out of flow instead: no offset, no overflow, still focusable. */
  position: absolute; width: 1px; height: 1px; top: 0;
  margin: -1px; padding: 0; border: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
body.site4-body .skip:focus {
  width: auto; height: auto; margin: 0; overflow: visible;
  clip: auto; clip-path: none;
  inset-inline-start: 8px; top: 8px; z-index: 99;
  background: #fff; color: #0f172a;
  padding: 10px 16px; border-radius: 8px;
}

header.s4-header #jil-lang-mount {
  margin-left: 0.35rem;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
header.s4-header .jil-lang {
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif;
  background: rgba(255,255,255,0.06);
  color: #f8fafc;
  border: 1px solid rgba(255,255,255,0.28);
  padding: 0.4rem 0.55rem;
  font-size: 0.8rem;
  border-radius: 8px;
  cursor: pointer;
}
header.s4-header .nav-links a[aria-current="page"] { color: #fff; }
header.s4-header .logo-stack {
  display: flex; flex-direction: column; line-height: 1.05; gap: 0.12rem;
}
header.s4-header .logo-sub {
  font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: #E4C35A; font-weight: 800;
}
[data-jil-chrome="header"] { min-height: 72px; background: #0A0D10; }
[data-jil-chrome="footer"] { background: #050f18; }
.s4-mobile-panel #jil-lang-mount { margin: 0.85rem 1.1rem 1.1rem; }
.s4-mobile-panel .jil-lang {
  background: rgba(255,255,255,.06); color: #f8fafc;
  border: 1px solid rgba(255,255,255,.28); padding: 0.45rem 0.7rem;
  font-size: 0.85rem;
}

/* ---- page hero (interior) ---- */
.phero {
  background:
    radial-gradient(ellipse 900px 480px at 50% -10%, rgba(212,175,55,0.16) 0%, transparent 55%),
    linear-gradient(165deg, #0B1220 0%, #0F172A 48%, #111827 100%);
  color: #fff;
  padding: 3.4rem 0 2.8rem;
  border-bottom: 1px solid rgba(201,162,39,0.18);
}
.phero h1 {
  font-size: clamp(2rem, 4.6vw, 3.1rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.08;
  max-width: none;
  margin: 0 0 .7rem;
  color: #fff;
}
.phero .lede { color: #c9d9e6; max-width: none; font-size: 1.08rem; line-height: 1.55; margin: 0; }
.hero .sub { color: #E4C35A; font-size: clamp(1.05rem, 2vw, 1.35rem); font-weight: 700; margin: 0 0 1rem; }
.hero .rule { width: 120px; height: 1px; background: rgba(201,162,39,.45); margin: 1.1rem 0; }
.hero .meta { font-size: .82rem; color: #9ec0d6; letter-spacing: .04em; }
.hero .stand { max-width: 40rem; margin: 1.1rem 0 0; color: #c9d9e6; font-size: 1.02rem; }
.hero a.dl, a.dl {
  display: inline-block; margin-top: 1.4rem; padding: .85rem 1.25rem;
  background: #C9A227; color: #0B0F16 !important; font-weight: 800;
  text-decoration: none; border-radius: 10px;
}
.note { background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 12px; padding: 1rem 1.15rem; margin: 1.3rem 0; color: #5b6570; }
.hr { height: 1px; background: #e5e7eb; margin: 2.2rem 0; }
h2 .n { color: #C9A227; font-size: .72em; margin-right: .45rem; }
.crumbs { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 800; color: #9ec0d6; margin-bottom: .85rem; }
.crumbs a { color: #9ec0d6; text-decoration: none; }
.crumbs a:hover { color: #fff; }

.proof {
  background: #0A0D10; color: #E4C35A;
  padding: .7rem 0; text-align: center;
  font-size: .78rem; font-weight: 700; letter-spacing: .03em;
  border-bottom: 1px solid rgba(201,162,39,0.45);
}
.proof b { color: #E4C35A; }
.proof .dot { color: #E4C35A; margin: 0 .55rem; }
.proof span { white-space: nowrap; display: inline-block; margin: 2px 0; }

body.site4-body section { padding: 3.8rem 0; }
body.site4-body main > section:not(.alt):not(.dark):not(.federation):not(.cta-band):not(.hero),
body.site4-body article {
  background: #ffffff;
}
body.site4-body section.alt { background: #f6f1e8; }
body.site4-body section.dark {
  background: #071a28; color: #c9d9e6;
}
body.site4-body section h2,
body.site4-body main h2 {
  font-size: clamp(1.65rem, 3.3vw, 2.3rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  color: #102A43;
  line-height: 1.12;
  margin: 0 0 .55rem;
  max-width: none;
}
body.site4-body section.dark h2 { color: #fff; }
body.site4-body h2 + .sub,
body.site4-body .sec-lede {
  color: #5b6570; max-width: none; margin: 0 0 1.5rem; font-size: 1.02rem;
}
body.site4-body section.dark .sec-lede,
body.site4-body section.dark p { color: #b7c9d7; }
body.site4-body section p { max-width: none; margin: 0 0 1rem; color: #334155; }
body.site4-body h3 { font-size: 1.12rem; font-weight: 800; color: #102A43; margin: 0 0 .4rem; }

ul.ticks { list-style: none; margin: .4rem 0 1.2rem; padding: 0; max-width: none; }
ul.ticks li { position: relative; padding: .28rem 0 .28rem 1.25rem; color: #334155; }
ul.ticks li::before { content: "→"; position: absolute; left: 0; color: #A87C1F; font-weight: 800; }

.cards, .acards {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(238px, 1fr));
  gap: 1rem; margin-top: 1.4rem;
}
.card, .acard {
  background: #ffffff; border: 1px solid rgba(15,23,42,.08); border-radius: 16px;
  padding: 1.35rem 1.25rem; display: flex; flex-direction: column;
  box-shadow: 0 10px 28px rgba(15,23,42,.07);
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.card:hover, .acard:hover {
  transform: translateY(-2px);
  border-color: #E4C35A;
  box-shadow: 0 14px 36px rgba(201,162,39,.1);
}
.card p, .acard p { font-size: .95rem; color: #475569; flex: 1; }
a.go {
  font-size: .82rem; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; text-decoration: none; color: #C9A227;
}
a.go:hover { color: #102A43; }

ol.steps { list-style: none; counter-reset: s; margin: 1.4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1rem; }
ol.steps li { counter-increment: s; position: relative; padding: 2.6rem .2rem 0; border-top: 1px solid #e5e7eb; }
ol.steps li::before {
  content: counter(s); position: absolute; top: .55rem; left: 0;
  width: 2.1rem; height: 2.1rem; border-radius: 50%;
  background: #102A43; color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: .85rem; font-weight: 800;
}

.callout {
  background: rgba(201,162,39,.10); border: 1px solid rgba(201,162,39,.28);
  border-radius: 12px; padding: 1.15rem 1.25rem; margin: 1.4rem 0; max-width: 46rem;
}
.pull {
  font-size: clamp(1.15rem, 2.4vw, 1.55rem); font-weight: 800;
  line-height: 1.3; color: #102A43; max-width: 40ch;
  border-block: 1px solid #e5e7eb; padding: 1.3rem 0; margin: 1.5rem 0;
}

.tw { overflow-x: auto; margin-top: 1.3rem; }
table { border-collapse: collapse; width: 100%; min-width: 620px; font-size: .95rem; }
th, td { text-align: start; padding: .8rem .9rem; border-bottom: 1px solid #e5e7eb; vertical-align: top; }
th { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #C9A227; font-weight: 800; }
tbody tr:hover { background: #fff; }

.band, .cta-band.net-band { }
.band,
.cta-band {
  background: #0B1220 !important;
  color: #f8fafc !important;
  padding: 3.4rem 0;
  text-align: center;
}
.band h2,
.cta-band h2,
body.site4-body .band h2,
body.site4-body main .band h2,
body.site4-body .cta-band h2 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}
.band p,
.cta-band p,
body.site4-body .band p,
body.site4-body main .band p,
body.site4-body .cta-band p {
  color: #e8eef4 !important;
  -webkit-text-fill-color: #e8eef4 !important;
  max-width: 36rem;
  margin: .65rem auto 1.3rem;
}
.btns { display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; }
.btn.p { background: #C9A227; color: #0B0F16 !important; border-radius: 10px; font-weight: 750; padding: .9rem 1.3rem; text-decoration: none; box-shadow: 0 10px 30px rgba(201,162,39,.28); }
.btn.g { background: rgba(255,255,255,.04); color: #f8fafc !important; border: 1px solid rgba(255,255,255,.35); border-radius: 10px; font-weight: 700; padding: .9rem 1.3rem; text-decoration: none; }
/* Light surfaces: dark ghost label. Never let this paint onto navy bands. */
section .btn.g { color: #102A43 !important; border-color: rgba(16,42,67,.28); background: rgba(15,23,42,.04); }
.hero .btn.g,
.phero .btn.g,
.lead .btn.g,
.band .btn.g,
.cta-band .btn.g,
.federation .btn.g,
section.dark .btn.g,
body.site4-body .band .btn-ghost,
body.site4-body .cta-band .btn-ghost,
body.site4-body .hero .btn-ghost,
body.site4-body .band a.btn-ghost,
body.site4-body .cta-band a.btn-ghost {
  color: #f8fafc !important;
  -webkit-text-fill-color: #f8fafc !important;
  border-color: rgba(255,255,255,.35) !important;
  background: rgba(255,255,255,.08) !important;
}
/* Site4 forces navy kickers globally. Dark bands must stay light-on-dark. */
body.site4-body .hero .section-kicker,
body.site4-body .phero .section-kicker,
body.site4-body .band .section-kicker,
body.site4-body .cta-band .section-kicker,
body.site4-body .federation .section-kicker,
body.site4-body .radv .section-kicker,
body.site4-body section.dark .section-kicker,
body.site4-body .federation .sec-kicker {
  color: #E4C35A !important;
}

/* connect form */
.cform label { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #102A43; margin: 1.05rem 0 .4rem; }
.cform input, .cform select, .cform textarea {
  width: 100%; padding: .75rem .85rem; border: 1px solid #e5e7eb; background: #fff;
  border-radius: 10px; font-size: 1rem; font-family: inherit; color: #0f172a;
}
.cform input:focus, .cform select:focus, .cform textarea:focus { outline: 2px solid rgba(201,162,39,.45); border-color: #C9A227; }
.cform textarea { min-height: 130px; resize: vertical; }
.cform .frow { display: flex; gap: 1rem; }
.cform .frow > div { flex: 1; }
@media (max-width: 560px) { .cform .frow { flex-direction: column; gap: 0; } }
.cform button, .cform .btn-primary {
  margin-top: 1.4rem; background: #C9A227; color: #ffffff; border: 0; border-radius: 10px;
  font-weight: 800; padding: .9rem 1.35rem; cursor: pointer; font-size: .96rem;
}
.cok { display: none; border: 1px solid rgba(201,162,39,.35); background: #f8fafc; border-radius: 14px; padding: 1.3rem; margin-top: .5rem; }
.cgrid { display: grid; grid-template-columns: 1.7fr 1fr; gap: 1.2rem; align-items: start; }
@media (max-width: 820px) { .cgrid { grid-template-columns: 1fr; } }
.cside { border: 1px solid #e5e7eb; border-radius: 16px; background: #fafbfc; padding: 1.3rem; }
.sidelist { list-style: none; margin: 0; padding: 0; }
.sidelist li { margin-bottom: .5rem; }
.sideproof { margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid #e5e7eb; display: flex; flex-direction: column; gap: .35rem; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; color: #5b6570; }
.sideproof b { color: #C9A227; }
.fine { font-size: .9rem; color: #5b6570; margin-top: 1.4rem; }
.routes { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.6rem 0; }
@media (max-width: 720px) { .routes { grid-template-columns: 1fr; } }

/* homepage conversion blocks */
.audience, .thirdpath { padding: 3.6rem 0; }
.audience .asub { color: #5b6570; max-width: none; }
.tpcall { border-left: 3px solid #C9A227; background: #fff; padding: 1.1rem 1.2rem; margin: 1.3rem 0; max-width: 46rem; border-radius: 0 12px 12px 0; }

.gold-txt {
  background: linear-gradient(90deg, #E4C35A, #C9A227 45%, #C9A227);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  -webkit-text-fill-color: transparent;
}

.sec-kicker {
  font-size: .74rem; letter-spacing: .12em; text-transform: uppercase;
  color: #2563EB; font-weight: 800; margin-bottom: .5rem;
}
.center { text-align: center; }
.center h2 { margin-left: auto; margin-right: auto; }
.cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin-top: 1.8rem; }
@media (max-width: 820px) { .cols { grid-template-columns: 1fr; } }
.cols.stack { grid-template-columns: 1fr; }

.origin-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.6rem; }
@media (max-width: 820px) { .origin-trio { grid-template-columns: 1fr; } }
.origin-pull {
  font-size: clamp(1.15rem, 2.4vw, 1.5rem); font-weight: 800; color: #102A43;
  border-left: 3px solid #C9A227; padding-left: 1rem; margin: 1.8rem 0 0; max-width: 46rem;
}

.coins { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.4rem; }
.coin {
  font-size: .82rem; font-weight: 700; border: 1px solid #e5e7eb; color: #102A43;
  background: #fff; padding: .4rem .75rem; border-radius: 999px;
}
.coin b { color: #C9A227; }
.lifecycle { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.6rem; }
@media (max-width: 820px) { .lifecycle { grid-template-columns: 1fr; } }
.step { background: #fafbfc; border: 1px solid #e5e7eb; border-top: 4px solid #C9A227; border-radius: 16px; padding: 1.25rem; }
.step .n { font-size: .72rem; font-weight: 800; letter-spacing: .08em; color: #C9A227; text-transform: uppercase; }
.step h4 { font-size: 1.15rem; font-weight: 800; color: #102A43; margin: .35rem 0 .4rem; }

.prooflist { margin-top: 1.6rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 820px) { .prooflist { grid-template-columns: 1fr; } }
.prooflist .proof {
  text-align: left; background: #fafbfc; color: inherit; border: 1px solid #e5e7eb;
  border-radius: 16px; padding: 1.3rem; letter-spacing: 0; text-transform: none; font-weight: 400;
}
.prooflist .proof h4 { color: #102A43; font-size: 1.05rem; margin-bottom: .4rem; }
.prooflist .proof p { color: #475569; font-size: .92rem; }
.check { color: #16794a; font-weight: 800; }

.portfolio { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.6rem; }
@media (max-width: 820px) { .portfolio { grid-template-columns: 1fr; } }
.holding { border: 1px solid #e5e7eb; border-radius: 16px; background: #fff; padding: 1.4rem; }
.holding .domain { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #C9A227; }
.holding a { font-size: .82rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; color: #102A43; }
.holding .foot { margin-top: 1rem; }
.holding.sep { border-top: 4px solid #C9A227; }

.tiers { margin-top: 1.6rem; display: grid; gap: 1rem; }
.tier { display: grid; grid-template-columns: 280px 1fr; gap: 1.2rem; padding: 1.3rem; border: 1px solid #e5e7eb; border-radius: 16px; background: #fff; }
.tier .role { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #C9A227; display: block; margin-top: .25rem; }
@media (max-width: 820px) { .tier { grid-template-columns: 1fr; } }

.ledgers { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.8rem; }
@media (max-width: 820px) { .ledgers { grid-template-columns: 1fr; } }
.ledger { background: #fff; border: 1px solid #e5e7eb; border-radius: 16px; padding: 1.5rem; }
.ledger .tag { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #C9A227; }
.ledger.vertical .tag { color: #2563EB; }
.flow { margin: 1.8rem auto 0; max-width: 920px; display: grid; grid-template-columns: 1fr auto 1fr; gap: .8rem; align-items: center; }
@media (max-width: 700px) { .flow { grid-template-columns: 1fr; } .arrow { transform: rotate(90deg); } }
.node { border: 1px solid #e5e7eb; background: #fafbfc; padding: 1rem; text-align: center; border-radius: 14px; }
.node .t { font-weight: 800; color: #102A43; }
.node .d { font-size: .85rem; color: #5b6570; }

/* federation (dark, like .com sting/radv) */
.federation {
  background:
    radial-gradient(700px 320px at 80% 0%, rgba(201,162,39,0.12), transparent 55%),
    #050f18;
  color: #c9d9e6; border: 0;
}
.federation .sec-kicker { color: #E4C35A !important; }
.federation h2 { color: #fff !important; }
.federation .sec-lede { color: #a8bdcd; }
.atlas { margin: 1.6rem auto 0; border: 1px solid rgba(201,162,39,.22); border-radius: 16px; background: radial-gradient(700px 380px at 50% 42%, rgba(143,180,228,.1), transparent 60%), rgba(10,16,32,.5); overflow: hidden; }
.atlas svg { display: block; width: 100%; height: auto; }
.legend { display: flex; gap: 1.2rem; justify-content: center; flex-wrap: wrap; padding: 1rem; border-top: 1px solid rgba(201,162,39,.16); font-size: .82rem; color: #9db4c6; }
.lg { display: inline-flex; align-items: center; gap: .45rem; }
.lg b { color: #e8eef4; font-weight: 700; }
.dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.dot.live { background: #E4C874; box-shadow: 0 0 8px #C9A24B; }
.dot.prosp { background: transparent; border: 1.5px solid rgba(201,162,39,.45); }
.dot.core { background: #B65566; }
@media (prefers-reduced-motion: no-preference) {
  .pulse { transform-box: fill-box; transform-origin: center; animation: pl 3.4s ease-in-out infinite; }
  .pulse.b { animation-delay: 1.2s; }
}
@keyframes pl { 0%,100% { opacity: .15; transform: scale(1); } 50% { opacity: .5; transform: scale(1.7); } }

.nations { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.8rem; }
@media (max-width: 980px) { .nations { grid-template-columns: 1fr; } }
.nation.n3 .glow { background: radial-gradient(circle, rgba(201,162,39,.55), transparent 70%); }
.nation { border: 1px solid rgba(201,162,39,.28); background: rgba(255,255,255,.04); padding: 1.5rem; position: relative; overflow: hidden; border-radius: 16px; }
.nation .glow { position: absolute; top: -40px; right: -40px; width: 180px; height: 180px; border-radius: 50%; filter: blur(42px); opacity: .5; }
.nation.n1 .glow { background: radial-gradient(circle, rgba(201,162,39,.5), transparent 70%); }
.nation.n2 .glow { background: radial-gradient(circle, rgba(143,180,228,.45), transparent 70%); }
.nation .flag { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #E4C35A; }
.nation h3 { color: #fff; margin: .4rem 0; font-size: 1.25rem; }
.nation .rule { font-size: .92rem; color: #9db4c6; margin-bottom: 1rem; }
.nation .rows { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem 1rem; position: relative; }
.nation .kv .k { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: #9db4c6; font-weight: 800; }
.nation .kv .v { font-size: 1rem; color: #fff; margin-top: .15rem; }
.nation .live { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid rgba(201,162,39,.18); font-size: .9rem; }
.nation .live .g { color: #6fcf97; font-weight: 800; }
.nation .cta { display: inline-block; margin-top: 1rem; font-size: .82rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; color: #fff; }

.chtiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.8rem; }
@media (max-width: 820px) { .chtiers { grid-template-columns: 1fr; } }
.chtier { border: 1px solid rgba(201,162,39,.22); background: rgba(255,255,255,.04); padding: 1.25rem; text-align: center; border-radius: 16px; cursor: pointer; font: inherit; color: inherit; }
.chtier .n { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #E4C35A; }
.chtier h4 { font-size: 1.15rem; color: #fff; margin: .45rem 0; }
.chtier p { font-size: .9rem; color: #c9d9e6; }
.chtier[aria-selected="true"] { border-color: #E4C35A; background: rgba(201,162,39,.08); }
.chmore { display: block; margin-top: .8rem; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #E4C35A; }
.chdetail { margin-top: 1rem; border: 1px solid rgba(201,162,39,.28); background: rgba(255,255,255,.03); padding: 1.4rem; border-radius: 16px; }
.chdetail[hidden] { display: none; }
.chd-band { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; padding-bottom: 1rem; margin-bottom: 1.1rem; border-bottom: 1px solid rgba(201,162,39,.2); }
.chd-tag { font-size: 1.05rem; font-weight: 800; color: #E4C35A; }
.chd-time { font-size: .9rem; color: #c9d9e6; }
.chd-ready { margin-inline-start: auto; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: .3rem .7rem; border: 1px solid; border-radius: 999px; }
.chd-ready.ok { color: #7FBE9A; border-color: rgba(127,190,154,.5); }
.chd-ready.warn { color: #E4C35A; border-color: rgba(201,162,39,.5); }
.chd-ready.target { color: #B65566; border-color: rgba(182,85,102,.55); }
.chd-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 1.5rem; }
@media (max-width: 820px) { .chd-grid { grid-template-columns: 1fr; } }
.chd-h { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #9db4c6; margin: 0 0 .8rem; }
.chd-road { list-style: none; margin: 0; padding: 0; counter-reset: rd; }
.chd-road li { position: relative; display: grid; grid-template-columns: 9.5em 1fr; gap: 2px 14px; padding: 0 0 1rem 1.8rem; border-inline-start: 1px solid rgba(201,162,39,.28); margin-inline-start: 5px; }
.chd-road li::before { counter-increment: rd; content: counter(rd); position: absolute; inset-inline-start: -13px; top: -2px; width: 24px; height: 24px; border-radius: 50%; background: #0B1220; border: 1px solid rgba(201,162,39,.45); color: #E4C35A; font-size: .75rem; font-weight: 800; display: grid; place-items: center; }
.chd-road .ph { font-weight: 800; color: #fff; }
.chd-road .tm { font-size: .75rem; color: #9db4c6; text-align: end; }
.chd-road .ac { grid-column: 1/-1; font-size: .88rem; color: #c9d9e6; }
.chd-list { list-style: none; margin: 0; padding: 0; }
.chd-list li { position: relative; padding: 0 0 .5rem 1.1rem; font-size: .9rem; color: #c9d9e6; }
.chd-list li::before { content: "→"; position: absolute; left: 0; color: #E4C35A; font-weight: 800; }
.chd-caveat { margin-top: 1.2rem; padding: .9rem 1rem; border-left: 3px solid rgba(201,162,39,.5); background: rgba(201,162,39,.06); font-size: .9rem; color: #c9d9e6; }
.fed-close { text-align: center; margin: 2.4rem auto 0; max-width: 36rem; }
.fed-close .big { font-size: clamp(1.3rem, 3vw, 1.9rem); font-weight: 800; color: #E4C35A; line-height: 1.25; }
.fed-close .sub { margin-top: .6rem; color: #c9d9e6; }
.fed-note { margin: 1.4rem auto 0; max-width: 48rem; text-align: center; font-size: .85rem; color: #8aa0b3; }
.fed-jilai { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; margin-top: 1.2rem; padding: 1.3rem 1.4rem; border: 1px solid rgba(201,162,39,.4); border-radius: 16px; background: rgba(201,162,39,.06); text-decoration: none; color: inherit; }
.fed-jilai h3 { color: #fff; font-size: 1.4rem; margin: .2rem 0; }
.fed-jilai .fj-tag { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #E4C35A; }
.fed-jilai .fj-cta { font-weight: 800; color: #E4C35A; margin-left: auto; }

.vision .epi { font-size: clamp(1.15rem, 2.4vw, 1.5rem); font-weight: 800; color: #102A43; margin-top: 1.3rem; max-width: 40rem; }
.vision-req { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem 1.6rem; max-width: 56rem; }
.vision-req li { position: relative; padding-left: 1.2rem; font-weight: 700; color: #102A43; }
.vision-req li::before { content: "→"; position: absolute; left: 0; color: #C9A227; font-weight: 800; }
.vision-fed { margin-top: 1.6rem; border-left: 3px solid #C9A227; padding-left: 1.1rem; max-width: 40rem; }
.vision-fed div { font-size: 1.15rem; font-weight: 800; color: #102A43; line-height: 1.45; }
@media (max-width: 640px) { .vision-req { grid-template-columns: 1fr; } }

.inst-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1rem; margin-top: 1.4rem; }
.inst-card {
  display: flex; flex-direction: column; background: #fafbfc; border: 1px solid #e5e7eb;
  border-radius: 16px; padding: 1.3rem 1.2rem; text-decoration: none; color: inherit;
  transition: transform .15s, border-color .15s, box-shadow .15s;
}
.inst-card:hover { transform: translateY(-2px); border-color: #E4C35A; box-shadow: 0 14px 36px rgba(201,162,39,.1); }
.inst-card .k { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #C9A227; margin-bottom: .4rem; }
.inst-card h3 { font-size: 1.05rem; }
.inst-card p { font-size: .9rem; color: #475569; flex: 1; }
.inst-card .dl { margin-top: .85rem; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #102A43; }

.legal-note { margin-top: 1.4rem; font-size: .9rem; color: #5b6570; }
.estate-line { font-size: .82rem; color: #7a8f9f; margin-top: .7rem; }

/* doctrine landing on Site4 */
.front-wrap { max-width: 1120px; margin: 0 auto; padding: 2rem max(1.25rem, env(safe-area-inset-left)) 3rem; }
.volume-index-title, .toc-rail-title {
  font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 800;
  color: #2563EB; margin-bottom: 1.1rem; border-bottom: 1px solid #e5e7eb; padding-bottom: .6rem;
}
.volume-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.volume-tile {
  display: block; text-decoration: none; color: inherit; border: 1px solid #e5e7eb;
  border-top: 4px solid #C9A227; background: #fff; padding: 1.2rem; border-radius: 16px;
}
.volume-tile-num { display: block; font-size: 2rem; font-weight: 800; color: #C9A227; line-height: 1; }
.doctrine-dl {
  display: inline-block; margin-top: 1.2rem; padding: .75rem 1.2rem; border-radius: 10px;
  background: #C9A227; color: #ffffff !important; font-weight: 800; text-decoration: none;
}
.doctrine-frame { border: 1px solid #e5e7eb; background: #fff; border-radius: 16px; padding: 1.2rem 1.3rem; margin: 1.3rem 0; max-width: 46rem; }
.manuscript { font-size: 1.05rem; line-height: 1.7; color: #334155; }
.manuscript-layout { max-width: 1180px; margin: 2rem auto 0; padding: 0 1.25rem; display: grid; grid-template-columns: minmax(0, 760px) 300px; gap: 2.4rem; }
@media (max-width: 980px) { .manuscript-layout { grid-template-columns: 1fr; } }

/* learn.css leftovers */
.lead { background:
  radial-gradient(ellipse 900px 480px at 50% -10%, rgba(201,162,39,0.28) 0%, transparent 55%),
  linear-gradient(165deg, #07172b 0%, #0b2646 48%, #07172b 100%);
  color: #fff; padding: 3.2rem 0 2.6rem;
}
.lead h1 { font-size: clamp(2rem, 4.6vw, 3.1rem); font-weight: 800; letter-spacing: -0.03em; color: #fff; max-width: none; }
.lead .dek { color: #c9d9e6; max-width: none; }
.filig { display: none; }
article { padding: 2.6rem 0 3rem; }

@media (max-width: 600px) {
  .phero { padding: 2.4rem 0 2rem; }
  .nation .rows { grid-template-columns: 1fr; }
}

/* jilsovereign.com Site4: white vs sand. Gold on navy. Cranberry only for live marks. */
body.site4-body {
  background: #ffffff !important;
  color: #0f172a !important;
}
body.site4-body main > section:not(.alt):not(.dark):not(.federation):not(.cta-band):not(.hero),
body.site4-body .audience,
body.site4-body .future,
body.site4-body article {
  background: #ffffff !important;
}
body.site4-body section.alt,
body.site4-body .thirdpath.alt,
body.site4-body .s4-band.alt {
  background: #f6f1e8 !important;
}
body.site4-body main > section:not(.hero):not(.cta-band):not(.federation) .wrap > h2,
body.site4-body main > section:not(.hero):not(.cta-band):not(.federation) .wrap > .section-title {
  padding-left: 0.9rem;
  border-left: 4px solid #C9A227;
}
body.site4-body .card,
body.site4-body .acard,
body.site4-body .inst-card,
body.site4-body .step,
body.site4-body .future-card,
body.site4-body .cap-card {
  background: #ffffff !important;
  border-top: 3px solid #C9A227 !important;
  box-shadow: 0 12px 32px rgba(16,42,67,.08);
}
body.site4-body header.s4-header,
header.s4-header,
body.site4-body footer.s4-footer,
footer.s4-footer {
  background: #0A0D10 !important;
}
body.site4-body .btn-primary,
body.site4-body a.btn-primary,
body.site4-body .nav-cta,
body.site4-body a.nav-cta,
body.site4-body .btn.p,
body.site4-body a.btn.p {
  background: #C9A227 !important;
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
  box-shadow: 0 10px 30px rgba(201,162,39,.32), 0 0 22px rgba(201,162,39,.22) !important;
}
body.site4-body .hero h1 span,
body.site4-body .gold-txt {
  background: linear-gradient(90deg, #F5E6A8, #D4AF37 45%, #A87C1F) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}
body.site4-body .hero-kicker,
body.site4-body .logo-sub {
  color: #E4C35A !important;
}
body.site4-body .section-kicker {
  color: #A87C1F !important;
}
body.site4-body .federation .sec-kicker,
body.site4-body .federation .section-kicker,
body.site4-body .band .section-kicker,
body.site4-body .cta-band .section-kicker {
  color: #E4C35A !important;
}
body.site4-body .live .g { color: #41E3C6; }

article.paper { background: #ffffff; }
body.site4-body .paper-col {
  max-width: 760px !important;
  width: min(760px, 100%) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 3rem 1.25rem 4.2rem !important;
}
body.site4-body article.paper p,
body.site4-body article.paper ul,
body.site4-body article.paper ol {
  max-width: none;
}
body.site4-body article.paper h2 {
  max-width: none;
  margin-top: 2.5rem;
}
body.site4-body article.paper h3 {
  margin-top: 1.5rem;
  font-size: 1.15rem;
}
body.site4-body article.paper ul {
  margin: 0 0 1.2rem 1.15rem;
}
body.site4-body article.paper li { margin: 0.35rem 0; color: #B9C4D8; }
body.site4-body article.paper .close {
  font-weight: 600; color: #F1F5FF; font-size: 1.08rem;
}
body.site4-body article.paper .tw { margin: 1.2rem 0 1.6rem; }

/* GetJIL landing identity: void navy, Cormorant + Sora, gold + mint. */
body.site4-body {
  --void: #0C1018;
  --deep: #121A28;
  --deep-2: #16202F;
  --panel: #1B2536;
  --gold: #D4AF37;
  --gold-lit: #EBD07E;
  --gold-deep: #A6812A;
  --mint: #41E3C6;
  --ice: #F1F5FF;
  --mist: #B9C4D8;
  --dim: #7E8CA6;
  --fd: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif;
  --fb: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif;
  background: #0C1018 !important;
  color: #B9C4D8 !important;
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif !important;
  font-size: 16.5px;
  line-height: 1.7;
}
body.site4-body h1,
body.site4-body h2,
body.site4-body h3,
body.site4-body h4,
body.site4-body .section-title,
body.site4-body .logo-word,
body.site4-body .foot-logo strong {
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif!important;
  font-weight: 500 !important;
  color: #F1F5FF !important;
  letter-spacing: 0;
}
body.site4-body header.s4-header,
header.s4-header,
body.site4-body footer.s4-footer,
footer.s4-footer {
  background: rgba(12,16,24,.92) !important;
  border-color: rgba(212,175,55,.18);
}
body.site4-body header.s4-header .nav-links a,
body.site4-body header.s4-header .logo-word {
  color: #B9C4D8 !important;
  -webkit-text-fill-color: #B9C4D8 !important;
}
body.site4-body header.s4-header .nav-links a:hover,
body.site4-body header.s4-header .nav-links a[aria-current="page"] {
  color: #EBD07E !important;
  -webkit-text-fill-color: #EBD07E !important;
}
body.site4-body .logo-sub { color: #7E8CA6 !important; letter-spacing: .22em; }
body.site4-body .btn-primary,
body.site4-body a.btn-primary,
body.site4-body .nav-cta,
body.site4-body a.nav-cta,
body.site4-body .btn.p,
body.site4-body a.btn.p,
body.site4-body a.dl {
  background: linear-gradient(180deg, #EBD07E, #D4AF37) !important;
  color: #0C1018 !important;
  -webkit-text-fill-color: #0C1018 !important;
  box-shadow: 0 6px 22px -8px rgba(212,175,55,.4) !important;
  border: 0 !important;
}
body.site4-body .hero,
body.site4-body .phero,
body.site4-body .lead,
body.site4-body .band,
body.site4-body .cta-band,
body.site4-body .federation {
  background: #0C1018 !important;
  color: #B9C4D8 !important;
}
body.site4-body .hero h1,
body.site4-body .phero h1,
body.site4-body .lead h1,
body.site4-body .band h2,
body.site4-body .cta-band h2 {
  color: #F1F5FF !important;
  -webkit-text-fill-color: #F1F5FF !important;
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif!important;
  font-weight: 500 !important;
}
body.site4-body .hero h1 span,
body.site4-body .gold-txt {
  background: linear-gradient(100deg, #EBD07E, #D4AF37 55%, #41E3C6) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}
body.site4-body .hero-kicker { color: #EBD07E !important; }
body.site4-body .hero-lead,
body.site4-body .phero .lede,
body.site4-body .lede { color: #B9C4D8 !important; }
body.site4-body .pill {
  background: rgba(27,37,54,.8) !important;
  border-color: rgba(212,175,55,.28) !important;
  color: #EBD07E !important;
}
body.site4-body main > section:not(.alt):not(.dark):not(.federation):not(.cta-band):not(.hero),
body.site4-body .audience,
body.site4-body .future,
body.site4-body article,
body.site4-body article.paper {
  background: #0C1018 !important;
  color: #B9C4D8 !important;
}
body.site4-body section.alt,
body.site4-body .thirdpath.alt,
body.site4-body .s4-band.alt {
  background: #121A28 !important;
  color: #B9C4D8 !important;
  border-block: 1px solid rgba(212,175,55,.12);
}
body.site4-body section h2,
body.site4-body main h2,
body.site4-body .section-title,
body.site4-body article.paper h2,
body.site4-body article.paper h3,
body.site4-body article.paper .close {
  color: #F1F5FF !important;
}
body.site4-body section p,
body.site4-body .sec-lede,
body.site4-body h2 + .sub,
body.site4-body .section-sub,
body.site4-body article.paper p,
body.site4-body article.paper li,
body.site4-body ul.ticks li {
  color: #B9C4D8 !important;
}
body.site4-body .section-kicker,
body.site4-body main > section:not(.hero):not(.cta-band):not(.federation) .wrap > h2,
body.site4-body main > section:not(.hero):not(.cta-band):not(.federation) .wrap > .section-title {
  border-left-color: #D4AF37 !important;
}
body.site4-body .section-kicker { color: #EBD07E !important; }
body.site4-body .card,
body.site4-body .acard,
body.site4-body .inst-card,
body.site4-body .step,
body.site4-body .future-card,
body.site4-body .cap-card,
body.site4-body .holding,
body.site4-body .cside,
body.site4-body .note {
  background: #1B2536 !important;
  border: 1px solid rgba(212,175,55,.18) !important;
  color: #B9C4D8 !important;
  box-shadow: 0 18px 40px rgba(0,0,0,.28);
}
body.site4-body .card h3,
body.site4-body .acard h3,
body.site4-body h3 {
  color: #F1F5FF !important;
}
body.site4-body .card p,
body.site4-body .acard p { color: #B9C4D8 !important; }
body.site4-body a.go { color: #EBD07E !important; }
body.site4-body .proof {
  background: #0C1018 !important;
  color: #EBD07E !important;
  border-bottom: 1px solid rgba(212,175,55,.18);
}
body.site4-body .proof b { color: #EBD07E !important; }
body.site4-body ul.ticks li::before,
body.site4-body th { color: #D4AF37 !important; }
body.site4-body table { color: #B9C4D8; }
body.site4-body th, body.site4-body td { border-bottom-color: rgba(132,152,188,.16); }
body.site4-body .pull {
  color: #F1F5FF !important;
  border-color: rgba(212,175,55,.22);
}
body.site4-body .btn.g,
body.site4-body .band .btn.g,
body.site4-body .cta-band .btn-ghost,
section .btn.g {
  background: transparent !important;
  color: #F1F5FF !important;
  -webkit-text-fill-color: #F1F5FF !important;
  border: 1px solid rgba(212,175,55,.35) !important;
}
body.site4-body .s4-footer,
body.site4-body .s4-footer p,
body.site4-body .estate-line { color: #7E8CA6 !important; }
body.site4-body .s4-footer a { color: #B9C4D8 !important; }
body.site4-body .s4-footer a:hover { color: #EBD07E !important; }
body.site4-body::before { opacity: 0.09; filter: saturate(0.7) brightness(0.7); }
body.site4-body .hero::before,
body.site4-body .phero::before,
body.site4-body .band::before {
  background: radial-gradient(circle, rgba(212,175,55,.22), transparent 62%) !important;
}
body.site4-body .cform label { color: #EBD07E !important; }
body.site4-body .cform input,
body.site4-body .cform select,
body.site4-body .cform textarea {
  background: #121A28 !important;
  color: #F1F5FF !important;
  border-color: rgba(212,175,55,.22) !important;
}

/* Contrast lock: ice/mist on void. Never navy-on-navy or gold-cream-on-white. */
body.site4-body .tpcall {
  background: #1B2536 !important;
  color: #F1F5FF !important;
  border-left: 3px solid #D4AF37 !important;
}
body.site4-body .vision-req li,
body.site4-body .vision .epi,
body.site4-body .vision-fed div,
body.site4-body .origin-pull,
body.site4-body .vp,
body.site4-body .coin {
  color: #F1F5FF !important;
}
body.site4-body .callout,
body.site4-body .callout.gold {
  background: rgba(212,175,55,.10) !important;
  border: 1px solid rgba(212,175,55,.32) !important;
  color: #F1F5FF !important;
}
body.site4-body .callout strong,
body.site4-body .callout.gold strong {
  color: #EBD07E !important;
}
body.site4-body main a:not(.btn):not(.btn-primary):not(.btn-ghost):not(.nav-cta):not(.btn.p):not(.btn.g) {
  color: #EBD07E !important;
}
body.site4-body .note { color: #B9C4D8 !important; }

/* Nav sits next to the wordmark, CTA stays right. */
body.site4-body header.s4-header .wrap.nav {
  justify-content: flex-start !important;
}
body.site4-body header.s4-header .nav-links {
  justify-content: flex-start !important;
  flex: 1 1 auto !important;
  margin-left: 1.25rem !important;
}
body.site4-body header.s4-header .nav-cta.s4-nav-cta-desktop {
  margin-left: auto !important;
}

/* Learn hub search */
.learn-search {
  display: flex; gap: 0.7rem; margin: 0 0 1.6rem; max-width: 40rem;
}
.learn-search input {
  flex: 1; background: #1B2536; color: #F1F5FF;
  border: 1px solid rgba(212,175,55,.28); border-radius: 10px;
  padding: 0.85rem 1rem; font: inherit;
}
.learn-search input::placeholder { color: #7E8CA6; }
.lgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.lcard {
  display: flex; flex-direction: column; background: #1B2536;
  border: 1px solid rgba(212,175,55,.18); border-radius: 16px;
  padding: 1.3rem 1.2rem; text-decoration: none; color: inherit;
}
.lcard .n { color: #EBD07E; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.lcard h3 { color: #F1F5FF !important; margin: .45rem 0 .4rem; }
.lcard p { color: #B9C4D8 !important; font-size: .95rem; flex: 1; }
.lcard[hidden] { display: none; }
.learn-empty { color: #7E8CA6; display: none; margin-top: 1rem; }
.learn-empty.show { display: block; }


/* ===== right-to-left ===== */
/* ar, he and fa. The runtime sets dir on <html> and .rtl on <body>, and
   injects the Noto face on demand so LTR visitors never fetch it. */
/* body.site4-body sets font-family with !important and hardcodes Sora, which
   has no Arabic or Hebrew coverage, so those scripts fell back to whatever the
   OS offered. Override the same declarations at the same weight. */
html[dir="rtl"] body.site4-body {
  --fb: "Noto Naskh Arabic", "Noto Sans Hebrew", Sora, system-ui, sans-serif;
  --fd: "Noto Naskh Arabic", "Noto Sans Hebrew", Georgia, serif;
  font-family: "Noto Naskh Arabic", "Noto Sans Hebrew", Sora, system-ui, sans-serif !important;
}
html[dir="rtl"] body.site4-body h1,
html[dir="rtl"] body.site4-body h2,
html[dir="rtl"] body.site4-body h3,
html[dir="rtl"] body.site4-body .lede,
html[dir="rtl"] body.site4-body .logo-word,
html[dir="rtl"] body.site4-body .section-title {
  font-family: "Noto Naskh Arabic", "Noto Sans Hebrew", Georgia, serif !important;
  letter-spacing: normal;
}
/* Latin runs (product names, hostnames, currency codes) inside RTL prose. */
html[dir="rtl"] .mono, html[dir="rtl"] code, html[dir="rtl"] .n {
  direction: ltr; unicode-bidi: isolate;
}
html[dir="rtl"] .crumbs, html[dir="rtl"] .foot-bottom-links { direction: rtl; }
html[dir="rtl"] .ticks li { padding-inline-start: 1.6em; padding-inline-end: 0; }
html[dir="rtl"] .ticks li::before { inset-inline-start: 0; inset-inline-end: auto; }
html[dir="rtl"] .btns, html[dir="rtl"] .foot-top { text-align: start; }
/* Direction-sensitive rules elsewhere in this stylesheet and in site4 use
   physical left/right. Rather than rewrite them and risk the LTR site, mirror
   the ones that are visible: list markers and the gold accent rule. */
html[dir="rtl"] .shift-card li,
html[dir="rtl"] .path-old li,
html[dir="rtl"] .path-new li { padding-inline: 1.1rem 0; }
html[dir="rtl"] .shift-card li::before,
html[dir="rtl"] .path-old li::before,
html[dir="rtl"] .path-new li::before,
html[dir="rtl"] ul.ticks li::before { left: auto; right: 0; }
html[dir="rtl"] .tpcall,
html[dir="rtl"] .chd-caveat,
html[dir="rtl"] .vision-fed,
html[dir="rtl"] .section-kicker,
html[dir="rtl"] main > section .wrap > h2,
html[dir="rtl"] main > section .wrap > .section-title {
  border-left: 0 !important;
  border-right: 3px solid #C9A227;
  padding-left: 0;
  padding-inline-start: 1.1rem;
}
html[dir="rtl"] .tpcall { border-radius: 12px 0 0 12px; }
@media (max-width: 560px) {
  /* .proof pills are white-space:nowrap. English fits; a longer translation
     (Arabic, Hebrew) does not, and the pill pushed the page into horizontal
     scroll. Let a pill wrap when it has to. */
  .proof span { white-space: normal; }
}
/* table { min-width: 620px } is deliberate for the 4-column tier tables, but
   unwrapped it made the whole document scroll sideways on a phone. Every table
   is stamped into this container; the container scrolls, the page does not. */
.tablewrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ===== white-paper.html on the Site4 dark chrome =====
   The page is an older light-theme document (its inline :root sets --night
   #0B1224 for body text and headings) with the dark chrome stamped over it.
   Two consequences, both visible live:
     1. its content root is <main class="wrap">, and `body.site4-body main`
        sets max-width:none, which beat the .wrap width and ran every
        paragraph edge to edge;
     2. the dark-theme text overrides target `article.paper p`, and this page
        has no <article>, so headings and <strong> stayed near-black on a
        near-black background and were effectively invisible.
   Scope everything to main.wrap so no other page is affected. */
body.site4-body main.wrap {
  /* body.site4-body main sets max-width:none !important for pages whose <main>
     is a full-bleed shell. white-paper.html uses <main class="wrap"> as its
     content column, so it needs the wrap width back, at the same weight. */
  max-width: 1120px !important;
  margin-inline: auto !important;
  padding-inline: 24px !important;
}
body.site4-body main.wrap p,
body.site4-body main.wrap li,
body.site4-body main.wrap td,
body.site4-body main.wrap .lede {
  color: #B9C4D8;
}
body.site4-body main.wrap h2,
body.site4-body main.wrap h3,
body.site4-body main.wrap h4 { color: #F1F5FF; }
body.site4-body main.wrap strong,
body.site4-body main.wrap b,
body.site4-body main.wrap .note strong,
body.site4-body main.wrap th { color: #EBD07E; }
body.site4-body main.wrap .pull,
body.site4-body main.wrap .note {
  color: #B9C4D8;
  border-color: rgba(212,175,55,.28);
}
body.site4-body main.wrap .pull .h { color: #EBD07E; }
body.site4-body main.wrap .hr { border-color: rgba(212,175,55,.20); }

/* =====================================================================
   ONE TYPEFACE, ONE SURFACE PALETTE
   The site was rendering four families at once (Aptos Display, Sora,
   Cormorant Garamond, IBM Plex Mono) because each generation of the design
   left its own stack behind, and the palette contradicted itself: some rules
   painted cards white while others recoloured their text for the dark chrome,
   so 187 text runs failed WCAG AA in both directions at once.

   Aptos is the brand face and is already loaded on every page, so it is the
   single family. Page-level inline <style> blocks come after this sheet in
   document order, which is why the overrides carry !important and are scoped
   to body.site4-body rather than :root.
   ===================================================================== */
body.site4-body {
  --fd: "Aptos", "Aptos Display", "Segoe UI", system-ui, -apple-system, sans-serif;
  --fb: "Aptos", "Aptos Display", "Segoe UI", system-ui, -apple-system, sans-serif;
  --f-mono: "Aptos", "Aptos Display", "Segoe UI", system-ui, monospace;
}
body.site4-body,
body.site4-body h1, body.site4-body h2, body.site4-body h3,
body.site4-body h4, body.site4-body h5, body.site4-body h6,
body.site4-body p, body.site4-body li, body.site4-body a,
body.site4-body span, body.site4-body strong, body.site4-body b,
body.site4-body em, body.site4-body td, body.site4-body th,
body.site4-body button, body.site4-body input, body.site4-body select,
body.site4-body textarea, body.site4-body label, body.site4-body blockquote,
body.site4-body .lede, body.site4-body .dek, body.site4-body .mono,
body.site4-body .n, body.site4-body .crumbs, body.site4-body .logo-word,
body.site4-body .section-title, body.site4-body .section-kicker {
  font-family: "Aptos", "Aptos Display", "Segoe UI", system-ui, -apple-system, sans-serif !important;
}
/* Page-level <style> blocks declare their own families with !important, and
   "Aptos Display" is a separate family from "Aptos", so the selector list above
   was not enough on its own: Cormorant Garamond and Aptos Display both still
   rendered. One universal rule is what "a single typeface" actually requires.
   Safe here because every icon on this site is inline SVG, not an icon font. */
body.site4-body, body.site4-body * {
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", sans-serif !important;
}
/* RTL still needs a face with Arabic and Hebrew coverage; Aptos has neither. */
html[dir="rtl"] body.site4-body,
html[dir="rtl"] body.site4-body * {
  font-family: "Noto Naskh Arabic", "Noto Sans Hebrew", "Aptos", "Segoe UI", system-ui, sans-serif !important;
}

/* ---- surfaces: one dark ground, one light ink ---- */
body.site4-body .lcard,
body.site4-body .card,
body.site4-body .chd,
body.site4-body .tile {
  background: #121A28 !important;
  border-color: rgba(212,175,55,.20) !important;
}
body.site4-body .lcard, body.site4-body .lcard *,
body.site4-body .card, body.site4-body .card * { color: #B9C4D8; }
body.site4-body .lcard h3, body.site4-body .card h3,
body.site4-body .lcard h4, body.site4-body .card h4 { color: #F1F5FF; }

/* ---- ink: retire the legacy light-theme tokens on dark ground ---- */
body.site4-body :is(strong, b),
body.site4-body :is(h2, h3, h4) :is(strong, b) { color: #EBD07E; }
body.site4-body :is(p, li, td, .lede, .dek, .section-sub) { color: #B9C4D8; }
body.site4-body :is(h1, h2, h3, h4, h5, .section-title) { color: #F1F5FF; }
body.site4-body :is(.crumbs, .crumbs a, .muted, small) { color: #8FA0BC; }
body.site4-body .sec-kicker, body.site4-body .section-kicker { color: #EBD07E; }
body.site4-body .check { color: #4FD1A5; }
body.site4-body .n, body.site4-body .coin, body.site4-body .role,
body.site4-body .tag, body.site4-body .dl, body.site4-body .amt { color: #EBD07E; }
body.site4-body a:not(.btn):not(.lcard):not(.nav-cta) { color: #CFE3FF; }
body.site4-body a:not(.btn):not(.lcard):not(.nav-cta):hover { color: #EBD07E; }

/* Panel components still carrying light-theme grounds (#fff / #fafbfc /
   #f6f1e8 / #f8fafc) from the previous design. Under the dark chrome they
   rendered light text on a light panel. One dark ground for all of them. */
body.site4-body :is(.note, .step, .cside, .holding, .tpcall, .tier, .node,
                    .ledger, .cok, .doctrine-frame, .pill, .cbox, .panel),
body.site4-body section.alt {
  background: #121A28 !important;
  border-color: rgba(212,175,55,.20) !important;
}
body.site4-body section.alt { background: #0F141E !important; }
body.site4-body :is(.note, .step, .cside, .holding, .tpcall, .tier, .node,
                    .ledger, .cok, .doctrine-frame, .pill, .cbox, .panel) :is(p, li, span, div, td) {
  color: #B9C4D8;
}
body.site4-body :is(.note, .step, .cside, .holding, .tpcall, .tier, .node,
                    .ledger, .cok, .doctrine-frame) :is(h2, h3, h4, .h) {
  color: #F1F5FF;
}
body.site4-body :is(input, select, textarea) {
  background: #121A28 !important;
  border-color: rgba(212,175,55,.22) !important;
  color: #F1F5FF !important;
}
body.site4-body :is(input, textarea)::placeholder { color: #8FA0BC; }
body.site4-body tbody tr:hover { background: rgba(212,175,55,.06); }
/* Legacy ink tokens that survive inside those panels. */
body.site4-body :is(.dek, .section-title, .dl) { color: #B9C4D8; }
body.site4-body h2.section-title { color: #F1F5FF; }

/* Last of the light-theme leftovers found by the contrast audit:
   the currency chips keep a white pill, h3/.dek keep #102A43 ink, and the
   white paper's own table striping and pull-quote paint cream grounds. */
body.site4-body :is(.coin, .coins .coin) {
  background: #121A28 !important;
  border-color: rgba(212,175,55,.24) !important;
  color: #F1F5FF !important;
}
body.site4-body .coin b { color: #EBD07E !important; }
body.site4-body h3,
body.site4-body :is(.go, a.go, .cap, .lead-in) { color: #F1F5FF; }
body.site4-body section .btn.g { color: #F1F5FF !important; }
body.site4-body main.wrap tbody tr:nth-child(even) { background: rgba(212,175,55,.05) !important; }
body.site4-body main.wrap .pull { background: rgba(212,175,55,.07) !important; }

/* Final pass from the contrast audit: an h3 nested in a list item, the
   section-title variant, and the blue .tag chip all still carried legacy ink. */
body.site4-body li h3,
body.site4-body :is(li, dd, .step, .tier) :is(h3, h4),
body.site4-body h2.section-title,
body.site4-body .section-title { color: #F1F5FF !important; }
body.site4-body .tag { color: #EBD07E !important; }

/* white-paper.html and constitution.html declare their own heading ink in a
   page-level <style>, and figure captions sit on a white image plate. */
body.site4-body main.wrap :is(h2, h3, h4) { color: #F1F5FF !important; }
body.site4-body :is(.inst-card, .doc-card, .dl-card) {
  background: #121A28 !important;
  border-color: rgba(212,175,55,.20) !important;
}
body.site4-body :is(.inst-card, .doc-card, .dl-card) :is(h3, h4) { color: #F1F5FF !important; }
body.site4-body :is(.inst-card, .doc-card, .dl-card) :is(p, span, small) { color: #B9C4D8 !important; }
body.site4-body figure { background: transparent; }
body.site4-body figcaption,
body.site4-body figcaption :is(strong, b, span) {
  background: transparent;
  color: #B9C4D8 !important;
}
body.site4-body figcaption :is(strong, b) { color: #EBD07E !important; }

/* Section headings inherited a ~40ch clamp from the old narrow paper column.
   Inside a 1120px measure that broke titles mid-phrase - "The Problem We Set
   Out / to Solve", "KYC and KYB are a / condition of settlement". Headings get
   room to set on one line; body copy keeps its ~68ch reading measure. */
body.site4-body :is(h1, h2, h3, h4),
body.site4-body main.wrap :is(h1, h2, h3, h4) { max-width: min(100%, 46rem) !important; }
body.site4-body main.wrap :is(h1, h2) { max-width: none !important; }

/* ---- compact tier table + typical-path steps ----
   The tier table's first column was sized by content, so "Tier 1" wrapped
   after "Tier" and every row grew a second line. The steps list reserved
   2.6rem of head room per item for a counter bubble that sat above the text,
   making a five-stage path taller than the section around it. */
body.site4-body table :is(td, th):first-child { white-space: nowrap; }
body.site4-body table :is(td, th) {
  padding-block: .55rem;
  vertical-align: top;
  line-height: 1.45;
}
body.site4-body table :is(td, th):first-child { width: 1%; padding-right: 1.4rem; }

body.site4-body ol.steps {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: .75rem 1.1rem;
  margin-top: 1.1rem;
}
body.site4-body ol.steps li {
  padding: .55rem 0 0 2.6rem;   /* counter beside the text, not above it */
  border-top: 1px solid rgba(212,175,55,.20);
  min-width: 0;
}
body.site4-body ol.steps li::before {
  top: .5rem; left: 0;
  width: 1.75rem; height: 1.75rem;
  background: rgba(212,175,55,.14);
  color: #EBD07E;
  font-size: .78rem;
}
body.site4-body ol.steps li h3 {
  font-size: 1rem;
  margin: 0 0 .15rem;
  line-height: 1.25;
}
body.site4-body ol.steps li p { margin: 0; font-size: .9rem; line-height: 1.5; }

/* ---- reading measure ----
   Body copy was running 89ch, and the .note panel had no measure at all, so the
   ATCE honest note set a single 170-character line. Comfortable measure is
   45-75 characters; ch units express that directly instead of guessing at a
   pixel width for a given font size. Centred bands and hero copy are excluded:
   they are short and deliberately centred. */
body.site4-body :is(main, article) :is(p, li) { max-width: 72ch; }
body.site4-body :is(.band, .cta-band, .hero, .phero, .lead) :is(p, li) { max-width: none; }
body.site4-body .note { max-width: 76ch; }
body.site4-body .note :is(p, li) { max-width: none; }
body.site4-body :is(.card, .lcard, .step, .tier, .cside, .holding) :is(p, li) { max-width: none; }

/* ---- Cher persona island ----
   The nav-row is a light strip (#D7E6F5 / #fafbfc) shared with Rachelle and
   Mona. The Site4 contrast pass painted the rest of the page ice/mist on
   void, then applied those inks globally (body.site4-body h3/p/li/a/strong
   and input { color/background !important }). Cher's replies inherit that
   ice (#F1F5FF) and mist (#B9C4D8) onto the light log, which is unreadable.
   Keep the light island; pin dark ink and light grounds so answers contrast. */
body.site4-body [data-jil-persona-slot],
body.site4-body header.s4-header [data-jil-persona-slot],
body.site4-body .jil-persona-wrap,
body.site4-body .jil-persona-wrap.is-nav-row {
  background: #D7E6F5 !important;
  color: #0f172a !important;
}
body.site4-body .jil-persona-wrap.is-nav-row {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.site4-body .jil-persona {
  background: transparent !important;
  color: #0f172a !important;
  border-color: rgba(15, 23, 42, .12) !important;
  box-shadow: none !important;
}
body.site4-body .jil-persona-results,
body.site4-body .jil-persona-log,
body.site4-body .jil-persona-chips,
body.site4-body .jil-persona-resize {
  background: #f8fafc !important;
  color: #1a2233 !important;
}
body.site4-body .jil-persona-log { background: #fafbfc !important; }
body.site4-body .jil-persona-wrap * {
  color: #1a2233 !important;
  -webkit-text-fill-color: #1a2233 !important;
  max-width: none !important;
}
body.site4-body .jil-persona-label,
body.site4-body .jil-p-user,
body.site4-body .jil-persona-wrap :is(h3, h4, h5, th) {
  color: #0d2044 !important;
  -webkit-text-fill-color: #0d2044 !important;
}
body.site4-body .jil-p-user::before,
body.site4-body .jil-p-typing,
body.site4-body .jil-persona-wrap :is(small, .muted) {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}
body.site4-body .jil-persona-wrap a,
body.site4-body .jil-persona-wrap a:not(.btn):not(.lcard):not(.nav-cta),
body.site4-body .jil-p-bot a {
  color: #0b5cad !important;
  -webkit-text-fill-color: #0b5cad !important;
}
body.site4-body .jil-persona-wrap :is(strong, b) {
  color: #0d2044 !important;
  -webkit-text-fill-color: #0d2044 !important;
}
body.site4-body .jil-persona-wrap :is(input, textarea, select),
body.site4-body .jil-persona-input {
  background: #ffffff !important;
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  border-color: #cbd5e1 !important;
}
body.site4-body .jil-persona-wrap :is(input, textarea)::placeholder,
body.site4-body .jil-persona-input::placeholder {
  color: #64748b !important;
  -webkit-text-fill-color: #64748b !important;
}
body.site4-body .jil-persona-chip,
body.site4-body .jil-persona-clear,
body.site4-body .jil-persona-lead {
  background: #ffffff !important;
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
  border-color: #e2e8f0 !important;
}
body.site4-body .jil-p-bot :is(code, pre),
body.site4-body .jil-p-bot th {
  background: #f1f5f9 !important;
  color: #1a2233 !important;
  -webkit-text-fill-color: #1a2233 !important;
}
body.site4-body .jil-p-bot td { background: #ffffff !important; }
body.site4-body .jil-persona-send,
body.site4-body .jil-persona-send:hover {
  background: #C9A227 !important;
  color: #0B0F16 !important;
  -webkit-text-fill-color: #0B0F16 !important;
}

/* Paragraphs fill the wrap. A second measure made copy stop mid-page. */
body.site4-body :is(p, .lede, .dek, .section-sub, .section-desc, .hero-lead, .hero-adapt, .sec-lede, .body-lg, .v2-section-subtitle, .section-title),
body.site4-body .hero h1,
body.site4-body .lead h1 {
  max-width: none;
}

/* ===================================================================
   DARK CONTAINER CONTRAST LAW (no dark/black text on dark backgrounds)
   Reverses all text on dark containers to crisp white and light accents.
   =================================================================== */

/* Ensure shift-card.next (dark card) h3 title is crisp white */
body.site4-body .shift-card.next h3 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* All headings inside dark containers and main */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite, .v2-section-alt,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section,
  .card, .lcard, .acard, .inst-card, .step, .holding, .cside, .note, .tpcall,
  footer.s4-footer, footer:has(.foot-top), .jil-footer,
  header.s4-header, .s4-mobile-panel
) :is(h1, h2, h3, h4, h5, h6, .section-title, .v2-hero-title, .v2-section-title) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Bold lead-ins and strong tags inside dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite, .v2-section-alt,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section,
  .card, .lcard, .acard, .inst-card, .step, .holding, .cside, .note, .tpcall,
  footer.s4-footer, footer:has(.foot-top), .jil-footer
) :is(strong, b) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Body copy and paragraphs inside dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite, .v2-section-alt,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section,
  .card, .lcard, .acard, .inst-card, .step, .holding, .cside, .note, .tpcall,
  footer.s4-footer, footer:has(.foot-top), .jil-footer
) :is(p, .body-lg, .lede, .sec-desc, .section-desc, .hero-lead, .hero-adapt, .sub, .dek, .sec-lede, .v2-section-subtitle, li, blockquote, .section-sub) {
  color: #c9d9e6 !important;
  -webkit-text-fill-color: #c9d9e6 !important;
}

/* Section markers, kickers, eyebrows, and tags inside dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite, .v2-section-alt,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section,
  .card, .lcard, .acard, .inst-card, .step, .holding, .cside, .note, .tpcall
) :is(.section-marker, .eyebrow, .section-kicker, .sec-kicker, .hero-kicker, .tag, .vol, .hero-label) {
  color: #9ec0d6 !important;
  -webkit-text-fill-color: #9ec0d6 !important;
  border-color: rgba(158, 192, 214, 0.35) !important;
}

/* Gold kicker / tag exceptions on dark backgrounds */
body.site4-body .shift-card.next .tag,
body.site4-body .radv .section-kicker,
body.site4-body .sec-kicker {
  color: #E4C35A !important;
  -webkit-text-fill-color: #E4C35A !important;
}

/* Heading gold accents / gradients */
body.site4-body :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .shift-card.next
) :is(h1, h2, h3, h4, .section-title, .v2-hero-title) :is(.accent, em, .gold, .gold-txt) {
  background: linear-gradient(90deg, #F5E6A8, #D4AF37 45%, #A87C1F) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

/* Inline links on dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite, .v2-section-alt,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section
) a:not(.btn):not(.btn-primary):not(.btn-gold):not(.nav-cta):not(.hw-btn-gold):not(.btn-outline):not(.btn-ghost):not(.btn-hero-outline):not(.btn-hero-primary):not(.jil-btn--primary):not(.v2-inline-lang-trigger):not(.v2-inline-lang-opt):not(.btn.p):not(.btn.g):not(.lcard) {
  color: #c9d9e6 !important;
  -webkit-text-fill-color: #c9d9e6 !important;
  text-decoration: underline !important;
}
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .proof, .proofstrip, .prooflist,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .qr-hero, section.qr-hero,
  .entity-hero, section.entity-hero,
  .letter-hero, section.letter-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .trust, section.trust,
  .v2-section-navy, .v2-section-graphite, .v2-section-alt,
  .shift-card.next,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  article, article.paper,
  main > section
) a:not(.btn):not(.btn-primary):not(.btn-gold):not(.nav-cta):not(.hw-btn-gold):not(.btn-outline):not(.btn-ghost):not(.btn-hero-outline):not(.btn-hero-primary):not(.jil-btn--primary):not(.v2-inline-lang-trigger):not(.v2-inline-lang-opt):not(.btn.p):not(.btn.g):not(.lcard):hover {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Outline and Ghost buttons on dark containers: crisp white text */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .v2-section-navy, .v2-section-graphite, .v2-section-alt,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  main > section
) :is(.btn-ghost, a.btn-ghost, .btn-outline, a.btn-outline, .btn-hero-outline, a.btn-hero-outline, .btn.g, a.btn.g) {
  color: #f8fafc !important;
  -webkit-text-fill-color: #f8fafc !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.38) !important;
}
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .lead, section.lead,
  .band, section.band,
  .cta-band, section.cta-band,
  .federation, section.federation,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .vp-hero, section.vp-hero,
  .tech-hero, section.tech-hero,
  .amm-hero, section.amm-hero,
  .sting, section.sting,
  .radv, section.radv,
  .quote-band, section.quote-band,
  .v2-section-navy, .v2-section-graphite, .v2-section-alt,
  section.alt, .thirdpath.alt, .s4-band.alt,
  section.audience, section.future,
  main > section
) :is(.btn-ghost, a.btn-ghost, .btn-outline, a.btn-outline, .btn-hero-outline, a.btn-hero-outline, .btn.g, a.btn.g):hover {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: #ffffff !important;
}

/* Code blocks on dark containers */
body.site4-body :is(main, body) :is(
  .hero, section.hero,
  .phero, section.phero,
  .v2-hero, section.v2-hero,
  .editorial-hero, .editorial-hero-section, section.editorial-hero,
  .phi-hero, section.phi-hero,
  .cta-band, section.cta-band,
  .sting, section.sting,
  article, article.paper,
  main > section
) :is(code, pre) {
  color: #e2e8f0 !important;
  -webkit-text-fill-color: #e2e8f0 !important;
  background: rgba(255, 255, 255, 0.08) !important;
}
