/* ==========================================================================
   DM Consultancy design v2 (dmc-v2.css), Phase 1, 21 Oct 2026; Phase 2a core-service and hub templates
   Spec: v2 blueprint (layout system, header v2, components C1 to C16, motion v2).

   Cascade plan
   - Layer order: legacy, then v2 (tokens, base, layout, type, components, motion).
   - Pages that have not migrated load dmc-design-system.css UNLAYERED, so every
     legacy and page rule still beats anything in the v2 layers: these pages look
     exactly as before. All v2 page rules are also scoped to body.v2-page.
   - Migrated pages (body.v2-page, currently the homepage) import the legacy file
     into @layer legacy, so the v2 layers win over it and the page has no <style>.
   - The SHELL block at the end (header, drawer, phone bar, chat offsets) is
     deliberately UNLAYERED: it is shared by every page and must render the same
     whatever the page's own CSS says. It only uses v2- prefixed classes.
   Colours come from the flipping tokens in dmc-design-system.css (dark mode is
   device-synced there); v2 adds layout, rhythm, type and gradient tokens only.
   ========================================================================== */
@layer legacy, v2;
@layer v2.tokens, v2.base, v2.layout, v2.type, v2.components, v2.motion;

/* ---------- tokens ---------- */
@layer v2.tokens {
  :root {
    --w-page: 1240px;
    --w-read: 720px;
    --gut: 20px;
    --gap: 16px;
    --sec-y: 56px;
    --sec-y-tight: 40px;
    --hero-pt: 32px;
    --hero-pb: 48px;
    --head-gap: 24px;
    --block-gap: 24px;
    --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px;
    --s7: 40px; --s8: 56px; --s9: 72px; --s10: 96px; --s11: 128px;
    --fs-h1: clamp(2.25rem, 1.81rem + 1.81vw, 3.75rem);
    --fs-h2: clamp(1.75rem, 1.47rem + 1.14vw, 2.5rem);
    --fs-h3: clamp(1.25rem, 1.16rem + .38vw, 1.5rem);
    --fs-h4: clamp(1.0625rem, 1.04rem + .1vw, 1.125rem);
    --fs-deck: clamp(1.0625rem, .99rem + .29vw, 1.25rem);
    --fs-body: clamp(1rem, .98rem + .1vw, 1.0625rem);
    --fs-small: .875rem;
    --fs-label: .75rem;
    --fs-num: clamp(2.25rem, 1.9rem + 1.4vw, 3.25rem);
    --r-sm: 8px; --r-md: 12px; --r-lg: 16px; --r-xl: 24px;
    --t-fast: 160ms; --t-base: 320ms; --t-slow: 640ms;
    --grad-brand: linear-gradient(120deg, #0F07BD 0%, #2A1FD6 46%, #09082A 100%);
    --grad-rule: linear-gradient(90deg, #0F07BD 0%, #C9981A 100%);
    --grad-scrim: linear-gradient(180deg, rgba(9,8,42,0) 25%, rgba(9,8,42,.88) 100%);
    /* background system: soft depth for bands (no images, no motion) */
    --bg-wash: radial-gradient(55% 75% at 100% 0%, rgba(15,7,189,.065), rgba(15,7,189,0) 70%), radial-gradient(45% 65% at 0% 100%, rgba(201,152,26,.08), rgba(201,152,26,0) 70%);
    --bg-glow: radial-gradient(42% 70% at 88% 45%, rgba(15,7,189,.12), rgba(15,7,189,0) 70%), radial-gradient(30% 50% at 70% 100%, rgba(201,152,26,.10), rgba(201,152,26,0) 70%);
    --bg-glow-band: radial-gradient(50% 90% at 15% 50%, rgba(15,7,189,.07), rgba(15,7,189,0) 70%), radial-gradient(40% 80% at 90% 60%, rgba(201,152,26,.08), rgba(201,152,26,0) 70%);
    --bg-lattice-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%230F07BD' stroke-width='1'%3E%3Cpath d='M28 0 56 28 28 56 0 28Z'/%3E%3Cpath d='M28 12 44 28 28 44 12 28Z'/%3E%3Ccircle cx='28' cy='28' r='3.5'/%3E%3C/g%3E%3C/svg%3E");
    --bg-lattice-o: .05;
  }
  @media (min-width: 768px) {
    :root { --gut: 32px; --gap: 20px; --sec-y: 72px; --sec-y-tight: 48px; --hero-pt: 48px; --hero-pb: 64px; --head-gap: 32px; }
  }
  @media (min-width: 1024px) {
    :root { --gut: 40px; --gap: 24px; --sec-y: 96px; --sec-y-tight: 64px; --hero-pt: 56px; --hero-pb: 80px; --head-gap: 40px; --block-gap: 32px; }
  }
  @media (prefers-color-scheme: dark) {
    :root {
      --grad-brand: linear-gradient(120deg, #2b3fb8 0%, #1d1a6b 50%, #0b0a22 100%);
      --grad-rule: linear-gradient(90deg, #7d97f6 0%, #e2b23a 100%);
      --bg-wash: radial-gradient(55% 75% at 100% 0%, rgba(125,151,246,.07), rgba(125,151,246,0) 70%), radial-gradient(45% 65% at 0% 100%, rgba(226,178,58,.05), rgba(226,178,58,0) 70%);
      --bg-glow: radial-gradient(42% 70% at 88% 45%, rgba(63,95,224,.16), rgba(63,95,224,0) 70%), radial-gradient(30% 50% at 70% 100%, rgba(226,178,58,.06), rgba(226,178,58,0) 70%);
      --bg-glow-band: radial-gradient(50% 90% at 15% 50%, rgba(63,95,224,.10), rgba(63,95,224,0) 70%), radial-gradient(40% 80% at 90% 60%, rgba(226,178,58,.05), rgba(226,178,58,0) 70%);
      --bg-lattice-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%237d97f6' stroke-width='1'%3E%3Cpath d='M28 0 56 28 28 56 0 28Z'/%3E%3Cpath d='M28 12 44 28 28 44 12 28Z'/%3E%3Ccircle cx='28' cy='28' r='3.5'/%3E%3C/g%3E%3C/svg%3E");
      --bg-lattice-o: .1;
    }
  }
}

/* ---------- base (migrated pages only) ---------- */
@layer v2.base {
  body.v2-page { font-family: var(--font); font-size: var(--fs-body); line-height: 1.65; color: var(--text2); background: var(--white); -webkit-font-smoothing: antialiased; }
  body.v2-page #main { padding-top: var(--v2-hd-h); }
  body.v2-page #main :where(h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd) { margin: 0; }
  body.v2-page #main :where(img, video) { display: block; max-width: 100%; height: auto; }
  body.v2-page #main :where(a) { color: var(--indigo); }
  body.v2-page #main :where(section) { padding: 0; }
  body.v2-page #main :focus-visible { outline: 3px solid var(--indigo); outline-offset: 3px; border-radius: 4px; }
  body.v2-page #main p { text-wrap: pretty; }
}

/* ---------- layout: container, grid, splits, sections ---------- */
@layer v2.layout {
  .v2-page .v2-wrap { width: 100%; max-width: calc(var(--w-page) + 2 * var(--gut)); margin-inline: auto; padding-inline: var(--gut); }
  .v2-page .v2-read { max-width: var(--w-read); }
  .v2-page .v2-g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); }
  .v2-page .v2-g > * { grid-column: 1 / -1; min-width: 0; }
  @media (min-width: 768px) {
    .v2-page .v2-s66 > :first-child { grid-column: 1 / span 6; }
    .v2-page .v2-s66 > :last-child { grid-column: 7 / span 6; }
  }
  @media (min-width: 1024px) {
    .v2-page .v2-s75 > :first-child { grid-column: 1 / span 7; }
    .v2-page .v2-s75 > :last-child { grid-column: 8 / span 5; }
    .v2-page .v2-s57 > :first-child { grid-column: 1 / span 5; }
    .v2-page .v2-s57 > :last-child { grid-column: 6 / span 7; }
    .v2-page .v2-s48 > :first-child { grid-column: 1 / span 4; }
    .v2-page .v2-s48 > :last-child { grid-column: 5 / span 8; }
    .v2-page .v2-vc { align-items: center; }
  }
  .v2-page .v2-sec { padding-block: var(--sec-y); }
  .v2-page .v2-sec--alt { background: var(--ivory); }
  .v2-page .v2-sec--tight { padding-top: var(--sec-y-tight); }
  .v2-page .v2-sec-head { max-width: var(--w-read); margin-bottom: var(--head-gap); }
  .v2-page .v2-sec-head .v2-lead { margin-top: var(--s3); }
  .v2-page .v2-sec-head--row { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s4) var(--s6); max-width: none; }
  .v2-page .v2-sec-head--row > div:first-child { max-width: var(--w-read); }
  .v2-page .v2-stack > * + * { margin-top: var(--block-gap); }
}

/* ---------- type ---------- */
@layer v2.type {
  .v2-page .v2-h1, .v2-page .v2-h2, .v2-page .v2-h3 { font-family: var(--serif); font-weight: 500; color: var(--text); letter-spacing: -.015em; text-wrap: balance; }
  .v2-page .v2-h1 { font-size: var(--fs-h1); line-height: 1.04; letter-spacing: -.025em; }
  .v2-page .v2-h2 { font-size: var(--fs-h2); line-height: 1.12; }
  .v2-page .v2-h3 { font-size: var(--fs-h3); line-height: 1.22; }
  .v2-page .v2-h4 { font-family: var(--font); font-size: var(--fs-h4); line-height: 1.3; font-weight: 600; color: var(--text); letter-spacing: 0; text-wrap: balance; }
  .v2-page .v2-deck { font-size: var(--fs-deck); line-height: 1.5; color: var(--text2); }
  .v2-page .v2-lead { font-size: var(--fs-deck); line-height: 1.55; color: var(--text3); }
  .v2-page .v2-small { font-size: var(--fs-small); line-height: 1.5; }
  .v2-page .v2-label { display: block; font-size: var(--fs-label); line-height: 1.3; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); }
  .v2-page .v2-accent { color: var(--indigo); }
}

/* ---------- components ---------- */
@layer v2.components {
  /* links, chips, cta row, trust line */
  .v2-page .v2-quiet { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: var(--text); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 6px; }
  .v2-page .v2-quiet:hover { color: var(--indigo); }
  .v2-page .v2-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.3; background: var(--lilac-200); color: var(--text2); }
  .v2-page .v2-chip--gold { background: color-mix(in srgb, var(--gold-soft) 32%, transparent); color: var(--gold-ink); }
  .v2-page .v2-cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4) var(--s5); }
  .v2-page .v2-trust { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: var(--fs-small); color: var(--text3); list-style: none; padding: 0; }
  .v2-page .v2-trust li { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
  .v2-page .v2-trust li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
  .v2-page .v2-trust a { color: inherit; text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 3px; }

  /* photo frame */
  .v2-page .v2-ph { position: relative; overflow: hidden; border-radius: var(--r-lg); background: var(--lilac-200); }
  .v2-page .v2-ph img, .v2-page .v2-ph video { width: 100%; height: 100%; object-fit: cover; }

  /* C1 hero (home variant: 7 + 5 with photo mosaic) */
  .v2-page .v2-intro { position: relative; padding-block: var(--hero-pt) var(--hero-pb); background: linear-gradient(160deg, var(--hero-tint-a) 0%, var(--hero-tint-b) 55%, var(--hero-tint-c) 100%); overflow: hidden; }
  .v2-page .v2-intro .v2-g { row-gap: var(--s7); }
  .v2-page .v2-intro .v2-deck { margin-top: var(--s5); max-width: 40ch; }
  .v2-page .v2-intro .v2-cta-row { margin-top: var(--s6); }
  .v2-page .v2-intro .v2-trust { margin-top: var(--s5); }
  .v2-page .v2-hx { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s3); }
  .v2-page .v2-hx-main { grid-column: 1 / -1; aspect-ratio: 5 / 4; }
  .v2-page .v2-hx-sub { display: none; }
  .v2-page .v2-hx-chip { position: absolute; left: var(--s4); bottom: var(--s4); max-width: 230px; padding: 10px 14px; border-radius: var(--r-md); background: var(--surface); color: var(--text); box-shadow: var(--shadow-card); font-size: 13px; font-weight: 600; line-height: 1.35; }
  .v2-page .v2-hx-chip .v2-label { margin-bottom: 3px; font-size: 11px; }
  @media (min-width: 600px) {
    .v2-page .v2-hx-main { grid-column: 1 / span 3; grid-row: 1 / span 2; aspect-ratio: auto; min-height: 440px; }
    .v2-page .v2-hx-sub { display: block; grid-column: 4 / span 2; }
    .v2-page .v2-hx-chip { left: var(--s5); bottom: var(--s5); }
  }
  @media (min-width: 1024px) { .v2-page .v2-hx-main { min-height: 470px; } }

  /* C7 proof band */
  .v2-page .v2-pb { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s6) var(--gap); list-style: none; padding: 0; }
  @media (min-width: 1024px) { .v2-page .v2-pb { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  .v2-page .v2-pb li { border-top: 2px solid var(--gold); padding-top: var(--s4); }
  .v2-page .v2-pb-n { display: block; font-family: var(--serif); font-weight: 500; font-size: var(--fs-num); line-height: 1; letter-spacing: -.02em; color: var(--text); font-variant-numeric: tabular-nums; }
  .v2-page .v2-pb-l { display: block; margin-top: var(--s2); font-size: var(--fs-small); line-height: 1.45; color: var(--text3); }
  .v2-page .v2-pb-l a { color: inherit; }
  .v2-page .v2-pb-note { margin-top: var(--s6); font-size: var(--fs-small); color: var(--text3); }
  .v2-page .v2-proof { border-bottom: 1px solid var(--line); padding-bottom: var(--sec-y-tight); }

  /* C4 router tiles */
  .v2-page .v2-rt-grid { display: grid; gap: var(--gap); grid-template-columns: 1fr; list-style: none; padding: 0; }
  @media (min-width: 600px) { .v2-page .v2-rt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { .v2-page .v2-rt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 599px) {
    .v2-page .v2-rt-grid { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 80%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--gut)); padding-inline: var(--gut); scroll-padding-inline: var(--gut); }
    .v2-page .v2-rt-grid::-webkit-scrollbar { display: none; }
    .v2-page .v2-rt-grid > li { scroll-snap-align: start; }
  }
  .v2-page .v2-rt { position: relative; isolation: isolate; display: block; height: 100%; aspect-ratio: 4 / 5; border-radius: var(--r-lg); overflow: hidden; color: #fff; text-decoration: none; background: var(--deep); }
  @media (min-width: 600px) { .v2-page .v2-rt { aspect-ratio: 4 / 3; } }
  @media (min-width: 1024px) { .v2-page .v2-rt { aspect-ratio: 5 / 4; } }
  .v2-page .v2-rt img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease-out); }
  .v2-page .v2-rt::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(9,8,42,0) 22%, rgba(9,8,42,.5) 55%, rgba(9,8,42,.92) 100%); }
  .v2-page .v2-rt:hover img { transform: scale(1.04); }
  .v2-page .v2-rt-b { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--s5); }
  .v2-page .v2-rt-t { display: block; font-family: var(--serif); font-weight: 500; font-size: 22px; line-height: 1.15; color: #fff; }
  .v2-page .v2-rt-l { display: block; margin-top: 6px; font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.92); max-width: 36ch; }
  .v2-page .v2-rt-ar { position: absolute; right: var(--s5); top: var(--s5); width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.94); color: #09082A; display: grid; place-items: center; transition: transform var(--t-base) var(--ease-out); }
  .v2-page .v2-rt:hover .v2-rt-ar { transform: translateX(3px); }
  .v2-page .v2-rt:focus-visible { outline: 3px solid var(--indigo); outline-offset: 3px; }

  /* route finder entry strip */
  .v2-page .v2-rf { margin-top: var(--block-gap); display: grid; gap: var(--s4); align-items: center; padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); scroll-margin-top: calc(var(--v2-hd-h) + 24px); }
  @media (min-width: 1024px) { .v2-page .v2-rf { grid-template-columns: minmax(0, 1fr) auto; gap: var(--s6); padding: var(--s5) var(--s6); } .v2-page .v2-rf-links { flex-wrap: nowrap; } }
  .v2-page .v2-rf p { margin-top: 4px; font-size: var(--fs-small); color: var(--text3); max-width: 60ch; }
  .v2-page .v2-rf-links { display: flex; flex-wrap: wrap; gap: 8px; }
  .v2-page .v2-rf-links a, .v2-page .v2-rf-links button { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--line-strong); background: transparent; font-family: inherit; font-size: 14px; font-weight: 600; color: var(--text); text-decoration: none; cursor: pointer; }
  .v2-page .v2-rf-links a:hover { border-color: var(--indigo); color: var(--indigo); }
  .v2-page .v2-rf-links .v2-rf-go { background: var(--indigo-solid); border-color: transparent; color: #fff; }
  .v2-page .v2-rf-links .v2-rf-go:hover { background: var(--indigo-solid-h); }

  /* split feature photo (C3) */
  .v2-page .v2-ph-tall { aspect-ratio: 3 / 2; }
  @media (min-width: 1024px) { .v2-page .v2-ph-tall { aspect-ratio: auto; height: 100%; min-height: 420px; } .v2-page .v2-ph-tall img { position: absolute; inset: 0; object-position: 50% 28%; } }

  /* C5 tabs (stakes) */
  .v2-page .v2-tabs-l { display: none; }
  .v2-page .is-tabs .v2-tabs-l { display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--lilac-200); overflow-x: auto; scrollbar-width: none; max-width: 100%; width: max-content; scroll-snap-type: x proximity; }
  .v2-page .v2-tabs-l::-webkit-scrollbar { display: none; }
  .v2-page .v2-tab { flex: none; min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; font-family: inherit; font-size: 14px; font-weight: 600; color: var(--text2); cursor: pointer; scroll-snap-align: start; white-space: nowrap; }
  .v2-page .v2-tab:hover { color: var(--indigo); }
  .v2-page .v2-tab[aria-selected="true"] { background: var(--surface); color: var(--indigo); box-shadow: 0 2px 10px rgba(9,8,42,.12); }
  .v2-page .v2-tabp { padding: var(--s5) 0; border-top: 1px solid var(--line); }
  .v2-page .v2-tabp:last-child { border-bottom: 1px solid var(--line); }
  .v2-page .is-tabs .v2-tabp { margin-top: var(--block-gap); padding: 0; border: 0; }
  .v2-page .is-tabs .v2-tabp[hidden] { display: none; }
  .v2-page .is-tabs .v2-tabp:not([hidden]) { animation: v2-fade var(--t-fast) var(--ease-out); }
  .v2-page .v2-told { display: block; font-size: 13px; color: var(--text3); }
  .v2-page .v2-told b { margin-right: 8px; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); }
  .v2-page .v2-tabp .v2-h3 { margin-top: var(--s2); }
  .v2-page .v2-tabp p { margin-top: var(--s3); max-width: 60ch; }
  .v2-page .is-tabs .v2-tabp-card { padding: var(--s6); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
  .v2-page .v2-help { margin-top: var(--block-gap); font-weight: 600; color: var(--text); }
  .v2-page .v2-help-go { margin-top: var(--s3); }

  /* C18 card + C4 bento (services) */
  .v2-page .v2-card { display: flex; flex-direction: column; height: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; color: inherit; text-decoration: none; transition: transform var(--t-base) var(--ease-out), box-shadow var(--t-base) var(--ease-out); }
  .v2-page .v2-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-card-h); }
  .v2-page .v2-card .v2-ph { border-radius: 0; flex: none; }
  .v2-page .v2-card .v2-ph img { transition: transform var(--t-slow) var(--ease-out); }
  .v2-page .v2-card:hover .v2-ph img { transform: scale(1.04); }
  .v2-page .v2-card-b { display: flex; flex-direction: column; gap: var(--s2); flex: 1; padding: var(--s5); }
  .v2-page .v2-card-b p { font-size: var(--fs-small); line-height: 1.5; color: var(--text3); text-wrap: wrap; }
  .v2-page .v2-card-go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: var(--s3); font-size: 14px; font-weight: 600; color: var(--indigo); }
  .v2-page .v2-bento { display: grid; gap: var(--gap); grid-template-columns: 1fr; list-style: none; padding: 0; }
  .v2-page .v2-bento .v2-ph { aspect-ratio: 16 / 10; }
  @media (min-width: 600px) {
    .v2-page .v2-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2-page .v2-bento > .v2-lead-card { grid-column: 1 / -1; }
  }
  @media (min-width: 1024px) {
    .v2-page .v2-bento { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .v2-page .v2-bento > li { grid-column: span 3; }
    .v2-page .v2-bento > .v2-lead-card { grid-column: 1 / span 6; grid-row: span 2; }
    .v2-page .v2-bento > li:nth-child(n+6) { grid-column: span 4; }
    .v2-page .v2-bento > li:nth-child(n+6) .v2-ph { aspect-ratio: 2 / 1; }
    .v2-page .v2-bento .v2-lead-card .v2-ph { aspect-ratio: auto; flex: 1; min-height: 260px; }
    .v2-page .v2-bento .v2-lead-card .v2-card-b { flex: 0 0 auto; }
  }
  .v2-page .v2-bento .v2-lead-card .v2-card-b p { font-size: 15px; }
  @media (max-width: 599px) {
    .v2-page .v2-bento { gap: 12px; }
    .v2-page .v2-bento > li:not(.v2-lead-card) .v2-card { flex-direction: row; align-items: stretch; }
    .v2-page .v2-bento > li:not(.v2-lead-card) .v2-ph { width: 108px; aspect-ratio: auto; }
    .v2-page .v2-bento > li:not(.v2-lead-card) .v2-card-b { padding: 14px 16px; gap: 4px; }
    .v2-page .v2-bento .v2-lead-card .v2-ph { aspect-ratio: 3 / 2; }
  }

  @media (min-width: 600px) and (max-width: 1023px) {
    .v2-page .v2-bento .v2-lead-card .v2-ph { aspect-ratio: 2 / 1; }
    .v2-page .v2-ph-tall { aspect-ratio: 16 / 9; }
  }
  /* C8 path rail */
  .v2-page .v2-path { position: relative; display: grid; gap: var(--s6); list-style: none; padding: 0; }
  .v2-page .v2-path::before { content: ""; position: absolute; left: 17px; top: 36px; bottom: 0; width: 2px; background: var(--line-strong); }
  .v2-page .v2-pt { position: relative; padding-left: 56px; }
  .v2-page .v2-pt-n { position: absolute; left: 0; top: 0; z-index: 1; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 2px solid var(--gold); font-size: 13px; font-weight: 700; color: var(--text); }
  .v2-page .v2-pt .v2-ph { aspect-ratio: 16 / 9; margin-bottom: var(--s4); }
  .v2-page .v2-pt p { margin-top: 6px; font-size: 15px; line-height: 1.55; }
  .v2-page .v2-pt .v2-chip { margin-top: var(--s3); }
  @media (min-width: 1024px) {
    .v2-page .v2-path { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }
    .v2-page .v2-path::before { left: 12.5%; right: 12.5%; top: 17px; bottom: auto; width: auto; height: 2px; background: var(--grad-rule); opacity: .7; transform-origin: 0 50%; }
    .v2-page .v2-pt { padding-left: 0; padding-top: 56px; }
    .v2-page .v2-pt-n { left: 50%; transform: translateX(-50%); }
    .v2-page .v2-pt .v2-ph { aspect-ratio: 3 / 2; }
  }
  .v2-page .v2-path-end { margin-top: var(--block-gap); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4) var(--s6); padding-top: var(--s5); border-top: 1px solid var(--line); }
  .v2-page .v2-path-end p { max-width: 62ch; font-size: var(--fs-small); color: var(--text3); }

  /* commitments + C16 video / poster */
  .v2-page .v2-cm { display: grid; gap: var(--s5); list-style: none; padding: 0; }
  @media (min-width: 600px) { .v2-page .v2-cm { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .v2-page .v2-cm li { border-left: 2px solid var(--gold); padding-left: var(--s4); }
  .v2-page .v2-cm p { margin-top: 4px; font-size: 15px; line-height: 1.55; }
  .v2-page .v2-cm-note { margin-top: var(--s6); font-size: var(--fs-small); color: var(--text3); }
  .v2-page .v2-vid { position: relative; aspect-ratio: 4 / 5; border-radius: var(--r-lg); overflow: hidden; background: var(--deep); }
  @media (max-width: 1023px) { .v2-page .v2-vid { aspect-ratio: 4 / 3; } }
  .v2-page .v2-vid img, .v2-page .v2-vid video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .v2-page .v2-vid-btn { position: absolute; right: var(--s4); bottom: var(--s4); z-index: 1; width: 44px; height: 44px; border: 0; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.94); color: #09082A; cursor: pointer; }
  .v2-page .v2-vid-btn[hidden] { display: none; }

  /* C11 review slider */
  .v2-page .v2-sl-btns { display: flex; gap: 8px; }
  .v2-page .v2-sl-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); display: grid; place-items: center; cursor: pointer; transition: border-color var(--t-fast), color var(--t-fast); }
  .v2-page .v2-sl-btn:hover:not([disabled]) { border-color: var(--indigo); color: var(--indigo); }
  .v2-page .v2-sl-btn[disabled] { opacity: .4; cursor: default; }
  .v2-page .v2-sl { display: grid; grid-auto-flow: column; grid-auto-columns: 86%; gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; list-style: none; padding: 0 0 4px; margin: 0; }
  .v2-page .v2-sl::-webkit-scrollbar { display: none; }
  .v2-page .v2-sl > li { scroll-snap-align: start; display: flex; }
  @media (min-width: 768px) { .v2-page .v2-sl { grid-auto-columns: calc((100% - var(--gap)) / 2); } }
  @media (min-width: 1024px) { .v2-page .v2-sl { grid-auto-columns: calc((100% - 2 * var(--gap)) / 3); } }
  .v2-page .v2-sl:focus-visible { outline: 3px solid var(--indigo); outline-offset: 4px; }
  .v2-page figure.v2-rv { display: flex; flex-direction: column; gap: var(--s4); width: 100%; margin: 0; padding: var(--s5); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: none; min-height: 0; }
  .v2-page .v2-rv-src { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; font-weight: 600; color: var(--text3); }
  .v2-page .v2-rv-src i { font-style: normal; color: var(--gold); letter-spacing: 1px; }
  .v2-page .v2-rv blockquote { margin: 0; padding: 0; border: 0; font-size: 16px; line-height: 1.6; color: var(--text); font-style: normal; quotes: none; }
  .v2-page .v2-rv figcaption { margin-top: auto; display: flex; align-items: center; gap: 12px; padding-top: var(--s4); border-top: 1px solid var(--line); font-size: 13px; color: var(--text3); line-height: 1.35; }
  .v2-page .v2-rv-av { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--indigo) 14%, var(--surface)); color: var(--indigo); font-weight: 700; }
  .v2-page .v2-rv figcaption b { display: block; color: var(--text); font-size: 14px; font-weight: 600; }
  .v2-page .v2-rv figcaption a { margin-left: auto; font-weight: 600; font-size: 13px; white-space: nowrap; }

  /* C18 fit pair */
  .v2-page .v2-fit { height: 100%; padding: var(--s6); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
  .v2-page .v2-fit--no { background: transparent; border-style: dashed; border-color: var(--line-strong); }
  .v2-page .v2-fit ul { list-style: none; padding: 0; margin-top: var(--s4); display: grid; gap: var(--s4); }
  .v2-page .v2-fit li { position: relative; padding-left: 22px; line-height: 1.55; }
  .v2-page .v2-fit li::before { content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--indigo); }
  .v2-page .v2-fit--no li::before { background: var(--gold); }
  .v2-page .v2-fit-close { margin-top: var(--block-gap); display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4) var(--s5); }
  .v2-page .v2-fit-close p { color: var(--text2); max-width: 62ch; }

  /* C12 FAQ (native details, keeps the faq-item class for the gate and dmc.js accordion).
     Markup: <div class="v2-faq"><details class="faq-item">...; the v2-fq class is optional (the gate
     needs the literal class="faq-item" on internal pages, so they use the .v2-faq > details form). */
  .v2-page .v2-faq { border-top: 1px solid var(--line); }
  .v2-page :is(details.v2-fq, .v2-faq > details.faq-item) { margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: none; box-shadow: none; }
  .v2-page :is(details.v2-fq, .v2-faq > details.faq-item) > summary.faq-q { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); padding: 20px 0; margin: 0; cursor: pointer; list-style: none; background: none; border: 0; min-height: 44px; }
  .v2-page :is(details.v2-fq, .v2-faq > details.faq-item) > summary.faq-q::-webkit-details-marker { display: none; }
  .v2-page :is(details.v2-fq, .v2-faq > details.faq-item) > summary.faq-q::marker { content: ""; }
  .v2-page :is(details.v2-fq, .v2-faq > details.faq-item) > summary.faq-q h3 { margin: 0; font-family: var(--font); font-size: 17px; font-weight: 600; line-height: 1.4; letter-spacing: 0; color: var(--text); }
  .v2-page .v2-fq-pm { flex: none; position: relative; width: 32px; height: 32px; border-radius: 50%; background: var(--lilac-200); color: var(--indigo); }
  .v2-page .v2-fq-pm::before, .v2-page .v2-fq-pm::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 1px; background: currentColor; transition: transform var(--t-fast) var(--ease); }
  .v2-page .v2-fq-pm::after { transform: rotate(90deg); }
  .v2-page :is(details.v2-fq, .v2-faq > details.faq-item)[open] .v2-fq-pm::after { transform: rotate(0deg); }
  .v2-page :is(details.v2-fq, .v2-faq > details.faq-item) > .faq-a { margin: 0; padding: 0 48px 22px 0; max-width: 64ch; font-size: var(--fs-body); line-height: 1.65; color: var(--text2); background: none; border: 0; }
  .v2-page .v2-faq-aside p { margin-top: var(--s4); font-size: var(--fs-small); color: var(--text3); max-width: 36ch; }
  @media (min-width: 1024px) { .v2-page .v2-faq-aside { position: sticky; top: calc(var(--v2-hd-hc) + 32px); align-self: start; } }

  /* C14 closing band */
  .v2-page .v2-cb { position: relative; isolation: isolate; }
  .v2-page .v2-cb-ph { aspect-ratio: 4 / 3; border-radius: var(--r-xl); overflow: hidden; background: var(--deep); }
  .v2-page .v2-cb-ph img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 78%; }
  .v2-page .v2-cb-panel { position: relative; margin: -56px var(--s4) 0; padding: var(--s6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow-card); }
  .v2-page .v2-cb-panel p { margin-top: var(--s3); }
  .v2-page .v2-cb-panel .v2-cta-row { margin-top: var(--s5); }
  @media (min-width: 768px) { .v2-page .v2-cb-ph { aspect-ratio: 16 / 9; } }
  @media (min-width: 1024px) {
    .v2-page .v2-cb-ph { aspect-ratio: auto; height: 440px; }
    .v2-page .v2-cb-ph img { object-position: 50% 78%; }
    .v2-page .v2-cb-panel { position: absolute; left: var(--s7); top: 50%; transform: translateY(-50%); margin: 0; max-width: 640px; padding: var(--s6) var(--s7); }
  }
}

/* ---------- Phase 2a: core-service and hub templates ----------
   Reusable by every core service page (template 7.1), jurisdiction page (7.2) and hub (7.5).
   Nothing here is page-specific; every value is a token or a component constant.
   .v2-bc            breadcrumb (first child of the hero text column)
   .v2-s66--lg       6 + 6 split that only splits from 1024px (service hero; stacks below)
   .v2-hero-ph       service hero photo (3:2 phone, 4:3 desktop); may hold a .v2-hx-chip
   .v2-hub*          hub hero: full-bleed photo with a left scrim and white text from 1024px;
                     photo above and text on --white below (no text on photo on phones/tablets)
   .v2-ag-t          At a glance text (label above, lead size, read measure)
   .v2-kf            key-facts card on --grad-brand: label + <dl> of 2 to 4 facts (2 x 2)
   .v2-tp            tab panel card: text (7) + photo or key facts (5), flush photo
   .v2-tbl-w/.v2-tbl comparison table (C9) with sticky row heads and a scroll shadow;
                     --who = C10 "we handle / you provide / the authority decides" colour key;
                     --stack = rows become labelled blocks under 768px (routing tables)
   .v2-path--text    C8 rail without photos (nodes on the left, segment lines)
   .v2-path--v       C8 vertical at every width (Golden Visa, tax, bookkeeping)
   .v2-cols--2/3/4   count-aware grids that cannot orphan (3: one column, then 3-up from 768)
   .v2-ft            feature card (gold rule, H4, line); .v2-case case card (label, story, outcome)
   .v2-myth          objection card ("what buyers are told" + claim + the facts)
   .v2-act           action card on --grad-brand (route finder / route check entry)
   .v2-btn--light    white button for dark surfaces
   .v2-logo          identification chip for a zone or authority logo (stays light in dark mode)
   .v2-zc/.v2-facts  zone or emirate card body: logo + place label, H3, two labelled facts
   .v2-lix           link index groups (title + one-line why), used in 4 + 8 or 5 + 7
   .v2-note          small print under a block (disclaimers, scope notes)
   .v2-sticky        sticky aside from 1024px (photo or card beside a long list) */
@layer v2.components {
  /* breadcrumb */
  .v2-page .v2-bc { margin-bottom: var(--s5); }
  .v2-page .v2-bc ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; padding: 0; margin: 0; font-size: 13px; line-height: 1.4; color: var(--text3); }
  .v2-page .v2-bc li + li::before { content: "/"; margin: 0 10px; color: var(--line-strong); }
  .v2-page .v2-bc a { color: var(--text3); text-decoration: none; }
  .v2-page .v2-bc a:hover { color: var(--indigo); text-decoration: underline; text-underline-offset: 3px; }
  .v2-page .v2-bc [aria-current] { color: var(--text2); font-weight: 600; }

  /* 6 + 6 from 1024 only */
  @media (min-width: 1024px) {
    .v2-page .v2-s66--lg > :first-child { grid-column: 1 / span 6; }
    .v2-page .v2-s66--lg > :last-child { grid-column: 7 / span 6; }
  }

  /* C1 service hero photo */
  .v2-page .v2-hero-ph { position: relative; }
  .v2-page .v2-hero-ph > .v2-ph { aspect-ratio: 3 / 2; }
  @media (min-width: 1024px) { .v2-page .v2-hero-ph > .v2-ph { aspect-ratio: 4 / 3; } }
  .v2-page .v2-hero-ph .v2-hx-chip { max-width: 260px; }

  /* C1 hub hero */
  .v2-page .v2-hub { position: relative; isolation: isolate; background: var(--white); }
  .v2-page .v2-hub-ph { aspect-ratio: 3 / 2; overflow: hidden; background: var(--deep); }
  .v2-page .v2-hub-ph img { width: 100%; height: 100%; object-fit: cover; }
  .v2-page .v2-hub-in { padding-block: var(--hero-pt) var(--hero-pb); }
  .v2-page .v2-hub .v2-deck { margin-top: var(--s5); max-width: 40ch; }
  .v2-page .v2-hub .v2-cta-row { margin-top: var(--s6); }
  .v2-page .v2-hub .v2-trust { margin-top: var(--s5); }
  @media (min-width: 1024px) {
    .v2-page .v2-hub { display: flex; align-items: center; min-height: 540px; background: var(--deep); }
    .v2-page .v2-hub-ph { position: absolute; inset: 0; z-index: -2; aspect-ratio: auto; }
    .v2-page .v2-hub::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(9,8,42,.9) 0%, rgba(9,8,42,.8) 38%, rgba(9,8,42,.4) 68%, rgba(9,8,42,.12) 100%); }
    .v2-page .v2-hub-in { flex: 1; }
    .v2-page .v2-hub-t { grid-column: 1 / span 7; }
    .v2-page .v2-hub :is(.v2-h1, .v2-bc [aria-current]) { color: #fff; }
    .v2-page .v2-hub .v2-accent { color: #E9C766; }
    .v2-page .v2-hub :is(.v2-deck, .v2-trust, .v2-bc ol, .v2-bc a) { color: rgba(255,255,255,.9); }
    .v2-page .v2-hub .v2-bc li + li::before { color: rgba(255,255,255,.5); }
    .v2-page .v2-hub .v2-trust a { text-decoration-color: rgba(255,255,255,.5); }
    .v2-page .v2-hub .v2-quiet { color: #fff; }
    .v2-page .v2-hub .v2-quiet:hover { color: #E9C766; }
  }

  /* At a glance */
  .v2-page .v2-ag-t { margin-top: var(--s3); max-width: var(--w-read); font-size: var(--fs-deck); line-height: 1.6; color: var(--text); }

  /* key-facts card */
  .v2-page .v2-kf { padding: var(--s6); border-radius: var(--r-lg); background: var(--grad-brand); color: #fff; }
  .v2-page .v2-kf .v2-label { color: #E9C766; }
  .v2-page .v2-kf dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s5) var(--s5); margin: var(--s4) 0 0; }
  .v2-page .v2-kf dl > div { padding-top: var(--s3); border-top: 1px solid rgba(255,255,255,.22); }
  .v2-page .v2-kf dt { font-size: 12px; font-weight: 600; letter-spacing: .04em; line-height: 1.35; color: rgba(255,255,255,.78); }
  .v2-page .v2-kf dd { margin: 4px 0 0; font-size: 16px; font-weight: 600; line-height: 1.35; color: #fff; }

  /* tab panel card: text (7) + photo or key facts (5) */
  .v2-page .v2-tp { display: grid; overflow: hidden; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
  .v2-page .v2-tp-b { padding: var(--s6); }
  .v2-page .v2-tp-b > * + * { margin-top: var(--s3); }
  .v2-page .v2-tp-b .v2-h3 { margin-top: 0; }
  .v2-page .v2-tp-b p { max-width: 60ch; }
  .v2-page .v2-tp-b .v2-facts { margin-top: var(--s5); }
  .v2-page .v2-tp-b .v2-quiet { margin-top: var(--s5); }
  .v2-page .v2-tp > .v2-ph { order: -1; border-radius: 0; aspect-ratio: 3 / 2; }
  .v2-page .v2-tp > .v2-kf { order: -1; border-radius: 0; }
  @media (min-width: 1024px) {
    .v2-page .v2-tp { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
    .v2-page .v2-tp > .v2-ph, .v2-page .v2-tp > .v2-kf { order: 0; }
    .v2-page .v2-tp > .v2-ph { aspect-ratio: auto; min-height: 360px; }
    .v2-page .v2-tp > .v2-ph img { position: absolute; inset: 0; }
    .v2-page .v2-tp > .v2-kf { display: flex; flex-direction: column; justify-content: center; padding: var(--s7); }
  }
  .v2-page .v2-tp-pair { display: grid; gap: var(--s5); margin-top: var(--s5); }
  @media (min-width: 600px) { .v2-page .v2-tp-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .v2-page .v2-tp-pair > div { padding-top: var(--s4); border-top: 2px solid var(--gold); }
  .v2-page .v2-tp-pair p { margin-top: 6px; font-size: 15px; line-height: 1.55; }
  .v2-page .v2-tp-pair .v2-chip { margin-top: var(--s3); }

  /* labelled facts (zone cards, emirate cards, tab panels) */
  .v2-page .v2-facts { display: grid; gap: var(--s3); margin: 0; }
  .v2-page .v2-facts > div { display: grid; gap: 2px; }
  .v2-page .v2-facts dt { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; line-height: 1.3; color: var(--gold-ink); }
  .v2-page .v2-facts dd { margin: 0; font-size: 14px; line-height: 1.5; color: var(--text2); }

  /* C9 table, C10 who-handles-what */
  .v2-page .v2-tbl-w { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-lg); background-color: var(--surface); background-image: linear-gradient(to left, var(--surface), var(--surface)), linear-gradient(to left, rgba(9,8,42,.12), rgba(9,8,42,0)); background-position: right center, right center; background-size: 28px 100%, 28px 100%; background-repeat: no-repeat; background-attachment: local, scroll; scrollbar-width: thin; }
  .v2-page .v2-tbl { width: 100%; min-width: 720px; border-collapse: collapse; table-layout: fixed; font-size: 15px; line-height: 1.5; }
  .v2-page .v2-tbl caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .v2-page .v2-tbl :is(th, td) { padding: var(--s4) var(--s5); text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
  .v2-page .v2-tbl thead th { background: var(--lilac); font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--text); }
  .v2-page .v2-tbl tbody th { position: sticky; left: 0; z-index: 1; background: var(--surface); font-weight: 600; color: var(--text); }
  .v2-page .v2-tbl :is(th, td):first-child { width: 24%; }
  .v2-page .v2-tbl tbody tr:last-child > * { border-bottom: 0; }
  .v2-page .v2-tbl td { color: var(--text2); }
  .v2-page .v2-tbl td b { display: block; color: var(--text); font-weight: 600; }
  .v2-page .v2-tbl td b + span { display: block; margin-top: 2px; font-size: 14px; color: var(--text3); }
  .v2-page .v2-tbl th small { display: block; margin-top: 2px; font-size: 13px; font-weight: 400; color: var(--text3); }
  .v2-page .v2-tbl .v2-go { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--indigo); text-decoration: none; }
  .v2-page .v2-tbl .v2-go:hover { text-decoration: underline; text-underline-offset: 3px; }
  .v2-page .v2-tbl-z { display: flex; align-items: center; gap: var(--s3); }
  .v2-page .v2-tbl--who thead th { box-shadow: inset 0 3px 0 var(--line-strong); }
  .v2-page .v2-tbl--who thead th:nth-child(2) { color: var(--indigo); box-shadow: inset 0 3px 0 var(--indigo); }
  .v2-page .v2-tbl--who thead th:nth-child(3) { color: var(--text); box-shadow: inset 0 3px 0 var(--text3); }
  .v2-page .v2-tbl--who thead th:nth-child(4) { color: var(--gold-ink); box-shadow: inset 0 3px 0 var(--gold); }
  .v2-page .v2-tbl-foot { margin-top: var(--s4); font-size: var(--fs-small); color: var(--text3); max-width: 80ch; }
  @media (max-width: 767px) {
    .v2-page .v2-tbl-w:has(.v2-tbl--stack) { overflow: visible; background-image: none; }
    .v2-page .v2-tbl--stack { min-width: 0; }
    .v2-page .v2-tbl--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .v2-page .v2-tbl--stack :is(tbody, tr, th, td) { display: block; width: auto; }
    .v2-page .v2-tbl--stack tr { padding: var(--s5); border-bottom: 1px solid var(--line); }
    .v2-page .v2-tbl--stack tbody tr:last-child { border-bottom: 0; }
    .v2-page .v2-tbl--stack :is(th, td) { position: static; padding: 0; border: 0; background: none; }
    .v2-page .v2-tbl--stack :is(th, td):first-child { width: auto; }
    .v2-page .v2-tbl--stack td { margin-top: var(--s3); }
    .v2-page .v2-tbl--stack td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); }
  }

  /* C8 rail without photos, and vertical rail */
  @media (min-width: 1024px) {
    .v2-page .v2-path--text::before { display: none; }
    .v2-page .v2-path--text .v2-pt-n { left: 0; transform: none; }
    .v2-page .v2-path--text .v2-pt:not(:last-child)::after { content: ""; position: absolute; top: 17px; left: 48px; right: calc(-1 * var(--gap) + 8px); height: 2px; background: var(--grad-rule); opacity: .6; }
  }
  .v2-page .v2-path--v::before { display: none; }
  .v2-page .v2-path--v .v2-pt:not(:last-child)::after { content: ""; position: absolute; left: 17px; top: 44px; bottom: calc(-1 * var(--s6) + 8px); width: 2px; background: var(--line-strong); }
  @media (min-width: 1024px) {
    .v2-page .v2-path--v { grid-template-columns: minmax(0, 1fr); gap: var(--s6); }
    .v2-page .v2-path--v .v2-pt { padding: 0 0 0 56px; }
    .v2-page .v2-path--v .v2-pt-n { left: 0; transform: none; }
  }
  .v2-page .v2-path--text .v2-pt p, .v2-page .v2-path--v .v2-pt p { max-width: 52ch; }

  /* count-aware grids (no orphans) */
  .v2-page .v2-cols { display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr); list-style: none; padding: 0; margin: 0; }
  .v2-page .v2-cols > li { display: flex; min-width: 0; }
  .v2-page .v2-cols > li > * { width: 100%; }
  @media (min-width: 600px) { .v2-page :is(.v2-cols--2, .v2-cols--4) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 768px) { .v2-page .v2-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { .v2-page .v2-cols--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  .v2-page .v2-cols .v2-card .v2-ph { aspect-ratio: 3 / 2; }

  /* feature card, case card */
  .v2-page .v2-ft { height: 100%; padding: var(--s5) var(--s5) var(--s6); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
  .v2-page .v2-ft::before { content: ""; display: block; width: 32px; height: 2px; margin-bottom: var(--s4); background: var(--gold); }
  .v2-page .v2-ft p { margin-top: var(--s2); font-size: 15px; line-height: 1.55; color: var(--text2); }
  .v2-page .v2-case { display: flex; flex-direction: column; height: 100%; padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
  .v2-page .v2-case .v2-label { color: var(--indigo); }
  .v2-page .v2-case p { margin-top: var(--s3); font-size: 15px; line-height: 1.6; color: var(--text2); }
  .v2-page .v2-case p:last-child { margin-top: auto; padding-top: var(--s4); border-top: 1px solid var(--line); font-weight: 600; color: var(--text); }
  .v2-page .v2-case p:nth-last-child(2) { margin-bottom: var(--s4); }

  /* objection card and action card */
  .v2-page .v2-myth { height: 100%; padding: var(--s6); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--gold); }
  .v2-page .v2-myth-claim { margin-top: var(--s2); font-family: var(--serif); font-weight: 500; font-size: var(--fs-h3); line-height: 1.3; color: var(--text); }
  .v2-page .v2-myth p:not(.v2-myth-claim) { margin-top: var(--s4); max-width: 62ch; }
  .v2-page .v2-myth p:not(.v2-myth-claim) + p { margin-top: var(--s3); }
  .v2-page .v2-act { display: flex; flex-direction: column; align-items: flex-start; height: 100%; padding: var(--s6); border-radius: var(--r-lg); background: var(--grad-brand); color: #fff; scroll-margin-top: calc(var(--v2-hd-h) + 24px); }
  .v2-page .v2-act .v2-label { color: #E9C766; }
  .v2-page .v2-act .v2-h3 { margin-top: var(--s2); color: #fff; }
  .v2-page .v2-act p { margin-top: var(--s3); font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.9); }
  .v2-page .v2-act .v2-btn { margin-top: auto; }
  .v2-page .v2-act p + .v2-btn { margin-top: var(--s5); }
  .v2-page .v2-act-fine { font-size: 13px !important; color: rgba(255,255,255,.78) !important; }
  .v2-page .v2-btn--light, .v2-page .v2-btn--light:visited { background: #fff; color: #09082A; border-color: #fff; }
  .v2-page .v2-btn--light:hover { background: #EEF0FF; color: #09082A; transform: translateY(-1px); }
  .v2-page .v2-btn--light:focus-visible { outline-color: #E9C766; }

  /* logo chip: identification only, stays light so the marks keep their colours */
  .v2-page .v2-logo { flex: none; display: grid; place-items: center; width: 76px; height: 44px; padding: 6px 9px; border-radius: 10px; background: #fff; border: 1px solid #E3E1F2; }
  .v2-page .v2-logo img { width: auto; height: auto; max-width: 100%; max-height: 30px; object-fit: contain; }

  /* zone / emirate card body */
  .v2-page .v2-zc-top { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
  .v2-page .v2-zc-em { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text3); }
  .v2-page .v2-zc .v2-facts { margin-top: var(--s2); }
  .v2-page .v2-zc .v2-card-b p { font-size: 14px; }
  @media (max-width: 599px) {
    .v2-page .v2-bento > li:not(.v2-lead-card) .v2-zc .v2-ph { width: 96px; }
    .v2-page .v2-bento > li:not(.v2-lead-card) .v2-zc .v2-logo { width: 60px; height: 36px; padding: 5px 7px; }
  }

  /* link index */
  .v2-page .v2-lix { display: grid; gap: var(--s6) var(--gap); }
  @media (min-width: 768px) { .v2-page .v2-lix { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .v2-page .v2-lix ul { list-style: none; padding: 0; margin: var(--s3) 0 0; border-top: 1px solid var(--line); }
  .v2-page .v2-lix li { border-bottom: 1px solid var(--line); }
  .v2-page .v2-lix a { display: block; padding: var(--s4) 0; text-decoration: none; }
  .v2-page .v2-lix a b { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--text); }
  .v2-page .v2-lix a b svg { flex: none; color: var(--indigo); transition: transform var(--t-fast) var(--ease); }
  .v2-page .v2-lix a span { display: block; margin-top: 4px; font-size: 14px; line-height: 1.5; color: var(--text3); }
  .v2-page .v2-lix a:hover b { color: var(--indigo); }
  .v2-page .v2-lix a:hover b svg { transform: translateX(3px); }

  /* small print and sticky asides */
  .v2-page .v2-note { margin-top: var(--block-gap); padding-top: var(--s4); border-top: 1px solid var(--line); font-size: 13px; line-height: 1.55; color: var(--text3); max-width: 80ch; }
  .v2-page .v2-note b { color: var(--text2); }
  @media (min-width: 1024px) { .v2-page .v2-sticky { position: sticky; top: calc(var(--v2-hd-hc) + 32px); align-self: start; } }
  .v2-page .v2-ph-stack { display: grid; gap: var(--gap); }
  .v2-page .v2-ph-stack .v2-ph { aspect-ratio: 3 / 2; }
  .v2-page .v2-sec-foot { margin-top: var(--block-gap); }
  .v2-page .v2-sec[id] { scroll-margin-top: calc(var(--v2-hd-hc) + 8px); }

  /* commitment cards in one column (ink band with a 7-column list), outcome line */
  @media (min-width: 600px) { .v2-page .v2-cm--stack { grid-template-columns: minmax(0, 1fr); } }
  .v2-page .v2-cm p.v2-cm-out { margin-top: var(--s4); padding-top: var(--s3); border-top: 1px solid var(--line); font-weight: 600; color: var(--text); }
  .v2-page .v2-sec--ink .v2-cm p.v2-cm-out { border-top-color: rgba(255,255,255,.18); color: #fff; }

  /* closing band crop for 1600 x 1313 sources */
  .v2-page .v2-cb-ph--mid img { object-position: 50% 50%; }
  .v2-page .v2-cb-ph--top img { object-position: 50% 30%; }
}
@layer v2.motion {
  @media (prefers-reduced-motion: no-preference) {
    .v2-page .v2-intro .v2-hero-ph { animation: v2-rise 520ms var(--ease-out) 120ms backwards; }
    .v2-page .v2-hub .v2-hub-t > * { animation: v2-rise 520ms var(--ease-out) backwards; }
    .v2-page .v2-hub .v2-hub-t > :nth-child(2) { animation-delay: 60ms; }
    .v2-page .v2-hub .v2-hub-t > :nth-child(3) { animation-delay: 120ms; }
    .v2-page .v2-hub .v2-hub-t > :nth-child(n+4) { animation-delay: 180ms; }
  }
}

/* ---------- background system (reusable; apply to a band, never to every band) ----------
   .v2-bg-wash     soft indigo (top right) and gold (bottom left) radial wash over the band colour
   .v2-bg-glow     edge glow, for heroes: sits behind the photo side, away from the text column
   .v2-bg-glow-band  wide glow for closing bands
   .v2-bg-lattice  faint mashrabiya line lattice (4 to 6% opacity), masked so it fades out
                   before the text column; add --l (left) to anchor it on the left instead
   All are CSS only (the lattice is a 300-byte inline SVG), static, and flip in dark mode. */
@layer v2.components {
  .v2-page .v2-bg-wash { background-image: var(--bg-wash); }
  .v2-page .v2-bg-glow { background-image: var(--bg-glow), linear-gradient(160deg, var(--hero-tint-a) 0%, var(--hero-tint-b) 55%, var(--hero-tint-c) 100%); }
  .v2-page .v2-bg-glow-band { background-image: var(--bg-glow-band); }
  .v2-page .v2-bg-lattice { position: relative; isolation: isolate; }
  .v2-page .v2-bg-lattice::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: var(--bg-lattice-img); background-size: 56px 56px; opacity: var(--bg-lattice-o); -webkit-mask-image: linear-gradient(90deg, transparent 45%, #000 85%); mask-image: linear-gradient(90deg, transparent 45%, #000 85%); }
  .v2-page .v2-bg-lattice--l::before { -webkit-mask-image: linear-gradient(270deg, transparent 45%, #000 85%); mask-image: linear-gradient(270deg, transparent 45%, #000 85%); }
  @media (max-width: 1023px) { .v2-page .v2-bg-lattice::before { -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 30%); mask-image: linear-gradient(180deg, #000 0%, transparent 30%); } }
}

/* ---------- motion v2 (CSS first, nothing hidden without JS) ---------- */
@layer v2.motion {
  @keyframes v2-rise { from { opacity: .001; transform: translateY(8px); } }
  @keyframes v2-fade { from { opacity: .001; } }
  @keyframes v2-draw { from { transform: scaleX(0); } }
  @media (prefers-reduced-motion: no-preference) {
    .v2-page .v2-intro .v2-in > * { animation: v2-rise 520ms var(--ease-out) backwards; }
    .v2-page .v2-intro .v2-in > :nth-child(2) { animation-delay: 60ms; }
    .v2-page .v2-intro .v2-in > :nth-child(3) { animation-delay: 120ms; }
    .v2-page .v2-intro .v2-in > :nth-child(n+4) { animation-delay: 180ms; }
    .v2-page .v2-intro .v2-hx { animation: v2-rise 520ms var(--ease-out) 120ms backwards; }
    @media (min-width: 1024px) {
      .v2-page .v2-path.will-draw::before { transform: scaleX(0); }
      .v2-page .v2-path.will-draw.is-drawn::before { transform: scaleX(1); transition: transform 700ms var(--ease-out); }
    }
    @supports (animation-timeline: view()) {
      @media (min-width: 1024px) {
        .v2-page .v2-cb-ph img { animation: v2-drift linear both; animation-timeline: view(); scale: 1.08; }
      }
    }
  }
  @keyframes v2-drift { from { translate: 0 -3%; } to { translate: 0 3%; } }
  @media (prefers-reduced-motion: reduce) {
    .v2-page .v2-card, .v2-page .v2-card .v2-ph img, .v2-page .v2-rt img { transition: none; }
    .v2-page .v2-card:hover { transform: none; }
    .v2-page .v2-rt:hover img, .v2-page .v2-card:hover .v2-ph img { transform: none; }
  }
}

/* ==========================================================================
   SHELL (unlayered on purpose): header v2, mega panels, mobile drawer, phone
   bar, chat launcher offsets. Shared by every page outside /lp/.
   ========================================================================== */
:root { --v2-hd-h: 64px; --v2-hd-hc: 64px; --v2-hd-cur: 64px; --v2-pbar-h: 68px; }
@media (min-width: 1100px) { :root { --v2-hd-h: 76px; --v2-hd-hc: 60px; --v2-hd-cur: 76px; } }
html:has(.v2-hd.is-compact) { --v2-hd-cur: var(--v2-hd-hc); }

.v2-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.v2-hd, .v2-pbar { font-family: var(--font); -webkit-font-smoothing: antialiased; }
.v2-hd *, .v2-hd *::before, .v2-hd *::after, .v2-pbar *, .v2-pbar *::before, .v2-pbar *::after { box-sizing: border-box; }
.v2-hd :where(ul, li, p) { margin: 0; padding: 0; }
.v2-hd :where(img) { display: block; max-width: none; }
.v2-hd svg, .v2-pbar svg { flex: none; }
.v2-hd .v2-wrap { width: 100%; max-width: calc(1240px + 2 * var(--gut, 20px)); margin-inline: auto; padding-inline: var(--gut, 20px); }

/* buttons (shared by the shell and v2 pages) */
.v2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 22px; border-radius: 8px; border: 1.5px solid transparent; font-family: var(--font); font-size: 15px; font-weight: 600; line-height: 1.2; letter-spacing: .01em; text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform 160ms var(--ease), background-color 160ms var(--ease), border-color 160ms var(--ease), color 160ms var(--ease); }
.v2-btn--primary, .v2-btn--primary:visited { background: var(--indigo-solid); color: #fff; box-shadow: var(--shadow-indigo); }
.v2-btn--primary:hover { background: var(--indigo-solid-h); color: #fff; transform: translateY(-1px); }
.v2-btn--line, .v2-btn--line:visited { background: var(--surface); color: var(--text); border-color: var(--line-strong); }
.v2-btn--line:hover { border-color: var(--indigo); color: var(--indigo); }
.v2-btn:focus-visible, .v2-hd a:focus-visible, .v2-hd button:focus-visible, .v2-pbar a:focus-visible { outline: 3px solid var(--indigo); outline-offset: 2px; }

/* bar */
.v2-hd { position: fixed; top: 0; left: 0; right: 0; z-index: 400; color: var(--text); line-height: 1.4; font-size: 16px; }
#hdr.v2-hd, #hdr.v2-hd.is-solid { background: transparent; border: 0; box-shadow: none; height: auto; transform: none; }
.v2-hd-bar { position: relative; isolation: isolate; height: var(--v2-hd-cur); transition: height 200ms var(--ease); }
.v2-hd-bar::before { content: ""; position: absolute; inset: 0; z-index: -1; background: color-mix(in srgb, var(--white) 92%, transparent); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid var(--line); }
.v2-hd-bar::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--grad-rule, linear-gradient(90deg, #0F07BD, #C9981A)); opacity: 0; transition: opacity 200ms var(--ease); pointer-events: none; }
.v2-hd.is-compact .v2-hd-bar::after { opacity: 1; }
.v2-hd-in { display: flex; align-items: center; gap: 24px; height: 100%; }
.v2-hd-logo { flex: none; display: inline-flex; align-items: center; text-decoration: none; }
.v2-hd-logo img { height: 30px; width: auto; transition: height 200ms var(--ease); }
.v2-hd.is-compact .v2-hd-logo img { height: 26px; }
.v2-logo-d { display: none !important; }
.v2-menu { margin-left: auto; display: flex; align-items: center; }
.v2-nav-l { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.v2-ni { list-style: none; }
.v2-t { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; margin: 0; border: 0; border-radius: 999px; background: none; font-family: var(--font); font-size: 14px; font-weight: 600; line-height: 1; color: var(--text); text-decoration: none; white-space: nowrap; cursor: pointer; min-height: 0; transition: background-color 160ms var(--ease), color 160ms var(--ease); }
.v2-t:hover, .v2-t:visited:hover { background: var(--lilac-200); color: var(--text); }
.v2-t:visited { color: var(--text); }
.v2-t svg { transition: transform 160ms var(--ease); }
.v2-t[aria-expanded="true"], .v2-t[aria-expanded="true"]:hover { background: var(--indigo-solid); color: #fff; }
.v2-t[aria-expanded="true"] svg { transform: rotate(180deg); }
.v2-t.is-current::after, .v2-t[aria-current="page"]::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 3px; height: 2px; border-radius: 2px; background: var(--gold); }
.v2-t[aria-expanded="true"].is-current::after { background: var(--gold-soft); }
.v2-hd-wa { flex: none; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-strong); color: var(--text); text-decoration: none; transition: border-color 160ms, color 160ms; }
.v2-hd-wa:hover { border-color: var(--indigo); color: var(--indigo); }
.v2-hd-cta { flex: none; min-height: 44px; padding: 10px 18px; font-size: 14px; }
.v2-burger { display: none; }
.v2-dr-top, .v2-dr-pin { display: none; }

/* mega panel */
.v2-mp { display: none; position: absolute; left: 0; right: 0; top: 100%; padding-bottom: 24px; }
.v2-mp.is-open, .v2-hd:not(.is-ready) .v2-ni:focus-within > .v2-mp, .v2-mp:target { display: block; }
@media (hover: hover) { .v2-hd:not(.is-ready) .v2-ni:hover > .v2-mp { display: block; } }
.v2-mp-in { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; padding: 32px 32px 24px; max-height: calc(100vh - var(--v2-hd-cur) - 24px); overflow-y: auto; overscroll-behavior: contain; background: var(--surface); border: 1px solid var(--line); border-top: 0; border-radius: 0 0 24px 24px; box-shadow: 0 30px 80px -30px rgba(9,8,42,.35); }
.v2-mp-in::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule, linear-gradient(90deg, #0F07BD, #C9981A)); }
@media (prefers-reduced-motion: no-preference) { .v2-mp.is-open .v2-mp-in { animation: v2-mp-in 180ms var(--ease-out) both; } }
@keyframes v2-mp-in { from { opacity: 0; transform: translateY(-6px); } }

.v2-mf { grid-column: span 3; position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: 340px; border-radius: 16px; overflow: hidden; color: #fff; text-decoration: none; background: var(--deep); }
.v2-mf img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 640ms var(--ease-out); }
.v2-mf--face img { object-position: 50% 15%; }
.v2-mf::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,7,189,.10) 0%, rgba(15,7,189,.42) 40%, rgba(9,8,42,.92) 66%, rgba(9,8,42,.96) 100%); }
.v2-mf:hover img { transform: scale(1.04); }
.v2-mf-b { display: flex; flex-direction: column; gap: 8px; padding: 24px; }
.v2-mf-lb { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #E9C766; }
.v2-mf-t { font-family: var(--serif); font-weight: 500; font-size: 24px; line-height: 1.15; color: #fff; }
.v2-mf-p { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.9); }
.v2-mf-go { margin-top: 8px; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: #fff; color: #09082A; font-size: 13px; font-weight: 700; }
.v2-mf:focus-visible { outline: 3px solid var(--indigo); outline-offset: 3px; }

.v2-mc { grid-column: span 6; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-content: start; }
.v2-mg { min-width: 0; }
.v2-mg-h { display: block; padding-bottom: 10px; margin-bottom: 6px; border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 600; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); }
.v2-ml { display: block; padding: 8px 10px; margin: 0 -10px; border-radius: 10px; text-decoration: none; transition: background-color 120ms var(--ease); }
.v2-ml b { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--text); }
.v2-ml span { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.45; color: var(--text3); }
.v2-ml:hover, .v2-ml:focus-visible { background: var(--lilac); }
.v2-ml:hover b, .v2-ml:focus-visible b { color: var(--indigo); }
.v2-ml:focus-visible { outline: 3px solid var(--indigo); outline-offset: -2px; }
.v2-ml[aria-current="page"] b { color: var(--indigo); }
.v2-ml[aria-current="page"] b::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 8px; border-radius: 50%; background: var(--gold); vertical-align: middle; }
.v2-mc--compact .v2-ml { padding-block: 6px; }
.v2-ml--logo { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 10px; align-items: center; }
.v2-ml--logo .v2-lg { grid-row: span 2; }
.v2-ml--logo span { grid-column: 2; }
.v2-lg { display: grid; place-items: center; width: 46px; height: 32px; padding: 4px 5px; border-radius: 7px; background: #fff; border: 1px solid #E3E1F2; font-style: normal; }
.v2-lg img { width: auto; height: auto; max-width: 100%; max-height: 22px; object-fit: contain; }
.v2-ml--flag { display: flex; align-items: center; gap: 10px; }
.v2-ml--flag i { font-style: normal; font-size: 18px; line-height: 1; }
.v2-mp-side { grid-column: span 3; display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: 16px; background: var(--lilac); }
.v2-mp-side p { font-size: 14px; line-height: 1.5; color: var(--text2); }
.v2-mp-side .v2-mg-h { border: 0; padding: 0; margin: 0; color: var(--text3); }
.v2-mp-side .v2-btn { width: 100%; min-height: 44px; padding: 10px 14px; font-size: 14px; white-space: normal; text-align: center; }
.v2-who { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.v2-who img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: none; }
.v2-who b { display: block; font-size: 16px; font-weight: 600; color: var(--text); }
.v2-who span span { display: block; margin-top: 2px; font-size: 13px; color: var(--text3); }
.v2-who:hover b { color: var(--indigo); }
.v2-mp-side-n { margin-top: auto !important; font-size: 13px; color: var(--text3); }
a.v2-mp-side-n { font-weight: 600; color: var(--indigo); text-decoration: none; }
a.v2-mp-side-n:hover { text-decoration: underline; }
.v2-mp-foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13px; color: var(--text3); }
.v2-mp-foot > span { font-weight: 600; letter-spacing: .02em; }
.v2-mp-foot a { font-weight: 600; color: var(--text); text-decoration: none; }
.v2-mp-foot a:hover { color: var(--indigo); text-decoration: underline; text-underline-offset: 3px; }

/* width tiers: the bar never wraps or clips; below 1100px the burger takes over */
@media (min-width: 1280px) and (max-width: 1439px) {
  .v2-hd-in { gap: 16px; }
  .v2-t { padding: 0 10px; }
  .v2-t.is-current::after { left: 10px; right: 10px; }
}
@media (min-width: 1100px) and (max-width: 1279px) {
  .v2-hd-in { gap: 12px; }
  .v2-t { padding: 0 9px; font-size: 13.5px; }
  .v2-t.is-current::after { left: 9px; right: 9px; }
  .v2-hd-wa { display: none; }
  .v2-hd-cta { padding: 10px 14px; font-size: 13.5px; }
  .v2-mp-in { padding: 24px; gap: 20px; }
  .v2-mf { min-height: 300px; }
  .v2-mf-t { font-size: 21px; }
  .v2-mc { gap: 16px; }
}
@media (min-width: 1100px) and (max-width: 1199px) {
  .v2-hd-logo img { height: 26px; }
  .v2-ni--plain { display: none; }
}

/* mobile and tablet: drawer */
@media (max-width: 1099px) {
  .v2-hd-wa, .v2-hd-cta { display: none; }
  .v2-hd-logo img { height: 26px; }
  .v2-burger { display: inline-grid; place-items: center; flex: none; margin-left: auto; width: 44px; height: 44px; padding: 0; border-radius: 10px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); cursor: pointer; }
  .v2-menu { position: fixed; inset: 0; z-index: 2; margin: 0; flex-direction: column; align-items: stretch; background: var(--white); visibility: hidden; transform: translateX(100%); transition: transform 320ms var(--ease-out), visibility 0s linear 320ms; }
  .v2-hd.is-open { z-index: 1001; }
  .v2-hd.is-open .v2-menu { visibility: visible; transform: none; transition: transform 320ms var(--ease-out), visibility 0s; }
  .v2-dr-top { display: flex; align-items: center; justify-content: space-between; flex: none; height: 64px; padding: 0 20px; border-bottom: 1px solid var(--line); }
  .v2-dr-top .v2-hd-logo img { height: 24px; }
  .v2-dr-x { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 10px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); cursor: pointer; }
  .v2-nav { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 4px 20px 16px; }
  .v2-nav-l { flex-direction: column; align-items: stretch; gap: 0; }
  .v2-ni { border-bottom: 1px solid var(--line); }
  .v2-t { width: 100%; height: 56px; padding: 0 2px; justify-content: space-between; border-radius: 0; font-size: 16px; }
  .v2-t:hover { background: none; color: var(--indigo); }
  .v2-t svg { width: 28px; height: 28px; padding: 9px; border-radius: 50%; background: var(--lilac-200); color: var(--indigo); }
  .v2-t[aria-expanded="true"], .v2-t[aria-expanded="true"]:hover { background: none; color: var(--indigo); }
  .v2-t.is-current::after, .v2-t[aria-current="page"]::after { left: 2px; right: auto; width: 24px; bottom: 10px; }
  .v2-mp { position: static; padding: 0; }
  .v2-mp .v2-wrap { padding: 0; max-width: none; }
  .v2-mp-in { display: block; padding: 0 0 14px; max-height: none; overflow: visible; background: none; border: 0; border-radius: 0; box-shadow: none; }
  .v2-mp-in::before { display: none; }
  .v2-mf { min-height: 0; display: flex; align-items: center; gap: 12px; margin-bottom: 8px; padding: 10px; border-radius: 14px; background: var(--grad-brand); }
  .v2-mf::before { display: none; }
  .v2-mf img { position: static; z-index: auto; flex: none; width: 56px; height: 56px; border-radius: 10px; }
  .v2-mf-b { padding: 0; gap: 2px; }
  .v2-mf-lb, .v2-mf-go { display: none; }
  .v2-mf-t { font-family: var(--font); font-size: 14px; font-weight: 700; line-height: 1.3; }
  .v2-mf-p { font-size: 12.5px; line-height: 1.4; color: rgba(255,255,255,.86); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .v2-mc { display: block; }
  .v2-mg + .v2-mg { margin-top: 4px; }
  .v2-mg-h { display: none; }
  .v2-ml, .v2-mc--compact .v2-ml { display: flex; align-items: center; min-height: 44px; margin: 0; padding: 0 6px; border-radius: 8px; }
  .v2-ml b { font-size: 15px; font-weight: 500; color: var(--text2); }
  .v2-ml span, .v2-ml--logo .v2-lg { display: none; }
  .v2-ml--flag i { margin-right: 2px; }
  .v2-mp-side, .v2-mp-foot { display: none; }
  .v2-dr-pin { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; flex: none; padding: 12px 20px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--surface); }
  .v2-dr-pin .v2-btn { min-height: 48px; padding: 10px 12px; font-size: 14px; }
  .v2-dr-pin .v2-btn--primary { grid-column: 1 / -1; }
}
@media (max-width: 1099px) and (prefers-reduced-motion: reduce) { .v2-menu, .v2-hd.is-open .v2-menu { transition: none; } }
html.v2-locked, html.v2-locked body { overflow: hidden; }

/* phone bar: Call, WhatsApp, Book. Appears after the hero, hides at the closing band */
.v2-pbar { display: none; }
@media (max-width: 1099px) {
  .v2-pbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 390; display: flex; gap: 8px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--white) 95%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid var(--line); transform: translateY(110%); visibility: hidden; transition: transform 260ms var(--ease-out), visibility 0s linear 260ms; }
  .v2-pbar.is-on { transform: none; visibility: visible; transition: transform 260ms var(--ease-out), visibility 0s; }
  .v2-pbar .v2-btn { min-height: 48px; padding: 10px 14px; font-size: 14px; }
  .v2-pbar .v2-pbar-i { flex: none; width: 48px; padding: 0; }
  .v2-pbar .v2-btn--primary { flex: 1; }
  body { padding-bottom: calc(var(--v2-pbar-h) + env(safe-area-inset-bottom)); }
  /* the bar replaces the legacy floating WhatsApp and call buttons on phones */
  .wa-fab, .call-fab { display: none !important; }
  /* SalesIQ chat stays on phones. It rides with the bar, lifted above it, so it never
     covers the bar's buttons, the hero calls to action or the closing band. */
  .dmc-qc { opacity: 0; pointer-events: none; right: 16px; bottom: calc(var(--v2-pbar-h) + 12px + env(safe-area-inset-bottom)); }
  body.v2-pbar-on:not(.dmc-consent-open) .dmc-qc { opacity: 1; pointer-events: auto; }
  .dmc-qc .dmc-qc-toggle { width: 48px; height: 48px; }
  .dmc-qc .dmc-qc-toggle svg { width: 22px; height: 22px; }
  .dmc-qc .dmc-qc-items { bottom: 60px; right: 0; }
  body :is(#zsiq_float, .zsiq_floatmain, .zsiq-float, [data-id="zsalesiq"]) { bottom: calc(var(--v2-pbar-h) + 12px + env(safe-area-inset-bottom)) !important; }
  html.v2-locked .dmc-qc, html.v2-locked :is(#zsiq_float, .zsiq_floatmain, .zsiq-float, [data-id="zsalesiq"]) { opacity: 0 !important; pointer-events: none !important; }
}
@media (max-width: 1099px) and (prefers-reduced-motion: reduce) { .v2-pbar, .v2-pbar.is-on { transition: none; } }

/* reading bar sits under the header */
html.mo.mo-read .scroll-progress { position: fixed; left: 0; right: 0; top: var(--v2-hd-cur); z-index: 401; }

/* dark mode: white logo; logo chips stay light (identification marks keep their colours) */
@media (prefers-color-scheme: dark) {
  .v2-logo-l { display: none !important; }
  .v2-logo-d { display: block !important; }
  .v2-hd-bar::before { background: color-mix(in srgb, #15151e 90%, transparent); }
  .v2-mf-go { background: #fff; color: #09082A; }
}
@media print { .v2-hd, .v2-pbar { display: none !important; } body.v2-page #main { padding-top: 0; } }

/* ---------- ink band: one dark brand moment per page (commitments, proof) ---------- */
@layer v2.components {
  .v2-page .v2-sec--ink { position: relative; isolation: isolate; overflow: hidden; background: var(--grad-brand); color: #fff; }
  .v2-page .v2-sec--ink::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Cpath d='M28 0 56 28 28 56 0 28Z'/%3E%3Cpath d='M28 12 44 28 28 44 12 28Z'/%3E%3Ccircle cx='28' cy='28' r='3.5'/%3E%3C/g%3E%3C/svg%3E"); background-size: 56px 56px; opacity: .06; -webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 55%); mask-image: linear-gradient(90deg, #000 0%, transparent 55%); }
  .v2-page .v2-sec--ink::after { content: ""; position: absolute; z-index: -1; pointer-events: none; width: 560px; height: 560px; right: -160px; bottom: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(226,178,58,.22), rgba(226,178,58,0) 65%); }
  .v2-page .v2-sec--ink .v2-h2 { color: #fff; }
  .v2-page .v2-sec--ink .v2-lead { color: rgba(255,255,255,.82); }
  .v2-page .v2-sec--ink .v2-cm-note { color: rgba(255,255,255,.72); margin-top: var(--s5); max-width: 46ch; }
  .v2-page .v2-sec--ink .v2-quiet { color: #fff; text-decoration-color: #E2B23A; }
  .v2-page .v2-sec--ink .v2-quiet:hover { color: #F3D27A; }
  .v2-page .v2-sec--ink .v2-help-go { margin-top: var(--s5); }
  .v2-page .v2-sec--ink :focus-visible { outline-color: #fff; }
  .v2-page .v2-cm--cards { gap: var(--gap); counter-reset: none; margin: 0; }
  .v2-page .v2-cm--cards li { border-left: 0; padding: var(--s6) var(--s5) var(--s5); border-radius: var(--r-lg); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background var(--t-fast), border-color var(--t-fast), transform var(--t-fast); }
  .v2-page .v2-cm--cards li:hover { background: rgba(255,255,255,.11); border-color: rgba(226,178,58,.55); }
  .v2-page .v2-cm-n { display: block; margin-bottom: var(--s4); font-size: var(--fs-label); font-weight: 700; letter-spacing: .14em; color: #E2B23A; }
  .v2-page .v2-cm--cards .v2-h4 { color: #fff; }
  .v2-page .v2-cm--cards p { color: rgba(255,255,255,.80); }
  @media (min-width: 1024px) { .v2-page .v2-sec--ink .v2-ink-head { padding-right: var(--s7); } }
  @media (prefers-reduced-motion: reduce) { .v2-page .v2-cm--cards li { transition: none; } }
}

/* ---------- verdict panel: two-sided fit check in one card ---------- */
@layer v2.components {
  .v2-page .v2-vd { border-radius: var(--r-xl); background: var(--surface); border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(9,8,42,.04), 0 18px 40px -24px rgba(9,8,42,.18); overflow: hidden; }
  .v2-page .v2-vd-cols { display: grid; }
  @media (min-width: 768px) { .v2-page .v2-vd-cols { grid-template-columns: 1fr 1fr; } .v2-page .v2-vd-col + .v2-vd-col { border-left: 1px solid var(--line); } }
  @media (max-width: 767px) { .v2-page .v2-vd-col + .v2-vd-col { border-top: 1px solid var(--line); } }
  .v2-page .v2-vd-col { padding: var(--s6) var(--s6) var(--s6); }
  @media (min-width: 1024px) { .v2-page .v2-vd-col { padding: var(--s7) var(--s7) var(--s6); } }
  .v2-page .v2-vd-col .v2-h4 { display: flex; align-items: center; gap: var(--s3); }
  .v2-page .v2-vd-b { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--indigo); color: #fff; flex: none; }
  .v2-page .v2-vd-col--no .v2-vd-b { background: var(--gold-ink); }
  .v2-page .v2-vd-col ul { list-style: none; padding: 0; margin: var(--s5) 0 0; display: grid; gap: var(--s4); }
  .v2-page .v2-vd-col li { display: grid; grid-template-columns: 20px 1fr; gap: var(--s3); line-height: 1.55; color: var(--text2); }
  .v2-page .v2-vd-i { color: var(--indigo); padding-top: .3em; }
  .v2-page .v2-vd-col--no .v2-vd-i { color: var(--gold-ink); }
  .v2-page .v2-vd-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4) var(--s6); padding: var(--s5) var(--s6); background: var(--ivory); border-top: 1px solid var(--line); }
  @media (min-width: 1024px) { .v2-page .v2-vd-foot { padding: var(--s5) var(--s7); } }
  .v2-page .v2-vd-foot p { max-width: 64ch; color: var(--text2); line-height: 1.55; }
  .v2-page .v2-vd-foot p b { color: var(--text); font-weight: 600; }
}
@layer v2.components {
  .v2-page .v2-ink-head .v2-lead { margin-top: var(--s4); }
  @media (prefers-color-scheme: dark) { .v2-page .v2-vd-b { color: #0b0a22; } }
}

/* ---------- focus accents: very light colour that guides the eye to the one thing each section wants read ---------- */
@layer v2.tokens {
  :root { --fx-indigo: rgba(15,7,189,.055); --fx-indigo-2: rgba(15,7,189,.022); --fx-indigo-line: rgba(15,7,189,.20); --fx-gold: rgba(201,152,26,.10); --fx-gold-line: rgba(201,152,26,.55); --fx-mark: rgba(201,152,26,.24); }
  @media (prefers-color-scheme: dark) { :root { --fx-indigo: rgba(125,151,246,.09); --fx-indigo-2: rgba(125,151,246,.035); --fx-indigo-line: rgba(125,151,246,.30); --fx-gold: rgba(226,178,58,.09); --fx-gold-line: rgba(226,178,58,.55); --fx-mark: rgba(226,178,58,.22); } }
}
@layer v2.components {
  /* marker highlight on a key phrase (use once per section at most) */
  .v2-page mark.v2-hl { color: inherit; background: linear-gradient(180deg, transparent 58%, var(--fx-mark) 58%, var(--fx-mark) 92%, transparent 92%); padding: 0 .08em; border-radius: 2px; }
  /* hero trust items become soft chips */
  .v2-page .v2-intro .v2-trust { gap: 8px; }
  .v2-page .v2-intro .v2-trust li { padding: 6px 12px 6px 10px; border-radius: 999px; background: var(--fx-gold); color: var(--text2); }
  .v2-page .v2-intro .v2-trust li:first-child { background: var(--fx-indigo); }
  /* proof band: the public rating carries the trust, so it gets the accent */
  .v2-page .v2-pb-focus .v2-pb-n { color: var(--gold-ink); }
  .v2-page .v2-pb-focus .v2-pb-n::after { content: " \2605"; font-size: .45em; vertical-align: .9em; letter-spacing: 0; }
  /* route finder strip: the conversion point of the router */
  .v2-page .v2-rf { background: linear-gradient(90deg, var(--fx-indigo), var(--fx-indigo-2)); border-color: var(--fx-indigo-line); box-shadow: inset 4px 0 0 var(--indigo); }
  /* stakes: the takeaway line */
  .v2-page .v2-help { padding: var(--s4) var(--s5); border-radius: var(--r-md); background: var(--fx-gold); box-shadow: inset 3px 0 0 var(--fx-gold-line); }
  /* services: the lead card body reads as the start point */
  .v2-page .v2-lead-card .v2-card { background: linear-gradient(180deg, var(--surface) 0%, var(--surface) 55%, var(--fx-indigo-2) 100%); border-color: var(--fx-indigo-line); }
  /* path: timing note + CTA as one quiet panel */
  .v2-page .v2-path-end { padding: var(--s5) var(--s6); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); box-shadow: inset 4px 0 0 var(--gold); }
  /* fit panel: the "worth it" side is where a client recognises themselves */
  .v2-page .v2-vd-col--yes { background: linear-gradient(180deg, var(--fx-indigo), var(--fx-indigo-2)); }
  /* FAQ aside: a small ask card */
  .v2-page .v2-ask { margin-top: var(--s5); padding: var(--s5); border-radius: var(--r-lg); background: var(--fx-gold); border: 1px solid var(--fx-gold-line); }
  .v2-page .v2-ask p { font-size: 15px; line-height: 1.55; color: var(--text2); }
  .v2-page .v2-ask p b { color: var(--text); font-weight: 600; }
  .v2-page .v2-ask .v2-btn { margin-top: var(--s4); background: var(--surface); }
}
@layer v2.components { .v2-page .v2-faq-aside .v2-ask p { margin-top: 0; max-width: none; } }

/* ---------- homepage hero v3: full-bleed Creek photo, Google badge, advisor desk card ---------- */
@layer v2.components {
  .v2-page .v2-hz { position: relative; isolation: isolate; overflow: hidden; color: #fff; padding-block: var(--s9) var(--s9); background: #0b0a2a; }
  @media (min-width: 1024px) { .v2-page .v2-hz { min-height: min(720px, calc(100svh - var(--v2-hd-h, 76px))); display: grid; align-items: center; padding-block: var(--s10); } }
  .v2-page .v2-hz-bg { position: absolute; inset: 0; z-index: -2; }
  .v2-page .v2-hz-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 55%; transform-origin: 70% 60%; }
  .v2-page .v2-hz::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background:
      linear-gradient(90deg, rgba(9,8,42,.92) 0%, rgba(9,8,42,.78) 34%, rgba(15,7,189,.30) 62%, rgba(9,8,42,.10) 100%),
      linear-gradient(0deg, rgba(9,8,42,.55) 0%, rgba(9,8,42,0) 35%); }
  .v2-page .v2-hz::after { content: ""; position: absolute; z-index: -1; pointer-events: none; left: -10%; bottom: -40%; width: 60%; height: 90%; border-radius: 50%; background: radial-gradient(circle, rgba(226,178,58,.18), rgba(226,178,58,0) 62%); }
  @media (max-width: 1023px) { .v2-page .v2-hz::before { background: linear-gradient(180deg, rgba(9,8,42,.62) 0%, rgba(9,8,42,.86) 45%, rgba(9,8,42,.96) 100%); } }
  .v2-page .v2-hz-g { row-gap: var(--s7); align-items: center; }
  .v2-page .v2-hz .v2-h1 { color: #fff; margin-top: var(--s5); max-width: 15ch; }
  .v2-page .v2-hz .v2-accent { color: #F0C75A; }
  .v2-page .v2-hz .v2-deck { color: rgba(255,255,255,.88); margin-top: var(--s5); max-width: 40ch; }
  .v2-page .v2-hz mark.v2-hl { background: linear-gradient(180deg, transparent 60%, rgba(240,199,90,.38) 60%, rgba(240,199,90,.38) 92%, transparent 92%); color: #fff; }
  .v2-page .v2-hz .v2-cta-row { margin-top: var(--s6); }
  .v2-page .v2-hz .v2-quiet { color: #fff; text-decoration-color: #F0C75A; }
  .v2-page .v2-hz .v2-quiet:hover { color: #F3D27A; }
  .v2-page .v2-hz :focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
  .v2-page .v2-btn--gold, .v2-page .v2-btn--gold:visited { background: #F0C75A; color: #09082A; box-shadow: 0 10px 28px -10px rgba(240,199,90,.65); }
  .v2-page .v2-btn--gold:hover { background: #F6D57C; color: #09082A; transform: translateY(-1px); }
  .v2-page .v2-hz-lic { margin-top: var(--s6); font-size: var(--fs-small); color: rgba(255,255,255,.72); }
  /* Google rating badge */
  .v2-page .v2-gbadge { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 10px; border-radius: 999px; background: #fff; color: #09082A; text-decoration: none; box-shadow: 0 10px 30px -12px rgba(0,0,0,.55); transition: transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast); }
  .v2-page .v2-gbadge:hover { transform: translateY(-1px); box-shadow: 0 14px 34px -12px rgba(0,0,0,.6); }
  .v2-page .v2-g-logo { flex: none; }
  .v2-page .v2-gbadge-n { font-family: var(--serif); font-size: 20px; font-weight: 600; line-height: 1; }
  .v2-page .v2-gbadge-s { display: inline-flex; gap: 1px; color: #F5A623; }
  .v2-page .v2-gbadge-t { font-size: 13.5px; font-weight: 600; color: #3b3a55; padding-left: 10px; border-left: 1px solid #E3E1F2; text-decoration: underline; text-decoration-color: #C9C6E4; text-underline-offset: 3px; }
  @media (max-width: 400px) { .v2-page .v2-gbadge-t { font-size: 12.5px; padding-left: 8px; } .v2-page .v2-gbadge { gap: 8px; } }
  /* advisor desk card */
  .v2-page .v2-desk { padding: var(--s6); border-radius: var(--r-xl); background: rgba(255,255,255,.95); color: #09082A; box-shadow: 0 30px 60px -28px rgba(0,0,0,.6); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
  @media (min-width: 1024px) { .v2-page .v2-desk { margin-left: var(--s5); } }
  .v2-page .v2-desk-who { display: grid; grid-template-columns: 56px 1fr; column-gap: var(--s4); row-gap: var(--s3); align-items: center; }
  .v2-page .v2-desk-who img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px #fff, 0 0 0 5px #F0C75A; }
  .v2-page .v2-desk-who b { display: block; font-size: 16px; }
  .v2-page .v2-desk-who > span:not(.v2-desk-on) { font-size: 13.5px; color: #4a4966; line-height: 1.4; }
  .v2-page .v2-desk-on { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 8px; justify-self: start; padding: 5px 12px; border-radius: 999px; background: rgba(22,163,74,.10); color: #14532d; font-size: 12.5px; font-weight: 600; }
  .v2-page .v2-desk-on i { width: 8px; height: 8px; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 0 rgba(22,163,74,.5); animation: v2-ping 2.4s ease-out infinite; }
  @keyframes v2-ping { 0% { box-shadow: 0 0 0 0 rgba(22,163,74,.45); } 70%, 100% { box-shadow: 0 0 0 8px rgba(22,163,74,0); } }
  .v2-page .v2-desk-q { margin-top: var(--s5); padding-top: var(--s5); border-top: 1px solid #E3E1F2; font-size: var(--fs-label); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #7A5C0E; }
  .v2-page .v2-desk-go { list-style: none; padding: 0; margin: var(--s3) 0 0; display: grid; gap: 8px; }
  .v2-page .v2-desk-go a { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding: 12px 16px; border-radius: var(--r-md); background: #F5F4FC; border: 1px solid #E3E1F2; color: #09082A; font-size: 15px; font-weight: 600; text-decoration: none; transition: background var(--t-fast), border-color var(--t-fast), transform var(--t-fast) var(--ease-out); }
  .v2-page .v2-desk-go a svg { color: #0F07BD; flex: none; transition: transform var(--t-fast) var(--ease-out); }
  .v2-page .v2-desk-go a:hover { background: #fff; border-color: #0F07BD; }
  .v2-page .v2-desk-go a:hover svg { transform: translateX(3px); }
  .v2-page .v2-desk-go a:focus-visible { outline: 2px solid #0F07BD; outline-offset: 2px; }
  .v2-page .v2-desk-wa { margin-top: var(--s4); display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #0F07BD; text-decoration: underline; text-decoration-color: #C9C6E4; text-underline-offset: 4px; }
  .v2-page .v2-desk-wa:focus-visible { outline: 2px solid #0F07BD; }
  @media (prefers-color-scheme: dark) {
    .v2-page .v2-desk { background: rgba(23,23,36,.94); color: #fff; }
    .v2-page .v2-desk-who > span:not(.v2-desk-on) { color: rgba(255,255,255,.72); }
    .v2-page .v2-desk-who img { box-shadow: 0 0 0 3px #171724, 0 0 0 5px #E2B23A; }
    .v2-page .v2-desk-on { background: rgba(74,222,128,.12); color: #86efac; }
    .v2-page .v2-desk-q { border-top-color: #2a2a3a; color: #E9C766; }
    .v2-page .v2-desk-go a { background: #1d1d2b; border-color: #2a2a3a; color: #fff; }
    .v2-page .v2-desk-go a svg, .v2-page .v2-desk-wa { color: #9fb2fa; }
    .v2-page .v2-desk-go a:hover { background: #24243a; border-color: #7d97f6; }
  }
  /* motion: slow photo drift + staggered rise; off under reduced motion */
  @media (prefers-reduced-motion: no-preference) {
    .v2-page .v2-hz-bg img { animation: v2-drift 22s ease-out both; }
    @keyframes v2-drift { from { transform: scale(1.08) translate3d(-1.2%, 0, 0); } to { transform: scale(1) translate3d(0, 0, 0); } }
    .v2-page .v2-hz-txt > * { animation: v2-rise 560ms var(--ease-out) backwards; }
    .v2-page .v2-hz-txt > :nth-child(2) { animation-delay: 70ms; }
    .v2-page .v2-hz-txt > :nth-child(3) { animation-delay: 140ms; }
    .v2-page .v2-hz-txt > :nth-child(n+4) { animation-delay: 210ms; }
    .v2-page .v2-desk { animation: v2-rise 640ms var(--ease-out) 260ms backwards; }
  }
  @media (prefers-reduced-motion: reduce) { .v2-page .v2-desk-on i { animation: none; } }
}
@layer v2.components {
  .v2-page .v2-hz::before { background: linear-gradient(90deg, rgba(9,8,42,.92) 0%, rgba(9,8,42,.74) 36%, rgba(9,8,42,.28) 64%, rgba(9,8,42,.06) 100%), linear-gradient(0deg, rgba(9,8,42,.5) 0%, rgba(9,8,42,0) 32%); }
  @media (max-width: 1023px) {
    .v2-page .v2-hz { padding-top: var(--s10); }
    .v2-page .v2-hz-bg { bottom: auto; height: 520px; }
    .v2-page .v2-hz::before { background: linear-gradient(180deg, rgba(9,8,42,.30) 0%, rgba(9,8,42,.70) 30%, rgba(9,8,42,.94) 62%, #0b0a2a 520px); }
  }
}
@layer v2.components {
  @media (max-width: 1023px) {
    .v2-page .v2-hz::before { background: linear-gradient(180deg, rgba(11,10,42,.30) 0px, rgba(11,10,42,.62) 180px, rgba(11,10,42,.86) 340px, rgba(11,10,42,.97) 470px, #0b0a2a 520px, #0b0a2a 100%); }
    .v2-page .v2-hz::after { display: none; }
  }
}
@layer v2.components {
  .v2-page .v2-pb:has(> li:nth-child(3):last-child) { grid-template-columns: 1fr; }
  @media (min-width: 768px) { .v2-page .v2-pb:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 767px) { .v2-page .v2-pb:has(> li:nth-child(3):last-child) li { display: grid; grid-template-columns: 7.5rem 1fr; align-items: baseline; gap: var(--s4); } }
  .v2-page .v2-pb-lic .v2-pb-n::after { content: none; }
}
@layer v2.components { @media (max-width: 767px) { .v2-page .v2-pb:has(> li:nth-child(3):last-child) li { grid-template-columns: 9.5rem 1fr; } .v2-page .v2-pb-n { white-space: nowrap; } } }

/* ---------- Phase 2a addendum: narrow table column (short values such as an emirate or a date) ---------- */
@layer v2.components {
  .v2-page .v2-tbl th.v2-col-s { width: 13%; }
  @media (min-width: 768px) { .v2-page .v2-tbl { min-width: 680px; } }
  /* C10 stacked on phones: the labels keep the column colour key */
  @media (max-width: 767px) {
    .v2-page .v2-tbl--who.v2-tbl--stack td:nth-child(2)::before { color: var(--indigo); }
    .v2-page .v2-tbl--who.v2-tbl--stack td:nth-child(3)::before { color: var(--text3); }
    .v2-page .v2-tbl--stack .v2-go { display: inline; }
    .v2-page .v2-tbl--stack .v2-go svg { display: inline; margin-left: 6px; vertical-align: -1px; }
  }
}

/* ---------- liquid glass: translucent, saturated blur with a light specular rim.
   Used only on floating surfaces (header on scroll, mega panels, phone bar, hero badge and
   advisor card, photo-tile buttons). Never behind long body text. Opaque fallback when
   backdrop-filter is missing or the visitor asks for reduced transparency. ---------- */
:root {
  --glass-bg: rgba(255,255,255,.62);
  --glass-bg-strong: rgba(255,255,255,.80);
  --glass-blur: blur(22px) saturate(1.7);
  --glass-rim: inset 0 1px 0 rgba(255,255,255,.85), inset 0 0 0 1px rgba(255,255,255,.45), inset 0 -1px 0 rgba(15,7,189,.06);
  --glass-shadow: 0 1px 2px rgba(9,8,42,.06), 0 18px 48px -18px rgba(9,8,42,.28);
}
@media (prefers-color-scheme: dark) {
  :root {
    --glass-bg: rgba(24,24,38,.58);
    --glass-bg-strong: rgba(24,24,38,.78);
    --glass-rim: inset 0 1px 0 rgba(255,255,255,.14), inset 0 0 0 1px rgba(255,255,255,.08), inset 0 -1px 0 rgba(0,0,0,.25);
    --glass-shadow: 0 1px 2px rgba(0,0,0,.3), 0 18px 48px -18px rgba(0,0,0,.6);
  }
}
.v2-glass { background: var(--glass-bg); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); box-shadow: var(--glass-rim), var(--glass-shadow); }

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  /* header: glass once the page scrolls */
  .v2-hd.is-compact .v2-hd-bar::before { background: var(--glass-bg); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); box-shadow: inset 0 1px 0 rgba(255,255,255,.5); border-bottom-color: rgba(255,255,255,.35); }
  /* mega panels */
  @media (min-width: 1100px) { .v2-mp-in { background: var(--glass-bg-strong); -webkit-backdrop-filter: blur(28px) saturate(1.8); backdrop-filter: blur(28px) saturate(1.8); border-color: rgba(255,255,255,.5); box-shadow: var(--glass-rim), 0 30px 80px -30px rgba(9,8,42,.38); } }
  /* phone bar floats as a glass pill */
  @media (max-width: 1099px) {
    .v2-pbar { left: 10px; right: 10px; bottom: 10px; border-radius: 20px; border: 0; padding: 8px 8px calc(8px + env(safe-area-inset-bottom) * .5); background: var(--glass-bg); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); box-shadow: var(--glass-rim), var(--glass-shadow); }
  }
  /* hero: badge and advisor card */
  .v2-page .v2-hz .v2-gbadge { background: rgba(255,255,255,.86); -webkit-backdrop-filter: blur(14px) saturate(1.6); backdrop-filter: blur(14px) saturate(1.6); box-shadow: inset 0 1px 0 rgba(255,255,255,.9), inset 0 0 0 1px rgba(255,255,255,.5), 0 12px 30px -12px rgba(0,0,0,.55); }
  .v2-page .v2-desk { background: rgba(255,255,255,.80); -webkit-backdrop-filter: blur(26px) saturate(1.8); backdrop-filter: blur(26px) saturate(1.8); box-shadow: inset 0 1px 0 rgba(255,255,255,.9), inset 0 0 0 1px rgba(255,255,255,.55), 0 30px 60px -28px rgba(0,0,0,.6); }
  .v2-page .v2-desk-go a { background: rgba(255,255,255,.55); border-color: rgba(255,255,255,.7); }
  .v2-page .v2-desk-go a:hover { background: rgba(255,255,255,.92); }
  @media (prefers-color-scheme: dark) {
    .v2-page .v2-desk { background: rgba(20,20,34,.72); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), inset 0 0 0 1px rgba(255,255,255,.08), 0 30px 60px -28px rgba(0,0,0,.7); }
    .v2-page .v2-desk-go a { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.10); }
    .v2-page .v2-desk-go a:hover { background: rgba(255,255,255,.10); }
  }
  /* photo tiles: glass arrow buttons and photo chips */
  .v2-page .v2-rt-ar { background: rgba(255,255,255,.28); color: #fff; -webkit-backdrop-filter: blur(12px) saturate(1.6); backdrop-filter: blur(12px) saturate(1.6); box-shadow: inset 0 1px 0 rgba(255,255,255,.55), inset 0 0 0 1px rgba(255,255,255,.35); }
  .v2-page .v2-hx-chip { background: rgba(255,255,255,.78); -webkit-backdrop-filter: blur(16px) saturate(1.6); backdrop-filter: blur(16px) saturate(1.6); box-shadow: var(--glass-rim), var(--glass-shadow); }
}
@media (prefers-reduced-transparency: reduce) {
  .v2-glass, .v2-mp-in, .v2-pbar, .v2-page .v2-desk, .v2-page .v2-hz .v2-gbadge, .v2-page .v2-hx-chip { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background: var(--surface) !important; }
  .v2-page .v2-rt-ar { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background: rgba(255,255,255,.94) !important; color: #09082A !important; }
}
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .v2-page .v2-rt-ar { background: rgba(255,255,255,.72); color: #09082A; } }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .v2-hd.is-compact .v2-hd-bar::before { background: var(--glass-bg-strong); -webkit-backdrop-filter: blur(24px) saturate(1.8); backdrop-filter: blur(24px) saturate(1.8); }
  @media (min-width: 1100px) { .v2-mp-in { background: color-mix(in srgb, var(--surface) 88%, transparent); } }
}

/* ---------- mega panel motion: soft drop-in on open, quick lift-out on close, crossfade when switching ---------- */
@keyframes v2-mp-in { from { opacity: 0; transform: translateY(-10px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes v2-mp-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(-6px) scale(.99); } }
@keyframes v2-mp-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes v2-mp-col { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.v2-mp.is-closing { display: block; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
  .v2-mp-in { transform-origin: 50% 0; }
  .v2-mp.is-open .v2-mp-in { animation: v2-mp-in 280ms cubic-bezier(.2, .8, .2, 1) both; }
  .v2-mp.is-open.is-swap .v2-mp-in { animation: v2-mp-fade 180ms ease-out both; }
  .v2-mp.is-closing .v2-mp-in { animation: v2-mp-out 180ms cubic-bezier(.4, 0, 1, 1) both; }
  .v2-mp.is-open .v2-mp-in > * { animation: v2-mp-col 340ms cubic-bezier(.2, .8, .2, 1) both; }
  .v2-mp.is-open .v2-mp-in > :nth-child(2) { animation-delay: 40ms; }
  .v2-mp.is-open .v2-mp-in > :nth-child(3) { animation-delay: 80ms; }
  .v2-mp.is-open .v2-mp-in > :nth-child(4) { animation-delay: 120ms; }
  .v2-mp.is-open .v2-mp-in > :nth-child(n+5) { animation-delay: 160ms; }
  .v2-t svg { transition: transform 240ms cubic-bezier(.2, .8, .2, 1); }
}

/* ==========================================================================
   MOTION SYSTEM v2 (21 Oct 2026, owner: "every transition and click open/close super smooth,
   Apple quality, consistent across the whole site"). Appended, unlayered on purpose so it
   overrides the v2 layers and the legacy MOTION SYSTEM v1 timings. JS partners: nav-v2.js
   (mega panels, drawer, header naming for page transitions), dmc-v2.js (tabs pill, tab
   fade-through, eased slider), dmc.js (modals, consent, FAQ fallback).
   Durations (one scale, used everywhere)
     --dur-1 120ms  press, hover colour on small targets, focus ring
     --dur-2 200ms  hover lift, fades, every exit
     --dur-3 280ms  panels, tabs, accordions, small sheets
     --dur-4 360ms  sheets and dialogs entering, tab pill glide
     --dur-5 480ms  big sheet (drawer), image zoom
     --dur-6 640ms  page level: scroll reveal, hero entrance
   Curves
     --ease-std    cubic-bezier(.2,.8,.2,1)   standard ease-out (most things)
     --ease-emph   cubic-bezier(.32,.72,0,1)  emphasized / iOS sheet
     --ease-exit   cubic-bezier(.4,0,1,1)     leaving the screen
     --ease-sheet  critically damped spring as linear(), no overshoot (fallback --ease-emph)
     --ease-spring lightly underdamped spring, 2% overshoot, for scale-in only (fallback --ease-std)
   Rules: transform, opacity, filter only (accordions use the grid-template-rows 0fr/1fr
   technique, FAQ uses ::details-content + interpolate-size where supported). Every open has
   a matching close. Reduced motion: movement off, opacity only, nothing hidden.
   ========================================================================== */
:root {
  --dur-1: 120ms; --dur-2: 200ms; --dur-3: 280ms; --dur-4: 360ms; --dur-5: 480ms; --dur-6: 640ms;
  --ease-std: cubic-bezier(.2, .8, .2, 1);
  --ease-emph: cubic-bezier(.32, .72, 0, 1);
  --ease-exit: cubic-bezier(.4, 0, 1, 1);
  --ease-sheet: var(--ease-emph);
  --ease-spring: var(--ease-std);
  /* older names now read from the one scale */
  --ease: var(--ease-std);
  --ease-out: var(--ease-std);
  --t-fast: var(--dur-2); --t-base: var(--dur-3); --t-slow: var(--dur-6);
  --mo-ease: var(--ease-std);
  --mo-dur: var(--dur-6);
  --mo-dur-hero: 720ms;
  --mo-rise: 10px; --mo-rise-hero: 12px;
}
@supports (transition-timing-function: linear(0, 1)) {
  :root {
    --ease-sheet: linear(0, .055, .174, .31, .443, .56, .658, .738, .802, .851, .889, .918, .94, .956, .968, .977, .984, .989, .992, .995, .997, .998, .999, 1);
    --ease-spring: linear(0, .0554, .1824, .3368, .4911, .6297, .7454, .8365, .9045, .9525, .9844, 1.004, 1.0147, 1.0192, 1.0198, 1.0181, 1.0154, 1.0122, 1.0092, 1.0066, 1.0045, 1.0028, 1.0016, 1.0007, 1);
  }
}
@keyframes v2m-col { from { opacity: 0; transform: translateY(6px); } }
@keyframes v2m-item { from { opacity: 0; transform: translateX(16px); } }
@keyframes v2m-icon { from { opacity: 0; transform: rotate(-90deg) scale(.6); } }
@keyframes v2m-sheet-in { from { opacity: 0; transform: translateY(calc(100% + 16px)); } }
@keyframes v2m-sheet-out { to { opacity: 0; transform: translateY(calc(100% + 16px)); } }

/* ---------- smooth anchors, offset by the fixed header ---------- */
html:has(.v2-hd) { scroll-padding-top: calc(var(--v2-hd-hc, 64px) + 20px); }

/* ---------- buttons: one press, one hover ---------- */
.v2-btn { transition: transform var(--dur-2) var(--ease-std), background-color var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std), box-shadow var(--dur-2) var(--ease-std), translate var(--dur-3) var(--ease-std), outline-offset var(--dur-1) var(--ease-std); }
.v2-btn:active, .v2-btn--primary:active:hover { transform: scale(.98); transition-duration: var(--dur-1); }
.v2-sl-btn:active:not([disabled]), .v2-burger:active, .v2-dr-x:active, .v2-hd-wa:active { transform: scale(.94); }
.v2-burger, .v2-dr-x, .v2-hd-wa { transition: transform var(--dur-1) var(--ease-std), border-color var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std), translate var(--dur-3) var(--ease-std), outline-offset var(--dur-1) var(--ease-std); }

/* ---------- focus rings settle in (offset glides 5px to its resting value) ---------- */
@media (prefers-reduced-motion: no-preference) {
  /* resting offset only; the existing :focus-visible rules (higher specificity) set the final ring */
  :is(.v2-btn, .v2-t, .v2-burger, .v2-dr-x, .v2-hd-wa, .v2-pbar a) { outline-offset: 6px; }
}

/* ---------- header: compaction by transform (no height animation) ---------- */
.v2-t { transition: background-color var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std), translate var(--dur-3) var(--ease-std), outline-offset var(--dur-1) var(--ease-std); }
.v2-t svg { transition: transform var(--dur-3) var(--ease-std); }
.v2-hd-bar::after { transition: opacity var(--dur-3) var(--ease-std); }
.v2-hd-bar::before { transition: background-color var(--dur-3) var(--ease-std), border-color var(--dur-3) var(--ease-std); }
.v2-hd-logo { transition: translate var(--dur-3) var(--ease-std); }
@media (min-width: 1100px) {
  .v2-hd-bar { height: var(--v2-hd-h); transition: transform var(--dur-3) var(--ease-std); }
  .v2-hd.is-compact .v2-hd-bar { transform: translateY(calc(var(--v2-hd-hc) - var(--v2-hd-h))); }
  .v2-hd.is-compact :is(.v2-hd-logo, .v2-t, .v2-hd-wa, .v2-hd-cta) { translate: 0 calc((var(--v2-hd-h) - var(--v2-hd-hc)) / 2); }
  .v2-hd-logo img, .v2-hd.is-compact .v2-hd-logo img { height: 30px; transform-origin: 0 50%; transition: scale var(--dur-3) var(--ease-std); }
  .v2-hd.is-compact .v2-hd-logo img { scale: .8667; }
  html.mo.mo-read .scroll-progress { top: var(--v2-hd-h); translate: 0 0; transition: translate var(--dur-3) var(--ease-std); }
  html.mo.mo-read:has(.v2-hd.is-compact) .scroll-progress { translate: 0 calc(var(--v2-hd-hc) - var(--v2-hd-h)); }
}
@media (min-width: 1100px) and (max-width: 1199px) {
  .v2-hd-logo img, .v2-hd.is-compact .v2-hd-logo img { height: 26px; scale: none; }
}

/* ---------- mega panels (desktop): drop in, lift out, crossfade on switch; all transitions,
   so a reversal mid-flight continues from where it is. nav-v2.js mounts (.is-mounted), then
   adds .is-open on the next frame; close removes .is-open and unmounts on transitionend. ---------- */
.v2-hd.is-ready .v2-mp.is-mounted { display: block; }
@media (min-width: 1100px) {
  .v2-mp .v2-mp-in { animation: none; }
  .v2-mp.is-open .v2-mp-in, .v2-mp.is-open.is-swap .v2-mp-in, .v2-mp.is-closing .v2-mp-in { animation: none; }
  .v2-mp.is-open .v2-mp-in > *, .v2-mp.is-open .v2-mp-in > :nth-child(n) { animation: none; }
}
@media (min-width: 1100px) and (prefers-reduced-motion: no-preference) {
  .v2-hd.is-ready .v2-mp .v2-mp-in { opacity: 0; transform: translateY(-8px) scale(.985); transform-origin: 50% 0; transition: opacity var(--dur-2) var(--ease-exit), transform var(--dur-2) var(--ease-exit); }
  .v2-hd.is-ready .v2-mp.is-open .v2-mp-in { opacity: 1; transform: none; transition: opacity var(--dur-3) var(--ease-std), transform var(--dur-4) var(--ease-emph); }
  /* switching panels: no drop, a short crossfade in place */
  .v2-hd.is-ready .v2-mp.is-swap .v2-mp-in { transform: none; transition: opacity var(--dur-2) var(--ease-std); }
  .v2-hd.is-ready .v2-mp.is-swap-out .v2-mp-in { transform: none; transition: opacity var(--dur-1) var(--ease-exit); }
  .v2-hd.is-ready .v2-mp.is-open:not(.is-swap) .v2-mp-in > * { animation: v2m-col var(--dur-4) var(--ease-std) both; }
  .v2-hd.is-ready .v2-mp.is-open:not(.is-swap) .v2-mp-in > :nth-child(2) { animation-delay: 30ms; }
  .v2-hd.is-ready .v2-mp.is-open:not(.is-swap) .v2-mp-in > :nth-child(3) { animation-delay: 60ms; }
  .v2-hd.is-ready .v2-mp.is-open:not(.is-swap) .v2-mp-in > :nth-child(n+4) { animation-delay: 90ms; }
  .v2-mf img { transition: transform var(--dur-5) var(--ease-std); }
  .v2-mf:hover img { transform: scale(1.03); }
}

/* ---------- mobile drawer: a sheet from the right on the iOS sheet curve, a dimmed backdrop,
   items arriving in a short cascade; accordion sections expand with grid rows 0fr to 1fr ---------- */
@media (max-width: 1099px) {
  .v2-hd.is-ready .v2-mp.is-mounted, .v2-hd.is-ready .v2-mp.is-open, .v2-hd.is-ready .v2-mp.is-closing { display: grid; }
  .v2-mp { grid-template-rows: 1fr; }
  .v2-mp > .v2-wrap { min-height: 0; }
  .v2-mp .v2-mp-in, .v2-mp.is-open .v2-mp-in, .v2-mp.is-closing .v2-mp-in, .v2-mp.is-open .v2-mp-in > * { animation: none; }
}
@media (max-width: 1099px) and (prefers-reduced-motion: no-preference) {
  .v2-menu { transition: transform var(--dur-4) var(--ease-emph), visibility 0s linear var(--dur-4); }
  .v2-hd.is-open .v2-menu { transition: transform var(--dur-5) var(--ease-sheet), visibility 0s; }
  .v2-hd::before { content: ""; position: fixed; inset: 0; z-index: -1; background: rgba(9,8,42,.42); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity var(--dur-4) var(--ease-std), visibility 0s linear var(--dur-4); }
  .v2-hd.is-open::before { opacity: 1; visibility: visible; transition: opacity var(--dur-4) var(--ease-std), visibility 0s; }
  .v2-hd.is-open .v2-nav-l > li, .v2-hd.is-open .v2-dr-pin { animation: v2m-item var(--dur-5) var(--ease-std) both; }
  .v2-hd.is-open .v2-nav-l > li:nth-child(1) { animation-delay: 60ms; }
  .v2-hd.is-open .v2-nav-l > li:nth-child(2) { animation-delay: 85ms; }
  .v2-hd.is-open .v2-nav-l > li:nth-child(3) { animation-delay: 110ms; }
  .v2-hd.is-open .v2-nav-l > li:nth-child(4) { animation-delay: 135ms; }
  .v2-hd.is-open .v2-nav-l > li:nth-child(5) { animation-delay: 160ms; }
  .v2-hd.is-open .v2-nav-l > li:nth-child(6) { animation-delay: 185ms; }
  .v2-hd.is-open .v2-nav-l > li:nth-child(n+7) { animation-delay: 210ms; }
  .v2-hd.is-open .v2-dr-pin { animation-name: v2m-col; animation-delay: 160ms; }
  .v2-hd.is-ready .v2-mp { grid-template-rows: 0fr; transition: grid-template-rows var(--dur-3) var(--ease-std); }
  .v2-hd.is-ready .v2-mp.is-open { grid-template-rows: 1fr; transition: grid-template-rows var(--dur-4) var(--ease-emph); }
  .v2-hd.is-ready .v2-mp > .v2-wrap { overflow: hidden; }
  .v2-hd.is-ready .v2-mp.is-settled > .v2-wrap { overflow: visible; }   /* focus rings never clipped once open */
  .v2-hd.is-ready .v2-mp .v2-mp-in { opacity: 0; transform: translateY(-6px); transition: opacity var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std); }
  .v2-hd.is-ready .v2-mp.is-open .v2-mp-in { opacity: 1; transform: none; transition: opacity var(--dur-3) var(--ease-std) 40ms, transform var(--dur-4) var(--ease-emph); }
  .v2-hd.is-animating .v2-menu { will-change: transform; }
}

/* ---------- phone bar and chat launcher ---------- */
@media (max-width: 1099px) {
  .v2-pbar { opacity: 0; transform: translateY(calc(100% + 24px)); transition: transform var(--dur-3) var(--ease-exit), opacity var(--dur-2) var(--ease-exit), visibility 0s linear var(--dur-3); }
  .v2-pbar.is-on { opacity: 1; transform: none; transition: transform var(--dur-5) var(--ease-sheet), opacity var(--dur-3) var(--ease-std), visibility 0s; }
  .dmc-qc { transform: translateY(10px) scale(.9); transition: opacity var(--dur-2) var(--ease-exit), transform var(--dur-2) var(--ease-exit); }
  body.v2-pbar-on:not(.dmc-consent-open) .dmc-qc { transform: none; transition: opacity var(--dur-3) var(--ease-std) 80ms, transform var(--dur-4) var(--ease-spring) 80ms; }
  html.v2-locked .dmc-qc { transform: translateY(10px) scale(.9); }
}
.dmc-qc-item { transition: opacity var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-spring); }
.dmc-qc[data-open="false"] .dmc-qc-item { transition: opacity var(--dur-2) var(--ease-exit), transform var(--dur-2) var(--ease-exit); transition-delay: 0s; }
.dmc-qc-lbl { transition: opacity var(--dur-2) var(--ease-std); }
.dmc-qc-toggle { transition: background-color var(--dur-2) var(--ease-std), box-shadow var(--dur-2) var(--ease-std), transform var(--dur-2) var(--ease-std); }
.dmc-qc-toggle:active { transform: scale(.94); transition-duration: var(--dur-1); }
@media (prefers-reduced-motion: no-preference) { .dmc-qc-toggle svg { animation: v2m-icon var(--dur-3) var(--ease-spring) both; } }

/* ---------- consent banner: rises on the sheet curve, slides away when a choice is made ---------- */
.dmc-consent { animation: v2m-sheet-in var(--dur-5) var(--ease-sheet) both; }
.dmc-consent.is-leaving { animation: v2m-sheet-out var(--dur-3) var(--ease-exit) both; pointer-events: none; }
.dmc-consent button { transition: transform var(--dur-1) var(--ease-std), background-color var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std); }
.dmc-consent button:active { transform: scale(.97); }

/* ---------- dialogs (booking, qualify): backdrop and blur fade, panel scales in on a light
   spring, fades out on close; on phones it is a bottom sheet. Entry uses @starting-style, so a
   browser without it simply shows the dialog; dmc.js adds .is-closing and removes on end. ---------- */
.dmc-modal, .dmc-modal-panel { animation: none; }
.dmc-modal-bd { opacity: 1; transition: opacity var(--dur-3) var(--ease-std); }
.dmc-modal-panel { opacity: 1; transform: none; transition: opacity var(--dur-2) var(--ease-std), transform var(--dur-4) var(--ease-spring); }
.dmc-modal.is-closing { pointer-events: none; }
.dmc-modal.is-closing .dmc-modal-bd { opacity: 0; transition: opacity var(--dur-2) var(--ease-exit); }
.dmc-modal.is-closing .dmc-modal-panel { opacity: 0; transform: scale(.97); transition: opacity var(--dur-2) var(--ease-exit), transform var(--dur-2) var(--ease-exit); }
@starting-style {
  .dmc-modal-bd { opacity: 0; }
  .dmc-modal-panel { opacity: 0; transform: translateY(10px) scale(.96); }
}
@media (max-width: 640px) {
  .dmc-modal-panel { transition: opacity var(--dur-2) var(--ease-std), transform var(--dur-5) var(--ease-sheet); }
  .dmc-modal.is-closing .dmc-modal-panel { opacity: 1; transform: translateY(100%); transition: transform var(--dur-3) var(--ease-exit); }
  @starting-style { .dmc-modal-panel { opacity: 1; transform: translateY(100%); } }
}

/* ---------- FAQ (native details, JSON-LD untouched): height + opacity both ways.
   Chromium: ::details-content with interpolate-size, pure CSS and interruptible.
   Elsewhere dmc.js animates the details height (WAAPI) and keeps [open] until it ends. ---------- */
.faq-icon { transition: transform var(--dur-3) var(--ease-std), background-color var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std); }
.v2-page .v2-fq-pm::before, .v2-page .v2-fq-pm::after { transition: transform var(--dur-3) var(--ease-std); }
.v2-page .v2-fq-pm { transition: background-color var(--dur-2) var(--ease-std), transform var(--dur-1) var(--ease-std); }
details.faq-item > summary.faq-q { transition: border-color var(--dur-2) var(--ease-std), background-color var(--dur-2) var(--ease-std); }
@supports (interpolate-size: allow-keywords) and selector(::details-content) {
  @media (prefers-reduced-motion: no-preference) {
    details.faq-item { interpolate-size: allow-keywords; }
    details.faq-item > .faq-a { display: block; }
    details.faq-item::details-content { block-size: 0; overflow-y: clip; opacity: 0; transition: block-size var(--dur-3) var(--ease-std), opacity var(--dur-2) var(--ease-exit), content-visibility var(--dur-3) allow-discrete; }
    details.faq-item[open]::details-content { block-size: auto; opacity: 1; transition: block-size var(--dur-4) var(--ease-emph), opacity var(--dur-3) var(--ease-std) 60ms, content-visibility var(--dur-4) allow-discrete; }
  }
}
details.faq-item.is-anim { overflow: hidden; }

/* ---------- tabs: a pill that glides between tabs; panels fade through (dmc-v2.js) ---------- */
.v2-page .is-tabs .v2-tabp:not([hidden]) { animation: none; }
.v2-page .v2-tab { transition: color var(--dur-2) var(--ease-std), background-color var(--dur-2) var(--ease-std), box-shadow var(--dur-2) var(--ease-std), transform var(--dur-1) var(--ease-std); }
.v2-page .v2-tabs-l.has-ind { position: relative; isolation: isolate; }
.v2-page .v2-tabs-l.has-ind .v2-tab[aria-selected="true"] { background: transparent; box-shadow: none; }
.v2-page .v2-tabs-ind { position: absolute; left: 0; top: 4px; bottom: 4px; z-index: -1; width: 0; border-radius: 999px; background: var(--surface); box-shadow: 0 2px 10px rgba(9,8,42,.12); pointer-events: none; }
.v2-page .v2-tabs-ind.is-live { transition: transform var(--dur-4) var(--ease-spring), width var(--dur-4) var(--ease-spring); }
.v2-page .v2-tab:active { transform: scale(.97); transition-duration: var(--dur-1); }

/* ---------- slider buttons ---------- */
.v2-page .v2-sl-btn { transition: border-color var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std), opacity var(--dur-2) var(--ease-std), transform var(--dur-1) var(--ease-std), outline-offset var(--dur-1) var(--ease-std); }

/* ---------- cards: 2px lift with a soft shadow, slow photo zoom; touch screens never stick ---------- */
.v2-page .v2-card { transition: transform var(--dur-2) var(--ease-std), box-shadow var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std), outline-offset var(--dur-1) var(--ease-std); }
.v2-page .v2-rt { transition: transform var(--dur-2) var(--ease-std), box-shadow var(--dur-2) var(--ease-std), outline-offset var(--dur-1) var(--ease-std); }
.v2-page :is(.v2-card .v2-ph img, .v2-rt img) { transition: transform var(--dur-5) var(--ease-std); }
.v2-page .v2-rt-ar { transition: transform var(--dur-3) var(--ease-std), background-color var(--dur-2) var(--ease-std); }
@media (hover: hover) {
  .v2-page .v2-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-card-h); }
  .v2-page .v2-rt:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -22px rgba(9,8,42,.45); }
  .v2-page :is(.v2-card:hover .v2-ph img, .v2-rt:hover img) { transform: scale(1.03); }
  .v2-page :is(.v2-card, .v2-rt):active { transform: translateY(0) scale(.99); transition-duration: var(--dur-1); }
}
@media (hover: none) {
  .v2-page .v2-card:hover, .v2-page .v2-rt:hover { transform: none; }
  .v2-page :is(.v2-card:hover .v2-ph img, .v2-rt:hover img) { transform: none; }
  .v2-page .v2-rt:hover .v2-rt-ar { transform: none; }
}
:root:has(> head > script[src*="/assets/js/motion.js"]) #main .ps-card.ps-card { transition: transform var(--dur-2) var(--ease-std), box-shadow var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
:root:has(> head > script[src*="/assets/js/motion.js"]) #main .ps-card.ps-card .ps-media img { transition: transform var(--dur-5) var(--ease-std); }
@media (hover: hover) {
  :root:has(> head > script[src*="/assets/js/motion.js"]) #main .ps-card.ps-card:hover { transform: translateY(-2px); }
  :root:has(> head > script[src*="/assets/js/motion.js"]) #main .ps-card.ps-card:hover .ps-media img { transform: scale(1.03); }
}

/* ---------- links: underline grows in from the left (UI links), thickens (prose links) ---------- */
:is(.fx-col > a, .v2-mp-foot a, a.v2-mp-side-n) { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 calc(100% - 3px) / 0 1px no-repeat; transition: color var(--dur-2) var(--ease-std), background-size var(--dur-3) var(--ease-std); }
.fx-col > a { background-position: 0 calc(100% - 5px); }
:is(.fx-col > a, .v2-mp-foot a, a.v2-mp-side-n):hover { text-decoration: none; background-size: 100% 1px; }
.v2-page .v2-bc a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: color var(--dur-2) var(--ease-std), background-size var(--dur-3) var(--ease-std); }
.v2-page .v2-bc a:hover { text-decoration: none; background-size: 100% 1px; }
:is(.section, .art-content, .v2-page #main) :is(p, li, dd) > a:not([class]) { text-decoration-thickness: 1px; transition: color var(--dur-2) var(--ease-std), text-decoration-thickness var(--dur-2) var(--ease-std), text-underline-offset var(--dur-2) var(--ease-std); }
:is(.section, .art-content, .v2-page #main) :is(p, li, dd) > a:not([class]):hover { text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* ---------- page transitions: hold the header still, cross-fade the page. The header is named
   only while a transition is active (a named element is a backdrop root, which would cut the
   glass blur off), and never while a panel or the drawer is open (it then fades with the page). ---------- */
@media (prefers-reduced-motion: no-preference) {
  ::view-transition-old(root) { animation: mo-vt-out var(--dur-2) var(--ease-exit) both; }
  ::view-transition-new(root) { animation: mo-vt-in var(--dur-4) var(--ease-std) both; }
  ::view-transition-group(v2-hd) { animation-duration: var(--dur-3); animation-timing-function: var(--ease-std); }
  html:active-view-transition .v2-hd:not(.is-open):not(:has(.v2-mp.is-mounted)) { view-transition-name: v2-hd; }
}

/* ---------- reduced motion: no movement anywhere; opacity only, short ---------- */
@media (prefers-reduced-motion: reduce) {
  .v2-btn:active, .v2-btn--primary:active:hover, .v2-sl-btn:active:not([disabled]), .v2-burger:active, .v2-dr-x:active, .v2-hd-wa:active, .dmc-qc-toggle:active, .dmc-consent button:active, .v2-page .v2-tab:active { transform: none; }
  .v2-hd-bar, .v2-hd-logo, .v2-hd-logo img, .v2-t, .v2-t svg, .v2-btn, .v2-hd-wa, .v2-burger { transition-property: background-color, border-color, color, opacity; }
  .v2-hd.is-compact .v2-hd-bar, .v2-hd.is-compact :is(.v2-hd-logo, .v2-t, .v2-hd-wa, .v2-hd-cta) { transition: none; }
  .v2-pbar, .v2-pbar.is-on { transform: none; transition: opacity var(--dur-2) linear, visibility 0s linear var(--dur-2); }
  .v2-pbar.is-on { transition: opacity var(--dur-2) linear, visibility 0s; }
  .dmc-qc, body.v2-pbar-on:not(.dmc-consent-open) .dmc-qc, html.v2-locked .dmc-qc { transform: none; transition: opacity var(--dur-2) linear; }
  .dmc-qc-item, .dmc-qc[data-open="false"] .dmc-qc-item { transition: opacity var(--dur-2) linear; }
  .dmc-consent, .dmc-consent.is-leaving { animation: none; }
  .dmc-modal-panel, .dmc-modal.is-closing .dmc-modal-panel { transform: none; transition: opacity var(--dur-2) linear; }
  .dmc-modal.is-closing .dmc-modal-panel { opacity: 0; }
  @starting-style { .dmc-modal-panel { transform: none; } }
  .v2-page .v2-tabs-ind.is-live { transition: none; }
  .v2-page :is(.v2-card, .v2-rt, .v2-card .v2-ph img, .v2-rt img, .v2-rt-ar) { transition: box-shadow var(--dur-2) linear; }
  .v2-page :is(.v2-card, .v2-rt):hover, .v2-page :is(.v2-card:hover .v2-ph img, .v2-rt:hover img), .v2-mf:hover img { transform: none; }
  .faq-icon, .v2-page .v2-fq-pm::before, .v2-page .v2-fq-pm::after { transition: none; }
}
/* ========================== /MOTION SYSTEM v2 ========================== */
/* MOTION SYSTEM v2 addendum: the tab pill stays visible in dark mode (surface and tab-track share a
   colour there); the chat launcher steps aside while a dialog is up and returns when it closes */
@media (prefers-color-scheme: dark) { .v2-page .v2-tabs-ind { background: color-mix(in srgb, var(--text) 12%, var(--surface)); box-shadow: 0 2px 10px rgba(0,0,0,.35); } }
body:has(.dmc-modal:not(.is-closing)) .dmc-qc { opacity: 0 !important; pointer-events: none !important; transform: translateY(10px) scale(.9); transition: opacity var(--dur-2) var(--ease-exit), transform var(--dur-2) var(--ease-exit); }
@media (prefers-reduced-motion: reduce) { body:has(.dmc-modal:not(.is-closing)) .dmc-qc { transform: none; } }
/* MOTION SYSTEM v2 addendum: glass at rest only. A moving backdrop-filter is re-blurred every frame
   (measured: 8 to 10 frames over 20ms per mega-panel open without a GPU, 0 with the blur held back).
   While a panel drops in or lifts out it is a near-opaque sheet; the blur switches on once it has
   settled (nav-v2.js adds .is-settled), which at 88% fill reads as the same surface. */
@media (min-width: 1100px) and (prefers-reduced-motion: no-preference) {
  @supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .v2-hd.is-ready .v2-mp:not(.is-settled) .v2-mp-in { -webkit-backdrop-filter: none; backdrop-filter: none; background: color-mix(in srgb, var(--surface) 97%, transparent); }
  }
}

/* ==========================================================================
   HOMEPAGE B "Cinematic Dubai" (owner pick, 21 Oct 2026)
   Scoped to body.v2-home .ob (index.html only); no other page carries these classes.
   Dark bands use fixed brand navy; light bands use the flipping tokens. Gold appears only as
   thin rules, star icons, small labels, the word marker and focus accents.
   ========================================================================== */
body.v2-home .ob { --ob-ink: #0a0c2e; --ob-ink-2: #15117a; --ob-gold: #F0C75A; --ob-lilac: #c9cdff; --ob-r: 20px; }

/* ---------- shared type ---------- */
body.v2-home .ob .ob-h2 { font-family: var(--serif); font-weight: 500; font-size: clamp(2rem, 1.35rem + 2.3vw, 3.5rem); line-height: 1.06; letter-spacing: -.022em; color: var(--text); text-wrap: balance; }
body.v2-home .ob .ob-lead { margin-top: var(--s4); max-width: 58ch; font-size: var(--fs-deck); line-height: 1.55; color: var(--text3); }
body.v2-home .ob .ob-h4 { font-family: var(--font); font-size: 18px; line-height: 1.3; font-weight: 600; color: var(--text); text-wrap: balance; }
body.v2-home .ob .ob-head-row { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s5) var(--s7); margin-bottom: var(--head-gap); }
body.v2-home .ob .ob-head-row > div:first-child { max-width: 760px; }

/* dark contexts: hero, routes, photo bands, closing */
body.v2-home .ob :is(.ob-hero, .ob-dark, .ob-band, .ob-close) { color: rgba(255,255,255,.84); }
body.v2-home .ob :is(.ob-hero, .ob-dark, .ob-band, .ob-close) :is(.ob-h2, .ob-h4) { color: #fff; }
body.v2-home .ob :is(.ob-dark, .ob-band) .ob-lead { color: rgba(255,255,255,.82); }
body.v2-home .ob :is(.ob-hero, .ob-dark, .ob-band) mark.v2-hl { color: #fff; background: linear-gradient(180deg, transparent 60%, rgba(240,199,90,.36) 60%, rgba(240,199,90,.36) 92%, transparent 92%); }
body.v2-home .ob :is(.ob-hero, .ob-dark, .ob-band, .ob-close) .v2-quiet { color: #fff; text-decoration-color: var(--ob-gold); }
body.v2-home .ob :is(.ob-hero, .ob-dark, .ob-band, .ob-close) .v2-quiet:hover { color: var(--ob-lilac); }
body.v2-home .ob :is(.ob-hero, .ob-dark, .ob-band, .ob-close) :focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
body.v2-home .ob .ob-dark .v2-sl-btn { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.34); color: #fff; }
body.v2-home .ob .ob-dark .v2-sl-btn:hover:not([disabled]) { border-color: #fff; background: rgba(255,255,255,.14); color: #fff; }

/* ---------- B0 hero ---------- */
body.v2-home .ob .ob-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--ob-ink); display: grid; grid-template-rows: 1fr auto; min-height: clamp(660px, calc(100svh - var(--v2-hd-h, 76px)), 940px); }
body.v2-home .ob .ob-hero-bg { position: absolute; inset: 0; z-index: -2; }
body.v2-home .ob .ob-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 58% 52%; transform-origin: 58% 55%; }
body.v2-home .ob .ob-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(10,12,46,.84) 0%, rgba(10,12,46,.58) 34%, rgba(10,12,46,.10) 60%, rgba(10,12,46,0) 100%),
    linear-gradient(0deg, rgba(10,12,46,.88) 0%, rgba(10,12,46,.30) 20%, rgba(10,12,46,0) 36%); }
body.v2-home .ob .ob-hero-in { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: end; padding-top: clamp(40px, 8vh, 112px); padding-bottom: var(--s7); }
body.v2-home .ob .ob-hero-txt { grid-column: 1 / span 8; grid-row: 1; }
body.v2-home .ob .ob-h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(2.75rem, 1.35rem + 4.7vw, 5.5rem); line-height: .98; letter-spacing: -.032em; color: #fff; max-width: 12.5ch; text-wrap: balance; }
body.v2-home .ob .ob-h1 span { color: #dfe2ff; background: linear-gradient(100deg, #ffffff 0%, #e6e8ff 45%, #b9c1ff 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
body.v2-home .ob .ob-deck { margin-top: var(--s5); max-width: 42ch; font-size: clamp(1.0625rem, .96rem + .45vw, 1.375rem); line-height: 1.5; color: rgba(255,255,255,.9); }
body.v2-home .ob .ob-hero .v2-cta-row { margin-top: var(--s6); }
body.v2-home .ob .ob-hero-cover { margin-top: var(--s5); font-size: var(--fs-small); color: rgba(255,255,255,.74); }

/* floating glass Google chip */
body.v2-home .ob .ob-gchip { grid-column: 9 / span 4; grid-row: 1; justify-self: end; align-self: start; display: grid; gap: 6px; padding: 16px 22px 16px 18px; border-radius: var(--ob-r); text-decoration: none; color: #fff;
  background: rgba(10,12,46,.46); border: 1px solid rgba(255,255,255,.26); box-shadow: 0 24px 48px -24px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.18);
  -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3); transition: border-color var(--t-fast), background var(--t-fast); }
body.v2-home .ob .ob-gchip:hover { border-color: rgba(201,205,255,.75); background: rgba(10,12,46,.6); }
body.v2-home .ob .ob-gchip-top { display: inline-flex; align-items: center; gap: 10px; }
body.v2-home .ob .ob-gchip-top > svg { padding: 3px; border-radius: 50%; background: #fff; box-sizing: content-box; width: 22px; height: 22px; }
body.v2-home .ob .ob-gchip-n { font-family: var(--serif); font-size: 34px; font-weight: 500; line-height: 1; }
body.v2-home .ob .ob-gchip-s { display: inline-flex; gap: 1px; color: #F7B733; }
body.v2-home .ob .ob-gchip-t { font-size: 14px; font-weight: 600; color: #fff; text-decoration: underline; text-decoration-color: var(--ob-gold); text-decoration-thickness: 2px; text-underline-offset: 5px; }

/* credits bar: the three record facts */
body.v2-home .ob .ob-credits-w { padding-bottom: var(--s7); }
body.v2-home .ob .ob-credits { list-style: none; margin: 0; padding: 20px 28px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); border-radius: var(--ob-r);
  background: rgba(10,12,46,.42); border: 1px solid rgba(255,255,255,.14); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
body.v2-home .ob .ob-credits li { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: var(--s4); font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.8); }
body.v2-home .ob .ob-credits li + li { padding-left: var(--s5); border-left: 1px solid rgba(255,255,255,.16); }
body.v2-home .ob .ob-credits-n { position: relative; padding-top: 12px; font-family: var(--serif); font-size: clamp(1.75rem, 1.4rem + 1vw, 2.375rem); font-weight: 500; line-height: 1; color: #fff; white-space: nowrap; }
body.v2-home .ob .ob-credits-n::before { content: ""; position: absolute; left: 0; top: 0; width: 18px; height: 2px; border-radius: 2px; background: var(--ob-gold); }

@media (max-width: 1023px) {
  body.v2-home .ob .ob-hero { min-height: 0; }
  body.v2-home .ob .ob-hero-in { padding-top: var(--s8); row-gap: var(--s5); }
  body.v2-home .ob .ob-hero-txt { grid-column: 1 / -1; grid-row: 2; }
  body.v2-home .ob .ob-gchip { grid-column: 1 / -1; grid-row: 1; justify-self: start; grid-template-columns: auto auto; align-items: center; column-gap: 14px; padding: 10px 16px 10px 12px; border-radius: 999px; }
  body.v2-home .ob .ob-gchip-n { font-size: 24px; }
  body.v2-home .ob .ob-gchip-t { font-size: 13px; padding-left: 14px; border-left: 1px solid rgba(255,255,255,.24); }
  body.v2-home .ob .ob-hero::before { background: linear-gradient(180deg, rgba(10,12,46,.18) 0%, rgba(10,12,46,.42) 26%, rgba(10,12,46,.74) 50%, rgba(10,12,46,.94) 72%, rgba(10,12,46,.98) 100%); }
  body.v2-home .ob .ob-credits { grid-template-columns: 1fr; padding: 8px 20px; gap: 0; }
  body.v2-home .ob .ob-credits li { grid-template-columns: 6.5rem 1fr; padding: 14px 0; }
  body.v2-home .ob .ob-credits li + li { padding-left: 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
}
@media (max-width: 420px) {
  body.v2-home .ob .ob-gchip { column-gap: 10px; padding-right: 14px; }
  body.v2-home .ob .ob-gchip-s svg { width: 13px; height: 13px; }
  body.v2-home .ob .ob-gchip-t { font-size: 12.5px; padding-left: 10px; }
}

/* ---------- B1 routes rail ---------- */
body.v2-home .ob .ob-routes { padding-block: var(--sec-y); background: radial-gradient(60% 70% at 85% 0%, rgba(63,95,224,.16), rgba(63,95,224,0) 70%), var(--ob-ink); overflow: clip; }
body.v2-home .ob .ob-rail { --rail-pad: max(var(--gut), calc((100% - var(--w-page)) / 2)); display: grid; grid-auto-flow: column; grid-auto-columns: clamp(248px, 74vw, 320px); gap: var(--gap); margin: 0; padding: 4px var(--rail-pad) 12px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--rail-pad); scrollbar-width: none; overscroll-behavior-x: contain; }
body.v2-home .ob .ob-rail::-webkit-scrollbar { display: none; }
body.v2-home .ob .ob-rail:focus-visible { outline: 3px solid #fff; outline-offset: -3px; }
body.v2-home .ob .ob-rail > li { scroll-snap-align: start; display: flex; }
@media (min-width: 1024px) { body.v2-home .ob .ob-rail { grid-auto-columns: calc((min(100%, var(--w-page) + 2 * var(--gut)) - 2 * var(--gut) - 3 * var(--gap)) / 3.4); } }
body.v2-home .ob .ob-route { position: relative; isolation: isolate; display: block; width: 100%; aspect-ratio: 3 / 4; border-radius: var(--ob-r); overflow: hidden; color: #fff; text-decoration: none; background: #1a1850; }
body.v2-home .ob .ob-route img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out); }
body.v2-home .ob .ob-route::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10,12,46,.18) 0%, rgba(10,12,46,0) 26%, rgba(10,12,46,.35) 52%, rgba(10,12,46,.94) 100%); }
body.v2-home .ob a.ob-route:hover img { transform: scale(1.05); }
body.v2-home .ob .ob-route-n { position: absolute; top: 18px; left: 18px; padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .14em; color: var(--ob-gold); background: rgba(10,12,46,.55); border: 1px solid rgba(255,255,255,.18); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
body.v2-home .ob .ob-route-ar { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: background var(--t-fast), color var(--t-fast); }
body.v2-home .ob a.ob-route:hover .ob-route-ar { background: #fff; color: var(--ob-ink); }
body.v2-home .ob .ob-route-b { position: absolute; left: 22px; right: 22px; bottom: 22px; display: grid; gap: 8px; }
body.v2-home .ob .ob-route-t { font-family: var(--serif); font-size: clamp(1.375rem, 1.2rem + .5vw, 1.625rem); font-weight: 500; line-height: 1.12; color: #fff; text-wrap: balance; }
body.v2-home .ob .ob-route-l { font-size: 14.5px; line-height: 1.5; color: rgba(255,255,255,.86); }
body.v2-home .ob a.ob-route:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
body.v2-home .ob .ob-route--rf { background: radial-gradient(80% 60% at 100% 0%, rgba(125,151,246,.30), rgba(125,151,246,0) 70%), linear-gradient(160deg, #2a1fd6 0%, #15117a 45%, #0a0c2e 100%); border: 1px solid rgba(201,205,255,.38); }
body.v2-home .ob .ob-route--rf::after { content: none; }
body.v2-home .ob .ob-route--rf .ob-route-b { gap: 12px; }
body.v2-home .ob .ob-route--rf .v2-btn { justify-self: start; margin-top: 6px; }
body.v2-home .ob .ob-rf-links { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 4px; font-size: 13.5px; }
body.v2-home .ob .ob-rf-links a { color: #fff; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(240,199,90,.8); text-underline-offset: 4px; }

/* ---------- photo bands (stakes, path) ---------- */
body.v2-home .ob .ob-band { position: relative; isolation: isolate; overflow: hidden; background: var(--ob-ink); }
body.v2-home .ob .ob-band-ph { position: absolute; inset: -7% 0; z-index: -2; }
body.v2-home .ob .ob-band-ph img { width: 100%; height: 100%; object-fit: cover; }
body.v2-home .ob .ob-band::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
body.v2-home .ob .ob-band-head { position: relative; }
body.v2-home .ob .ob-band-head > * { max-width: 760px; }

/* B2 stakes */
body.v2-home .ob .ob-stakes { padding-block: var(--sec-y); }
body.v2-home .ob .ob-stakes::before { background: linear-gradient(180deg, rgba(10,12,46,.80) 0%, rgba(10,12,46,.34) 36%, rgba(10,12,46,.50) 62%, rgba(10,12,46,.92) 100%); }
body.v2-home .ob .ob-stakes .ob-band-ph img { object-position: 50% 60%; }
body.v2-home .ob .ob-told { list-style: none; margin-top: clamp(40px, 9vw, 150px); display: grid; gap: var(--gap); grid-template-columns: 1fr; }
@media (min-width: 700px) { body.v2-home .ob .ob-told { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { body.v2-home .ob .ob-told { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
body.v2-home .ob .ob-told li { display: flex; flex-direction: column; gap: 10px; padding: var(--s5); border-radius: var(--ob-r); background: rgba(10,12,46,.62); border: 1px solid rgba(255,255,255,.16); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); }
body.v2-home .ob .ob-told-h { display: block; padding-bottom: var(--s4); margin-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 14px; line-height: 1.45; font-style: italic; color: rgba(255,255,255,.74); }
body.v2-home .ob .ob-told-h b { display: block; margin-bottom: 4px; font-style: normal; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ob-gold); }
body.v2-home .ob .ob-told p { font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.84); }

/* ---------- B3 services tiles ---------- */
body.v2-home .ob .ob-svc { padding-block: var(--sec-y); background-image: var(--bg-wash); }
body.v2-home .ob .ob-tiles { list-style: none; display: grid; gap: var(--gap); grid-template-columns: 1fr; }
body.v2-home .ob .ob-tiles > li { display: flex; min-width: 0; }
@media (min-width: 640px) {
  body.v2-home .ob .ob-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 240px; }
  body.v2-home .ob .ob-tile--lead, body.v2-home .ob .ob-tile--wide { grid-column: span 2; }
  body.v2-home .ob .ob-tile--lead { grid-row: span 2; }
}
@media (min-width: 1024px) {
  body.v2-home .ob .ob-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 250px; }
}
body.v2-home .ob .ob-tile { position: relative; isolation: isolate; display: block; width: 100%; min-height: 220px; border-radius: var(--ob-r); overflow: hidden; color: #fff; text-decoration: none; background: #15134a; }
@media (max-width: 639px) { body.v2-home .ob .ob-tile { aspect-ratio: 16 / 10; min-height: 0; } body.v2-home .ob .ob-tile--lead .ob-tile { aspect-ratio: 4 / 5; } }
body.v2-home .ob .ob-tile img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out); }
body.v2-home .ob .ob-tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10,12,46,0) 18%, rgba(10,12,46,.45) 50%, rgba(10,12,46,.92) 100%); }
body.v2-home .ob .ob-tile:hover img { transform: scale(1.05); }
body.v2-home .ob .ob-tile:focus-visible { outline: 3px solid var(--indigo); outline-offset: 3px; }
body.v2-home .ob .ob-tile-b { position: absolute; left: 20px; right: 20px; bottom: 18px; display: grid; gap: 6px; }
body.v2-home .ob .ob-tile-t { font-family: var(--serif); font-size: 22px; font-weight: 500; line-height: 1.15; color: #fff; }
body.v2-home .ob .ob-tile-l { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.88); }
body.v2-home .ob .ob-tile--lead .ob-tile-b { left: 28px; right: 28px; bottom: 28px; gap: 10px; }
body.v2-home .ob .ob-tile--lead .ob-tile-t { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); }
body.v2-home .ob .ob-tile--lead .ob-tile-l { font-size: 15.5px; max-width: 40ch; }
body.v2-home .ob .ob-tile-chip { justify-self: start; padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; color: var(--ob-ink); background: #fff; box-shadow: inset 0 -2px 0 var(--ob-gold); }
body.v2-home .ob .ob-tile-go { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 14.5px; font-weight: 600; color: #fff; text-decoration: underline; text-decoration-color: var(--ob-gold); text-decoration-thickness: 2px; text-underline-offset: 5px; }

/* ---------- B4 path ---------- */
body.v2-home .ob .ob-path { padding-bottom: var(--sec-y); background: var(--ivory); }
body.v2-home .ob .ob-path-band { padding-top: var(--sec-y); padding-bottom: clamp(120px, 14vw, 200px); min-height: clamp(380px, 46vw, 560px); }
body.v2-home .ob .ob-path-band::before { background: linear-gradient(90deg, rgba(10,12,46,.88) 0%, rgba(10,12,46,.62) 40%, rgba(10,12,46,.18) 75%, rgba(10,12,46,.08) 100%), linear-gradient(0deg, rgba(10,12,46,.55) 0%, rgba(10,12,46,0) 40%); }
body.v2-home .ob .ob-path-band .ob-band-ph img { object-position: 50% 55%; }
body.v2-home .ob .ob-steps { position: relative; z-index: 1; list-style: none; margin-top: calc(-1 * clamp(80px, 10vw, 140px)); display: grid; gap: var(--gap); grid-template-columns: 1fr; counter-reset: none; }
@media (min-width: 640px) { body.v2-home .ob .ob-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { body.v2-home .ob .ob-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
body.v2-home .ob .ob-steps li { display: flex; flex-direction: column; gap: 10px; padding: var(--s6) var(--s5) var(--s5); border-radius: var(--ob-r); background: var(--surface); border: 1px solid var(--line); box-shadow: 0 28px 56px -32px rgba(10,12,46,.5); }
body.v2-home .ob .ob-steps li p { font-size: 15px; line-height: 1.6; color: var(--text2); }
body.v2-home .ob .ob-steps .v2-chip { margin-top: auto; align-self: flex-start; }
body.v2-home .ob .ob-step-n { position: relative; padding-top: 12px; font-family: var(--serif); font-size: 44px; line-height: 1; font-weight: 500; color: var(--indigo); }
body.v2-home .ob .ob-step-n::before { content: ""; position: absolute; left: 0; top: 0; width: 18px; height: 2px; border-radius: 2px; background: var(--gold); }
body.v2-home .ob .ob-path-end { margin-top: var(--s6); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4) var(--s6); padding: var(--s5) var(--s6); border-radius: var(--r-lg); background: linear-gradient(90deg, var(--fx-indigo), var(--fx-indigo-2)); box-shadow: inset 4px 0 0 var(--indigo); }
body.v2-home .ob .ob-path-end p { max-width: 66ch; font-size: 15.5px; line-height: 1.6; color: var(--text2); }

/* ---------- B5 commitments (shared ink band) ---------- */
body.v2-home .ob .ob-hold { background: radial-gradient(55% 80% at 0% 0%, rgba(63,95,224,.26), rgba(63,95,224,0) 70%), linear-gradient(150deg, #15117a 0%, #0f0c55 38%, #0a0c2e 78%); }
body.v2-home .ob .ob-hold .v2-cm-n { font-family: var(--serif); font-size: 30px; letter-spacing: 0; font-weight: 500; }
body.v2-home .ob .ob-hold .v2-cm--cards li { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); }

/* ---------- B6 reviews: one large quote at a time ---------- */
body.v2-home .ob .ob-rv { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--sec-y); background: var(--ivory); }
body.v2-home .ob .ob-rv-g { display: grid; gap: var(--s7); align-items: center; }
@media (min-width: 1024px) { body.v2-home .ob .ob-rv-g { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--s8); } }
body.v2-home .ob .ob-rv-side .v2-sl-btns { margin-top: var(--s6); }
body.v2-home .ob .ob-rv-all { margin-top: var(--s5); }
body.v2-home .ob .ob-quotes { list-style: none; margin: 0; padding: 0 0 6px; display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
body.v2-home .ob .ob-quotes::-webkit-scrollbar { display: none; }
body.v2-home .ob .ob-quotes:focus-visible { outline: 3px solid var(--indigo); outline-offset: 4px; border-radius: 24px; }
body.v2-home .ob .ob-quotes > li { scroll-snap-align: start; display: flex; }
body.v2-home .ob figure.ob-q { width: 100%; margin: 0; display: flex; flex-direction: column; justify-content: space-between; gap: var(--s6); padding: clamp(28px, 4vw, 56px); border-radius: 24px; background: var(--surface); border: 1px solid var(--line); box-shadow: inset 4px 0 0 var(--gold); position: relative; overflow: hidden; }
body.v2-home .ob figure.ob-q::before { content: none; display: none; /* inline gold marks already open and close the quote */ --was: "\201C"; position: absolute; right: clamp(16px, 3vw, 40px); top: 18px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(120px, 11vw, 180px); line-height: .7; color: var(--fx-mark); pointer-events: none; }
body.v2-home .ob .ob-q > * { position: relative; }
body.v2-home .ob .ob-q blockquote { margin: 0; padding: 0; border: 0; quotes: none; }
body.v2-home .ob .ob-q blockquote p { font-family: var(--serif); font-size: clamp(1.5rem, 1.12rem + 1.35vw, 2.25rem); line-height: 1.24; font-weight: 500; letter-spacing: -.012em; color: var(--text); text-wrap: pretty; }
body.v2-home .ob .ob-q blockquote p::before { content: "\201C"; margin-right: .06em; color: var(--gold-ink); }
body.v2-home .ob .ob-q blockquote p::after { content: "\201D"; color: var(--gold-ink); }
body.v2-home .ob .ob-q figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; padding-top: var(--s5); border-top: 1px solid var(--line); font-size: 14px; line-height: 1.4; color: var(--text3); }
body.v2-home .ob .ob-q-av { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; color: var(--indigo); background: color-mix(in srgb, var(--indigo) 14%, var(--surface)); }
body.v2-home .ob .ob-q-who b { display: block; font-size: 15.5px; font-weight: 600; color: var(--text); }
body.v2-home .ob .ob-q-src { margin-left: auto; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 13px; font-weight: 600; }
body.v2-home .ob .ob-q-st { color: var(--gold-ink); letter-spacing: 1px; }
body.v2-home .ob .ob-q-src a { font-weight: 600; }
@media (max-width: 599px) { body.v2-home .ob .ob-q-src { margin-left: 58px; } }

/* ---------- B7 fit ---------- */
body.v2-home .ob .ob-fit { padding-block: var(--sec-y); background-image: var(--bg-wash); }
body.v2-home .ob .ob-fit-g { display: grid; gap: var(--s7); }
@media (min-width: 1024px) { body.v2-home .ob .ob-fit-g { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s8); align-items: stretch; } }
body.v2-home .ob .ob-fit-ph { position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 16 / 10; background: var(--lilac-200); }
@media (min-width: 1024px) { body.v2-home .ob .ob-fit-ph { aspect-ratio: auto; min-height: 100%; } }
body.v2-home .ob .ob-fit-ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
body.v2-home .ob .ob-fit-head { margin-bottom: var(--s6); }

/* ---------- B9 closing split band ---------- */
body.v2-home .ob .ob-close { display: grid; grid-template-columns: 1fr; background: var(--ob-ink); }
@media (min-width: 900px) { body.v2-home .ob .ob-close { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); min-height: 560px; } }
body.v2-home .ob .ob-close-ph { position: relative; min-height: 400px; overflow: hidden; background: #1a1850; }
body.v2-home .ob .ob-close-ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 55% 18%; }
body.v2-home .ob .ob-close-ph::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,12,46,0) 60%, rgba(10,12,46,.9) 100%); }
@media (min-width: 900px) { body.v2-home .ob .ob-close-ph::after { background: linear-gradient(90deg, rgba(10,12,46,0) 62%, rgba(10,12,46,.85) 100%); } }
body.v2-home .ob .ob-close-panel { position: relative; isolation: isolate; display: flex; align-items: center; padding: clamp(40px, 6vw, 96px) var(--gut); background: radial-gradient(60% 70% at 100% 100%, rgba(125,151,246,.22), rgba(125,151,246,0) 70%), radial-gradient(50% 60% at 0% 0%, rgba(63,95,224,.22), rgba(63,95,224,0) 70%), linear-gradient(135deg, #15117a 0%, #0a0c2e 72%); }
body.v2-home .ob .ob-close-in { max-width: 600px; }
@media (min-width: 900px) { body.v2-home .ob .ob-close-panel { padding-left: clamp(40px, 6vw, 96px); } }
body.v2-home .ob .ob-close-who { font-size: 14.5px; color: rgba(255,255,255,.8); }
body.v2-home .ob .ob-close-who b { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ob-gold); }
body.v2-home .ob .ob-close .ob-h2 { margin-top: var(--s4); }
body.v2-home .ob .ob-close-p { margin-top: var(--s4); font-size: var(--fs-deck); line-height: 1.55; color: rgba(255,255,255,.88); max-width: 50ch; }
body.v2-home .ob .ob-close-on { display: inline-flex; align-items: center; gap: 10px; margin-top: var(--s5); padding: 6px 14px; border-radius: 999px; font-size: 13.5px; font-weight: 600; color: #a7f3c4; background: rgba(74,222,128,.12); border: 1px solid rgba(74,222,128,.28); }
body.v2-home .ob .ob-close-on i { width: 8px; height: 8px; border-radius: 50%; background: #4ade80; }
body.v2-home .ob .ob-close .v2-cta-row { margin-top: var(--s6); }
body.v2-home .ob .ob-btn-glass, body.v2-home .ob .ob-btn-glass:visited { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.42); }
body.v2-home .ob .ob-btn-glass:hover { background: rgba(255,255,255,.16); color: #fff; border-color: #fff; }

/* ---------- motion (all off under reduced motion) ---------- */
@keyframes ob-drift { from { transform: scale(1.09) translate3d(-1.4%, 0, 0); } to { transform: scale(1) translate3d(0, 0, 0); } }
@keyframes ob-float { from { transform: translateY(0); } to { transform: translateY(-8px); } }
@keyframes ob-rise { from { opacity: .001; transform: translateY(14px); } }
@keyframes ob-par { from { transform: translateY(-5%); } to { transform: translateY(5%); } }
@keyframes ob-ping { 0% { box-shadow: 0 0 0 0 rgba(74,222,128,.5); } 70%, 100% { box-shadow: 0 0 0 9px rgba(74,222,128,0); } }
@media (prefers-reduced-motion: no-preference) {
  body.v2-home .ob .ob-hero-bg img { animation: ob-drift 24s var(--ease-out) both; }
  body.v2-home .ob .ob-hero-txt > * { animation: ob-rise 640ms var(--ease-out) backwards; }
  body.v2-home .ob .ob-hero-txt > :nth-child(2) { animation-delay: 90ms; }
  body.v2-home .ob .ob-hero-txt > :nth-child(3) { animation-delay: 180ms; }
  body.v2-home .ob .ob-hero-txt > :nth-child(4) { animation-delay: 260ms; }
  body.v2-home .ob .ob-credits { animation: ob-rise 700ms var(--ease-out) 340ms backwards; }
  @media (min-width: 1024px) { body.v2-home .ob .ob-gchip { animation: ob-rise 700ms var(--ease-out) 420ms backwards, ob-float 5.5s ease-in-out 1.2s infinite alternate; } }
  body.v2-home .ob .ob-close-on i { animation: ob-ping 2.4s ease-out infinite; }
  @supports (animation-timeline: view()) {
    body.v2-home .ob .ob-band-ph img { animation: ob-par linear both; animation-timeline: view(); animation-range: cover; }
  }
}
@media (prefers-reduced-motion: reduce) {
  body.v2-home .ob .ob-route img, body.v2-home .ob .ob-tile img { transition: none; }
  body.v2-home .ob a.ob-route:hover img, body.v2-home .ob .ob-tile:hover img { transform: none; }
}

/* ---------- phones: keep the page short without hiding anything ---------- */
@media (max-width: 699px) {
  body.v2-home .ob .ob-told { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 86%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gut); scrollbar-width: none; overscroll-behavior-x: contain; padding-bottom: 6px; }
  body.v2-home .ob .ob-told::-webkit-scrollbar { display: none; }
  body.v2-home .ob .ob-told > li { scroll-snap-align: start; }
  body.v2-home .ob .ob-told:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
  body.v2-home .ob .ob-steps li { padding: var(--s5); }
  body.v2-home .ob .ob-step-n { font-size: 34px; }
  body.v2-home .ob .ob-fit-ph { aspect-ratio: 16 / 9; }
  body.v2-home .ob .ob-tiles > li:not(.ob-tile--lead) .ob-tile { aspect-ratio: 16 / 9; }
}

@media (prefers-color-scheme: dark) { body.v2-home .ob .ob-fit-ph img { filter: brightness(.82) contrast(1.05); } }

/* ---------- director review fixes ---------- */
body.v2-home .ob .ob-steps .v2-chip { white-space: nowrap; max-width: 100%; padding-inline: 10px; font-size: 11.5px; }
@media (max-width: 699px) {
  body.v2-home .ob .ob-stakes::before { background: linear-gradient(180deg, rgba(10,12,46,.90) 0%, rgba(10,12,46,.78) 40%, rgba(10,12,46,.62) 62%, rgba(10,12,46,.94) 100%); }
  body.v2-home .ob .ob-path-band::before { background: linear-gradient(180deg, rgba(10,12,46,.86) 0%, rgba(10,12,46,.70) 55%, rgba(10,12,46,.55) 100%); }
}
@media (max-width: 1099px) {
  body.v2-home .ob .ob-tile::after { background: linear-gradient(180deg, rgba(10,12,46,.05) 0%, rgba(10,12,46,.55) 42%, rgba(10,12,46,.95) 100%); }
}
body.v2-home .ob .ob-tile-t, body.v2-home .ob .ob-tile-l { text-shadow: 0 1px 12px rgba(10,12,46,.55); }
body.v2-home .ob .ob-fit-ph img { object-position: 68% 50%; }
@media (max-width: 639px) { body.v2-home .ob .ob-tiles > li:not(.ob-tile--lead) .ob-tile { aspect-ratio: 2 / 1; min-height: 176px; } }
@media (max-width: 479px) { body.v2-home .ob .ob-close-on { align-items: flex-start; border-radius: 14px; padding: 8px 14px; line-height: 1.4; } body.v2-home .ob .ob-close-on i { flex: none; margin-top: 6px; } }

/* colour pass (owner, 21 Oct): gold is a highlighter only; large accents are white, lilac or brand indigo */
body.v2-home .ob .ob-btn-white, body.v2-home .ob .ob-btn-white:visited { background: #fff; color: #0f07bd; border-color: #fff; box-shadow: 0 12px 30px -12px rgba(0,0,0,.55); }
body.v2-home .ob .ob-btn-white:hover { background: #eef0ff; color: #0f07bd; border-color: #eef0ff; transform: translateY(-1px); }
body.v2-home .ob .ob-btn-white:focus-visible { outline: 3px solid var(--ob-gold); outline-offset: 3px; }
body.v2-home .ob .ob-hold.v2-sec--ink { background: radial-gradient(55% 80% at 0% 0%, rgba(63,95,224,.26), rgba(63,95,224,0) 70%), linear-gradient(150deg, #15117a 0%, #0f0c55 38%, #0a0c2e 78%); }
body.v2-home .ob .ob-hold.v2-sec--ink::after { background: radial-gradient(circle, rgba(125,151,246,.22), rgba(125,151,246,0) 70%); }
body.v2-home .ob .ob-hold .v2-cm-n { color: #fff; }
body.v2-home .ob .ob-band-ph img { filter: saturate(.82); }
@media (prefers-color-scheme: dark) { body.v2-home .ob .ob-step-n { color: #aab8ff; } }
body.v2-home .ob .v2-ask { background: var(--fx-indigo); border-color: var(--fx-indigo-line); box-shadow: inset 3px 0 0 var(--gold); }
/* band photos: cool the warm haze so every dark band reads brand navy */
body.v2-home .ob .ob-path-band .ob-band-ph img { filter: saturate(.3) contrast(1.06) brightness(.92); }
body.v2-home .ob .ob-stakes .ob-band-ph img { filter: saturate(.55); }
@media (min-width: 700px) { body.v2-home .ob .ob-path-band::before { background: linear-gradient(90deg, rgba(10,12,46,.90) 0%, rgba(10,12,46,.66) 40%, rgba(21,17,122,.30) 75%, rgba(21,17,122,.22) 100%), linear-gradient(0deg, rgba(10,12,46,.55) 0%, rgba(10,12,46,0) 40%); } }
/* ========================== /HOMEPAGE B ========================== */
/* MOTION SYSTEM v2 addendum: dialog backdrops dim and move without blur, then the 3px blur eases in
   once the dialog has landed (dmc.js adds .is-settled about 400ms after opening; removed on close) */
@media (prefers-reduced-motion: no-preference) {
  .dmc-modal:not(.is-settled) .dmc-modal-bd { -webkit-backdrop-filter: none; backdrop-filter: none; }
  .dmc-modal.is-settled .dmc-modal-bd { transition: opacity var(--dur-3) var(--ease-std), -webkit-backdrop-filter var(--dur-2) var(--ease-std), backdrop-filter var(--dur-2) var(--ease-std); }
}

/* ---------- homepage B round 3: compact reviews, "two ways to start", FAQ polish ---------- */
body.v2-home .ob figure.ob-q { padding: clamp(24px, 2.4vw, 36px); gap: var(--s5); border-radius: 20px; }
body.v2-home .ob .ob-q blockquote p { font-size: clamp(1.0625rem, .98rem + .38vw, 1.3125rem); line-height: 1.5; letter-spacing: 0; }
@media (min-width: 1024px) { body.v2-home .ob .ob-quotes { grid-auto-columns: calc((100% - var(--gap)) / 2); } }
body.v2-home .ob .ob-two { padding-block: var(--sec-y); background-image: var(--bg-wash); }
body.v2-home .ob .ob-two-head { max-width: 720px; margin-bottom: var(--head-gap); }
body.v2-home .ob .ob-two-head .ob-lead { margin-top: var(--s3); }
body.v2-home .ob .ob-two-g { display: grid; gap: var(--gap); }
@media (min-width: 768px) { body.v2-home .ob .ob-two-g { grid-template-columns: 1fr 1fr; } }
body.v2-home .ob .ob-two-c { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; padding: clamp(28px, 3vw, 44px); border-radius: 24px; }
body.v2-home .ob .ob-two-c--call { background: var(--grad-brand); color: #fff; box-shadow: 0 30px 60px -32px rgba(15,7,189,.55); }
body.v2-home .ob .ob-two-c--call::after { content: ""; position: absolute; z-index: -1; right: -120px; top: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.14), rgba(255,255,255,0) 65%); }
body.v2-home .ob .ob-two-c--msg { background: var(--surface); border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(9,8,42,.04), 0 18px 40px -26px rgba(9,8,42,.2); }
body.v2-home .ob .ob-two-ic { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; margin-bottom: var(--s5); background: rgba(255,255,255,.14); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.25); }
body.v2-home .ob .ob-two-c--msg .ob-two-ic { background: var(--fx-indigo); color: var(--indigo); box-shadow: none; }
body.v2-home .ob .ob-two-c h3 { font-family: var(--serif); font-size: var(--fs-h3); font-weight: 500; line-height: 1.2; color: inherit; }
body.v2-home .ob .ob-two-c--msg h3 { color: var(--text); }
body.v2-home .ob .ob-two-when { margin-top: var(--s4); font-size: var(--fs-label); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #E9C766; }
body.v2-home .ob .ob-two-c--msg .ob-two-when { color: var(--gold-ink); }
body.v2-home .ob .ob-two-c ul { list-style: none; padding: 0; margin: var(--s3) 0 var(--s6); display: grid; gap: var(--s3); }
body.v2-home .ob .ob-two-c li { display: grid; grid-template-columns: 20px 1fr; gap: var(--s3); line-height: 1.55; color: rgba(255,255,255,.88); }
body.v2-home .ob .ob-two-c li > span { padding-top: .3em; color: #E9C766; }
body.v2-home .ob .ob-two-c--msg li { color: var(--text2); }
body.v2-home .ob .ob-two-c--msg li > span { color: var(--indigo); }
body.v2-home .ob .ob-two-c .v2-btn { margin-top: auto; align-self: flex-start; }
body.v2-home .ob .ob-faq .v2-faq-aside .v2-h2 { max-width: 12ch; }
body.v2-home .ob .ob-faq .faq-a a { color: var(--indigo); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 3px; }
body.v2-home .ob figure.ob-q { justify-content: flex-start; }
body.v2-home .ob .ob-q figcaption { margin-top: auto; }
body.v2-home .ob .ob-quotes > li { align-items: stretch; }
body.v2-home .ob .ob-quotes { align-items: start; }
body.v2-home .ob .ob-quotes > li { align-items: flex-start; }
body.v2-home .ob figure.ob-q { height: auto; min-height: 0; }

/* ==========================================================================
   SERVICE PAGES v1 (22 Oct 2026): "the advisor's brief", scoped to body.v2-svc
   Approved on /golden-visa/. Body: <body class="v2-page v2-svc">, plus
   /assets/js/svc.js (defer) for the navigator, filter and checker.
   Shared with the homepage: header, footer, phone bar, tokens, type, buttons,
   focus accents (--fx-*), FAQ, breadcrumb. Own to service pages (prefix sv-):
     .sv-hero.sv-hero--ph > .sv-hero-g > .sv-hero-t + figure.sv-hph (dl.sv-hfacts)
     nav.sv-nav[data-sv-nav]   sticky section navigator, mobile sheet, progress
     .sv-brief  At a glance (.sv-ag.quick-answer) + .sv-dec callout
     .sv-sec / .sv-ruled / .sv-head (.v2-h2 + .sv-head-r)   section rhythm
     .sv-prime > .sv-pc   three photo route cards     .sv-more / .sv-filt / .sv-grid  filterable tiles
     .v2-sec--ink .sv-ck-g > form.sv-ck[data-sv-ck]    checker (one ink band per page)
     .sv-ben-g / .sv-bg   grouped icon benefits beside a photo
     .sv-led-g / .sv-led / .sv-wait   expectation ledger with photo
     .sv-tl (+ .sv-tl-h, .sv-tl-foot)  annotated timeline
     .sv-clients .sv-pf-g > figure.sv-feat.rev-card + ul.sv-tm   reviews
     .sv-faq  FAQ section     .sv-rel  related decisions     .sv-call-s > .sv-call  closing
     .sv-mx  decision matrix (table that stacks below 1024)
   Colours only from flipping tokens; transitions only from --dur-* / --ease-*.
   ========================================================================== */
@layer v2.components {
  body.v2-svc { --sv-y: 48px; --sv-nav-h: 48px; }
  @media (min-width: 768px) { body.v2-svc { --sv-y: 64px; } }
  @media (min-width: 1024px) { body.v2-svc { --sv-y: 80px; --sv-nav-h: 56px; } }

  /* ---------- section rhythm: ruled, not banded ---------- */
  body.v2-svc .sv-sec { padding-block: var(--sv-y); scroll-margin-top: calc(var(--v2-hd-cur) + var(--sv-nav-h)); }
  body.v2-svc .sv-sec > .v2-wrap { position: relative; }
  body.v2-svc .sv-ruled > .v2-wrap::before { content: ""; position: absolute; left: var(--gut); right: var(--gut); top: calc(-1 * var(--sv-y)); height: 1px; background: var(--line); }
  body.v2-svc .sv-head { display: grid; gap: var(--s3) var(--gap); margin-bottom: var(--s7); }
  @media (min-width: 1024px) {
    body.v2-svc .sv-head { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; margin-bottom: var(--s8); }
    body.v2-svc .sv-head > .v2-h2 { grid-column: 1 / span 5; }
    body.v2-svc .sv-head > .sv-head-r { grid-column: 7 / span 6; }
  }
  body.v2-svc .sv-head .v2-lead { max-width: 56ch; }
  body.v2-svc .sv-head-r .sv-rate { margin-top: var(--s4); }

  /* ---------- hero: the brief ---------- */
  body.v2-svc .sv-hero { position: relative; isolation: isolate; padding-block: var(--hero-pt) var(--s7); background: linear-gradient(180deg, var(--ivory) 0%, var(--white) 100%); }
  body.v2-svc .sv-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: var(--bg-lattice-img); background-size: 56px 56px; opacity: var(--bg-lattice-o); -webkit-mask-image: radial-gradient(60% 90% at 100% 0%, #000 0%, transparent 70%); mask-image: radial-gradient(60% 90% at 100% 0%, #000 0%, transparent 70%); }
  body.v2-svc .sv-hero-g { row-gap: var(--s7); }
  @media (min-width: 1024px) {
    body.v2-svc .sv-hero { padding-bottom: var(--s8); }
    body.v2-svc .sv-hero-g > .sv-hero-t { grid-column: 1 / span 7; align-self: center; }
    body.v2-svc .sv-hero-g > .sv-idx { grid-column: 8 / span 5; }
  }
  body.v2-svc .sv-hero .v2-h1 { max-width: 16ch; }
  body.v2-svc .sv-hero .v2-deck { margin-top: var(--s5); max-width: 44ch; }
  body.v2-svc .sv-hero .v2-cta-row { margin-top: var(--s6); }
  body.v2-svc .sv-proof-line { margin-top: var(--s5); display: inline-flex; align-items: center; gap: 10px; font-size: var(--fs-small); color: var(--text3); }
  body.v2-svc .sv-proof-line a { color: var(--text2); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 3px; }
  body.v2-svc .sv-proof-line a:hover { color: var(--indigo); }
  body.v2-svc .sv-stars { color: var(--gold); letter-spacing: 1px; font-size: 13px; }

  /* page index card ("what this page answers") */
  body.v2-svc .sv-idx { position: relative; padding: var(--s5) var(--s5) var(--s3); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; }
  body.v2-svc .sv-idx::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); }
  body.v2-svc .sv-idx-t { font-size: 13px; font-weight: 700; color: var(--text); letter-spacing: .01em; padding-bottom: var(--s3); }
  body.v2-svc .sv-idx ol { list-style: none; margin: 0; padding: 0; counter-reset: sv-i; }
  body.v2-svc .sv-idx li { counter-increment: sv-i; border-top: 1px solid var(--line); }
  body.v2-svc .sv-idx a { display: grid; grid-template-columns: 28px 1fr 18px; align-items: center; gap: var(--s3); min-height: 48px; padding: 10px 8px 10px 0; color: var(--text); font-size: 15px; font-weight: 600; line-height: 1.35; text-decoration: none; border-radius: var(--r-sm); transition: background var(--dur-2) var(--ease-std), padding var(--dur-3) var(--ease-std); }
  body.v2-svc .sv-idx a::before { content: counter(sv-i, decimal-leading-zero); font-size: 12px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
  body.v2-svc .sv-idx a svg { color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-idx a:hover { background: var(--fx-indigo); padding-left: 8px; }
  body.v2-svc .sv-idx a:hover svg { transform: translateX(3px); }
  @media (max-width: 767px) { body.v2-svc .sv-idx { display: none; } }

  /* ---------- brief: letterbox photo + facts rail, then At a glance ---------- */
  body.v2-svc .sv-brief { padding-block: 0 var(--sv-y); }
  body.v2-svc .sv-lb { position: relative; border-radius: var(--r-xl); overflow: hidden; background: var(--lilac-200); }
  body.v2-svc .sv-lb img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 10; object-position: 50% 62%; }
  @media (min-width: 768px) { body.v2-svc .sv-lb img { aspect-ratio: 1240 / 400; } }
  body.v2-svc .sv-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: -40px var(--s4) 0; position: relative; padding: var(--s4) var(--s5); gap: var(--s4) var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
  @media (min-width: 768px) {
    body.v2-svc .sv-facts { position: absolute; left: var(--s5); right: var(--s5); bottom: var(--s5); margin: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: var(--s4) var(--s6); background: color-mix(in srgb, var(--surface) 88%, transparent); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); border-color: color-mix(in srgb, var(--surface) 60%, transparent); }
    body.v2-svc .sv-facts > div + div { border-left: 1px solid var(--line); padding-left: var(--s5); }
  }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { body.v2-svc .sv-facts { background: var(--surface); } }
  body.v2-svc .sv-facts dt { font-size: 12px; font-weight: 600; line-height: 1.35; color: var(--text3); }
  body.v2-svc .sv-facts dd { margin: 2px 0 0; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); font-variant-numeric: tabular-nums; }
  body.v2-svc .sv-brief-g { margin-top: var(--s7); row-gap: var(--s5); }
  @media (min-width: 1024px) {
    body.v2-svc .sv-brief-g { margin-top: var(--s8); }
    body.v2-svc .sv-brief-g > :first-child { grid-column: 1 / span 7; }
    body.v2-svc .sv-brief-g > :last-child { grid-column: 8 / span 5; }
  }
  body.v2-svc .sv-ag .v2-ag-t { margin-top: var(--s3); }

  /* "what decides it" callout */
  body.v2-svc .sv-dec { padding: var(--s5) var(--s5) var(--s5) var(--s6); border-radius: var(--r-md); background: var(--fx-gold); box-shadow: inset 3px 0 0 var(--fx-gold-line); }
  body.v2-svc .sv-dec .v2-h4 { margin-bottom: var(--s2); }
  body.v2-svc .sv-dec p { color: var(--text2); line-height: 1.6; }

  /* ---------- sticky section navigator ---------- */
  body.v2-svc .sv-nav { position: sticky; top: var(--v2-hd-cur); z-index: 300; height: var(--sv-nav-h); background: color-mix(in srgb, var(--white) 86%, transparent); -webkit-backdrop-filter: blur(16px) saturate(1.5); backdrop-filter: blur(16px) saturate(1.5); border-block: 1px solid var(--line); transition: top var(--dur-3) var(--ease-std); }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { body.v2-svc .sv-nav { background: var(--white); } }
  body.v2-svc .sv-nav-in { display: flex; align-items: center; justify-content: space-between; gap: var(--s5); height: 100%; }
  body.v2-svc .sv-nav-l { display: flex; align-items: stretch; height: 100%; gap: 2px; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
  body.v2-svc .sv-nav-l::-webkit-scrollbar { display: none; }
  body.v2-svc .sv-nav-l a { position: relative; display: inline-flex; align-items: center; gap: 8px; height: 100%; padding: 0 12px; font-size: 14px; font-weight: 600; color: var(--text3); text-decoration: none; white-space: nowrap; transition: color var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-nav-l a span { font-size: 11px; font-weight: 700; color: var(--line-strong); font-variant-numeric: tabular-nums; transition: color var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-nav-l a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--indigo); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-3) var(--ease-std); }
  body.v2-svc .sv-nav-l a:hover { color: var(--text); }
  body.v2-svc .sv-nav-l a[aria-current="true"] { color: var(--indigo); }
  body.v2-svc .sv-nav-l a[aria-current="true"] span { color: var(--gold-ink); }
  body.v2-svc .sv-nav-l a[aria-current="true"]::after { transform: scaleX(1); }
  body.v2-svc .sv-nav .v2-btn { min-height: 38px; padding: 8px 16px; font-size: 14px; }
  body.v2-svc .sv-nav-pr { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--grad-rule); transform-origin: left; transform: scaleX(var(--sv-p, 0)); opacity: .55; pointer-events: none; }
  body.v2-svc .sv-nav-m { display: none; }
  @media (max-width: 1023px) {
    body.v2-svc .sv-nav-l, body.v2-svc .sv-nav .v2-btn { display: none; }
    body.v2-svc .sv-nav-m { display: flex; align-items: center; justify-content: space-between; width: 100%; height: 100%; gap: var(--s3); padding: 0; border: 0; background: none; font-family: inherit; font-size: 14px; font-weight: 600; color: var(--text); cursor: pointer; }
    body.v2-svc .sv-nav-m b { font-weight: 600; color: var(--indigo); }
    body.v2-svc .sv-nav-m i { font-style: normal; color: var(--text3); font-weight: 500; }
    body.v2-svc .sv-nav-m svg { transition: transform var(--dur-3) var(--ease-std); color: var(--text3); }
    body.v2-svc .sv-nav.is-open .sv-nav-m svg { transform: rotate(180deg); }
    body.v2-svc .sv-nav-sheet { position: absolute; left: 0; right: 0; top: 100%; padding: var(--s2) var(--gut) var(--s4); background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: 0 24px 40px -24px rgba(9,8,42,.35); opacity: 0; transform: translateY(-6px); visibility: hidden; transition: opacity var(--dur-2) var(--ease-exit), transform var(--dur-2) var(--ease-exit), visibility 0s linear var(--dur-2); }
    body.v2-svc .sv-nav.is-open .sv-nav-sheet { opacity: 1; transform: none; visibility: visible; transition: opacity var(--dur-3) var(--ease-std), transform var(--dur-4) var(--ease-emph), visibility 0s; }
    body.v2-svc .sv-nav-sheet ol { list-style: none; margin: 0; padding: 0; }
    body.v2-svc .sv-nav-sheet a { display: flex; align-items: center; gap: var(--s3); min-height: 48px; border-bottom: 1px solid var(--line); color: var(--text); font-size: 16px; font-weight: 600; text-decoration: none; }
    body.v2-svc .sv-nav-sheet li:last-child a { border-bottom: 0; }
    body.v2-svc .sv-nav-sheet a span { width: 24px; font-size: 12px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
    body.v2-svc .sv-nav-sheet a[aria-current="true"] { color: var(--indigo); }
  }
  @media (min-width: 1024px) { body.v2-svc .sv-nav-sheet { display: none; } }

  /* ---------- decision matrix ---------- */
  body.v2-svc .sv-mx-w { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); overflow: hidden; }
  body.v2-svc .sv-mx { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.55; }
  body.v2-svc .sv-mx caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  body.v2-svc .sv-mx thead th { padding: 14px var(--s5); text-align: left; font-size: 12px; font-weight: 700; letter-spacing: .02em; color: var(--text3); background: var(--ivory); border-bottom: 1px solid var(--line); }
  body.v2-svc .sv-mx thead th:nth-child(3) { color: var(--gold-ink); }
  body.v2-svc .sv-mx tbody th, body.v2-svc .sv-mx td { padding: var(--s5); vertical-align: top; text-align: left; border-bottom: 1px solid var(--line); }
  body.v2-svc .sv-mx tbody tr:last-child > * { border-bottom: 0; }
  body.v2-svc .sv-mx tbody tr { transition: background var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-mx tbody tr:hover { background: var(--fx-indigo-2); }
  body.v2-svc .sv-mx td:nth-child(3) { background: var(--fx-gold); color: var(--text); }
  body.v2-svc .sv-mx tbody tr:hover td:nth-child(3) { background: color-mix(in srgb, var(--fx-gold) 100%, var(--fx-indigo-2)); }
  body.v2-svc .sv-rt { display: grid; grid-template-columns: 52px 1fr; gap: var(--s3); align-items: center; }
  body.v2-svc .sv-rt img { width: 52px; height: 52px; border-radius: 12px; object-fit: cover; }
  body.v2-svc .sv-rt b { display: block; font-size: 16px; font-weight: 700; color: var(--text); line-height: 1.3; }
  body.v2-svc .sv-rt small { display: block; font-size: 12.5px; font-weight: 600; color: var(--text3); }
  body.v2-svc .sv-mx .sv-fig { font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }
  body.v2-svc .sv-mx td { color: var(--text2); }
  body.v2-svc .sv-mx-foot { margin-top: var(--s5); max-width: 76ch; font-size: var(--fs-small); color: var(--text3); }
  @media (min-width: 1024px) {
    body.v2-svc .sv-mx tbody th { width: 25%; }
    body.v2-svc .sv-mx td:nth-child(2) { width: 22%; }
    body.v2-svc .sv-mx td:nth-child(3) { width: 31%; }
  }
  @media (max-width: 1023px) {
    body.v2-svc .sv-mx-w { border: 0; background: none; border-radius: 0; overflow: visible; }
    body.v2-svc .sv-mx thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    body.v2-svc .sv-mx, body.v2-svc .sv-mx tbody, body.v2-svc .sv-mx tr, body.v2-svc .sv-mx th, body.v2-svc .sv-mx td { display: block; width: auto; }
    body.v2-svc .sv-mx tbody { display: grid; gap: var(--s4); }
    body.v2-svc .sv-mx tr { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); overflow: hidden; }
    body.v2-svc .sv-mx tbody th { padding: var(--s4) var(--s4) var(--s3); border: 0; }
    body.v2-svc .sv-mx td { padding: 0 var(--s4) var(--s3); border: 0; }
    body.v2-svc .sv-mx td::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 700; color: var(--text3); margin-bottom: 2px; }
    body.v2-svc .sv-mx td:nth-child(3) { padding-top: var(--s3); }
    body.v2-svc .sv-mx td:nth-child(3)::before { color: var(--gold-ink); }
    body.v2-svc .sv-mx td:last-child { padding-bottom: var(--s4); }
    body.v2-svc .sv-mx tbody tr:last-child > * { border-bottom: 0; }
  }

  /* ---------- route checker (the page's one ink band) ---------- */
  body.v2-svc .sv-ck-g { row-gap: var(--s7); }
  @media (min-width: 1024px) {
    body.v2-svc .sv-ck-g > :first-child { grid-column: 1 / span 5; padding-right: var(--s6); }
    body.v2-svc .sv-ck-g > :last-child { grid-column: 6 / span 7; }
  }
  body.v2-svc .sv-ck-pts { list-style: none; margin: var(--s6) 0 0; padding: 0; display: grid; gap: var(--s3); }
  body.v2-svc .sv-ck-pts li { display: grid; grid-template-columns: 22px 1fr; gap: var(--s3); color: rgba(255,255,255,.86); font-size: 15px; line-height: 1.5; }
  body.v2-svc .sv-ck-pts svg { color: #E2B23A; margin-top: 3px; }
  body.v2-svc .sv-ck { position: relative; padding: var(--s6); border-radius: var(--r-xl); background: var(--surface); color: var(--text2); box-shadow: 0 40px 80px -40px rgba(0,0,0,.55); min-height: 440px; display: flex; flex-direction: column; }
  @media (max-width: 767px) { body.v2-svc .sv-ck { padding: var(--s5); min-height: 0; } }
  body.v2-svc .sv-ck-top { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); margin-bottom: var(--s5); }
  body.v2-svc .sv-ck-step { font-size: 13px; font-weight: 700; color: var(--text3); font-variant-numeric: tabular-nums; }
  body.v2-svc .sv-ck-bar { flex: 1; max-width: 220px; height: 4px; border-radius: 4px; background: var(--lilac-200); overflow: hidden; }
  body.v2-svc .sv-ck-bar i { display: block; height: 100%; width: 100%; border-radius: 4px; background: var(--grad-rule); transform-origin: left; transform: scaleX(var(--sv-ck, .25)); transition: transform var(--dur-3) var(--ease-std); }
  body.v2-svc .sv-ck fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
  body.v2-svc .sv-ck legend { padding: 0; margin-bottom: var(--s5); font-family: var(--serif); font-size: var(--fs-h3); font-weight: 500; line-height: 1.22; letter-spacing: -.01em; color: var(--text); }
  body.v2-svc .sv-ck-o { display: grid; gap: 10px; }
  @media (min-width: 600px) { body.v2-svc .sv-ck-o--2 { grid-template-columns: 1fr 1fr; } }
  body.v2-svc .sv-opt { position: relative; display: grid; grid-template-columns: 1fr 22px; align-items: center; gap: var(--s3); min-height: 56px; padding: 12px 14px 12px 16px; border-radius: var(--r-md); border: 1.5px solid var(--line); background: var(--surface); color: var(--text); font-size: 15px; font-weight: 600; line-height: 1.35; cursor: pointer; transition: border-color var(--dur-2) var(--ease-std), background var(--dur-2) var(--ease-std), transform var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-opt small { display: block; margin-top: 2px; font-size: 13px; font-weight: 500; color: var(--text3); }
  body.v2-svc .sv-opt input { position: absolute; opacity: 0; pointer-events: none; }
  body.v2-svc .sv-opt-c { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--line-strong); display: grid; place-items: center; color: #fff; transition: background var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-opt-c svg { opacity: 0; transform: scale(.6); transition: opacity var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std); }
  body.v2-svc .sv-opt:hover { border-color: var(--indigo); background: var(--fx-indigo-2); }
  body.v2-svc .sv-opt:has(input:focus-visible) { outline: 3px solid var(--indigo); outline-offset: 2px; }
  body.v2-svc .sv-opt:has(input:checked) { border-color: var(--indigo); background: var(--fx-indigo); }
  body.v2-svc .sv-opt:has(input:checked) .sv-opt-c { background: var(--indigo); border-color: var(--indigo); }
  body.v2-svc .sv-opt:has(input:checked) .sv-opt-c svg { opacity: 1; transform: none; }
  body.v2-svc .sv-opt:active { transform: scale(.99); }
  body.v2-svc .sv-ck-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); margin-top: auto; padding-top: var(--s5); }
  body.v2-svc .sv-ck-back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 4px; border: 0; background: none; font-family: inherit; font-size: 14px; font-weight: 600; color: var(--text3); cursor: pointer; }
  body.v2-svc .sv-ck-back:hover { color: var(--indigo); }
  body.v2-svc .sv-ck-back[hidden] { display: none; }
  body.v2-svc .sv-ck-fine { font-size: 13px; color: var(--text3); }
  body.v2-svc .sv-ck-pane { animation: sv-in var(--dur-3) var(--ease-std); }
  @keyframes sv-in { from { opacity: .001; transform: translateX(12px); } }
  @media (prefers-reduced-motion: reduce) { body.v2-svc .sv-ck-pane { animation: none; } body.v2-svc .sv-ck-bar i { transition: none; } }
  /* result */
  body.v2-svc .sv-res-k { font-size: 13px; font-weight: 700; color: var(--gold-ink); }
  body.v2-svc .sv-res-t { margin-top: 4px; font-family: var(--serif); font-size: clamp(1.625rem, 1.4rem + .9vw, 2.125rem); font-weight: 500; line-height: 1.12; letter-spacing: -.015em; color: var(--text); }
  body.v2-svc .sv-res-why { margin-top: var(--s4); color: var(--text2); line-height: 1.6; }
  body.v2-svc .sv-res-why b { color: var(--text); }
  body.v2-svc .sv-res-flag { margin-top: var(--s4); padding: var(--s3) var(--s4); border-radius: var(--r-md); background: var(--fx-gold); box-shadow: inset 3px 0 0 var(--fx-gold-line); color: var(--text); font-size: 15px; line-height: 1.55; }
  body.v2-svc .sv-res-sum { margin-top: var(--s4); display: flex; flex-wrap: wrap; gap: 6px; }
  body.v2-svc .sv-res-act { margin-top: var(--s5); display: flex; flex-wrap: wrap; gap: var(--s3) var(--s4); align-items: center; }
  body.v2-svc .sv-res-act .v2-btn--wa { background: #128C4B; color: #fff; }
  body.v2-svc .sv-res-act .v2-btn--wa:hover { background: #0e7a40; color: #fff; transform: translateY(-1px); }
  body.v2-svc .sv-ck-noscript { color: var(--text2); }

  /* ---------- ledger: what people expect vs what the authority looks at ---------- */
  body.v2-svc .sv-led-g { row-gap: var(--s6); }
  @media (min-width: 1024px) {
    body.v2-svc .sv-led-g > :first-child { grid-column: 1 / span 4; }
    body.v2-svc .sv-led-g > :last-child { grid-column: 5 / span 8; padding-left: var(--s5); }
    body.v2-svc .sv-led-ph { position: sticky; top: calc(var(--v2-hd-hc) + var(--sv-nav-h) + 24px); align-self: start; }
  }
  body.v2-svc .sv-led-ph .v2-ph img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
  @media (max-width: 1023px) { body.v2-svc .sv-led-ph .v2-ph img { aspect-ratio: 16 / 9; } }
  body.v2-svc .sv-led { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
  body.v2-svc .sv-led-h { display: none; }
  @media (min-width: 768px) {
    body.v2-svc .sv-led-h { display: grid; grid-template-columns: 5fr 7fr; gap: var(--s6); padding: 0 0 var(--s3); font-size: 12px; font-weight: 700; color: var(--text3); }
    body.v2-svc .sv-led-h span:last-child { color: var(--gold-ink); }
  }
  body.v2-svc .sv-led li { display: grid; gap: var(--s2) var(--s6); padding: var(--s5) 0; border-bottom: 1px solid var(--line); }
  @media (min-width: 768px) { body.v2-svc .sv-led li { grid-template-columns: 5fr 7fr; } }
  body.v2-svc .sv-led-a { font-size: 15px; line-height: 1.5; color: var(--text3); }
  body.v2-svc .sv-led-a::before { content: "\201C"; color: var(--line-strong); font-family: var(--serif); font-size: 1.4em; line-height: 0; vertical-align: -.25em; margin-right: 2px; }
  body.v2-svc .sv-led-a::after { content: "\201D"; color: var(--line-strong); font-family: var(--serif); font-size: 1.4em; line-height: 0; vertical-align: -.25em; margin-left: 1px; }
  body.v2-svc .sv-led-b { color: var(--text); line-height: 1.6; }
  body.v2-svc .sv-wait { margin-top: var(--s7); padding: var(--s5) var(--s6); border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--surface); box-shadow: inset 4px 0 0 var(--gold); }
  body.v2-svc .sv-wait ul { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: var(--s3); }
  body.v2-svc .sv-wait li { display: grid; grid-template-columns: 20px 1fr; gap: var(--s3); color: var(--text2); line-height: 1.55; }
  body.v2-svc .sv-wait li svg { color: var(--gold-ink); margin-top: 4px; }
  body.v2-svc .sv-wait p.sv-wait-end { margin-top: var(--s4); font-weight: 600; color: var(--text); }

  /* ---------- family: photo + ruled two-column list ---------- */
  body.v2-svc .sv-fam { background: var(--ivory); }
  body.v2-svc .sv-fam-g { row-gap: var(--s6); align-items: stretch; }
  @media (min-width: 1024px) {
    body.v2-svc .sv-fam-g > :first-child { grid-column: 1 / span 5; }
    body.v2-svc .sv-fam-g > :last-child { grid-column: 6 / span 7; padding-left: var(--s5); }
  }
  body.v2-svc .sv-fam .v2-ph { height: 100%; }
  body.v2-svc .sv-fam .v2-ph img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
  body.v2-svc .sv-fam .v2-h2 { margin-bottom: var(--s3); }
  body.v2-svc .sv-fam .v2-lead { max-width: 52ch; }
  body.v2-svc .sv-gets { list-style: none; margin: var(--s6) 0 0; padding: 0; display: grid; gap: 0 var(--s6); }
  @media (min-width: 600px) { body.v2-svc .sv-gets { grid-template-columns: 1fr 1fr; } }
  body.v2-svc .sv-gets li { padding: var(--s4) 0; border-top: 1px solid var(--line-strong); }
  body.v2-svc .sv-gets b { display: block; color: var(--text); font-weight: 700; font-size: 16px; line-height: 1.35; }
  body.v2-svc .sv-gets span { display: block; margin-top: 4px; font-size: 15px; line-height: 1.55; color: var(--text2); }

  /* ---------- annotated timeline: stage, we handle, you provide, decided by ---------- */
  body.v2-svc .sv-tl { list-style: none; margin: 0; padding: 0; position: relative; }
  body.v2-svc .sv-tl-h { display: none; }
  @media (min-width: 1024px) {
    body.v2-svc .sv-tl-h { display: grid; grid-template-columns: 3fr 4fr 3fr 2fr; gap: var(--s6); padding: 0 0 var(--s3) 64px; font-size: 12px; font-weight: 700; color: var(--text3); }
    body.v2-svc .sv-tl-h span:last-child { color: var(--gold-ink); }
  }
  body.v2-svc .sv-tl li { position: relative; display: grid; gap: var(--s3); padding: var(--s5) 0 var(--s5) 64px; border-top: 1px solid var(--line); }
  body.v2-svc .sv-tl li:last-child { border-bottom: 1px solid var(--line); }
  @media (min-width: 1024px) { body.v2-svc .sv-tl li { grid-template-columns: 3fr 4fr 3fr 2fr; gap: var(--s6); align-items: start; } }
  body.v2-svc .sv-tl li::before { content: ""; position: absolute; left: 19px; top: 0; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--fx-indigo-line), var(--fx-gold-line)); }
  body.v2-svc .sv-tl li:first-child::before { top: var(--s5); }
  body.v2-svc .sv-tl li:last-child::before { bottom: calc(100% - var(--s5) - 20px); }
  body.v2-svc .sv-tl-n { position: absolute; left: 0; top: var(--s5); width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 2px solid var(--gold); font-size: 14px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }
  body.v2-svc .sv-tl h3 { padding-top: 8px; }
  body.v2-svc .sv-tl-c { font-size: 15px; line-height: 1.55; color: var(--text2); }
  body.v2-svc .sv-tl-c::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 700; color: var(--text3); margin-bottom: 2px; }
  @media (min-width: 1024px) { body.v2-svc .sv-tl-c { padding-top: 10px; } body.v2-svc .sv-tl-c::before { display: none; } }
  body.v2-svc .sv-tl-d { font-weight: 700; color: var(--text); }
  body.v2-svc .sv-tl-foot { margin-top: var(--s6); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4) var(--s6); padding: var(--s5) var(--s6); border-radius: var(--r-lg); background: linear-gradient(90deg, var(--fx-indigo), var(--fx-indigo-2)); box-shadow: inset 4px 0 0 var(--indigo); }
  body.v2-svc .sv-tl-foot p { max-width: 70ch; color: var(--text2); line-height: 1.55; }
  body.v2-svc .sv-tl-foot p b { color: var(--text); }

  /* ---------- clients: case card + testimony list ---------- */
  body.v2-svc .sv-pf-g { row-gap: var(--s6); }
  @media (min-width: 1024px) {
    body.v2-svc .sv-pf-g > :first-child { grid-column: 1 / span 5; }
    body.v2-svc .sv-pf-g > :last-child { grid-column: 6 / span 7; padding-left: var(--s5); }
  }
  body.v2-svc .sv-case { position: relative; height: 100%; display: flex; flex-direction: column; padding: var(--s6); border-radius: var(--r-xl); background: var(--grad-brand); color: #fff; overflow: hidden; isolation: isolate; }
  body.v2-svc .sv-case::after { content: ""; position: absolute; z-index: -1; right: -120px; bottom: -160px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(226,178,58,.24), rgba(226,178,58,0) 65%); }
  body.v2-svc .sv-case-chip { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px; border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); font-size: 12.5px; font-weight: 700; color: #fff; }
  body.v2-svc .sv-case-chip i { width: 7px; height: 7px; border-radius: 50%; background: #4ade80; }
  body.v2-svc .sv-case .v2-h3 { color: #fff; margin-top: var(--s5); }
  body.v2-svc .sv-case p { margin-top: var(--s4); color: rgba(255,255,255,.86); line-height: 1.6; }
  body.v2-svc .sv-case dl { margin: auto 0 0; padding-top: var(--s6); display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); }
  body.v2-svc .sv-case dl > div { padding-top: var(--s3); border-top: 1px solid rgba(255,255,255,.22); }
  body.v2-svc .sv-case dt { font-size: 12px; font-weight: 600; color: rgba(255,255,255,.7); }
  body.v2-svc .sv-case dd { margin: 2px 0 0; font-size: 15px; font-weight: 600; color: #fff; line-height: 1.35; }
  body.v2-svc .sv-tm { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 var(--s6); }
  @media (min-width: 768px) { body.v2-svc .sv-tm { grid-template-columns: 1fr 1fr; } }
  body.v2-svc .sv-tm li { padding: var(--s5) 0; border-top: 1px solid var(--line); }
  body.v2-svc .sv-tm figure { margin: 0; height: 100%; display: flex; flex-direction: column; }
  body.v2-svc .sv-tm blockquote { margin: 0; padding: 0; border: 0; font-family: var(--serif); font-size: 18px; line-height: 1.45; font-weight: 400; color: var(--text); letter-spacing: -.005em; }
  body.v2-svc .sv-tm blockquote::before { content: "\201C"; display: block; height: 22px; font-size: 44px; line-height: 1; color: var(--gold); }
  body.v2-svc .sv-tm figcaption { margin-top: auto; padding-top: var(--s4); display: flex; align-items: baseline; justify-content: space-between; gap: var(--s3); font-size: 13.5px; color: var(--text3); }
  body.v2-svc .sv-tm figcaption b { display: block; color: var(--text); font-size: 14px; font-weight: 700; }
  body.v2-svc .sv-tm figcaption a { flex: none; font-size: 13px; font-weight: 600; color: var(--indigo); }
  body.v2-svc .sv-rate { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border-radius: 999px; background: var(--fx-gold); font-size: 14px; color: var(--text2); text-decoration: none; }
  body.v2-svc .sv-rate b { font-family: var(--serif); font-size: 18px; color: var(--text); }
  body.v2-svc .sv-rate u { text-decoration-color: var(--line-strong); text-underline-offset: 3px; }
  body.v2-svc .sv-rate:hover u { color: var(--indigo); }

  /* ---------- related decisions: ruled link row ---------- */
  body.v2-svc .sv-rel { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 var(--gap); }
  @media (min-width: 768px) { body.v2-svc .sv-rel { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { body.v2-svc .sv-rel { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  body.v2-svc .sv-rel a { display: block; height: 100%; padding: var(--s5) var(--s5) var(--s5) 0; border-top: 2px solid var(--line); color: inherit; text-decoration: none; transition: border-color var(--dur-3) var(--ease-std); }
  body.v2-svc .sv-rel b { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); color: var(--text); font-size: 16px; font-weight: 700; line-height: 1.35; }
  body.v2-svc .sv-rel b svg { flex: none; color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-rel span { display: block; margin-top: 6px; font-size: 14.5px; line-height: 1.5; color: var(--text3); }
  body.v2-svc .sv-rel a:hover { border-top-color: var(--indigo); }
  body.v2-svc .sv-rel a:hover b svg { transform: translateX(3px); }
  body.v2-svc .sv-rel-t { margin-bottom: var(--s4); }

  /* ---------- call sheet (closing) ---------- */
  body.v2-svc .sv-call-s { padding-block: var(--s7) var(--sv-y); }
  body.v2-svc .sv-call { position: relative; display: grid; gap: var(--s6); padding: var(--s6); border-radius: var(--r-xl); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; }
  body.v2-svc .sv-call::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--grad-rule); }
  @media (min-width: 1024px) { body.v2-svc .sv-call { grid-template-columns: 5fr 4fr 3fr; gap: var(--s7); padding: var(--s7) var(--s8); align-items: start; } }
  body.v2-svc .sv-call .v2-h2 { font-size: clamp(1.625rem, 1.4rem + .9vw, 2.25rem); }
  body.v2-svc .sv-call-l p { margin-top: var(--s4); color: var(--text2); line-height: 1.6; max-width: 44ch; }
  body.v2-svc .sv-call-l .v2-cta-row { margin-top: var(--s6); }
  body.v2-svc .sv-call-on { font-size: 13px; font-weight: 700; color: var(--text3); }
  body.v2-svc .sv-call ol { list-style: none; margin: var(--s3) 0 0; padding: 0; counter-reset: sv-c; }
  body.v2-svc .sv-call ol li { counter-increment: sv-c; display: grid; grid-template-columns: 28px 1fr; gap: var(--s3); padding: var(--s3) 0; border-top: 1px solid var(--line); color: var(--text); font-weight: 600; line-height: 1.45; }
  body.v2-svc .sv-call ol li::before { content: counter(sv-c, decimal-leading-zero); font-size: 12px; font-weight: 700; color: var(--gold-ink); padding-top: 3px; font-variant-numeric: tabular-nums; }
  body.v2-svc .sv-adv { display: grid; grid-template-columns: 64px 1fr; gap: var(--s4); align-items: center; padding: var(--s5); border-radius: var(--r-lg); background: var(--ivory); }
  @media (min-width: 1024px) { body.v2-svc .sv-adv { grid-template-columns: 1fr; text-align: left; } }
  body.v2-svc .sv-adv img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--gold); }
  body.v2-svc .sv-adv b { display: block; color: var(--text); font-size: 16px; }
  body.v2-svc .sv-adv span { display: block; font-size: 14px; line-height: 1.45; color: var(--text3); }
  body.v2-svc .sv-adv a { display: inline-block; margin-top: 6px; font-size: 14px; font-weight: 600; color: var(--indigo); }

  /* ---------- FAQ on service pages: same component, ruled section ---------- */
  body.v2-svc .sv-faq .v2-faq-aside .v2-h2 { max-width: 14ch; }

  /* ---------- motion ---------- */
  @media (prefers-reduced-motion: no-preference) {
    body.v2-svc .sv-hero-t > * { animation: v2-rise var(--dur-5) var(--ease-std) backwards; }
    body.v2-svc .sv-hero-t > :nth-child(2) { animation-delay: 50ms; }
    body.v2-svc .sv-hero-t > :nth-child(3) { animation-delay: 100ms; }
    body.v2-svc .sv-hero-t > :nth-child(n+4) { animation-delay: 150ms; }
    body.v2-svc .sv-idx { animation: v2-rise var(--dur-6) var(--ease-std) 140ms backwards; }
    body.v2-svc .sv-idx li { animation: v2-rise var(--dur-5) var(--ease-std) backwards; }
    body.v2-svc .sv-idx li:nth-child(1) { animation-delay: 220ms; } body.v2-svc .sv-idx li:nth-child(2) { animation-delay: 260ms; }
    body.v2-svc .sv-idx li:nth-child(3) { animation-delay: 300ms; } body.v2-svc .sv-idx li:nth-child(4) { animation-delay: 340ms; }
    body.v2-svc .sv-idx li:nth-child(5) { animation-delay: 380ms; }
  }
  @media (prefers-reduced-motion: reduce) {
    body.v2-svc .sv-idx a, body.v2-svc .sv-nav-l a::after, body.v2-svc .sv-nav-sheet, body.v2-svc .sv-opt, body.v2-svc .sv-rel a { transition: none; }
  }

  /* ---------- dark mode adjustments (tokens already flip) ---------- */
  @media (prefers-color-scheme: dark) {
    body.v2-svc .sv-hero { background: linear-gradient(180deg, var(--ivory) 0%, var(--white) 100%); }
    body.v2-svc .sv-ck { box-shadow: 0 40px 80px -40px rgba(0,0,0,.8); }
    body.v2-svc .sv-opt-c { color: #0b0a22; }
    body.v2-svc .sv-res-act .v2-btn--wa { background: #128C4B; color: #fff; }
    body.v2-svc .sv-nav-sheet { box-shadow: 0 24px 40px -24px rgba(0,0,0,.8); }
    body.v2-svc .sv-case { background: linear-gradient(120deg, #2b3fb8 0%, #1d1a6b 55%, #12112e 100%); }
  }
}
@layer v2.components {
  body.v2-svc .sv-ag.quick-answer { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; border-radius: 0; max-width: none; }
  body.v2-svc .sv-ag .quick-answer-label { display: block; margin: 0; padding: 0; font-size: var(--fs-label); line-height: 1.3; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); }
  body.v2-svc .sv-ag .quick-answer-label::before { content: none; display: none; }
  body.v2-svc .sv-ag p { margin-top: var(--s3); max-width: var(--w-read); font-size: var(--fs-deck); line-height: 1.6; color: var(--text); }
}
@layer v2.components {
  @media (min-width: 1024px) { body.v2-svc .sv-hero-g > .sv-idx { align-self: center; } }
  body.v2-svc .sv-brief-g > .sv-dec { align-self: start; }
  body.v2-svc .sv-proof-line { align-items: baseline; }
}
/* unlayered: the shell .v2-btn is unlayered, so the compact nav button must be too */
body.v2-svc .sv-nav .v2-btn { min-height: 38px; padding: 8px 16px; font-size: 14px; box-shadow: none; }
@layer v2.components {
  body.v2-svc .sv-tm > li { min-width: 0; }
  body.v2-svc .sv-tm figure.rev-card { width: auto; max-width: 100%; min-width: 0; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; transform: none; }
  body.v2-svc .sv-tm figure.rev-card:hover { transform: none; box-shadow: none; }
  body.v2-svc .sv-led-a::before, body.v2-svc .sv-led-a::after { content: none; }
  body.v2-svc .sv-led-a { font-style: italic; }
}
@media (max-width: 1023px) { body.v2-svc .sv-nav .v2-btn { display: none; } }
@layer v2.components {
  @media (max-width: 767px) {
    body.v2-svc .sv-lb { background: none; border-radius: 0; overflow: visible; }
    body.v2-svc .sv-lb img { border-radius: var(--r-xl); }
    body.v2-svc .sv-facts dd { font-size: 15px; }
    body.v2-svc .sv-mx tbody th { padding-bottom: var(--s2); }
  }
}
@layer v2.components {
  body.v2-svc .sv-sec.v2-sec--ink { overflow: clip; }
  body.v2-svc .sv-ck .v2-quiet { color: var(--text); text-decoration-color: var(--gold); }
  body.v2-svc .sv-ck .v2-quiet:hover { color: var(--indigo); }
  body.v2-svc .sv-res-sum .v2-chip { background: var(--fx-indigo); color: var(--text2); border: 1px solid var(--fx-indigo-line); }
}

/* ===== v2 of the prototype (22 Oct): photo hero, categories, benefits, featured review, gold as hairline only ===== */
@layer v2.components {
  body.v2-svc .sv-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
  /* hero with photo */
  body.v2-svc .sv-hero--ph { padding-bottom: var(--s7); }
  body.v2-svc .sv-hero--ph .sv-hero-g { align-items: center; row-gap: var(--s6); }
  @media (min-width: 1024px) {
    body.v2-svc .sv-hero--ph { padding-bottom: var(--s8); }
    body.v2-svc .sv-hero--ph .sv-hero-g > .sv-hero-t { grid-column: 1 / span 6; }
    body.v2-svc .sv-hero--ph .sv-hero-g > .sv-hph { grid-column: 7 / span 6; }
  }
  body.v2-svc .sv-hph { position: relative; margin: 0; border-radius: var(--r-xl); overflow: hidden; background: #1b1840; box-shadow: 0 30px 60px -34px rgba(15,7,189,.55); isolation: isolate; }
  body.v2-svc .sv-hph img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: 50% 45%; }
  @media (max-width: 767px) { body.v2-svc .sv-hph img { aspect-ratio: 4 / 3.4; } }
  body.v2-svc .sv-hph::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(180deg, rgba(9,8,42,0) 45%, rgba(9,8,42,.62) 100%); }
  body.v2-svc .sv-hfacts { position: absolute; z-index: 1; left: var(--s4); right: var(--s4); bottom: var(--s4); margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-radius: var(--r-lg); background: rgba(14,12,48,.55); border: 1px solid rgba(255,255,255,.18); -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3); }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { body.v2-svc .sv-hfacts { background: rgba(14,12,48,.88); } }
  body.v2-svc .sv-hfacts > div { padding: 12px 16px; }
  body.v2-svc .sv-hfacts > div:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.14); }
  body.v2-svc .sv-hfacts > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.14); }
  body.v2-svc .sv-hfacts dt { font-size: 12px; font-weight: 600; color: rgba(255,255,255,.72); line-height: 1.3; }
  body.v2-svc .sv-hfacts dd { margin: 2px 0 0; font-size: 16px; font-weight: 700; color: #fff; line-height: 1.3; font-variant-numeric: tabular-nums; }
  @media (max-width: 400px) { body.v2-svc .sv-hfacts dd { font-size: 14.5px; } body.v2-svc .sv-hfacts > div { padding: 10px 12px; } }
  @media (min-width: 1024px) { body.v2-svc .sv-hfacts { left: var(--s5); right: var(--s5); bottom: var(--s5); } }
  body.v2-svc .sv-hero--ph .v2-h1 { max-width: 13ch; }

  /* brief after the navigator */
  body.v2-svc .sv-brief { padding-block: var(--sv-y) 0; }
  body.v2-svc .sv-brief-g { margin-top: 0; }
  body.v2-svc .sv-dec { background: var(--fx-indigo); box-shadow: inset 3px 0 0 var(--indigo); }

  /* categories */
  body.v2-svc .sv-cats { background: linear-gradient(180deg, var(--white) 0%, var(--ivory) 22%, var(--ivory) 100%); }
  body.v2-svc .sv-prime { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 768px) and (max-width: 1023px) { body.v2-svc .sv-prime { grid-template-columns: 1fr 1fr; } body.v2-svc .sv-prime > :last-child { grid-column: 1 / -1; } }
  @media (min-width: 1024px) { body.v2-svc .sv-prime { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  body.v2-svc .sv-pc { display: flex; flex-direction: column; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; transition: transform var(--dur-3) var(--ease-std), box-shadow var(--dur-3) var(--ease-std); }
  body.v2-svc .sv-pc:hover { transform: translateY(-3px); box-shadow: 0 2px 8px rgba(9,8,42,.06), 0 28px 50px -24px rgba(15,7,189,.32); }
  body.v2-svc .sv-pc-ph { position: relative; overflow: hidden; }
  body.v2-svc .sv-pc-ph img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform var(--dur-5) var(--ease-std); }
  body.v2-svc .sv-pc:hover .sv-pc-ph img { transform: scale(1.04); }
  body.v2-svc .sv-pc-tag { position: absolute; left: 14px; top: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 10px; border-radius: 999px; background: rgba(255,255,255,.92); color: #0F07BD; font-size: 13px; font-weight: 700; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
  body.v2-svc .sv-pc-tag svg, body.v2-svc .sv-ic svg, body.v2-svc .sv-bi svg, body.v2-svc .sv-wait svg, body.v2-svc .sv-ck-pts svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  body.v2-svc .sv-pc-b { flex: 1; display: flex; flex-direction: column; padding: var(--s5) var(--s5) var(--s5); }
  @media (min-width: 1024px) { body.v2-svc .sv-pc-b { padding: var(--s6) var(--s6) var(--s5); } }
  body.v2-svc .sv-pc-fig { margin-top: var(--s3); padding-bottom: var(--s4); border-bottom: 1px solid var(--line); color: var(--text3); font-size: 15px; }
  body.v2-svc .sv-pc-fig b { display: block; font-family: var(--serif); font-size: clamp(1.625rem, 1.45rem + .6vw, 2rem); font-weight: 500; line-height: 1.1; letter-spacing: -.015em; color: var(--indigo); font-variant-numeric: tabular-nums; }
  body.v2-svc .sv-pc-l { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: var(--s3); }
  body.v2-svc .sv-pc-l li { position: relative; padding-left: 20px; font-size: 15px; line-height: 1.5; color: var(--text2); }
  body.v2-svc .sv-pc-l li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 2px; background: var(--indigo); transform: rotate(45deg); }
  body.v2-svc .sv-pc-l b { color: var(--text); }
  body.v2-svc .sv-pc-d { margin-top: auto; padding-top: var(--s5); font-size: 14px; font-weight: 600; line-height: 1.45; color: var(--text); }
  body.v2-svc .sv-pc-d span { display: block; margin-bottom: 2px; font-size: 12px; font-weight: 600; color: var(--text3); }
  body.v2-svc .sv-pc-d::before { content: ""; display: block; width: 28px; height: 2px; margin-bottom: var(--s4); background: var(--gold); border-radius: 2px; }

  body.v2-svc .sv-more { margin-top: var(--s8); }
  body.v2-svc .sv-more-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4) var(--s6); margin-bottom: var(--s5); }
  body.v2-svc .sv-filt { display: flex; flex-wrap: wrap; gap: 8px; }
  body.v2-svc .sv-chip { min-height: 40px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text2); font-family: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: background var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-chip:hover { border-color: var(--indigo); color: var(--indigo); }
  body.v2-svc .sv-chip[aria-pressed="true"] { background: var(--indigo-solid); border-color: var(--indigo-solid); color: #fff; }
  body.v2-svc .sv-chip:focus-visible { outline: 3px solid var(--indigo); outline-offset: 2px; }
  @media (max-width: 767px) { body.v2-svc .sv-filt { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--gut)); padding-inline: var(--gut); width: calc(100% + 2 * var(--gut)); } body.v2-svc .sv-filt::-webkit-scrollbar { display: none; } body.v2-svc .sv-chip { flex: none; } }
  body.v2-svc .sv-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
  @media (min-width: 600px) { body.v2-svc .sv-grid { grid-template-columns: 1fr 1fr; } }
  @media (min-width: 1024px) { body.v2-svc .sv-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); } }
  body.v2-svc .sv-grid > li { display: grid; grid-template-columns: 44px 1fr; grid-template-rows: auto auto 1fr; column-gap: var(--s4); padding: var(--s4) var(--s5) var(--s4) var(--s4); border-radius: 16px; background: var(--surface); border: 1px solid var(--line); transition: border-color var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std); }
  body.v2-svc .sv-grid > li:hover { border-color: var(--fx-indigo-line); transform: translateY(-2px); }
  body.v2-svc .sv-grid > li[hidden] { display: none; }
  body.v2-svc .sv-grid > li.is-in { animation: sv-pop var(--dur-3) var(--ease-std) backwards; }
  @keyframes sv-pop { from { opacity: .001; transform: translateY(6px); } }
  body.v2-svc .sv-ic { grid-row: 1 / span 3; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--fx-indigo); color: var(--indigo); }
  body.v2-svc .sv-ic svg { width: 22px; height: 22px; }
  body.v2-svc .sv-grid h4 { font-size: 15.5px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc .sv-grid p { margin-top: 4px; font-size: 14px; line-height: 1.5; color: var(--text2); }
  body.v2-svc .sv-grid small { align-self: end; margin-top: var(--s3); font-size: 12.5px; font-weight: 600; line-height: 1.4; color: var(--text3); }
  body.v2-svc .sv-more-f { margin-top: var(--s5); font-size: 14.5px; color: var(--text3); }
  @media (prefers-reduced-motion: reduce) { body.v2-svc .sv-grid > li.is-in { animation: none; } body.v2-svc .sv-pc, body.v2-svc .sv-pc-ph img, body.v2-svc .sv-grid > li { transition: none; } }

  /* benefits */
  body.v2-svc .sv-ben-g { row-gap: var(--s6); align-items: stretch; }
  @media (min-width: 1024px) {
    body.v2-svc .sv-ben-g > .sv-ben-ph { grid-column: 1 / span 4; }
    body.v2-svc .sv-ben-g > .sv-ben-groups { grid-column: 5 / span 8; padding-left: var(--s5); }
  }
  body.v2-svc .sv-ben-ph { position: relative; margin: 0; border-radius: var(--r-xl); overflow: hidden; background: var(--lilac-200); min-height: 100%; }
  body.v2-svc .sv-ben-ph img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 70%; }
  @media (max-width: 1023px) { body.v2-svc .sv-ben-ph img { aspect-ratio: 4 / 3; height: auto; } }
  body.v2-svc .sv-bg + .sv-bg { margin-top: var(--s5); padding-top: var(--s5); border-top: 1px solid var(--line); }
  body.v2-svc .sv-bg-t { margin-bottom: var(--s4); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--indigo); }
  body.v2-svc .sv-bg ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s4) var(--gap); }
  @media (min-width: 768px) { body.v2-svc .sv-bg ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  body.v2-svc .sv-bg li { display: grid; grid-template-columns: 44px 1fr; column-gap: var(--s3); align-content: start; }
  @media (min-width: 768px) { body.v2-svc .sv-bg li { grid-template-columns: 1fr; row-gap: var(--s3); } }
  body.v2-svc .sv-bi { grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--grad-brand); color: #fff; box-shadow: 0 10px 22px -12px rgba(15,7,189,.6); }
  @media (min-width: 768px) { body.v2-svc .sv-bi { grid-row: auto; } }
  body.v2-svc .sv-bi svg { width: 22px; height: 22px; }
  body.v2-svc .sv-bg li b { font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc .sv-bg li > span:last-child { margin-top: 2px; font-size: 14.5px; line-height: 1.5; color: var(--text2); }

  /* ledger: photo fills the column, so no gap under it */
  body.v2-svc .sv-led-g { align-items: stretch; }
  @media (min-width: 1024px) {
    body.v2-svc .sv-led-ph { position: relative; top: auto; align-self: stretch; }
    body.v2-svc .sv-led-ph .v2-ph { height: 100%; }
    body.v2-svc .sv-led-ph .v2-ph img { height: 100%; aspect-ratio: auto; object-fit: cover; }
  }
  body.v2-svc .sv-led-h span:last-child { color: var(--indigo); }
  body.v2-svc .sv-wait { box-shadow: inset 4px 0 0 var(--indigo); }
  body.v2-svc .sv-wait li svg { color: var(--indigo); margin-top: 3px; }
  body.v2-svc .sv-tl-h span:last-child { color: var(--indigo); }

  /* clients: featured review + four quotes */
  body.v2-svc .sv-clients { background: var(--ivory); }
  body.v2-svc .sv-feat.rev-card { position: relative; width: auto; max-width: none; min-width: 0; margin: 0; height: 100%; display: flex; flex-direction: column; padding: var(--s7) var(--s6) var(--s6); border-radius: var(--r-xl); border: 0; background: var(--grad-brand); color: #fff; box-shadow: 0 30px 60px -34px rgba(15,7,189,.6); overflow: hidden; isolation: isolate; }
  body.v2-svc .sv-feat::after { content: ""; position: absolute; z-index: -1; right: -120px; bottom: -160px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(226,178,58,.20), rgba(226,178,58,0) 65%); }
  body.v2-svc .sv-feat-s { color: #F0C75A; letter-spacing: 2px; font-size: 16px; }
  body.v2-svc .sv-feat blockquote { margin: var(--s4) 0 0; padding: 0; border: 0; font-family: var(--serif); font-size: clamp(1.375rem, 1.2rem + .7vw, 1.75rem); line-height: 1.3; font-weight: 400; color: #fff; }
  body.v2-svc .sv-feat figcaption { margin-top: auto; padding-top: var(--s6); font-size: 14px; color: rgba(255,255,255,.78); }
  body.v2-svc .sv-feat figcaption b { display: block; font-size: 16px; color: #fff; }
  body.v2-svc .sv-feat figcaption a { display: inline-block; margin-top: var(--s3); font-weight: 600; color: #fff; text-decoration-color: rgba(240,199,90,.8); text-underline-offset: 4px; }
  body.v2-svc .sv-tm blockquote::before { color: var(--indigo); opacity: .5; }
  body.v2-svc .sv-rate { background: var(--surface); border: 1px solid var(--line); }

  @media (prefers-color-scheme: dark) {
    body.v2-svc .sv-pc-tag { background: rgba(23,23,36,.88); color: #9fb2fa; }
    body.v2-svc .sv-feat.rev-card { background: linear-gradient(120deg, #2b3fb8 0%, #1d1a6b 55%, #12112e 100%); }
    body.v2-svc .sv-hph { box-shadow: 0 30px 60px -34px rgba(0,0,0,.8); }
  }
}
@layer v2.components {
  body.v2-svc .sv-feat figcaption span { display: block; }
  body.v2-svc .sv-feat figcaption a { display: inline-block; }
  @media (min-width: 768px) { body.v2-svc .sv-bg li { row-gap: 0; } body.v2-svc .sv-bi { margin-bottom: var(--s3); } }
  body.v2-svc .sv-bg li > span:last-child { margin-top: 4px; }
}
@layer v2.components {
  @media (max-width: 767px) {
    body.v2-svc .sv-hph { background: #15133a; }
    body.v2-svc .sv-hph::after { display: none; }
    body.v2-svc .sv-hph img { aspect-ratio: 4 / 3; object-position: 30% 50%; }
    body.v2-svc .sv-hfacts { position: static; margin: 0; border: 0; border-radius: 0; background: #15133a; -webkit-backdrop-filter: none; backdrop-filter: none; }
  }
}
@layer v2.components {
  body.v2-svc .sv-grid.is-clamped > li:nth-child(n+7) { display: none; }
  body.v2-svc .sv-more-b { display: flex; width: 100%; justify-content: center; align-items: center; min-height: 48px; margin-top: 12px; border-radius: 14px; border: 1px dashed var(--fx-indigo-line); background: var(--surface); color: var(--indigo); font-family: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
  body.v2-svc .sv-more-b[hidden] { display: none; }
  @media (max-width: 599px) { body.v2-svc .sv-grid > li { padding: 14px 16px 14px 14px; } }
}
@layer v2.components {
  @media (min-width: 768px) and (max-width: 1023px) {
    body.v2-svc .sv-hph img { aspect-ratio: 16 / 9; }
    body.v2-svc .sv-prime > :last-child { flex-direction: row; }
    body.v2-svc .sv-prime > :last-child .sv-pc-ph { flex: 0 0 44%; }
    body.v2-svc .sv-prime > :last-child .sv-pc-ph img { height: 100%; aspect-ratio: auto; }
  }
}
@layer v2.components { body.v2-svc .sv-res-flag { background: var(--fx-indigo); box-shadow: inset 3px 0 0 var(--indigo); } }
@layer v2.components {
  body.v2-svc .sv-ck-g .v2-lead { margin-top: var(--s4); }
  body.v2-svc .sv-ck-noscript p + p { margin-top: var(--s4); }
  body.v2-svc .sv-ck-back svg { transform: scaleX(-1); }
  body.v2-svc .sv-sec.sv-sec--flush-b { padding-bottom: 0; }
  /* anchor offset lives on html (below), so a jumped-to section starts flush under the navigator */
  body.v2-svc .sv-sec { scroll-margin-top: 0; }
}
/* unlayered, after html:has(.v2-hd): compact header + section navigator */
html:has(body.v2-svc) { scroll-padding-top: calc(var(--v2-hd-hc, 64px) + 48px); }
@media (min-width: 1024px) { html:has(body.v2-svc) { scroll-padding-top: calc(var(--v2-hd-hc, 60px) + 56px); } }
/* ===== end SERVICE PAGES v1 ===== */
/* ===== company-setup (svc page): five-column structure matrix, linked row heads ===== */
@layer v2.components {
  @media (min-width: 1024px) {
    body.v2-svc.svc-company-setup .sv-mx tbody th { width: 21%; }
    body.v2-svc.svc-company-setup .sv-mx td:nth-child(2) { width: 20%; }
    body.v2-svc.svc-company-setup .sv-mx td:nth-child(3) { width: 23%; }
    body.v2-svc.svc-company-setup .sv-mx td:nth-child(4), body.v2-svc.svc-company-setup .sv-mx td:nth-child(5) { width: 18%; }
    body.v2-svc.svc-company-setup .sv-mx thead th, body.v2-svc.svc-company-setup .sv-mx tbody th, body.v2-svc.svc-company-setup .sv-mx td { padding-inline: var(--s4); }
  }
  body.v2-svc.svc-company-setup a.sv-rt { text-decoration: none; color: inherit; border-radius: 12px; }
  body.v2-svc.svc-company-setup a.sv-rt b { transition: color var(--dur-2) var(--ease-std); }
  body.v2-svc.svc-company-setup a.sv-rt:hover b { color: var(--indigo); text-decoration: underline; text-underline-offset: 3px; }
  body.v2-svc.svc-company-setup .sv-hph img { object-position: 50% 0%; }
}
/* ===== end company-setup ===== */
/* ===== free-zones (22 Oct 2026): hub page additions, scoped to body.v2-svc.svc-free-zones ===== */
@layer v2.components {
  /* matrix: plain row headers and zone links */
  body.v2-svc.svc-free-zones .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-free-zones .sv-mx tbody th small { display: block; margin-top: 2px; font-size: 13px; font-weight: 600; color: var(--text3); }
  body.v2-svc.svc-free-zones .sv-mx td:nth-child(2) { color: var(--text); font-weight: 600; }
  body.v2-svc.svc-free-zones .sv-mx td a, body.v2-svc.svc-free-zones .sv-mx-foot a { color: var(--indigo); font-weight: 600; text-decoration: underline; text-decoration-color: var(--fx-indigo-line); text-underline-offset: 3px; }
  body.v2-svc.svc-free-zones .sv-mx td a:hover, body.v2-svc.svc-free-zones .sv-mx-foot a:hover { text-decoration-color: currentColor; }
  body.v2-svc.svc-free-zones .sv-mx td:nth-child(3) { font-weight: 500; }
  /* zone photo cards: logo chip on the photo (logos stay on white in both themes), whole card clickable */
  body.v2-svc.svc-free-zones .svc-fz-zc { position: relative; }
  body.v2-svc.svc-free-zones .svc-fz-lg { position: absolute; right: 14px; top: 14px; display: grid; place-items: center; height: 44px; padding: 7px 12px; border-radius: 10px; background: #fff; box-shadow: 0 6px 16px -8px rgba(9,8,42,.45); }
  body.v2-svc.svc-free-zones .svc-fz-lg img { height: 30px; width: auto; max-width: 112px; object-fit: contain; }
  body.v2-svc.svc-free-zones .svc-fz-zc h3 a { display: inline-flex; align-items: center; gap: 10px; color: var(--text); text-decoration: none; }
  body.v2-svc.svc-free-zones .svc-fz-zc h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 20px; }
  body.v2-svc.svc-free-zones .svc-fz-zc h3 a svg, body.v2-svc.svc-free-zones .svc-fz-mini h4 a svg { flex: none; color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-svc.svc-free-zones .svc-fz-zc:hover h3 a { color: var(--indigo); }
  body.v2-svc.svc-free-zones .svc-fz-zc:hover h3 a svg, body.v2-svc.svc-free-zones .svc-fz-mini li:hover h4 a svg { transform: translateX(3px); }
  body.v2-svc.svc-free-zones .svc-fz-zc h3 a:focus-visible { outline: none; }
  body.v2-svc.svc-free-zones .svc-fz-zc:has(h3 a:focus-visible) { outline: 3px solid var(--indigo); outline-offset: 3px; }
  body.v2-svc.svc-free-zones .svc-fz-s { margin-top: var(--s3); font-size: 15px; line-height: 1.5; color: var(--text2); }
  body.v2-svc.svc-free-zones .svc-fz-s span, body.v2-svc.svc-free-zones .svc-fz-mini p span { display: block; margin-bottom: 2px; font-size: 12px; font-weight: 600; color: var(--text3); }
  @media (min-width: 768px) and (max-width: 1023px) {
    body.v2-svc.svc-free-zones .svc-fz-cards > :last-child { grid-column: auto; flex-direction: column; }
    body.v2-svc.svc-free-zones .svc-fz-cards > :last-child .sv-pc-ph { flex: none; }
    body.v2-svc.svc-free-zones .svc-fz-cards > :last-child .sv-pc-ph img { height: auto; aspect-ratio: 16 / 9; }
  }
  /* four compact zone cards */
  body.v2-svc.svc-free-zones .svc-fz-mh { margin-bottom: var(--s5); }
  body.v2-svc.svc-free-zones .svc-fz-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 600px) { body.v2-svc.svc-free-zones .svc-fz-mini { grid-template-columns: 1fr 1fr; } }
  @media (min-width: 1024px) { body.v2-svc.svc-free-zones .svc-fz-mini { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  body.v2-svc.svc-free-zones .svc-fz-mini li { position: relative; display: flex; flex-direction: column; padding: var(--s5); border-radius: 16px; background: var(--surface); border: 1px solid var(--line); transition: border-color var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std); }
  body.v2-svc.svc-free-zones .svc-fz-mini li:hover { border-color: var(--fx-indigo-line); transform: translateY(-2px); }
  body.v2-svc.svc-free-zones .svc-fz-ml { align-self: flex-start; display: grid; place-items: center; height: 56px; padding: 8px 14px; border-radius: 12px; background: #fff; border: 1px solid var(--line); }
  body.v2-svc.svc-free-zones .svc-fz-ml img { height: 38px; width: auto; max-width: 160px; object-fit: contain; }
  body.v2-svc.svc-free-zones .svc-fz-mini h4 { margin-top: var(--s4); font-size: 17px; font-weight: 700; line-height: 1.3; }
  body.v2-svc.svc-free-zones .svc-fz-mini h4 a { display: inline-flex; align-items: center; gap: 8px; color: var(--text); text-decoration: none; }
  body.v2-svc.svc-free-zones .svc-fz-mini h4 a::after { content: ""; position: absolute; inset: 0; border-radius: 16px; }
  body.v2-svc.svc-free-zones .svc-fz-mini li:hover h4 a { color: var(--indigo); }
  body.v2-svc.svc-free-zones .svc-fz-mini li:has(h4 a:focus-visible) { outline: 3px solid var(--indigo); outline-offset: 3px; }
  body.v2-svc.svc-free-zones .svc-fz-mini h4 a:focus-visible { outline: none; }
  body.v2-svc.svc-free-zones .svc-fz-mini small { font-size: 12.5px; font-weight: 600; color: var(--text3); }
  body.v2-svc.svc-free-zones .svc-fz-mini p { margin-top: var(--s3); font-size: 14.5px; line-height: 1.5; color: var(--text2); }
  body.v2-svc.svc-free-zones .svc-fz-mini p.svc-fz-cf { margin-top: auto; padding-top: var(--s4); font-weight: 600; color: var(--text); }
  body.v2-svc.svc-free-zones .svc-fz-mini p.svc-fz-cf::before { content: ""; display: block; width: 28px; height: 2px; margin-bottom: var(--s3); background: var(--gold); border-radius: 2px; }
  /* mainland band: tax callout under the list, focus accent */
  body.v2-svc.svc-free-zones .svc-fz-tax { margin-top: var(--s6); padding: var(--s5) var(--s5) var(--s5) var(--s6); border-radius: var(--r-md); background: var(--surface); box-shadow: inset 3px 0 0 var(--indigo); }
  body.v2-svc.svc-free-zones .svc-fz-tax p { margin-top: var(--s2); color: var(--text2); line-height: 1.6; }
  body.v2-svc.svc-free-zones .svc-fz-tax a, body.v2-svc.svc-free-zones .sv-wait-end a { color: var(--indigo); font-weight: 600; }
  body.v2-svc.svc-free-zones .sv-fam .v2-ph img { object-position: 60% 50%; }
  /* clients follow the ivory band, so they sit on white with a rule */
  body.v2-svc.svc-free-zones .sv-clients { background: var(--white); }
  /* checker result: zone page links under the zone names */
  body.v2-svc.svc-free-zones .svc-fz-rl { margin-top: var(--s3); display: flex; flex-wrap: wrap; gap: 6px 16px; }
  body.v2-svc.svc-free-zones .svc-fz-rl a { font-size: 14.5px; font-weight: 600; color: var(--indigo); text-decoration: underline; text-decoration-color: var(--fx-indigo-line); text-underline-offset: 3px; }
  body.v2-svc.svc-free-zones .svc-fz-rl a:hover { text-decoration-color: currentColor; }
  @media (prefers-reduced-motion: reduce) { body.v2-svc.svc-free-zones .svc-fz-mini li, body.v2-svc.svc-free-zones .svc-fz-zc h3 a svg { transition: none; } }
}
/* ===== end free-zones ===== */
/* ===== MAINLAND HUB (/mainland/) v1, 20 Oct 2026: scoped to body.v2-svc.svc-mainland ===== */
@layer v2.components {
  body.v2-svc.svc-mainland .sv-pc-ph img[src*="ml-dubai-street"] { object-position: 50% 82%; }
  body.v2-svc.svc-mainland .sv-pc-d .ml-go { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 15px; font-weight: 700; color: var(--indigo); text-decoration: none; }
  body.v2-svc.svc-mainland .sv-pc-d .ml-go svg { flex: none; transition: transform var(--dur-3) var(--ease-std); }
  body.v2-svc.svc-mainland .sv-pc-d .ml-go:hover { text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 5px; }
  body.v2-svc.svc-mainland .sv-pc-d .ml-go:hover svg { transform: translateX(3px); }
  body.v2-svc.svc-mainland .ml-fz { margin: var(--s6) 0 0; padding: var(--s4) var(--s5); border-radius: var(--r-md); background: var(--fx-indigo); box-shadow: inset 3px 0 0 var(--indigo); font-size: 15px; line-height: 1.6; color: var(--text2); }
  body.v2-svc.svc-mainland .ml-fz a { color: var(--indigo); font-weight: 600; text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; }
  body.v2-svc.svc-mainland .ml-ck-links { margin-top: var(--s6); padding-top: var(--s5); border-top: 1px solid rgba(255,255,255,.16); }
  body.v2-svc.svc-mainland .ml-ck-links p { margin: 0 0 var(--s3); font-size: 14px; font-weight: 600; color: rgba(255,255,255,.72); }
  body.v2-svc.svc-mainland .ml-ck-links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
  body.v2-svc.svc-mainland .ml-ck-links a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,.28); color: #fff; font-size: 14.5px; font-weight: 600; text-decoration: none; transition: background-color var(--dur-3) var(--ease-std), border-color var(--dur-3) var(--ease-std); }
  body.v2-svc.svc-mainland .ml-ck-links a svg { color: #E2B23A; transition: transform var(--dur-3) var(--ease-std); }
  body.v2-svc.svc-mainland .ml-ck-links a:hover { background: rgba(255,255,255,.10); border-color: rgba(226,178,58,.7); }
  body.v2-svc.svc-mainland .ml-ck-links a:hover svg { transform: translateX(3px); }
  body.v2-svc.svc-mainland .sv-led-ph .v2-ph img { object-position: 40% 30%; }
  body.v2-svc.svc-mainland .sv-ben-ph img { object-position: 50% 28%; }
  @media (prefers-reduced-motion: reduce) { body.v2-svc.svc-mainland .ml-go svg, body.v2-svc.svc-mainland .ml-ck-links a, body.v2-svc.svc-mainland .ml-ck-links a svg { transition: none; } }
}
/* ===== end MAINLAND HUB v1 ===== */
/* ===== MAINLAND HUB review fixes v1.1, 20 Oct 2026: scoped to body.v2-svc.svc-mainland ===== */
@layer v2.components {
  body.v2-svc.svc-mainland .sv-hero .v2-h1 { max-width: 18ch; }
  @media (min-width: 360px) { body.v2-svc.svc-mainland .sv-hero .v2-h1 .ml-nw { white-space: nowrap; } }
  @media (min-width: 1024px) {
    body.v2-svc.svc-mainland .sv-ck-g { grid-template-rows: auto 1fr; }
    body.v2-svc.svc-mainland .sv-ck-g > :nth-child(2) { grid-column: 6 / span 7; grid-row: 1 / span 2; }
    body.v2-svc.svc-mainland .sv-ck-g > .ml-ck-links { grid-column: 1 / span 5; grid-row: 2; align-self: start; margin-top: 0; padding-right: var(--s6); }
  }
}
/* ===== end MAINLAND HUB review fixes v1.1 ===== */
/* ===== company-setup review fixes (20 Oct 2026): H1 measure, ledger photo focal point ===== */
@layer v2.components {
  body.v2-svc.svc-company-setup .sv-hero .v2-h1 { max-width: 18ch; }
  body.v2-svc.svc-company-setup .sv-led-ph .v2-ph img { object-position: 22% 72%; }
  /* tall desktop column: zoom towards the pen and document so the dark top of the frame drops out */
  @media (min-width: 1024px) { body.v2-svc.svc-company-setup .sv-led-ph .v2-ph img { transform: scale(1.3); transform-origin: 20% 85%; } }
}
/* ===== end company-setup review fixes ===== */

/* ===== free-zones review fix (20 Oct 2026): logo chips keep each logo's own proportions (the card photo rule forced 16:9), no hover zoom on the logo ===== */
body.v2-svc.svc-free-zones .sv-pc-ph .svc-fz-lg img { aspect-ratio: auto; height: 26px; width: auto; max-width: 96px; object-fit: contain; transform: none; transition: none; }
/* ===== BANKING (/banking/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-banking ===== */
@layer v2.components {
  body.v2-svc.svc-banking .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-banking .sv-mx tbody th small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--text3); }
  body.v2-svc.svc-banking .sv-led-ph .v2-ph img { object-position: 36% 40%; }
  body.v2-svc.svc-banking .sv-fam .v2-ph img { object-position: 40% 50%; }
}
/* ===== end BANKING v1 ===== */
/* ===== TAX AND VAT (/tax-vat/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-tax-vat ===== */
@layer v2.components {
  body.v2-svc.svc-tax-vat .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-tax-vat .sv-mx tbody th small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--text3); }
  body.v2-svc.svc-tax-vat .sv-hph img { object-position: 60% 40%; }
  body.v2-svc.svc-tax-vat .sv-led-ph .v2-ph img { object-position: 40% 40%; }
  body.v2-svc.svc-tax-vat .sv-fam .v2-ph img { object-position: 22% 40%; }
}
/* ===== end TAX AND VAT v1 ===== */
/* ===== BOOKKEEPING (/bookkeeping/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-bookkeeping ===== */
@layer v2.components {
  body.v2-svc.svc-bookkeeping .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-bookkeeping .sv-mx tbody th small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--text3); }
  body.v2-svc.svc-bookkeeping .sv-hph img { object-position: 62% 45%; }
  body.v2-svc.svc-bookkeeping .sv-led-ph .v2-ph img { object-position: 45% 8%; }
  body.v2-svc.svc-bookkeeping .sv-fam .v2-ph img { object-position: 60% 50%; }
}
/* ===== end BOOKKEEPING v1 ===== */
/* ===== PRO SERVICES (/pro-services/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-pro-services ===== */
@layer v2.components {
  body.v2-svc.svc-pro-services .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-pro-services .sv-mx tbody th small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--text3); }
  body.v2-svc.svc-pro-services .sv-hph img { object-position: 55% 40%; }
  body.v2-svc.svc-pro-services .sv-led-ph .v2-ph img { object-position: 50% 50%; }
  body.v2-svc.svc-pro-services .sv-fam .v2-ph img { object-position: 55% 50%; }
}
/* ===== end PRO SERVICES v1 ===== */
/* ===== LIQUIDATION (/liquidation/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-liquidation ===== */
@layer v2.components {
  body.v2-svc.svc-liquidation .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-liquidation .sv-mx tbody th small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--text3); }
  body.v2-svc.svc-liquidation .sv-hph img { object-position: 55% 35%; }
  body.v2-svc.svc-liquidation .sv-led-ph .v2-ph img { object-position: 45% 40%; }
}
/* ===== end LIQUIDATION v1 ===== */
/* ===== OFFSHORE HUB (/offshore/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-offshore ===== */
@layer v2.components {
  body.v2-svc.svc-offshore .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-offshore .sv-mx tbody th small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--text3); }
  body.v2-svc.svc-offshore .sv-hph img { object-position: 55% 40%; }
  body.v2-svc.svc-offshore .sv-led-ph .v2-ph img { object-position: 42% 40%; }
}
/* ===== end OFFSHORE HUB v1 ===== */
/* ===== SECOND OPINION (/second-opinion/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-second-opinion ===== */
@layer v2.components {
  body.v2-svc.svc-second-opinion .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-second-opinion .sv-mx tbody th small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--text3); }
  body.v2-svc.svc-second-opinion .sv-hph img { object-position: 45% 35%; }
  body.v2-svc.svc-second-opinion .sv-led-ph .v2-ph img { object-position: 52% 40%; }
  body.v2-svc.svc-second-opinion .sv-hero .v2-h1 { max-width: 19ch; }
}
/* ===== end SECOND OPINION v1 ===== */
/* ===== FLAG CHIPS (header Moving to Dubai + relocation table) v1, 22 Oct 2026: SVG flags from the header sprite (#fl-*) ===== */
@layer v2.components {
  .v2-flag { display: block; flex: none; width: 20px; height: 14px; border-radius: 2px; overflow: hidden; }
  .v2-ml--flag i { display: flex; font-size: 0; }
  .hb-flag .v2-flag { display: inline-block; vertical-align: -2px; }
  .hb-flag { font-size: 0; }
}
/* ===== end FLAG CHIPS v1 ===== */
/* ===== SERVICE FORMS v1 (lead form card on service-system pages: /second-opinion/, /contact/), 22 Oct 2026: scoped to body.v2-svc .sv-fm ===== */
@layer v2.components {
  body.v2-svc .sv-fm-g { row-gap: var(--s6); align-items: start; }
  @media (min-width: 1024px) {
    body.v2-svc .sv-fm-g > :first-child { grid-column: 1 / span 5; padding-right: var(--s5); }
    body.v2-svc .sv-fm-g > :last-child { grid-column: 6 / span 7; }
  }
  body.v2-svc .sv-fm-g .v2-lead { margin-top: var(--s4); max-width: 46ch; }
  body.v2-svc .sv-fm-next { margin-top: var(--s6); padding: var(--s5) var(--s5) var(--s5) var(--s6); border-radius: var(--r-md); background: var(--fx-indigo); box-shadow: inset 3px 0 0 var(--indigo); }
  body.v2-svc .sv-fm-next .v2-h4 { margin-bottom: var(--s2); }
  body.v2-svc .sv-fm-next p { color: var(--text2); line-height: 1.6; }
  body.v2-svc .sv-fm { position: relative; padding: var(--s6); border-radius: var(--r-xl); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; }
  body.v2-svc .sv-fm::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); }
  @media (max-width: 767px) { body.v2-svc .sv-fm { padding: var(--s5); } }
  body.v2-svc .sv-fm form { display: grid; gap: var(--s4); margin: 0; padding: 0; border: 0; background: none; box-shadow: none; max-width: none; }
  body.v2-svc .sv-fm .field-row { display: grid; gap: var(--s4); }
  @media (min-width: 600px) { body.v2-svc .sv-fm .field-row { grid-template-columns: 1fr 1fr; } }
  body.v2-svc .sv-fm .field { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; }
  body.v2-svc .sv-fm .field label { font-size: 13px; font-weight: 700; line-height: 1.35; color: var(--text); }
  body.v2-svc .sv-fm .field label .req { color: var(--gold-ink); }
  body.v2-svc .sv-fm .field label .opt-tag { font-weight: 500; color: var(--text3); }
  body.v2-svc .sv-fm .field input, body.v2-svc .sv-fm .field select, body.v2-svc .sv-fm .field textarea { width: 100%; min-height: 48px; padding: 11px 14px; border-radius: var(--r-md); border: 1.5px solid var(--line-strong); background: var(--white); color: var(--text); font-family: inherit; font-size: 16px; line-height: 1.4; box-shadow: none; transform: none; transition: border-color var(--dur-2) var(--ease-std), box-shadow var(--dur-2) var(--ease-std); }
  body.v2-svc .sv-fm .field textarea { min-height: 120px; resize: vertical; }
  body.v2-svc .sv-fm .field select { -webkit-appearance: none; appearance: none; padding-right: 40px; background-image: linear-gradient(45deg, transparent 50%, var(--text3) 50%), linear-gradient(135deg, var(--text3) 50%, transparent 50%); background-position: calc(100% - 20px) 52%, calc(100% - 15px) 52%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
  body.v2-svc .sv-fm .field input::placeholder, body.v2-svc .sv-fm .field textarea::placeholder { color: var(--text3); opacity: 1; }
  body.v2-svc .sv-fm .field input:hover, body.v2-svc .sv-fm .field select:hover, body.v2-svc .sv-fm .field textarea:hover { border-color: var(--fx-indigo-line); }
  body.v2-svc .sv-fm .field input:focus, body.v2-svc .sv-fm .field select:focus, body.v2-svc .sv-fm .field textarea:focus { outline: none; border-color: var(--indigo); box-shadow: 0 0 0 3px var(--fx-indigo); transform: none; }
  body.v2-svc .sv-fm .dmc-phone-btn { min-height: 48px; border: 1.5px solid var(--line-strong); border-right: 0; border-radius: var(--r-md) 0 0 var(--r-md); background: var(--ivory); color: var(--text); }
  body.v2-svc .sv-fm .dmc-err { margin: 2px 0 0; font-size: 13px; color: var(--danger-ink); }
  body.v2-svc .sv-fm-act { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); margin-top: var(--s2); }
  body.v2-svc .sv-fm-act .form-note { flex: 1 1 220px; margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--text3); }
  body.v2-svc .sv-fm-fb { margin-top: var(--s4); padding: var(--s4) var(--s5); border-radius: var(--r-md); background: var(--fx-gold); box-shadow: inset 3px 0 0 var(--fx-gold-line); color: var(--text); font-size: 15px; line-height: 1.55; }
  body.v2-svc .sv-fm-fb a { color: var(--indigo); font-weight: 600; }
}
/* ===== end SERVICE FORMS v1 ===== */
/* ===== ABOUT (/about/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-about ===== */
@layer v2.components {
  body.v2-svc.svc-about .sv-hph img { object-position: 50% 62%; }
  body.v2-svc.svc-about .sv-hero--ph .v2-h1 { max-width: 15ch; }
  body.v2-svc.svc-about .ab-fd-g { row-gap: var(--s6); align-items: center; }
  @media (min-width: 1024px) {
    body.v2-svc.svc-about .ab-fd-g > :first-child { grid-column: 1 / span 5; }
    body.v2-svc.svc-about .ab-fd-g > :last-child { grid-column: 7 / span 6; }
  }
  body.v2-svc.svc-about .ab-fd-ph { margin: 0; border-radius: var(--r-xl); overflow: hidden; background: var(--lilac-200); box-shadow: var(--shadow-card); }
  body.v2-svc.svc-about .ab-fd-ph img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 18%; }
  @media (max-width: 767px) { body.v2-svc.svc-about .ab-fd-ph img { aspect-ratio: 1 / 1; object-position: 50% 15%; } }
  body.v2-svc.svc-about #founder .v2-lead { margin-top: var(--s4); max-width: 52ch; }
  body.v2-svc.svc-about .ab-fd-body { margin-top: var(--s4); display: grid; gap: var(--s3); max-width: 60ch; color: var(--text2); line-height: 1.65; }
  body.v2-svc.svc-about .ab-fd-facts { margin: var(--s6) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s4); }
  body.v2-svc.svc-about .ab-fd-facts > div { padding-top: var(--s3); border-top: 2px solid var(--line); }
  body.v2-svc.svc-about .ab-fd-facts > div:first-child { border-top-color: var(--gold); }
  body.v2-svc.svc-about .ab-fd-facts dt { font-size: 12.5px; font-weight: 600; line-height: 1.35; color: var(--text3); }
  body.v2-svc.svc-about .ab-fd-facts dd { margin: 4px 0 0; font-family: var(--serif); font-size: clamp(1.625rem, 1.4rem + .8vw, 2.125rem); font-weight: 500; line-height: 1.1; color: var(--indigo); font-variant-numeric: tabular-nums; }
  body.v2-svc.svc-about .ab-fd-foot { margin-top: var(--s5); font-size: var(--fs-small); line-height: 1.6; color: var(--text3); max-width: 62ch; }
  body.v2-svc.svc-about .ab-fd-foot a, body.v2-svc.svc-about .ab-lc-note a { color: var(--indigo); }
  body.v2-svc.svc-about .ab-lc-g { row-gap: var(--s6); align-items: start; }
  @media (min-width: 1024px) {
    body.v2-svc.svc-about .ab-lc-g > :first-child { grid-column: 1 / span 5; }
    body.v2-svc.svc-about .ab-lc-g > :last-child { grid-column: 7 / span 6; }
  }
  body.v2-svc.svc-about #licence .v2-lead { margin-top: var(--s4); }
  body.v2-svc.svc-about .ab-lc-note { margin-top: var(--s5); color: var(--text2); line-height: 1.65; max-width: 48ch; }
  body.v2-svc.svc-about .ab-reg { position: relative; margin: 0; padding: var(--s3) var(--s6); border-radius: var(--r-xl); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; }
  body.v2-svc.svc-about .ab-reg::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); }
  body.v2-svc.svc-about .ab-reg > div { display: grid; gap: 2px var(--s5); padding: var(--s4) 0; border-top: 1px solid var(--line); }
  body.v2-svc.svc-about .ab-reg > div:first-child { border-top: 0; }
  @media (min-width: 600px) { body.v2-svc.svc-about .ab-reg > div { grid-template-columns: 150px 1fr; align-items: baseline; } }
  body.v2-svc.svc-about .ab-reg dt { font-size: 13px; font-weight: 600; color: var(--text3); }
  body.v2-svc.svc-about .ab-reg dd { margin: 0; font-size: 15.5px; font-weight: 600; line-height: 1.5; color: var(--text); }
  @media (max-width: 767px) { body.v2-svc.svc-about .ab-reg { padding: var(--s2) var(--s5); } }
  body.v2-svc.svc-about .ab-svc { row-gap: var(--s2); }
  body.v2-svc.svc-about #services .sv-mx-foot a { color: var(--indigo); }
}
/* ===== end ABOUT v1 ===== */
/* ===== CONTACT (/contact/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-contact ===== */
@layer v2.components {
  body.v2-svc.svc-contact .sv-hph img { object-position: 60% 40%; }
  body.v2-svc.svc-contact .sv-hero--ph .v2-h1 { max-width: 14ch; }
  body.v2-svc.svc-contact .ct-ways { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 600px) { body.v2-svc.svc-contact .ct-ways { grid-template-columns: 1fr 1fr; } }
  @media (min-width: 1024px) { body.v2-svc.svc-contact .ct-ways { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  body.v2-svc.svc-contact .ct-ways a { display: flex; flex-direction: column; height: 100%; padding: var(--s5); border-radius: 20px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); color: inherit; text-decoration: none; transition: transform var(--dur-3) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
  body.v2-svc.svc-contact .ct-ways a:hover { transform: translateY(-3px); border-color: var(--fx-indigo-line); }
  body.v2-svc.svc-contact .ct-ways .sv-ic { margin-bottom: var(--s4); }
  body.v2-svc.svc-contact .ct-ways .sv-ic svg { stroke-width: 1.7; }
  body.v2-svc.svc-contact .ct-ways .sv-ic use[href="#mi-mail"], body.v2-svc.svc-contact .ct-ways .sv-ic use[href="#mi-cal"] { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; }
  body.v2-svc.svc-contact .ct-ways b { font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-contact .ct-ways a > span:not(.sv-ic) { margin-top: 4px; font-size: 15px; line-height: 1.5; color: var(--text2); font-variant-numeric: tabular-nums; }
  body.v2-svc.svc-contact .ct-ways small { margin-top: auto; padding-top: var(--s5); display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--indigo); }
  body.v2-svc.svc-contact .ct-ways small svg { transition: transform var(--dur-2) var(--ease-std); }
  body.v2-svc.svc-contact .ct-ways a:hover small svg { transform: translateX(3px); }
  body.v2-svc.svc-contact .ct-ways .ct-ic-wa { background: rgba(18,140,75,.10); color: #128C4B; }
  body.v2-svc.svc-contact .ct-loc { margin-top: var(--s5); }
  body.v2-svc.svc-contact .ct-next { margin: var(--s3) 0 0; padding: 0; list-style: none; counter-reset: ct-n; display: grid; gap: var(--s3); }
  body.v2-svc.svc-contact .ct-next li { counter-increment: ct-n; display: grid; grid-template-columns: 26px 1fr; gap: var(--s2); color: var(--text2); line-height: 1.55; }
  body.v2-svc.svc-contact .ct-next li::before { content: counter(ct-n, decimal-leading-zero); padding-top: 2px; font-size: 12px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
  body.v2-svc.svc-contact .ct-next a { color: var(--indigo); font-weight: 600; }
  body.v2-svc.svc-contact .ct-guide { margin-top: var(--s6); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4) var(--s6); padding: var(--s5) var(--s6); border-radius: var(--r-lg); background: linear-gradient(90deg, var(--fx-indigo), var(--fx-indigo-2)); box-shadow: inset 4px 0 0 var(--indigo); }
  body.v2-svc.svc-contact .ct-guide p { max-width: 60ch; color: var(--text2); line-height: 1.55; }
  body.v2-svc.svc-contact .sv-sec--flush-b { padding-bottom: var(--sv-y); }
  @media (prefers-reduced-motion: reduce) { body.v2-svc.svc-contact .ct-ways a, body.v2-svc.svc-contact .ct-ways small svg { transition: none; } }
  @media (prefers-color-scheme: dark) { body.v2-svc.svc-contact .ct-ways .ct-ic-wa { background: rgba(37,211,102,.12); color: #4ade80; } }
}
/* ===== end CONTACT v1 ===== */
/* ===== HOW WE WORK (/pricing/) v1, 22 Oct 2026: scoped to body.v2-svc.svc-pricing ===== */
@layer v2.components {
  body.v2-svc.svc-pricing .sv-hph img { object-position: 55% 45%; }
  body.v2-svc.svc-pricing .sv-hero--ph .v2-h1 { max-width: 15ch; }
  body.v2-svc.svc-pricing .sv-mx tbody th b { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-svc.svc-pricing .sv-mx tbody th small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--text3); }
  body.v2-svc.svc-pricing .sv-mx-foot a { color: var(--indigo); }
  body.v2-svc.svc-pricing .sv-led-ph .v2-ph img { object-position: 40% 50%; }
  body.v2-svc.svc-pricing .sv-fam .v2-ph img { object-position: 45% 50%; }
  body.v2-svc.svc-pricing .pr-q { margin-top: var(--s4); }
  body.v2-svc.svc-pricing .pr-q .v2-quiet { padding: 0; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 600; color: var(--text2); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 3px; cursor: pointer; }
  body.v2-svc.svc-pricing .pr-q .v2-quiet:hover { color: var(--indigo); }
}
/* ===== end HOW WE WORK v1 ===== */
/* ===== HOW WE WORK (/pricing/) v1 addendum, 22 Oct 2026: ledger photo keeps a 4:5 frame instead of stretching ===== */
@layer v2.components {
  @media (min-width: 1024px) {
    body.v2-svc.svc-pricing .sv-led-ph { align-self: start; }
    body.v2-svc.svc-pricing .sv-led-ph .v2-ph, body.v2-svc.svc-pricing .sv-led-ph .v2-ph img { height: auto; }
    body.v2-svc.svc-pricing .sv-led-ph .v2-ph img { aspect-ratio: 4 / 5; object-position: 38% 50%; }
  }
}
/* ===== end HOW WE WORK v1 addendum ===== */
/* ===== ABOUT (/about/) v1 addendum, 22 Oct 2026: approach photo focal point ===== */
@layer v2.components { body.v2-svc.svc-about .sv-fam .v2-ph img { object-position: 30% 45%; } }
/* ===== end ABOUT v1 addendum ===== */
/* ===== RELOCATION PAGES v1 (country founder pages + /relocation-to-dubai/), 22 Oct 2026: scoped to body.v2-svc.v2-rel =====
   Service family ("the advisor's brief") with a relocation personality: hero photo + country fact panel,
   SVG flag chip in the breadcrumb, the move as a timeline (home-country exit first), route decision table,
   chaptered guide with a sticky rail, hub arrivals board and route map. Tokens only; /assets/js/rel.js for the rail. */
@layer v2.components {
  body.v2-rel .rl-flag { display: inline-block; vertical-align: -2px; margin-right: 8px; box-shadow: 0 0 0 1px var(--line-strong); border-radius: 2px; }
  body.v2-rel .rl-bc-f { display: inline-flex; align-items: center; }
  body.v2-rel .sv-hfacts dd { font-size: 15px; }
  @media (min-width: 1024px) { body.v2-rel .sv-hero--ph .v2-h1 { max-width: 14ch; } }

  /* key takeaways + who handles which side */
  body.v2-rel .rl-kt-t { font-size: var(--fs-label); line-height: 1.3; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); font-family: var(--font); }
  body.v2-rel .rl-kt .kt-list { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: var(--s3); }
  body.v2-rel .rl-kt .kt-list li { position: relative; margin: 0; padding: 0 0 0 22px; font-size: var(--fs-body); line-height: 1.6; color: var(--text); background: none; border: 0; }
  body.v2-rel .rl-kt .kt-list li::before { content: ""; position: absolute; left: 2px; top: .66em; width: 7px; height: 7px; border-radius: 2px; background: var(--indigo); transform: rotate(45deg); }
  body.v2-rel .rl-kt .kt-list li:first-child { font-size: var(--fs-deck); line-height: 1.55; }
  body.v2-rel .rl-sides p + p { margin-top: var(--s3); }
  body.v2-rel .rl-sides p b { color: var(--text); }

  /* the move, in order */
  body.v2-rel .rl-jr { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: rl; }
  body.v2-rel .rl-jr > li { position: relative; display: grid; gap: var(--s2); padding: var(--s5) 0 var(--s5) 60px; border-top: 1px solid var(--line); }
  body.v2-rel .rl-jr > li:last-child { border-bottom: 1px solid var(--line); }
  body.v2-rel .rl-jr > li::before { content: ""; position: absolute; left: 19px; top: 0; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--fx-indigo-line), var(--fx-gold-line)); }
  body.v2-rel .rl-jr > li:first-child::before { top: var(--s5); }
  body.v2-rel .rl-jr > li:last-child::before { bottom: calc(100% - var(--s5) - 20px); }
  body.v2-rel .rl-jr-n { position: absolute; left: 0; top: var(--s5); width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 2px solid var(--indigo); font-size: 14px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }
  body.v2-rel .rl-jr > li:first-child .rl-jr-n { border-color: var(--gold); }
  body.v2-rel .rl-jr h3 { padding-top: 8px; }
  body.v2-rel .rl-jr-c { color: var(--text2); line-height: 1.55; }
  body.v2-rel .rl-who { justify-self: start; display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; line-height: 1.4; background: var(--fx-indigo); color: var(--text2); }
  body.v2-rel .rl-who::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--indigo); flex: none; }
  body.v2-rel .rl-who--home { background: var(--fx-gold); }
  body.v2-rel .rl-who--home::before { background: var(--gold); }
  body.v2-rel .rl-who--both::before { background: linear-gradient(90deg, var(--indigo) 50%, var(--gold) 50%); }
  @media (min-width: 1024px) {
    body.v2-rel .rl-jr > li { grid-template-columns: 3fr 6fr 3fr; gap: var(--s6); align-items: start; }
    body.v2-rel .rl-jr-c { padding-top: 10px; }
    body.v2-rel .rl-who { margin-top: 8px; justify-self: end; }
  }
  body.v2-rel .rl-checks { margin-top: var(--s8); padding: var(--s6); border-radius: var(--r-xl); background: var(--ivory); scroll-margin-top: calc(var(--v2-hd-hc, 64px) + 56px); }
  body.v2-rel .rl-checks-g { margin-top: var(--s5); display: grid; gap: var(--s5) var(--s7); }
  @media (min-width: 768px) { body.v2-rel .rl-checks-g { grid-template-columns: 1fr 1fr; } }
  body.v2-rel .rl-cl { list-style: none; margin: var(--s3) 0 0; padding: 0; }
  body.v2-rel .rl-cl li { position: relative; padding: var(--s3) 0 var(--s3) 30px; border-top: 1px solid var(--line); color: var(--text2); line-height: 1.5; background: none; }
  body.v2-rel .rl-cl li::before { content: ""; position: absolute; left: 2px; top: calc(var(--s3) + 3px); width: 16px; height: 16px; border-radius: 5px; border: 1.5px solid var(--indigo); background: var(--surface); }
  body.v2-rel .rl-cl li::after { content: ""; position: absolute; left: 7px; top: calc(var(--s3) + 6px); width: 5px; height: 8px; border: solid var(--indigo); border-width: 0 1.7px 1.7px 0; transform: rotate(45deg); }
  @media (max-width: 767px) { body.v2-rel .rl-checks { padding: var(--s5); border-radius: var(--r-lg); } }

  /* route decision table */
  body.v2-rel .rl-mx-w { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); overflow: hidden; }
  body.v2-rel .rl-mx { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.55; }
  body.v2-rel .rl-mx caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  body.v2-rel .rl-mx thead th { padding: 14px var(--s5); text-align: left; font-size: 12px; font-weight: 700; letter-spacing: .02em; color: var(--text3); background: var(--ivory); border-bottom: 1px solid var(--line); }
  body.v2-rel .rl-mx thead th:last-child { color: var(--indigo); }
  body.v2-rel .rl-mx td, body.v2-rel .rl-mx tbody th { padding: var(--s4) var(--s5); text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
  body.v2-rel .rl-mx tbody tr:last-child > * { border-bottom: 0; }
  body.v2-rel .rl-mx td { color: var(--text2); width: 62%; }
  body.v2-rel .rl-mx tbody th { font-weight: 700; color: var(--text); background: var(--fx-indigo-2, var(--fx-indigo)); }
  body.v2-rel .rl-mx tbody tr { transition: background var(--dur-2) var(--ease-std); }
  body.v2-rel .rl-mx tbody tr:hover td { background: var(--fx-indigo-2, transparent); }
  @media (max-width: 767px) {
    body.v2-rel .rl-mx thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    body.v2-rel .rl-mx, body.v2-rel .rl-mx tbody, body.v2-rel .rl-mx tr, body.v2-rel .rl-mx td, body.v2-rel .rl-mx tbody th { display: block; width: auto; }
    body.v2-rel .rl-mx tr { border-bottom: 1px solid var(--line); }
    body.v2-rel .rl-mx tbody tr:last-child { border-bottom: 0; }
    body.v2-rel .rl-mx td, body.v2-rel .rl-mx tbody th { border: 0; padding: var(--s3) var(--s4) 0; }
    body.v2-rel .rl-mx tbody th { padding: var(--s2) var(--s4) var(--s4); background: none; color: var(--indigo); }
    body.v2-rel .rl-mx td::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 700; color: var(--text3); margin-bottom: 2px; }
  }

  /* the guide: sticky chapter rail + reading column */
  body.v2-rel .rl-guide { background: linear-gradient(180deg, var(--white) 0%, var(--ivory) 100%); }
  body.v2-rel .rl-rail { display: none; }
  @media (min-width: 1024px) {
    body.v2-rel .rl-guide-g > .rl-rail { display: block; grid-column: 1 / span 3; position: sticky; top: calc(var(--v2-hd-hc, 60px) + var(--sv-nav-h) + 24px); align-self: start; }
    body.v2-rel .rl-guide-g > .rl-main { grid-column: 5 / span 8; }
  }
  body.v2-rel .rl-rail-k { font-size: var(--fs-label); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); padding-bottom: var(--s3); }
  body.v2-rel .rl-rail-l { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--line); }
  body.v2-rel .rl-rail-l a { position: relative; display: flex; gap: 10px; padding: 7px 0 7px 16px; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--text3); text-decoration: none; transition: color var(--dur-2) var(--ease-std); }
  body.v2-rel .rl-rail-l a span { font-size: 11.5px; font-weight: 700; color: var(--line-strong); font-variant-numeric: tabular-nums; padding-top: 1px; transition: color var(--dur-2) var(--ease-std); }
  body.v2-rel .rl-rail-l a::before { content: ""; position: absolute; left: -1px; top: 6px; bottom: 6px; width: 2px; border-radius: 2px; background: var(--indigo); transform: scaleY(0); transition: transform var(--dur-3) var(--ease-std); }
  body.v2-rel .rl-rail-l a:hover { color: var(--text); }
  body.v2-rel .rl-rail-l a[aria-current="true"] { color: var(--indigo); }
  body.v2-rel .rl-rail-l a[aria-current="true"] span { color: var(--gold-ink); }
  body.v2-rel .rl-rail-l a[aria-current="true"]::before { transform: scaleY(1); }
  body.v2-rel .rl-ch { max-width: var(--w-read); scroll-margin-top: calc(var(--v2-hd-hc, 64px) + 56px); }
  body.v2-rel .rl-ch + .rl-ch { margin-top: var(--s8); padding-top: var(--s8); border-top: 1px solid var(--line); }
  body.v2-rel .rl-ch-n { font-size: 13px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
  body.v2-rel .rl-ch-h { margin-top: var(--s2); font-size: clamp(1.5rem, 1.32rem + .7vw, 2rem); }
  body.v2-rel .rl-ch > p { margin-top: var(--s4); color: var(--text2); line-height: 1.7; }
  body.v2-rel .rl-ch > .rl-ch-h + p { margin-top: var(--s5); }
  body.v2-rel .rl-ch .rl-h3 { margin-top: var(--s6); }
  body.v2-rel .rl-ch .rl-h3 + p { margin-top: var(--s2); }
  body.v2-rel .rl-ch p a { text-decoration: underline; text-decoration-color: var(--fx-indigo-line); text-underline-offset: 3px; }
  body.v2-rel .rl-ch p a:hover { text-decoration-color: var(--indigo); }
  body.v2-rel .rl-note { margin-top: var(--s5); padding: var(--s4) var(--s5); border-radius: var(--r-md); background: var(--fx-gold); box-shadow: inset 3px 0 0 var(--gold); }
  body.v2-rel .rl-note p { color: var(--text); line-height: 1.6; }
  body.v2-rel .rl-note p + p { margin-top: var(--s2); }
  body.v2-rel .rl-tax { margin-top: var(--s5); display: grid; gap: var(--s3); }
  @media (min-width: 768px) { body.v2-rel .rl-tax { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  body.v2-rel .rl-tax > div { padding: var(--s4) var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
  body.v2-rel .rl-tax b { display: block; color: var(--indigo); font-size: 15px; }
  body.v2-rel .rl-tax p { margin-top: var(--s2); font-size: 14.5px; line-height: 1.55; color: var(--text2); }
  body.v2-rel .rl-ph { margin-top: var(--s5); border-radius: var(--r-lg); overflow: hidden; background: var(--lilac-200); }
  body.v2-rel .rl-ph img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

  /* ===== hub (/relocation-to-dubai/) ===== */
  body.v2-rel .rl-map { position: relative; margin: 0; padding: var(--s5); border-radius: var(--r-xl); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; }
  body.v2-rel .rl-map::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); }
  body.v2-rel .hb-map { width: 100%; height: auto; display: block; overflow: visible; }
  body.v2-rel .hb-map .m-grid { stroke: var(--line-strong); stroke-width: 1; stroke-dasharray: 1 7; fill: none; opacity: .8; }
  body.v2-rel .hb-map .m-arc { fill: none; stroke: var(--indigo); stroke-width: 1.3; stroke-dasharray: 3 5; opacity: .6; }
  body.v2-rel .hb-map .m-dot { fill: var(--surface); stroke: var(--indigo); stroke-width: 1.8; }
  body.v2-rel .hb-map .m-hub { fill: var(--gold); stroke: var(--gold-ink); stroke-width: 1.5; }
  body.v2-rel .hb-map .m-ring { fill: none; stroke: var(--gold); stroke-width: 1.2; transform-box: fill-box; transform-origin: center; }
  body.v2-rel .hb-map text { paint-order: stroke; stroke: var(--surface); stroke-width: 4px; stroke-linejoin: round; }
  body.v2-rel .hb-map .m-code { font: 600 11px ui-monospace, "SF Mono", Menlo, Consolas, monospace; fill: var(--text2); letter-spacing: .06em; }
  body.v2-rel .hb-map .m-code--hub { fill: var(--gold-ink); }
  body.v2-rel .hb-map .m-city { font: 500 17px var(--serif); fill: var(--text); }
  @media (prefers-reduced-motion: no-preference) {
    body.v2-rel .hb-map .m-ring { animation: rl-pulse 2.8s ease-out infinite; }
    @keyframes rl-pulse { from { transform: scale(1); opacity: .9; } to { transform: scale(2.6); opacity: 0; } }
  }
  body.v2-rel .rl-map-l { margin-top: var(--s3); display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--text3); }

  /* arrivals board */
  body.v2-rel .hb-board { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: var(--surface); box-shadow: var(--shadow-card); }
  body.v2-rel .hb-board-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 20px; padding: 14px var(--s5); background: var(--indigo-solid); color: #fff; }
  body.v2-rel .hb-board-t { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #fff; }
  body.v2-rel .hb-board-t span { font-weight: 500; letter-spacing: .02em; text-transform: none; opacity: .88; }
  body.v2-rel .hb-board-clock { font: 500 13px ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; color: #fff; opacity: .92; white-space: nowrap; }
  body.v2-rel .hb-tbl { width: 100%; border-collapse: collapse; text-align: left; }
  body.v2-rel .hb-tbl th, body.v2-rel .hb-tbl td { padding: 16px; border-bottom: 1px solid var(--line); vertical-align: middle; }
  body.v2-rel .hb-tbl thead th { padding: 12px 16px; font-size: 12px; font-weight: 700; letter-spacing: .02em; color: var(--text3); background: var(--ivory); white-space: nowrap; }
  body.v2-rel .hb-tbl tr > :first-child { padding-left: var(--s5); }
  body.v2-rel .hb-tbl tr > :last-child { padding-right: var(--s5); text-align: right; }
  body.v2-rel .hb-tbl tbody tr:last-child > * { border-bottom: 0; }
  body.v2-rel .hb-tbl tbody tr { position: relative; transition: background var(--dur-2) var(--ease-std); }
  body.v2-rel .hb-tbl tbody tr:hover, body.v2-rel .hb-tbl tbody tr:focus-within { background: var(--fx-indigo-2, var(--fx-indigo)); }
  body.v2-rel .hb-from { font-weight: 400; white-space: nowrap; }
  body.v2-rel .hb-flag { display: inline-block; margin-right: 12px; vertical-align: middle; font-size: 0; }
  body.v2-rel .hb-flag .v2-flag { box-shadow: 0 0 0 1px var(--line-strong); }
  body.v2-rel .hb-city { display: inline-flex; flex-direction: column; vertical-align: middle; font-family: var(--serif); font-weight: 500; font-size: 19px; line-height: 1.15; color: var(--text); }
  body.v2-rel .hb-ctry { font-family: var(--font); font-size: 12.5px; font-weight: 500; color: var(--text3); margin-top: 3px; }
  body.v2-rel .hb-flap { display: inline-flex; gap: 3px; }
  body.v2-rel .hb-flap span { display: inline-grid; place-items: center; width: 22px; height: 30px; border-radius: 4px; background: var(--text); color: var(--surface); font: 600 15px/1 ui-monospace, "SF Mono", Menlo, Consolas, monospace; position: relative; overflow: hidden; }
  body.v2-rel .hb-flap span::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: color-mix(in srgb, var(--surface) 34%, transparent); }
  body.v2-rel .hb-num { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; font-size: 14px; color: var(--text); white-space: nowrap; }
  body.v2-rel .hb-issue b { display: block; font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--text); margin-bottom: 4px; }
  body.v2-rel .hb-issue span { display: block; font-size: 14px; line-height: 1.5; color: var(--text2); max-width: 52ch; }
  body.v2-rel .hb-go { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--indigo); border: 1px solid var(--fx-indigo-line); border-radius: 99px; padding: 8px 14px; text-decoration: none; transition: background var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
  body.v2-rel .hb-go i { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); flex: none; }
  body.v2-rel .hb-go::after { content: ""; position: absolute; inset: 0; }
  body.v2-rel .hb-tbl tbody tr:hover .hb-go, body.v2-rel .hb-go:focus-visible { background: var(--indigo-solid); border-color: var(--indigo-solid); color: #fff; }
  body.v2-rel .rl-after { margin-top: var(--s5); max-width: 76ch; color: var(--text2); line-height: 1.6; }
  @media (max-width: 1100px) { body.v2-rel .hb-tbl th, body.v2-rel .hb-tbl td { padding-left: 12px; padding-right: 12px; } }
  @media (max-width: 859px) {
    body.v2-rel .hb-tbl, body.v2-rel .hb-tbl tbody { display: block; }
    body.v2-rel .hb-tbl thead { display: block; position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    body.v2-rel .hb-tbl tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "from code" "km fl" "issue issue" "go go"; gap: 10px 12px; padding: 18px; border-bottom: 1px solid var(--line); }
    body.v2-rel .hb-tbl tbody tr:last-child { border-bottom: 0; }
    body.v2-rel .hb-tbl tbody tr > * { display: block; padding: 0 !important; border: 0; text-align: left; }
    body.v2-rel .hb-from { grid-area: from; white-space: normal; }
    body.v2-rel .hb-code { grid-area: code; justify-self: end; }
    body.v2-rel .hb-km { grid-area: km; }
    body.v2-rel .hb-fl { grid-area: fl; justify-self: end; }
    body.v2-rel .hb-issue { grid-area: issue; }
    body.v2-rel .hb-gocell { grid-area: go; }
    body.v2-rel .hb-num { font-size: 13.5px; color: var(--text2); }
    body.v2-rel .hb-num::before { content: attr(data-label); margin-right: 8px; font-family: var(--font); font-size: 12px; font-weight: 600; color: var(--text3); }
    body.v2-rel .hb-board-top { padding-left: 18px; padding-right: 18px; }
  }

  /* four tracks */
  body.v2-rel .rl-tracks { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 900px) { body.v2-rel .rl-tracks { grid-template-columns: 1fr 1fr; } }
  body.v2-rel .rl-track { display: flex; flex-direction: column; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); overflow: hidden; }
  body.v2-rel .rl-track-ph img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
  body.v2-rel .rl-track-b { flex: 1; display: flex; flex-direction: column; padding: var(--s5) var(--s6) var(--s5); }
  @media (max-width: 767px) { body.v2-rel .rl-track-b { padding: var(--s5); } }
  body.v2-rel .rl-track-n { font-size: 13px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
  body.v2-rel .rl-track h3 { margin-top: 4px; }
  body.v2-rel .rl-track-b > p { margin-top: var(--s3); color: var(--text2); line-height: 1.6; }
  body.v2-rel .rl-kit { list-style: none; margin: var(--s3) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
  body.v2-rel .rl-kit li { font-size: 12.5px; font-weight: 600; color: var(--text2); background: var(--fx-indigo); border-radius: 99px; padding: 4px 11px; }
  body.v2-rel .rl-links { list-style: none; margin: auto 0 0; padding: var(--s4) 0 0; }
  body.v2-rel .rl-links a { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 10px 0; border-top: 1px solid var(--line); font-size: 14.5px; font-weight: 600; line-height: 1.4; color: var(--text); text-decoration: none; transition: color var(--dur-2) var(--ease-std); }
  body.v2-rel .rl-links a svg { flex: none; color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-rel .rl-links a:hover { color: var(--indigo); }
  body.v2-rel .rl-links a:hover svg { transform: translateX(3px); }

  /* four stops */
  body.v2-rel .rl-stops { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 768px) { body.v2-rel .rl-stops { grid-template-columns: 1fr 1fr; } }
  @media (min-width: 1024px) { body.v2-rel .rl-stops { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  body.v2-rel .rl-stops > li { position: relative; padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
  body.v2-rel .rl-stops > li::before { content: ""; position: absolute; left: var(--s5); right: var(--s5); top: 0; height: 3px; border-radius: 0 0 3px 3px; background: var(--fx-indigo-line); }
  body.v2-rel .rl-stops > li:first-child::before { background: var(--gold); }
  body.v2-rel .rl-stops-w { font-size: 12.5px; font-weight: 700; color: var(--gold-ink); }
  body.v2-rel .rl-stops h3 { margin-top: 4px; }
  body.v2-rel .rl-stops ul { list-style: none; margin: var(--s3) 0 0; padding: 0; display: grid; gap: var(--s2); }
  body.v2-rel .rl-stops ul li { position: relative; padding-left: 16px; font-size: 14.5px; line-height: 1.55; color: var(--text2); }
  body.v2-rel .rl-stops ul li::before { content: ""; position: absolute; left: 0; top: .7em; width: 7px; height: 2px; background: var(--indigo); }
  body.v2-rel .rl-stops-note { margin-top: var(--s5); padding: var(--s4) var(--s5); border-radius: var(--r-md); background: var(--fx-indigo); box-shadow: inset 3px 0 0 var(--indigo); color: var(--text2); line-height: 1.55; max-width: 80ch; }
  body.v2-rel .rl-stops-note b { color: var(--text); }
  body.v2-rel .rl-rel3 { }
  @media (min-width: 1024px) { body.v2-rel .sv-rel.rl-rel3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }


  /* hub hero: route map beside the headline */
  @media (min-width: 1024px) {
    body.v2-rel .rl-hero--hub .sv-hero-g > .sv-hero-t { grid-column: 1 / span 6; }
    body.v2-rel .rl-hero--hub .sv-hero-g > .rl-map { grid-column: 7 / span 6; }
  }
  body.v2-rel .rl-track-ph img.rl-op-top { object-position: 50% 18%; }
  @media (prefers-reduced-motion: reduce) { body.v2-rel .rl-rail-l a, body.v2-rel .rl-rail-l a::before, body.v2-rel .hb-go, body.v2-rel .rl-links a svg { transition: none; } }
  @media (max-width: 767px) { body.v2-rel .sv-hfacts dd { font-size: 14.5px; } }
}
/* ===== end RELOCATION PAGES v1 ===== */

/* ===== BEFORE YOU BUILD v1 (/before-you-build/ hub, 12 stage hubs, leaf briefs), 22 Oct 2026: scoped to body.v2-byb =====
   One hub (.bb-idx tabbed stage index), one stage template (.bb-qs question rows), one leaf template
   ("advisor's brief": .bb-layout = .bb-article reading column + sticky .bb-rail with contents and advisor card).
   Shared pieces: .bb-hero, .bb-sum (At a glance / key takeaways), .bb-sec, .bb-cards, .bb-steps, .bb-note,
   .v2-faq, .bb-revs, .bb-rel, .bb-call. Colours from flipping tokens only. JS: /assets/js/byb.js (contents highlight). */
@layer v2.components {
  body.v2-byb { --bb-read: 760px; --bb-rail: 300px; --bb-y: 48px; }
  @media (min-width: 768px) { body.v2-byb { --bb-y: 64px; } }
  @media (min-width: 1024px) { body.v2-byb { --bb-y: 80px; } }
  body.v2-byb #main { overflow-x: clip; }

  /* ---------- hero ---------- */
  body.v2-byb #main section.bb-hero { position: relative; isolation: isolate; padding: 28px 0 var(--s7); background: linear-gradient(180deg, var(--ivory) 0%, var(--white) 100%); }
  body.v2-byb #main section.bb-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: var(--bg-lattice-img); background-size: 56px 56px; opacity: var(--bg-lattice-o); -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 85%); mask-image: linear-gradient(180deg, #000 0%, transparent 85%); }
  @media (min-width: 1024px) { body.v2-byb #main section.bb-hero { padding: 40px 0 var(--s8); } }
  body.v2-byb .bb-hero-g { display: grid; gap: var(--s6); align-items: center; }
  @media (min-width: 1024px) { body.v2-byb .bb-hero--ph .bb-hero-g { grid-template-columns: minmax(0, 1fr) 440px; column-gap: 72px; } }
  body.v2-byb .bb-hero .v2-h1 { max-width: 20ch; font-size: clamp(2rem, 1.62rem + 1.6vw, 3.25rem); line-height: 1.08; }
  body.v2-byb .bb-hero .v2-deck { margin-top: var(--s5); max-width: 54ch; }
  body.v2-byb .bb-hero .v2-deck b, body.v2-byb .bb-hero .v2-deck strong { color: var(--text); font-weight: 600; }
  body.v2-byb .bb-hero .v2-deck + .v2-deck { margin-top: var(--s3); }
  body.v2-byb .bb-hero .v2-cta-row { margin-top: var(--s6); }
  body.v2-byb .bb-hero-ph { margin: 0; border-radius: var(--r-xl); overflow: hidden; background: var(--lilac-200); }
  body.v2-byb .bb-hero-ph img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
  body.bb-leaf .bb-hero-ph { display: none; }
  @media (min-width: 1024px) { body.bb-leaf .bb-hero-ph { display: block; } }
  @media (max-width: 1023px) { body.v2-byb .bb-hero-ph { border-radius: var(--r-lg); } body.v2-byb .bb-hero-ph img { aspect-ratio: 16 / 9; } }

  /* ---------- summary (At a glance / key takeaways) ---------- */
  body.v2-byb .bb-sum { position: relative; margin: 0 0 var(--s8); padding: var(--s5) var(--s5) var(--s5) calc(var(--s5) + 3px); border-radius: 0 var(--r-lg) var(--r-lg) 0; background: var(--fx-indigo); border: 0; box-shadow: none; }
  body.v2-byb .bb-sum::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--indigo); border-radius: 2px; }
  @media (min-width: 768px) { body.v2-byb .bb-sum { padding: var(--s6) var(--s6) var(--s6) calc(var(--s6) + 3px); } }
  body.v2-byb .bb-sum .quick-answer-label, body.v2-byb .bb-sum-l { display: block; margin: 0 0 var(--s3); padding: 0; font-family: var(--font); font-size: 12px; font-weight: 700; line-height: 1.3; letter-spacing: .1em; text-transform: uppercase; color: var(--indigo); }
  body.v2-byb .bb-sum .quick-answer-label::before, body.v2-byb .bb-sum .quick-answer-label::after { content: none; display: none; }
  body.v2-byb .bb-sum p:not(.bb-sum-l) { font-size: 17.5px; line-height: 1.65; color: var(--text); }
  body.v2-byb .bb-sum ul { list-style: none; margin: 0; padding: 0; }
  body.v2-byb .bb-sum p:not(.bb-sum-l) + ul { margin-top: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--fx-indigo-line); }
  body.v2-byb .bb-sum li { position: relative; padding-left: 26px; font-size: 16px; line-height: 1.6; color: var(--text2); }
  body.v2-byb .bb-sum li + li { margin-top: 10px; }
  body.v2-byb .bb-sum li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 12px; height: 7px; border-left: 2px solid var(--indigo); border-bottom: 2px solid var(--indigo); transform: rotate(-45deg); }
  body.v2-byb .bb-sum li strong, body.v2-byb .bb-sum li b { color: var(--text); font-weight: 600; }
  body.v2-byb .bb-sum-w { padding-top: var(--s7); }
  body.v2-byb .bb-sum-w .bb-sum { max-width: var(--bb-read); margin-bottom: 0; }
  body.v2-byb .bb-top { display: grid; gap: var(--s5); }
  @media (min-width: 1100px) { body.v2-byb .bb-top { grid-template-columns: minmax(0, var(--bb-read)) var(--bb-rail); justify-content: space-between; column-gap: 64px; align-items: start; } }
  @media (max-width: 1099px) { body.v2-byb .bb-top > .bb-rc { display: none; } }

  /* ---------- reading layout + rail ---------- */
  body.v2-byb .bb-layout { padding-block: var(--s7) var(--bb-y); }
  @media (min-width: 1024px) { body.v2-byb .bb-layout { padding-top: var(--s8); } }
  @media (min-width: 1100px) { body.v2-byb .bb-layout { display: grid; grid-template-columns: minmax(0, var(--bb-read)) var(--bb-rail); justify-content: space-between; column-gap: 64px; align-items: start; } }
  body.v2-byb .bb-article { max-width: var(--bb-read); min-width: 0; }
  body.v2-byb .bb-rail { display: none; }
  @media (min-width: 1100px) { body.v2-byb .bb-rail { display: block; align-self: stretch; } }
  body.v2-byb .bb-rail-in { position: sticky; top: calc(var(--v2-hd-cur) + 24px); display: grid; gap: var(--s6); }
  body.v2-byb .bb-toc-h { margin: 0 0 var(--s3); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text3); }
  body.v2-byb .bb-toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--line); }
  body.v2-byb .bb-toc a { display: block; margin-left: -1px; padding: 7px 0 7px 16px; border-left: 2px solid transparent; font-size: 14px; line-height: 1.4; color: var(--text2); text-decoration: none; transition: color var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
  body.v2-byb .bb-toc a:hover { color: var(--indigo); }
  body.v2-byb .bb-toc a[aria-current="true"] { color: var(--indigo); font-weight: 600; border-left-color: var(--indigo); }
  body.v2-byb .bb-rc { position: relative; padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; }
  body.v2-byb .bb-rc::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); }
  body.v2-byb .bb-rc-t { font-family: var(--serif); font-weight: 500; font-size: 20px; line-height: 1.2; color: var(--text); }
  body.v2-byb .bb-rc-d { margin-top: var(--s2); font-size: 14px; line-height: 1.55; color: var(--text3); }
  body.v2-byb .bb-rc-btn { width: 100%; margin-top: var(--s4); min-height: 46px; }
  body.v2-byb .bb-rc-next { display: block; margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid var(--line); text-decoration: none; }
  body.v2-byb .bb-rc-k { display: block; font-size: 12px; font-weight: 600; color: var(--gold-ink); }
  body.v2-byb .bb-rc-q { display: block; margin-top: 4px; font-size: 14.5px; font-weight: 600; line-height: 1.4; color: var(--text); }
  body.v2-byb .bb-rc-next:hover .bb-rc-q { color: var(--indigo); }

  /* ---------- article sections ---------- */
  body.v2-byb .bb-sec { scroll-margin-top: calc(var(--v2-hd-cur) + 24px); }
  body.v2-byb .bb-article > * + * { margin-top: var(--s8); }
  body.v2-byb .bb-article > .bb-sum + * { margin-top: 0; }
  body.v2-byb .bb-sec > * + * { margin-top: var(--s4); }
  body.v2-byb .bb-sec > :is(.bb-cards, .bb-steps, .bb-tbl-w, .bb-list, .bb-qlist, .bb-note, .bb-fig, .v2-faq) { margin-top: var(--s5); }
  body.v2-byb .bb-sec > :is(.bb-cards, .bb-steps, .bb-tbl-w, .bb-list, .bb-qlist, .bb-note, .bb-fig) + p { margin-top: var(--s5); }
  body.v2-byb .bb-h2 { font-family: var(--serif); font-weight: 500; font-size: clamp(1.5rem, 1.32rem + .75vw, 2rem); line-height: 1.16; letter-spacing: -.015em; color: var(--text); text-wrap: balance; scroll-margin-top: calc(var(--v2-hd-cur) + 24px); }
  body.v2-byb .bb-article h3 { font-family: var(--serif); font-weight: 500; font-size: 20px; line-height: 1.25; color: var(--text); letter-spacing: -.01em; }
  body.v2-byb .bb-article p { font-size: 17px; line-height: 1.72; color: var(--text2); }
  body.v2-byb .bb-sec > .bb-h2 + p { font-size: 18px; color: var(--text2); }
  body.v2-byb .bb-article p a, body.v2-byb .bb-article li a { color: var(--indigo); text-decoration: underline; text-decoration-color: var(--fx-indigo-line); text-underline-offset: 3px; }
  body.v2-byb .bb-article p a:hover, body.v2-byb .bb-article li a:hover { text-decoration-color: currentColor; }
  body.v2-byb .bb-article :is(p, li) :is(b, strong) { color: var(--text); font-weight: 600; }
  body.v2-byb .bb-pull { position: relative; padding-left: var(--s5); font-family: var(--serif); font-weight: 500; font-size: clamp(1.25rem, 1.15rem + .4vw, 1.5rem) !important; line-height: 1.35 !important; color: var(--text) !important; letter-spacing: -.01em; text-wrap: balance; }
  body.v2-byb .bb-pull::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 2px; border-radius: 1px; background: var(--gold); }
  body.v2-byb .bb-note { padding: var(--s5); border-radius: var(--r-lg); background: var(--ivory); border: 1px solid var(--line); }
  @media (min-width: 768px) { body.v2-byb .bb-note { padding: var(--s6); } }
  body.v2-byb .bb-note > * + * { margin-top: var(--s3); }
  body.v2-byb .bb-note .bb-pull { padding-left: 0; }
  body.v2-byb .bb-note .bb-pull::before { display: none; }
  body.v2-byb .bb-note-t { font-size: 15px !important; font-weight: 700; color: var(--text) !important; }
  body.v2-byb .bb-note-s { font-size: 13px !important; color: var(--text3) !important; }
  body.v2-byb .bb-tag { font-size: 12px !important; font-weight: 700; line-height: 1.3 !important; letter-spacing: .08em; text-transform: uppercase; color: var(--indigo) !important; }

  /* lists */
  body.v2-byb .bb-list { list-style: none; margin: 0; padding: 0; }
  body.v2-byb .bb-list > li { position: relative; padding-left: 24px; font-size: 17px; line-height: 1.65; color: var(--text2); }
  body.v2-byb .bb-list > li + li { margin-top: 12px; }
  body.v2-byb ul.bb-list > li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--indigo); opacity: .75; }
  body.v2-byb ol.bb-list { counter-reset: bbl; }
  body.v2-byb ol.bb-list > li { counter-increment: bbl; padding-left: 32px; }
  body.v2-byb ol.bb-list > li::before { content: counter(bbl); position: absolute; left: 0; top: .15em; width: 22px; height: 22px; border-radius: 50%; background: var(--fx-indigo); color: var(--indigo); font-size: 12px; font-weight: 700; line-height: 22px; text-align: center; }

  /* cards: pair / grid / rows */
  body.v2-byb .bb-cards { display: grid; gap: var(--s4); }
  @media (min-width: 640px) { body.v2-byb :is(.bb-cards--pair, .bb-cards--grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  body.v2-byb :is(.bb-cards--pair, .bb-cards--grid) > .bb-card { padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
  body.v2-byb .bb-card > * + * { margin-top: var(--s2); }
  body.v2-byb .bb-card > .bb-tag + * { margin-top: var(--s2); }
  body.v2-byb .bb-card-t { font-family: var(--font) !important; font-size: 16.5px !important; font-weight: 700; line-height: 1.35 !important; color: var(--text) !important; letter-spacing: 0 !important; }
  body.v2-byb .bb-card p:not(.bb-card-t):not(.bb-tag) { font-size: 15.5px; line-height: 1.6; }
  body.v2-byb .bb-card .bb-list > li { font-size: 15.5px; }
  body.v2-byb .bb-card.is-muted { background: var(--ivory); }
  body.v2-byb .bb-card.is-muted .bb-tag { color: var(--text3) !important; }
  body.v2-byb .bb-card.is-accent { border-color: var(--fx-indigo-line); box-shadow: inset 0 3px 0 var(--indigo); }
  body.v2-byb .bb-cards--rows { gap: 0; border-top: 1px solid var(--line); }
  body.v2-byb .bb-cards--rows > .bb-card { padding: var(--s5) 0; border-bottom: 1px solid var(--line); }
  @media (min-width: 640px) {
    body.v2-byb .bb-cards--rows > .bb-card:has(> .bb-card-t) { display: grid; grid-template-columns: 210px minmax(0, 1fr); column-gap: var(--s6); align-items: start; }
    body.v2-byb .bb-cards--rows > .bb-card:has(> .bb-card-t) > * { grid-column: 2; margin-top: 0; }
    body.v2-byb .bb-cards--rows > .bb-card:has(> .bb-card-t) > * + * { margin-top: var(--s2); }
    body.v2-byb .bb-cards--rows > .bb-card > .bb-card-t { grid-column: 1; grid-row: 1 / span 6; }
    body.v2-byb .bb-cards--rows > .bb-card > .bb-tag { grid-column: 1; }
    body.v2-byb .bb-cards--rows > .bb-card > .bb-tag + .bb-card-t { grid-row: 2 / span 6; }
  }

  /* steps */
  body.v2-byb .bb-steps { list-style: none; margin: 0; padding: 0; counter-reset: bbs; }
  body.v2-byb .bb-steps > li { position: relative; counter-increment: bbs; padding: 0 0 var(--s5) 48px; }
  body.v2-byb .bb-steps > li:last-child { padding-bottom: 0; }
  body.v2-byb .bb-steps > li::before { content: counter(bbs); position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--surface); border: 1.5px solid var(--indigo); color: var(--indigo); font-size: 13px; font-weight: 700; line-height: 27px; text-align: center; }
  body.v2-byb .bb-steps > li:not(:last-child)::after { content: ""; position: absolute; left: 15px; top: 34px; bottom: 4px; width: 1px; background: var(--line-strong); }
  body.v2-byb .bb-steps > li > * + * { margin-top: 4px; }
  body.v2-byb .bb-step-t { font-size: 17px !important; font-weight: 700; color: var(--text) !important; line-height: 1.4 !important; padding-top: 3px; }
  body.v2-byb .bb-steps p:not(.bb-step-t) { font-size: 16px; }

  /* tables, figures, link rows */
  body.v2-byb .bb-tbl-w { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
  body.v2-byb .bb-tbl { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; color: var(--text2); }
  body.v2-byb .bb-tbl :is(th, td) { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
  body.v2-byb .bb-tbl tr:last-child > * { border-bottom: 0; }
  body.v2-byb .bb-tbl thead th { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text3); background: var(--ivory); }
  body.v2-byb .bb-tbl tbody th { color: var(--text); font-weight: 600; }
  body.v2-byb .bb-fig img { border-radius: var(--r-lg); width: 100%; height: auto; }
  body.v2-byb .bb-qlist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
  body.v2-byb .bb-q { display: grid; grid-template-columns: minmax(0, 1fr) 20px; gap: 2px var(--s4); padding: var(--s4) 0; border-bottom: 1px solid var(--line); text-decoration: none; }
  body.v2-byb .bb-q-t { font-weight: 600; color: var(--text); }
  body.v2-byb .bb-q-l { grid-column: 1; font-size: 14.5px; color: var(--text3); }
  body.v2-byb .bb-q-ar { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-byb .bb-q:hover .bb-q-t { color: var(--indigo); }
  body.v2-byb .bb-q:hover .bb-q-ar { transform: translateX(3px); }
  body.v2-byb .bb-faq .v2-faq { margin-top: var(--s5); }

  /* ---------- stage: question rows ---------- */
  body.v2-byb .bb-qs, body.v2-byb .bb-idx { padding-block: var(--bb-y); }
  body.v2-byb .bb-qs-head { max-width: var(--bb-read); margin-bottom: var(--s6); }
  body.v2-byb .bb-qs-head .v2-lead { margin-top: var(--s3); }
  body.v2-byb .bb-qrows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); counter-reset: none; }
  body.v2-byb .bb-qrow { display: grid; grid-template-columns: 32px minmax(0, 1fr) 20px; gap: 4px var(--s3); align-items: center; padding: var(--s5) var(--s2); border-bottom: 1px solid var(--line); text-decoration: none; transition: background var(--dur-2) var(--ease-std); }
  body.v2-byb .bb-qrow:hover { background: var(--fx-indigo); }
  body.v2-byb .bb-qrow-n { grid-row: 1 / span 2; align-self: start; padding-top: 4px; font-size: 13px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
  body.v2-byb .bb-qrow-t { font-family: var(--serif); font-weight: 500; font-size: 19px; line-height: 1.3; color: var(--text); }
  body.v2-byb .bb-qrow-l { grid-column: 2; font-size: 15px; line-height: 1.5; color: var(--text3); }
  body.v2-byb .bb-qrow-ar { grid-column: 3; grid-row: 1 / span 2; color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-byb .bb-qrow:hover .bb-qrow-ar { transform: translateX(3px); }
  body.v2-byb .bb-qrow:hover .bb-qrow-t { color: var(--indigo); }
  @media (min-width: 900px) {
    body.v2-byb .bb-qrow { grid-template-columns: 48px minmax(0, 5fr) minmax(0, 6fr) 24px; column-gap: var(--s6); padding: var(--s5) var(--s4); }
    body.v2-byb .bb-qrow-n { grid-row: auto; padding-top: 0; align-self: center; }
    body.v2-byb .bb-qrow-l { grid-column: 3; }
    body.v2-byb .bb-qrow-ar { grid-column: 4; grid-row: auto; }
  }
  body.bb-stage .bb-qs { background: var(--ivory); margin-top: var(--bb-y); }

  /* ---------- hub: tabbed stage index ---------- */
  body.v2-byb .bb-idx { background: var(--ivory); margin-top: var(--bb-y); position: relative; }
  body.v2-byb .bb-anchor { position: absolute; top: 0; }
  body.v2-byb .bb-tp-h { font-family: var(--serif); font-weight: 500; font-size: 22px; color: var(--text); }
  body.v2-byb .bb-tabs.is-tabs .bb-tp-h { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  html.js body.v2-byb .bb-tabs:not(.is-tabs) .v2-tabs-l { display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--lilac-200); overflow-x: auto; scrollbar-width: none; max-width: 100%; width: max-content; }
  html.js body.v2-byb .bb-tabs:not(.is-tabs) .v2-tabp { margin-top: var(--block-gap); padding: 0; border: 0; }
  html.js body.v2-byb .bb-tabs:not(.is-tabs) .v2-tabp + .v2-tabp { display: none; }
  html.js body.v2-byb .bb-tabs:not(.is-tabs) .bb-tp-h { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  html.js body.v2-byb .bb-tabs:not(.is-tabs) .v2-tab:first-child { background: var(--surface); color: var(--indigo); box-shadow: 0 2px 10px rgba(9,8,42,.12); }
  body.v2-byb .bb-tabs .v2-tabp { border: 0; }
  body.v2-byb .bb-tp-l { margin: 0 0 var(--s5); max-width: 60ch; font-size: 16px; line-height: 1.55; color: var(--text3); }
  body.v2-byb .bb-stg { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s5); }
  @media (min-width: 1024px) { body.v2-byb .bb-stg { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  body.v2-byb .bb-stc { display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
  body.v2-byb .bb-stc-m { display: block; overflow: hidden; background: var(--lilac-200); }
  body.v2-byb .bb-stc-m img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform var(--dur-6) var(--ease-std); }
  body.v2-byb .bb-stc:hover .bb-stc-m img { transform: scale(1.04); }
  body.v2-byb .bb-stc-b { display: flex; flex-direction: column; flex: 1; padding: var(--s5); }
  @media (min-width: 600px) and (max-width: 1023px) {
    body.v2-byb .bb-stc { display: grid; grid-template-columns: 260px minmax(0, 1fr); }
    body.v2-byb .bb-stc-m img { height: 100%; aspect-ratio: auto; min-height: 100%; }
  }
  body.v2-byb .bb-stc-t { font-family: var(--serif); font-weight: 500; font-size: 21px; line-height: 1.2; letter-spacing: -.01em; }
  body.v2-byb .bb-stc-t a { color: var(--text); text-decoration: none; }
  body.v2-byb .bb-stc-t a:hover { color: var(--indigo); }
  body.v2-byb .bb-stc-l { margin-top: var(--s2); font-size: 14.5px; line-height: 1.5; color: var(--text3); }
  body.v2-byb .bb-stc-q { list-style: none; margin: var(--s4) 0 0; padding: 0; border-top: 1px solid var(--line); }
  body.v2-byb .bb-stc-q a { display: block; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; line-height: 1.4; color: var(--text2); text-decoration: none; }
  body.v2-byb .bb-stc-q a:hover { color: var(--indigo); }
  body.v2-byb .bb-stc-go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: var(--s4); font-size: 14.5px; font-weight: 600; color: var(--indigo); text-decoration: none; }
  body.v2-byb .bb-stc-go svg { transition: transform var(--dur-2) var(--ease-std); }
  body.v2-byb .bb-stc-go:hover svg { transform: translateX(3px); }

  /* ---------- reviews band ---------- */
  body.v2-byb .bb-revs { padding-block: var(--bb-y); background: var(--ivory); }
  body.v2-byb .bb-revs .v2-h2 { margin-bottom: var(--s5); }

  /* ---------- related questions ---------- */
  body.v2-byb .bb-rel { padding-block: 0; }
  body.v2-byb .bb-rel > .v2-wrap { padding-top: var(--bb-y); }
  body.v2-byb .bb-rel > .v2-wrap::before { content: ""; display: block; height: 1px; background: var(--line); margin-top: calc(-1 * var(--bb-y)); margin-bottom: var(--bb-y); }
  body.v2-byb .bb-revs + .bb-rel > .v2-wrap::before { display: none; }
  body.v2-byb .bb-rel-h2 { margin-bottom: var(--s6); font-size: clamp(1.5rem, 1.32rem + .75vw, 2rem); }
  body.v2-byb .bb-relg { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s4); }
  @media (min-width: 700px) { body.v2-byb :is(.bb-relg--2, .bb-relg--3) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { body.v2-byb .bb-relg--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 700px) and (max-width: 1023px) { body.v2-byb .bb-relg--3 > li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
  body.v2-byb .bb-relc { position: relative; display: flex; flex-direction: column; height: 100%; padding: var(--s5) var(--s5) calc(var(--s5) + 28px); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); text-decoration: none; transition: border-color var(--dur-2) var(--ease-std), box-shadow var(--dur-3) var(--ease-std), transform var(--dur-3) var(--ease-std); }
  body.v2-byb .bb-relc:hover { border-color: var(--fx-indigo-line); box-shadow: var(--shadow-card); transform: translateY(-2px); }
  body.v2-byb .bb-relc-k { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--indigo); }
  body.v2-byb .bb-relc-t { margin-top: var(--s2); font-family: var(--serif); font-weight: 500; font-size: 19px; line-height: 1.28; color: var(--text); }
  body.v2-byb .bb-relc-l { margin-top: var(--s2); font-size: 14.5px; line-height: 1.5; color: var(--text3); }
  body.v2-byb .bb-relc-ar { position: absolute; left: var(--s5); bottom: var(--s5); color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-byb .bb-relc:hover .bb-relc-ar { transform: translateX(3px); }

  /* ---------- closing call ---------- */
  body.v2-byb .bb-call-s { padding-block: var(--bb-y); }
  body.v2-byb .bb-layout + .bb-call-s { padding-top: 0; }
  body.v2-byb .bb-call { position: relative; isolation: isolate; overflow: hidden; display: grid; gap: var(--s6); padding: var(--s6) var(--s5); border-radius: var(--r-xl); background: var(--grad-brand); color: #fff; }
  body.v2-byb .bb-call::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--bg-lattice-img); background-size: 56px 56px; opacity: .08; filter: invert(1); }
  @media (min-width: 900px) { body.v2-byb .bb-call { grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: var(--s8); padding: var(--s8) var(--s8); } }
  body.v2-byb .bb-call .v2-h2 { color: #fff; max-width: 22ch; }
  body.v2-byb .bb-call .v2-accent { color: #E9C766; }
  body.v2-byb .bb-call-t p { margin-top: var(--s4); max-width: 58ch; font-size: 16.5px; line-height: 1.6; color: rgba(255,255,255,.9); }
  body.v2-byb .bb-call-a { display: flex; flex-wrap: wrap; gap: var(--s3); }
  @media (min-width: 900px) { body.v2-byb .bb-call-a { flex-direction: column; align-items: stretch; min-width: 260px; } }
}

/* unlayered: the shared .v2-btn rules live in the unlayered shell, so these overrides must be unlayered too */
body.v2-byb .bb-call .v2-btn--primary, body.v2-byb .bb-call .v2-btn--primary:visited { background: #fff; color: #0F07BD; box-shadow: 0 8px 24px -10px rgba(0,0,0,.45); }
body.v2-byb .bb-call .v2-btn--primary:hover { background: #F0F0FC; color: #0F07BD; }
body.v2-byb .bb-call .v2-btn--line, body.v2-byb .bb-call .v2-btn--line:visited { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
body.v2-byb .bb-call .v2-btn--line:hover { border-color: #fff; color: #fff; background: rgba(255,255,255,.08); }
body.v2-byb .bb-call .v2-btn svg use { fill: currentColor; }
/* ===== end BEFORE YOU BUILD v1 ===== */

/* ===== ACTIVITY PAGES v2 (/activities/ hub + 20 activity pages), 20 Oct 2026: scoped to body.v2-act =====
   Generated by tools/activity-hub/build.py on the service-page system (body.v2-svc, sv-*).
   Activity identity: licence snapshot card, tick-list scope checker, numbered approval path,
   the differentiator as the page's one ink band, photo cards for related pages and the hub finder.
   Behaviour: assets/js/activity-tools.js (data-act-* hooks) + svc.js (navigator). Tokens only. */
@layer v2.components {
  body.v2-act [hidden] { display: none !important; }
  body.v2-act .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  body.v2-act .act-head { margin-bottom: var(--s7); }
  @media (min-width: 1024px) { body.v2-act .act-head { margin-bottom: var(--s8); } }
  body.v2-act .act-head .v2-h2 { max-width: 22ch; }

  /* hero: photo with facts, or the fact panel alone */
  body.v2-act .sv-hero .v2-h1 { max-width: 15ch; }
  body.v2-act .act-hph img { object-position: 50% 50%; }
  body.v2-act .act-hpanel { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; min-height: 0; padding: var(--s6); border-radius: var(--r-xl); background: var(--grad-brand); color: #fff; box-shadow: 0 30px 60px -34px rgba(15,7,189,.55); }
  body.v2-act .act-hpanel::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Cpath d='M28 0 56 28 28 56 0 28Z'/%3E%3Cpath d='M28 12 44 28 28 44 12 28Z'/%3E%3Ccircle cx='28' cy='28' r='3.5'/%3E%3C/g%3E%3C/svg%3E"); background-size: 56px 56px; opacity: .08; -webkit-mask-image: radial-gradient(80% 80% at 100% 0%, #000 0%, transparent 75%); mask-image: radial-gradient(80% 80% at 100% 0%, #000 0%, transparent 75%); }
  body.v2-act .act-hpanel::after { content: ""; position: absolute; z-index: -1; right: -140px; bottom: -200px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(226,178,58,.20), rgba(226,178,58,0) 65%); }
  body.v2-act .act-hpanel-top { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); }
  body.v2-act .act-hpanel-ic { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.14); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); color: #fff; }
  body.v2-act .act-hpanel-ic svg { width: 24px; height: 24px; }
  body.v2-act .act-hpanel-k { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.72); }
  body.v2-act .act-hfacts { margin: var(--s7) 0 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,255,255,.2); }
  body.v2-act .act-hfacts > div { padding: var(--s4) var(--s4) var(--s4) 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  body.v2-act .act-hfacts > div:nth-child(even) { padding-left: var(--s4); border-left: 1px solid rgba(255,255,255,.14); }
  body.v2-act .act-hfacts > div:nth-last-child(-n+2) { border-bottom: 0; }
  body.v2-act .act-hfacts dt { font-size: 12.5px; font-weight: 600; color: rgba(255,255,255,.72); }
  body.v2-act .act-hfacts dd { margin: 4px 0 0; font-family: var(--serif); font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); font-weight: 500; line-height: 1.2; color: #fff; }
  @media (min-width: 1024px) { body.v2-act .sv-hero-g > .act-hpanel { grid-column: 7 / span 6; align-self: center; } }

  /* brief: At a glance + licence snapshot card */
  body.v2-act .act-snap { margin: 0; padding: var(--s2) var(--s5); border-radius: var(--r-lg); background: var(--fx-indigo); box-shadow: inset 3px 0 0 var(--indigo); align-self: start; }
  body.v2-act .act-snap > div { display: grid; gap: 2px; padding: var(--s3) 0; }
  body.v2-act .act-snap > div + div { border-top: 1px solid var(--fx-indigo-line); }
  body.v2-act .act-snap dt { font-size: 12px; font-weight: 700; color: var(--text3); }
  body.v2-act .act-snap dd { margin: 0; font-size: 15px; line-height: 1.5; color: var(--text); }

  /* shared: tick boxes, option tiles, chips, live result */
  body.v2-act .act-pick { position: relative; display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; cursor: pointer; }
  body.v2-act .act-pick input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
  body.v2-act .act-box { display: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 6px; border: 1.5px solid var(--line-strong); background: var(--surface); place-items: center; color: #fff; transition: background var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
  html.js body.v2-act .act-box { display: grid; }
  html:not(.js) body.v2-act .act-pick { grid-template-columns: 1fr; }
  body.v2-act .act-box svg { width: 14px; height: 14px; opacity: 0; transform: scale(.6); transition: opacity var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std); }
  body.v2-act .act-pick:hover .act-box { border-color: var(--indigo); }
  body.v2-act .act-pick:has(input:checked) .act-box { background: var(--indigo); border-color: var(--indigo); }
  body.v2-act .act-pick:has(input:checked) .act-box svg { opacity: 1; transform: none; }
  body.v2-act .act-pick:has(input:focus-visible) .act-box { outline: 3px solid var(--indigo); outline-offset: 2px; }
  body.v2-act .act-pick-t { font-size: 15.5px; line-height: 1.45; color: var(--text); }
  body.v2-act .act-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; background: var(--fx-indigo); border: 1px solid var(--fx-indigo-line); font-size: 13px; font-weight: 700; line-height: 1.35; color: var(--indigo); white-space: nowrap; }
  body.v2-act .act-chip a { color: inherit; text-decoration: underline; text-decoration-color: var(--fx-indigo-line); text-underline-offset: 3px; }
  body.v2-act .act-chip--free-zone { background: var(--fx-gold); border-color: var(--fx-gold-line); color: var(--gold-ink); }
  body.v2-act .act-chip--either { background: var(--surface); border-color: var(--line-strong); color: var(--text2); }
  body.v2-act .act-res { display: flex; align-items: center; gap: var(--s3); min-height: 52px; padding: 12px var(--s4); border-radius: var(--r-md); background: var(--fx-indigo); box-shadow: inset 3px 0 0 var(--indigo); }
  body.v2-act .act-res .act-out { display: block; font-size: 15px; font-weight: 600; line-height: 1.5; color: var(--text); }
  body.v2-act .act-res .act-out:empty { display: none; }
  body.v2-act .act-res .act-out a, body.v2-act .act-res .act-out b { color: var(--indigo); font-weight: 700; }
  body.v2-act .act-res .act-hint { font-size: 14.5px; color: var(--text3); }
  body.v2-act .act-res .act-out:not(:empty) + .act-hint { display: none; }
  body.v2-act .act-opt { position: relative; display: grid; grid-template-columns: 1fr 20px; align-items: center; gap: var(--s3); min-height: 48px; padding: 10px 12px 10px 14px; border-radius: var(--r-md); border: 1.5px solid var(--line); background: var(--surface); color: var(--text); font-size: 14.5px; font-weight: 600; line-height: 1.35; cursor: pointer; transition: border-color var(--dur-2) var(--ease-std), background var(--dur-2) var(--ease-std); }
  body.v2-act .act-opt input { position: absolute; opacity: 0; pointer-events: none; }
  body.v2-act .act-opt-c { width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--line-strong); display: grid; place-items: center; color: #fff; transition: background var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
  body.v2-act .act-opt-c svg { width: 12px; height: 12px; opacity: 0; transform: scale(.6); transition: opacity var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std); }
  body.v2-act .act-opt:hover { border-color: var(--indigo); background: var(--fx-indigo-2); }
  body.v2-act .act-opt:has(input:focus-visible) { outline: 3px solid var(--indigo); outline-offset: 2px; }
  body.v2-act .act-opt:has(input:checked) { border-color: var(--indigo); background: var(--fx-indigo); }
  body.v2-act .act-opt:has(input:checked) .act-opt-c { background: var(--indigo); border-color: var(--indigo); }
  body.v2-act .act-opt:has(input:checked) .act-opt-c svg { opacity: 1; transform: none; }
  body.v2-act .act-fs { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 8px; align-content: start; }
  body.v2-act .act-fs legend { padding: 0; margin-bottom: 10px; font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--text); }
  body.v2-act .act-foot { margin-top: var(--s5); max-width: 76ch; font-size: var(--fs-small); line-height: 1.6; color: var(--text3); }

  /* scope: covered / not covered */
  body.v2-act .act-sc-g { display: grid; gap: var(--gap); }
  @media (min-width: 768px) { body.v2-act .act-sc-g { grid-template-columns: 1fr 1fr; } }
  body.v2-act .act-sc-col { padding: var(--s5) var(--s5) var(--s3); border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--surface); }
  body.v2-act .act-sc-col--in { background: linear-gradient(180deg, var(--fx-indigo-2), var(--surface) 70%); border-color: var(--fx-indigo-line); }
  body.v2-act .act-sc-h { display: flex; align-items: center; gap: 10px; margin-bottom: var(--s2); font-size: 16px; font-weight: 700; color: var(--text); }
  body.v2-act .act-sc-ic { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; background: var(--fx-indigo); color: var(--indigo); }
  body.v2-act .act-sc-col--out .act-sc-ic { background: var(--ivory); color: var(--text3); }
  body.v2-act .act-sc-l { list-style: none; margin: 0; padding: 0; }
  body.v2-act .act-sc-l > li { padding: 12px 0; border-top: 1px solid var(--line); }
  body.v2-act .act-sc-l > li:first-child { border-top: 0; }
  body.v2-act .act-by { display: block; margin: 4px 0 0 34px; font-size: 13.5px; color: var(--text3); }
  html:not(.js) body.v2-act .act-by { margin-left: 0; }
  body.v2-act .act-by a { color: var(--indigo); font-weight: 600; }
  body.v2-act .act-sc .act-res { margin-top: var(--s4); }
  body.v2-act .act-flag { margin-top: var(--s3); font-size: 14.5px; color: var(--text2); }
  body.v2-act .act-flag a { color: var(--indigo); font-weight: 600; }

  /* route: decision table, notes, three-question card */
  body.v2-act .act-route-s { background: var(--ivory); }
  body.v2-act .act-mx td:nth-child(3), body.v2-act .act-mx tbody tr:hover td:nth-child(3) { background: none; color: var(--text2); }
  body.v2-act .act-mx thead th:nth-child(3) { color: var(--text3); }
  body.v2-act .act-mx thead th:nth-child(2) { color: var(--gold-ink); }
  body.v2-act .act-mx tbody th { font-weight: 700; color: var(--text); }
  @media (min-width: 1024px) {
    body.v2-act .act-mx tbody th { width: 34%; }
    body.v2-act .act-mx td:nth-child(2) { width: 22%; }
    body.v2-act .act-mx td:nth-child(3) { width: auto; }
  }
  body.v2-act .act-mx tr.is-hit { background: var(--fx-indigo); box-shadow: inset 4px 0 0 var(--indigo); }
  body.v2-act .act-hit-tag { display: block; width: fit-content; margin-top: 8px; font-size: 12px; font-weight: 700; color: var(--indigo); }
  body.v2-act .act-hit-tag::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--indigo); vertical-align: 1px; }
  body.v2-act .act-notes { margin-top: var(--s5); display: grid; gap: var(--s3) var(--gap); max-width: 100%; }
  @media (min-width: 1024px) { body.v2-act .act-notes { grid-template-columns: 1fr 1fr; } body.v2-act .act-notes > :only-child { grid-column: 1 / -1; max-width: 76ch; } }
  body.v2-act .act-notes p { font-size: var(--fs-small); line-height: 1.6; color: var(--text3); }
  body.v2-act .act-notes a { color: var(--indigo); }
  body.v2-act .act-ck { margin-top: var(--s7); padding: var(--s6); border-radius: var(--r-xl); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); position: relative; overflow: hidden; }
  body.v2-act .act-ck::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); }
  @media (max-width: 767px) { body.v2-act .act-ck { padding: var(--s5); } }
  body.v2-act .act-ck-t { font-size: 15px; color: var(--text2); margin-bottom: var(--s5); }
  body.v2-act .act-ck-t b { color: var(--text); }
  body.v2-act .act-qgrid { display: grid; gap: var(--s5) var(--gap); }
  @media (min-width: 768px) { body.v2-act .act-qgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } body.v2-act .act-qgrid--2 { grid-template-columns: 1fr 1fr; } }
  body.v2-act .act-ck-foot { margin-top: var(--s5); padding-top: var(--s5); border-top: 1px solid var(--line); display: grid; gap: var(--s4); align-items: center; }
  @media (min-width: 1024px) { body.v2-act .act-ck-foot { grid-template-columns: 1fr auto; gap: var(--s6); } }
  body.v2-act .act-ck-foot .v2-btn { justify-self: start; }

  /* approvals: numbered path, one row per stage */
  body.v2-act .act-path { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
  body.v2-act .act-phase { position: relative; display: grid; gap: var(--s3); padding: 0 0 var(--s6) 56px; }
  body.v2-act .act-phase:last-child { padding-bottom: 0; }
  body.v2-act .act-phase-top { display: flex; align-items: center; gap: var(--s3); min-height: 40px; margin-left: -56px; }
  body.v2-act .act-phase-n { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 2px solid var(--gold); font-size: 14px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }
  body.v2-act .act-phase--licence .act-phase-n { background: var(--indigo); border-color: var(--indigo); color: #fff; }
  body.v2-act .act-phase-h { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text2); }
  body.v2-act .act-phase:not(:last-child)::before { content: ""; position: absolute; left: 19px; top: 44px; bottom: 4px; width: 2px; border-radius: 2px; background: linear-gradient(180deg, var(--fx-gold-line), var(--fx-indigo-line)); }
  @media (min-width: 1024px) {
    body.v2-act .act-phase { grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); column-gap: var(--gap); padding-left: 0; }
    body.v2-act .act-phase-top { margin-left: 0; align-self: start; }
    body.v2-act .act-tracks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  @media (min-width: 640px) and (max-width: 1023px) { body.v2-act .act-tracks { grid-template-columns: 1fr 1fr; } }
  body.v2-act .act-tracks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
  body.v2-act .act-track { display: grid; gap: 2px; align-content: start; padding: 12px 14px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface); transition: border-color var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std); }
  body.v2-act .act-track:hover { border-color: var(--fx-indigo-line); transform: translateY(-2px); }
  body.v2-act .act-phase--licence .act-track { border-color: var(--fx-indigo-line); background: var(--fx-indigo-2); }
  body.v2-act .act-track-name { font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--text); }
  body.v2-act .act-track-who { font-size: 13.5px; color: var(--text3); }
  body.v2-act .act-path-close { margin-top: var(--s6); display: flex; align-items: center; gap: var(--s3); padding: var(--s4) var(--s5); border-radius: var(--r-lg); background: linear-gradient(90deg, var(--fx-indigo), var(--fx-indigo-2)); box-shadow: inset 4px 0 0 var(--indigo); font-weight: 600; color: var(--text); }
  body.v2-act .act-path-close svg { flex: none; color: var(--indigo); }

  /* differentiator: the ink band with a white tool card */
  body.v2-act .act-wow-l .v2-lead { margin-top: var(--s4); }
  body.v2-act .act-wow-note { margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid rgba(255,255,255,.2); max-width: 46ch; font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.78); }
  body.v2-act .act-wow { position: relative; align-self: start; padding: var(--s6); border-radius: var(--r-xl); background: var(--surface); color: var(--text2); box-shadow: 0 40px 80px -40px rgba(0,0,0,.55); }
  @media (max-width: 767px) { body.v2-act .act-wow { padding: var(--s5) var(--s4); } }
  body.v2-act .act-wow :focus-visible { outline-color: var(--indigo); }
  body.v2-act .act-card-k { margin-bottom: var(--s4); font-size: 13px; font-weight: 700; color: var(--text3); }
  body.v2-act .act-wow .act-res { margin-top: var(--s5); }
  body.v2-act .act-map { width: 100%; border-collapse: collapse; }
  body.v2-act .act-map thead th { padding: 0 0 10px; text-align: left; font-size: 12px; font-weight: 700; color: var(--text3); border-bottom: 1px solid var(--line); }
  body.v2-act .act-map thead th:last-child { text-align: right; }
  body.v2-act .act-map tbody th, body.v2-act .act-map td { padding: 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; font-weight: 400; }
  body.v2-act .act-map td { text-align: right; padding-left: var(--s3); }
  body.v2-act .act-map tbody tr:last-child > * { border-bottom: 0; }
  body.v2-act .act-map tbody tr:has(input:checked) .act-chip { background: var(--indigo); border-color: var(--indigo); color: #fff; }
  @media (max-width: 599px) {
    body.v2-act .act-map thead { display: none; }
    body.v2-act .act-map, body.v2-act .act-map tbody, body.v2-act .act-map tr, body.v2-act .act-map th, body.v2-act .act-map td { display: block; }
    body.v2-act .act-map tbody tr { padding: 12px 0; border-bottom: 1px solid var(--line); }
    body.v2-act .act-map tbody tr:last-child { border-bottom: 0; }
    body.v2-act .act-map tbody th, body.v2-act .act-map td { padding: 0; border: 0; text-align: left; }
    body.v2-act .act-map td { margin: 6px 0 0 34px; }
    body.v2-act .act-map .act-chip { white-space: normal; }
  }
  /* timeline: two clocks */
  body.v2-act .act-clocks { display: grid; gap: var(--s6); }
  body.v2-act .act-clock-h { margin-bottom: var(--s3); font-size: 15px; font-weight: 700; color: var(--text); display: flex; align-items: center; gap: 10px; }
  body.v2-act .act-clock-h::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--indigo); }
  body.v2-act .act-clock--2 .act-clock-h::before { background: var(--gold); }
  body.v2-act .act-clock-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
  body.v2-act .act-clock-steps li { display: grid; gap: 2px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--fx-indigo); box-shadow: inset 3px 0 0 var(--indigo); }
  body.v2-act .act-clock--2 .act-clock-steps li { background: var(--fx-gold); box-shadow: inset 3px 0 0 var(--gold); }
  @media (min-width: 768px) {
    body.v2-act .act-clock-steps { display: flex; gap: 4px; }
    body.v2-act .act-clock-steps li { flex: var(--act-w, 1) 1 0; min-width: 0; padding: 12px; border-radius: 0; box-shadow: inset 0 3px 0 var(--indigo); }
    body.v2-act .act-clock--2 .act-clock-steps li { box-shadow: inset 0 3px 0 var(--gold); }
    body.v2-act .act-clock-steps li:first-child { border-radius: var(--r-sm) 0 0 var(--r-sm); }
    body.v2-act .act-clock-steps li:last-child { border-radius: 0 var(--r-sm) var(--r-sm) 0; }
  }
  body.v2-act .act-clock-step { font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--text); }
  body.v2-act .act-clock-band { font-size: 12.5px; font-weight: 600; color: var(--text3); }
  /* threshold */
  body.v2-act .act-thr { position: relative; padding-top: var(--s2); }
  body.v2-act .act-thr-bar { position: relative; height: 14px; border-radius: 999px; background: linear-gradient(90deg, var(--fx-indigo) 0, var(--fx-indigo) var(--act-pos), var(--fx-gold) var(--act-pos), var(--fx-gold) 100%); border: 1px solid var(--line); }
  body.v2-act .act-thr-line { position: absolute; left: var(--act-pos); top: -8px; bottom: -8px; width: 3px; margin-left: -1.5px; border-radius: 2px; background: var(--gold-ink); }
  body.v2-act .act-thr-pointer { position: absolute; top: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%; background: var(--indigo); border: 3px solid var(--surface); box-shadow: 0 2px 8px rgba(9,8,42,.3); }
  body.v2-act .act-thr-mark { margin-top: var(--s3); font-size: 14px; font-weight: 700; color: var(--gold-ink); padding-left: max(0px, calc(var(--act-pos) - 60px)); }
  body.v2-act .act-thr-sides { margin-top: var(--s5); display: grid; gap: var(--s4); }
  @media (min-width: 600px) { body.v2-act .act-thr-sides { grid-template-columns: 1fr 1fr; } }
  body.v2-act .act-thr-sides p { padding: var(--s4); border-radius: var(--r-md); background: var(--fx-indigo); font-size: 14.5px; line-height: 1.55; color: var(--text2); }
  body.v2-act .act-thr-sides p + p { background: var(--fx-gold); }
  body.v2-act .act-thr-sides b { display: block; margin-bottom: 4px; color: var(--text); }
  body.v2-act .act-range { margin-top: var(--s5); display: grid; gap: 8px; }
  body.v2-act .act-range label { font-size: 14px; font-weight: 700; color: var(--text); }
  body.v2-act .act-range input { width: 100%; accent-color: var(--indigo-solid); }
  /* matrix */
  body.v2-act .act-mtx-t .act-qgrid { margin-bottom: var(--s5); }
  body.v2-act .act-matrix { width: 100%; border-collapse: separate; border-spacing: 6px; margin: -6px; width: calc(100% + 12px); table-layout: fixed; }
  body.v2-act .act-matrix thead th { padding: 4px 8px; font-size: 12.5px; font-weight: 700; color: var(--text3); text-align: left; }
  body.v2-act .act-matrix tbody th { width: 26%; padding: 8px; font-size: 13px; font-weight: 700; color: var(--text2); text-align: left; vertical-align: top; }
  body.v2-act .act-matrix thead td { width: 26%; }
  body.v2-act .act-matrix td[data-cell] { padding: 12px; border-radius: var(--r-md); background: var(--ivory); border: 1.5px solid var(--line); font-size: 13.5px; line-height: 1.5; color: var(--text2); vertical-align: top; transition: background var(--dur-2) var(--ease-std), border-color var(--dur-2) var(--ease-std); }
  body.v2-act .act-matrix td[data-cell] b { display: block; margin-bottom: 2px; font-size: 14px; color: var(--text); }
  body.v2-act .act-matrix td.is-hit { background: var(--fx-indigo); border-color: var(--indigo); }
  @media (max-width: 599px) {
    body.v2-act .act-matrix, body.v2-act .act-matrix tbody, body.v2-act .act-matrix tr, body.v2-act .act-matrix th, body.v2-act .act-matrix td { display: block; width: auto; margin: 0; }
    body.v2-act .act-matrix thead { display: none; }
    body.v2-act .act-matrix tbody tr + tr { margin-top: var(--s4); }
    body.v2-act .act-matrix tbody th { padding: 0 0 6px; width: auto; }
    body.v2-act .act-matrix td[data-cell] { margin-top: 6px; }
    body.v2-act .act-matrix td[data-cell]::before { content: attr(data-col); display: block; margin-bottom: 4px; font-size: 12px; font-weight: 700; color: var(--text3); }
  }

  /* bank view + what we handle */
  body.v2-act .act-bh-g { row-gap: var(--s6); }
  @media (min-width: 1024px) {
    body.v2-act .act-bh-g > .act-bank { grid-column: 1 / span 7; }
    body.v2-act .act-bh-g > .act-handle { grid-column: 8 / span 5; }
  }
  body.v2-act .act-bank .v2-h2 { max-width: 20ch; }
  body.v2-act .act-bv { margin-top: var(--s5); display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px var(--s3); }
  body.v2-act .act-bv span { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text3); }
  body.v2-act .act-bv b { font-size: 16px; font-weight: 700; color: var(--text); }
  body.v2-act .act-bv b.act-mark::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--indigo); vertical-align: 1px; }
  body.v2-act .act-bv b.act-mark--pos::before { background: var(--pos-ink); }
  body.v2-act .act-bv b.act-mark--gold::before { background: var(--gold); }
  body.v2-act .act-prose { margin-top: var(--s4); max-width: 62ch; font-size: 17px; line-height: 1.7; color: var(--text2); }
  body.v2-act .act-aml { margin-top: var(--s5); max-width: 62ch; display: flex; align-items: baseline; gap: var(--s3); padding-top: var(--s4); border-top: 1px solid var(--line); font-size: 15px; line-height: 1.55; color: var(--text2); }
  body.v2-act .act-aml-k { flex: none; padding: 2px 8px; border-radius: 6px; background: var(--fx-gold); color: var(--gold-ink); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
  body.v2-act .act-handle { align-self: start; padding: var(--s6); border-radius: var(--r-xl); border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-card); position: relative; overflow: hidden; }
  body.v2-act .act-handle::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); }
  @media (max-width: 767px) { body.v2-act .act-handle { padding: var(--s5); } }
  body.v2-act .act-handle ul { list-style: none; margin: var(--s4) 0 0; padding: 0; }
  body.v2-act .act-handle li { display: grid; grid-template-columns: 24px 1fr; gap: var(--s3); padding: 10px 0; border-top: 1px solid var(--line); font-size: 15px; line-height: 1.5; color: var(--text); }
  body.v2-act .act-handle li svg { width: 18px; height: 18px; margin-top: 2px; color: var(--indigo); }
  body.v2-act .act-handle-n { margin-top: var(--s3); font-size: 13.5px; color: var(--text3); }

  /* pitfalls: three numbered cards on ivory */
  body.v2-act .act-pits-s { background: var(--ivory); }
  body.v2-act .act-pits { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 900px) { body.v2-act .act-pits { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  body.v2-act .act-pits li { position: relative; padding: var(--s6) var(--s5) var(--s5); border-radius: 20px; background: var(--surface); border: 1px solid var(--line); }
  body.v2-act .act-pit-n { display: block; margin-bottom: var(--s4); font-family: var(--serif); font-size: 30px; line-height: 1; color: var(--indigo); font-variant-numeric: tabular-nums; }
  body.v2-act .act-pit-n::after { content: ""; display: block; width: 28px; height: 2px; margin-top: var(--s4); background: var(--gold); border-radius: 2px; }
  body.v2-act .act-pits h3 { margin-bottom: var(--s2); }
  body.v2-act .act-pits p { font-size: 15px; line-height: 1.6; color: var(--text2); }

  /* related: photo cards */
  body.v2-act .act-rel { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 768px) { body.v2-act .act-rel { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  body.v2-act .act-rc { display: flex; flex-direction: column; height: 100%; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); overflow: hidden; color: inherit; text-decoration: none; transition: transform var(--dur-3) var(--ease-std), box-shadow var(--dur-3) var(--ease-std), border-color var(--dur-3) var(--ease-std); }
  body.v2-act .act-rc:hover { transform: translateY(-3px); border-color: var(--fx-indigo-line); box-shadow: 0 28px 50px -28px rgba(15,7,189,.32); }
  body.v2-act .act-rc-ph { display: block; overflow: hidden; background: var(--lilac-200); }
  body.v2-act .act-rc-ph img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform var(--dur-5) var(--ease-std); }
  body.v2-act .act-rc:hover .act-rc-ph img { transform: scale(1.04); }
  body.v2-act .act-rc .act-rc-ph--panel, body.v2-act .act-fc .act-fc-ph--panel, body.v2-act .act-gl .act-gl-ph--panel { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; background: var(--grad-brand); }
  body.v2-act :is(.act-rc-ph--panel, .act-fc-ph--panel, .act-gl-ph--panel)::before { content: ""; position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Cpath d='M28 0 56 28 28 56 0 28Z'/%3E%3Cpath d='M28 12 44 28 28 44 12 28Z'/%3E%3Ccircle cx='28' cy='28' r='3.5'/%3E%3C/g%3E%3C/svg%3E"); background-size: 40px 40px; opacity: .1; }
  body.v2-act :is(.act-rc-ph--panel, .act-fc-ph--panel, .act-gl-ph--panel) i { position: relative; font-style: normal; font-family: var(--serif); font-size: 22px; color: #fff; }
  body.v2-act .act-rc-b { flex: 1; display: flex; flex-direction: column; gap: 6px; padding: var(--s5); }
  body.v2-act .act-rc-b small { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--gold-ink); }
  body.v2-act :is(.act-rc-b, .act-fc-b, .act-gl-b) > b { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); font-size: 16.5px; font-weight: 700; line-height: 1.35; color: var(--text); }
  body.v2-act :is(.act-rc-b, .act-fc-b, .act-gl-b) > b svg { flex: none; margin-top: 4px; color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-act :is(.act-rc, .act-fc, .act-gl):hover b svg { transform: translateX(3px); }
  body.v2-act .act-rc-l { font-size: 14.5px; line-height: 1.55; color: var(--text3); }

  /* closing: three links under the advisor */
  body.v2-act .sv-adv a { display: block; width: fit-content; }
  body.v2-act .sv-adv a + a { margin-top: 2px; }

  /* ---------- hub ---------- */
  body.v2-act-hub .act-mx--start tbody th b { display: block; font-size: 16px; font-weight: 700; color: var(--text); }
  body.v2-act-hub .act-mx--start tbody th small { display: block; margin-top: 2px; font-size: 13px; font-weight: 600; color: var(--text3); }
  body.v2-act-hub .act-mx--start td:nth-child(2) { color: var(--text2); }
  body.v2-act-hub .act-dec-b { display: block; margin-bottom: 2px; color: var(--text); font-weight: 700; }
  body.v2-act-hub .act-mx--start thead th:nth-child(2) { color: var(--gold-ink); }
  body.v2-act-hub .act-mx--start thead th:nth-child(3) { color: var(--text3); }
  @media (min-width: 1024px) {
    body.v2-act-hub .act-mx--start tbody th { width: 30%; }
    body.v2-act-hub .act-mx--start td:nth-child(2) { width: 42%; }
    body.v2-act-hub .act-mx--start td:nth-child(3) { width: auto; }
  }
  body.v2-act .act-go { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--indigo); text-decoration: none; }
  body.v2-act .act-go svg { flex: none; transition: transform var(--dur-2) var(--ease-std); }
  body.v2-act .act-go:hover { text-decoration: underline; text-underline-offset: 3px; }
  body.v2-act .act-go:hover svg { transform: translateX(3px); }
  body.v2-act-hub .act-find-s { background: var(--ivory); }
  body.v2-act .act-finder-controls { display: grid; gap: var(--s4); margin-bottom: var(--s6); }
  @media (min-width: 1024px) { body.v2-act .act-finder-controls { grid-template-columns: minmax(280px, 380px) 1fr; align-items: center; } body.v2-act .act-count { grid-column: 1 / -1; } }
  body.v2-act .act-search-field { position: relative; }
  body.v2-act .act-search-field svg { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--text3); pointer-events: none; }
  body.v2-act .act-input { width: 100%; min-height: 52px; padding: 12px 16px 12px 46px; border-radius: 999px; border: 1.5px solid var(--line-strong); background: var(--surface); color: var(--text); font-family: inherit; font-size: 16px; transition: border-color var(--dur-2) var(--ease-std), box-shadow var(--dur-2) var(--ease-std); }
  body.v2-act .act-input::placeholder { color: var(--text3); }
  body.v2-act .act-input:focus { outline: none; border-color: var(--indigo); box-shadow: 0 0 0 4px var(--fx-indigo); }
  body.v2-act .act-count { font-size: 13.5px; font-weight: 600; color: var(--text3); }
  body.v2-act .act-cat + .act-cat { margin-top: var(--s7); }
  body.v2-act .act-cat-h { display: flex; align-items: center; gap: 10px; margin-bottom: var(--s4); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text2); scroll-margin-top: 140px; }
  body.v2-act .act-cat-h span { min-width: 24px; height: 22px; padding: 0 7px; border-radius: 999px; display: inline-grid; place-items: center; background: var(--fx-indigo); color: var(--indigo); font-size: 12px; letter-spacing: 0; }
  body.v2-act .act-cat { scroll-margin-top: 140px; }
  body.v2-act .act-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
  @media (min-width: 640px) { body.v2-act .act-rows { grid-template-columns: 1fr 1fr; } }
  @media (min-width: 1024px) { body.v2-act .act-rows { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); } }
  @media (min-width: 640px) and (max-width: 1023px) { body.v2-act .act-rows > li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
  @media (min-width: 1024px) {
    body.v2-act .act-rows > li:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
    body.v2-act .act-rows > li:last-child:nth-child(3n+2) { grid-column: span 2; }
  }
  body.v2-act .act-fc, body.v2-act .act-gl { display: grid; grid-template-columns: 92px 1fr; gap: var(--s4); height: 100%; padding: 12px var(--s4) 12px 12px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); color: inherit; text-decoration: none; transition: border-color var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std), box-shadow var(--dur-3) var(--ease-std); }
  body.v2-act .act-fc:hover, body.v2-act .act-gl:hover { border-color: var(--fx-indigo-line); transform: translateY(-2px); box-shadow: 0 18px 36px -24px rgba(15,7,189,.35); }
  body.v2-act .act-fc-ph, body.v2-act .act-gl-ph { display: block; width: 92px; height: 92px; border-radius: 12px; overflow: hidden; background: var(--lilac-200); }
  body.v2-act .act-fc-ph img, body.v2-act .act-gl-ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
  body.v2-act .act-fc .act-fc-ph--panel, body.v2-act .act-gl .act-gl-ph--panel { aspect-ratio: auto; }
  body.v2-act :is(.act-fc-ph--panel, .act-gl-ph--panel) i { font-size: 15px; font-family: inherit; font-weight: 700; }
  body.v2-act .act-fc-b, body.v2-act .act-gl-b { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding-top: 2px; }
  body.v2-act :is(.act-fc-b, .act-gl-b) > b { font-size: 15.5px; }
  body.v2-act .act-fc-l, body.v2-act .act-gl-l { font-size: 13.5px; line-height: 1.5; color: var(--text3); }
  body.v2-act .act-fc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 6px; }
  body.v2-act .act-fc-chips i { font-style: normal; padding: 2px 9px; border-radius: 999px; background: var(--fx-indigo); color: var(--indigo); font-size: 12px; font-weight: 700; line-height: 1.5; }
  body.v2-act .act-fc-chips i + i { background: var(--ivory); color: var(--text2); border: 1px solid var(--line); }
  body.v2-act .act-empty { padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px dashed var(--fx-indigo-line); color: var(--text2); }
  body.v2-act .act-empty a { color: var(--indigo); font-weight: 600; }
  body.v2-act .act-tracks-g { row-gap: var(--s6); }
  @media (min-width: 1024px) { body.v2-act .act-tracks-g > * { grid-column: span 6; } }
  body.v2-act .act-track-c > p { margin-top: var(--s2); color: var(--text3); font-size: 15px; }
  body.v2-act .act-gls { list-style: none; margin: var(--s5) 0 0; padding: 0; display: grid; gap: 12px; }
  body.v2-act .act-gl { grid-template-columns: 72px 1fr; }
  body.v2-act .act-gl-ph { width: 72px; height: 72px; }

  @media (prefers-reduced-motion: reduce) {
    body.v2-act :is(.act-box, .act-box svg, .act-opt, .act-opt-c, .act-opt-c svg, .act-track, .act-rc, .act-rc-ph img, .act-fc, .act-gl, .act-go svg, .act-input) { transition: none; }
  }
  @media (prefers-color-scheme: dark) {
    body.v2-act .act-wow { box-shadow: 0 40px 80px -40px rgba(0,0,0,.8); }
    body.v2-act .act-opt-c, body.v2-act .act-box { color: #0b0a22; }
    body.v2-act .act-hpanel { background: linear-gradient(120deg, #2b3fb8 0%, #1d1a6b 55%, #12112e 100%); }
    body.v2-act :is(.act-rc-ph--panel, .act-fc-ph--panel, .act-gl-ph--panel) { background: linear-gradient(120deg, #2b3fb8 0%, #1d1a6b 55%, #12112e 100%); }
  }
}
/* ===== end ACTIVITY PAGES v2 ===== */
/* ===== ACTIVITY PAGES v2 addendum (20 Oct 2026): fact panel type on phones, scoped to body.v2-act ===== */
@layer v2.components {
  @media (max-width: 599px) {
    body.v2-act .act-hpanel { padding: var(--s5); }
    body.v2-act .act-hfacts { margin-top: var(--s5); }
    body.v2-act .act-hfacts dd { font-family: inherit; font-size: 16px; font-weight: 700; line-height: 1.3; }
  }
}
/* ===== end ACTIVITY PAGES v2 addendum ===== */

/* ===== INDUSTRY PAGES v1 (/industries/ hub + 16 sector pages), 22 Oct 2026: scoped to body.v2-svc.v2-ind =====
   Builds on SERVICE PAGES v1 (sv-*). Own parts (prefix ind-):
     .ind-need   approvals / activity / premises cards      .ind-vs     assumption vs reality pair
     .ind-steps  numbered stage rail                         .ind-cards  titled cards (2, 3 or 4 across)
     .ind-list   ruled title + text rows                     .ind-facts  label + value tiles
     .ind-mx     routes table (route cards below 768)        .ind-checks tick list
     .ind-note   tinted takeaway line                        .ind-say    the page's ink statement band
     .ind-acts   activity licence links                      .ind-hub    hub: segmented grid of photo cards
   Colours only from flipping tokens; transitions only from --dur-* / --ease-*. */
@layer v2.components {
  body.v2-ind .ind-sym { position: absolute; width: 0; height: 0; overflow: hidden; }
  body.v2-ind :is(.ind-need-ic, .ind-acts-ic, .ind-checks) svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  body.v2-ind .sv-hero--ph .v2-h1 { max-width: 15ch; }
  body.v2-ind .sv-hph img { height: auto; }
  body.v2-ind .sv-hfacts dd { font-size: 15px; }
  body.v2-ind .sv-sec.ind-tint { background: var(--ivory); }
  body.v2-ind .sv-head .v2-lead + .v2-lead { margin-top: var(--s3); }
  body.v2-ind .sv-head .v2-lead a, body.v2-ind .ind-body a, body.v2-ind .ind-note a { color: var(--indigo); text-decoration: underline; text-decoration-color: var(--fx-indigo-line); text-underline-offset: 3px; }
  body.v2-ind .sv-head .v2-lead a:hover, body.v2-ind .ind-body a:hover, body.v2-ind .ind-note a:hover { text-decoration-color: var(--indigo); }
  body.v2-ind .ind-body p + p, body.v2-ind .ind-body p + ul, body.v2-ind .ind-body ul + p { margin-top: var(--s2); }
  body.v2-ind .ind-body ul { list-style: none; margin: var(--s3) 0 0; padding: 0; display: grid; gap: 6px; }
  body.v2-ind .ind-body li { position: relative; padding-left: 18px; }
  body.v2-ind .ind-body li::before { content: ""; position: absolute; left: 1px; top: .62em; width: 6px; height: 6px; border-radius: 2px; background: var(--indigo); transform: rotate(45deg); }
  body.v2-ind .ind-blk + .ind-blk { margin-top: var(--s6); }

  /* needs: approvals, activity code, premises */
  body.v2-ind .ind-need { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 768px) { body.v2-ind .ind-need { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.v2-ind .ind-need--3 > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
  @media (min-width: 1024px) { body.v2-ind .ind-need--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } body.v2-ind .ind-need--3 > :last-child:nth-child(odd) { grid-column: auto; } body.v2-ind .ind-need--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  body.v2-ind .ind-need > li { position: relative; display: flex; flex-direction: column; padding: var(--s5); border-radius: 20px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; }
  body.v2-ind .ind-need > li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); opacity: .8; }
  @media (min-width: 1024px) { body.v2-ind .ind-need > li { padding: var(--s6) var(--s5) var(--s5); } }
  body.v2-ind .ind-need-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--fx-indigo); color: var(--indigo); }
  body.v2-ind .ind-need-ic svg { width: 22px; height: 22px; }
  body.v2-ind .ind-need-k { margin-top: var(--s4); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text3); }
  body.v2-ind .ind-need-v { margin-top: 4px; font-family: var(--serif); font-size: clamp(1.25rem, 1.15rem + .4vw, 1.5rem); font-weight: 500; line-height: 1.2; letter-spacing: -.01em; color: var(--text); text-wrap: balance; }
  body.v2-ind .ind-need-d { margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--line); font-size: 15px; line-height: 1.55; color: var(--text2); }
  body.v2-ind .ind-need-d a { color: var(--indigo); }

  /* assumption vs reality */
  body.v2-ind .ind-vs { display: grid; gap: var(--gap); }
  @media (min-width: 768px) { body.v2-ind .ind-vs { grid-template-columns: 1fr 1fr; } }
  body.v2-ind .ind-vs > div { padding: var(--s5) var(--s5) var(--s5); border-radius: 20px; border: 1px solid var(--line); background: var(--surface); }
  @media (min-width: 1024px) { body.v2-ind .ind-vs > div { padding: var(--s6); } }
  body.v2-ind .ind-vs > div:last-child { background: var(--fx-indigo); border-color: var(--fx-indigo-line); box-shadow: inset 3px 0 0 var(--indigo); }
  body.v2-ind .ind-vs-tag { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text3); }
  body.v2-ind .ind-vs > div:last-child .ind-vs-tag { color: var(--indigo); }
  body.v2-ind .ind-vs-tag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid currentColor; }
  body.v2-ind .ind-vs > div:last-child .ind-vs-tag::before { background: currentColor; }
  body.v2-ind .ind-vs h3 { margin-top: var(--s3); }
  body.v2-ind .ind-vs .ind-body { margin-top: var(--s3); color: var(--text2); line-height: 1.6; }
  body.v2-ind .ind-vs--multi > div { display: grid; gap: var(--s4); align-content: start; }
  body.v2-ind .ind-vs--multi .ind-vs-row + .ind-vs-row { padding-top: var(--s4); border-top: 1px solid var(--line); }
  body.v2-ind .ind-vs--multi > div:last-child .ind-vs-row + .ind-vs-row { border-top-color: var(--fx-indigo-line); }
  body.v2-ind .ind-vs--multi .ind-vs-row b { display: block; color: var(--text); font-weight: 700; line-height: 1.4; }
  body.v2-ind .ind-vs--multi .ind-vs-row span { display: block; margin-top: 4px; color: var(--text2); font-size: 15px; line-height: 1.55; }

  /* stage rail */
  body.v2-ind .ind-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: ind-s; }
  body.v2-ind .ind-steps > li { counter-increment: ind-s; position: relative; padding: 0 0 var(--s5) 56px; }
  body.v2-ind .ind-steps > li::before { content: counter(ind-s); position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 2px solid var(--gold); font-size: 14px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; z-index: 1; }
  body.v2-ind .ind-steps > li::after { content: ""; position: absolute; left: 19px; top: 40px; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--fx-indigo-line), var(--fx-gold-line)); }
  body.v2-ind .ind-steps > li:last-child { padding-bottom: 0; }
  body.v2-ind .ind-steps > li:last-child::after { display: none; }
  body.v2-ind .ind-steps h3 { padding-top: 8px; }
  body.v2-ind .ind-steps .ind-body { margin-top: var(--s2); font-size: 15px; line-height: 1.6; color: var(--text2); }
  @media (min-width: 1024px) {
    body.v2-ind .ind-steps { grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: var(--gap); }
    body.v2-ind .ind-steps > li { padding: 56px 0 0; }
    body.v2-ind .ind-steps > li::after { left: 48px; right: calc(-1 * var(--gap) + 8px); top: 19px; bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, var(--fx-indigo-line), var(--fx-gold-line)); }
    body.v2-ind .ind-steps h3 { padding-top: 0; }
  }

  /* titled cards */
  body.v2-ind .ind-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 768px) { body.v2-ind .ind-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { body.v2-ind .ind-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } body.v2-ind .ind-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  @media (min-width: 768px) and (max-width: 1023px) { body.v2-ind .ind-cards--3 > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
  body.v2-ind .ind-cards > li { position: relative; display: flex; flex-direction: column; padding: var(--s5); border-radius: 20px; background: var(--surface); border: 1px solid var(--line); }
  body.v2-ind .ind-cards-n { font-size: 12px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
  body.v2-ind .ind-cards-tag { align-self: flex-start; margin-bottom: var(--s3); padding: 4px 10px; border-radius: 999px; background: var(--fx-indigo); color: var(--indigo); font-size: 12.5px; font-weight: 700; }
  body.v2-ind .ind-cards h3 { margin-top: var(--s2); }
  body.v2-ind .ind-cards .ind-cards-n + h3 { margin-top: var(--s2); }
  body.v2-ind .ind-cards .ind-body { margin-top: var(--s3); font-size: 15px; line-height: 1.6; color: var(--text2); }
  body.v2-ind .ind-cards a.ind-cards-go { margin-top: auto; padding-top: var(--s4); display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 700; color: var(--indigo); text-decoration: none; }
  body.v2-ind .ind-cards a.ind-cards-go svg { transition: transform var(--dur-2) var(--ease-std); }
  body.v2-ind .ind-cards a.ind-cards-go:hover svg { transform: translateX(3px); }

  /* ruled list */
  body.v2-ind .ind-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
  body.v2-ind .ind-list > li { display: grid; gap: var(--s2) var(--s6); padding: var(--s5) 0; border-bottom: 1px solid var(--line); }
  @media (min-width: 768px) { body.v2-ind .ind-list > li { grid-template-columns: 5fr 7fr; } }
  body.v2-ind .ind-list h3 { display: flex; gap: var(--s3); align-items: baseline; }
  body.v2-ind .ind-list h3 .ind-list-n { flex: none; font-family: var(--font); font-size: 12px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
  body.v2-ind .ind-list .ind-body { color: var(--text2); line-height: 1.6; }
  body.v2-ind .ind-list-tag { display: block; margin-bottom: 2px; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--text3); }

  /* label + value tiles */
  body.v2-ind .ind-facts { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  @media (min-width: 1024px) { body.v2-ind .ind-facts--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); } body.v2-ind .ind-facts--3, body.v2-ind .ind-facts--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); } }
  @media (max-width: 599px) { body.v2-ind .ind-facts--3 { grid-template-columns: 1fr; } }
  body.v2-ind .ind-facts > div { padding: var(--s4) var(--s5); border-radius: 16px; background: var(--surface); border: 1px solid var(--line); box-shadow: inset 0 3px 0 var(--fx-indigo-line); }
  body.v2-ind .ind-facts dt { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--text3); }
  body.v2-ind .ind-facts dd { margin: 6px 0 0; font-size: 16px; font-weight: 700; line-height: 1.35; color: var(--text); }
  @media (max-width: 599px) { body.v2-ind .ind-facts > div { padding: var(--s4); } body.v2-ind .ind-facts dd { font-size: 15px; } }

  /* routes table */
  body.v2-ind .ind-mx-w { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); overflow: hidden; }
  body.v2-ind .ind-mx { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.55; table-layout: fixed; }
  body.v2-ind .ind-mx caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  body.v2-ind .ind-mx thead th { padding: 16px var(--s5); text-align: left; vertical-align: bottom; font-size: 13px; font-weight: 700; color: var(--text); background: var(--ivory); border-bottom: 1px solid var(--line); }
  body.v2-ind .ind-mx thead th:first-child { width: 22%; color: var(--text3); }
  body.v2-ind .ind-mx thead th.is-fit { color: var(--indigo); }
  body.v2-ind .ind-mx thead th.is-fit small { display: block; margin-bottom: 4px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-ink); }
  body.v2-ind .ind-mx tbody th, body.v2-ind .ind-mx td { padding: var(--s4) var(--s5); vertical-align: top; text-align: left; border-bottom: 1px solid var(--line); }
  body.v2-ind .ind-mx tbody th { font-size: 14px; font-weight: 700; color: var(--text); }
  body.v2-ind .ind-mx td { color: var(--text2); }
  body.v2-ind .ind-mx td.is-fit { background: var(--fx-indigo); color: var(--text); }
  body.v2-ind .ind-mx tbody tr:last-child > * { border-bottom: 0; }
  body.v2-ind .ind-mx tbody tr { transition: background var(--dur-2) var(--ease-std); }
  body.v2-ind .ind-mx tbody tr:hover { background: var(--fx-indigo-2); }
  body.v2-ind .ind-rc { display: none; }
  @media (max-width: 767px) {
    body.v2-ind .ind-mx-w { display: none; }
    body.v2-ind .ind-rc { display: grid; gap: var(--s4); list-style: none; margin: 0; padding: 0; }
    body.v2-ind .ind-rc > li { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); overflow: hidden; }
    body.v2-ind .ind-rc > li.is-fit { border-color: var(--fx-indigo-line); box-shadow: inset 3px 0 0 var(--indigo); }
    body.v2-ind .ind-rc h3 { padding: var(--s4) var(--s4) var(--s3); font-family: var(--font); font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--text); background: var(--ivory); border-bottom: 1px solid var(--line); }
    body.v2-ind .ind-rc h3 small { display: block; margin-bottom: 2px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-ink); }
    body.v2-ind .ind-rc dl { margin: 0; padding: var(--s2) var(--s4) var(--s4); display: grid; gap: var(--s3); }
    body.v2-ind .ind-rc dt { font-size: 12px; font-weight: 700; color: var(--text3); }
    body.v2-ind .ind-rc dd { margin: 2px 0 0; font-size: 15px; line-height: 1.5; color: var(--text); }
  }

  /* tick list + takeaway note */
  body.v2-ind .ind-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3) var(--gap); }
  @media (min-width: 768px) { body.v2-ind .ind-checks--2 { grid-template-columns: 1fr 1fr; } }
  body.v2-ind .ind-checks li { display: grid; grid-template-columns: 22px 1fr; gap: var(--s3); color: var(--text2); line-height: 1.55; }
  body.v2-ind .ind-checks li svg { width: 18px; height: 18px; margin-top: 3px; color: var(--indigo); }
  body.v2-ind .ind-note { margin-top: var(--s6); padding: var(--s4) var(--s5); border-radius: var(--r-md); background: var(--fx-gold); box-shadow: inset 3px 0 0 var(--fx-gold-line); color: var(--text2); line-height: 1.6; }
  body.v2-ind .ind-tint + .sv-ruled > .v2-wrap::before, body.v2-ind .v2-sec--ink + .sv-ruled > .v2-wrap::before { display: none; }
  body.v2-ind .ind-note b { color: var(--text); }
  body.v2-ind .ind-prose { max-width: var(--w-read); color: var(--text2); line-height: 1.65; }
  body.v2-ind .ind-prose p + p { margin-top: var(--s3); }

  /* the page's ink statement band */
  body.v2-ind .ind-say-g { row-gap: var(--s6); align-items: start; }
  @media (min-width: 1024px) { body.v2-ind .ind-say-g > :first-child { grid-column: 1 / span 7; padding-right: var(--s6); } body.v2-ind .ind-say-g > :last-child { grid-column: 8 / span 5; } body.v2-ind .ind-say-g > :only-child { grid-column: 1 / span 9; } }
  body.v2-ind .ind-say-q { font-family: var(--serif); font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); font-weight: 500; line-height: 1.22; letter-spacing: -.015em; color: #fff; text-wrap: balance; }
  body.v2-ind .ind-say-q::before { content: ""; display: block; width: 40px; height: 2px; margin-bottom: var(--s5); border-radius: 2px; background: #E2B23A; }
  body.v2-ind .ind-say .v2-lead { margin-top: var(--s5); color: rgba(255,255,255,.84); }
  body.v2-ind .ind-say .v2-lead a { color: #fff; text-decoration-color: rgba(240,199,90,.8); }
  body.v2-ind .ind-say .ind-checks { padding: var(--s5); border-radius: var(--r-lg); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); }
  body.v2-ind .ind-say .ind-checks li { color: rgba(255,255,255,.9); }
  body.v2-ind .ind-say .ind-checks li svg { color: #F0C75A; }
  body.v2-ind .ind-say-on { margin-bottom: var(--s3); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.7); }

  /* activity licence links */
  body.v2-ind .ind-acts { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 768px) { body.v2-ind .ind-acts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { body.v2-ind .ind-acts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 768px) and (max-width: 1023px) { body.v2-ind .ind-acts--3 > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
  body.v2-ind .ind-acts a { height: 100%; display: grid; grid-template-columns: 44px 1fr 20px; gap: var(--s4); align-items: start; padding: var(--s5); border-radius: 20px; background: var(--surface); border: 1px solid var(--line); color: inherit; text-decoration: none; transition: border-color var(--dur-2) var(--ease-std), transform var(--dur-3) var(--ease-std), box-shadow var(--dur-3) var(--ease-std); }
  body.v2-ind .ind-acts a:hover { border-color: var(--fx-indigo-line); transform: translateY(-2px); box-shadow: var(--shadow-card); }
  body.v2-ind .ind-acts-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--fx-indigo); color: var(--indigo); }
  body.v2-ind .ind-acts-ic svg { width: 22px; height: 22px; }
  body.v2-ind .ind-acts b { display: block; font-size: 16.5px; font-weight: 700; line-height: 1.35; color: var(--text); }
  body.v2-ind .ind-acts span.ind-acts-d { display: block; margin-top: 6px; font-size: 14.5px; line-height: 1.55; color: var(--text2); }
  body.v2-ind .ind-acts .ind-acts-ar { margin-top: 4px; color: var(--indigo); transition: transform var(--dur-2) var(--ease-std); }
  body.v2-ind .ind-acts a:hover .ind-acts-ar { transform: translateX(3px); }

  /* related decisions: column count follows the link count */
  @media (min-width: 1024px) { body.v2-ind .sv-rel--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } body.v2-ind .sv-rel--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

  /* hub: segmented grid of industry photo cards */
  body.v2-ind .ind-hub-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4) var(--s6); margin-bottom: var(--s6); }
  body.v2-ind .ind-hub-h .v2-h3 { font-family: var(--font); font-size: 15px; font-weight: 600; color: var(--text3); letter-spacing: 0; }
  body.v2-ind .ind-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); }
  @media (min-width: 600px) { body.v2-ind .ind-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { body.v2-ind .ind-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  body.v2-ind .ind-grid > li[hidden] { display: none; }
  body.v2-ind .ind-grid > li.is-in { animation: sv-pop var(--dur-3) var(--ease-std) backwards; }
  body.v2-ind .ind-card { height: 100%; display: flex; flex-direction: column; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); overflow: hidden; color: inherit; text-decoration: none; transition: transform var(--dur-3) var(--ease-std), box-shadow var(--dur-3) var(--ease-std); }
  body.v2-ind .ind-card:hover { transform: translateY(-3px); box-shadow: 0 2px 8px rgba(9,8,42,.06), 0 28px 50px -24px rgba(15,7,189,.32); }
  body.v2-ind .ind-card-ph { position: relative; overflow: hidden; background: var(--lilac-200); }
  body.v2-ind .ind-card-ph img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform var(--dur-5) var(--ease-std); }
  body.v2-ind .ind-card:hover .ind-card-ph img { transform: scale(1.04); }
  body.v2-ind .ind-card-rt { position: absolute; left: 12px; bottom: 12px; padding: 5px 11px; border-radius: 999px; background: rgba(255,255,255,.92); color: #0F07BD; font-size: 12.5px; font-weight: 700; line-height: 1.3; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
  body.v2-ind .ind-card-b { flex: 1; display: flex; flex-direction: column; padding: var(--s5); }
  body.v2-ind .ind-card-b h3 { font-family: var(--serif); font-size: 1.3125rem; font-weight: 500; line-height: 1.2; letter-spacing: -.01em; color: var(--text); }
  body.v2-ind .ind-card-who { margin-top: var(--s3); font-size: 14.5px; font-weight: 700; line-height: 1.4; color: var(--text); }
  body.v2-ind .ind-card-who span { display: block; margin-bottom: 2px; font-size: 12px; font-weight: 600; color: var(--text3); }
  body.v2-ind .ind-card-d { margin-top: var(--s2); font-size: 14.5px; line-height: 1.55; color: var(--text2); }
  body.v2-ind .ind-card-go { margin-top: auto; padding-top: var(--s4); display: block; font-size: 14.5px; font-weight: 700; color: var(--indigo); }
  body.v2-ind .ind-card-go svg { display: inline-block; margin-left: 6px; vertical-align: -1px; transition: transform var(--dur-2) var(--ease-std); }
  body.v2-ind .ind-card:hover .ind-card-go svg { transform: translateX(3px); }
  body.v2-ind .ind-hub-f { margin-top: var(--s6); }
  body.v2-ind .ind-hub-f p { color: var(--text2); }
  body.v2-ind .ind-hub-f a { color: var(--indigo); font-weight: 600; }
  @media (max-width: 767px) { body.v2-ind .ind-grid.is-clamped > li:nth-child(n+7) { display: none; } }


  /* hub: sub-heads in "Activity and structure come next" */
  body.v2-ind .ind-sub { display: flex; align-items: baseline; gap: var(--s3); margin-bottom: var(--s5); }
  body.v2-ind .ind-sub span { font-family: var(--font); font-size: 13px; font-weight: 700; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
  body.v2-ind .ind-acts--1 { grid-template-columns: 1fr; }
  @media (min-width: 1024px) {
    body.v2-ind .ind-acts-one { align-items: center; }
    body.v2-ind .ind-acts-one > .sv-head { grid-column: 1 / span 6; display: block; margin: 0; }
    body.v2-ind .ind-acts-one > .sv-head .v2-lead { margin-top: var(--s3); }
    body.v2-ind .ind-acts-one > .ind-acts { grid-column: 7 / span 6; }
  }
  body.v2-ind .ind-say .v2-lead a { text-decoration: underline; text-underline-offset: 3px; }
  @media (max-width: 767px) {
    body.v2-ind .ind-need > li { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: var(--s4); align-items: start; }
    body.v2-ind .ind-need-ic { grid-row: 1 / span 2; }
    body.v2-ind .ind-need-k { margin-top: 2px; }
    body.v2-ind .ind-need-d { grid-column: 1 / -1; }
  }
  @media (prefers-reduced-motion: reduce) { body.v2-ind :is(.ind-card, .ind-card-ph img, .ind-acts a, .ind-acts-ar, .ind-mx tbody tr) { transition: none; } body.v2-ind .ind-grid > li.is-in { animation: none; } }
  @media (prefers-color-scheme: dark) {
    body.v2-ind .ind-card-rt { background: rgba(23,23,36,.88); color: #9fb2fa; }
    body.v2-ind .ind-need > li, body.v2-ind .ind-card { box-shadow: none; }
  }
}
/* ===== end INDUSTRY PAGES v1 ===== */
/* ===== BEFORE YOU BUILD v1 addendum, 22 Oct 2026: deck emphasis without an italic font swap (CLS), key-takeaway ticks over the legacy kt-list marker, loose stat labels read as text ===== */
@layer v2.components {
  body.v2-byb .bb-hero .v2-deck em { font-style: normal; font-weight: 600; color: var(--text); }
  body.v2-byb .bb-sum .kt-list > li { padding-left: 26px; background: none; border: 0; }
  body.v2-byb .bb-sum .kt-list > li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 12px; height: 7px; margin: 0; border: 0; border-left: 2px solid var(--indigo); border-bottom: 2px solid var(--indigo); border-radius: 0; background: none; transform: rotate(-45deg); }
  body.v2-byb .bb-sec > p.bb-tag, body.v2-byb .bb-sec--plain > p.bb-tag { font-size: 17px !important; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--text) !important; }
}
/* ===== end BEFORE YOU BUILD v1 addendum ===== */

/* ==========================================================================
   ARTICLES v1 (20 Oct 2026): guides, comparisons and updates, scoped to body.v2-art
   Body: <body class="v2-page v2-art ar-guide|ar-compare|ar-updates ar-p-<slug>">, plus
   /assets/js/art.js (defer: contents highlight, hub filter) and /assets/css/v2-art.css
   (each page's own charts and diagrams, scoped to body.ar-p-<slug>).
     .ar-hero > .ar-hero-g > .ar-hero-t (v2-bc, .ar-meta, h1, deck, cta) + figure.ar-hph
     .ar-layout > article.ar-main (.ar-ag / .kt-box, .ar-sec, .ar-faq) + aside.ar-rail (.ar-toc, .ar-rcall)
     .ar-proof  reviews band     .ar-rel > .ar-cards > .ar-card  related photo cards
     .ar-close > .ar-call   closing call card (the page's one ink moment)
   Hubs: .ar-hub-hero (same hero), .ar-seg segmented filter, .ar-grp topic groups of .ar-card
   Colours only from flipping tokens; gold only as a fine highlight.
   ========================================================================== */
@layer v2.components {
  body.v2-art { --ar-y: 48px; --ar-rail: 300px; --ar-col-gap: 48px; --ar-top: calc(var(--v2-hd-hc, 72px) + 24px); }
  @media (min-width: 768px) { body.v2-art { --ar-y: 56px; } }
  @media (min-width: 1024px) { body.v2-art { --ar-y: 64px; --ar-col-gap: clamp(56px, 6vw, 104px); } }

  /* ---------- hero ---------- */
  body.v2-art .ar-hero { position: relative; isolation: isolate; padding-block: var(--hero-pt) var(--s7); background: linear-gradient(180deg, var(--ivory) 0%, var(--white) 100%); border-bottom: 1px solid var(--line); }
  body.v2-art .ar-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: var(--bg-lattice-img); background-size: 56px 56px; opacity: var(--bg-lattice-o); -webkit-mask-image: radial-gradient(60% 90% at 100% 0%, #000 0%, transparent 70%); mask-image: radial-gradient(60% 90% at 100% 0%, #000 0%, transparent 70%); }
  body.v2-art .ar-hero-g { display: grid; gap: var(--s6); align-items: center; }
  @media (min-width: 1024px) {
    body.v2-art .ar-hero { padding-bottom: var(--s8); }
    body.v2-art .ar-hero-g { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s8); }
  }
  body.v2-art .ar-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-bottom: var(--s4); font-size: var(--fs-small); color: var(--text3); }
  body.v2-art .ar-kind { display: inline-flex; align-items: center; min-height: 26px; padding: 2px 11px; border-radius: 999px; background: var(--fx-indigo); box-shadow: inset 0 0 0 1px var(--fx-indigo-line); color: var(--indigo); font-size: var(--fs-label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  body.v2-art .ar-meta time { font-weight: 500; }
  body.v2-art .ar-h1 { max-width: 20ch; }
  body.v2-art .ar-h1 .v2-accent, body.v2-art .ar-h1 .d-accent { font-style: normal; }
  body.v2-art .ar-deck { margin-top: var(--s5); max-width: 52ch; }
  body.v2-art .ar-hero-cta { margin-top: var(--s6); }
  body.v2-art .ar-hph { margin: 0; border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow-card); background: var(--ivory); aspect-ratio: 16 / 10; }
  body.v2-art .ar-hph img { width: 100%; height: 100%; object-fit: cover; }
  @media (min-width: 1024px) { body.v2-art .ar-hph { aspect-ratio: 4 / 3; } }
  @media (max-width: 767px) { body.v2-art .ar-hero-cta .v2-btn { width: 100%; } }

  /* ---------- layout: reading column + side rail ---------- */
  body.v2-art .ar-layout { display: grid; grid-template-columns: minmax(0, 1fr); padding-block: var(--ar-y); }
  @media (min-width: 1024px) { body.v2-art .ar-layout { grid-template-columns: minmax(0, 1fr) var(--ar-rail); column-gap: var(--ar-col-gap); } }
  body.v2-art .ar-main { min-width: 0; }
  body.v2-art .ar-rail { display: none; }
  @media (min-width: 1024px) {
    body.v2-art .ar-rail { display: block; }
    body.v2-art .ar-rail-in, body.v2-art .ar-rail > .ar-toc { position: sticky; top: var(--ar-top); }
  }

  /* ---------- reading type ---------- */
  body.v2-art .ar-main { font-size: var(--fs-body); line-height: 1.7; color: var(--text2); }
  body.v2-art .ar-sec { padding-block: var(--ar-y); }
  body.v2-art .ar-sec + .ar-sec { border-top: 1px solid var(--line); }
  body.v2-art .ar-main > .ar-sec:first-child { padding-top: 0; }
  body.v2-art .ar-main > .ar-sec:last-child { padding-bottom: 0; }
  body.v2-art .ar-nw { white-space: nowrap; }
  body.v2-art :where(.ar-sec) > * + *, body.v2-art :where(.ar-sec > div:not([class])) > * + * { margin-top: var(--s5); }
  body.v2-art .ar-sec .ar-h2, body.v2-art .ar-main h2.v2-h2 { font-size: clamp(1.625rem, 1.42rem + .82vw, 2.125rem); line-height: 1.15; scroll-margin-top: var(--ar-top); }
  body.v2-art .ar-sec .ar-h2 + *, body.v2-art .ar-sec .ar-h2 + p { margin-top: var(--s4); }
  body.v2-art :where(.ar-main p.d-lead, .ar-sec > p, .ar-sec > div:not([class]) > p) { font-size: var(--fs-body); line-height: 1.75; color: var(--text2); max-width: 68ch; }
  body.v2-art .ar-main p a:not([class]), body.v2-art .ar-main li a:not([class]) { color: var(--indigo); text-decoration: underline; text-decoration-color: var(--fx-indigo-line); text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
  body.v2-art .ar-main p a:not([class]):hover { text-decoration-color: var(--indigo); }
  body.v2-art :where(.ar-sec > ul:not([class]), .ar-sec > ol:not([class]), .ar-sec > div:not([class]) > ul:not([class]), .ar-sec > div:not([class]) > ol:not([class])) { padding-left: 1.25em; max-width: 68ch; }
  body.v2-art :where(.ar-sec > ul:not([class]), .ar-sec > ol:not([class])) > li + li { margin-top: 8px; }
  body.v2-art :where(.ar-main) h3 { font-family: var(--font); font-size: var(--fs-h4); line-height: 1.35; font-weight: 600; color: var(--text); letter-spacing: 0; text-wrap: balance; }
  body.v2-art :where(.ar-sec > p, .ar-sec > div:not([class]) > p, .ar-main p.d-lead) :is(b, strong) { color: var(--text); font-weight: 600; }

  /* ---------- answer first: At a glance and Key takeaways ---------- */
  body.v2-art .ar-main :is(.ar-ag, .kt-box) { position: relative; margin: 0; padding: var(--s5) var(--s5) var(--s5) calc(var(--s5) + 4px); border-radius: var(--r-lg); background: linear-gradient(90deg, var(--fx-indigo), var(--fx-indigo-2)); border: 1px solid var(--fx-indigo-line); box-shadow: inset 4px 0 0 var(--indigo); max-width: none; }
  @media (min-width: 768px) { body.v2-art .ar-main :is(.ar-ag, .kt-box) { padding: var(--s6) var(--s7) var(--s6) calc(var(--s6) + 4px); } }
  body.v2-art .ar-main :is(.ar-ag .quick-answer-label, .kt-box .kt-title) { display: block; margin: 0 0 var(--s3); font-family: var(--font); font-size: var(--fs-label); line-height: 1.3; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--indigo); border: 0; padding: 0; }
  body.v2-art .ar-main :is(.ar-ag .quick-answer-label, .kt-box .kt-title)::before { content: none; }
  body.v2-art .ar-main .ar-ag p { margin: 0; font-size: var(--fs-deck); line-height: 1.6; color: var(--text); max-width: none; }
  body.v2-art .ar-main .kt-box .kt-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
  body.v2-art .ar-main .kt-box .kt-list li { position: relative; margin: 0; padding: 0 0 0 26px; font-size: var(--fs-body); line-height: 1.6; color: var(--text); }
  body.v2-art .ar-main .kt-box .kt-list li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 9px; height: 9px; border-radius: 50%; background: var(--indigo); box-shadow: 0 0 0 4px var(--fx-indigo); }
  body.v2-art .ar-main .kt-box + * { margin-top: var(--ar-y); }
  body.v2-art .ar-main .ar-ag + .ar-fig, body.v2-art .ar-main .kt-box + .ar-fig { margin-top: var(--s6); }
  body.v2-art .ar-main .ar-fig { margin-block: var(--s6) 0; }
  body.v2-art .ar-main .ar-fig:has(> svg:only-child) { padding: var(--s6); border-radius: var(--r-lg); background: linear-gradient(180deg, var(--fx-indigo-2), transparent); border: 1px solid var(--line); }
  body.v2-art .ar-main .ar-fig > svg:only-child { display: block; width: 100%; max-width: 520px; height: auto; margin-inline: auto; }
  /* a dark band inside the reading column becomes an inset ink panel */
  body.v2-art .ar-main .ar-sec[class*="-band"] { padding: var(--s7) var(--s6); margin-block: var(--s6); border-radius: var(--r-xl); border-top: 0; }
  body.v2-art .ar-main .ar-sec[class*="-band"] + .ar-sec { border-top: 0; }
  body.v2-art .ar-main .ar-sec[class*="-band"] .ar-h2 { color: #fff; }
  body.v2-art .ar-main .kt-box + .ar-fig + * { margin-top: var(--ar-y); }

  /* ---------- tables (comparison blocks) ---------- */
  body.v2-art .ar-main :is(.compare-scroller, .table-wrap) { overflow-x: auto; border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--surface); -webkit-overflow-scrolling: touch; }
  body.v2-art .ar-main table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; color: var(--text2); background: var(--surface); }
  body.v2-art .ar-main :is(.compare-scroller, .table-wrap) table { border: 0; margin: 0; }
  body.v2-art .ar-main table :is(th, td) { padding: 14px 16px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--line); }
  body.v2-art .ar-main table thead th { background: var(--fx-indigo); color: var(--text); font-size: 13px; font-weight: 700; letter-spacing: .02em; border-bottom: 1px solid var(--fx-indigo-line); }
  body.v2-art .ar-main table tbody tr:last-child :is(th, td) { border-bottom: 0; }
  body.v2-art .ar-main table :is(td.row-label, tbody th) { color: var(--text); font-weight: 600; }

  /* ---------- FAQ ---------- */
  body.v2-art .ar-faq .v2-faq { margin-top: var(--s5); }
  body.v2-art .ar-faq .faq-a a { color: var(--indigo); }

  /* ---------- side rail ---------- */
  body.v2-art .ar-toc-h, body.v2-art .ar-rcall-t { margin: 0; font-size: var(--fs-label); line-height: 1.3; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text3); }
  body.v2-art .ar-toc ol { list-style: none; margin: var(--s3) 0 0; padding: 0; border-left: 1px solid var(--line); }
  body.v2-art .ar-toc li { margin: 0; }
  body.v2-art .ar-toc a { position: relative; display: block; padding: 7px 0 7px 16px; font-size: 14px; line-height: 1.4; color: var(--text3); text-decoration: none; transition: color var(--dur-2, 200ms) var(--ease-std, ease); }
  body.v2-art .ar-toc a::before { content: ""; position: absolute; left: -1px; top: 6px; bottom: 6px; width: 2px; border-radius: 2px; background: var(--indigo); transform: scaleY(0); transition: transform var(--dur-3, 280ms) var(--ease-std, ease); }
  body.v2-art .ar-toc a:hover { color: var(--text); }
  body.v2-art .ar-toc a[aria-current="true"] { color: var(--indigo); font-weight: 600; }
  body.v2-art .ar-toc a[aria-current="true"]::before { transform: scaleY(1); }
  body.v2-art .ar-rcall { margin-top: var(--s6); padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
  body.v2-art .ar-rcall-t { color: var(--gold-ink); }
  body.v2-art .ar-rcall-d { margin: var(--s2) 0 0; font-size: 15px; line-height: 1.55; color: var(--text); }
  body.v2-art .ar-rcall .v2-btn { width: 100%; margin-top: var(--s4); }
  body.v2-art .ar-rcall-wa { margin-top: var(--s4); font-size: 14px; }

  /* ---------- reviews band ---------- */
  body.v2-art .ar-proof { padding-block: var(--ar-y); background: var(--ivory); border-block: 1px solid var(--line); }
  body.v2-art .ar-proof .ar-h2 { margin-bottom: var(--s5); }

  /* ---------- related photo cards ---------- */
  body.v2-art .ar-rel { padding-block: var(--ar-y) var(--s6); }
  body.v2-art .ar-rel-h { margin-bottom: var(--s5); }
  body.v2-art .ar-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr); }
  @media (min-width: 640px) { body.v2-art .ar-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) {
    body.v2-art .ar-cards--3, body.v2-art .ar-cards--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body.v2-art .ar-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    body.v2-art .ar-cards--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body.v2-art .ar-cards--5 > li:first-child { grid-row: span 2; }
    body.v2-art .ar-cards--5 > li:first-child .ar-card-m { aspect-ratio: auto; flex: 1 1 auto; min-height: 220px; }
  }
  /* tablet: two across; an odd count lets the first card run full width, laid out sideways */
  @media (min-width: 640px) and (max-width: 1023px) {
    body.v2-art .ar-cards:has(> li:last-child:nth-child(odd)) > li:first-child { grid-column: 1 / -1; }
    body.v2-art .ar-cards:has(> li:last-child:nth-child(odd)) > li:first-child .ar-card { flex-direction: row; }
    body.v2-art .ar-cards:has(> li:last-child:nth-child(odd)) > li:first-child .ar-card-m { flex: 0 0 50%; aspect-ratio: 16 / 10; }
    body.v2-art .ar-cards:has(> li:last-child:nth-child(odd)) > li:first-child .ar-card-b { justify-content: center; padding: var(--s5) var(--s6); }
    body.v2-art .ar-hph { aspect-ratio: 2 / 1; }
  }
  body.v2-art .ar-cards > li { display: flex; min-width: 0; }
  @media (max-width: 639px) {
    body.v2-art .ar-cards:not(.ar-cards--types) .ar-card { flex-direction: row; align-items: stretch; }
    body.v2-art .ar-cards:not(.ar-cards--types) .ar-card-m { flex: 0 0 108px; aspect-ratio: auto; min-height: 100%; }
    body.v2-art .ar-cards:not(.ar-cards--types) .ar-card-b { padding: 14px 16px; gap: 4px; }
    body.v2-art .ar-cards:not(.ar-cards--types) .ar-card-t { font-size: 16px; }
    body.v2-art .ar-cards:not(.ar-cards--types) .ar-card-d { font-size: 14px; }
  }
  body.v2-art .ar-card { display: flex; flex-direction: column; width: 100%; border-radius: var(--r-lg); overflow: hidden; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); color: inherit; text-decoration: none; }
  body.v2-art .ar-card-m { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--fx-indigo); }
  body.v2-art .ar-card-m img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  body.v2-art .ar-card-b { display: flex; flex-direction: column; gap: 6px; padding: var(--s4) var(--s5) var(--s5); }
  body.v2-art .ar-card-k { font-size: var(--fs-label); line-height: 1.3; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--indigo); }
  body.v2-art .ar-card-t { font-size: 17px; line-height: 1.35; font-weight: 600; color: var(--text); text-wrap: balance; }
  body.v2-art .ar-card-d { font-size: 14.5px; line-height: 1.55; color: var(--text3); }
  body.v2-art .ar-card:hover .ar-card-t { color: var(--indigo); }
  body.v2-art .ar-card:focus-visible { outline: 3px solid var(--indigo); outline-offset: 3px; }

  /* ---------- closing call card (one ink moment) ---------- */
  body.v2-art .ar-close { padding-block: var(--s6) var(--ar-y); }
  body.v2-art .ar-call { position: relative; isolation: isolate; overflow: hidden; display: grid; gap: var(--s6); padding: var(--s7) var(--s5); border-radius: var(--r-xl); background: var(--grad-brand); color: #fff; }
  body.v2-art .ar-call::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Cpath d='M28 0 56 28 28 56 0 28Z'/%3E%3Cpath d='M28 12 44 28 28 44 12 28Z'/%3E%3Ccircle cx='28' cy='28' r='3.5'/%3E%3C/g%3E%3C/svg%3E"); background-size: 56px 56px; opacity: .07; -webkit-mask-image: radial-gradient(70% 120% at 100% 0%, #000 0%, transparent 75%); mask-image: radial-gradient(70% 120% at 100% 0%, #000 0%, transparent 75%); }
  body.v2-art .ar-call::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad-rule); }
  @media (min-width: 768px) { body.v2-art .ar-call { padding: var(--s8) var(--s7); } }
  @media (min-width: 1024px) { body.v2-art .ar-call { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--s8); padding: var(--s8) var(--s9); } }
  body.v2-art .ar-call .v2-h2 { color: #fff; font-size: clamp(1.75rem, 1.5rem + 1vw, 2.5rem); }
  body.v2-art .ar-call .v2-accent { color: #C9D3FF; }
  body.v2-art .ar-call-t p { margin-top: var(--s4); max-width: 54ch; font-size: var(--fs-deck); line-height: 1.6; color: rgba(255,255,255,.84); }
  body.v2-art .ar-call-a { display: flex; flex-wrap: wrap; gap: var(--s3); }
  @media (min-width: 1024px) { body.v2-art .ar-call-a { justify-content: flex-end; } }
  @media (max-width: 767px) { body.v2-art .ar-call-a .v2-btn { width: 100%; } }
  body.v2-art .ar-btn-ghost, body.v2-art .ar-btn-ghost:visited { background: rgba(255,255,255,.06); color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.45); }
  body.v2-art .ar-btn-ghost:hover { background: rgba(255,255,255,.14); box-shadow: inset 0 0 0 1.5px #fff; color: #fff; }
  body.v2-art .ar-call :focus-visible { outline-color: #fff; }
}
/* ===== end ARTICLES v1 ===== */
/* ---------- ARTICLES v1: hubs (guides, compare, updates), scoped to body.v2-art.ar-hub ---------- */
@layer v2.components {
  body.ar-hub { --ar-y: 56px; }
  @media (min-width: 1024px) { body.ar-hub { --ar-y: 80px; } }
  body.ar-hub .ar-hero { border-bottom: 0; padding-bottom: var(--s7); }
  body.ar-hub .ar-hero-cta { align-items: center; gap: var(--s4) var(--s6); }
  body.ar-hub .ar-hag { padding-block: var(--s6) 0; background: var(--white); }
  body.ar-hub .ar-hag .ar-ag { position: relative; margin-top: 0; padding: var(--s5) var(--s5) var(--s5) calc(var(--s5) + 4px); border-radius: var(--r-lg); background: linear-gradient(90deg, var(--fx-indigo), var(--fx-indigo-2)), var(--surface); border: 1px solid var(--fx-indigo-line); box-shadow: inset 4px 0 0 var(--indigo), var(--shadow-card); }
  @media (min-width: 768px) { body.ar-hub .ar-hag .ar-ag { padding: var(--s6) var(--s7) var(--s6) calc(var(--s6) + 4px); } }
  body.ar-hub .ar-hag .quick-answer-label { display: block; margin: 0 0 var(--s3); font-size: var(--fs-label); line-height: 1.3; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--indigo); border: 0; padding: 0; }
  body.ar-hub .ar-hag .quick-answer-label::before { content: none; }
  body.ar-hub .ar-hag .ar-ag p { margin: 0; font-size: var(--fs-deck); line-height: 1.6; color: var(--text); max-width: 80ch; }
  body.ar-hub .ar-hsec { padding-block: var(--ar-y); }
  body.ar-hub .ar-hsec--alt { background: var(--ivory); border-block: 1px solid var(--line); }
  body.ar-hub .ar-hhead { display: grid; gap: var(--s3) var(--gap); margin-bottom: var(--s7); }
  @media (min-width: 1024px) {
    body.ar-hub .ar-hhead { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: calc(var(--gap) * 3); align-items: end; }
    body.ar-hub .ar-hhead > .v2-lead { justify-self: end; max-width: 52ch; }
  }
  body.ar-hub .ar-hhead .v2-lead { max-width: 56ch; }
  body.ar-hub .ar-hafter { margin-top: var(--s7); max-width: 72ch; color: var(--text2); line-height: 1.7; }
  body.ar-hub .ar-hafter a, body.ar-hub .ar-hsec td a, body.ar-hub .ar-hsec .hb-tl a { color: var(--indigo); text-decoration: underline; text-decoration-color: var(--fx-indigo-line); text-underline-offset: 3px; }

  /* segmented filter */
  body.ar-hub .ar-seg { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 var(--s6); padding: 6px; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); width: fit-content; max-width: 100%; }
  body.ar-hub .ar-seg[hidden] { display: none; }
  body.ar-hub .ar-seg button { min-height: 40px; padding: 8px 16px; border: 0; border-radius: 10px; background: transparent; font: 600 14px/1.2 var(--font); color: var(--text2); cursor: pointer; transition: background-color var(--dur-2, 200ms) var(--ease-std, ease), color var(--dur-2, 200ms) var(--ease-std, ease); }
  body.ar-hub .ar-seg button:hover { color: var(--indigo); background: var(--fx-indigo); }
  body.ar-hub .ar-seg button[aria-pressed="true"] { background: var(--indigo-solid, var(--indigo)); color: #fff; }
  body.ar-hub .ar-seg button:focus-visible { outline: 3px solid var(--indigo); outline-offset: 2px; }
  @media (max-width: 1023px) {
    body.ar-hub .ar-seg { flex-wrap: nowrap; overflow-x: auto; width: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
    body.ar-hub .ar-seg::-webkit-scrollbar { display: none; }
    body.ar-hub .ar-seg button { flex: 0 0 auto; }
  }

  /* topic groups */
  body.ar-hub .ar-grp + .ar-grp { margin-top: var(--s8); padding-top: var(--s8); border-top: 1px solid var(--line); }
  body.ar-hub .ar-grp[hidden] { display: none; }
  body.ar-hub .ar-grp-h { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--s4); row-gap: 6px; align-items: baseline; margin-bottom: var(--s5); }
  body.ar-hub .ar-grp-n { grid-row: span 2; font-size: var(--fs-label); font-weight: 700; letter-spacing: .12em; color: var(--gold-ink); }
  body.ar-hub .ar-grp-h p { color: var(--text3); max-width: 64ch; }
  @media (min-width: 1024px) {
    body.ar-hub .ar-cards--g1, body.ar-hub .ar-cards--g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.ar-hub .ar-cards--g3, body.ar-hub .ar-cards--g6, body.ar-hub .ar-cards--g9 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body.ar-hub .ar-cards--g4, body.ar-hub .ar-cards--g8 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    body.ar-hub .ar-cards--g5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body.ar-hub .ar-cards--g7 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    body.ar-hub :is(.ar-cards--g5, .ar-cards--g7) > li:first-child { grid-column: span 2; }
    body.ar-hub :is(.ar-cards--g5, .ar-cards--g7) > li:first-child .ar-card-m { aspect-ratio: 33 / 10; }
    body.ar-hub :is(.ar-cards--g5, .ar-cards--g7) > li:first-child .ar-card-t { font-size: 19px; }
    body.ar-hub .ar-cards--g2 .ar-card { flex-direction: row; }
    body.ar-hub .ar-cards--g2 .ar-card-m { flex: 0 0 44%; aspect-ratio: 4 / 3; }
    body.ar-hub .ar-cards--g2 .ar-card-b { justify-content: center; padding: var(--s5) var(--s6); }
  }
  /* the updates list: newest first; the newest leads at double size until a filter is chosen */
  @media (min-width: 640px) { body.ar-hub .ar-cards--upd:not(.is-filtered) > li:first-child { grid-column: 1 / -1; } }
  @media (min-width: 1024px) {
    body.ar-hub .ar-cards--upd { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    body.ar-hub .ar-cards--upd.is-filtered { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body.ar-hub .ar-cards--upd:not(.is-filtered) > li:first-child { grid-column: span 2; grid-row: span 2; }
    body.ar-hub .ar-cards--upd:not(.is-filtered) > li:first-child .ar-card-m { aspect-ratio: auto; flex: 1 1 auto; min-height: 260px; }
    body.ar-hub .ar-cards--upd:not(.is-filtered) > li:first-child .ar-card-t { font-size: 22px; }
  }
  body.ar-hub .ar-cards--upd > li[hidden] { display: none; }
  body.ar-hub .ar-card-k { display: flex; flex-direction: column; gap: 2px; }
  body.ar-hub .ar-card-k time { font-weight: 600; letter-spacing: .02em; text-transform: none; color: var(--text3); }
  /* company type cards: legal forms as chips */
  body.ar-hub .ar-type .ar-card-b { flex: 1 1 auto; }
  body.ar-hub .ar-type h3.ar-card-t { margin: 0; font-size: 19px; }
  body.ar-hub .ar-chips { list-style: none; margin: var(--s3) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
  body.ar-hub .ar-chips li { padding: 3px 10px; border-radius: 999px; background: var(--fx-indigo); box-shadow: inset 0 0 0 1px var(--fx-indigo-line); font-size: 12.5px; font-weight: 600; color: var(--text); }
  body.ar-hub .ar-type .ar-card-go { text-decoration: none; }
  body.ar-hub .ar-type .ar-card-go:hover { text-decoration: underline; }
  /* comparison cards: question, the deciding factor, the read link */
  body.ar-hub .ar-cards--cmp .ar-card-t { font-size: 18px; }
  body.ar-hub .ar-cards--cmp .ar-card-d b { color: var(--text); font-weight: 600; }
  body.ar-hub .ar-card-go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: var(--s3); font-size: 14px; font-weight: 600; color: var(--indigo); }
  body.ar-hub .ar-cards--cmp .ar-card-b { flex: 1 1 auto; }
  @media (min-width: 1024px) { body.ar-hub .ar-cards--cmp { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

  /* hub FAQ: heading aside, questions beside it */
  body.ar-hub .ar-hfaq-g { display: grid; gap: var(--s5) var(--gap); }
  @media (min-width: 1024px) { body.ar-hub .ar-hfaq-g { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: calc(var(--gap) * 3); } body.ar-hub .ar-hfaq-h { position: sticky; top: var(--ar-top); align-self: start; } }

  /* tables and the dated timeline on hubs */
  body.ar-hub .ar-hsec :is(.compare-scroller, .hb-board) { overflow-x: auto; border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-card); }
  body.ar-hub .ar-hsec table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.55; color: var(--text2); background: transparent; border: 0; margin: 0; }
  body.ar-hub .ar-hsec table :is(th, td) { padding: 16px 20px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--line); background: transparent; }
  body.ar-hub .ar-hsec table thead th { background: var(--fx-indigo); color: var(--text); font-size: 13px; font-weight: 700; letter-spacing: .02em; border-bottom: 1px solid var(--fx-indigo-line); }
  body.ar-hub .ar-hsec table tbody tr:last-child :is(th, td) { border-bottom: 0; }
  body.ar-hub .ar-hsec table :is(td.row-label, tbody th) { color: var(--text); font-weight: 600; }
  body.ar-hub .ar-hsec table td strong { color: var(--text); }
  @media (max-width: 767px) {
    body.ar-hub .ar-hsec .compare-scroller { overflow: visible; }
    body.ar-hub .ar-hsec .compare-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    body.ar-hub .ar-hsec .compare-table :is(tbody, tr, td) { display: block; }
    body.ar-hub .ar-hsec .compare-table tr { padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line); }
    body.ar-hub .ar-hsec .compare-table tbody tr:last-child { border-bottom: 0; }
    body.ar-hub .ar-hsec .compare-table td { padding: 0; border: 0; }
    body.ar-hub .ar-hsec .compare-table td + td { margin-top: var(--s2); }
    body.ar-hub .ar-hsec .compare-table td:last-child a { font-weight: 600; }
  }
}
/* ---------- end ARTICLES v1: hubs ---------- */
/* ===== ACTIVITY PAGES v2 review fixes (20 Oct 2026): rows fill their width, aligned labels, scoped to body.v2-act ===== */
@layer v2.components {
  /* approvals and finder: six-track grid so no row leaves an empty right side (2 = halves, 4 = 2x2, lone = full) */
  @media (min-width: 1024px) {
    body.v2-act .act-tracks, body.v2-act .act-rows { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    body.v2-act .act-tracks > li, body.v2-act .act-rows > li { grid-column: span 2; }
    body.v2-act :is(.act-tracks, .act-rows) > li:only-child { grid-column: 1 / -1; }
    body.v2-act :is(.act-tracks, .act-rows) > li:nth-child(3n+1):nth-last-child(2),
    body.v2-act :is(.act-tracks, .act-rows) > li:nth-child(3n+1):nth-last-child(2) ~ li,
    body.v2-act :is(.act-tracks, .act-rows) > li:first-child:nth-last-child(4),
    body.v2-act :is(.act-tracks, .act-rows) > li:first-child:nth-last-child(4) ~ li { grid-column: span 3; }
    body.v2-act .act-rows > li:last-child:nth-child(3n+1):not(:only-child):not(:nth-child(4)) { grid-column: 1 / -1; }
  }
  @media (min-width: 640px) and (max-width: 1023px) { body.v2-act .act-tracks > li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
  /* hub finder: search on its own line, category chips below it */
  @media (min-width: 1024px) {
    body.v2-act .act-finder-controls { grid-template-columns: minmax(0, 1fr); }
    body.v2-act .act-search-field { max-width: 480px; }
  }
  /* hub starting points: arrow sits after the last word on every row */
  body.v2-act-hub .act-mx--start .act-go { display: inline; }
  body.v2-act-hub .act-mx--start .act-go svg { display: inline-block; margin-left: 8px; vertical-align: -1px; }
  /* route note: plain sentence, short link after it */
  body.v2-act .act-notes .act-go { display: inline; white-space: nowrap; }
  body.v2-act .act-notes .act-go svg { display: inline-block; margin-left: 6px; vertical-align: -1px; }
  /* mapper: wider label column, chips may wrap */
  @media (min-width: 600px) {
    body.v2-act .act-map tbody th { width: 42%; }
    body.v2-act .act-map td .act-chip { white-space: normal; text-align: left; border-radius: 10px; line-height: 1.4; }
  }
  /* timeline: readable minimum width, meta line aligned at the foot of every cell */
  @media (min-width: 768px) {
    body.v2-act .act-clock-steps li { min-width: 150px; grid-template-rows: auto 1fr; row-gap: 6px; }
    body.v2-act .act-clock-band { align-self: end; }
  }
}
/* ===== end ACTIVITY PAGES v2 review fixes ===== */
/* ===== RELOCATION PAGES v1 review fixes, 22 Oct 2026: scoped to body.v2-rel ===== */
@layer v2.components {
  body.v2-rel .rl-stops-note { max-width: none; }
  @media (min-width: 1024px) { body.v2-rel .rl-arr .sv-head { align-items: start; } }
}
/* ===== end RELOCATION PAGES v1 review fixes ===== */
/* ===== ARTICLES v1 addendum (20 Oct 2026): paragraph rhythm inside page components, hub timeline note; scoped to body.v2-art ===== */
@layer v2.components {
  body.v2-art :where(.ar-sec) :where(p) + :where(p) { margin-top: var(--s4); }
  body.ar-hub .ar-hsec .hb-tl-note { margin-top: var(--s6); max-width: 72ch; color: var(--text2); }
  body.ar-hub .ar-hsec .hb-tl-note b { color: var(--text); }
}
/* ===== end ARTICLES v1 addendum ===== */

/* ===== INDUSTRY PAGES v1 review fixes (22 Oct 2026), scoped to body.v2-ind ===== */
@layer v2.components {
  /* At a glance gets its own bottom breath when a tinted section follows it */
  body.v2-ind .sv-brief:has(+ .ind-tint) { padding-bottom: var(--sv-y); }
  /* one surface for every takeaway note, so it reads the same on white and on tint */
  body.v2-ind .ind-note { background: var(--surface); border: 1px solid var(--line); box-shadow: inset 3px 0 0 var(--fx-gold-line); }
  /* section heads: heading and intro share one top line instead of floating to the bottom */
  @media (min-width: 1024px) {
    body.v2-ind .sv-head { align-items: start; }
    body.v2-ind .sv-head > .sv-head-r { padding-top: .35em; }
    /* statement band with no aside: statement left, supporting lines right, no empty half */
    body.v2-ind .ind-say-g > :only-child { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-columns: subgrid; column-gap: var(--gap); align-items: end; padding-right: 0; }
    body.v2-ind .ind-say-g > :only-child > .ind-say-q { grid-column: 1 / span 6; grid-row: 1 / span 3; align-self: center; }
    body.v2-ind .ind-say-g > :only-child > .v2-lead { grid-column: 7 / span 6; margin-top: 0; max-width: 56ch; }
    body.v2-ind .ind-say-g > :only-child > .v2-lead + .v2-lead { margin-top: var(--s4); }
  }
}
@layer v2.components {
  /* hub cards: title, approver, line and link share rows across each row of four */
  @supports (grid-template-rows: subgrid) {
    @media (min-width: 1024px) {
      body.v2-ind .ind-grid > li { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; }
      body.v2-ind .ind-grid .ind-card { display: grid; grid-row: 1 / -1; grid-template-rows: subgrid; row-gap: 0; }
      body.v2-ind .ind-grid .ind-card-b { display: grid; grid-row: 2 / span 4; grid-template-rows: subgrid; row-gap: 0; }
      body.v2-ind .ind-grid .ind-card-go { align-self: end; }
      body.v2-ind .ind-grid .ind-card-b h3 { align-self: end; }
    }
  }
}
@layer v2.components {
  /* hero H1: a little more measure, and short phrases that never split across lines */
  body.v2-ind .sv-hero--ph .v2-h1 { max-width: 17ch; }
  body.v2-ind .v2-h1 .ind-nw { white-space: nowrap; }
}
@layer v2.components {
  /* short prose under a section head spreads across both columns instead of leaving the right half empty */
  @media (min-width: 1024px) {
    body.v2-ind .ind-prose:has(> p + p) { max-width: none; column-count: 2; column-gap: var(--gap); }
    body.v2-ind .ind-prose:has(> p + p) > p { break-inside: avoid; }
    body.v2-ind .ind-prose:has(> p + p) > p + p { margin-top: 0; }
  }
}
/* ===== end INDUSTRY PAGES v1 review fixes ===== */
/* ===== ARTICLES v1 review fixes (20 Oct 2026): hub summary spans the grid, stake lines as pull statements, no orphan tiles, card links keep their arrow; scoped to body.v2-art ===== */
@layer v2.components {
  /* hubs: At a glance runs the full width, label left and answer right, so no empty half beside it */
  body.ar-hub .ar-hag .ar-ag { max-width: none; }
  @media (min-width: 1024px) {
    body.ar-hub .ar-hag .ar-ag { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr); column-gap: var(--s7); align-items: start; }
    body.ar-hub .ar-hag .quick-answer-label { margin: .45em 0 0; }
    body.ar-hub .ar-hag .ar-ag p { max-width: 74ch; }
  }
  /* topic group heads: number and title share a line, the intro starts on the same left edge as the cards */
  body.ar-hub .ar-grp-n { grid-row: auto; }
  body.ar-hub .ar-grp-h p { grid-column: 1 / -1; }
  /* closing call after a tinted band gets the same air as after a white one */
  body.ar-hub .ar-hsec--alt + .ar-close { padding-top: var(--ar-y); }
  /* card links: the arrow follows the last word instead of floating to the far edge */
  body.ar-hub .ar-card-go { display: block; align-self: flex-start; text-wrap: balance; }
  body.ar-hub .ar-card-go svg { display: inline-block; margin-left: 8px; vertical-align: -1px; }
  /* updates hub lead card: keep the invoice and hands in frame when the tall card crops the photo */
  body.ar-hub-updates .ar-cards--upd img[src*="tx-vat"] { object-position: 78% 45%; }
  /* stake lines: a quiet pull statement in the reading column, not a heading */
  body.v2-art .ar-main p.ar-stake { margin: 0; max-width: 44ch; padding-left: var(--s5); border-left: 2px solid var(--indigo); font-family: var(--serif); font-size: clamp(1.25rem, 1.15rem + .4vw, 1.5rem); line-height: 1.35; font-weight: 500; letter-spacing: -.01em; color: var(--text); text-wrap: pretty; }
  body.v2-art .ar-main p.ar-stake + p { margin-top: var(--s4); }
  /* numbered cards: a breath between the card title and its text */
  body.v2-art .ar-main .pcard > h3 + p { margin-top: 8px; }
  /* setup tiles: icon tile to the house standard (44px, radius 12, 22px glyph); static tiles do not lift on hover */
  body.v2-art .ar-main .setup-ico { width: 44px; height: 44px; border-radius: 12px; background: var(--fx-indigo); }
  body.v2-art .ar-main .setup-ico svg { width: 22px; height: 22px; }
  body.v2-art .ar-main .setup-tile:hover { transform: none; border-color: var(--rule); box-shadow: var(--shadow-card); }
  /* phones: icon beside the text, so a stack of tiles stays short */
  @media (max-width: 639.98px) {
    body.v2-art .ar-main .setup-tile { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--s4); align-items: center; padding: 16px 18px; }
    body.v2-art .ar-main .setup-ico { grid-row: span 2; margin: 0; }
    body.v2-art .ar-main .setup-v { align-self: end; }
    body.v2-art .ar-main .setup-k { align-self: start; }
    body.v2-art .ar-main .setup-grid { gap: 10px; }
  }
  /* dark mode: the legacy layer paints .setup-grid itself (!important); hand the tile colour down and clear the grid's own */
  body.v2-art .ar-main .ar-sec { --ar-l200: var(--lilac-200); }
  body.v2-art .ar-main .setup-grid { --lilac-200: transparent; }
  body.v2-art .ar-main .setup-grid > .setup-tile { --lilac-200: var(--ar-l200); }
  /* UBO chain figure: panel follows the theme so its labels stay legible in dark mode */
  body.v2-art.ar-p-uae-ubo-register-compliance-requirements .ar-main .ubo-chain { background: linear-gradient(160deg, var(--fx-indigo), var(--surface) 60%); }
  /* page panels that were painted with light literals: follow the theme in dark mode */
  body.v2-art.ar-p-five-questions-uae-setup-firm .ar-main .svt-col.is-true { background: linear-gradient(180deg, var(--fx-indigo), var(--surface)); }
  body.v2-art.ar-p-uae-esr-2025-update-requirements .ar-main .esr-spine { background: linear-gradient(180deg, var(--ivory), var(--surface)); }
  /* e-invoicing: the "last-minute software" section is an ink panel (its background was inline before the migration) */
  body.v2-art.ar-p-uae-e-invoicing-mandate-2026 .ar-main .ei-band { background: linear-gradient(135deg, #09082A 0%, #1B1890 100%); color: #fff; }
  body.v2-art.ar-p-uae-e-invoicing-mandate-2026 .ar-main .ei-band .ei-trap-real .ei-trap-tag { color: var(--gold); }
  body.v2-art.ar-p-uae-e-invoicing-mandate-2026 .ar-main .ei-band b, body.v2-art.ar-p-uae-e-invoicing-mandate-2026 .ar-main .ei-band strong { color: #fff; }
  /* Golden Visa routes: the heading on the indigo "what is true" card reads white, like its text */
  body.v2-art.ar-p-uae-golden-visa-2026-all-routes .ar-main .gv-mr--real h3 { color: #fff; }
  /* five tiles: three then two, never four and one alone */
  @media (min-width: 640px) {
    body.v2-art .ar-main .setup-grid:has(> :nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    body.v2-art .ar-main .setup-grid:has(> :nth-child(5):last-child) > * { grid-column: span 2; }
    body.v2-art .ar-main .setup-grid:has(> :nth-child(5):last-child) > :nth-child(n+4) { grid-column: span 3; }
  }
  /* four tiles on a tablet column: two by two, not three and one */
  @media (min-width: 640px) and (max-width: 1023.98px) {
    body.v2-art .ar-main .setup-grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 640px) {
    /* six tiles: two rows of three */
    body.v2-art .ar-main .setup-grid:has(> :nth-child(6):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    /* two-column card grids with an odd count: the last card takes the full row */
    body.v2-art .ar-main .pcard-grid.c2 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  }
}
/* ===== end ARTICLES v1 review fixes ===== */

/* ===== BEFORE YOU BUILD v1 review fixes, 22 Oct 2026: label chips, stat figures, second summary group; scoped to body.v2-byb ===== */
@layer v2.components {
  body.v2-byb .bb-chip { display: inline-block; vertical-align: .12em; margin: 0 .35em 0 0; padding: 2px 9px; border-radius: 999px; background: var(--fx-indigo); border: 1px solid var(--fx-indigo-line); font-family: var(--font); font-size: 11.5px; font-weight: 600; line-height: 1.5; letter-spacing: .02em; text-transform: none; color: var(--indigo); white-space: nowrap; }
  body.v2-byb .bb-step-t .bb-chip { margin: 0 0 0 .45em; }
  body.v2-byb .bb-stat { display: flex; flex-direction: column; gap: 4px; margin-top: var(--s5); padding: var(--s4) 0 var(--s4) var(--s5); border-left: 2px solid var(--indigo); font-size: 16px !important; line-height: 1.55 !important; color: var(--text2) !important; }
  body.v2-byb .bb-stat-n { font-family: var(--serif); font-size: clamp(1.4rem, 1.25rem + .5vw, 1.75rem); font-weight: 600; line-height: 1.15; letter-spacing: -.01em; color: var(--text); }
  body.v2-byb .bb-sum .bb-sum-l--2 { margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid var(--fx-indigo-line); }
  body.v2-byb .bb-sum .bb-sum-l + p { font-size: 16px; color: var(--text2); }
  body.v2-byb .bb-sum .kt-list > li { margin: 0; }
  body.v2-byb .bb-sum .kt-list > li + li { margin-top: 10px; }
  body.v2-byb .bb-sum .bb-sum-l + p + ul { margin-top: var(--s3); padding-top: 0; border-top: 0; }
  /* row tables: the description starts on the label's line (one alignment axis) */
  @media (min-width: 640px) {
    body.v2-byb .bb-cards--rows > .bb-card:has(> .bb-card-t) > .bb-card-t + * { margin-top: 0; }
  }
  /* an article that ends on its FAQ needs no second rule before the related questions */
  body.v2-byb .bb-layout:has(+ .bb-rel) .bb-article > .bb-faq:last-child .v2-faq > details.faq-item:last-child { border-bottom-color: transparent; }
  /* hub topic tabs: four even segments in a 2 x 2 grid below 900px, never a clipped sideways scroller */
  @media (max-width: 899.98px) {
    html.js body.v2-byb .bb-tabs .v2-tabs-l { display: grid; grid-template-columns: 1fr 1fr; width: 100%; overflow: visible; border-radius: 16px; }
    body.v2-byb .bb-tabs .v2-tab { min-height: 48px; padding: 8px 12px; border-radius: 12px; white-space: normal; line-height: 1.25; text-align: center; }
  }
  /* closing call on phones: two equal full-width buttons */
  @media (max-width: 599.98px) {
    body.v2-byb .bb-call-a { flex-direction: column; align-items: stretch; }
    body.v2-byb .bb-call-a .v2-btn { justify-content: center; width: 100%; }
  }
}
/* unlayered on purpose: the gliding tab pill it replaces is unlayered shell motion */
@media (max-width: 899.98px) {
  body.v2-byb .bb-tabs .v2-tabs-ind { display: none; }
  body.v2-byb .bb-tabs .v2-tabs-l.has-ind .v2-tab[aria-selected="true"] { background: var(--surface); color: var(--indigo); box-shadow: 0 2px 10px rgba(9,8,42,.12); }
}
@media (max-width: 899.98px) and (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) body.v2-byb .bb-tabs .v2-tabs-l.has-ind .v2-tab[aria-selected="true"] { background: color-mix(in srgb, var(--text) 12%, var(--surface)); box-shadow: 0 2px 10px rgba(0,0,0,.35); }
}
@media (max-width: 899.98px) {
  :root[data-theme="dark"] body.v2-byb .bb-tabs .v2-tabs-l.has-ind .v2-tab[aria-selected="true"] { background: color-mix(in srgb, var(--text) 12%, var(--surface)); box-shadow: 0 2px 10px rgba(0,0,0,.35); }
}
/* ===== end BEFORE YOU BUILD v1 review fixes ===== */

/* ===== RELEASE 20261023a final-pass fixes (appended; earlier rules untouched) ===== */
/* 1. Legacy dark rule (dmc-design-system.css "DARK MODE FIX 2026-07-02") paints these article chips solid
      indigo with !important inside the legacy layer; an !important rule only beats it from inside that same
      layer, so these overrides sit in @layer legacy with higher specificity. Live/"you" chips keep the dark indigo. */
@layer legacy {
  @media (prefers-color-scheme: dark) {
    body.v2-art .gv-mr-tag { background: transparent !important; }
    body.v2-art .seq-n { background: var(--surface) !important; }
    body.v2-art .seq-step.is-final .seq-n { background: var(--gold, #C9981A) !important; color: #141848 !important; }
    body.v2-art .esr-side-dead .esr-side-tag { background: var(--surface) !important; }
    body.v2-art .pdpl-arm.is-not .pdpl-arm-tag { background: var(--ivory) !important; }
  }
  /* 2. Footer "Cookie choices" button: the phone-size 12px !important rule made it smaller than its neighbours. */
  @media (max-width: 680px) { .site-footer.fx .fx-col > .footer-choices { font-size: 15px !important; } }
}
/* 3. Activity pages: no hairline directly under a tinted or ink band (the band edge already separates). */
body.v2-act .act-route-s + .sv-ruled > .v2-wrap::before,
body.v2-act .act-pits-s + .sv-ruled > .v2-wrap::before,
body.v2-act .v2-sec--ink + .sv-ruled > .v2-wrap::before { display: none; }
/* 4. Phone country-code picker: ISO code chip in place of the retired emoji flag (assets/js/dmc.js _flag). */
.dmc-phone-flag, .dmc-phone-opt-flag { display: inline-grid; place-items: center; min-width: 26px; height: 18px; padding: 0 4px; border-radius: 4px; background: var(--fx-indigo, rgba(15,7,189,.08)); color: var(--indigo); font: 700 10.5px/1 var(--font, Montserrat, sans-serif); letter-spacing: .04em; }
/* ===== end RELEASE 20261023a final-pass fixes ===== */

/* ===== DEVICE THEME + FORCED-DARK RESILIENCE 20261020d (appended; earlier rules untouched) =====
   a. color-scheme declared at CSS level as "light dark" (the legacy layer said "light" only, which overrode the
      meta tag and told Samsung Internet / Chrome Auto Dark that the page has no dark theme).
   b. html[data-theme] is set by the early head script (partials/theme-head.html) from the device setting. When a
      browser force-darkens a light page (html[data-forced-dark]) the script switches every prefers-color-scheme:dark
      rule on, so the site's own dark theme renders and the browser's algorithm finds little left to recolour.
   c. html[data-forced-dark] only: brand marks painted with techniques Blink force-dark leaves alone (measured
      in Chromium 14x with forceDarkModeEnabled): SVG data-URI backgrounds are not inverted, dark gradients used
      as clipped text are not lightened, plain light text stays light. Flat light fills and light gradients are inverted. */
:root, html, body { color-scheme: light dark; }
:root[data-theme="dark"], :root[data-theme="dark"] body { color-scheme: dark; }
:root[data-theme="dark"] { --dmc-fd-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' preserveAspectRatio='none'%3E%3Crect width='8' height='8' fill='%23fff'/%3E%3C/svg%3E"); }
/* hero accent words: Blink inverts light gradients even when clipped to text, but leaves light text alone */
html[data-forced-dark] body.v2-home .ob .ob-h1 span { background: none; -webkit-text-fill-color: #e3e6ff; color: #e3e6ff; }
/* white logo: at phone pixel densities Blink's image classifier treats the white PNG as an icon and inverts it to
   black. Paint it as a mask over an SVG-image fill instead (neither is inverted); the img keeps its box and alt. */
html[data-forced-dark] img[src*="/logo-white.png"] {
  object-fit: none; object-position: -99999px 0;
  background: var(--dmc-fd-white) 0 0 / 100% 100%;
  -webkit-mask: url("/assets/images/logo-white.png") 0 50% / contain no-repeat; mask: url("/assets/images/logo-white.png") 0 50% / contain no-repeat;
}
/* light-filled buttons and chips: Blink inverts flat white fills and lightens dark labels. White fill comes from an
   SVG image, the label is a clipped gradient of the element's own text colour (dark gradients are left alone).
   Gold/colour fills keep their background-colour (Blink leaves mid-tone fills alone) and only the label is protected. */
html[data-forced-dark] :is(.ob-btn-white, .v2-btn--light, .bb-call-a .v2-btn--primary, .ob-tile-chip),
html[data-forced-dark] :is(.ob-btn-white, .v2-btn--light, .bb-call-a .v2-btn--primary):is(:hover, :visited, :focus-visible) {
  background: linear-gradient(currentColor, currentColor) padding-box text, var(--dmc-fd-white) center / 100% 100% border-box;
  -webkit-background-clip: text, border-box; background-clip: text, border-box; -webkit-text-fill-color: transparent; border-color: transparent;
}
html[data-forced-dark] :is(.dmc-consent-yes, .skip-nav) {
  background-image: linear-gradient(currentColor, currentColor), none;
  -webkit-background-clip: text, border-box; background-clip: text, border-box; -webkit-text-fill-color: transparent;
}
/* free-zone logo chips stay white by design */
html[data-forced-dark] :is(.svc-fz-lg, .svc-fz-ml) { background: var(--dmc-fd-white) center / 100% 100%; }
/* Google "G" disc */
html[data-forced-dark] body.v2-home .ob .ob-gchip-top > svg { background: var(--dmc-fd-white) center / 100% 100%; }
/* ===== end DEVICE THEME + FORCED-DARK RESILIENCE 20261020d ===== */

/* ===== PER-SCREEN + ACCESSIBILITY TUNING 20261020d (appended; layout/sizing only, copy and design unchanged) ===== */
/* phones/tablets with the pinned Call/WhatsApp/Book bar: anything scrolled or tabbed into view clears the bar */
@media (max-width: 1099px) {
  html:has(body.v2-pbar-on) { scroll-padding-bottom: calc(var(--v2-pbar-h, 68px) + 16px + env(safe-area-inset-bottom)); }
}
/* touch screens: filter chips reach the 44px target */
@media (pointer: coarse) { body.v2-svc .sv-chip { min-height: 44px; } }
/* large text settings (200% zoom, Android font scale): a long word in a heading wraps instead of being clipped */
:is(h1, h2, h3) { overflow-wrap: break-word; }
/* reading measure: these blocks ran to 82-95 characters a line on tablets and desktops */
.v2-page .sv-mx-foot, .v2-page .ind-body > p, .v2-page .act-notes > p { max-width: 72ch; }
/* Windows High Contrast / forced colours: highlighted phrases were painted with a gradient and vanished */
@media (forced-colors: active) {
  .v2-page mark.v2-hl, body.v2-home .ob mark.v2-hl { background: none; color: CanvasText; -webkit-text-fill-color: CanvasText; text-decoration: underline; text-underline-offset: .18em; }
  body.v2-home .ob .ob-h1 span { background: none; -webkit-text-fill-color: CanvasText; color: CanvasText; }
  .v2-btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid Highlight; outline-offset: 2px; }
}
/* ===== end PER-SCREEN + ACCESSIBILITY TUNING 20261020d ===== */
