/* assets/pg-flagships.css · the four course pages with live workshops: AIWS, RGA, GTM Engineering, INFINITE Analytics (reset Round 2, 3 Nov 2026).
   Loads LAST, after assets/pg-academy.css (the one light Academy theme). Only what the shared theme does not carry:
   the assistant window that hosts ws-scenes, the agent library, the connector panel, the diagnostic, the node graph,
   the five analytics views, member quotes, and the apply layout on main.ac. Prefix fl-. Tokens only (Brand OS v1.2.1).
   Magenta: none here, apart from the K17 submit button (the form's one action). */

/* ---------- 0. page ---------- */
main.fl .k-sec--tight{ padding-block:var(--sec-pad-tight); }
main.fl .fl-hero .ac-hero__copy .t-hero{ max-width:15ch; }
main.fl .ac-hero__art{ padding-block:14px 28px; }
@media (max-width:1023px){ main.fl .ac-hero__art{ padding-block:18px 24px; } }
.fl-level--s svg{ width:30px; }
.fl-level--s .ds-level__t b{ font-size:13px; }
.fl-level--s .ds-level__t small{ font-size:11px; }

/* ---------- 1. the assistant window (dark island, AI side) hosting a ws-scenes scene ---------- */
.fl-asst{ position:relative; margin:0; display:grid; gap:0; border-radius:16px; background:var(--black); color:var(--white); overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.18), 0 30px 60px -30px rgba(10,6,40,.55); }
.fl-asst::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--cyan) 16%, transparent) 1px, transparent 1.5px); background-size:24px 24px;
  -webkit-mask-image:linear-gradient(to bottom, #000 0, transparent 85%); mask-image:linear-gradient(to bottom, #000 0, transparent 85%); }
.fl-asst__bar{ position:relative; display:flex; align-items:center; gap:12px; min-height:44px; padding:0 16px; box-shadow:inset 0 -1px 0 var(--elev-4);
  font:500 11px/1.2 var(--font-mono); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--slate-on-dark, #9A9BBD); }
.fl-asst__lv{ margin-inline-start:auto; }
.fl-asst__lv .ds-level{ color:var(--white); }
.fl-asst .ds-level{ --ds-level-at:var(--cyan); }
.fl-dots{ display:inline-flex; gap:6px; }
.fl-dots i{ width:9px; height:9px; border-radius:50%; background:var(--elev-4); }
.fl-scene{ position:relative; min-height:280px; padding:20px 20px 56px; container-type:inline-size; container-name:jxart; }
.fl-asst > .k-status{ position:absolute; inset-inline-start:16px; bottom:14px; z-index:2; }
/* ws-scenes colours: the agent's work is cyan; the person's gate is gold (the page CTA stays the one magenta) */
.fl-asst .ws{ --c-mg:var(--gold); }
.fl-asst .ws-lv path[stroke="#FF00D4"]{ stroke:var(--cyan); }
.fl-asst .ws [style*="FF00D4"]{ color:var(--gold); }
.ac-hero__art .fl-asst{ min-height:360px; }

/* ---------- 2. covers: mono at rest, colour when read (the ModelMark rule, ds-models) ---------- */
.fl-cover{ display:block; width:100%; height:auto; aspect-ratio:1000 / 563; border-radius:10px; object-fit:cover; background:var(--black);
  filter:grayscale(1) contrast(1.05); transition:filter var(--dur-base) var(--ease-standard); }
:is(.fl-agent, .fl-wp__covers):hover .fl-cover, .fl-agent:focus-within .fl-cover{ filter:none; }
@media (hover:none){ .fl-cover{ filter:none; } }

/* ---------- 3. your week (K9 panels) ---------- */
.fl-wp{ display:grid; gap:14px; }
.fl-wp__k{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin:0; }
.fl-wp__p{ max-width:38rem; font:400 var(--role-lead, 18px)/1.55 var(--font-sans); color:var(--ink-muted); }
.fl-wp__covers{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; margin-top:6px; }
.fl-agchips{ display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 0; padding:0; list-style:none; }
.fl-agchip{ display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:4px 12px 4px 8px; border-radius:var(--ds-pill, 999px); background:var(--card-surface); box-shadow:var(--card-lift);
  font:500 14px/1.2 var(--font-sans); --ds-level-at:var(--role-ai-text); }
.fl-agchip .ds-level svg{ width:28px; }
.fl-rules{ display:inline-grid; place-items:center; width:28px; color:var(--ink-muted); }

/* ---------- 4. the agent library (K8 tabs, no autoplay) ---------- */
.fl-lib__k{ margin:0 0 16px; color:var(--ink-muted); }
.fl-lib{ display:grid; gap:20px 16px; grid-template-columns:repeat(2, minmax(0,1fr)); margin:0; padding:0; list-style:none; }
@media (min-width:768px){ .fl-lib{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (min-width:1200px){ .fl-lib{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
.fl-agent{ display:grid; gap:8px; align-content:start; min-width:0; }
.fl-agent__cov{ display:block; border-radius:10px; box-shadow:var(--card-lift); }
.fl-agent__t{ font:600 15px/1.3 var(--font-sans); }
.fl-agent .ds-level{ gap:8px; --ds-level-at:var(--role-ai-text); }
.fl-agent .ds-level svg{ width:28px; }
.fl-agent .ds-level__t b{ font-size:13px; } .fl-agent .ds-level__t small{ font-size:11px; }
.fl-agent__rules{ display:inline-flex; align-items:center; gap:6px; font:400 13px/1.3 var(--font-sans); color:var(--ink-muted); }
.fl-agent__rules .ac-ico{ width:14px; height:14px; }
.fl-libtour .k-tour__stage{ min-height:0; }

/* ---------- 5. the hand-off band (K7 partial) ---------- */
.fl-handoff .k-head--center{ margin-inline:auto; text-align:center; justify-items:center; }
.fl-k7{ margin-top:clamp(28px, 4vw, 48px); }

/* ---------- 6. outline aside ---------- */
.fl-aside{ display:grid; gap:16px; }
.fl-desk{ margin:0; }
.fl-needs{ padding:20px 22px; display:grid; gap:12px; }
.fl-needs ol{ display:grid; gap:0; margin:0; padding:0; list-style:none; }
.fl-needs li{ display:grid; grid-template-columns:minmax(0,1fr); gap:2px; padding:12px 0; box-shadow:inset 0 -1px 0 var(--hairline-soft); }
.fl-needs li:last-child{ box-shadow:none; padding-bottom:0; }
.fl-needs li b{ font:600 15px/1.35 var(--font-sans); }
.fl-needs li > span:not(.t-meta){ font:400 14px/1.5 var(--font-sans); color:var(--ink-muted); }
.fl-needs .t-meta{ color:var(--ink-muted); }
.fl-lesson--out{ background:var(--role-outcome-subtle, color-mix(in srgb, var(--green) 10%, var(--card-surface))); border-radius:8px; }
.fl-lesson--out .ac-lesson__n{ color:var(--role-outcome-text, var(--green-600)); }
.fl-lesson--out .ac-lesson__n svg{ width:16px; height:16px; }
.fl-lesson--out .ac-lesson__t{ font-weight:500; }

/* ---------- 7. connectors (K16 inside the work) ---------- */
.fl-conn{ position:relative; margin:0; display:grid; gap:12px; padding:clamp(18px, 2.4vw, 28px) clamp(18px, 2.4vw, 28px) 56px; border-radius:var(--radius-base); }
.fl-conn > .k-status{ position:absolute; inset-inline-start:20px; bottom:16px; }
.fl-conn__h{ display:flex; justify-content:space-between; gap:12px; }
.fl-conn__h .t-meta{ margin:0; color:var(--ink-muted); }
.fl-provs{ display:grid; gap:8px; margin:0 0 8px; padding:0; list-style:none; }
.fl-prov{ display:grid; grid-template-columns:22px 92px auto minmax(0,1fr); gap:12px; align-items:center; padding:10px 14px; border-radius:10px; background:var(--card-surface); box-shadow:var(--card-lift);
  --ds-level-at:var(--role-ai-text); }
.fl-prov img{ width:22px; height:22px; object-fit:contain; }
.fl-prov b{ font:600 15px/1.2 var(--font-sans); }
.fl-prov .ds-level{ gap:8px; } .fl-prov .ds-level svg{ width:30px; } .fl-prov .ds-level__t small{ display:none; } .fl-prov .ds-level__t b{ font-size:13px; }
.fl-prov small{ font:400 13px/1.4 var(--font-sans); color:var(--ink-muted); }
.fl-conns{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; margin:0; padding:0; list-style:none; }
.fl-cn{ display:grid; grid-template-columns:20px minmax(0,1fr); gap:2px 10px; align-items:center; padding:10px 12px; border-radius:10px; background:var(--card-surface); box-shadow:inset 0 0 0 1px var(--hairline-soft); }
.fl-cn img{ grid-row:span 2; width:20px; height:20px; object-fit:contain; }
.fl-cn b{ font:600 14px/1.2 var(--font-sans); }
.fl-cn small{ font:400 12px/1.3 var(--font-sans); color:var(--ink-muted); }
.fl-cn.is-on{ box-shadow:inset 0 0 0 1.5px var(--role-ai), var(--card-lift); }
@media (max-width:767px){ .fl-prov{ grid-template-columns:22px minmax(0,1fr) auto; } .fl-prov small{ grid-column:2 / -1; } .fl-conns{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
.fl-insight{ margin:8px 0 0; }

/* ---------- 8. module scenes tour ---------- */
.fl-scenep{ display:grid; gap:20px; align-items:start; }
@media (min-width:1024px){ .fl-scenep{ grid-template-columns:minmax(0, 4fr) minmax(0, 8fr); gap:40px; } }
.fl-scenep__cap{ display:grid; gap:10px; padding-top:8px; }
.fl-scenep__cap .t-meta{ margin:0; color:var(--ink-muted); }
.fl-scenep__t{ font:500 var(--role-row, 28px)/1.25 var(--font-sans); letter-spacing:-0.01em; text-wrap:balance; }
.fl-asst--wide .fl-scene{ min-height:400px; padding:24px 24px 60px; }
@media (max-width:767px){ .fl-asst--wide .fl-scene{ min-height:340px; padding:16px 14px 56px; } }
.fl-scenetour .k-tour__tab{ font-size:15px; }

/* ---------- 9. live + room ---------- */
.fl-live{ display:flex; flex-wrap:wrap; gap:16px 40px; padding:16px 0 4px; }
.fl-live .k-stat__v{ font-size:clamp(40px, 5vw, 56px); }

/* ---------- 10. member quotes (K2a) ---------- */
.fl-proof{ display:grid; gap:16px; grid-template-columns:minmax(0,1fr); }
@media (min-width:900px){ .fl-proof{ grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); align-items:stretch; } }
.fl-quote{ position:relative; margin:0; display:grid; gap:20px; align-content:space-between; padding:clamp(22px, 3vw, 36px); border-radius:var(--radius-base); }
.fl-quote__tag{ justify-self:start; font:500 11px/1.3 var(--font-mono); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--ink-muted); }
.fl-quote blockquote{ margin:0; }
.fl-quote blockquote p{ font:400 18px/1.55 var(--font-sans); text-wrap:pretty; }
.fl-quote--lead blockquote p{ font:500 clamp(20px, 2vw, 26px)/1.4 var(--font-sans); letter-spacing:-0.01em; }
.fl-quote figcaption{ display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:14px; align-items:center; }
.fl-quote figcaption img{ width:56px; height:56px; border-radius:50%; object-fit:cover; }
.fl-quote figcaption > span{ display:grid; gap:2px; }
.fl-quote figcaption b{ font:600 15px/1.3 var(--font-sans); }
.fl-quote figcaption > span > span{ font:400 13px/1.4 var(--font-sans); color:var(--ink-muted); }
.fl-li{ display:inline-grid; place-items:center; width:44px; height:44px; border-radius:50%; color:var(--ink); }
.fl-li svg{ width:18px; height:18px; }
.fl-li:hover{ background:color-mix(in srgb, var(--ink) 6%, transparent); }

/* ---------- 11. credential holders ---------- */
.fl-holders{ display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:var(--radius-card); background:var(--ground-alt); max-width:30rem; }
:is(.k-sec--alt) .fl-holders{ background:var(--card-surface); box-shadow:var(--card-lift); }
.fl-holders__faces{ display:flex; flex:none; }
.fl-holders__faces img{ width:40px; height:40px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 2px var(--card-surface); }
.fl-holders__faces img + img{ margin-inline-start:-10px; }
.fl-holders p{ display:grid; gap:2px; margin:0; }
.fl-holders b{ font:600 15px/1.35 var(--font-sans); }
.fl-holders span{ font:500 12px/1.4 var(--font-mono); letter-spacing:.02em; color:var(--ink-muted); }

/* ---------- 12. ways, sponsor, apply ---------- */
.fl-way__custom{ font-family:var(--font-sans); font-weight:600; }
.fl-sponsor{ display:grid; gap:16px 40px; align-items:center; padding:clamp(20px, 3vw, 32px); border-radius:var(--radius-base); }
@media (min-width:900px){ .fl-sponsor{ grid-template-columns:minmax(0,1fr) auto; } }
.fl-sponsor__copy{ display:grid; gap:8px; }
.fl-sponsor__copy p:not(.t-eyebrow){ color:var(--ink-muted); max-width:40rem; }
.fl-sponsor__copy b{ color:var(--ink); }
.fl-sponsor__acts{ gap:10px; margin:0; }
.fl-sponsor__acts .ac-ico{ width:18px; height:18px; }

.fl-apply{ display:grid; gap:clamp(28px, 4vw, 40px) clamp(32px, 5vw, 72px); align-items:start; grid-template-areas:"head" "form" "rest"; }
.fl-apply__head{ grid-area:head; } .fl-apply__rest{ grid-area:rest; } .fl-apply > .rfa__card{ grid-area:form; }
@media (min-width:1024px){ .fl-apply{ grid-template-columns:minmax(0, 5fr) minmax(0, 6fr); grid-template-areas:"head form" "rest form"; grid-template-rows:auto 1fr; }
  .fl-apply > .rfa__card{ position:sticky; top:calc(var(--header-h) + 24px); } }
.fl-steps{ display:grid; gap:0; margin:8px 0 0; padding:0; list-style:none; counter-reset:f; }
.fl-steps li{ counter-increment:f; position:relative; display:grid; grid-template-columns:40px minmax(0,1fr); gap:14px; padding-block:0 22px; }
.fl-steps li::before{ content:counter(f, decimal-leading-zero); display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--card-surface); box-shadow:inset 0 0 0 1px var(--hairline);
  font:500 12px/1 var(--font-mono); font-variant-numeric:tabular-nums; }
.fl-steps li::after{ content:""; position:absolute; inset-inline-start:19.5px; top:44px; bottom:4px; width:1px; background:var(--hairline); }
.fl-steps li:last-child::after{ display:none; }
.fl-steps li:last-child::before{ background:var(--ink); color:var(--ground); box-shadow:none; }
.fl-steps b{ display:block; font:600 16px/1.35 var(--font-sans); padding-top:9px; }
.fl-steps span{ display:block; font:400 15px/1.5 var(--font-sans); color:var(--ink-muted); margin-top:2px; }
.fl-terms{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0 24px; margin:8px 0 0; }
.fl-terms div{ padding:12px 0; box-shadow:inset 0 -1px 0 var(--hairline-soft); }
.fl-terms dt{ font:500 11px/1.3 var(--font-mono); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--ink-muted); }
.fl-terms dd{ margin:4px 0 0; font:500 15px/1.4 var(--font-sans); }
.fl-talk{ font:400 15px/1.5 var(--font-sans); color:var(--ink-muted); }
.fl-talk a{ color:var(--link-ink); text-underline-offset:3px; }
.fl-apply .rfa__card{ margin:0; border-radius:var(--radius-base); background:var(--card-surface); box-shadow:var(--card-lift); padding:clamp(20px, 3vw, 36px); }
.fl-apply .rfa__form{ margin:0; }
main.fl .rfa__glow{ display:none; }
main.fl .rfa .rfa__card .rf.rfa__form{ --rf-ink:var(--ink); --rf-muted:var(--ink-muted); --rf-line:var(--hairline-soft); --rf-line-strong:var(--silver); --rf-field:var(--card-surface); --rf-surface:var(--ground-alt);
  --rf-focus:var(--focus-ring); --rf-err:var(--danger-text, #E12C05); --rf-ok:var(--success-text, #00864F); padding:0;
  --rf-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4A68' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
main.fl .rfa__card{ color:var(--ink); }
main.fl :is(.rfa__k, .rfa__kicker, .rfa__form .rf-opt, .rfa__form .rf-consent, .rfa__form .rf-price){ color:var(--ink-muted); }
main.fl :is(.rfa__title, .rfa__form .rf-field label, .rfa__form .rf-label, .rfa__done h3){ color:var(--ink); }
main.fl .rfa__title{ font:600 var(--role-card, 22px)/1.25 var(--font-sans); letter-spacing:-0.01em; }
main.fl :is(.rfa__fields, .rfa__done){ border-top-color:var(--hairline-soft); }
main.fl .rfa__form :where(input, select, textarea):hover{ border-color:var(--ink-muted); }
main.fl .rfa__done p{ color:var(--ink-muted); }
main.fl .rfa__form .rf-consent a{ color:var(--link-ink); }
main.fl .rf .btn, main.fl .rfa__done-acts .btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:56px; padding:0 24px; border:0; border-radius:var(--radius-button);
  font:600 16px/1.1 var(--font-sans); text-decoration:none; cursor:pointer; transition:background-color var(--dur-instant) var(--ease-standard); }
main.fl .rf .btn--magenta{ background:var(--decision); color:var(--on-decision); border:0; }
main.fl .rf .btn--magenta:hover{ background:var(--magenta-600); }
main.fl .rfa__done-acts .btn{ min-height:48px; background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--hairline); }
main.fl .rfa__done-acts .btn:hover{ background:var(--ground-alt); }
main.fl .rf .rfw-back{ color:var(--ink-muted); }

/* ---------- 13. RGA: the hero island, the model rail, the diagnostic, the trainer ---------- */
.fl-island .ipk{ margin:0; border-radius:var(--radius-base); background:var(--card-surface); box-shadow:var(--card-lift); }
.fl-railmodel img{ width:140px !important; min-width:0 !important; max-width:140px !important; --ip-primary:var(--purple); }
.fl-mp{ display:grid; gap:20px 32px; align-items:start; }
@media (min-width:768px){ .fl-mp{ grid-template-columns:140px minmax(0,1fr); } }
.fl-mp__mark{ width:140px; height:140px; padding:16px; border-radius:var(--radius-base); background:var(--card-surface); box-shadow:var(--card-lift); --ip-primary:var(--purple); --ip-insight:var(--purple); }
.fl-mp__mark svg{ width:100%; height:100%; }
.fl-mp:hover .fl-mp__mark{ --ip-insight:var(--magenta); }
.fl-mp__copy{ display:grid; gap:12px; }
.fl-mp__out{ font:400 15px/1.5 var(--font-sans); color:var(--ink-muted); }
.fl-mp__out b{ display:block; font:500 11px/1.3 var(--font-mono); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--ink); margin-bottom:4px; }
@media (max-width:767px){ .fl-mp__mark{ width:96px; height:96px; padding:12px; } }

.fl-diag{ position:relative; margin:0; display:grid; gap:16px; padding:clamp(18px, 2.4vw, 28px); border-radius:var(--radius-base); }
.fl-diag__bar{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding-bottom:12px; box-shadow:inset 0 -1px 0 var(--hairline-soft); }
.fl-diag__bar .t-meta{ margin:0; color:var(--ink-muted); }
.fl-diag__co{ font:600 15px/1.2 var(--font-sans); }
.fl-diag__bar .k-status{ margin-inline-start:auto; }
.fl-diag__verdict{ display:grid; gap:4px; padding:14px 16px; border-radius:12px; background:var(--ground-alt); }
.fl-diag__verdict .t-meta{ margin:0; color:var(--ink-muted); }
.fl-diag__v{ font:500 17px/1.45 var(--font-sans); }
.fl-diag__rows{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin:0; padding:0; list-style:none; }
.fl-diag__r{ display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:2px 10px; align-items:center; padding:10px 12px; border-radius:10px; background:var(--card-surface); box-shadow:inset 0 0 0 1px var(--hairline-soft);
  --ip-primary:var(--ink); --ip-insight:var(--ink); }
.fl-diag__r svg{ grid-row:span 2; width:28px; height:28px; }
.fl-diag__r b{ font:600 14px/1.2 var(--font-sans); }
.fl-diag__r span{ grid-column:2; font:400 12px/1.35 var(--font-sans); color:var(--ink-muted); }
.fl-diag__r em{ grid-row:1 / span 2; grid-column:3; font:500 10px/1 var(--font-mono); font-style:normal; letter-spacing:var(--track-label); text-transform:uppercase; padding:5px 8px; border-radius:999px; }
.fl-diag__r[data-v="c"] em{ background:var(--role-outcome-subtle, #E6FBF2); color:var(--role-outcome-text, #00864F); }
.fl-diag__r[data-v="p"] em{ background:var(--role-human-subtle, #FEF6E2); color:var(--role-human-text, #8A6400); }
.fl-diag__r[data-v="m"] em{ background:color-mix(in srgb, var(--ink) 7%, transparent); color:var(--ink); }
@media (max-width:599px){ .fl-diag__rows{ grid-template-columns:minmax(0,1fr); } }
.fl-diag__call{ padding-top:4px; }

.fl-trainer{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px 18px; align-items:center; padding:20px 22px; }
.fl-trainer__f{ grid-row:span 1; }
.fl-trainer__n{ font:600 20px/1.2 var(--font-sans); margin-top:4px; }
.fl-trainer__r{ font:400 14px/1.4 var(--font-sans); color:var(--ink-muted); }
.fl-bio{ grid-column:1 / -1; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px; margin:0; padding-top:12px; box-shadow:inset 0 1px 0 var(--hairline-soft); }
.fl-bio dt{ font:500 17px/1.1 var(--font-mono); font-variant-numeric:tabular-nums; }
.fl-bio dd{ margin:4px 0 0; font:400 12px/1.35 var(--font-sans); color:var(--ink-muted); }
.fl-trainer__p{ grid-column:1 / -1; font:400 14px/1.5 var(--font-sans); color:var(--ink-muted); }
@media (max-width:420px){ .fl-bio{ grid-template-columns:repeat(2, minmax(0,1fr)); } }

.fl-compact > .ipc{ margin-block:0; }

/* ---------- 14. cross-sell certificate media ---------- */
.fl-xcard__media{ display:grid; place-items:center; aspect-ratio:16 / 10; padding:20px; border-radius:var(--radius-card) var(--radius-card) 0 0; background:var(--duo-prestige, linear-gradient(135deg, #000, #F5C24B)); overflow:hidden; }
.fl-xcard__cert img{ display:block; width:min(100%, 280px); height:auto; border-radius:2px; rotate:-2deg; box-shadow:0 18px 36px -16px rgba(0,0,0,.6); }
.fl-xcard__loc{ display:grid; place-items:center; width:100%; height:100%; background-color:var(--ground-alt); }
.fl-xcard .fl-xcard__media:has(.fl-xcard__loc){ background:var(--ground-alt); }
.fl-xcard__loc img{ width:min(100%, 240px); height:auto; }

/* ---------- 15. GTM Engineering: node graph, the method, the tiles, the project ---------- */
.fl-flow{ position:relative; margin:0; padding:16px 16px 56px; border-radius:var(--radius-base); }
.fl-flow > .k-status{ position:absolute; inset-inline-start:16px; bottom:16px; }
.fl-flow__bar{ display:flex; justify-content:space-between; align-items:center; padding:2px 4px 14px; }
.fl-flow__bar .t-meta{ margin:0; color:var(--ink-muted); }
.fl-flow__live{ display:inline-flex; align-items:center; gap:8px; font:500 11px/1 var(--font-mono); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--role-ai-text); }
.fl-flow__live i{ width:8px; height:8px; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 3px color-mix(in srgb, var(--cyan) 30%, transparent); }
.fl-flow__wires{ position:absolute; inset:58px 16px 56px; width:calc(100% - 32px); height:calc(100% - 114px); pointer-events:none; overflow:visible; }
.fl-flow__wires path{ fill:none; stroke:var(--silver); stroke-width:2; vector-effect:non-scaling-stroke; stroke-linecap:round; }
.fl-flow__wires path.is-hot{ stroke:var(--cyan-600, #0099A8); stroke-dasharray:6 8; animation:fl-flow 1.6s linear infinite; }
@keyframes fl-flow{ to{ stroke-dashoffset:-28; } }
@media (prefers-reduced-motion:reduce){ .fl-flow__wires path.is-hot{ animation:none; } }
.fl-nodes{ position:relative; display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); grid-template-rows:auto auto; gap:28px 14px; margin:0; padding:0; list-style:none; }
.fl-node{ position:relative; display:grid; gap:6px; align-content:start; padding:12px 14px; border-radius:12px; background:var(--card-surface); box-shadow:0 1px 2px rgba(10,6,40,.08), 0 10px 24px -14px rgba(10,6,40,.28); min-width:0; }
.fl-node--1{ grid-column:1 / span 2; grid-row:1; } .fl-node--2{ grid-column:3 / span 2; grid-row:1; } .fl-node--3{ grid-column:5 / span 2; grid-row:1; box-shadow:inset 0 0 0 1.5px var(--cyan), 0 10px 24px -14px rgba(10,6,40,.28); }
.fl-node--4{ grid-column:4 / span 2; grid-row:2; } .fl-node--5{ grid-column:2 / span 2; grid-row:2; }
.fl-node__k{ display:flex; align-items:center; gap:8px; font:500 10.5px/1.2 var(--font-mono); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--ink-muted); }
.fl-node__n{ display:inline-grid; place-items:center; width:20px; height:20px; border-radius:6px; background:var(--ground-alt); color:var(--ink); font-size:10px; }
.fl-node__t{ font:600 16px/1.2 var(--font-sans); }
.fl-node__p{ font:400 12.5px/1.4 var(--font-sans); color:var(--ink-muted); }
.fl-node__tools{ display:flex; gap:6px; align-items:center; padding-top:4px; }
.fl-node__tools img{ width:18px; height:18px; object-fit:contain; }
.fl-node__score{ display:inline-flex; gap:2px; font:600 11px/1 var(--font-mono); letter-spacing:.18em; color:var(--role-ai-text); }
.fl-node__b{ font:500 10px/1.2 var(--font-mono); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--ink-muted); }
@media (max-width:767px){
  .fl-flow__wires{ display:none; }
  .fl-nodes{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .fl-node{ grid-column:1 !important; grid-row:auto !important; grid-template-columns:minmax(0,1fr) auto; }
  .fl-node > :not(.fl-node__tools){ grid-column:1; } .fl-node__tools{ grid-column:2; grid-row:1 / span 2; padding:0; }
  .fl-node + .fl-node::before{ content:""; position:absolute; inset-inline-start:24px; top:-11px; width:2px; height:10px; background:var(--silver); }
  .fl-node__p, .fl-node__b{ display:none; }
}

.fl-vs{ display:grid; gap:16px; grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin:clamp(24px, 3vw, 40px) 0 0; padding:0; list-style:none; }
.fl-vs__i{ display:grid; gap:10px; align-content:start; padding:22px; }
.fl-vs__old{ display:grid; gap:4px; padding-bottom:12px; box-shadow:inset 0 -1px 0 var(--hairline-soft); font:400 14px/1.4 var(--font-sans); color:var(--ink-muted); text-decoration:line-through; text-decoration-color:color-mix(in srgb, var(--ink) 35%, transparent); }
.fl-vs__old .t-meta{ text-decoration:none; display:block; }
.fl-vs__i > b{ font:600 18px/1.3 var(--font-sans); }
.fl-vs__i > span:last-child{ font:400 15px/1.5 var(--font-sans); color:var(--ink-muted); }

.fl-sits{ margin-top:clamp(24px, 3vw, 40px); grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.fl-sits .ac-tile__fig .ds-loc{ --ds-loc-w:min(100%, 220px); }
.fl-sits .ac-tile__body .t-meta{ color:var(--ink-muted); }
.fl-tile--here{ box-shadow:inset 0 0 0 2px var(--ink), var(--card-lift); }

.fl-bp{ display:grid; gap:12px; padding:clamp(20px, 2.6vw, 28px); border-radius:var(--radius-base); background:var(--card-surface); box-shadow:var(--card-lift); }
.fl-builds .k-rail__panels{ gap:16px; }
.fl-bp--final{ background:var(--duo-dawn, var(--ground-alt)); }

.fl-project{ position:relative; margin:0; display:grid; gap:14px; padding:clamp(18px, 2.4vw, 28px); border-radius:var(--radius-base); }
.fl-project__st{ display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.fl-project__st li{ display:grid; grid-template-columns:110px minmax(0,1fr); gap:6px 14px; align-items:center; padding:14px 16px; border-radius:12px; background:var(--card-surface); box-shadow:inset 0 0 0 1px var(--hairline-soft); }
.fl-project__st li > span:nth-child(2){ font:500 15px/1.4 var(--font-sans); }
.fl-project__bar{ grid-column:1 / -1; height:6px; border-radius:999px; background:color-mix(in srgb, var(--ink) 7%, transparent); overflow:hidden; }
.fl-project__bar i{ display:block; height:100%; width:var(--v); border-radius:inherit; background:var(--zone-acquisition, var(--purple)); }
.fl-project__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; font:400 14px/1.4 var(--font-sans); color:var(--ink-muted); }

.fl-runs{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0 24px; margin:0; padding:clamp(18px, 2.4vw, 28px); border-radius:var(--radius-base); }
.fl-runs div{ padding:14px 0; box-shadow:inset 0 -1px 0 var(--hairline-soft); }
.fl-runs div:nth-last-child(-n+2){ box-shadow:none; }
.fl-runs dt{ font:500 11px/1.3 var(--font-mono); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--ink-muted); }
.fl-runs dd{ margin:6px 0 0; font:500 16px/1.4 var(--font-sans); }
@media (max-width:599px){ .fl-runs{ grid-template-columns:minmax(0,1fr); } .fl-runs div:nth-last-child(2){ box-shadow:inset 0 -1px 0 var(--hairline-soft); } }

.fl-fit{ display:grid; gap:16px; margin:clamp(24px, 3vw, 40px) 0 0; }
@media (min-width:900px){ .fl-fit{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
.fl-fit__col{ display:grid; gap:16px; align-content:start; padding:clamp(20px, 3vw, 32px); border-radius:var(--radius-base); }
.fl-fit__col--alt{ background:var(--ground-alt); }
.fl-paths{ display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.fl-paths a{ display:grid; gap:2px; padding:14px 16px; border-radius:12px; background:var(--card-surface); color:var(--ink); text-decoration:none; box-shadow:var(--card-lift); transition:translate var(--dur-instant) var(--ease-standard); }
.fl-paths a:hover{ translate:0 -2px; }
.fl-paths b{ font:600 15px/1.35 var(--font-sans); }
.fl-paths span{ font:400 14px/1.4 var(--font-sans); color:var(--link-ink); }

/* ---------- 16. INFINITE Analytics: the board in the hero, the five views ---------- */
.fl-board .pui{ margin:0; }
.fl-views{ display:grid; gap:16px; grid-template-columns:minmax(0,1fr); margin:clamp(24px, 3vw, 40px) 0 0; padding:0; list-style:none; }
@media (min-width:768px){ .fl-views{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (min-width:1200px){ .fl-views{ grid-template-columns:repeat(3, minmax(0,1fr)); } .fl-view--cap{ grid-column:span 2; } }
.fl-view{ position:relative; display:grid; gap:12px; align-content:start; padding:20px; border-radius:var(--radius-base); }
.fl-view__h{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.fl-view__h .t-meta{ margin:0; color:var(--ink-muted); }
.fl-view__t{ font:600 18px/1.3 var(--font-sans); margin-top:4px; }
.fl-view__h .ds-loc{ --ds-loc-w:84px; flex:none; }
.fl-view__rows{ display:grid; gap:0; margin:0; padding:0; list-style:none; }
.fl-view__rows li{ display:grid; grid-template-columns:minmax(0,1fr) 60px; gap:2px 12px; align-items:center; padding:10px 0; box-shadow:inset 0 -1px 0 var(--hairline-soft); }
.fl-view__rows li:last-child{ box-shadow:none; }
.fl-view__rows .t-meta{ margin:0; color:var(--ink-muted); grid-column:1; }
.fl-view__rows li > span:nth-child(2){ grid-column:1; font:400 14px/1.4 var(--font-sans); }
.fl-spark{ grid-column:2; grid-row:1 / span 2; width:60px; height:18px; overflow:visible; }
.fl-spark path{ fill:none; stroke:var(--dv-2, #0099A8); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.fl-view--cap{ padding-bottom:56px; }
.fl-view--cap > .k-status{ position:absolute; inset-inline-start:20px; bottom:18px; }
.fl-view--cap .fl-view__rows li{ grid-template-columns:minmax(0,1fr); }

/* ---------- 17. phones ---------- */
@media (max-width:767px){
  .fl-scene{ min-height:240px; padding:14px 12px 52px; }
  .ac-hero__art .fl-asst{ min-height:300px; }
  .fl-wp__covers{ grid-template-columns:minmax(0,1fr); }
  .fl-wp__covers .fl-cover + .fl-cover{ display:none; }
  .fl-quote figcaption{ grid-template-columns:48px minmax(0,1fr) auto; }
  .fl-quote figcaption img{ width:48px; height:48px; }
}

@media (prefers-reduced-motion:reduce){ .fl-cover, .fl-paths a{ transition:none; } }

/* ---------- 18. fixes from the 1440 read ---------- */
main.fl a.ac-way{ display:grid; }
main.fl .rfa__form .rfw-choice input{ color-scheme:light; }
.fl-hero .ac-hero__art{ padding-top:44px; }
.fl-hero .ac-hero__loc{ top:0; }
.fl-wp__covers{ max-width:760px; }

/* node graph v2: a snake of five nodes, short connectors in the gaps (no elbows; the hot link animates) */
.fl-flow__wires{ display:none; }
@media (min-width:768px){
  .fl-nodes{ column-gap:36px; row-gap:32px; }
  .fl-node--4{ grid-column:5 / span 2; } .fl-node--5{ grid-column:3 / span 2; }
  .fl-node::after{ content:""; position:absolute; pointer-events:none; }
  .fl-node--1::after, .fl-node--2::after{ top:50%; inset-inline-start:100%; width:36px; border-top:2px solid var(--silver); }
  .fl-node--2::after{ border-top-style:dashed; border-top-color:var(--cyan-600, #0099A8); }
  .fl-node--3::after{ top:100%; left:50%; height:32px; border-inline-start:2px solid var(--silver); }
  .fl-node--4::after{ top:50%; inset-inline-end:100%; width:36px; border-top:2px solid var(--silver); }
}
.fl-sits .ac-tile__fig{ aspect-ratio:auto; height:clamp(140px, 14vw, 190px); display:grid; place-items:center; padding:20px; }
.fl-sits .ac-tile__fig .ds-loc{ --ds-loc-w:min(100%, 200px); }
@media (min-width:1024px){ main.fl .k-rail__nav{ top:calc(var(--header-h) + 84px); } }

/* wide hero (INFINITE Analytics): copy and the buy card side by side, the product board full width under them */
@media (min-width:1024px){
  .fl-hero--wide .ac-hero__grid{ grid-template-columns:minmax(0,1fr); gap:clamp(40px, 5vw, 64px); }
  .fl-hero--wide .ac-hero__copy{ grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); column-gap:clamp(40px, 5vw, 80px); align-items:end; }
  .fl-hero--wide .ac-hero__copy > :not(.ac-buy){ grid-column:1; }
  .fl-hero--wide .ac-hero__copy > .ac-buy{ grid-column:2; grid-row:1 / span 3; align-self:end; max-width:none; }
  .fl-hero--wide .ac-hero__copy .t-hero{ max-width:18ch; }
  .fl-hero--wide .ac-hero__art{ padding-top:44px; }
  .fl-hero--wide .ac-hero__cert{ width:min(260px, 22%); }
}
.fl-vs__old{ text-decoration:none; }
.fl-vs__old s{ text-decoration:line-through; text-decoration-color:color-mix(in srgb, var(--ink) 35%, transparent); }
@media (max-width:1023px){ main.fl .fl-hero .ac-hero__art{ padding-top:56px; } }
.fl-mp:hover .fl-mp__mark{ --ip-insight:var(--purple); }
/* the locator chip sits above the art, never on the window bar */
.fl-hero .ac-hero__art{ padding-top:64px; }
@media (max-width:1023px){ main.fl .fl-hero .ac-hero__art{ padding-top:64px; } }
@media (min-width:1024px){ .fl-hero--wide .ac-hero__art{ padding-top:64px; } }
