/* sbs-v2-base */
/* ==========================================================================
   SIGMA v2: design foundation (bold redesign, revertible)
   Loaded AFTER the classic stylesheets, and every rule is scoped to html.sb-v2.
   Remove the class (or the files) and the classic site returns untouched.

   Direction: light, high-contrast editorial. One theme for the whole page (cool paper),
   brand navy for type, one accent (SIGMA orange). Blue appears only inside data visuals.
   Orange as TEXT uses --v2-accent-text (contrast-safe); --v2-accent is for fills.
   Radius system: controls 10px, cards 18px, media 22px, pills only for tags.
   ========================================================================== */

html.sb-v2 {
  --v2-ink: #F4F6F9;          /* page: cool paper */
  --v2-ink-2: #EBEFF5;        /* raised band */
  --v2-surface: #FFFFFF;      /* card */
  --v2-surface-2: #F1F4F8;    /* card hover / inputs */
  --v2-line: rgba(7, 28, 51, .10);
  --v2-line-strong: rgba(7, 28, 51, .18);
  --v2-text: #071C33;         /* brand navy: 16:1 on paper */
  --v2-text-2: #3B4A5F;       /* 8.6:1 */
  --v2-text-3: #5A687C;       /* 5.4:1, small meta only */
  --v2-accent: #FF8A00;       /* fills, rules, glows */
  --v2-accent-text: #C25700;  /* orange as text: 4.6:1 on paper */
  --v2-accent-ink: #071C33;   /* text on orange: 7.6:1 */
  --v2-accent-soft: rgba(255, 138, 0, .10);
  --v2-data: #0B73D9;         /* data visuals only */
  --v2-navy: #071C33;         /* dark islands (dashboard, CTA band) */
  --v2-r-ctl: 10px;
  --v2-r-card: 18px;
  --v2-r-media: 22px;
  --v2-ease: cubic-bezier(.16, 1, .3, 1);
  --v2-shadow: 0 1px 2px rgba(7, 28, 51, .05), 0 24px 48px -28px rgba(7, 28, 51, .28);
  --v2-wrap: 1344px;         /* content width; containers add the gutter on each side (1440 at desktop) */

  /* ---- type roles (impeccable typeset): one scale for the whole v2 layer ----
     fluid between 375px and ~1600px, then held; ultra-wide gets a single step up (see @media 1920px).
     display max 4.5rem (72px), tracking never tighter than -0.04em. */
  --v2-fs-display: clamp(2.5rem, 1.55rem + 3.1vw, 4.5rem);     /* page h1: 40 -> 72px */
  --v2-fs-h2: clamp(2rem, 1.3rem + 2.2vw, 3.375rem);           /* section titles: 32 -> 54px */
  --v2-fs-h3: clamp(1.25rem, 1.05rem + .6vw, 1.625rem);        /* card / step titles: 20 -> 26px */
  --v2-fs-h3-lead: clamp(1.5rem, 1.15rem + 1.1vw, 2.25rem);    /* lead story / lead card titles: 24 -> 36px */
  --v2-fs-figure: clamp(2.5rem, 1.6rem + 2.9vw, 4.25rem);      /* outcome figures and step numerals: 40 -> 68px */
  --v2-fs-lede: clamp(1.0625rem, 1rem + .25vw, 1.1875rem);     /* intro paragraphs: 17 -> 19px */
  --v2-fs-body: 1.0625rem;                                     /* 17px */
  --v2-fs-small: .9375rem;                                     /* 15px secondary text */
  --v2-fs-label: .8125rem;                                     /* 13px mono labels */
  --v2-track-display: -.04em;
  --v2-track-h2: -.035em;
  --v2-track-h3: -.02em;
  --v2-pad: clamp(88px, 11vw, 168px);   /* section rhythm */

  /* only the page background token is remapped; --sb-white etc. are also used as text colours, so components are overridden explicitly */
  --sb-bg: var(--v2-ink);
  color-scheme: light;
  background: var(--v2-ink);
}

html.sb-v2 body {
  background: var(--v2-ink);
  color: var(--v2-text-2);
  font-size: var(--v2-fs-body);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

/* film grain: fixed, non-interactive, never on a scrolling layer */
html.sb-v2 body::before {
  content: ""; position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: .035; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ---------- dark islands ----------
   Classic sections built on navy (photo heroes, CTA bands, the sidebar CTA card) keep their navy in v2.
   They get the dark token set so v2 rules (headings, links, orange text) stay readable inside them. */
html.sb-v2 :is(.sbid-hero, .sbid-cta, .sbab-hero, .sbct2-hero, .sbsd-cta, .sbia-cta) {
  --v2-text: #F2F6FA; --v2-text-2: #D3DDE8; --v2-text-3: #A9B8CA;
  --v2-line: rgba(160, 190, 225, .16); --v2-line-strong: rgba(160, 190, 225, .3);
  --v2-accent-text: #FF9F33; --v2-surface: rgba(255, 255, 255, .06);
  color-scheme: dark;
}

/* ---------- one grid for every section ----------
   Header, hero, sections, CTA band and footer share the same content edges at every width
   (they previously started at 48, 60 and 108px). body raises specificity above the section files. */
html.sb-v2 body :is(.sbh-wrap, .sbhero-inner, .sbwb-inner, .sbdx-inner, .sbpr-inner, .sbcs-inner, .sbin-inner, .sbis-inner, .sbct-inner, .sbft-inner,
  .sbsd-wrap, .sbtl-wrap, .sblg-wrap, .sbab-wrap, .sbcx-wrap, .sbct2-wrap, .sbil-wrap) {
  box-sizing: border-box;
  max-width: calc(var(--v2-wrap) + 2 * var(--sb-gutter));
  margin-inline: auto;
  padding-inline: var(--sb-gutter);
}

/* ---------- ultra-wide: a wider grid and one type step up, then hold ---------- */
@media (min-width: 1920px) {
  html.sb-v2 {
    --v2-wrap: 1600px;
    --v2-fs-display: 5rem;
    --v2-fs-h2: 3.75rem;
    --v2-fs-h3: 1.75rem;
    --v2-fs-h3-lead: 2.5rem;
    --v2-fs-figure: 4.75rem;
    --v2-fs-lede: 1.25rem;
    --v2-fs-body: 1.125rem;
  }
}
@media (min-width: 2400px) {
  html.sb-v2 { --v2-wrap: 1760px; }
}
@media (max-width: 1023px) { html.sb-v2 { --sb-gutter: 32px; } }
@media (max-width: 767px) { html.sb-v2 { --sb-gutter: 20px; --v2-fs-body: 1rem; } }

/* ---------- typography ---------- */
html.sb-v2 :where(h1, h2, h3, h4) { color: var(--v2-text); text-wrap: balance; }
html.sb-v2 p { text-wrap: pretty; }
html.sb-v2 ::selection { background: var(--v2-accent); color: var(--v2-accent-ink); }
html.sb-v2 :focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 3px; }

/* section headline scale shared by every v2 section */
html.sb-v2 .v2-h2,
html.sb-v2 :is(.sbwb-title, .sbdx-title, .sbpr-title, .sbcs-title, .sbin-title, .sbis-title, .sb-h2) {
  font-family: var(--sb-font-heading);
  font-stretch: 112%;
  font-weight: 800;
  font-size: var(--v2-fs-h2);
  line-height: 1.02;
  letter-spacing: var(--v2-track-h2);
  color: var(--v2-text);
}
html.sb-v2 :is(.sbwb-title, .sbdx-title, .sbpr-title, .sbcs-title, .sbin-title, .sbis-title, .sb-h2) :is(strong, em, span) { color: var(--v2-accent-text); font-style: normal; }

/* inner page hero titles share the display role */
html.sb-v2 :is(.sbsd-hero__title, .sbid-hero__title, .sbab-hero__title, .sbct2-hero__title, .sbcx-hero__title, .sbil-hero__title, .sbtl-title, .sblg-title) {
  font-size: var(--v2-fs-display); line-height: 1.02; letter-spacing: var(--v2-track-display); text-wrap: balance;
}

/* eyebrows: rationed. The hero keeps one; section eyebrows are hidden in v2. */
html.sb-v2 :is(.sbwb-eyebrow, .sbdx-eyebrow, .sbpr-eyebrow, .sbcs-eyebrow, .sbin-eyebrow, .sbis-eyebrow, .sb-eyebrow) { display: none; }

/* ---------- buttons (shared look for every primary/secondary CTA) ---------- */
html.sb-v2 :is(.sbhero-btn--primary, .sbh-cta, .sb-btn--primary, .sb-btn-primary) {
  background: var(--v2-accent);
  color: var(--v2-accent-ink);
  border-radius: var(--v2-r-ctl);
  box-shadow: 0 12px 28px -14px rgba(232, 118, 0, .75);
  transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), background-color .2s;
}
html.sb-v2 :is(.sbhero-btn--primary, .sbh-cta, .sb-btn--primary, .sb-btn-primary):hover { background: #FF9A24; transform: translateY(-2px); box-shadow: 0 18px 34px -14px rgba(232, 118, 0, .85); }
html.sb-v2 :is(.sbhero-btn, .sbh-cta, .sb-btn):active { transform: translateY(1px) scale(.98); }


/* ---------- motion: reveal on scroll (classes added by js/v2.js) ---------- */
@media (prefers-reduced-motion: no-preference) {
  /* hidden until Motion (js/v2.js) animates it in; .is-in is the settled state */
  html.sb-v2.v2-motion .v2-rv { opacity: 0; }
  html.sb-v2.v2-motion .v2-rv.is-in { opacity: 1; }
}

/* no flash before the entrance: an inline head script adds html.v2-pre (motion allowed, JS on) before first paint,
   js/v2.js removes it once Motion has taken over. If scripts never run, the failsafe reveals everything after 2.5s. */
html.sb-v2.v2-pre :is(.sbhero, .sbsd-hero, .sbid-hero, .sbtl-hero, .sbil-hero, .sbct2-hero, .sbcx-hero, .sbab-hero, .sblg-hero) :is(h1, [class*="eyebrow"], [class*="ctas"], [class*="actions"], .sbhero-visual, .sbid-hero__photo, .sbab-hero__photo, .sbct2-hero__photo) {
  opacity: 0; animation: v2-failsafe 0s linear 2.5s forwards;
}
@keyframes v2-failsafe { to { opacity: 1; } }
/* phones: the homepage dashboard is the largest thing on first paint, so it is shown at once and only settles into place
   (js/v2.js heroIntro animates transform, never opacity, below 768px) */
@media (max-width: 767px) { html.sb-v2.v2-pre .sbhero .sbhero-visual { opacity: 1; animation: none; } }

/* heroes that host the Three.js terrain: the canvas sits behind the content inside its own stacking context */
html.sb-v2 .v2-has3d { position: relative; isolation: isolate; overflow: hidden; }

/* shared 3D canvas host (home and every page hero that gets one) */
html.sb-v2 .v2-hero3d { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity 1.2s var(--v2-ease);
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 18%, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0, #000 18%, #000 70%, transparent 100%); }
html.sb-v2 .v2-hero3d.is-ready { opacity: 1; }
html.sb-v2 .v2-hero3d.is-dark { mix-blend-mode: screen; }
/* inner pages: the floor lives in the lower part of the hero, strongest under the hero visual (right),
   quiet under the copy (left), and dissolves into the next section at the bottom edge */
html.sb-v2 .v2-hero3d--page {
  -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 34%, #000 68%, #000 90%, transparent 100%), linear-gradient(90deg, rgba(0, 0, 0, .08) 0, rgba(0, 0, 0, .08) 34%, #000 66%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(180deg, transparent 0, transparent 34%, #000 68%, #000 90%, transparent 100%), linear-gradient(90deg, rgba(0, 0, 0, .08) 0, rgba(0, 0, 0, .08) 34%, #000 66%);
  mask-composite: intersect;
}
@media (max-width: 1100px) {
  html.sb-v2 .v2-hero3d--page { -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 55%, #000 85%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0, transparent 55%, #000 85%, transparent 100%); }
}
html.sb-v2 .v2-hero3d canvas { width: 100% !important; height: 100% !important; display: block; }

/* spotlight card: border lights up under the pointer (vars set by js/v2.js) */
html.sb-v2 .v2-spot { position: relative; isolation: isolate; }
html.sb-v2 .v2-spot::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 2;
  background: radial-gradient(420px circle at var(--mx, -999px) var(--my, -999px), rgba(255, 138, 0, .75), transparent 45%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity .3s;
}
html.sb-v2 .v2-spot:hover::after { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  html.sb-v2 *, html.sb-v2 *::before, html.sb-v2 *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* reading measure: long-form text (legal, insight articles) stays within ~70 characters at any width */
html.sb-v2 :is(.sblg-wrap, .sbia-body, .sbia-content) :is(p, li) { max-width: 70ch; }

/* sbs-v2-header */
/* ==========================================================================
   SIGMA v2 header: "the command island"
   At rest the header dissolves into the page: a refined light utility line and an airy,
   borderless navigation row. On scroll (header.js adds .is-scrolled) the row condenses into a
   floating glass island: the logo reduces to the sigma mark, search becomes a round icon, the CTA
   becomes a compact pill with its arrow nested in a circle. A soft highlight pill glides between
   links (the classic ink element) and rests on the current page. Mega menus drop as floating
   double-bezel glass sheets with one accent and a quick stagger. Mobile: a compact floating pill
   and a full-screen light glass menu. All behaviour stays in js/header.js; this is styling only.
   ========================================================================== */

html.sb-v2 .sbh {
  --isl: cubic-bezier(.32, .72, 0, 1);
  --isl-h: 64px;
  --isl-max: 1120px;
  background: transparent; box-shadow: none; border: 0;
}

/* ---------- utility line: light, quiet, hairline ---------- */
html.sb-v2 .sbh--light .sbh-util { background: var(--v2-ink); border-bottom: 1px solid var(--v2-line); }
html.sb-v2 .sbh-util__item { color: var(--v2-text-2); font-size: .8125rem; }
html.sb-v2 .sbh-util__item strong { color: var(--v2-text); }
html.sb-v2 a.sbh-util__item:hover, html.sb-v2 button.sbh-util__item:hover { color: var(--v2-text); }
html.sb-v2 .sbh-util__group > li + li { border-left-color: var(--v2-line-strong); }
html.sb-v2 .sbh-ic-blue { color: #071C33; }
html.sb-v2 .sbh-util__icon i { color: #071C33; }

/* ---------- the row at rest: no bar, just type on paper ---------- */
/* at rest the row is paper (it also covers the curtain footer pinned beneath the page);
   once scrolled the band clears so the page content runs behind the island */
html.sb-v2 .sbh--light .sbh-main { background: var(--v2-ink); border-bottom: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; transition: background-color .4s; }
html.sb-v2 .sbh--light.is-scrolled .sbh-main { background: transparent; }
html.sb-v2 .sbh-main__inner {
  position: relative; gap: 32px; border-radius: 0;
  transition: max-width .8s var(--isl), height .8s var(--isl), margin .8s var(--isl), padding .8s var(--isl), border-radius .8s var(--isl), background-color .5s, box-shadow .6s;
}
html.sb-v2 .sbh-progress { display: none; }

/* logo: full lockup at rest, the sigma mark alone in the island */
html.sb-v2 .sbh-logo { overflow: hidden; width: 230px; transition: width .8s var(--isl); }
html.sb-v2 .sbh-logo__img { height: 61px; max-width: none; transition: height .8s var(--isl), filter .3s; }
html.sb-v2 .sbh--light .sbh-logo:hover .sbh-logo__img { filter: none; }

/* nav: medium weight navy type; the highlight pill does the talking */
html.sb-v2 .sbh-nav { margin-inline: auto; }
html.sb-v2 .sbh--light .sbh-link {
  position: relative; z-index: 1; height: 40px; padding: 0 16px; border-radius: 999px;
  font-size: .96875rem; font-weight: 500; color: var(--v2-text-2); transition: color .3s;
}
html.sb-v2 .sbh--light .sbh-link:hover, html.sb-v2 .sbh--light .sbh-link[aria-expanded="true"], html.sb-v2 .sbh--light .sbh-link.is-current { color: var(--v2-text); }
html.sb-v2 .sbh--light .sbh-link.is-current { font-weight: 600; }
html.sb-v2 .sbh--light .sbh-link[aria-expanded="true"]::after, html.sb-v2 .sbh-link::after { display: none; }
html.sb-v2 .sbh-link i { font-size: .625rem; opacity: .7; transition: transform .45s var(--isl); }
html.sb-v2 .sbh-link[aria-expanded="true"] i { transform: rotate(180deg); }
/* the classic ink becomes a gliding pill (header.js sets width = link - 28px and translateX = left + 14px) */
html.sb-v2 .sbh-ink {
  top: calc(50% - 20px); bottom: auto; height: 40px; z-index: 0; background: transparent; box-shadow: none; border-radius: 999px;
  transition: transform .6s var(--isl), width .6s var(--isl), opacity .3s;
}
html.sb-v2 .sbh-ink::before { content: ""; position: absolute; inset: 0 -14px; border-radius: 999px; background: rgba(7, 28, 51, .065); box-shadow: inset 0 0 0 1px rgba(7, 28, 51, .04); }

/* search: a round glass icon (Ctrl K and / still open the palette) */
html.sb-v2 .sbh--light .sbh-search {
  width: 44px; height: 44px; padding: 0; justify-content: center; gap: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .7); border: 1px solid var(--v2-line); color: var(--v2-text-3); font-size: .875rem;
  transition: width .8s var(--isl), padding .8s var(--isl), background-color .3s, border-color .3s;
}
html.sb-v2 .sbh--light .sbh-search:hover { background: #FFFFFF; border-color: var(--v2-line-strong); color: var(--v2-text-2); }
html.sb-v2 .sbh--light .sbh-search > i { color: var(--v2-text); font-size: .9375rem; }
html.sb-v2 .sbh-search__label, html.sb-v2 .sbh--light .sbh-search .sbh-kbd { display: none; }
html.sb-v2 .sbh--light .sbh-kbd { margin-left: auto; height: 22px; padding: 0 7px; border-radius: 6px; background: var(--v2-surface-2); border: 0; font-size: .6875rem; color: var(--v2-text-3); opacity: 1; }
html.sb-v2 .sbh-vr { display: none; }

/* CTA: a pill with its arrow nested in a navy circle (button-in-button) */
html.sb-v2 .sbh--light .sbh-cta, html.sb-v2 .sbh-cta {
  height: 50px; gap: 14px; padding: 0 6px 0 24px; border-radius: 999px;
  background: var(--v2-accent); color: #071C33; font-weight: 700; font-size: .9375rem;
  box-shadow: 0 10px 24px -12px rgba(232, 118, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .35);
  transition: height .8s var(--isl), padding .8s var(--isl), transform .4s var(--isl), box-shadow .4s, background-color .3s;
}
html.sb-v2 .sbh-cta i {
  display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%;
  background: #071C33; color: #FFFFFF; font-size: .8125rem;
  transition: transform .5s var(--isl), width .8s var(--isl), height .8s var(--isl);
}
html.sb-v2 .sbh-cta:hover { background: #FF9A24; transform: translateY(-1px); box-shadow: 0 16px 30px -12px rgba(232, 118, 0, .9), inset 0 1px 0 rgba(255, 255, 255, .35); }
html.sb-v2 .sbh-cta:hover i { transform: translate(2px, -1px) scale(1.06) rotate(-45deg); }
html.sb-v2 .sbh-cta:active { transform: scale(.98); }

/* burger: a round glass button; lines morph into an X (classic header.js toggles aria-expanded) */
html.sb-v2 .sbh--light .sbh-burger { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--v2-line); background: rgba(255, 255, 255, .7); }
html.sb-v2 .sbh--light .sbh-burger span { left: 13px; right: 13px; height: 1.5px; background: #071C33; transition: transform .5s var(--isl), opacity .3s, top .5s var(--isl); }
html.sb-v2 .sbh--light .sbh-burger span:nth-child(1) { top: 16px; }
html.sb-v2 .sbh--light .sbh-burger span:nth-child(2) { top: 21px; right: 19px; background: var(--v2-accent); }
html.sb-v2 .sbh--light .sbh-burger span:nth-child(3) { top: 26px; }
html.sb-v2 .sbh--light .sbh-burger[aria-expanded="true"] span:nth-child(1), html.sb-v2 .sbh--light .sbh-burger[aria-expanded="true"] span:nth-child(3) { top: 21px; }
html.sb-v2 .sbh--light .sbh-burger[aria-expanded="true"] span:nth-child(1) { transform: rotate(45deg); }
html.sb-v2 .sbh--light .sbh-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: translateX(8px); }
html.sb-v2 .sbh--light .sbh-burger[aria-expanded="true"] span:nth-child(3) { transform: rotate(-45deg); }

/* ---------- the island (scrolled) ---------- */
html.sb-v2 .sbh.is-scrolled .sbh-main__inner {
  max-width: var(--isl-max); height: var(--isl-h); margin-top: calc((var(--sbh-main-h) - var(--isl-h)) / 2);
  padding: 0 8px 0 18px; border-radius: 999px;
  background: rgba(255, 255, 255, .8);
  box-shadow: 0 0 0 1px rgba(7, 28, 51, .07), 0 0 0 6px rgba(255, 255, 255, .45), 0 0 0 7px rgba(7, 28, 51, .05), 0 22px 44px -20px rgba(7, 28, 51, .32), inset 0 1px 0 rgba(255, 255, 255, .9);
}
@supports (backdrop-filter: blur(1px)) {
  html.sb-v2 .sbh.is-scrolled .sbh-main__inner { background: rgba(255, 255, 255, .66); backdrop-filter: saturate(170%) blur(20px); -webkit-backdrop-filter: saturate(170%) blur(20px); }
}
html.sb-v2 .sbh.is-scrolled .sbh-logo { width: 44px; }
html.sb-v2 .sbh.is-scrolled .sbh-logo__img { height: 44px; }
html.sb-v2 .sbh.is-scrolled .sbh-cta { height: 48px; }
html.sb-v2 .sbh.is-scrolled .sbh-cta__full { display: none; }
html.sb-v2 .sbh.is-scrolled .sbh-cta__short { display: inline; }
html.sb-v2 .sbh.is-scrolled .sbh-cta i { width: 36px; height: 36px; }

/* ---------- mega menus: floating double-bezel glass sheets ---------- */
html.sb-v2 .sbh-mega { background: transparent; border: 0; box-shadow: none; transform: translateY(-10px) scale(.99); transform-origin: 50% 0;
  transition: opacity .35s var(--isl), transform .5s var(--isl), visibility 0s linear .5s; }
html.sb-v2 .sbh-mega.is-open { transform: none; transition: opacity .35s var(--isl), transform .5s var(--isl), visibility 0s; }
html.sb-v2 .sbh-mega--card { padding: 8px var(--sb-gutter) 32px; }
html.sb-v2 .sbh.is-scrolled .sbh-mega--card { padding-top: 0; }
html.sb-v2 .sbh-sv {
  max-width: var(--v2-wrap); border: 0; border-radius: 28px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 0 0 1px rgba(7, 28, 51, .07), 0 0 0 8px rgba(255, 255, 255, .5), 0 0 0 9px rgba(7, 28, 51, .05), 0 50px 90px -40px rgba(7, 28, 51, .45);
}
@supports (backdrop-filter: blur(1px)) {
  html.sb-v2 .sbh-sv { background: rgba(255, 255, 255, .86); backdrop-filter: saturate(160%) blur(24px); -webkit-backdrop-filter: saturate(160%) blur(24px); }
}
html.sb-v2 .sbh-sv__eyebrow { display: none; }
html.sb-v2 .sbh-sv__title { margin-top: 0; font-stretch: 112%; font-weight: 800; letter-spacing: var(--v2-track-h2); color: #071C33; }
html.sb-v2 .sbh-sv__title span { color: var(--v2-accent-text); }
html.sb-v2 .sbh-sv__lede { color: var(--v2-text-2); font-size: 1rem; }
html.sb-v2 .sbh-sv__all strong, html.sb-v2 .sbh-in__all, html.sb-v2 .sbh-in__foot-link, html.sb-v2 .sbh-sv__start-link { color: #071C33; }
/* items: no boxes; a paper tint and the orange arrow appear on hover */
html.sb-v2 :is(.sbh-sv__card, .sbh-in__item, .sbh-rs__item, .sbh-rs__tool) {
  border-color: transparent !important; background: transparent; box-shadow: none !important; border-radius: 16px;
  transition: background-color .35s var(--isl), transform .45s var(--isl);
}
html.sb-v2 :is(.sbh-sv__card, .sbh-in__item, .sbh-rs__item, .sbh-rs__tool):hover,
html.sb-v2 :is(.sbh-sv__card, .sbh-in__item, .sbh-rs__item, .sbh-rs__tool):focus-visible { background: rgba(7, 28, 51, .045); transform: translateX(3px); }
/* one accent: monochrome icon tiles that warm to orange on hover */
html.sb-v2 :is(.sbh-sv__icon, .sbh-in__icon, .sbh-rs__icon, .sbh-rs__ticon) {
  background: #FFFFFF !important; color: #071C33 !important; border-radius: 12px;
  box-shadow: 0 0 0 1px rgba(7, 28, 51, .08), 0 6px 14px -8px rgba(7, 28, 51, .3);
  transition: background-color .35s, color .35s, transform .45s var(--isl);
}
html.sb-v2 :is(.sbh-sv__card, .sbh-in__item, .sbh-rs__item, .sbh-rs__tool):hover :is(.sbh-sv__icon, .sbh-in__icon, .sbh-rs__icon, .sbh-rs__ticon) { background: var(--v2-accent) !important; color: #071C33 !important; transform: rotate(-6deg); }
html.sb-v2 :is(.sbh-sv__go, .sbh-rs__go, .sbh-in__chev) { color: var(--v2-accent-text); }
html.sb-v2 .sbh-sv__go { background: transparent !important; }
html.sb-v2 .sbh-sv__start { border-radius: 18px; background: var(--v2-ink); }
/* a quick stagger as a sheet opens */
@media (prefers-reduced-motion: no-preference) {
  html.sb-v2 .sbh-mega :is(.sbh-sv__grid, .sbh-in__grid, .sbh-rs__list, .sbh-rs__tools) > li { opacity: 0; transform: translateY(10px); transition: opacity .45s var(--isl), transform .6s var(--isl); }
  html.sb-v2 .sbh-mega.is-open :is(.sbh-sv__grid, .sbh-in__grid, .sbh-rs__list, .sbh-rs__tools) > li { opacity: 1; transform: none; }
  html.sb-v2 .sbh-mega.is-open :is(.sbh-sv__grid, .sbh-in__grid, .sbh-rs__list, .sbh-rs__tools) > li:nth-child(2) { transition-delay: 40ms; }
  html.sb-v2 .sbh-mega.is-open :is(.sbh-sv__grid, .sbh-in__grid, .sbh-rs__list, .sbh-rs__tools) > li:nth-child(3) { transition-delay: 80ms; }
  html.sb-v2 .sbh-mega.is-open :is(.sbh-sv__grid, .sbh-in__grid, .sbh-rs__list, .sbh-rs__tools) > li:nth-child(4) { transition-delay: 120ms; }
  html.sb-v2 .sbh-mega.is-open :is(.sbh-sv__grid, .sbh-in__grid, .sbh-rs__list, .sbh-rs__tools) > li:nth-child(5) { transition-delay: 160ms; }
  html.sb-v2 .sbh-mega.is-open :is(.sbh-sv__grid, .sbh-in__grid, .sbh-rs__list, .sbh-rs__tools) > li:nth-child(6) { transition-delay: 200ms; }
  html.sb-v2 .sbh-mega.is-open :is(.sbh-sv__grid, .sbh-in__grid, .sbh-rs__list, .sbh-rs__tools) > li:nth-child(n+7) { transition-delay: 240ms; }
}

/* ---------- mobile + tablet menu: full-screen light glass, large staggered links ---------- */
html.sb-v2 .sbh-drawer { background: rgba(244, 246, 249, .97); color: #071C33; }
@supports (backdrop-filter: blur(1px)) {
  html.sb-v2 .sbh-drawer { background: rgba(244, 246, 249, .86); backdrop-filter: saturate(160%) blur(26px); -webkit-backdrop-filter: saturate(160%) blur(26px); }
}
html.sb-v2 :is(.sbh-drawer__link, .sbh-acc__btn) {
  padding: 16px 0; border-bottom: 1px solid var(--v2-line); color: #071C33;
  font-family: var(--sb-font-heading); font-stretch: 112%; font-weight: 700; font-size: clamp(1.625rem, 6.5vw, 2.25rem); letter-spacing: -.03em;
}
html.sb-v2 .sbh-acc__btn i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--v2-line-strong); color: #071C33; font-size: .75rem; }
html.sb-v2 .sbh-acc__btn[aria-expanded="true"] i { background: var(--v2-accent); border-color: var(--v2-accent); color: #071C33; }
html.sb-v2 .sbh-drawer__link[aria-current="page"] { color: var(--v2-accent-text); }
html.sb-v2 .sbh-acc__panel { border-bottom-color: var(--v2-line); }
html.sb-v2 .sbh-acc__panel a { color: var(--v2-text-2); font-size: 1rem; border-radius: 12px; }
html.sb-v2 .sbh-acc__panel a:hover, html.sb-v2 .sbh-acc__panel a[aria-current="page"] { background: rgba(7, 28, 51, .05); color: #071C33; }
html.sb-v2 .sbh-acc__all { color: var(--v2-accent-text) !important; }
html.sb-v2 .sbh-drawer__foot .sbh-cta, html.sb-v2 .sbh-drawer__foot > a:first-child { border-radius: 999px; }
html.sb-v2 .sbh-drawer__contact a { height: 50px; border-radius: 999px; }
html.sb-v2 .sbh-drawer__mail { border: 1px solid var(--v2-line-strong) !important; color: #071C33; }
html.sb-v2 .sbh-drawer__meta { color: var(--v2-text-3); }
@media (prefers-reduced-motion: no-preference) {
  html.sb-v2 .sbh-drawer__nav > * { opacity: 0; transform: translateY(28px); transition: opacity .5s var(--isl), transform .7s var(--isl); }
  html.sb-v2 .sbh-drawer.is-open .sbh-drawer__nav > * { opacity: 1; transform: none; }
  html.sb-v2 .sbh-drawer.is-open .sbh-drawer__nav > :nth-child(2) { transition-delay: 50ms; }
  html.sb-v2 .sbh-drawer.is-open .sbh-drawer__nav > :nth-child(3) { transition-delay: 100ms; }
  html.sb-v2 .sbh-drawer.is-open .sbh-drawer__nav > :nth-child(4) { transition-delay: 150ms; }
  html.sb-v2 .sbh-drawer.is-open .sbh-drawer__nav > :nth-child(5) { transition-delay: 200ms; }
  html.sb-v2 .sbh-drawer.is-open .sbh-drawer__nav > :nth-child(n+6) { transition-delay: 250ms; }
}

/* ---------- command palette: same glass language ---------- */
html.sb-v2 .sbh-palette { background: rgba(7, 28, 51, .28); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }

/* ---------- widths ---------- */
@media (max-width: 1400px) { html.sb-v2 .sbh-main__inner { gap: 24px; } }
@media (max-width: 1200px) {
  html.sb-v2 .sbh { --isl-max: 100%; }
  html.sb-v2 .sbh-logo { width: 200px; }
  html.sb-v2 .sbh-logo__img { height: 53px; }
  html.sb-v2 .sbh.is-scrolled .sbh-main__inner { max-width: calc(100% - 2 * var(--sb-gutter) + 16px); }
}
@media (max-width: 767px) {
  html.sb-v2 .sbh { --isl-h: 56px; }
  html.sb-v2 .sbh-logo { width: 150px; }
  html.sb-v2 .sbh-logo__img { height: 40px; }
  html.sb-v2 .sbh.is-scrolled .sbh-main__inner { max-width: calc(100% - 16px); padding: 0 6px 0 14px; }
  html.sb-v2 .sbh.is-scrolled .sbh-logo { width: 38px; }
  html.sb-v2 .sbh.is-scrolled .sbh-logo__img { height: 38px; }
  html.sb-v2 .sbh--light .sbh-search { width: 42px; height: 42px; background: transparent; border-color: transparent; }
  html.sb-v2 .sbh--light .sbh-burger { width: 42px; height: 42px; }
  html.sb-v2 .sbh--light .sbh-burger span:nth-child(1) { top: 15px; } html.sb-v2 .sbh--light .sbh-burger span:nth-child(2) { top: 20px; } html.sb-v2 .sbh--light .sbh-burger span:nth-child(3) { top: 25px; }
  html.sb-v2 .sbh--light .sbh-burger[aria-expanded="true"] span:nth-child(1), html.sb-v2 .sbh--light .sbh-burger[aria-expanded="true"] span:nth-child(3) { top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html.sb-v2 .sbh-main__inner, html.sb-v2 .sbh-logo, html.sb-v2 .sbh-logo__img, html.sb-v2 .sbh-search, html.sb-v2 .sbh-cta, html.sb-v2 .sbh-ink { transition: none; }
}

/* sbs-v2-tools-page */
/* SIGMA v2: free tools pages (/tools/, /tools/ai-readiness/, /tools/automation-roi/) and the hub heroes
   (services/ and industries/ reuse .sbtl-hero). Hero text rows, the point cards, the jump button and the closing CTA band.
   Every rule is scoped to html.sb-v2. */

/* closing band is a navy island: same dark token set as the other CTA bands */
html.sb-v2 .sbtl-next {
  --v2-text: #F2F6FA; --v2-text-2: #D3DDE8; --v2-text-3: #A9B8CA;
  --v2-line: rgba(160, 190, 225, .16); --v2-line-strong: rgba(160, 190, 225, .3);
  --v2-accent-text: #FF9F33; --v2-surface: rgba(255, 255, 255, .06);
  background: transparent;
  padding: 0 0 var(--v2-pad);
}

/* ---------- hero ---------- */
html.sb-v2 .sbtl-hero { background: transparent; padding: clamp(40px, 5vw, 72px) 0 clamp(48px, 6vw, 88px); border-bottom: 1px solid var(--v2-line); }
html.sb-v2 .sbtl-hero__dots { display: none; }
html.sb-v2 .sbtl-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: 40px clamp(40px, 6vw, 96px); align-items: end; }
html.sb-v2 .sbtl-crumbs { margin-bottom: 28px; font-size: var(--v2-fs-label); font-weight: 500; letter-spacing: .12em; color: var(--v2-text-3); }
html.sb-v2 .sbtl-crumbs a { transition: color .2s; }
html.sb-v2 .sbtl-crumbs a:hover { color: var(--v2-accent-text); }
html.sb-v2 .sbtl-crumbs span { color: var(--v2-text); }
html.sb-v2 .sbtl-eyebrow { font-size: var(--v2-fs-label); font-weight: 500; color: var(--v2-text-2); }
html.sb-v2 .sbtl-title { font-family: var(--sb-font-heading); font-stretch: 112%; font-weight: 800; color: var(--v2-text); }
html.sb-v2 .sbtl-title strong { color: var(--v2-accent-text); font-weight: inherit; }
html.sb-v2 .sbtl-lede { max-width: 40rem; font-size: var(--v2-fs-lede); line-height: 1.6; color: var(--v2-text-2); }
html.sb-v2 .sbtl-jump {
  margin-top: 32px; min-height: 52px; padding: 0 24px; border-radius: var(--v2-r-ctl);
  background: var(--v2-navy); color: #FFFFFF !important; font-weight: 600; font-size: var(--v2-fs-small);
  box-shadow: 0 12px 28px -16px rgba(7, 28, 51, .6);
  transition: transform .35s var(--v2-ease), background-color .2s, box-shadow .35s var(--v2-ease);
}
html.sb-v2 .sbtl-jump:hover { background: #0E2E52; transform: translateY(-2px); box-shadow: 0 18px 34px -16px rgba(7, 28, 51, .7); }
html.sb-v2 .sbtl-jump:active { transform: translateY(1px) scale(.98); }

/* ---------- point cards ---------- */
html.sb-v2 .sbtl-points { gap: 12px; }
html.sb-v2 .sbtl-points li, html.sb-v2 .sbtl-points a {
  align-items: center; padding: 20px 22px; border: 1px solid var(--v2-line); border-radius: var(--v2-r-card);
  background: var(--v2-surface); box-shadow: var(--v2-shadow);
}
html.sb-v2 .sbtl-points--links li { padding: 0; border: 0; background: none; box-shadow: none; }
html.sb-v2 .sbtl-points--links a { transition: border-color .3s var(--v2-ease), transform .5s var(--v2-ease), box-shadow .4s var(--v2-ease); }
html.sb-v2 .sbtl-points--links a:hover { border-color: var(--v2-line-strong); transform: translateY(-3px); box-shadow: 0 2px 4px rgba(7, 28, 51, .06), 0 32px 56px -28px rgba(7, 28, 51, .36); }
html.sb-v2 .sbtl-points--links a > .fa-arrow-right { color: var(--v2-accent-text); transition: transform .3s var(--v2-ease); }
html.sb-v2 .sbtl-points--links a:hover > .fa-arrow-right { transform: translateX(3px); }
html.sb-v2 .sbtl-points i:first-child { flex-basis: 44px; height: 44px; border-radius: var(--v2-r-ctl); background: var(--v2-accent-soft); color: var(--v2-accent-text); }
html.sb-v2 .sbtl-points strong { font-family: var(--sb-font-heading); font-size: 1.0625rem; font-weight: 700; color: var(--v2-text); letter-spacing: -.01em; }
html.sb-v2 .sbtl-points small { font-size: var(--v2-fs-small); color: var(--v2-text-3); }

/* ---------- closing CTA band ---------- */
html.sb-v2 body .sbtl-next .sbtl-next__inner {
  width: calc(100% - 2 * var(--sb-gutter)); max-width: var(--v2-wrap);
  gap: 28px 48px; padding: clamp(32px, 4vw, 56px); border-radius: var(--v2-r-media);
  background:
    radial-gradient(70% 120% at 100% 0%, rgba(255, 138, 0, .16), transparent 60%),
    var(--v2-navy);
  color: var(--v2-text-2);
  box-shadow: var(--v2-shadow);
}
html.sb-v2 .sbtl-next__title { font-family: var(--sb-font-heading); font-stretch: 112%; font-weight: 800; font-size: var(--v2-fs-h3-lead); line-height: 1.05; letter-spacing: var(--v2-track-h3); color: var(--v2-text); }
html.sb-v2 .sbtl-next__inner p { max-width: 38rem; font-size: var(--v2-fs-body); color: var(--v2-text-2); }
html.sb-v2 .sbtl-btn {
  min-height: 52px; border-radius: var(--v2-r-ctl); background: var(--v2-accent); color: var(--v2-accent-ink) !important;
  font-weight: 600; font-size: var(--v2-fs-small); box-shadow: 0 12px 28px -14px rgba(232, 118, 0, .75);
  transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), background-color .2s, border-color .2s;
}
html.sb-v2 .sbtl-btn:hover { background: #FF9A24; transform: translateY(-2px); }
html.sb-v2 .sbtl-btn--ghost { background: transparent; border: 1px solid var(--v2-line-strong); color: var(--v2-text) !important; box-shadow: none; }
html.sb-v2 .sbtl-btn--ghost:hover { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .5); }

@media (max-width: 1000px) {
  html.sb-v2 .sbtl-hero__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
}
@media (max-width: 620px) {
  html.sb-v2 .sbtl-hero { padding: 28px 0 44px; }
  html.sb-v2 .sbtl-crumbs { flex-wrap: wrap; margin-bottom: 20px; }
  html.sb-v2 .sbtl-points:not(.sbtl-points--links) li, html.sb-v2 .sbtl-points a { padding: 16px 18px; }
  html.sb-v2 body .sbtl-next .sbtl-next__inner { padding: 28px 22px; }
}
@media (prefers-reduced-motion: reduce) {
  html.sb-v2 .sbtl-jump, html.sb-v2 .sbtl-btn, html.sb-v2 .sbtl-points--links a, html.sb-v2 .sbtl-points--links a > .fa-arrow-right { transition: none; }
  html.sb-v2 .sbtl-jump:hover, html.sb-v2 .sbtl-btn:hover, html.sb-v2 .sbtl-points--links a:hover { transform: none; }
}

/* sbs-v2-services */
/* SIGMA v2: "What we build". Asymmetric bento on desktop: the lead card spans two
   rows, cells carry subtle tints (orange, navy, white) on paper. Header is a left-aligned stack. */

html.sb-v2 .sbwb {
  --sbwb-ink: var(--v2-text);
  --sbwb-text: var(--v2-text-2);
  --sbwb-line: var(--v2-line);
  background:
    radial-gradient(900px 520px at 100% 0%, rgba(11, 115, 217, .06), transparent 65%),
    radial-gradient(700px 420px at 0% 100%, rgba(255, 138, 0, .05), transparent 70%),
    var(--v2-ink);
  color: var(--v2-text-2);
  padding: var(--v2-pad) 0;
}
html.sb-v2 .sbwb-dots, html.sb-v2 .sbwb-deco { display: none; }
html.sb-v2 .sbwb-inner { max-width: 1480px; }

/* ---------- header: vertical stack, left-aligned ---------- */
html.sb-v2 .sbwb-head { display: flex; flex-direction: column; align-items: flex-start; gap: 36px; margin-bottom: clamp(40px, 5vw, 72px); }
html.sb-v2 .sbwb-lede { margin-top: 28px; max-width: 40rem; font-size: var(--v2-fs-lede); color: var(--v2-text-2); }
html.sb-v2 .sbwb-values { display: flex; flex-wrap: wrap; gap: 20px 0; width: 100%; padding-top: 28px; border-top: 1px solid var(--v2-line); }
html.sb-v2 .sbwb-values li { max-width: 300px; padding: 4px 32px; border-left: 1px solid var(--v2-line); }
html.sb-v2 .sbwb-values li:first-child { padding-left: 0; border-left: 0; }
html.sb-v2 .sbwb-values i { color: var(--v2-text-2); font-size: 1.375rem; }
html.sb-v2 .sbwb-values i.is-orange { color: var(--v2-accent-text); }
html.sb-v2 .sbwb-values strong { color: var(--v2-text); }
html.sb-v2 .sbwb-values small { color: var(--v2-text-3); }

/* ---------- bento grid ---------- */
html.sb-v2 .sbwb-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: minmax(300px, auto); gap: 16px; }
html.sb-v2 .sbwb-row { display: contents; }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1) { grid-column: 1 / 4; grid-row: 1 / 3; }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(2) { grid-column: 4 / 7; grid-row: 1; }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(3) { grid-column: 4 / 7; grid-row: 2; }
html.sb-v2 .sbwb-row--2 > .sbwb-card:nth-child(1) { grid-column: 1 / 3; grid-row: 3; }
html.sb-v2 .sbwb-row--2 > .sbwb-card:nth-child(2) { grid-column: 3 / 5; grid-row: 3; }
html.sb-v2 .sbwb-row--2 > .sbwb-card:nth-child(3) { grid-column: 5 / 7; grid-row: 3; }

html.sb-v2 .sbwb-card {
  min-height: 0; padding: 32px;
  border-radius: var(--v2-r-card);
  border: 1px solid var(--v2-line);
  background: var(--v2-surface);
  box-shadow: var(--v2-shadow);
  color: var(--v2-text-2);
  transition: border-color .3s var(--v2-ease), transform .5s var(--v2-ease), opacity .9s var(--v2-ease), box-shadow .4s var(--v2-ease), background-color .3s;
}
/* tints: [1] lead = rich orange wash, [2] navy tint, [3] white, [4] white, [5] navy tint, [6] orange tint */
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1),
html.sb-v2 .sbwb-grid:hover .sbwb-row--1 > .sbwb-card:nth-child(1):not(:hover) {
  padding: clamp(32px, 3.4vw, 52px);
  border-color: rgba(255, 138, 0, .45);
  background:
    radial-gradient(90% 70% at 85% 100%, rgba(255, 138, 0, .22), transparent 62%),
    radial-gradient(70% 50% at 0% 0%, rgba(255, 138, 0, .08), transparent 70%),
    linear-gradient(160deg, #FFF6EA 0%, #FFFFFF 70%);
  box-shadow: 0 1px 2px rgba(7, 28, 51, .05), 0 36px 64px -32px rgba(194, 87, 0, .38);
}
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(2) { background: linear-gradient(135deg, #EAF1FA 0%, #F6F9FD 70%); }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(3) { background: var(--v2-surface); }
html.sb-v2 .sbwb-row--2 > .sbwb-card:nth-child(1) { background: var(--v2-surface); }
html.sb-v2 .sbwb-row--2 > .sbwb-card:nth-child(2) { background: linear-gradient(200deg, #E8EFF8 0%, #F6F9FD 75%); }
html.sb-v2 .sbwb-row--2 > .sbwb-card:nth-child(3) { background: radial-gradient(100% 80% at 100% 100%, rgba(255, 138, 0, .14), transparent 65%), #FFFAF3; }

/* hover state is uniform: the featured class gets no special look (the lead is already special) */
html.sb-v2 .sbwb-card.is-featured,
html.sb-v2 .sbwb-card:hover,
html.sb-v2 .sbwb-card:focus-visible,
html.sb-v2 .sbwb-grid:hover .sbwb-card.is-featured:not(:hover) { box-shadow: var(--v2-shadow); }
html.sb-v2 .sbwb-card:hover, html.sb-v2 .sbwb-card:focus-visible { border-color: var(--v2-line-strong); transform: translateY(-3px); box-shadow: 0 2px 4px rgba(7, 28, 51, .06), 0 32px 56px -28px rgba(7, 28, 51, .36); }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1):hover { border-color: rgba(255, 138, 0, .8); box-shadow: 0 2px 4px rgba(7, 28, 51, .06), 0 40px 70px -30px rgba(194, 87, 0, .5); }

/* art was drawn for light backgrounds: show it as designed, faded into the card from the left */
html.sb-v2 .sbwb-art { right: 0; bottom: 0; width: 58%; max-width: 340px; opacity: 1; mix-blend-mode: normal; filter: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40%); mask-image: linear-gradient(90deg, transparent 0, #000 40%); }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1) .sbwb-art { width: 74%; max-width: 560px; }
html.sb-v2 .sbwb-row--2 > .sbwb-card .sbwb-art { width: 46%; opacity: .9; }
html.sb-v2 .sbwb-card:hover .sbwb-art { transform: translate(-4px, -4px) scale(1.03); }

html.sb-v2 .sbwb-card__icon,
html.sb-v2 .sbwb-card.is-featured .sbwb-card__icon,
html.sb-v2 .sbwb-grid:hover .sbwb-card.is-featured:not(:hover) .sbwb-card__icon { width: 52px; height: 52px; border-radius: var(--v2-r-ctl); background: #FFFFFF; border: 1px solid var(--v2-line); color: var(--v2-text); box-shadow: 0 6px 14px -8px rgba(7, 28, 51, .25); }
html.sb-v2 .sbwb-card:hover .sbwb-card__icon, html.sb-v2 .sbwb-card:focus-visible .sbwb-card__icon { background: var(--v2-accent-soft); color: var(--v2-accent-text); border-color: rgba(194, 87, 0, .35); }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1) .sbwb-card__icon,
html.sb-v2 .sbwb-grid:hover .sbwb-row--1 > .sbwb-card:nth-child(1):not(:hover) .sbwb-card__icon { background: var(--v2-accent); color: var(--v2-accent-ink); border-color: transparent; }

html.sb-v2 .sbwb-card__title { margin: auto 0 12px; padding-top: 28px; color: var(--v2-text); font-stretch: 108%; letter-spacing: -.03em; }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1) .sbwb-card__title { font-size: var(--v2-fs-h3-lead); line-height: 1.05; }
html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1) .sbwb-card__text { font-size: 1.125rem; max-width: 30ch; }
html.sb-v2 .sbwb-card__text { color: var(--v2-text-2); max-width: 36ch; }
html.sb-v2 .sbwb-tags { margin: 22px 0 28px; }
html.sb-v2 .sbwb-tags li { background: rgba(255, 255, 255, .85); border: 1px solid var(--v2-line); border-radius: 999px; color: var(--v2-text-2); padding: 7px 14px; font: 500 .8125rem/1 var(--sb-font-mono); }
html.sb-v2 .sbwb-more,
html.sb-v2 .sbwb-card.is-featured .sbwb-more,
html.sb-v2 .sbwb-grid:hover .sbwb-card.is-featured:not(:hover) .sbwb-more { margin-top: auto; color: var(--v2-text); }
html.sb-v2 .sbwb-card:hover .sbwb-more, html.sb-v2 .sbwb-card:focus-visible .sbwb-more { color: var(--v2-accent-text); }
html.sb-v2 .sbwb-more i { color: var(--v2-accent-text); }

/* ---------- tablet: 2 columns ---------- */
@media (max-width: 1100px) {
  html.sb-v2 .sbwb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
  html.sb-v2 .sbwb-grid .sbwb-card { grid-column: auto !important; grid-row: auto !important; min-height: 300px; }
  html.sb-v2 .sbwb-grid .sbwb-row--1 > .sbwb-card:nth-child(1) { grid-column: 1 / -1 !important; min-height: 380px; }
  html.sb-v2 .sbwb-art { width: 50%; }
  html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1) .sbwb-art { width: 46%; }
}
/* ---------- mobile: single column ---------- */
@media (max-width: 767px) {
  html.sb-v2 .sbwb-head { gap: 28px; }
  html.sb-v2 .sbwb-values { flex-direction: column; gap: 18px; }
  html.sb-v2 .sbwb-values li, html.sb-v2 .sbwb-values li:first-child { border: 0; padding: 0; max-width: none; }
  html.sb-v2 .sbwb-grid { grid-template-columns: 1fr; gap: 14px; }
  html.sb-v2 .sbwb-grid .sbwb-card, html.sb-v2 .sbwb-grid .sbwb-row--1 > .sbwb-card:nth-child(1) { grid-column: 1 !important; min-height: 0; padding: 26px 22px; }
  html.sb-v2 .sbwb-card__title { padding-top: 20px; }
  html.sb-v2 .sbwb-art, html.sb-v2 .sbwb-row--1 > .sbwb-card:nth-child(1) .sbwb-art { width: 44%; opacity: .55; }
}

/* sbs-v2-footer */
/* SIGMA v2: footer and the global CTA band. On the light theme these two form the page's ONE deliberate
   navy block (the finale), so the dark token set is re-declared locally and every rule below still uses tokens. */
html.sb-v2 :is(.sbpass-main, .sbft) {
  --v2-ink: #071C33; --v2-ink-2: #0A223D; --v2-surface: #0D2744; --v2-surface-2: #12304F;
  --v2-line: rgba(160, 190, 225, .14); --v2-line-strong: rgba(160, 190, 225, .26);
  --v2-text: #F2F6FA; --v2-text-2: #BCC9D9; --v2-text-3: #93A4BA;
  --v2-accent-text: #FF9F33; --v2-accent-ink: #071C33; --v2-accent-soft: rgba(255, 138, 0, .14);
  color-scheme: dark;
}

html.sb-v2 .sbft { background: var(--v2-ink); border-top: 1px solid var(--v2-line); }
html.sb-v2 .sbft::before, html.sb-v2 .sbft::after { display: none; }
html.sb-v2 .sbft-h { color: var(--v2-text); font: 600 .8125rem/1 var(--sb-font-mono); letter-spacing: .14em; }
html.sb-v2 .sbft a:not(.sbft-logo) { color: var(--v2-text-2); transition: color .2s; }
html.sb-v2 .sbft a:not(.sbft-logo):hover { color: var(--v2-accent-text); }
html.sb-v2 .sbft-about, html.sb-v2 .sbft-copy, html.sb-v2 .sbft-news__text, html.sb-v2 .sbft-news__note { color: var(--v2-text-3); }
html.sb-v2 .sbft-bar { border-top-color: var(--v2-line); }
html.sb-v2 .sbft-social a { border-color: var(--v2-line-strong); }
html.sb-v2 .sbft-social a:hover { border-color: var(--v2-accent); }

/* ==========================================================================
   Global CTA: the consultation pass (markup: partials/cta-v2.html)
   A compact ticket that straddles the paper/footer boundary: navy main panel with a drifting
   data field, a perforated tear line with notches, and a paper stub that holds the actions.
   ========================================================================== */
html.sb-v2 .sbct--v2 {
  position: relative; padding: clamp(56px, 7vw, 96px) 0 0; color: var(--v2-text);
  /* paper above, footer navy below: the pass sits across the seam */
  background: linear-gradient(180deg, var(--v2-ink) 0, var(--v2-ink) 58%, #06182C 58%, #06182C 100%);
}
html.sb-v2 .sbct--v2 + .sbft { border-top: 0; }
/* the classic band overlay and two-column grid do not apply to the pass */
html.sb-v2 .sbct--v2::before, html.sb-v2 .sbct--v2::after { display: none; }
html.sb-v2 .sbct--v2 .sbct-inner { display: block; }
html.sb-v2 .sbpass {
  --notch: 18px; --stub: clamp(300px, 28%, 380px);
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) var(--stub);
  filter: drop-shadow(0 30px 40px rgba(7, 28, 51, .22)) drop-shadow(0 4px 8px rgba(7, 28, 51, .08));
}
/* the halves are cut with notches at the perforation (radial masks), so the tear reads physically */
html.sb-v2 .sbpass-main {
  position: relative; overflow: hidden; isolation: isolate; padding: clamp(32px, 4vw, 56px);
  background: radial-gradient(600px 300px at 0% 100%, rgba(255, 138, 0, .16), transparent 70%), linear-gradient(135deg, #0B2546 0%, #071C33 60%);
  box-shadow: inset 0 0 0 1px rgba(160, 190, 225, .16); /* rim: keeps the edge where the panel meets the navy footer */
  border-radius: var(--v2-r-media) 0 0 var(--v2-r-media);
  -webkit-mask: radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
}
/* drifting data field: the hero terrain dots, laid flat in perspective on the right */
html.sb-v2 .sbpass-field {
  position: absolute; inset: -40% -10% -40% 35%; z-index: -1; pointer-events: none;
  background-image: radial-gradient(circle, rgba(141, 190, 240, .5) 1.2px, transparent 1.6px);
  background-size: 22px 22px;
  transform: perspective(700px) rotateX(58deg) rotateZ(-8deg);
  -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent); mask-image: radial-gradient(closest-side, #000 30%, transparent);
  animation: sbpass-drift 18s linear infinite;
}
@keyframes sbpass-drift { to { background-position: 0 -220px; } }
html.sb-v2 .sbpass-title {
  max-width: 17ch; margin: 0; font-family: var(--sb-font-heading); font-stretch: 112%; font-weight: 800;
  font-size: var(--v2-fs-h2); line-height: 1.02; letter-spacing: var(--v2-track-h2); color: var(--v2-text);
}
html.sb-v2 .sbpass-title strong { color: var(--v2-accent-text); }
html.sb-v2 .sbpass-lede { max-width: 46ch; margin: 18px 0 0; font-size: var(--v2-fs-lede); color: var(--v2-text-2); }
html.sb-v2 .sbpass-points { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 26px 0 0; padding: 22px 0 0; border-top: 1px dashed var(--v2-line-strong); list-style: none; }
html.sb-v2 .sbpass-points li { display: inline-flex; align-items: center; gap: 9px; font-size: var(--v2-fs-small); font-weight: 500; color: var(--v2-text); }
html.sb-v2 .sbpass-points i { color: var(--v2-accent-text); font-size: .875rem; }

/* the stub: paper white, perforation dots on the tear edge */
html.sb-v2 .sbpass-stub {
  position: relative; display: flex; flex-direction: column; justify-content: center; gap: 18px;
  padding: clamp(28px, 3vw, 44px) clamp(24px, 3vw, 40px);
  background: #FFFFFF; color: #071C33; border-radius: 0 var(--v2-r-media) var(--v2-r-media) 0;
  -webkit-mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
  transform-origin: 0 50%; transition: transform .6s var(--v2-ease);
}
html.sb-v2 .sbpass-stub::before {
  content: ""; position: absolute; left: 0; top: calc(var(--notch) + 8px); bottom: calc(var(--notch) + 8px); width: 2px;
  background: radial-gradient(circle, rgba(7, 28, 51, .28) 1px, transparent 1.5px) 0 0 / 2px 10px repeat-y;
}
html.sb-v2 .sbpass-admit { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 4px 12px; margin: 0; }
html.sb-v2 .sbpass-admit__big { font: 800 3.25rem/1 var(--sb-font-heading); font-stretch: 118%; letter-spacing: var(--v2-track-display); color: #071C33; }
html.sb-v2 .sbpass-admit__small { font: 600 .875rem/1.2 var(--sb-font-body); color: #3B4A5F; }
html.sb-v2 .sbpass-admit__tag { align-self: start; padding: 5px 9px; border-radius: 6px; background: var(--v2-accent); color: #071C33; font: 700 .75rem/1 var(--sb-font-mono); letter-spacing: .08em; text-transform: uppercase; }
html.sb-v2 .sbpass-btn {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 0 20px;
  border-radius: var(--v2-r-ctl); background: var(--v2-accent); color: #071C33; font-weight: 700; font-size: 1rem;
  box-shadow: 0 12px 26px -12px rgba(232, 118, 0, .8); transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), background-color .2s;
}
html.sb-v2 .sbpass-btn:hover { background: #FF9A24; transform: translateY(-2px); box-shadow: 0 18px 32px -12px rgba(232, 118, 0, .9); }
html.sb-v2 .sbpass-btn:active { transform: translateY(1px) scale(.98); }
html.sb-v2 .sbpass-btn i { transition: transform .35s var(--v2-ease); }
html.sb-v2 .sbpass-btn:hover i { transform: translateX(4px); }
html.sb-v2 .sbpass-alt { display: flex; gap: 8px; }
html.sb-v2 .sbpass-alt a {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 12px;
  border: 1px solid rgba(7, 28, 51, .14); border-radius: var(--v2-r-ctl); color: #071C33; font-weight: 600; font-size: .9375rem; transition: border-color .2s, background-color .2s;
}
html.sb-v2 .sbpass-alt a:hover { border-color: #071C33; background: #F4F6F9; }
html.sb-v2 .sbpass-alt .fa-whatsapp { color: #128C4A; }
html.sb-v2 .sbpass a:focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 3px; }

/* hover: the stub leans away along the tear line */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  html.sb-v2 .sbpass:hover .sbpass-stub { transform: translateX(6px) rotate(.8deg); }
}

@media (max-width: 1100px) { html.sb-v2 .sbpass { --stub: 300px; } }
/* phone: the pass turns vertical, the tear runs across */
@media (max-width: 767px) {
  html.sb-v2 .sbct--v2 { background: linear-gradient(180deg, var(--v2-ink) 0, var(--v2-ink) 70%, #06182C 70%); }
  html.sb-v2 .sbpass { grid-template-columns: 1fr; --notch: 14px; }
  html.sb-v2 .sbpass-main {
    border-radius: var(--v2-r-media) var(--v2-r-media) 0 0;
    -webkit-mask: radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) right / 51% 100% no-repeat;
            mask: radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) right / 51% 100% no-repeat;
  }
  html.sb-v2 .sbpass-stub {
    border-radius: 0 0 var(--v2-r-media) var(--v2-r-media);
    -webkit-mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) right / 51% 100% no-repeat;
            mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) right / 51% 100% no-repeat;
  }
  html.sb-v2 .sbpass-stub::before { left: calc(var(--notch) + 8px); right: calc(var(--notch) + 8px); top: 0; bottom: auto; width: auto; height: 2px; background: radial-gradient(circle, rgba(7, 28, 51, .28) 1px, transparent 1.5px) 0 0 / 10px 2px repeat-x; }
  html.sb-v2 .sbpass:hover .sbpass-stub { transform: none; }
}
@media (prefers-reduced-motion: reduce) { html.sb-v2 .sbpass-field { animation: none; } }


/* ==========================================================================
   v2 footer: "the curtain" (markup: partials/footer-v2.html)
   Large screens: the page is a sheet that lifts to reveal a full-height footer pinned beneath it
   (html.v2-curtain, set by js/v2.js when the footer fits the viewport). Mount Kenya in a navy
   duotone, the brand line in light/bold contrast, concierge-style contact, hairlines, no boxes.
   ========================================================================== */
html.sb-v2 .sbft--v2 {
  position: relative; overflow: hidden; isolation: isolate; border-top: 0;
  background: #06182C; color: var(--v2-text-2);
}
/* photo: duotone navy, settles (scale + light) as the curtain lifts; --reveal 0..1 set by js/v2.js */
html.sb-v2 .sbfc-photo { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
html.sb-v2 .sbfc-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%;
  filter: grayscale(1) contrast(1.15) brightness(.9);
  opacity: calc(.3 + var(--reveal, 1) * .25);
  transform: scale(calc(1.14 - var(--reveal, 1) * .14));
  transform-origin: 50% 70%; will-change: transform;
}
html.sb-v2 .sbfc-photo::after { /* navy duotone + falloff toward the text */
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(6, 24, 44, .9) 0%, rgba(6, 24, 44, .35) 42%, rgba(6, 24, 44, .88) 100%),
    linear-gradient(90deg, rgba(6, 24, 44, .8) 0%, rgba(6, 24, 44, .15) 75%);
}
html.sb-v2 .sbft--v2 > .sbft-inner { width: 100%; }
html.sb-v2 .sbfc { position: relative; display: flex; flex-direction: column; gap: clamp(36px, 4vw, 56px); padding-top: clamp(56px, 6vw, 96px); padding-bottom: 28px; }

/* ---- composition: a 12-column editorial grid ----
   head:  brand line (cols 1-7) | direct line (cols 8-12, aligned to the line's baseline)
   grid:  Practices | Explore | Visit | Insights by email, each under its own hairline
   sign:  logo, copyright, legal, back to top */
html.sb-v2 .sbfc-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 48px); align-items: end; }
html.sb-v2 .sbfc-line {
  grid-column: 1 / span 7; margin: 0;
  font-family: var(--sb-font-heading); font-stretch: 112%; font-weight: 300;
  font-size: calc(var(--v2-fs-display) * 1.08); line-height: .96; letter-spacing: var(--v2-track-display); color: #F2F6FA;
}
html.sb-v2 .sbfc-line em { font-style: normal; font-weight: 800; color: #FF9F33; }

/* direct line: status, the email as the hero link with copy, the phone */
html.sb-v2 .sbfc-direct { grid-column: 8 / -1; justify-self: end; text-align: right; padding-bottom: 6px; } /* right-aligned to the grid edge: counterweight to the brand line */
html.sb-v2 .sbfc-status { display: block; margin: 0 0 18px; font-size: .8125rem; color: var(--v2-text-3); }
html.sb-v2 .sbfc-status strong { font-weight: 600; color: #DCE5EF; }
html.sb-v2 .sbfc-status__dot { position: relative; display: inline-block; vertical-align: 1px; margin-right: 10px; width: 8px; height: 8px; border-radius: 50%; background: #7C8BA0; }
html.sb-v2 .sbfc-status.is-open .sbfc-status__dot { background: #34D399; box-shadow: 0 0 0 0 rgba(52, 211, 153, .55); animation: sbfc-pulse 2.4s ease-out infinite; }
@keyframes sbfc-pulse { to { box-shadow: 0 0 0 10px rgba(52, 211, 153, 0); } }
html.sb-v2 .sbfc-mail { display: flex; align-items: center; justify-content: flex-end; gap: 16px; flex-wrap: wrap; }
html.sb-v2 .sbft--v2 .sbfc-mail__link {
  font-family: var(--sb-font-heading); font-stretch: 108%; font-weight: 300; font-size: clamp(1.5rem, 1.1rem + 1.25vw, 2.375rem); letter-spacing: -.025em; line-height: 1.1;
  color: #FFFFFF; background: linear-gradient(#FF9F33, #FF9F33) 0 100% / 0 2px no-repeat; padding-bottom: 6px; transition: background-size .6s var(--v2-ease);
}
html.sb-v2 .sbft--v2 .sbfc-mail__link:hover, html.sb-v2 .sbft--v2 .sbfc-mail__link:focus-visible { background-size: 100% 2px; color: #FFFFFF; }
html.sb-v2 .sbfc-copy-btn {
  height: 30px; padding: 0 12px; border: 1px solid rgba(160, 190, 225, .35); border-radius: 999px; background: transparent;
  font: 500 .6875rem/1 var(--sb-font-body); letter-spacing: .16em; text-transform: uppercase; color: #DCE5EF; cursor: pointer;
  transition: background-color .3s, border-color .3s, color .3s;
}
html.sb-v2 .sbfc-copy-btn:hover, html.sb-v2 .sbfc-copy-btn:focus-visible { border-color: #FF9F33; color: #FF9F33; }
html.sb-v2 .sbfc-copy-btn.is-done { background: #FF8A00; border-color: #FF8A00; color: #071C33; }
html.sb-v2 .sbft--v2 .sbfc-tel { display: inline-block; margin-top: 10px; font-family: var(--sb-font-heading); font-stretch: 108%; font-weight: 300; font-size: clamp(1.125rem, 1rem + .5vw, 1.5rem); letter-spacing: -.015em; color: #BCC9D9; }
html.sb-v2 .sbft--v2 .sbfc-tel:hover { color: #FFFFFF; }

/* four columns under hairlines */
html.sb-v2 .sbfc-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 48px); row-gap: 40px; }
html.sb-v2 .sbfc-grid > :nth-child(1) { grid-column: 1 / span 3; }
html.sb-v2 .sbfc-grid > :nth-child(2) { grid-column: 4 / span 2; }
html.sb-v2 .sbfc-grid > :nth-child(3) { grid-column: 6 / span 3; }
html.sb-v2 .sbfc-grid > :nth-child(4) { grid-column: 9 / -1; }
html.sb-v2 .sbfc-col { padding-top: 22px; border-top: 1px solid rgba(160, 190, 225, .2); font-style: normal; }
html.sb-v2 .sbfc-h { margin: 0 0 18px; font: 500 .6875rem/1 var(--sb-font-body); letter-spacing: .24em; text-transform: uppercase; color: #93A4BA; }
html.sb-v2 .sbfc-col ul { margin: 0; padding: 0; list-style: none; }
html.sb-v2 .sbfc-col li + li { margin-top: 9px; }
html.sb-v2 .sbft--v2 .sbfc-col a, html.sb-v2 .sbft--v2 .sbfc-legal a { font-size: .9375rem; color: #DCE5EF; }
html.sb-v2 .sbfc-addr { margin: 0; font-size: .9375rem; line-height: 1.5; }
html.sb-v2 .sbfc-hours { margin: 6px 0 0; font-size: .875rem; color: #93A4BA; }
html.sb-v2 .sbfc-social { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 20px !important; }
html.sb-v2 .sbfc-social li + li { margin-top: 0 !important; }
html.sb-v2 .sbfc-ext { margin-left: 6px; font-size: .7em; transform: rotate(-45deg); transition: transform .45s var(--v2-ease); }
html.sb-v2 .sbft--v2 a:hover .sbfc-ext { transform: rotate(-45deg) translate(3px, 0); }

/* text roll: the label slides up and a copy rolls in from below (data-roll added by js/v2.js) */
html.sb-v2 .sbft--v2 .sbfc-roll a { position: relative; display: inline-flex; align-items: center; overflow: hidden; vertical-align: top; }
html.sb-v2 .sbft--v2 .sbfc-roll a .v2-roll { display: inline-block; position: relative; transition: transform .55s var(--v2-ease); }
html.sb-v2 .sbft--v2 .sbfc-roll a .v2-roll::after { content: attr(data-roll); position: absolute; left: 0; top: 100%; color: #FF9F33; }
html.sb-v2 .sbft--v2 .sbfc-roll a:hover .v2-roll, html.sb-v2 .sbft--v2 .sbfc-roll a:focus-visible .v2-roll { transform: translateY(-100%); }

/* newsletter, compact */
html.sb-v2 .sbfc-label { display: block; max-width: 36ch; margin-bottom: 8px; font-size: .9375rem; line-height: 1.5; color: #BCC9D9; }
html.sb-v2 .sbfc-field { position: relative; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(160, 190, 225, .35); }
html.sb-v2 .sbfc-field::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: #FF9F33; transform: scaleX(0); transform-origin: 0 50%; transition: transform .6s var(--v2-ease); }
html.sb-v2 .sbfc-field:focus-within::after { transform: scaleX(1); }
html.sb-v2 .sbft--v2 .sbfc-field input[type="email"], html.sb-v2 .sbft--v2 .sbfc-field input[data-sb-code] {
  flex: 1; min-width: 0; height: 52px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; outline: none;
  font: 300 1.125rem/1 var(--sb-font-heading); font-stretch: 108%; color: #F2F6FA;
}
html.sb-v2 .sbft--v2 .sbfc-field input[data-sb-code] { font-family: var(--sb-font-mono, "IBM Plex Mono", monospace); font-weight: 500; letter-spacing: .32em; font-variant-numeric: tabular-nums; }
/* code step of the newsletter sign-up (js/sigma.js): "use a different email" link-button inside the note */
.sbft-news__note .sbft-news__alt { margin-left: 4px; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
html.sb-v2 .sbft--v2 .sbfc-field input::placeholder { color: rgba(188, 201, 217, .6); opacity: 1; }
html.sb-v2 .sbft--v2 .sbfc-field input[aria-invalid="true"] { color: #FFB4A8; }
html.sb-v2 .sbft--v2 .sbfc-field button {
  position: static; flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 50%;
  border: 1px solid rgba(160, 190, 225, .4); background: transparent; color: #F2F6FA; font-size: .875rem;
  transition: background-color .35s var(--v2-ease), border-color .35s, color .35s, transform .35s var(--v2-ease);
}
html.sb-v2 .sbft--v2 .sbfc-field button:hover, html.sb-v2 .sbft--v2 .sbfc-field button:focus-visible { background: #FF8A00; border-color: #FF8A00; color: #071C33; transform: rotate(-45deg); }
html.sb-v2 .sbft--v2 .sbfc-news .sbft-news__note { margin-top: 10px; font-size: .8125rem; color: #93A4BA; }
html.sb-v2 .sbft--v2 .sbfc-news .sbft-news__note.is-error { color: #FFB4A8; }
html.sb-v2 .sbft--v2 .sbfc-news .sbft-news__note.is-info { color: #F2F6FA; }

/* signature row */
html.sb-v2 .sbfc-sign { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 28px; padding-top: 22px; border-top: 1px solid rgba(160, 190, 225, .2); }
html.sb-v2 .sbft--v2 .sbfc-logo .sbft-logo__img { height: 30px; width: auto; }
html.sb-v2 .sbfc-copy { display: block; margin: 0; font-size: .8125rem; color: #93A4BA; }
html.sb-v2 .sbfc-legal { display: flex; gap: 22px; margin: 0 0 0 auto; padding: 0; list-style: none; }
html.sb-v2 .sbft--v2 .sbfc-legal a { font-size: .8125rem; color: #93A4BA; }
html.sb-v2 .sbft--v2 .sbfc-totop { display: inline-flex; align-items: center; gap: 12px; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: #DCE5EF; background: none; }
html.sb-v2 .sbfc-totop i { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(160, 190, 225, .4); border-radius: 50%; transition: transform .45s var(--v2-ease), background-color .3s, border-color .3s, color .3s; }
html.sb-v2 .sbfc-totop:hover i, html.sb-v2 .sbfc-totop:focus-visible i { transform: translateY(-4px); background: #FF8A00; border-color: #FF8A00; color: #071C33; }
html.sb-v2 .sbft--v2 .sbfc a:focus-visible, html.sb-v2 .sbft--v2 .sbfc button:focus-visible { outline: 2px solid #FF9F33; outline-offset: 4px; }

/* ---------- the curtain (large screens, footer shorter than the viewport) ---------- */
html.sb-v2.v2-curtain .sbft--v2 { position: sticky; bottom: 0; z-index: 0; min-height: min(100dvh, 860px); display: flex; flex-direction: column; justify-content: flex-end; }
html.sb-v2.v2-curtain .v2-sheet { position: relative; z-index: 1; background-color: var(--v2-ink); }
/* the sheet edge: rounded corners and a soft shadow falling onto the footer */
html.sb-v2.v2-curtain .v2-sheet--last { border-radius: 0 0 28px 28px; box-shadow: 0 40px 60px -30px rgba(0, 8, 20, .55), 0 2px 0 rgba(255, 255, 255, .6) inset; }
/* the consultation pass now rests on the sheet (paper all round) instead of straddling a navy band */
html.sb-v2.v2-curtain .sbct--v2 { background: var(--v2-ink); padding-bottom: clamp(56px, 7vw, 96px); }

/* tablet and phone: normal flow, stacked */
@media (max-width: 1100px) {
  html.sb-v2 .sbfc-line { grid-column: 1 / -1; margin-bottom: 36px; }
  html.sb-v2 .sbfc-direct { grid-column: 1 / -1; justify-self: start; text-align: left; }
  html.sb-v2 .sbfc-mail { justify-content: flex-start; }
  html.sb-v2 .sbfc-grid > :nth-child(1) { grid-column: 1 / span 6; }
  html.sb-v2 .sbfc-grid > :nth-child(2) { grid-column: 7 / span 6; }
  html.sb-v2 .sbfc-grid > :nth-child(3) { grid-column: 1 / span 6; }
  html.sb-v2 .sbfc-grid > :nth-child(4) { grid-column: 7 / span 6; }
}
@media (max-width: 767px) {
  html.sb-v2 .sbfc { gap: 48px; padding-top: 72px; }
  html.sb-v2 .sbfc-line { font-size: var(--v2-fs-display); }
  html.sb-v2 .sbfc-grid > * { grid-column: 1 / -1 !important; }
  html.sb-v2 .sbfc-legal { margin-left: 0; }
  html.sb-v2 .sbfc-sign { padding-bottom: 88px; } /* clear the sticky mobile action bar */
}
@media (min-width: 768px) { html.sb-v2 .sbfc-sign { padding-right: 84px; } } /* floating WhatsApp button */
@media (prefers-reduced-motion: reduce) { html.sb-v2 .sbfc-photo img { transform: none; } }

