/* ==========================================================================
   Singular Link Intelligence — light theme
   --------------------------------------------------------------------------
   Scoped to `body.insights-light`, which is applied ONLY to the four
   /insights pages. Every selector in this file MUST begin with
   `body.insights-light` — nothing here may leak to the other 13 pages.

   Palette and type extracted from the Issue 01–03 PDFs (Mohammed, Sep 2026).
   Loaded AFTER assets/css/style.css. There is no !important on any colour
   declaration in the template, so plain specificity wins throughout.
   ========================================================================== */

body.insights-light {
  /* --- new system ------------------------------------------------------ */
  --sl-paper: #FFFFFF;
  --sl-surface: #F1F6FB;
  --sl-surface-2: #E5EEF7;
  --sl-rule: #D5E2EE;
  --sl-ink: #032450;
  --sl-ink-2: #12253E;
  --sl-body: #33455C;
  --sl-muted: #71829A;
  --sl-micro: #8CA0B8;
  --sl-brand: #004696;
  --sl-cyan: #1FA8D6;
  --sl-cyan-bright: #2DC9F5;
  --sl-cyan-tint: #E3F5FD;
  --sl-cyan-tint-2: #F2FBFE;
  --sl-on-dark: #E8F1FA;
  --sl-on-dark-2: #D5E5F5;
  --sl-on-dark-3: #C8DCF2;
  --sl-risk: #B4442E;
  --sl-chrome: #032450;            /* header pill + footer stay dark navy */

  /* --- remap the template's tokens -------------------------------------
     --primary is the template's FOREGROUND token (h1–h6, hovers).
     --secondary is body copy (#a3a3a3 = 2.1:1 on white, fails WCAG).
     Do NOT remap --white: it means both "light text on dark" AND
     "literally white" (.t-btn-primary background), so remapping it turns
     the Contact button navy-on-navy. Those cases are overridden explicitly.
     --------------------------------------------------------------------- */
  --primary: var(--sl-ink);
  --secondary: var(--sl-body);
  --gold: var(--sl-brand);         /* retired: #E4B23C is 1.9:1 on white */
  --teal: var(--sl-cyan);          /* retired: #48C9B0 is 1.9:1 on white */
  --line: var(--sl-rule);
  --card: var(--sl-surface);

  background-color: var(--sl-paper);
  color: var(--sl-body);
  font-family: "Inter", "Instrument Sans", sans-serif;
}

/* Beats .body-wrapper / .body-ai-agency (both 0,1,0) */
body.insights-light .body-wrapper,
body.insights-light.body-wrapper,
body.insights-light.body-ai-agency { background-color: var(--sl-paper); }

/* THE #1 GOTCHA — style.css:6960 `.about-area.page-about{background:var(--black)}`
   is 0,2,0 and holds the entire article body. Needs 0,3,1 to beat it. */
body.insights-light .about-area.page-about { background-color: var(--sl-paper); }

body.insights-light h1, body.insights-light h2, body.insights-light h3,
body.insights-light h4, body.insights-light h5, body.insights-light h6,
body.insights-light .section-title {
  color: var(--sl-ink);
  font-family: "Archivo", "Instrument Sans", sans-serif;
}
body.insights-light p { color: var(--sl-body); }
body.insights-light ::selection { background: var(--sl-cyan-tint); color: var(--sl-ink); }

/* Links only inside the LIGHT content areas. A blanket `body.insights-light a`
   ties on specificity with `.main-menu li a` (both 0,1,2) and wins on source
   order, which turns the navy header pill's nav links navy-on-navy. */
body.insights-light .about-area a,
body.insights-light .article-body a { color: var(--sl-brand); }
body.insights-light .about-area a:hover,
body.insights-light .article-body a:hover { color: var(--sl-cyan); }

/* The navy chrome keeps white links. */
body.insights-light .header-area-4 .main-menu li a,
body.insights-light .footer-area-4 a,
body.insights-light .footer-area-4 .copyright-nav-list li,
body.insights-light .side-info a { color: #FFFFFF; }
body.insights-light .header-area-4 .main-menu li a:hover,
body.insights-light .footer-area-4 a:hover,
body.insights-light .side-info a:hover { color: var(--sl-cyan-bright); }

/* ==========================================================================
   1. Chrome — header pill and footer stay dark navy
   Dark chrome around a light body: uses the navy already in the PDF palette,
   and avoids the logo swap / hamburger invert / nav recolour entirely.
   ========================================================================== */

body.insights-light .header-area-4-inner { background-color: var(--sl-chrome); }
body.insights-light .side-info { background-color: var(--sl-chrome); }

/* .t-btn-primary.bg-active (0,2,0) would otherwise lose to our 0,2,1 rule
   below and go navy-on-navy inside the pill. Cyan keeps it legible. */
body.insights-light .header-area-4 .t-btn-primary.bg-active {
  background-color: var(--sl-cyan);
  border-color: var(--sl-cyan);
  color: #fff;
}
body.insights-light .header-area-4 .t-btn-primary.bg-active:hover {
  background-color: var(--sl-cyan-bright);
  border-color: var(--sl-cyan-bright);
  color: var(--sl-ink);
}

/* Buttons on the light body (Download PDF / Mobile PDF / article nav).
   style.css:1277 + 1338 give both a white background + white border. */
body.insights-light .article-body .t-btn-primary,
body.insights-light .intel-dl .t-btn-primary {
  background-color: var(--sl-brand);
  border-color: var(--sl-brand);
  color: #fff;
}
body.insights-light .article-body .t-btn-primary:hover,
body.insights-light .intel-dl .t-btn-primary:hover {
  background-color: var(--sl-ink);
  border-color: var(--sl-ink);
  color: #fff;
}
body.insights-light .t-btn-circle {
  background-color: var(--sl-brand);
  border-color: var(--sl-brand);
  color: #fff;
}

/* Hero — the WebGL canvas is deleted from these pages, so .page-title-area
   (which has no background of its own) inherits the white body. */
body.insights-light .page-title-area { border-bottom-color: var(--sl-brand); }
body.insights-light .page-title-area .section-title { color: var(--sl-ink); }
body.insights-light .page-title-area .section-subtitle { color: var(--sl-brand); }
body.insights-light .body-ai-agency .section-subtitle,
body.insights-light .section-subtitle { border-color: var(--sl-rule); }
body.insights-light .page-title-area .breadcrumb li a { color: var(--sl-muted); }
body.insights-light .page-title-area .breadcrumb li a:hover { color: var(--sl-brand); }
body.insights-light .page-title-area .breadcrumb li + li:before { color: var(--sl-micro); }
body.insights-light .area-lines .line-1, body.insights-light .area-lines .line-2,
body.insights-light .area-lines .line-3, body.insights-light .area-lines .line-4,
body.insights-light .area-lines .line-5, body.insights-light .area-lines .line-6,
body.insights-light .area-lines .line-7, body.insights-light .area-lines .line-8 {
  background-color: rgba(3, 36, 80, .07);
}

/* Footer — dark navy, so its white text stays correct. Only the photographic
   .area-bg scrim needs removing. */
body.insights-light .footer-area-4 { background-color: var(--sl-chrome); }
body.insights-light .footer-area-4 .area-bg { display: none; }
body.insights-light .footer-area-4 .footer-widget-wrapper-box,
body.insights-light .footer-area-4 .copyright-area { border-top-color: rgba(255, 255, 255, .16); }

/* Scroll-to-top ring: style.css:1152 uses mix-blend-mode:exclusion, which
   inverts over white — the ring renders black and the arrow white. */
body.insights-light .progress-wrap { mix-blend-mode: normal; }
body.insights-light .progress-wrap::after { color: var(--sl-brand); }
body.insights-light .progress-wrap svg.progress-circle path {
  fill: var(--sl-paper);
  stroke: var(--sl-cyan);
}

/* Preloader is already white; its spinner is white-on-white. */
body.insights-light .container-preloader .animation-preloader .spinner {
  border-color: rgba(3, 36, 80, .15);
  border-top-color: var(--sl-brand);
}
body.insights-light .side-info-close { background-color: var(--sl-chrome); }

/* ==========================================================================
   2. Article system
   Migrated from the inline <style> blocks of insights-ai-economy.html and
   insights-frontier-ai-models.html (they shared ~35 identical rules), and
   converted to the light palette. Every `opacity:` on text has been replaced
   with an explicit colour — opacity that reads as "muted white on dark"
   reads as washed-out and illegible on white.
   ========================================================================== */

body.insights-light .article-body {
  max-width: 960px;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.insights-light .article-body .text-wrapper,
body.insights-light .article-body .text,
body.insights-light .article-body .section-title-wrapper { max-width: none !important; }
body.insights-light .article-body .text {
  margin-bottom: 15px;
  font-size: 16px;
  line-height: 1.72;
  color: var(--sl-body);
}
body.insights-light .article-body .text b,
body.insights-light .article-body .text strong { color: var(--sl-ink-2); font-weight: 600; }

body.insights-light .intel-logo { height: 42px; width: auto; display: block; margin: 0 0 24px; }

body.insights-light .intel-eyebrow {
  display: inline-block;
  font-family: "Archivo", sans-serif;
  font-size: 11px; font-weight: 800;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--sl-brand);
  background: var(--sl-cyan-tint-2);
  border: 1px solid var(--sl-rule);
  border-radius: 100px;
  padding: 5px 14px; margin-bottom: 18px;
}
body.insights-light .intel-lead {
  font-size: 19px; line-height: 1.6;
  color: var(--sl-ink-2);
  margin: 0 0 26px;
}
body.insights-light .intel-h3 {
  font-family: "Archivo", sans-serif;
  font-size: 14px; font-weight: 800;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--sl-brand);
  margin: 44px 0 18px; padding-bottom: 10px;
  border-bottom: 2px solid var(--sl-brand);
}

/* stat cards ------------------------------------------------------------- */
body.insights-light .stat-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 6px 0 8px;
}
body.insights-light .stat-card {
  border: 1px solid transparent; border-radius: 14px;
  background: linear-gradient(160deg, #032450 0%, #0A3A78 100%);
  padding: 22px 20px;
}
body.insights-light .stat-num {
  font-family: "Archivo", sans-serif;
  font-size: 34px; font-weight: 800; line-height: 1;
  color: var(--sl-cyan-bright); margin-bottom: 8px;
}
body.insights-light .stat-num.teal { color: var(--sl-cyan-bright); }
body.insights-light .stat-label { font-size: 13px; line-height: 1.45; color: var(--sl-on-dark-3); }

/* thesis blocks ---------------------------------------------------------- */
body.insights-light .pt-list { display: flex; flex-direction: column; gap: 16px; margin: 4px 0; }
body.insights-light .article-body.grid-pt .pt-list,
body.insights-light .pt-list.two-up { display: grid; grid-template-columns: 1fr 1fr; }
body.insights-light .pt-item {
  border: 1px solid var(--sl-rule); border-radius: 12px;
  background: var(--sl-surface); padding: 20px 24px;
}
body.insights-light .pt-item.full { grid-column: 1 / -1; }
body.insights-light .pt-item .n {
  font-family: "Archivo", sans-serif;
  font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--sl-cyan); margin-bottom: 6px; display: block;
}
body.insights-light .pt-item h4 { font-size: 18px; margin: 0 0 8px; color: var(--sl-ink); }
body.insights-light .pt-item p { font-size: 15px; line-height: 1.65; color: var(--sl-body); margin: 0; }

/* value chain ------------------------------------------------------------ */
body.insights-light .vc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 6px 0; }
body.insights-light .vc-cell {
  border: 1px solid var(--sl-rule); border-radius: 12px;
  background: var(--sl-surface); padding: 16px 18px;
}
body.insights-light .vc-cell.has-sl {
  border-color: var(--sl-cyan);
  background: var(--sl-cyan-tint);
}
body.insights-light .vc-cell .layer {
  font-family: "Archivo", sans-serif;
  font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--sl-muted); margin-bottom: 6px;
}
body.insights-light .vc-cell .name { font-size: 17px; font-weight: 600; color: var(--sl-ink); margin-bottom: 8px; }
body.insights-light .vc-cell .ex { font-size: 13px; color: var(--sl-muted); margin-bottom: 10px; }
body.insights-light .vc-cell .sl { font-size: 13.5px; line-height: 1.5; color: var(--sl-body); }
body.insights-light .vc-cell .sl b { color: var(--sl-brand); font-weight: 600; }
body.insights-light .vc-cell .sl.open { color: var(--sl-micro); }

/* callout — the navy gradient panel with a cyan left bar ------------------ */
body.insights-light .callout,
body.insights-light .reka-box {
  border: none; border-left: 4px solid var(--sl-cyan-bright); border-radius: 12px;
  background: linear-gradient(120deg, #032450 0%, #0A3A78 100%);
  padding: 22px 26px; margin: 20px 0;
}
body.insights-light .callout p,
body.insights-light .reka-box p { font-size: 16.5px; line-height: 1.6; margin: 0; color: var(--sl-on-dark); }
body.insights-light .callout p b,
body.insights-light .reka-box b { color: var(--sl-cyan-bright); font-weight: 600; }

/* quadrant map ----------------------------------------------------------- */
body.insights-light .quad {
  display: grid; grid-template-columns: 150px 1fr 1fr; grid-template-rows: 38px 1fr 1fr;
  gap: 20px; margin: 26px 0 32px;
}
body.insights-light .q-col-h,
body.insights-light .q-row-h {
  font-family: "Archivo", sans-serif;
  font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--sl-muted);
}
body.insights-light .q-col-h { align-self: end; text-align: center; padding-bottom: 8px; }
body.insights-light .q-row-h {
  display: flex; align-items: center; justify-content: center;
  writing-mode: vertical-rl; transform: rotate(180deg);
}
body.insights-light .q-cell {
  border: 1px solid var(--sl-rule); border-radius: 18px;
  background: var(--sl-surface); padding: 30px 32px;
  display: flex; flex-direction: column; justify-content: center; min-height: 190px;
}
body.insights-light .q-cell.hl {
  border-color: var(--sl-cyan); border-width: 2px;
  background: var(--sl-cyan-tint);
}
body.insights-light .q-cell .name {
  font-family: "Archivo", sans-serif;
  font-size: 23px; font-weight: 800; color: var(--sl-ink); margin-bottom: 14px;
}
body.insights-light .q-cell.hl .name { color: var(--sl-brand); }
body.insights-light .q-cell .co { font-size: 16.5px; line-height: 1.55; color: var(--sl-body); }
body.insights-light .q-cell .sub { font-size: 14px; color: var(--sl-muted); margin-top: 14px; line-height: 1.45; }

/* sector / fit / risk / move --------------------------------------------- */
body.insights-light .sec-grid,
body.insights-light .fit-grid,
body.insights-light .risk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 16px 0; }
body.insights-light .sec-grid.three { grid-template-columns: repeat(3, 1fr); }
body.insights-light .stat-grid.three { grid-template-columns: repeat(3, 1fr); }
body.insights-light .sec,
body.insights-light .fit,
body.insights-light .risk-item {
  border: 1px solid var(--sl-rule); border-radius: 12px;
  background: var(--sl-surface); padding: 18px 20px;
}
body.insights-light .sec.hl { border-color: var(--sl-cyan); background: var(--sl-cyan-tint); }
body.insights-light .sec .name,
body.insights-light .fit .name { font-size: 16px; font-weight: 700; color: var(--sl-ink); margin-bottom: 8px; }
body.insights-light .fit .name { color: var(--sl-brand); }
body.insights-light .risk-item .name { font-size: 15px; font-weight: 700; margin-bottom: 8px; color: var(--sl-risk); }
body.insights-light .sec p,
body.insights-light .fit p,
body.insights-light .risk-item p { font-size: 14.5px; line-height: 1.6; color: var(--sl-body); margin: 0; }

body.insights-light .move {
  border: 1px solid var(--sl-rule); border-radius: 12px;
  background: var(--sl-surface); padding: 18px 22px; margin-bottom: 14px;
  display: flex; gap: 16px;
}
body.insights-light .move .num {
  font-family: "Archivo", sans-serif;
  font-size: 24px; font-weight: 800; color: var(--sl-cyan); line-height: 1;
}
body.insights-light .move .txt h4 { font-size: 17px; margin: 0 0 8px; color: var(--sl-ink); }
body.insights-light .move .txt p { font-size: 14.5px; line-height: 1.6; color: var(--sl-body); margin: 0; }

/* charts ----------------------------------------------------------------- */
body.insights-light .chart-wrap { margin: 18px 0 22px; }
body.insights-light .chart-cap {
  font-family: "Archivo", sans-serif;
  font-size: 13.5px; font-weight: 700; letter-spacing: .06em;
  color: var(--sl-brand); margin-bottom: 10px;
}
body.insights-light svg text { font-family: inherit; }

/* two-column win / risk lists -------------------------------------------- */
body.insights-light .cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 6px 0; }
body.insights-light .cols ul { list-style: none; padding: 0; margin: 0; }
body.insights-light .cols li {
  position: relative; padding-left: 26px; margin-bottom: 13px;
  font-size: 15px; line-height: 1.55; color: var(--sl-body);
}
body.insights-light .cols li:before { position: absolute; left: 0; top: 0; font-weight: 700; }
body.insights-light .cols .win li:before { content: "\2713"; color: var(--sl-cyan); }
body.insights-light .cols .risk li:before { content: "\2715"; color: var(--sl-risk); }
body.insights-light .col-h {
  font-family: "Archivo", sans-serif;
  font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  margin: 0 0 16px; color: var(--sl-muted);
}

/* league table — navy header band, zebra rows, cyan portfolio row --------- */
body.insights-light .lt-wrap { overflow-x: auto; margin: 22px 0 10px; -webkit-overflow-scrolling: touch; }
body.insights-light .lt {
  width: 100%; min-width: 760px;
  border-collapse: collapse; font-size: 14px; line-height: 1.5;
}
body.insights-light .lt thead th {
  background: var(--sl-ink); color: #fff;
  font-family: "Archivo", sans-serif;
  font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  text-align: left; padding: 14px 14px; vertical-align: bottom;
}
body.insights-light .lt tbody td {
  padding: 14px; border-bottom: 1px solid var(--sl-rule);
  color: var(--sl-body); vertical-align: top;
}
body.insights-light .lt tbody tr:nth-child(even) td { background: var(--sl-surface); }
body.insights-light .lt .co { font-weight: 700; color: var(--sl-brand); display: block; }
body.insights-light .lt .tick { font-size: 12px; color: var(--sl-muted); display: block; margin-top: 2px; }
body.insights-light .lt b { color: var(--sl-brand); font-weight: 700; }
body.insights-light .lt tr.sl td {
  background: var(--sl-cyan-tint);
  border-bottom: 1px solid var(--sl-cyan);
}
body.insights-light .lt tr.sl .co,
body.insights-light .lt tr.sl b { color: var(--sl-cyan); }
body.insights-light .sl-badge {
  display: inline-block; margin-top: 6px;
  font-family: "Archivo", sans-serif;
  font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  color: var(--sl-ink); background: var(--sl-cyan-bright);
  border-radius: 4px; padding: 3px 7px;
}

/* simple label/value bar rows (capex guidance, cost split, rental prices) - */
body.insights-light .bar-block { margin: 18px 0 8px; }
body.insights-light .bar-row {
  display: grid; grid-template-columns: 190px 1fr 92px; gap: 14px;
  align-items: center; margin-bottom: 9px;
}
body.insights-light .bar-row .lbl { font-size: 13.5px; color: var(--sl-ink-2); font-weight: 600; text-align: right; }
/* .track/.fill are <span>s — inline boxes ignore width/height, so block them */
body.insights-light .bar-row .track {
  display: block; background: var(--sl-surface-2); border-radius: 4px; height: 22px; width: 100%;
}
body.insights-light .bar-row .fill { display: block; background: #CBDCED; border-radius: 4px; height: 22px; }
body.insights-light .bar-row.hl .fill { background: var(--sl-brand); }
body.insights-light .bar-row .val {
  font-size: 13.5px; font-weight: 700; color: var(--sl-brand); font-family: "Inter", sans-serif;
}

/* download row, sources, disclaimer -------------------------------------- */
body.insights-light .intel-dl {
  display: flex; flex-wrap: wrap; gap: 14px; align-items: center;
  margin: 8px 0 4px; padding: 22px 24px;
  border: 1px solid var(--sl-rule); border-radius: 12px; background: var(--sl-surface);
}
body.insights-light .intel-dl .dl-txt { flex: 1 1 260px; font-size: 15px; line-height: 1.55; color: var(--sl-body); }
body.insights-light .intel-source { font-size: 13px; line-height: 1.6; color: var(--sl-muted); margin-top: 30px; }
body.insights-light .intel-source a { color: var(--sl-brand); }
body.insights-light .intel-disclaimer {
  font-size: 11.5px; line-height: 1.65; color: var(--sl-micro);
  margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--sl-rule);
}

/* ==========================================================================
   3. Index cards (insights.html)
   ========================================================================== */

body.insights-light .insights-intro { font-size: 18px; line-height: 1.65; color: var(--sl-body); }
body.insights-light .news-list { display: flex; flex-direction: column; gap: 18px; }
body.insights-light .news-card {
  display: block; padding: 26px 28px;
  border: 1px solid var(--sl-rule); border-radius: 14px;
  background: var(--sl-surface); transition: border-color .2s, background .2s;
}
body.insights-light .news-card:hover { border-color: var(--sl-cyan); background: var(--sl-cyan-tint-2); }
body.insights-light .news-card .intel-eyebrow { margin-bottom: 12px; }
body.insights-light .news-date {
  display: block; font-size: 13px; letter-spacing: .06em;
  color: var(--sl-muted); margin-bottom: 10px;
}
body.insights-light .news-title { font-size: 22px; line-height: 1.35; color: var(--sl-ink); margin: 0 0 10px; }
body.insights-light .news-excerpt { font-size: 15px; line-height: 1.65; color: var(--sl-body); margin: 0 0 14px; }
body.insights-light .news-more { font-size: 14px; font-weight: 600; color: var(--sl-brand); }
body.insights-light .news-card:hover .news-more { color: var(--sl-cyan); }

/* ==========================================================================
   4. Responsive
   ========================================================================== */

@media only screen and (max-width: 900px) {
  body.insights-light .stat-grid { grid-template-columns: repeat(2, 1fr); }
  body.insights-light .pt-list.two-up { grid-template-columns: 1fr; }
  body.insights-light .vc-grid { grid-template-columns: 1fr; }
  body.insights-light .quad { grid-template-columns: 1fr; grid-template-rows: auto; }
  body.insights-light .q-row-h { writing-mode: horizontal-tb; transform: none; padding: 4px 0; }
  body.insights-light .q-col-h { display: none; }
  body.insights-light .sec-grid,
  body.insights-light .fit-grid,
  body.insights-light .risk-grid { grid-template-columns: 1fr; }
  body.insights-light .sec-grid.three { grid-template-columns: 1fr; }
  body.insights-light .stat-grid.three { grid-template-columns: repeat(2, 1fr); }
  body.insights-light .cols { grid-template-columns: 1fr; }
}

@media only screen and (max-width: 700px) {
  body.insights-light .bar-row { grid-template-columns: 118px 1fr 74px; gap: 10px; }
  body.insights-light .bar-row .lbl { font-size: 12.5px; }
}
