/* ==========================================================================
   Beta Digitals — Design System Layer (v1)
   BLACK = authority · RED = energy · WHITE = clarity
   Loaded after style.css. Only classes prefixed .ds-/.sec-/.cms- are new;
   legacy pages keep working untouched.
   ========================================================================== */

:root {
  /* Brand colour — one red everywhere */
  --red: #E5200E;
  --red-600: #C51B0C;
  --red-50: #FDECEA;
  --ink: #0A0B0E;          /* primary dark */
  --ink-2: #13151A;        /* raised dark */
  --paper: #FFFFFF;
  --paper-2: #F6F5F2;      /* warm off-white */
  --line-light: #E7E5E0;
  --line-dark: rgba(255,255,255,.10);
  --text-dark: #0A0B0E;    /* body on light */
  --text-dark-2: #1F2937;  /* muted on light */
  --text-light: #FFFFFF;
  --text-light-2: #B4B9C5; /* muted on dark */

  /* Spacing scale (4 → 144) */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px;
  --s-7: 40px; --s-8: 48px; --s-9: 64px; --s-10: 80px; --s-11: 96px; --s-12: 120px; --s-13: 144px;

  /* Type scale */
  --fs-display: clamp(44px, 6vw, 84px);
  --fs-h1: clamp(40px, 5.2vw, 72px);
  --fs-h2: clamp(32px, 4vw, 56px);
  --fs-h3: clamp(22px, 2.2vw, 30px);
  --fs-h4: clamp(18px, 1.5vw, 21px);
  --fs-lead: clamp(17px, 1.35vw, 20px);
  --fs-body: 16.5px;
  --fs-small: 14px;
  --fs-eyebrow: 12px;

  /* Typography */
  --font-heading: 'Inter', sans-serif;
  --font-body: 'Lato', sans-serif;

  --container: 1320px;
  --gutter: clamp(20px, 4vw, 48px);
  --radius: 14px;
  --radius-sm: 10px;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --shadow-card: 0 1px 2px rgba(10,11,14,.04), 0 12px 32px -12px rgba(10,11,14,.12);
}

/* ── Container ─────────────────────────────────────────────── */
.ds-container {
  width: 100%;
  max-width: calc(var(--container) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ── Sections ──────────────────────────────────────────────── */
.sec { position: relative; padding-block: clamp(72px, 9vw, 128px); overflow: hidden; }
.sec--tight { padding-block: clamp(48px, 6vw, 80px); }
.sec-dark  { background: var(--ink); color: var(--text-light); }
.sec-dark-2 { background: var(--ink-2); color: var(--text-light); }
.sec-light { background: var(--paper); color: var(--text-dark); }
.sec-paper { background: var(--paper-2); color: var(--text-dark); }
.sec-red   { background: var(--red); color: #fff; }

/* ── Typography ────────────────────────────────────────────── */
.ds-display, .ds-h1, .ds-h2, .ds-h3, .ds-h4 {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.025em;
  margin: 0;
  color: inherit;
}
.ds-display { font-size: var(--fs-display); line-height: 1.02; letter-spacing: -0.035em; font-weight: 800; }
.ds-h1 { font-size: var(--fs-h1); line-height: 1.05; font-weight: 800; }
.ds-h2 { font-size: var(--fs-h2); line-height: 1.08; font-weight: 750; }
.ds-h3 { font-size: var(--fs-h3); line-height: 1.2; letter-spacing: -0.015em; font-weight: 700; }
.ds-h4 { font-size: var(--fs-h4); line-height: 1.3; letter-spacing: -0.01em; font-weight: 700; }
.ds-lead { font-size: var(--fs-lead); line-height: 1.6; margin: 0; }
.ds-body { font-size: var(--fs-body); line-height: 1.7; margin: 0; }
.ds-small { font-size: var(--fs-small); line-height: 1.6; margin: 0; }
/* ds-muted: subdued text that adapts by section theme. Both !important to beat section p override. */
.ds-muted { color: var(--text-dark-2, #545862) !important; }
.sec-dark .ds-muted, .sec-dark-2 .ds-muted, .ds-on-dark .ds-muted, .cms-bg .ds-muted { color: var(--text-light-2, #B4B9C5) !important; }
.sec-light .ds-muted, .sec-paper .ds-muted, .bg-white .ds-muted, .bg-light .ds-muted { color: #52525B !important; }
.ds-measure { max-width: 62ch; }
.ds-display .accent, .ds-h1 .accent, .ds-h2 .accent, .ds-h3 .accent, .ds-lead .accent,
.ds-body .accent, .accent { color: var(--red); font-style: normal; }
.sec-red .accent { color: var(--ink); }

.ds-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow); font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--red);
  margin-bottom: var(--s-5);
}
.ds-eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }

.ds-head { margin-bottom: clamp(40px, 5vw, 64px); }
.ds-head--center { text-align: center; margin-inline: auto; max-width: 780px; }
.ds-head--center .ds-eyebrow { justify-content: center; }
.ds-head .ds-lead { margin-top: var(--s-5); }
.ds-head--split { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--s-6); flex-wrap: wrap; }

/* ── Buttons ───────────────────────────────────────────────── */
.ds-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 28px;
  border-radius: 999px; border: 1.5px solid transparent;
  font-family: var(--font-heading); font-weight: 600; font-size: 15.5px; letter-spacing: .005em;
  text-decoration: none; white-space: nowrap;
  transition: transform .3s var(--ease), background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ds-btn i { font-size: .8em; transition: transform .3s var(--ease); }
.ds-btn:hover { transform: translateY(-2px); }
.ds-btn:hover i { transform: translateX(3px); }
.ds-btn:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
.ds-btn--primary { background: var(--red); color: #fff; box-shadow: 0 10px 24px -10px rgba(229,32,14,.6); }
.ds-btn--primary:hover { background: var(--red-600); color: #fff; }
.ds-btn--ghost-light { border-color: rgba(255,255,255,.35); color: #fff; }
.ds-btn--ghost-light:hover { border-color: #fff; background: #fff; color: var(--ink); }
.ds-btn--ghost-dark { border-color: rgba(10,11,14,.2); color: var(--ink); }
.ds-btn--ghost-dark:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
.ds-btn--sm { min-height: 44px; padding: 0 22px; font-size: 14.5px; }
.ds-btns { display: flex; flex-wrap: wrap; gap: var(--s-3); }

.ds-link {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 15px; color: var(--red); text-decoration: none;
}
.ds-link::after { content: "→"; transition: transform .3s var(--ease); }
.ds-link:hover { color: var(--red-600); }
.ds-link:hover::after { transform: translateX(4px); }

/* ── Grid ──────────────────────────────────────────────────── */
.ds-grid { display: grid; gap: var(--s-5); }
.ds-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ds-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ds-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.ds-split--6040 { grid-template-columns: 1.15fr .85fr; }
@media (max-width: 1199px) { .ds-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 991px) {
  .ds-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-split, .ds-split--6040 { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
  .ds-grid--2, .ds-grid--3, .ds-grid--4 { grid-template-columns: 1fr; }
}

/* ── Cards ─────────────────────────────────────────────────── */
.ds-card {
  position: relative; display: flex; flex-direction: column; height: 100%;
  padding: var(--s-6);
  border-radius: var(--radius);
  background: var(--paper); border: 1px solid var(--line-light);
  color: var(--text-dark);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.ds-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); border-color: transparent; }
.sec-paper .ds-card { background: #fff; }
.sec-dark .ds-card, .sec-dark-2 .ds-card { background: rgba(255,255,255,.03); border-color: var(--line-dark); color: var(--text-light); }
.sec-dark .ds-card:hover, .sec-dark-2 .ds-card:hover { background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.18); box-shadow: none; }
.ds-card .ds-h4 { margin-bottom: var(--s-3); }
.ds-card__icon {
  width: 48px; height: 48px; display: grid; place-items: center;
  border-radius: 12px; background: var(--red-50); color: var(--red);
  font-size: 19px; margin-bottom: var(--s-5);
}
.sec-dark .ds-card__icon, .sec-dark-2 .ds-card__icon { background: rgba(229,32,14,.12); }
.ds-card__num {
  font-family: var(--font-heading); font-weight: 700; font-size: 14px; letter-spacing: .1em;
  color: var(--red); margin-bottom: var(--s-5);
}

/* Media card (service cards) */
.ds-media-card { padding: 0; overflow: hidden; }
.ds-media-card .cms-picture { aspect-ratio: 4 / 3; }
.ds-media-card__body { padding: var(--s-5) var(--s-5) var(--s-6); display: flex; flex-direction: column; flex: 1; }
.ds-media-card__body .ds-small { flex: 1; margin-bottom: var(--s-5); }

/* ── CMS images ────────────────────────────────────────────── */
.cms-picture {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: inherit;
  background: linear-gradient(135deg, #181A20 0%, #0C0D11 100%);
}
.cms-picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.1s var(--ease);
}
.cms-picture__overlay { position: absolute; inset: 0; pointer-events: none; }
.ds-card:hover .cms-picture img, .ds-photo:hover .cms-picture img { transform: scale(1.035); }
.ds-photo { border-radius: var(--radius); overflow: hidden; }
.ds-photo .cms-picture { aspect-ratio: 4 / 5; }
.ds-photo--wide .cms-picture { aspect-ratio: 16 / 10; }

/* Background images driven by CMS (overlay is CSS, never baked in) */
.cms-bg {
  background-color: var(--ink);
  background-image:
    linear-gradient(90deg,
      rgba(var(--ov-rgb), var(--ov)) 0%,
      rgba(var(--ov-rgb), calc(var(--ov) * .85)) 40%,
      rgba(var(--ov-rgb), calc(var(--ov) * .45)) 75%,
      rgba(var(--ov-rgb), calc(var(--ov) * .25)) 100%),
    var(--bg-img);
  background-size: cover;
  background-position: var(--bg-pos, center);
  background-repeat: no-repeat;
}
.cms-bg--even {
  background-image: linear-gradient(rgba(var(--ov-rgb), var(--ov)), rgba(var(--ov-rgb), var(--ov))), var(--bg-img);
}
@media (max-width: 767px) {
  .cms-bg, .cms-bg--even {
    background-image: linear-gradient(rgba(var(--ov-rgb), calc(var(--ov) * .9)), rgba(var(--ov-rgb), var(--ov))), var(--bg-img-m, var(--bg-img));
  }
}

/* ── Hero ──────────────────────────────────────────────────── */
.ds-hero {
  min-height: clamp(540px, 85vh, 720px);
  display: flex;
  align-items: center;
  padding-top: clamp(16px, 2.5vw, 32px) !important;
  padding-bottom: clamp(28px, 4vw, 48px) !important;
  color: #ffffff;
}
.ds-hero__inner { max-width: 780px; }
.ds-hero .ds-eyebrow { margin-bottom: 20px; }
.ds-hero .ds-display { margin-bottom: 20px; }
.ds-hero .ds-lead { color: #E5E7EB; max-width: 620px; margin-bottom: 28px; opacity: 1; }
.ds-hero .ds-btns { margin-bottom: 24px; }
.ds-hero__meta {
  margin-top: 24px; padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.14);
  display: flex; align-items: center; gap: 12px;
  font-size: var(--fs-small); color: #A1A1AA;
}
.ds-hero__meta strong { color: #ffffff; font-weight: 600; }
.ds-hero__meta i { color: var(--red); }
.ds-hero.text-center .ds-hero__inner { margin-inline: auto; }
.ds-hero.text-center .ds-btns, .ds-hero.text-center .ds-hero__meta { justify-content: center; }
.ds-hero.text-center .ds-lead { margin-inline: auto; }

@media (max-width: 1024px) {
  .ds-hero {
    min-height: auto;
    padding-top: clamp(32px, 4.5vw, 48px);
    padding-bottom: clamp(40px, 5vw, 56px);
  }
}

@media (max-width: 575px) {
  .ds-hero {
    min-height: auto;
    padding-top: 28px;
    padding-bottom: 36px;
  }
  .ds-hero .ds-eyebrow { margin-bottom: 14px; }
  .ds-hero .ds-display { margin-bottom: 14px; }
  .ds-hero .ds-lead { margin-bottom: 22px; }
  .ds-hero .ds-btns { margin-bottom: 20px; }
}

/* ── Statement strip ───────────────────────────────────────── */
.ds-statement { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(24px, 5vw, 80px); align-items: start; }
@media (max-width: 991px) { .ds-statement { grid-template-columns: 1fr; } }

/* ── Check list ────────────────────────────────────────────── */
.ds-checks { list-style: none; padding: 0; margin: var(--s-6) 0 0; display: grid; gap: var(--s-5); }
.ds-checks li { display: grid; grid-template-columns: 28px 1fr; gap: var(--s-3); }
.ds-checks li::before {
  content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900;
  width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
  font-size: 11px; background: var(--red); color: #fff; margin-top: 3px;
}
.ds-checks strong { display: block; font-family: var(--font-heading); font-weight: 650; font-size: 17px; margin-bottom: 2px; }

/* ── Stat / quote ──────────────────────────────────────────── */
.ds-quote { font-family: var(--font-heading); font-size: clamp(17px, 1.4vw, 19px); line-height: 1.55; font-weight: 500; margin: 0 0 var(--s-6); flex: 1; }
.ds-quote::before { content: "“"; display: block; font-size: 56px; line-height: .8; color: var(--red); margin-bottom: var(--s-3); }
.ds-person strong { display: block; font-family: var(--font-heading); font-weight: 650; }
.ds-person span { font-size: var(--fs-small); }

/* ── Case study feature ────────────────────────────────────── */
.ds-feature {
  display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--radius); overflow: hidden;
  background: #fff; border: 1px solid var(--line-light);
}
.ds-feature .cms-picture { height: 100%; min-height: 360px; }
.ds-feature__body { padding: clamp(28px, 4vw, 56px); display: flex; flex-direction: column; justify-content: center; }
.ds-feature dl { margin: var(--s-5) 0 var(--s-6); display: grid; gap: var(--s-4); }
.ds-feature dt { font-size: var(--fs-eyebrow); letter-spacing: .14em; text-transform: uppercase; color: var(--red); font-weight: 700; }
.ds-feature dd { margin: 4px 0 0; color: var(--text-dark-2); line-height: 1.65; }
@media (max-width: 991px) { .ds-feature { grid-template-columns: 1fr; } .ds-feature .cms-picture { min-height: 0; aspect-ratio: 16/10; } }

.ds-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--s-6); }
.ds-tag { font-size: 12.5px; font-weight: 600; padding: 6px 12px; border-radius: 999px; background: var(--paper-2); color: var(--text-dark); border: 1px solid var(--line-light); }
.sec-dark .ds-tag { background: rgba(255,255,255,.05); color: #fff; border-color: var(--line-dark); }
.ds-tag--red { background: var(--red-50); color: var(--red); border-color: transparent; }

/* ── Article cards ─────────────────────────────────────────── */
.ds-article { text-decoration: none; }
.ds-article__meta { font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--red); margin-bottom: var(--s-3); }
.ds-article .ds-h4 { color: var(--text-dark); }
.ds-article .ds-small { flex: 1; margin-bottom: var(--s-5); }

/* ── Newsletter ────────────────────────────────────────────── */
.ds-news { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.ds-news form { display: flex; gap: var(--s-2); flex-wrap: wrap; }
.ds-input {
  flex: 1 1 240px; min-height: 52px; padding: 0 22px; border-radius: 999px;
  border: 1.5px solid rgba(255,255,255,.4); background: rgba(255,255,255,.08); color: #fff; font-size: 15px;
}
.ds-input::placeholder { color: rgba(255,255,255,.75); }
.ds-input:focus { outline: none; border-color: #fff; background: rgba(255,255,255,.14); }
.sec-red .ds-btn--dark { background: var(--ink); color: #fff; }
.sec-red .ds-btn--dark:hover { background: #000; color: #fff; }
@media (max-width: 991px) { .ds-news { grid-template-columns: 1fr; } }

/* ── Motion ────────────────────────────────────────────────── */
.ds-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--d, 0) * 90ms); }
.ds-reveal.is-in { opacity: 1; transform: none; }
.ds-hero-in > * { opacity: 0; transform: translateY(18px); animation: dsIn 0.5s var(--ease) forwards; }
.ds-hero-in > *:nth-child(1) { animation-delay: .02s; }
.ds-hero-in > *:nth-child(2) { animation-delay: .10s; }
.ds-hero-in > *:nth-child(3) { animation-delay: .18s; }
.ds-hero-in > *:nth-child(4) { animation-delay: .26s; }
.ds-hero-in > *:nth-child(5) { animation-delay: .34s; }
.ds-hero-in > *:nth-child(n+6) { animation-delay: .40s; }
@keyframes dsIn { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .ds-reveal, .ds-hero-in > * { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; }
  .ds-card, .ds-btn, .cms-picture img { transition: none !important; }
}
.no-js .ds-reveal { opacity: 1; transform: none; }

/* ── Mobile refinements ────────────────────────────────────── */
@media (max-width: 575px) {
  .ds-btns .ds-btn { width: 100%; }
  .ds-card { padding: var(--s-5); }
  .ds-hero { min-height: 0; }
  .ds-head--split { align-items: flex-start; }
}

/* ==========================================================================
   System-Level Section Themes & High-Contrast Typography System
   ========================================================================== */

/* ── 1. Dark Section Theme Tokens ────────────────────────────── */
.sec-dark, .sec-dark-2, .bg-dark, .ds-on-dark, [data-theme="dark"] {
  --sec-heading: #FFFFFF;
  --sec-text: #FFFFFF;
  --sec-text-sub: #E5E7EB;
  --sec-muted: #A1A1AA;
  --sec-accent: #F12A1A;
  background-color: var(--ink, #0A0B0E);
  color: var(--sec-text);
}
.sec-dark-2 {
  background-color: var(--ink-2, #13151A);
}

/* ── 2. Light & Paper Section Theme Tokens ──────────────────── */
.sec-light, .sec-paper, .bg-light, .bg-white, .bg-paper, [data-theme="light"] {
  --sec-heading: #08090B;
  --sec-text: #18181B;
  --sec-text-sub: #3F3F46;
  --sec-muted: #52525B;
  --sec-accent: #F12A1A;
  color: var(--sec-text);
}
.sec-light { background-color: #FFFFFF; }
.sec-paper { background-color: #F6F5F2; }

/* ── 3. Red Section Theme Tokens ─────────────────────────────── */
.sec-red, .bg-danger {
  --sec-heading: #FFFFFF;
  --sec-text: #FFFFFF;
  --sec-text-sub: rgba(255, 255, 255, 0.95);
  --sec-muted: rgba(255, 255, 255, 0.85);
  --sec-accent: #0A0B0E;
  background-color: var(--red, #E5200E);
  color: var(--sec-text);
}

/* ── 4. CMS Background / Overlaid Image Sections ─────────────── */
.cms-bg {
  --sec-heading: #FFFFFF;
  --sec-text: #FFFFFF;
  --sec-text-sub: #E5E7EB;
  --sec-muted: #A1A1AA;
  --sec-accent: #F12A1A;
  color: #FFFFFF !important;
}

/* ── 5. System Typography Contract (Heading & Text Color Consumption) ── */
.sec-dark h1, .sec-dark h2, .sec-dark h3, .sec-dark h4, .sec-dark h5, .sec-dark h6,
.sec-dark-2 h1, .sec-dark-2 h2, .sec-dark-2 h3, .sec-dark-2 h4, .sec-dark-2 h5, .sec-dark-2 h6,
.sec-dark .ds-display, .sec-dark .ds-h1, .sec-dark .ds-h2, .sec-dark .ds-h3, .sec-dark .ds-h4,
.sec-dark-2 .ds-display, .sec-dark-2 .ds-h1, .sec-dark-2 .ds-h2, .sec-dark-2 .ds-h3, .sec-dark-2 .ds-h4,
.bg-dark h1, .bg-dark h2, .bg-dark h3, .bg-dark h4, .bg-dark h5, .bg-dark h6,
.cms-bg h1, .cms-bg h2, .cms-bg h3, .cms-bg h4, .cms-bg h5, .cms-bg h6,
.cms-bg .ds-display, .cms-bg .ds-h1, .cms-bg .ds-h2, .cms-bg .ds-h3, .cms-bg .ds-h4 {
  color: var(--sec-heading, #FFFFFF) !important;
}

.sec-light h1, .sec-light h2, .sec-light h3, .sec-light h4, .sec-light h5, .sec-light h6,
.sec-paper h1, .sec-paper h2, .sec-paper h3, .sec-paper h4, .sec-paper h5, .sec-paper h6,
.sec-light .ds-display, .sec-light .ds-h1, .sec-light .ds-h2, .sec-light .ds-h3, .sec-light .ds-h4,
.sec-paper .ds-display, .sec-paper .ds-h1, .sec-paper .ds-h2, .sec-paper .ds-h3, .sec-paper .ds-h4,
.bg-white h1, .bg-white h2, .bg-white h3, .bg-white h4, .bg-white h5, .bg-white h6 {
  color: var(--sec-heading, #08090B) !important;
}

/* Paragraphs & Lead Body Text */
.sec-dark p, .sec-dark-2 p, .bg-dark p, .cms-bg p,
.sec-dark li, .sec-dark-2 li, .bg-dark li, .cms-bg li,
.sec-dark .ds-lead, .sec-dark-2 .ds-lead, .bg-dark .ds-lead, .cms-bg .ds-lead,
.sec-dark .ds-body, .sec-dark-2 .ds-body, .bg-dark .ds-body, .cms-bg .ds-body {
  color: var(--sec-text-sub, #E5E7EB) !important;
  opacity: 1 !important;
}

.sec-light p, .sec-paper p, .bg-white p, .bg-light p,
.sec-light li, .sec-paper li, .bg-white li, .bg-light li,
.sec-light .ds-lead, .sec-paper .ds-lead, .bg-white .ds-lead, .bg-light .ds-lead,
.sec-light .ds-body, .sec-paper .ds-body, .bg-white .ds-body, .bg-light .ds-body {
  color: #050608 !important;
  opacity: 1 !important;
}

/* Muted / Secondary Text */
.sec-dark .ds-muted, .sec-dark-2 .ds-muted, .bg-dark .ds-muted, .cms-bg .ds-muted,
.sec-dark .text-muted, .sec-dark-2 .text-muted, .bg-dark .text-muted, .cms-bg .text-muted,
.sec-dark .text-secondary, .sec-dark-2 .text-secondary, .bg-dark .text-secondary, .cms-bg .text-secondary,
.sec-dark dd, .sec-dark-2 dd, .bg-dark dd, .cms-bg dd,
.sec-dark .ds-small, .sec-dark-2 .ds-small, .bg-dark .ds-small, .cms-bg .ds-small {
  color: var(--sec-muted, #A1A1AA) !important;
  opacity: 1 !important;
}

.sec-light .ds-muted, .sec-paper .ds-muted, .bg-white .ds-muted, .bg-light .ds-muted,
.sec-light .text-muted, .sec-paper .text-muted, .bg-white .text-muted, .bg-light .text-muted,
.sec-light .text-secondary, .sec-paper .text-secondary, .bg-white .text-secondary, .bg-light .text-secondary,
.sec-light dd, .sec-paper dd, .bg-white dd, .bg-light dd,
.sec-light .ds-small, .sec-paper .ds-small, .bg-white .ds-small, .bg-light .ds-small {
  color: #0F172A !important;
  opacity: 1 !important;
}

/* Accents */
.accent, .ds-display .accent, .ds-h1 .accent, .ds-h2 .accent, .ds-h3 .accent, .ds-h4 .accent, .ds-lead .accent, .ds-body .accent {
  color: var(--sec-accent, #F12A1A) !important;
  font-style: normal;
}
.sec-red .accent {
  color: #0A0B0E !important;
}

/* Strong / Bold Elements */
.sec-dark strong, .sec-dark-2 strong, .cms-bg strong {
  color: #FFFFFF !important;
}
.sec-light strong, .sec-paper strong {
  color: #08090B !important;
}

/* Eyebrows in Dark Sections */
.sec-dark .ds-eyebrow, .sec-dark-2 .ds-eyebrow, .cms-bg .ds-eyebrow {
  color: var(--red, #F12A1A) !important;
}

/* Check Lists in Dark Sections */
.sec-dark .ds-checks li > div, .sec-dark-2 .ds-checks li > div {
  color: var(--sec-text-sub, #E5E7EB) !important;
}
.sec-dark .ds-checks strong, .sec-dark-2 .ds-checks strong {
  color: #FFFFFF !important;
}
/* Check Lists in Light Sections */
.sec-light .ds-checks li > div, .sec-paper .ds-checks li > div {
  color: #3F3F46 !important;
}
.sec-light .ds-checks strong, .sec-paper .ds-checks strong {
  color: #08090B !important;
}
.sec-light .ds-checks .ds-small, .sec-paper .ds-checks .ds-small,
.sec-light .ds-checks span, .sec-paper .ds-checks span {
  color: #52525B !important;
}

/* Cards inside Dark & Light Sections */
.sec-dark .ds-card, .sec-dark-2 .ds-card, .bg-dark .ds-card {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  color: #FFFFFF !important;
}
.sec-dark .ds-card .ds-h4, .sec-dark-2 .ds-card .ds-h4, .bg-dark .ds-card .ds-h4,
.sec-dark .ds-card h3, .sec-dark-2 .ds-card h3, .bg-dark .ds-card h3 {
  color: #FFFFFF !important;
}
.sec-dark .ds-card p, .sec-dark-2 .ds-card p, .bg-dark .ds-card p,
.sec-dark .ds-card .ds-small, .sec-dark-2 .ds-card .ds-small, .bg-dark .ds-card .ds-small {
  color: #E5E7EB !important;
}

.sec-light .ds-card, .sec-paper .ds-card, .bg-white .ds-card, .bg-light .ds-card {
  background: #FFFFFF !important;
  border: 1px solid var(--line-light, #E7E5E0) !important;
  color: #08090B !important;
}
.sec-light .ds-card .ds-h4, .sec-paper .ds-card .ds-h4, .bg-white .ds-card .ds-h4,
.sec-light .ds-card h3, .sec-paper .ds-card h3, .bg-white .ds-card h3 {
  color: #08090B !important;
}
.sec-light .ds-card p, .sec-paper .ds-card p, .bg-white .ds-card p, .bg-light .ds-card p, .bg-paper .ds-card p,
.sec-light .ds-card .ds-small, .sec-paper .ds-card .ds-small, .bg-white .ds-card .ds-small, .bg-light .ds-card .ds-small {
  color: #1E293B !important;
  opacity: 1 !important;
}

/* Details & FAQ items inside Dark vs Light Sections */
.sec-dark details summary span, .sec-dark-2 details summary span, .bg-dark details summary span {
  color: #FFFFFF !important;
}
.sec-dark details p, .sec-dark-2 details p, .bg-dark details p {
  color: #E5E7EB !important;
}
.sec-light details summary span, .sec-paper details summary span {
  color: #08090B !important;
}
.sec-light details p, .sec-paper details p {
  color: #3F3F46 !important;
}

/* ── Nested dark elements inside light sections ────────────────── */
/* e.g. a .sec-dark callout box inside a .sec-paper section */
.sec-light .sec-dark p, .sec-light .sec-dark-2 p,
.sec-paper .sec-dark p, .sec-paper .sec-dark-2 p,
[data-theme="light"] .sec-dark p, [data-theme="light"] .sec-dark-2 p {
  color: #E5E7EB !important;
}
.sec-light .sec-dark h1, .sec-light .sec-dark h2, .sec-light .sec-dark h3,
.sec-light .sec-dark h4, .sec-light .sec-dark h5, .sec-light .sec-dark h6,
.sec-paper .sec-dark h1, .sec-paper .sec-dark h2, .sec-paper .sec-dark h3,
.sec-paper .sec-dark h4, .sec-paper .sec-dark h5, .sec-paper .sec-dark h6 {
  color: #FFFFFF !important;
}
.sec-light .sec-dark .ds-muted, .sec-paper .sec-dark .ds-muted,
.sec-light .sec-dark-2 .ds-muted, .sec-paper .sec-dark-2 .ds-muted {
  color: #B4B9C5 !important;
}
