/* Centurion Financial — motion + data layer for the static pages (v5.24.0, 2026-11-09)
   Additive only: loaded by the ten static pages refreshed in v5.24.0. Nothing here
   overrides the base design system except where a page opts in with a cfm- class.
   Every animation is switched off for visitors who ask for reduced motion. */

:root {
  --cfm-teal: #3FC1B0;
  --cfm-teal-soft: #7FE3D4;
  --cfm-gold-hi: #F1D893;
  --cfm-gold-mid: #E8C677;
  --cfm-alt: #0B0E11;
  --cfm-warm: #E8964A;
}

/* ---------- G2 · scroll-progress hairline ---------- */
.cfm-prog { position: fixed; left: 0; top: 0; height: 2px; width: 100%; z-index: 120; pointer-events: none;
  transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, var(--gold), var(--cfm-gold-hi) 60%, var(--cfm-teal));
  box-shadow: 0 0 10px rgba(201,169,97,0.6); }

/* ---------- G3 · section tones ---------- */
.cfm-tone { background:
    radial-gradient(900px 380px at 88% 0%, rgba(63,193,176,0.07), transparent 70%),
    radial-gradient(760px 420px at 0% 100%, rgba(201,169,97,0.07), transparent 70%),
    linear-gradient(180deg, var(--cfm-alt), #08080A); }
.cfm-tone-warm { background:
    radial-gradient(900px 380px at 88% 0%, rgba(232,150,74,0.08), transparent 70%),
    radial-gradient(760px 420px at 0% 100%, rgba(201,169,97,0.06), transparent 70%),
    linear-gradient(180deg, #0C0C0E, #08080A); }

/* ---------- G1 · stat tiles ---------- */
.cfm-stat { position: relative; }
.cfm-stat::after { content: ''; position: absolute; left: 0; bottom: -10px; height: 2px; width: 0;
  background: linear-gradient(90deg, var(--gold), transparent); transition: width 1.2s cubic-bezier(.16,.7,.2,1) .2s; }
.cfm-stat.cfm-in::after { width: 46%; }

/* ---------- G4 · icons + spotlight cards ---------- */
.cfm-ico { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  flex: none; margin-bottom: 4px; color: var(--cfm-gold-mid);
  border: 1px solid rgba(201,169,97,0.3); background: linear-gradient(140deg, rgba(201,169,97,0.18), rgba(201,169,97,0.03)); }
.cfm-ico svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cfm-spot { transition: transform 300ms cubic-bezier(.16,.7,.2,1), border-color 260ms, box-shadow 300ms; }
.cfm-spot::before { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0;
  transition: opacity 260ms;
  background: radial-gradient(260px 170px at var(--mx, 50%) var(--my, 0%), rgba(201,169,97,0.16), transparent 70%); }
.cfm-spot:hover { transform: translateY(-5px); border-color: rgba(201,169,97,0.5);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,0.8), 0 0 40px -14px rgba(201,169,97,0.45); }
.cfm-spot:hover::before { opacity: 1; }
.cfm-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 10px; }
.cfm-meta span { font-family: 'JetBrains Mono', monospace; font-size: 9.5px; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 4px 8px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.04); color: rgba(255,255,255,0.68); }
.cfm-meta span.cfm-t { color: #BFF3EA; border-color: rgba(63,193,176,0.3); background: rgba(63,193,176,0.08); }

/* ---------- G6 · process lines ---------- */
.cfm-steps li { border-top-color: rgba(255,255,255,0.12) !important; transition: border-color 500ms ease; position: relative; }
.cfm-steps li.cfm-on { border-top-color: var(--gold) !important; }
.cfm-steps li.cfm-now::before { content: ''; position: absolute; top: -7px; left: 0; width: 12px; height: 12px; border-radius: 50%;
  background: var(--cfm-gold-hi); box-shadow: 0 0 0 5px rgba(241,216,147,0.22), 0 0 18px var(--cfm-gold-hi); }
.mk-steps.cfm-steps li { border-top-width: 2px; border-top-style: solid; }

/* ---------- live desk strip (Capital Markets) + panel (Track Record) ---------- */
.cfm-desk { margin-top: 26px; max-width: 1000px; display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center;
  padding: 16px 22px; border-radius: 16px; border: 1px solid rgba(63,193,176,0.28);
  background: linear-gradient(90deg, rgba(63,193,176,0.10), rgba(201,169,97,0.08) 60%, rgba(8,8,10,0.4));
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.cfm-desk[hidden], .cfm-live[hidden] { display: none !important; }
.cfm-livetag { display: flex; align-items: center; gap: 8px; font: 500 10px 'JetBrains Mono', monospace; letter-spacing: 0.2em; text-transform: uppercase; color: #5FD6C4; white-space: nowrap; }
.cfm-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cfm-teal); box-shadow: 0 0 0 4px rgba(63,193,176,0.25), 0 0 14px var(--cfm-teal);
  animation: cfmPulse 2.4s ease-in-out infinite; }
@keyframes cfmPulse { 0%,100% { box-shadow: 0 0 0 3px rgba(63,193,176,0.25), 0 0 10px var(--cfm-teal); } 50% { box-shadow: 0 0 0 7px rgba(63,193,176,0.06), 0 0 18px var(--cfm-teal); } }
.cfm-kpis { display: flex; flex-wrap: wrap; gap: 14px 30px; }
.cfm-kpis b { display: block; font: 400 20px 'JetBrains Mono', monospace; color: var(--ink); font-variant-numeric: tabular-nums; }
.cfm-kpis span { font: 500 9.5px 'JetBrains Mono', monospace; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-mute); }
.cfm-minibars { display: flex; align-items: flex-end; gap: 5px; height: 40px; }
.cfm-minibars i { display: block; width: 12px; height: 0; border-radius: 3px 3px 0 0; background: linear-gradient(180deg, var(--cfm-gold-hi), var(--gold)); transition: height 900ms cubic-bezier(.16,.7,.2,1); }
.cfm-live { margin-top: 36px; display: grid; grid-template-columns: 1fr 1.1fr; gap: 26px; padding: 24px 26px; border-radius: 20px; max-width: 1100px;
  border: 1px solid rgba(63,193,176,0.28); background: linear-gradient(120deg, rgba(63,193,176,0.08), rgba(201,169,97,0.06) 70%, rgba(8,8,10,0.5)); position: relative; z-index: 2; }
.cfm-live .cfm-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cfm-live .cfm-kpis b { font-size: 30px; font-weight: 300; }
.cfm-hb { display: grid; grid-template-columns: 110px 1fr 28px; gap: 10px; align-items: center; margin: 9px 0; font: 500 11px 'JetBrains Mono', monospace; color: rgba(255,255,255,0.72); }
.cfm-hb div { height: 12px; border-radius: 9px; background: rgba(255,255,255,0.06); overflow: hidden; }
.cfm-hb div i { display: block; height: 100%; width: 0; border-radius: 9px; background: linear-gradient(90deg, var(--gold), var(--cfm-gold-hi)); transition: width 1.1s cubic-bezier(.16,.7,.2,1); }
.cfm-hb em { font-style: normal; color: var(--cfm-gold-hi); text-align: right; }
.cfm-foot { margin-top: 12px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font: 500 10px 'JetBrains Mono', monospace; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mute); }
.cfm-foot a { color: var(--cfm-gold-mid); text-decoration: none; }
.cfm-foot a:hover { color: var(--cfm-gold-hi); }
.cfm-sublabel { font: 500 10px 'JetBrains Mono', monospace; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: 14px; }

/* ---------- drawn lines ---------- */
.cfm-draw { stroke-dasharray: var(--len, 1200); stroke-dashoffset: var(--len, 1200); transition: stroke-dashoffset 2.2s cubic-bezier(.16,.7,.2,1); }
.cfm-in .cfm-draw, .cfm-draw.cfm-in { stroke-dashoffset: 0; }

/* ---------- capital stack (Capital Markets) ---------- */
.cfm-structwrap { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }
.cfm-stack { border-radius: 18px; padding: 18px; border: 1px solid rgba(255,255,255,0.08); background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)); }
.cfm-layer { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 16px; border-radius: 10px; margin-bottom: 6px;
  font: 500 11px 'JetBrains Mono', monospace; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.78);
  transition: background 300ms, border-color 300ms, box-shadow 300ms, color 300ms, transform 300ms; }
.cfm-layer em { font-style: normal; color: rgba(255,255,255,0.48); text-align: right; }
.cfm-layer[data-layer="common"] { height: 64px; background: rgba(120,140,190,0.12); border: 1px solid rgba(120,140,190,0.3); }
.cfm-layer[data-layer="pref"]   { height: 44px; background: rgba(63,193,176,0.10); border: 1px solid rgba(63,193,176,0.28); }
.cfm-layer[data-layer="mezz"]   { height: 54px; background: rgba(201,169,97,0.12); border: 1px solid rgba(201,169,97,0.28); }
.cfm-layer[data-layer="senior"] { height: 110px; background: rgba(201,169,97,0.20); border: 1px solid rgba(201,169,97,0.45); margin-bottom: 0; }
.cfm-layer.cfm-lit { color: #fff; transform: translateX(-4px);
  background: linear-gradient(90deg, rgba(201,169,97,0.48), rgba(201,169,97,0.18)); border-color: var(--cfm-gold-mid); box-shadow: 0 0 30px -6px rgba(232,198,119,0.6); }
.cfm-layer.cfm-lit em { color: rgba(255,255,255,0.85); }
.cfm-chips li { cursor: default; transition: background 220ms, color 220ms, border-color 220ms; }
.cfm-chips li:hover, .cfm-chips li:focus, .cfm-chips li.cfm-on { background: var(--cfm-gold-mid); color: #08080A; border-color: var(--cfm-gold-mid); outline: none; }
.cfm-stack-note { margin-top: 10px; font: 500 9.5px 'JetBrains Mono', monospace; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mute); }

/* ---------- Underwriting credit-file dashboard ---------- */
.cfm-hero-grid { position: relative; overflow: hidden;
  background-image: radial-gradient(900px 600px at 78% 40%, rgba(63,193,176,0.10), transparent 60%), radial-gradient(800px 600px at 18% 85%, rgba(201,169,97,0.11), transparent 60%), linear-gradient(180deg, #0A0D10, #08080A) !important; }
.cfm-hero-grid::before { content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(201,169,97,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(201,169,97,0.06) 1px, transparent 1px);
  background-size: 64px 64px; -webkit-mask-image: radial-gradient(ellipse at 70% 50%, #000 20%, transparent 75%); mask-image: radial-gradient(ellipse at 70% 50%, #000 20%, transparent 75%); }
.cfm-hero-split { display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center; position: relative; z-index: 1; }
.cfm-dash { border-radius: 22px; padding: 22px; background: rgba(10,12,14,0.78); border: 1px solid rgba(255,255,255,0.09);
  box-shadow: 0 60px 120px -30px rgba(0,0,0,0.8), 0 0 80px -20px rgba(63,193,176,0.25); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.cfm-dh { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.cfm-dh b { font-weight: 500; font-size: 15px; color: var(--ink); }
.cfm-tag { font: 500 9.5px 'JetBrains Mono', monospace; letter-spacing: 0.18em; text-transform: uppercase; color: #5FD6C4; border: 1px solid rgba(63,193,176,0.35); padding: 4px 9px; border-radius: 999px; white-space: nowrap; }
.cfm-g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cfm-tile { border-radius: 14px; padding: 14px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); }
.cfm-tile.cfm-wide { grid-column: span 2; }
.cfm-k { font: 500 9.5px 'JetBrains Mono', monospace; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-mute); }
.cfm-v { font: 300 28px 'JetBrains Mono', monospace; color: var(--ink); margin-top: 4px; font-variant-numeric: tabular-nums; }
.cfm-v small { font-size: 11px; color: #5FD6C4; margin-left: 6px; }
.cfm-bar { height: 8px; border-radius: 99px; background: rgba(255,255,255,0.07); margin-top: 10px; position: relative; }
.cfm-bar i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 99px; background: linear-gradient(90deg, var(--gold), var(--cfm-gold-hi)); transition: width 1.4s cubic-bezier(.16,.7,.2,1) .3s; }
.cfm-bar u { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--cfm-teal); }
.cfm-chk { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cfm-chk span { font: 500 10px 'JetBrains Mono', monospace; letter-spacing: 0.1em; padding: 5px 9px; border-radius: 8px; color: #CFEFEA;
  background: rgba(63,193,176,0.1); border: 1px solid rgba(63,193,176,0.25); opacity: 0; transform: translateY(4px); transition: opacity 400ms, transform 400ms; }
.cfm-chk span.cfm-wait { color: var(--cfm-gold-hi); border-color: rgba(201,169,97,0.4); background: rgba(201,169,97,0.1); }
.cfm-in .cfm-chk span { opacity: 1; transform: none; }
.cfm-legend { display: flex; gap: 16px; flex-wrap: wrap; }

/* ---------- Small Business qualifier ---------- */
.cfm-qsteps { display: flex; gap: 6px; margin: 4px 0 14px; }
.cfm-qsteps i { flex: 1; height: 4px; border-radius: 9px; background: rgba(255,255,255,0.1); transition: background 400ms; }
.cfm-qsteps i.cfm-on { background: linear-gradient(90deg, var(--gold), var(--cfm-gold-hi)); }
.cfm-fit { margin-top: 14px; padding-top: 14px; border-top: 1px dashed rgba(255,255,255,0.12); }
.cfm-fit p { margin: 0 0 8px; font: 500 9.5px 'JetBrains Mono', monospace; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-mute); }
.cfm-fit div { display: flex; gap: 6px; flex-wrap: wrap; }
.cfm-fit span { font-size: 12px; padding: 6px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.4); transition: all 300ms; }
.cfm-fit span.cfm-y { border-color: rgba(63,193,176,0.5); color: #BFF3EA; background: rgba(63,193,176,0.12); }

/* ---------- Services orbit ---------- */
.cfm-orbit { position: relative; width: 440px; height: 420px; margin-left: auto; }
.cfm-orbit svg { position: absolute; inset: 0; }
.cfm-orbit img { position: absolute; left: 192px; top: 182px; width: 56px; opacity: 0.95; }
.cfm-node { position: absolute; padding: 10px 14px; border-radius: 12px; background: rgba(12,14,16,0.88); border: 1px solid rgba(201,169,97,0.35); text-decoration: none;
  font: 500 10.5px 'JetBrains Mono', monospace; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink); box-shadow: 0 0 30px -10px rgba(201,169,97,0.5); transition: border-color 220ms, transform 220ms; }
.cfm-node:hover { border-color: var(--cfm-gold-hi); transform: translateY(-2px); }
.cfm-node small { display: block; color: var(--gold); font-size: 9px; margin-bottom: 3px; }
.cfm-orbit-spin { transform-origin: 220px 210px; animation: cfmSpin 14s linear infinite; }
@keyframes cfmSpin { to { transform: rotate(360deg); } }
.cfm-hero-two { display: grid; grid-template-columns: 1fr 440px; gap: 40px; align-items: center; }
.cfm-thumb { height: 120px; margin: -26px -26px 16px; border-radius: inherit; border-bottom-left-radius: 0; border-bottom-right-radius: 0; background-size: cover; background-position: center; position: relative; }
.cfm-thumb::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(180deg, rgba(8,8,10,0) 30%, rgba(12,12,14,1)); }

/* ---------- About timeline (v2: stat chips sit under each milestone, no side boxes) ---------- */
.cfm-side { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 14px; padding: 9px 14px; border-radius: 12px; text-align: left;
  background: linear-gradient(120deg, color-mix(in srgb, var(--acc, #C9A961) 18%, transparent), rgba(255,255,255,0.02)); border: 1px solid color-mix(in srgb, var(--acc, #C9A961) 40%, transparent); }
.cfm-side b { font: 400 18px 'JetBrains Mono', monospace; color: var(--acc, var(--cfm-gold-hi)); }
.cfm-side span { font: 500 9.5px 'JetBrains Mono', monospace; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.65); }
.cfm-side .cfm-row { display: flex; gap: 6px; flex-wrap: wrap; width: 100%; }
.cfm-side .cfm-row i { font-style: normal; font-size: 11px; padding: 4px 8px; border-radius: 7px; border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.78); }
.ms:not(.right) .cfm-side { justify-content: flex-end; }
@media (max-width: 767px) { .ms:not(.right) .cfm-side { justify-content: flex-start; } }
.ms.cfm-active .dot { background: var(--cfm-gold-hi); box-shadow: 0 0 0 8px rgba(241,216,147,0.18), 0 0 34px var(--cfm-gold-hi); }
.ms.cfm-active .year-tag { background: var(--gold); color: #08080A; }
.ms .year-tag { transition: background 300ms, color 300ms; }

/* ---------- Global Presence ---------- */
.cfm-clock { position: absolute; right: 16px; top: 16px; text-align: right; }
.cfm-clock b { display: block; font: 300 22px 'JetBrains Mono', monospace; color: var(--ink); font-variant-numeric: tabular-nums; }
.cfm-clock span { display: inline-flex; align-items: center; gap: 6px; font: 500 9px 'JetBrains Mono', monospace; letter-spacing: 0.16em; text-transform: uppercase; color: #5FD6C4; }
.cfm-clock span.cfm-off { color: rgba(255,255,255,0.45); }
.cfm-clock span i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 8px currentColor; }
.cfm-route { position: absolute; right: 28px; top: 28px; width: 330px; height: 150px; border-radius: 14px; overflow: hidden; border: 1px solid rgba(255,255,255,0.08); background: #0B0E11; }
.cfm-route svg { width: 100%; height: 100%; display: block; }
.cfm-pulse { animation: cfmRing 2.4s ease-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes cfmRing { 0% { opacity: .9; transform: scale(.6); } 100% { opacity: 0; transform: scale(2.2); } }
@media (max-width: 1100px) { .cfm-route { display: none; } }

/* ---------- Track Record backdrop line ---------- */
.cfm-bgchart { position: absolute; right: 0; top: 90px; width: 62%; height: 420px; opacity: 0.38; pointer-events: none; z-index: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%); mask-image: linear-gradient(90deg, transparent 0%, #000 55%); }

/* ---------- Contact ---------- */
.cfm-routeline { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 18px; padding: 12px 14px; border-radius: 12px;
  border: 1px solid rgba(63,193,176,0.3); background: rgba(63,193,176,0.07); font: 500 10.5px 'JetBrains Mono', monospace; letter-spacing: 0.12em; text-transform: uppercase; color: #BFF3EA; }
.cfm-routeline b { color: var(--ink); font-weight: 500; }
.cfm-routeline i { width: 7px; height: 7px; border-radius: 50%; background: var(--cfm-teal); display: inline-block; margin-right: 8px; box-shadow: 0 0 10px var(--cfm-teal); }
.cfm-book { margin-top: 22px; display: inline-flex; align-items: center; gap: 10px; }
.cfm-sent { display: inline-flex; width: 22px; height: 22px; vertical-align: middle; margin-right: 6px; }
.cfm-sent path { stroke-dasharray: 30; stroke-dashoffset: 30; animation: cfmTick .7s .1s ease-out forwards; }
@keyframes cfmTick { to { stroke-dashoffset: 0; } }

/* ---------- Financial tools bench ---------- */
.cfm-tabs { display: flex; gap: 4px; padding: 4px; border-radius: 12px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); margin-bottom: 18px; flex-wrap: wrap; }
.cfm-tabs button { flex: 1 1 auto; font: 500 10px 'JetBrains Mono', monospace; letter-spacing: 0.1em; text-transform: uppercase; padding: 9px 8px; border-radius: 9px; border: 0;
  background: transparent; color: rgba(255,255,255,0.58); cursor: pointer; white-space: nowrap; transition: background 220ms, color 220ms; }
.cfm-tabs button:hover { color: var(--ink); }
.cfm-tabs button[aria-selected="true"] { background: linear-gradient(180deg, var(--cfm-gold-mid), var(--gold)); color: #08080A; }
.cfm-panel[hidden] { display: none; }
.cfm-panel .calc-row { grid-template-columns: 1fr 1fr; }
.cfm-panel .input-group .input.cfm-bad { border-color: #E07A6F; }
.cfm-res { display: grid; grid-template-columns: 1.15fr 1fr; gap: 16px; align-items: end; margin-top: 6px; padding-top: 18px; border-top: 1px dashed rgba(255,255,255,0.12); }
.cfm-big { font-weight: 200; font-size: clamp(2.2rem, 4.2vw, 3rem); letter-spacing: -0.03em; color: var(--cfm-gold-hi); line-height: 1; font-variant-numeric: tabular-nums; }
.cfm-lbl { font: 500 10px 'JetBrains Mono', monospace; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-mute); margin-top: 6px; }
.cfm-rows div { display: flex; justify-content: space-between; gap: 10px; font: 400 12px 'JetBrains Mono', monospace; color: rgba(255,255,255,0.72); padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
.cfm-rows b { color: var(--ink); font-weight: 400; text-align: right; }
.cfm-chart { display: flex; align-items: flex-end; gap: 4px; height: 56px; margin-top: 12px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.cfm-chart i { flex: 1; min-height: 2px; border-radius: 3px 3px 0 0; background: linear-gradient(180deg, rgba(241,216,147,0.95), rgba(201,169,97,0.35)); transition: height 450ms cubic-bezier(.16,.7,.2,1); }
.cfm-chart i.cfm-neg { background: linear-gradient(0deg, rgba(224,122,111,0.9), rgba(224,122,111,0.3)); }
.cfm-chart i.cfm-hl { background: linear-gradient(180deg, var(--cfm-teal-soft), rgba(63,193,176,0.35)); }
.cfm-warn { min-height: 18px; margin-top: 10px; font-size: 12.5px; color: #FFB3AA; }
.cfm-handoff { margin-top: 14px; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.cfm-handoff small { font: 500 9.5px 'JetBrains Mono', monospace; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mute); }

/* ---------- Sitemap ---------- */
.cfm-sm-desc { display: block; font-size: 12px; color: var(--ink-mute); margin-top: 2px; font-weight: 400; }

/* ---------- responsive ---------- */
@media (max-width: 1023px) {
  .cfm-hero-split, .cfm-hero-two, .cfm-structwrap, .cfm-live { grid-template-columns: 1fr; }
  .cfm-orbit { margin: 0 auto; transform: scale(.82); transform-origin: top center; height: 360px; }
  .cfm-desk { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
  .cfm-panel .calc-row { grid-template-columns: 1fr; }
  .cfm-res { grid-template-columns: 1fr; }
  .cfm-g2 { grid-template-columns: 1fr; }
  .cfm-tile.cfm-wide { grid-column: auto; }
  .cfm-orbit { display: none; }
  .cfm-hb { grid-template-columns: 90px 1fr 24px; }
}

/* ---------- reduced motion ---------- */
/* reduced-motion overrides removed in v5.24.2: motion stays on, as on the Activity Desk */

/* =====================================================================
   v5.24.1 — Activity Desk motion language on every refreshed page
   (Ashton, 9 Nov 14:43: "the other pages need to have that as well")
   ===================================================================== */
:root { --acc-green: #3DDC84; --acc-blue: #5FB4FF; --acc-violet: #B48CFF; --acc-coral: #FF7A59; --acc-gold: #E3B861; --acc-teal: #3FC1B0; }

/* aurora: slow drifting colour behind every hero */
.cfm-aurora-host { position: relative; isolation: isolate; overflow: hidden; }
.cfm-aurora { position: absolute; inset: -20% -10%; z-index: -1; pointer-events: none; filter: blur(40px) saturate(130%); opacity: .9;
  background:
    radial-gradient(38% 46% at 18% 30%, rgba(227,184,97,.22), transparent 70%),
    radial-gradient(34% 40% at 78% 22%, rgba(63,193,176,.18), transparent 70%),
    radial-gradient(30% 38% at 62% 78%, rgba(180,140,255,.14), transparent 70%),
    radial-gradient(26% 30% at 30% 85%, rgba(95,180,255,.12), transparent 70%);
  animation: cfmAurora 16s ease-in-out infinite alternate; }
@keyframes cfmAurora { 0% { transform: translate3d(-5%,-2%,0) scale(1); } 50% { transform: translate3d(3%,2%,0) scale(1.06); } 100% { transform: translate3d(6%,-1%,0) scale(1.1); } }
.cfm-tone, .cfm-tone-warm { position: relative; isolation: isolate; overflow: hidden; }
.cfm-tone::after, .cfm-tone-warm::after { content: ''; position: absolute; inset: -30%; z-index: -1; pointer-events: none; filter: blur(50px); opacity: .7;
  background: radial-gradient(30% 40% at 80% 20%, rgba(95,180,255,.10), transparent 70%), radial-gradient(28% 36% at 15% 75%, rgba(180,140,255,.09), transparent 70%);
  animation: cfmAurora 22s ease-in-out infinite alternate; }

/* gold words shimmer */
.mk-h1 .gold, .mk-h2 .gold, h1 .gold, h2 .gold {
  background: linear-gradient(100deg, #C9A961 0%, #F1D893 25%, #E3B861 45%, #FF9F6B 60%, #F1D893 75%, #C9A961 100%);
  background-size: 220% auto; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
  animation: cfmShimmer 7s linear infinite; }
@keyframes cfmShimmer { from { background-position: 0% 50%; } to { background-position: 220% 50%; } }

/* stat panels: coloured tops and underlines like the Activity Desk tiles */
.cfm-statpanel { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0; padding: 0; border: 1px solid rgba(255,255,255,.09); border-radius: 18px; overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012)); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.cfm-statpanel .mk-stat { padding: 20px 22px 24px; border-top: 2px solid color-mix(in srgb, var(--acc) 85%, transparent); border-right: 1px solid rgba(255,255,255,.06);
  background: radial-gradient(130% 100% at 100% 0%, color-mix(in srgb, var(--acc) 12%, transparent), transparent 62%); transition: background .4s; }
.cfm-statpanel .mk-stat:last-child { border-right: 0; }
.cfm-statpanel .mk-stat:hover, .cfm-statpanel .mk-stat.cfm-bump { background: radial-gradient(130% 100% at 100% 0%, color-mix(in srgb, var(--acc) 30%, transparent), transparent 62%); }
.cfm-statpanel .mk-stat-label { color: color-mix(in srgb, var(--acc) 70%, #fff); }
.cfm-statpanel .cfm-stat::after { left: 22px; bottom: 12px; background: linear-gradient(90deg, var(--acc), transparent); }
.mk-stats-ribbon.cfm-statpanel { border-color: rgba(201,169,97,.22); }
.stat-tile { border-top: 2px solid color-mix(in srgb, var(--acc, #C9A961) 85%, transparent); }
.stat-tile .label { color: color-mix(in srgb, var(--acc, #C9A961) 65%, #fff) !important; }
@media (max-width: 767px) { .cfm-statpanel { grid-template-columns: 1fr 1fr; } .cfm-statpanel .mk-stat:nth-child(2) { border-right: 0; } }

/* coloured accents on cards and icons */
[data-acc] { --acc: var(--acc-gold); }
.cfm-ico { color: var(--acc, var(--cfm-gold-mid)); border-color: color-mix(in srgb, var(--acc, #C9A961) 40%, transparent);
  background: linear-gradient(140deg, color-mix(in srgb, var(--acc, #C9A961) 22%, transparent), rgba(255,255,255,.02)); box-shadow: 0 0 22px -8px var(--acc, #C9A961); }
.cfm-spot { border-top: 2px solid color-mix(in srgb, var(--acc, #C9A961) 55%, transparent) !important; }
.cfm-spot::before { background: radial-gradient(260px 170px at var(--mx, 50%) var(--my, 0%), color-mix(in srgb, var(--acc, #C9A961) 22%, transparent), transparent 70%); }
.cfm-spot:hover { border-color: color-mix(in srgb, var(--acc, #C9A961) 70%, transparent); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8), 0 0 46px -14px var(--acc, #C9A961); }
.cfm-spot .cfm-ico { animation: cfmFloat 5s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -0.7s); }
@keyframes cfmFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

/* LIVE ticker bar (same pattern as the Activity Desk) */
.cfm-ticker { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; height: 40px; display: flex; align-items: stretch; overflow: hidden;
  background: rgba(8,8,10,.92); border-top: 1px solid rgba(201,169,97,.25); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  font: 500 12px 'JetBrains Mono', monospace; color: rgba(255,255,255,.8); text-decoration: none; }
.cfm-ticker[hidden] { display: none; }
.cfm-ticker .cfm-tk-live { flex: none; display: flex; align-items: center; gap: 8px; padding: 0 16px; background: linear-gradient(180deg, #E3B861, #C9A961); color: #08080A; letter-spacing: .18em; font-weight: 600; }
.cfm-ticker .cfm-tk-live i { width: 7px; height: 7px; border-radius: 50%; background: #FF4D4D; box-shadow: 0 0 0 0 rgba(255,77,77,.6); animation: cfmLive 1.6s ease-out infinite; }
@keyframes cfmLive { 0% { box-shadow: 0 0 0 0 rgba(255,77,77,.7); } 70% { box-shadow: 0 0 0 7px rgba(255,77,77,0); } 100% { box-shadow: 0 0 0 0 rgba(255,77,77,0); } }
.cfm-ticker .cfm-tk-track { flex: 1; overflow: hidden; display: flex; align-items: center; -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.cfm-ticker .cfm-tk-in { display: inline-flex; white-space: nowrap; animation: cfmTick var(--tk-dur, 60s) linear infinite; }
.cfm-ticker:hover .cfm-tk-in { animation-play-state: paused; }
.cfm-ticker .cfm-tk-in span { padding: 0 6px; }
.cfm-ticker .cfm-tk-in b { color: var(--cfm-gold-hi); font-weight: 500; }
.cfm-ticker .cfm-tk-in em { font-style: normal; color: var(--acc-green); }
.cfm-ticker .cfm-tk-in .sep { color: rgba(201,169,97,.4); padding: 0 14px; }
@keyframes cfmTick { from { transform: translateX(0); } to { transform: translateX(-50%); } }
body.cfm-has-ticker { padding-bottom: 40px; }

/* the live dot on the deal desk number */
.cfm-livenum::after { content: ''; display: inline-block; width: 7px; height: 7px; margin-left: 8px; vertical-align: middle; border-radius: 50%; background: var(--acc-green); animation: cfmLiveG 1.8s ease-out infinite; }
@keyframes cfmLiveG { 0% { box-shadow: 0 0 0 0 rgba(61,220,132,.6); } 70% { box-shadow: 0 0 0 8px rgba(61,220,132,0); } 100% { box-shadow: 0 0 0 0 rgba(61,220,132,0); } }

/* reduced motion: keep it alive but slower, like the Activity Desk */
/* reduced-motion overrides removed in v5.24.2: motion stays on, as on the Activity Desk */

/* =====================================================================
   v5.24.2 — bigger, always-on motion (Ashton, 9 Nov 14:53: "add motions everywhere")
   ===================================================================== */
.cfm-net { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .9; }
.cfm-aurora { animation-duration: 11s; opacity: 1; }

/* entrances: rise, un-blur, settle */
.reveal { transform: translateY(42px) scale(.97); filter: blur(6px);
  transition: opacity .9s cubic-bezier(.16,.7,.2,1), transform .9s cubic-bezier(.16,.7,.2,1), filter .9s ease; }
.reveal.in { transform: none; filter: none; }

/* hover: a real lift */
.cfm-spot, .mk-card, .glass-card.hoverable { transition: opacity .9s cubic-bezier(.16,.7,.2,1), filter .9s ease, transform 420ms cubic-bezier(.16,.7,.2,1), border-color 260ms, box-shadow 380ms, background 300ms !important; }
.cfm-spot:hover, a.mk-card:hover { transform: translateY(-10px) scale(1.02) !important; }
.cfm-spot:hover .cfm-ico, .glass-card.hoverable:hover .icon-square, .glass-card.hoverable:hover .icon-block, .glass-card.hoverable:hover .ic { transform: rotate(-8deg) scale(1.15); transition: transform 380ms cubic-bezier(.3,1.6,.5,1); }
.cfm-ico, .icon-square, .icon-block, .ic { transition: transform 380ms cubic-bezier(.3,1.6,.5,1); }

/* gold buttons: a light sweep every few seconds and on hover */
.btn-primary { position: relative; overflow: hidden; isolation: isolate; }
.btn-primary::after { content: ''; position: absolute; top: 0; bottom: 0; left: -60%; width: 45%; z-index: -1; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform: skewX(-20deg); animation: cfmSweep 4.5s ease-in-out infinite; }
@keyframes cfmSweep { 0%, 62% { left: -60%; } 100% { left: 130%; } }

/* live deal desk: clickable, lifts and glows, opens the Activity Desk */
.cfm-clickable { cursor: pointer; position: relative; transition: transform 380ms cubic-bezier(.16,.7,.2,1), box-shadow 380ms, border-color 300ms !important; }
.cfm-clickable:hover, .cfm-clickable:focus-visible { transform: translateY(-6px) scale(1.03); border-color: rgba(63,193,176,.7);
  box-shadow: 0 30px 70px -25px rgba(0,0,0,.85), 0 0 60px -10px rgba(63,193,176,.55), 0 0 0 1px rgba(63,193,176,.4); outline: none; }
.cfm-open { position: absolute; right: 18px; bottom: -13px; padding: 5px 12px; border-radius: 999px; font: 600 10px 'JetBrains Mono', monospace; letter-spacing: .14em; text-transform: uppercase;
  background: linear-gradient(180deg, #E3B861, #C9A961); color: #08080A; opacity: 0; transform: translateY(6px); transition: opacity 300ms, transform 300ms; pointer-events: none; }
.cfm-clickable:hover .cfm-open, .cfm-clickable:focus-visible .cfm-open { opacity: 1; transform: none; }
.cfm-desk { animation: cfmBreathe 3.6s ease-in-out infinite; }
@keyframes cfmBreathe { 0%,100% { box-shadow: 0 0 0 0 rgba(63,193,176,0); } 50% { box-shadow: 0 0 34px -6px rgba(63,193,176,.45); } }
.cfm-live .cfm-foot a { pointer-events: auto; }

/* flowing routes (Global Presence map + region cards) */
.gp-map .arc { animation: arc-draw 1.4s ease-out forwards, cfmFlow 1.6s linear infinite !important; stroke: rgba(227,184,97,.7) !important; stroke-width: 1 !important; }
@keyframes cfmFlow { to { stroke-dashoffset: -16; } }
.cfm-flow { stroke-dasharray: 4 5; animation: cfmFlow 1.4s linear infinite; }
.gp-map .city-dot { animation: cfmDotGlow 2.2s ease-in-out infinite; }
@keyframes cfmDotGlow { 0%,100% { filter: drop-shadow(0 0 6px rgba(201,169,97,.6)); } 50% { filter: drop-shadow(0 0 16px rgba(241,216,147,1)); } }
.office .cfm-clock b { animation: cfmBlinkColon 2s steps(2) infinite; }
@keyframes cfmBlinkColon { 50% { opacity: .82; } }

/* services orbit nodes breathe; dashboard tag spins */
.cfm-node { animation: cfmNode 3.2s ease-in-out infinite; }
.cfm-node:nth-of-type(2) { animation-delay: -.8s; } .cfm-node:nth-of-type(3) { animation-delay: -1.6s; } .cfm-node:nth-of-type(4) { animation-delay: -2.4s; }
@keyframes cfmNode { 0%,100% { box-shadow: 0 0 22px -10px rgba(201,169,97,.5); } 50% { box-shadow: 0 0 34px -4px rgba(241,216,147,.75); } }
.cfm-tag::before { content: ''; display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; border: 1.5px solid #5FD6C4; border-right-color: transparent; vertical-align: -1px; animation: cfmSpin 1s linear infinite; }
.cfm-v { transition: color .4s; }
.cfm-bar i { transition: width 1.1s cubic-bezier(.16,.7,.2,1) !important; }
