/* ============================================================
   TREASURY DESIGN SYSTEM v1.0
   ============================================================
   HOW TO USE ON NEW PAGES:
   1. Copy everything between these comments into your <style>
   2. Your page gets all tokens, components & dark mode free
   ============================================================ */

/* ── 1. DESIGN TOKENS ─────────────────────────────────────── */
:root {
  /* Brand colours */
  --black:      #222222;
  --white:      #ffffff;
  --blue:       #2f6aff;
  --blue-dk:    #1e59ee;
  --blue-lt:    #e8eeff;
  --blue-mid:   #c4d3ff;
  --red:        #e63946;

  /* Surface colours (light mode) */
  --page-bg:    #f0f0f2;
  --surface-1:  #ffffff;       /* cards */
  --surface-2:  #e8e8ec;       /* grey bg */
  --surface-3:  #ecedf0;       /* subtle grey */
  --border:     #d8d9de;

  /* Text colours (light mode) — AA-verified on both #fff and #f0f0f2 */
  --text:       #222222;
  --text-2:     #65637a;       /* body / supporting — 4.7:1 on white, 4.7:1 on page-bg */
  --text-3:     #696778;       /* muted — 5.5:1 on white, 4.9:1 on page-bg */

  /* Radius scale */
  --r-sm:       12px;
  --r-md:       16px;
  --r-lg:       16px;
  --r-xl:       16px;
  --r-pill:     999px;

  /* Shadows */
  --sh:         none;
  --sh-md:      none;

  /* Spacing — page rhythm */
  --g:            16px;        /* page gutter (mobile) */
  --gap:          10px;        /* tight card / grid gap */
  --space-panel:  48px;        /* between panels (sections) */
  --space-stack:  32px;        /* between major elements within a panel */
  --space-title:  16px;        /* between title and supporting copy */

  /* Animation */
  --t:          0.18s ease;
  --t-smooth:   0.35s cubic-bezier(0.4,0,0.2,1);
}

/* ── 2. DARK MODE TOKENS ──────────────────────────────────── */
/* Dark tokens applied only via explicit html.dark toggle — no OS auto-follow */
/* Force light mode vars when .light class is set */
html.light {
  --page-bg:    #f0f0f2;
  --surface-1:  #ffffff;
  --surface-2:  #e8e8ec;
  --surface-3:  #e0e0e4;
  --border:     rgba(0,0,0,0.08);
  --text:       #1a1a2e;
  --text-2:     #65637a;       /* solid — AA on both white and page-bg */
  --text-3:     #696778;       /* solid — AA on both white and page-bg */
  --sh:         none;
}
/* ── JS-triggered dark mode tokens ── */
html.dark {
  --page-bg:    #111113;
  --surface-1:  #222222;
  --blue:       #4a79ff;   /* accent on dark surfaces: 4.91:1 on #111113, passes AA for body text.
                              Kept darker than it needs to be for contrast alone so it reads as the
                              same blue as the CTA fill (#2f6aff), which cannot be used for text here
                              (4.16:1, fails AA at body sizes). */
  --surface-2:  #222228;
  --surface-3:  #28282f;
  --border:     rgba(255,255,255,0.1);
  --text:       #f0f0f0;
  --text-2:     rgba(240,240,240,0.65);
  --text-3:     rgba(240,240,240,0.55);
  --sh:         none;
}

/* ── 2b. ADAPTIVE ACCENT PANEL (light-blue in light, dark navy in dark) ── */
:root        { --panel-soft: #e8eeff; }
html.light   { --panel-soft: #e8eeff; }
html.dark    { --panel-soft: #1a2550; }

/* ── 3. BASE RESET ────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-tap-highlight-color: transparent; background: var(--black); }
/* Explicit form element colours — prevents UA dark-bg overrides in light mode */
input, textarea, select {
  background: var(--surface-1);
  color: var(--text);
  border-color: var(--border);
}
::placeholder { color: var(--text-3); opacity: 1; }

/* ── 4. TYPOGRAPHY SCALE ──────────────────────────────────── */
/*
  Mobile → Desktop tokens (defined in :root + @media (min-width: 768px)).
  Use the utility classes below on new pages; never hard-code sizes.

  TOKEN          MOBILE → DESKTOP   UTILITY      TYPICAL USE
  --fs-h1        42 → 56            .t-h1        Hero / huge page heading
  --fs-h2        32 → 36            .t-h2        Section heading
  --fs-h3        24 → 24            .t-h3        Card / sub-section heading (static)
  --fs-h4        18 → 20            .t-h4        Small heading / step title
  --fs-h5        16 → 18            .t-h5        Compact heading
  --fs-body-lg   16 → 18            .t-body-lg   Lead paragraph
  --fs-body      14 → 16            .t-body      Body & section subtitle
  --fs-meta      12 → 14            .t-meta      Footer copy, caption, fine print
  --fs-micro     11 → 12            .t-micro     Eyebrow, tag, very small label
  --fs-label     10 → 10            .t-label     Uppercase categorical label
*/
:root {
  --fs-h1: 42px;
  --fs-h2: 32px;
  --fs-h3: 24px;
  --fs-h4: 18px;
  --fs-h5: 16px;
  --fs-body-lg: 16px;
  --fs-body: 14px;
  --fs-meta: 12px;
  --fs-micro: 11px;
  --fs-label: 10px;

  --lh-tight:   1.1;
  --lh-snug:    1.25;
  --lh-base:    1.55;
  --lh-relaxed: 1.7;
}

.t-h1      { font-size: var(--fs-h1);      line-height: var(--lh-tight); letter-spacing: -1.5px; }
.t-h2      { font-size: var(--fs-h2);      line-height: var(--lh-snug);  letter-spacing: -0.5px; }
.t-h3      { font-size: var(--fs-h3);      line-height: var(--lh-snug); }
.t-h4      { font-size: var(--fs-h4);      line-height: var(--lh-snug); }
.t-h5      { font-size: var(--fs-h5);      line-height: var(--lh-snug); }
.t-body-lg { font-size: var(--fs-body-lg); line-height: var(--lh-base); }
.t-body    { font-size: var(--fs-body);    line-height: var(--lh-base); }
/* Bullet list icon alignment: top-align SVG then nudge down to sit at first-line cap height */
li[style*="align-items:flex-start"] > svg:first-child { margin-top: 4px; }
.t-meta    { font-size: var(--fs-meta);    line-height: var(--lh-base); }
.t-micro   { font-size: var(--fs-micro);   line-height: var(--lh-base); }
.t-label   { font-size: var(--fs-label);   line-height: var(--lh-base); font-weight: 700; letter-spacing: 0.5px; }

/* ── 5. COMPONENT TOKENS ──────────────────────────────────── */
/*
  BUTTONS:
    Primary:    .btn .btn-blue     — blue bg, white text, 48px, pill
    Secondary:  .btn .btn-outline-blue — transparent, blue border+text, 48px, pill

  CARDS:
    Light:      .card              — white bg, var(--sh) shadow, var(--r-xl) radius
    Dark:       .card-black        — #222222 bg
    Blue:       .card-blue         — var(--blue) bg
    Grey:       .card-grey         — var(--surface-2) bg

  TAGS/PILLS:
    .tag-blue   — red bg, white text (IN DEMAND)
    .tag-ghost  — white border, white text
    .tag-lt     — blue-lt bg, blue text
    .tag-dark   — semi-white bg, white text

  DOTS:
    .dot        — carousel indicator (hero)
    .p-dot      — carousel indicator (products)
    .t-dot      — carousel indicator (testimonials)
    .dot.on / .p-dot.on / .t-dot.on — active state

  SECTION:
    .sec        — page section, padding: 0 var(--g) var(--gap)
    .sec-head   — section heading block
    .sec-cta    — centered CTA wrapper
    .card .p-card — padded card wrapper

  NAV:
    .nav-wrap   — sticky nav container
    .nav        — flex nav bar, transitions to lozenge on scroll
    .nav-wrap.scrolled — pill style triggered at 60px scroll
    .nav-wrap.nav-hidden — hides on scroll down, shows on scroll up

  FULL MENU:
    #fullMenu   — fullscreen slide-down nav
    #fullMenu.open — triggered by #navMenuBtn

  FOOTER:
    .footer     — dark card, border-radius 24px
    .f-cols     — 5-col grid on desktop
*/


body {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 15px; line-height: 1.55;
  color: var(--text);
  background: var(--page-bg);
  /* Keep the very top of the body dark so the nav/announce area never bleeds light grey */
  background-image: linear-gradient(to bottom, var(--black) 200px, var(--page-bg) 200px);
}
/* 24px dark strip above the announce bar (replaces body padding so the gap is dark, not white) */
body::before {
  content: '';
  display: block;
  height: 24px;
  background: var(--black);
}
.page-wrap { overflow-x: hidden; }
a { text-decoration: none; color: inherit; }

/* ─── ANNOUNCE BAR ──────────────────────── */
.announce {
  background: var(--black);
  height: 80px; padding: 0 var(--g);
  display: flex; align-items: center;
}
.announce-inner {
  background: #1e1e1e;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: var(--r-md);
  height: 36px; padding: 0 14px;
  display: flex; align-items: center; gap: 8px;
  width: 100%;
}
@media (max-width: 767px) {
  .logo-link .logo-wordmark { height: 40px !important; }
  .announce {
    display: none !important;
  }
  .announce-inner {
    border-radius: 0 !important; border: none !important;
    height: auto; padding: 10px 40px 10px 16px;
    flex-direction: column; align-items: flex-start; gap: 4px;
    position: relative;
  }
  .ann-text { white-space: normal !important; }
  .ann-close { position: absolute; top: 10px; right: 10px; }
  .announce-inner .tag { height: 18px; padding: 0 8px; font-size: 9px; }
  body::before { height: 0; }
  .announce, body.has-video-hero .announce { background: #1e1e1e !important; }
}
.ann-dot { width: 7px; height: 7px; border-radius: 50%; background: #e63946; flex: none; animation: pulse-dot 2s ease-in-out infinite; }
@keyframes pulse-dot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.5); opacity: 0.6; }
}
.ann-text { font-size: var(--fs-meta); color: #ffffff; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ann-link { font-size: var(--fs-meta); color: #7aa3ff; font-weight: 600; flex: none; } /* #7aa3ff: 6.4:1 on #222 dark bar */
.ann-close { flex: none; width: 22px; height: 22px; margin-left: 2px; display: flex; align-items: center; justify-content: center; background: transparent; border: none; border-radius: 50%; color: rgba(255,255,255,0.55); cursor: pointer; padding: 0; transition: background 0.15s ease, color 0.15s ease; }
.ann-close:hover { background: rgba(255,255,255,0.12); color: #ffffff; }

/* ─── DESKTOP NAV LINKS ──────────────────── */
/* Logo + links + margins need ~975px at the default text size, but the links grow
   with browser zoom or a minimum-font-size setting and then run under the logo.
   Below 1200px (tablets and small laptops) the burger menu is shown instead, which
   leaves ~228px of slack before the row can collide. */
.desk-nav { display: none; }
@media (min-width: 1200px) {
  .desk-nav {
    display: flex; align-items: center; gap: 28px;
    margin-left: auto;
  }
  .nav-burger-wrap { display: none; }
  .desk-nav-link {
    font-size: 14px; font-weight: 500;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    transition: color 0.15s;
    white-space: nowrap;
  }
  .desk-nav-link:hover,
  .desk-nav-link.active { color: #ffffff; }
  .desk-nav-link[data-page="contact"] {
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 999px;
    padding: 6px 16px;
  }
  .desk-nav-link[data-page="contact"]:hover {
    background: rgba(255,255,255,0.2);
  }
  .nav-menu { display: none !important; }
}

/* ─── NAV ────────────────────────────────── */
.nav-wrap {
  background: var(--black);
  padding: 32px var(--g) 0;
  position: sticky; top: 0; z-index: 999;
  transition: transform 0.25s ease;
}
.nav-wrap.nav-hidden {
  transform: translateY(-110%);
}
.nav {
  height: 56px;
  border-radius: 0;
  padding: 0;
  display: flex; align-items: center; justify-content: space-between;
  transition: height 0.3s ease, border-radius 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}
/* Scrolled state */
.nav-wrap.scrolled {
  background: transparent;
  padding: 8px var(--g);
}
.nav-wrap.scrolled .nav {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  height: 52px;
  border-radius: var(--r-pill);
  padding: 0 8px;
  box-shadow: none;
}
.nav-wrap.scrolled .logo-link { opacity: 1; pointer-events: all; }
.logo-link .logo-wordmark { height: 33px; width: auto; display: block; transform-origin: center bottom; }
.logo-link:hover .logo-wordmark,
.logo-link:focus-visible .logo-wordmark,
.logo-link.logo-tapped .logo-wordmark,
.logo-link.logo-tapped .logo-mark { animation: logo-glitch 0.42s steps(1) both; }
@keyframes logo-glitch {
  0%   { filter: none; transform: translate(0); }
  8%   { filter: drop-shadow(-5px 0 0 #ff0055) drop-shadow(5px 0 0 #00eeff); transform: translateX(-3px); }
  16%  { filter: drop-shadow(5px 0 0 #ff0055) drop-shadow(-5px 0 0 #00eeff); transform: translateX(3px); }
  24%  { filter: none; transform: translate(0); }
  32%  { filter: drop-shadow(-4px 1px 0 #ff0055) drop-shadow(4px -1px 0 #00eeff); transform: translateX(-2px) scaleX(1.03); }
  40%  { filter: drop-shadow(3px 0 0 #ff0055) drop-shadow(-3px 0 0 #00eeff); transform: translateX(2px); }
  50%  { filter: none; transform: translate(0) scaleX(1); }
  58%  { filter: drop-shadow(-2px 0 0 rgba(255,0,85,0.7)) drop-shadow(2px 0 0 rgba(0,238,255,0.7)); transform: translateX(-2px); }
  68%  { filter: drop-shadow(2px 0 0 rgba(255,0,85,0.5)) drop-shadow(-2px 0 0 rgba(0,238,255,0.5)); transform: translateX(2px); }
  80%  { filter: none; transform: translate(0); }
  88%  { filter: drop-shadow(-1px 0 0 #ff0055) drop-shadow(1px 0 0 #00eeff); transform: translateX(-1px); }
  100% { filter: none; transform: translate(0); }
}
.logo-link .logo-mark { display: none; }
.nav-wrap.scrolled .logo-link .logo-wordmark { display: none; }
.nav-wrap.scrolled .logo-link .logo-mark { display: block; }
.logo {
  font-size: 1.15rem; font-weight: 800; color: var(--text); letter-spacing: 0.3px;
}
.logo em { color: var(--blue); font-style: normal; }
.nav-menu {
  width: 44px; height: 44px;
  background: transparent;
  border: none;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 4px; cursor: pointer;
}
.nav-menu span { display: block; width: 14px; height: 1.5px; background: rgba(255,255,255,0.8); border-radius: 2px; }

/* ─── HERO ───────────────────────────────── */
.hero {
  background: var(--black);
  padding: 0;
  position: relative; overflow: hidden;
  min-height: 100svh;
  display: flex; flex-direction: column; justify-content: flex-end;
}
/* star burst decorations — pure CSS */
.hero-deco { display: none; }
.star-4    { display: none; }
.hero-blob { display: none; }

.nav-menu {
  width: 44px; height: 44px;
  background: transparent;
  border: none;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 5px; cursor: pointer;
}
.nav-icon-btn {
  width: 44px; height: 44px;
  background: #ffffff;
  border: none; border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.nav-menu span { display: block; background: var(--blue); border-radius: 3px; }
.nav-menu span:nth-child(1) { width: 16px; height: 2px; }
.nav-menu span:nth-child(2) { width: 10px; height: 2px; }
.nav-menu span:nth-child(3) { width: 13px; height: 2px; }

/* ─── MENU BUTTON: desktop text pill / scrolled icon ─── */
.menu-label { display: none; }
.menu-icon  { display: block; }
@media (min-width: 768px) {
  .nav-menu .menu-label { display: none; }
  .nav-menu .menu-icon  { display: block; }
  .nav-menu {
    width: 44px !important; height: 44px !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    flex-direction: column !important;
    gap: 5px !important;
  }
  .nav-menu svg rect { fill: #ffffff; }
  .nav-menu .menu-icon { width: 24px; height: auto; }
}

.hero h1    { max-width: 100%; }
.hero-sub   { max-width: 100%; }

.hero h1 {
  font-size: 42px;
  font-weight: 700; color: #ffffff;
  line-height: 1.08; letter-spacing: -1.5px;
  margin-bottom: 16px;
}
.hero h1 span { color: var(--blue); }
.hero-sub {
  font-size: var(--fs-body); font-weight: 400;
  color: #ffffff;
  line-height: 1.65; margin-bottom: 36px;
  max-width: 100%;
}
.hero-btns { display: flex; flex-direction: column; gap: 12px; margin-bottom: 36px; }
.hero-dots { display: flex; align-items: center; justify-content: center; gap: 6px; }
.dot { width: 20px; height: 7px; border-radius: 4px; background: rgba(255,255,255,0.18); transition: all var(--t); }
.dot.on { background: var(--blue); width: 28px; }

/* ─── BUTTONS ────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 48px; padding: 0 24px;
  border-radius: var(--r-pill);
  font-family: 'Inter', sans-serif;
  font-size: 14px; font-weight: 600;
  border: none; cursor: pointer;
  transition: transform var(--t), opacity var(--t), background var(--t);
  white-space: nowrap;
  width: 100%;
}
.btn:active { transform: scale(0.97); }
.btn-blue { background: var(--blue); color: #ffffff; }
.btn-blue:hover { background: #1e59ee; }
/* Buttons on a blue card — keep text legible in any colour scheme */
.card-blue .btn-on-blue-primary   { background: #ffffff !important; color: var(--blue) !important; border: none !important; }
.card-blue .btn-on-blue-primary:hover { background: rgba(255,255,255,0.9) !important; }
.card-blue .btn-on-blue-secondary { background: transparent !important; color: #ffffff !important; border: 2px solid rgba(255,255,255,0.55) !important; }
.card-blue .btn-on-blue-secondary:hover { background: rgba(255,255,255,0.12) !important; }
/* "Where Ai makes a difference" — content right, empty left half for a future visual */
.ai-diff-row { display: flex; flex-direction: column; }
.ai-diff-spacer { display: none; }
@media (min-width: 768px) {
  .ai-diff-row { flex-direction: row; align-items: center; gap: 48px; }
  .ai-diff-spacer { display: block; flex: 1; min-width: 0; align-self: stretch; }
  .ai-diff-body   { flex: 1; min-width: 0; }
}
.btn-outline-blue { background: transparent; color: var(--blue); border: 2px solid var(--blue); }
.btn-outline-blue:hover { background: var(--blue-lt); }
.cta .btn-outline-blue { color: var(--white); border-color: #ffffff; }
.cta .btn-outline-blue:hover { background: rgba(255,255,255,0.1); }
/* Standardised secondary button on all hero banners: transparent fill + white stroke */
.hero-btns .btn-outline-blue {
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
  background: transparent !important;
}
.hero-btns .btn-outline-blue:hover { background: rgba(255,255,255,0.12) !important; }
.btn-w { width: 100%; }

/* ─── PILL TAGS ──────────────────────────── */
.tag {
  display: inline-flex; align-items: center;
  height: 24px; padding: 0 10px;
  border-radius: var(--r-pill);
  font-size: 10px; font-weight: 600;
  letter-spacing: 0; text-transform: none;
  width: max-content; flex: none;
  line-height: 1;
}
/* Pulse the "in demand" chip to draw attention */
.tag-blue {
  position: relative;
  animation: tag-pulse 1.8s ease-in-out infinite;
}
@keyframes tag-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(230, 57, 70, 0.55); }
  50%      { box-shadow: 0 0 0 8px rgba(230, 57, 70, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .tag-blue { animation: none; }
}
.tag-blue  { background: #e63946; color: #ffffff; }
.tag-lt    { background: var(--blue-lt); color: var(--blue); }
.tag-ghost { border: 2px solid rgba(255,255,255,0.3); color: #ffffff; }
.tag-dark  { background: rgba(255,255,255,0.1); color: #ffffff; }

/* ─── SECTION WRAPPER ────────────────────── */
.sec { padding: var(--space-panel) var(--g) 0; }
.sec-top { padding-top: var(--gap); }
.sec-text-link { color: var(--blue); font-weight: 600; text-decoration: none; transition: color 0.15s; }
.sec-text-link:hover { text-decoration: underline; }

.card {
  background: var(--white);
  border-radius: var(--r-xl);
  box-shadow: var(--sh);
  overflow: hidden;
}
.card-black { background: var(--black); }
.card-blue  { background: var(--blue); }
.card-grey  { background: var(--surface-2); box-shadow: none; }
.card-lt    { background: var(--blue-lt); box-shadow: none; }

.p-card { padding: 22px 20px; }
.p-lg   { padding: 28px 22px; }

.sec-head { margin-bottom: var(--space-stack); }
.sec-head h2 {
  font-size: var(--fs-h3);
  font-weight: 600; color: var(--text);
  letter-spacing: -0.3px; line-height: 1.2;
}
.sec-head h2.white { color: var(--white); }
.sec-head p  { font-size: var(--fs-body); color: var(--text-2); margin-top: var(--space-title) !important; line-height: 1.65; }
.sec-head p.white { color: #ffffff; }
.centered    { text-align: center; }
.sec-cta     { text-align: center; margin-top: 20px; }

/* ─── TICKER ─────────────────────────────── */
.ticker-top { background: var(--black); padding: 12px 0; }
.ticker {
  height: 44px; padding: 0 var(--g);
  background: #1e1e1e;
  display: flex; align-items: center; gap: 8px;
  border-radius: 0;
}
.ticker span { font-size: 12px; color: rgba(255,255,255,0.55); flex: 1; }
.ticker a    { font-size: 12px; color: #7aa3ff; font-weight: 600; white-space: nowrap; } /* #7aa3ff: 6.4:1 on dark ticker */
.ticker-solo {
  background: var(--black);
  margin: 0 var(--g) var(--gap);
  height: 40px; padding: 0 14px;
  display: flex; align-items: center; gap: 8px;
  border-radius: var(--r-md);
}
.ticker-solo span { font-size: 11px; color: rgba(255,255,255,0.55); flex: 1; }
.ticker-solo a    { font-size: 11px; color: var(--blue); font-weight: 600; white-space: nowrap; }

/* ─── SERVICES ───────────────────────────── */
.svc-grid { display: flex; flex-direction: column; gap: 24px; }
.svc-trio { display: flex; flex-direction: column; gap: 16px; }

/* Service numbered rows */
.svc-row {
  display: grid;
  grid-template-columns: 48px 1fr 24px;
  align-items: start;
  padding: 24px 0;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
  position: relative;
  transition: background .15s;
}
.svc-row:hover .svc-row-num { color: var(--blue); }
.svc-row:hover .svc-row-name { color: var(--blue-dk); }
.svc-row:hover .svc-row-arrow { color: var(--blue); transform: translateX(4px); }
.svc-row-num {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-3);
  letter-spacing: .05em;
  padding-top: 5px;
  transition: color .15s;
  font-variant-numeric: tabular-nums;
}
.svc-row-body { min-width: 0; }
.svc-row-name {
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 700;
  letter-spacing: -.4px;
  line-height: 1.15;
  margin: 0 0 7px;
  color: var(--text);
  transition: color .15s;
}
.svc-row-desc {
  font-size: 14px;
  line-height: 1.65;
  color: var(--text-2);
  margin: 0;
  max-width: 540px;
}
.svc-row-arrow {
  font-size: 17px;
  color: var(--text-3);
  padding-top: 4px;
  transition: color .15s, transform .15s;
  justify-self: end;
}

/* Desktop-only line break in hero subtitles */
.desk-br { display: none; }

/* ── Subscription page: "What is a subscription?" two-column ── */
.sub-what-wrap { display: flex; flex-direction: column; gap: 24px; }
.sub-what-text { flex: 1; min-width: 0; }
.sub-what-img  { width: 100%; }
.sub-img-placeholder {
  width: 100%; aspect-ratio: 4/3; background: var(--surface);
  border-radius: 12px; border: 2px dashed var(--border);
  display: flex; align-items: center; justify-content: center;
  color: var(--text-3); font-size: 13px; font-weight: 500;
}
/* "What you get" two-column */
.sub-wyg-wrap { display: flex; flex-direction: column; gap: 28px; }
.sub-wyg-text { flex: 1; min-width: 0; }
.sub-wyg-img  { width: 100%; }
.sub-wyg-img-box {
  width: 100%; aspect-ratio: 3/4; background: rgba(255,255,255,0.15);
  border-radius: 12px; border: 2px dashed rgba(255,255,255,0.35);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.6); font-size: 13px; font-weight: 500;
}
/* Pricing cards — flex column on mobile, subgrid on desktop */
.pricing-card {
  display: flex; flex-direction: column; padding: 0; overflow: hidden;
}
.pricing-card-header {
  background: transparent; padding: 24px 28px 32px; flex-shrink: 0;
  border-bottom: 1px solid var(--border);
}
.pricing-badge-row { min-height: 28px; margin-bottom: 12px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pricing-card-header .t-micro { color: var(--text-3) !important; margin-bottom: 8px; }
.pricing-card-header h3 { color: var(--text) !important; margin-bottom: 10px; font-size: 22px; }
.pricing-card-header p { color: var(--text-2) !important; margin-bottom: 0; line-height: 1.6; font-size: 14px !important; }
/* Blue header variant — Gold only */
.pricing-header-blue { background: var(--blue) !important; border-bottom: none !important; }
.pricing-header-blue .t-micro { color: rgba(255,255,255,0.65) !important; }
.pricing-header-blue h3 { color: #fff !important; }
.pricing-header-blue p { color: #ffffff !important; font-size: 14px !important; }   /* 0.82 white was 3.57:1 on the blue; full white is 4.54:1 */
/* Featured card — blue ring */
.pricing-card-featured { box-shadow: 0 0 0 1px var(--blue), var(--sh) !important; }
.pricing-best-for { padding: 0 28px; }
.pricing-includes { padding: 0 28px 24px; }
.pricing-card-footer {
  margin-top: auto; padding: 24px 28px 24px;
  border-top: 1px solid var(--border);
  display: flex; flex-direction: column; align-items: stretch; gap: 16px;
}
.pricing-card-footer .btn { width: 100%; text-align: center; padding: 0; }
.pricing-footer-blue { background: var(--blue) !important; border-top: none !important; }
.btn-white { background: transparent !important; color: #fff !important; border: 2px solid rgba(255,255,255,0.7) !important; }
.btn-white:hover { background: rgba(255,255,255,0.12) !important; border-color: #fff !important; }
.pricing-section-head { padding-top: 16px; border-top: 1px solid var(--border); margin-top: 4px; margin-bottom: 8px; }
/* Remove top border from first section head in each body section */
.pricing-best-for .pricing-section-head { border-top: none; padding-top: 20px; }
.pricing-section-head {
  border-top: 1px solid var(--border);
  padding-top: 14px; margin-top: 4px; margin-bottom: 8px;
}
.svc {
  border-radius: var(--r-md); padding: 20px 18px;
  display: flex; flex-direction: column; gap: 6px;
  overflow: hidden;
}
.svc-white { background: var(--white); box-shadow: var(--sh); border-radius: 16px; }
.svc-black { background: var(--black); border-radius: 16px; }
.svc-blue  { background: var(--blue); border-radius: 16px; }
.svc-grey  { background: var(--surface-2); border-radius: 16px; }
.svc-num   { display: none; }
.svc h3    { font-size: 20px; font-weight: 700; line-height: 1.25; }
.about-pitch-text .sec-head h2 { font-size: 20px; font-weight: 700; }

/* About pitch split panels */
.about-pitch-stack { display: flex; flex-direction: column; gap: 48px; }
.about-pitch-panel {
  display: flex; border-radius: 20px; overflow: hidden;
  background: var(--surface); min-height: 360px;
}
.about-pitch-panel.img-right { flex-direction: row-reverse; }
.about-pitch-img { flex: 0 0 44%; background-size: cover; background-position: center; position: relative; }
.about-pitch-img::after { content: ''; position: absolute; inset: 0; background: rgba(8, 10, 22, 0.42); }
.about-pitch-text { flex: 1; padding: 40px 44px; display: flex; flex-direction: column; justify-content: center; gap: 14px; background: #ffffff; }
.about-pitch-text .sec-head h2 { color: #0f1117 !important; }
.card .sec-head h2,
.card h3 { font-size: 20px !important; font-weight: 700 !important; line-height: 1.25 !important; }
.about-pitch-text p { color: #4b5563 !important; }
.svc p     { font-size: 13px; line-height: 1.65; }
.svc-white h3, .svc-grey h3 { color: var(--text); }
.svc-black h3 { color: #ffffff; }
.svc-blue  h3 { color: #ffffff; }
.svc-white p, .svc-grey p { color: var(--text-2); }
.svc-black p { color: #ffffff; }
.svc-blue  p { color: #ffffff; }

/* ─── SUBSCRIPTION ───────────────────────── */
.sub {
  background: var(--black);
  border-radius: 16px;
  padding: 20px 20px 32px;
}
.sub-tags { display: flex; gap: 6px; margin-bottom: var(--space-title); }
.sub h2 {
  font-size: var(--fs-h2);
  font-weight: 500; color: #ffffff;
  letter-spacing: -0.5px; line-height: 1.15;
  margin-top: 100px; margin-bottom: var(--space-title);
}
.sub h2 span { color: var(--blue); }
.sub p { font-size: var(--fs-body); color: #ffffff; line-height: 1.7; margin-bottom: var(--space-stack); }
.sub-stat {
  display: flex; align-items: center; gap: 14px;
  background: #1e1e1e;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 16px;
  padding: 18px 16px;
  margin: 0 0 20px 0;
  width: 100%;
  box-sizing: border-box;
}
.sub-n {
  font-size: 2.8rem; font-weight: 900; color: #ffffff;
  line-height: 1; letter-spacing: -2px;
  flex-shrink: 0;
}
.sub-n sup { font-size: 1.2rem; }
.sub-info { flex: 1; min-width: 0; }
.sub-info strong { display: block; font-size: 14px; font-weight: 700; color: #ffffff; margin-bottom: 4px; }
.sub-info span   { font-size: var(--fs-body); color: #ffffff; line-height: 1.5; }
.sub-content { display: flex; flex-direction: column-reverse; gap: var(--space-stack); }
.sub-image { display: flex; align-items: center; justify-content: center; }
.sub-image svg { width: 100%; height: auto; max-height: 250px; }

/* ─── TRUSTED ────────────────────────────── */
.logo-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px; margin: 18px 0;
}
.logo-cell {
  background: var(--surface-2); border-radius: var(--r-md);
  height: 54px; display: flex; align-items: center; justify-content: center;
}
.b-boots  { font-family: Georgia, serif; font-size: 1.1rem; font-weight: 900; color: #1a2e6e; font-style: italic; }
.b-sains  { font-size: 0.85rem; font-weight: 700; color: #f06c00; }
.b-bt     { width: 34px; height: 34px; border-radius: 50%; border: 2px solid #6b21a8; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 900; color: #6b21a8; }
.b-indeed { font-size: 0.9rem; font-weight: 700; color: #2164f3; }

/* ─── PRODUCTS ───────────────────────────── */
.prod-main {
  background: var(--black);
  border-radius: var(--r-md); height: 300px;
  position: relative; overflow: hidden; margin-bottom: var(--gap);
  display: flex; align-items: flex-end;
}
.prod-grad { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.1) 55%); }
.prod-label { position: relative; z-index: 2; padding: 16px; width: 100%; }
.prod-label h3 { font-size: 13px; font-weight: 700; color: #ffffff; margin-bottom: 2px; }
.prod-label p  { font-size: 11px; color: rgba(255,255,255,1); }
.prod-row   { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-bottom: 14px; }
.prod-thumb {
  height: 200px; border-radius: var(--r-md); overflow: hidden;
  background: var(--surface-2); display: flex; align-items: center; justify-content: center;
}
.prod-dots { display: flex; align-items: center; justify-content: center; gap: 5px; margin-bottom: 14px; }
.p-dot { width: 18px; height: 6px; border-radius: 3px; background: #d0d0d5; }
.p-dot.on { background: var(--blue); }

/* ─── STATS ──────────────────────────────── */
.stats-grid { display: flex; flex-direction: column; gap: var(--gap); margin-top: 18px; }
.stat {
  display: flex; flex-direction: column;
  border-radius: var(--r-md); padding: 32px;
}
.stat-dark { background: var(--black); }
.stat-blue { background: var(--blue); }
.stat-grey { background: var(--surface-2); }
.stat-lt   { background: var(--surface-1); box-shadow: var(--sh); }
.stat-num {
  font-size: 3rem; font-weight: 700;
  line-height: 1; letter-spacing: -1px;
  white-space: nowrap; margin-bottom: 10px;
}
.stat-dark .stat-num, .stat-blue .stat-num { color: #ffffff; }
.results-stats-grid .stat-num { color: var(--blue); }
.stat-grey .stat-num { color: var(--text); }
.stat-lt   .stat-num { color: #209810; font-weight: 900; }
.stat-u { font-size: 0.5em; vertical-align: super; }
.stat-a { font-size: 0.45em; margin-left: 1px; vertical-align: super; }
.stat-lbl  { font-size: 24px; font-weight: 500; letter-spacing: -0.3px; margin-bottom: var(--space-title); line-height: 1.2; }
.stat-dark .stat-lbl { color: #ffffff; }
.stat-blue .stat-lbl { color: #ffffff; }
.stat-grey .stat-lbl { color: var(--text); }
.stat-lt   .stat-lbl { color: var(--text); }
.stat-desc { font-size: var(--fs-body); line-height: 1.6; }
.stat-dark .stat-desc { color: rgba(255,255,255,1); }
.stat-blue .stat-desc { color: rgba(255,255,255,1); }
.stat-grey .stat-desc { color: var(--text-2); }
.stat-lt   .stat-desc { color: var(--text-2); }

.results-stats-grid .stat-lbl { font-size: 20px !important; font-weight: 700 !important; color: var(--text) !important; }

/* ─── UAE ────────────────────────────────── */
.uae-feature {
  background: var(--black); border-radius: var(--r-md);
  padding: 20px; margin-bottom: var(--gap);
  display: flex; flex-direction: column; justify-content: space-between;
  overflow: hidden; min-height: 320px;
}
.uae-feature-spacer { flex: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.uae-feature h3 { font-size: 24px; color: #ffffff; margin-bottom: 8px; font-weight: 500; }
.uae-feature h3 span { color: var(--blue); }
.uae-feature p  { font-size: 13px; color: #ffffff; line-height: 1.65; }
.uae-imgs { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-bottom: var(--gap); }
.uae-ph {
  background: var(--surface-2); border-radius: var(--r-md);
  height: 250px; display: flex; align-items: center; justify-content: center;
}
.uae-ph svg { opacity: 0.25; }
.uae-ph-wide { grid-column: span 2; height: 250px; }
.uae-quote {
  background: var(--blue); border-radius: var(--r-md);
  padding: 18px 20px; margin-bottom: 18px;
}
.uae-quote blockquote { font-size: 19px; font-style: italic; color: #ffffff; line-height: 1.55; margin-bottom: 12px; }
.uae-quote cite { font-size: 14px; color: #ffffff; font-style: normal; font-weight: 500; }

/* ─── Ai ─────────────────────────────────── */
.ai-hero-split { display: flex; flex-direction: column; gap: 24px; margin-bottom: 28px; }
.ai-hero-text { display: flex; flex-direction: column; }
.ai-hero-image { border-radius: var(--r-md); overflow: hidden; min-height: 280px; }
.ai-tag {
  display: inline-flex; align-items: center; gap: 5px;
  background: rgba(47,106,255,0.12); border: 1px solid rgba(47,106,255,0.25);
  border-radius: var(--r-pill); padding: 4px 11px;
  font-size: 10px; color: var(--blue); font-weight: 700; letter-spacing: 0.3px;
  margin-bottom: 14px;
}
.ai-h3 { font-size: var(--fs-meta); font-weight: 500; color: var(--blue); margin-bottom: 8px; letter-spacing: 0.5px; }
.ai-h2 { font-size: var(--fs-h3); font-weight: 600; color: var(--text); line-height: 1.25; margin-bottom: 12px; letter-spacing: -0.3px; }
.ai-h2 span { color: #e63946; }
.ai-p  { font-size: var(--fs-body); color: var(--text-2); line-height: 1.7; margin-bottom: 20px; }

/* Full-screen banner copy widths — 50% on desktop, full on mobile.
   Subscription panel: title/copy/stat take 50% (space reserved for a future
   right-side image); prop bar, chips and button stay full/auto width. */
@media (min-width: 768px) {
  .sub h2, .sub-text p, .sub-stat { max-width: 50%; }
}

/* ─── TESTIMONIALS ───────────────────────── */
.testi-list { display: flex; flex-direction: column; gap: var(--gap); margin: 16px 0 14px; }
.testi {
  background: transparent; border-radius: 0;
  padding: 18px; box-shadow: none;
}
.stars { color: #fbbf24; font-size: 12px; margin-bottom: 10px; }
.testi-body { font-size: 18px; font-style: italic; color: var(--text); line-height: 1.55; margin-bottom: 12px; }
.testi-auth { font-size: 11px; font-weight: 500; color: var(--text-3); }
.testi-dots { display: flex; align-items: center; justify-content: center; gap: 5px; margin-bottom: 14px; }
.t-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
.t-dot.on { background: var(--blue); }
/* Svc testimonial carousel structure */
.svc-testi-outer { overflow: hidden; }
.svc-testi-track { display: flex; width: 300%; transition: transform 0.45s cubic-bezier(0.25,0.1,0.25,1); }
.svc-testi-slide { width: 33.333%; box-sizing: border-box; padding: 0 4px; }
.svc-testi-card { padding-left: 24px !important; padding-right: 24px !important; }

/* Testimonials page: full-width list with grey separators + left-aligned bold author */
#page-testimonials .testi-list { gap: 0; }
#page-testimonials .testi { padding: 28px 0; }
#page-testimonials .testi-list .testi:not(:last-child) { border-bottom: 1px solid var(--border); }
#page-testimonials .testi-body { font-size: 14px; }
#page-testimonials .testi-auth { font-size: 14px; font-weight: 700; text-align: left; color: var(--text) !important; margin-top: 6px; }

/* ─── LEARNINGS ──────────────────────────── */
.learn-list { display: flex; flex-direction: column; gap: var(--gap); margin: 16px 0 14px; }
.learn-item {
  background: var(--white); border-radius: var(--r-md);
  overflow: hidden; box-shadow: var(--sh);
}
.learn-img {
  height: 200px; background: var(--surface-2);
  display: flex; align-items: center; justify-content: center;
}
.learn-img svg { opacity: 0.2; }
.learn-body { padding: 14px 16px; }
.learn-body h4 { font-size: 24px; font-weight: 500; color: var(--text); margin-bottom: 6px; }
.learn-body p  { font-size: var(--fs-body); color: var(--text-2); line-height: 1.6; margin-bottom: 10px; }
.learn-body .read-more { font-size: 14px; color: var(--blue); font-weight: 600; display: inline-block; }

/* ── UPDATE 4: scrolled nav buttons → blue bg + white icons ── */
.nav-wrap.scrolled .nav-icon-btn {
  background: var(--blue) !important;
  border: none !important;
  box-shadow: none !important;
}
.nav-wrap.scrolled .nav-icon-btn svg rect,
.nav-wrap.scrolled .nav-icon-btn svg path { fill: #ffffff !important; }
.nav-wrap.scrolled .nav-menu {
  background: transparent !important;
  border: none !important;
}
.nav-wrap.scrolled .nav-menu svg circle, .nav-wrap.scrolled .nav-menu svg rect { fill: #ffffff !important; }
.nav-wrap.scrolled .nav-menu span { background: #ffffff !important; }

/* ── UPDATE 5: nav-icon-btn desktop (non-scrolled) = white secondary style ── */
@media (min-width: 768px) {
  .nav-icon-btn {
    background: #1e1e1e !important;
    border: 2px solid #ffffff !important;
    box-shadow: none !important;
    width: 48px !important;
    height: 48px !important;
  }
  .nav-icon-btn svg rect,
  .nav-icon-btn svg path { fill: #ffffff !important; }
}

/* ── Mobile: burger bars white on dark/video heros ── */
@media (max-width: 767px) {
  .nav-menu svg rect, .nav-menu svg path { fill: #ffffff !important; }
  .nav-menu span { background: #ffffff !important; }
}

/* ─── DARK MODE TOGGLE ───────────────────── */
.dm-toggle-wrap { display: flex; align-items: center; justify-content: flex-start; gap: 16px; padding: 18px 16px; margin-top: 8px; }
.dm-toggle-label { font-size: 14px; font-weight: 400; color: #767676; }
html.dark .dm-toggle-label { color: #ffffff; }
/* iOS-style toggle */
.dm-ios-toggle {
  width: 51px; height: 31px;
  border-radius: 999px;
  background: #E5E5EA;
  border: none; cursor: pointer;
  position: relative;
  transition: background 0.25s;
  padding: 0; flex-shrink: 0;
}
.dm-ios-toggle.active { background: #2f6aff; }
html.dark .dm-ios-toggle { background: #3a3a3c; }
html.dark .dm-ios-toggle.active { background: #2f6aff; }
.dm-ios-thumb {
  position: absolute;
  top: 2px; left: 2px;
  width: 27px; height: 27px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.25);
  transition: transform 0.25s cubic-bezier(0.32,0.72,0,1);
  pointer-events: none;
}
.dm-ios-toggle.active .dm-ios-thumb { transform: translateX(20px); }
.cta {
  background: var(--blue); border-radius: var(--r-xl);
  padding: 40px 22px; text-align: center;
  position: relative; overflow: hidden;
}
.cta-ring { display: none; }
.cta-ring2 { display: none; }
.cta h2 { font-size: var(--fs-h3); font-weight: 600; color: #ffffff; margin-bottom: 10px; letter-spacing: -0.3px; position: relative; }
.cta p  { font-size: var(--fs-body); color: #ffffff; margin-bottom: 24px; position: relative; max-width: 540px; margin-left: auto; margin-right: auto; } /* full white: 4.54:1 on --blue */
.cta-btns { display: flex; flex-direction: column; gap: 10px; position: relative; }
.cta .btn-blue { background: #ffffff; color: var(--blue); }
.cta .btn-blue:hover { background: rgba(255,255,255,0.9); }
.cta .btn-outline-blue { color: #ffffff; border-color: rgba(255,255,255,0.8); } /* 0.8 opacity: 3.5:1 UI contrast on --blue */
.cta .btn-outline-blue:hover { background: rgba(255,255,255,0.12); }
/* CTA section bottom spacing before footer */
.sec:has(.cta) { padding-bottom: 48px; }

/* ─── FOOTER ─────────────────────────────── */
.footer-wrap { padding: 0; }
.footer {
  background: var(--black); border-radius: 0;
  padding: 30px 16px 24px;
}
.f-logo {
  font-size: 1.6rem; font-weight: 700; color: var(--white);
  letter-spacing: 0.3px; text-align: center; margin-bottom: 22px;
  display: flex; justify-content: center;
}
.f-logo em { color: var(--blue); font-style: normal; }
.f-logo img { width: 144px; height: auto; display: block; transform-origin: center bottom; }
.f-logo:hover img { animation: logo-glitch 0.42s steps(1) both; }
.f-hr { border: none; border-top: 1px solid rgba(255,255,255,0.07); margin-bottom: 22px; }
.f-cols { display: flex; flex-direction: column; gap: 20px; margin-bottom: 22px; }
.f-col h4 { font-size: 14px; font-weight: 700; letter-spacing: 1px; color: rgba(255,255,255,0.55); margin-bottom: 10px; }
.f-col p  { font-size: 14px; color: #ffffff; line-height: 1.65; }
.f-col a:not(.btn)  { display: block; font-size: 14px; color: #ffffff; margin-bottom: 8px; transition: color var(--t); }
.f-col a:hover { color: var(--blue); }
.f-phone { font-size: 14px; font-weight: 600; color: #ffffff; margin-bottom: 12px; }
.f-pay-icons { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.f-pay-ico { width: 25px; height: 16px; border-radius: 3px; opacity: 0.85; transition: opacity 0.15s; flex-shrink: 0; overflow: hidden; }
.f-pay-ico:hover { opacity: 1; }
.f-pay-ico-wide { width: 32px; }
.f-socials { display: flex; justify-content: center; gap: 8px; margin-bottom: 18px; }
.soc {
  width: 38px; height: 38px; border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.2);
  display: flex; align-items: center; justify-content: center;
  transition: border-color var(--t);
}
.soc:hover { border-color: rgba(255,255,255,0.5); }
.soc svg { width: 16px; height: 16px; stroke: #ffffff; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.f-copy { text-align: center; font-size: 12px; color: #ffffff; padding: 20px 0; }
.f-heart { color: var(--blue); }
.f-btt {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; padding: 14px 0; font-size: 12px; font-weight: 600;
  color: #fff; background: none; border: none;
  border-top: 1px solid rgba(255,255,255,0.07);
  cursor: pointer; letter-spacing: 0.04em; text-transform: uppercase;
  transition: color 0.15s; font-family: inherit;
}
.f-btt:hover { color: var(--blue); }
/* ── Footer accordion (mobile only) ────── */
.f-acc-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 0; cursor: pointer; user-select: none;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.f-acc-head h4 { margin: 0; }
.f-acc-icon { color: rgba(255,255,255,0.4); font-size: 20px; line-height: 1; font-weight: 300; flex-shrink: 0; }
.f-acc-body { display: none; flex-direction: column; padding: 10px 0 4px; }
.f-acc-body.is-open { display: flex; }
.f-acc-body a:not(.btn) { display: block; font-size: 14px; color: #ffffff; margin-bottom: 8px; transition: opacity 0.2s; }
.f-acc-body a:hover { color: var(--blue); }

/* FAQ details/summary accordion */
summary::marker,
summary::-webkit-details-marker { color: var(--text-2); }
details > summary { font-weight: 400 !important; }
details[open] > summary { color: var(--blue) !important; }

@media (min-width: 768px) {
  .f-acc-head { border: none; padding: 0 0 10px; cursor: default; pointer-events: none; }
  .f-acc-icon { display: none; }
  .f-acc-body { display: flex !important; padding: 0; }
}


/* Footer Ship smarter button — white stroke */
.btn-outline-w {
  background: transparent; color: #ffffff;
  border: 2px solid rgba(255,255,255,0.4);
}
.btn-outline-w:hover { background: rgba(255,255,255,0.1); }
.team-panel-content { padding-left: 28px !important; padding-right: 28px !important; }
.stat { padding-left: 28px; padding-right: 28px; }
.stat-desc { font-size: 14px; }
.sub-promo-content { padding-left: 24px !important; padding-right: 24px !important; }
.sub-promo-desc { font-size: 14px !important; color: #ffffff !important; }
.sub-stat-title { color: #ffffff !important; }
.sub-stat-desc { color: #ffffff !important; }
.team-panel-content p { color: #ffffff !important; }
.sub-stat-rotate { flex-direction: column !important; align-items: flex-start !important; min-height: auto !important; }
.sub-stat-num { width: auto !important; }
.sub-promo-cta { width: 100% !important; justify-content: space-between !important; padding-left: 24px !important; padding-right: 6px !important; }
.svc-pair { display: flex; flex-direction: row; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; }
.svc-pair::-webkit-scrollbar { display: none; }
.svc-pair .card.p-card { flex: 0 0 78vw; scroll-snap-align: start; }
.svc-pair a.t-meta { color: var(--blue) !important; }
.sub-fit-dots { display: none; }
.wwu-dots { display: none; }
.wmd-dots { display: none; }
.team-dots { display: none; }
.wwb-dots { display: none; }
.hww-dots { display: none; }
.exp-process-dots { display: none; }
.wcg-dots { display: none; }
.sd-dots { display: none; }
.sd-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
.sd-dot.on { background: var(--blue); }
.exp-process-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.wwb-icon-chip { width:48px;height:48px;background:#EAF1FF;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--blue);margin-bottom:16px;flex-shrink:0; }
.wwb-grid .card { display:flex;flex-direction:column;justify-content:flex-end;min-height:260px; }
.hww-card { overflow:hidden;padding:0;display:flex;flex-direction:column; }
.hww-thumb { height:175px;overflow:hidden;flex-shrink:0; }
.hww-thumb img { width:100%;height:100%;object-fit:cover;display:block; }
.hww-body { padding:20px;flex:1; }
.sub-testi-dots { display: none; }
.ai-speed-dots { display: none; }
.ai-flow-dots { display: none; }
.ai-value-dots { display: none; }
.mob-br { display: none; }
.svc-dots { display: flex; justify-content: center; gap: 7px; margin-top: 16px; }
.svc-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(0,0,0,0.18); border: none; padding: 0; cursor: pointer; transition: background 0.2s, transform 0.2s; flex-shrink: 0; }
.svc-dot.active { background: var(--blue); transform: scale(1.35); }

/* ── SERVICE SHOWCASE PANELS ─────────────────────────────────────── */
.svc-feat-panels { display: flex; flex-direction: column; gap: 32px; }
.svc-feat-panel { display: grid; grid-template-columns: 1fr 1fr; border-radius: 20px; overflow: hidden; height: 460px; }
.svc-feat-panel.flip .svc-feat-img { order: 2; }
.svc-feat-panel.flip .svc-feat-content { order: 1; }
.svc-feat-img { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.svc-feat-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc-feat-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.2) 55%, rgba(0,0,0,0.04) 100%); pointer-events: none; }
.svc-img-ph { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 100%; min-height: 320px; }
.svc-img-ph span { font-size: 12px; color: rgba(0,0,0,0.3); font-weight: 500; letter-spacing: 0.5px; }
.svc-feat-content { padding: 48px 44px; display: flex; flex-direction: column; justify-content: center; background: var(--surface-1); }
.svc-feat-cat { font-size: 11px; font-weight: 700; color: var(--blue); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 12px; }
.svc-feat-title { font-size: clamp(22px,2.2vw,30px); font-weight: 700; color: var(--text); letter-spacing: -0.5px; line-height: 1.2; margin-bottom: 14px; }
.svc-feat-desc { color: var(--text-2); line-height: 1.7; font-size: 14px; margin-bottom: 24px; }
.svc-feat-subs { display: flex; flex-direction: column; }
.svc-feat-sub { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-top: 1px solid var(--border); text-decoration: none; color: var(--blue); font-size: 14px; font-weight: 500; transition: color 0.15s; }
.svc-feat-sub:hover { color: var(--blue-dk, #1a52e0); }
.svc-feat-sub-icon { flex-shrink: 0; color: var(--blue); }
.svc-feat-sub:hover .svc-feat-sub-icon { color: var(--blue-dk, #1a52e0); }
.svc-feat-arrow { margin-left: auto; flex-shrink: 0; color: var(--blue); transition: color 0.15s; }
.svc-feat-sub:hover .svc-feat-arrow { color: var(--blue-dk, #1a52e0); }

/* ─── DESKTOP ────────────────────────────── */
@media (min-width: 768px) {
  /* Wordmark full size on desktop (mobile is 25% smaller) */
  .logo-link .logo-wordmark { height: 52px; }
  :root {
    --g: max(80px, calc((100vw - 1200px) / 2)); --gap: 12px;
    /* Typography — desktop overrides */
    --fs-h1: 56px;
    --fs-h2: 36px;
    --fs-h3: 28px;
    --fs-h4: 20px;
    --fs-h5: 18px;
    --fs-body-lg: 18px;
    --fs-body: 14px;
    --fs-meta: 14px;
    --fs-micro: 12px;
  }

  /* 32px breathing room between announce bar and nav on desktop.
     Applied as padding-top on .nav-wrap so the gap stays on the dark background. */
  .nav-wrap { padding-top: 32px; }

  /* Hero copy widths — titles 75%, supporting copy 50% on desktop.
     text-wrap: balance distributes title words across lines (no orphans). */
  .hero h1,
  .coming-hero h1,
  .legal-hero h1 { max-width: 75%; text-wrap: balance; }
  br.mob-only { display: none; }
  .hero-sub,
  .coming-hero p,
  .legal-hero p { max-width: 50%; text-wrap: balance; }

  /* 1 & 2. Hero — 650px, dots centred */
  .hero {
    min-height: 650px;
    display: flex;
    flex-direction: column;
    padding: 0;
  }
  .hero-track { flex: 1; }
  .hero-slide {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    padding: 48px var(--g) 0 !important;
    height: 100% !important;
  }
  /* 48px gap between nav (logo) and the hero graphic */
  .hero-slide .hero-shapes,
  .hero-slide > [aria-hidden="true"],
  .hero > [aria-hidden="true"] { margin-bottom: auto !important; }
  /* Shrink the hero graphic so the carousel dots clear the buttons row */
  .hero-slide .hero-shapes svg,
  .hero-slide > [aria-hidden="true"] svg,
  .hero > [aria-hidden="true"] svg { max-height: 140px; width: auto !important; }
  .hero-btns {
    flex-direction: row;
    gap: 16px;
    margin-bottom: 48px;
  }
  #heroDots {
    padding: 0 48px 40px !important;
    justify-content: center !important;
    flex-shrink: 0;
  }

  /* 1. Hero title 48px on desktop */
  .hero h1 { font-size: 56px; letter-spacing: -3px; }
  .cs-detail-hero-content h1 { font-size: 56px; }


  /* Subscription panel — copy left, illustration right */
  .sub { padding: 32px 32px 40px; }
  .sub-content { flex-direction: row; align-items: center; gap: var(--space-panel); }
  .sub-text, .sub-image { flex: 1; min-width: 0; }
  .sub-image svg { max-height: 360px; }

  /* Ai steps — 3 col on desktop */
  .ai-steps { flex-direction: row !important; }
  .ai-hero-split { flex-direction: row; align-items: stretch; gap: 48px; }
  .ai-hero-text { flex: 1; justify-content: center; }
  .ai-hero-image { flex: 1; min-height: 360px; }

  /* Service card pairs — original 2-col grid (homepage, why-us, parent service pages) */
  .svc-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
  .svc-pair .card.p-card { flex: unset; }
  .svc-dots { display: none; }
  .team-panel-content { padding-left: 40px !important; padding-right: 40px !important; }
  .stat { padding-left: 32px; padding-right: 32px; }
  .stat-desc { font-size: var(--fs-body); }
  .sub-promo-content { padding-left: 44px !important; padding-right: 44px !important; }
  .sub-stat-rotate { flex-direction: row !important; align-items: center !important; min-height: 96px !important; }
  .sub-stat-num { width: 148px !important; }
  .sub-promo-cta { width: auto !important; justify-content: flex-start !important; padding-left: 24px !important; padding-right: 6px !important; }

  .svc-feat-panel { grid-template-rows: unset; }
  .svc-feat-img { height: auto !important; max-height: none !important; min-height: 240px; }

  /* Svc testimonials: revert to 3-col grid on desktop */
  .svc-testi-outer { overflow: visible; }
  .svc-testi-track { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; width: auto; transform: none !important; transition: none; }
  .svc-testi-slide { width: auto; padding: 0; }
  #svcTestiDots { display: none; }

  /* Sub-service detail pages — stacked, image placeholder left */
  /* Scoped to sub-service pages only via .svc-detail */
  .svc-detail .svc-pair { display: flex; flex-direction: column; gap: 32px; }
  .svc-detail .svc-pair .card.p-card { position: relative; padding: 40px 44px 40px calc(50% + 40px); min-height: 300px; display: flex; flex-direction: column; justify-content: center; }
  .svc-detail .svc-pair .card.p-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 50%; background: #EEF2FF; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='rgba(47%2C106%2C255%2C0.2)' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpolyline points='21 15 16 10 5 21'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; }
  /* Reset dark/blue cards to white style inside detail pages */
  .svc-detail .svc-pair .card.card-black,
  .svc-detail .svc-pair .card.card-blue { background: var(--surface-1) !important; }
  /* White SVG check icons become invisible on white bg — force blue-lt style */
  .svc-detail .svc-pair .card.p-card li > svg > circle { fill: var(--blue-lt) !important; }
  .svc-detail .svc-pair .card.p-card li > svg > path  { stroke: var(--blue) !important; }
  .svc-detail .svc-pair .card.card-black h2, .svc-detail .svc-pair .card.card-black h3,
  .svc-detail .svc-pair .card.card-blue  h2, .svc-detail .svc-pair .card.card-blue  h3 { color: var(--text) !important; }
  .svc-detail .svc-pair .card.card-black p,  .svc-detail .svc-pair .card.card-black li,
  .svc-detail .svc-pair .card.card-blue  p,  .svc-detail .svc-pair .card.card-blue  li  { color: var(--text-2) !important; }
  .svc-detail .svc-pair .card.card-black span, .svc-detail .svc-pair .card.card-blue span { color: var(--text-2) !important; }
  .svc-detail .svc-pair .card.card-black li > span:first-child,
  .svc-detail .svc-pair .card.card-blue  li > span:first-child { color: var(--blue) !important; }
  .svc-detail .svc-pair .card.card-black.p-card::before,
  .svc-detail .svc-pair .card.card-blue.p-card::before { background-color: #EEF2FF; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='rgba(47%2C106%2C255%2C0.2)' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpolyline points='21 15 16 10 5 21'/%3E%3C/svg%3E"); }
  .svc-detail .svc-pair .card.p-card:nth-child(even) { padding: 40px calc(50% + 40px) 40px 44px; }
  .svc-detail .svc-pair .card.p-card:nth-child(even)::before { left: auto; right: 0; }
  .svc-detail .svc-pair .card.p-card[style*="--card-img"]::before { background-image: linear-gradient(rgba(0,0,0,0.30),rgba(0,0,0,0.30)), var(--card-img); background-size: cover; background-position: center; }
  /* ── "What is…" intro panels: centred section-level layout on page background ── */
  .svc-detail .svc-pair .card.p-card.what-is { padding: 12px 4px 36px !important; background: transparent !important; box-shadow: none !important; border-radius: 0 !important; border: none !important; min-height: auto !important; text-align: center; align-items: center; }
  .svc-detail .svc-pair .card.p-card.what-is::before { display: none !important; }
  .svc-detail .svc-pair .card.p-card.what-is .sec-head { margin-bottom: 0 !important; }
  .svc-detail .svc-pair .card.p-card.what-is .what-is-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; }
  .svc-detail .svc-pair .card.p-card.what-is .sec-head h2 { font-size: clamp(26px,3.5vw,40px); font-weight: 800; color: var(--text); margin-bottom: 6px; line-height: 1.15; }
  .svc-detail .svc-pair .card.p-card.what-is p { color: var(--text-2) !important; max-width: 680px; margin: 0 auto !important; font-size: 17px; line-height: 1.5; }
  .svc-detail .svc-pair .card.p-card.what-is p + p { display: none !important; }
  /* Services hero button — auto width */
  .svc-hero-btn { width: auto !important; align-self: flex-start; }
  /* Stats grid — 3 col on desktop */
  .svc-stats-grid { grid-template-columns: 1fr 1fr 1fr !important; }
  /* CTA buttons — auto width on desktop */
  .svc-cta-btn { width: auto !important; }

  /* Buttons hug content */
  .btn-w { width: auto; }
  .sec-cta { text-align: center !important; }
  .sec-cta .btn { width: auto; }
  .cta-btns { flex-direction: row; justify-content: center; }

  /* 2. Digital design offerings black + one line */
  .svc-section-head h2 { color: var(--black) !important; white-space: nowrap; }
  .svc-section-head p  { color: var(--black) !important; white-space: nowrap; }

  /* 4 col service cards */
  .svc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); }

  /* 3 col layout (pricing tiers) */
  .svc-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
  .sub-testi-trio { overflow-x: visible; scroll-snap-type: none; }
  .sub-testi-trio .card.p-card { flex: unset !important; }
  .ai-speed-grid { display: grid !important; flex-direction: unset !important; overflow-x: visible !important; scroll-snap-type: none; }
  .ai-speed-grid .card.p-card { flex: unset !important; }
  #aiValueGrid .card.p-card { flex: unset !important; }

  /* Subscription two-column layouts */
  .sub-what-wrap { flex-direction: row; align-items: flex-start; }
  .sub-what-img  { width: 50%; flex-shrink: 0; }
  .desk-br { display: block; }
  .sub-wyg-wrap  { flex-direction: row; align-items: stretch; }
  .sub-wyg-img   { width: 35%; flex-shrink: 0; display: flex; }

  /* Pricing card list items stay at 14px on desktop */
  .pricing-card li { font-size: 14px; }
  .benefits-grid { grid-template-columns: repeat(4, 1fr) !important; }

  /* Pricing trio — 4-row subgrid: header | best-for | includes | footer */
  .svc-trio.pricing-trio { align-items: start; gap: 12px; }
  .pricing-card {
    grid-row: span 4;
    display: grid;
    grid-template-rows: subgrid;
    row-gap: 0;
    padding: 0;
  }
  .pricing-card-footer { margin-top: 0; padding: 24px 28px 24px; }
  .pricing-card-featured { transform: scale(1.04); z-index: 2; }

  /* Immersive products one line */
  .products-head h2 { white-space: nowrap; }

  /* Stats grid */
  .stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
  .stat { flex-direction: column; align-items: flex-start; gap: 8px; }

  /* 4. UAE feature bottom-align text handled in base CSS */
  /* UAE bento — 50% shorter */
  .uae-bento {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--gap);
    margin-top: 24px;
  }
  .uae-bento .uae-feature { grid-column: 1; grid-row: 1 / 3; min-height: 0; }
  .uae-feature-spacer { height: 80px !important; }
  .uae-bento .uae-imgs {
    grid-column: 2; grid-row: 1;
    margin-bottom: 0;
    grid-template-columns: 1fr 1fr;
  }
  .uae-bento .uae-imgs .uae-ph { height: 120px; }
  .uae-bento .uae-quote { grid-column: 2; grid-row: 2; }
  .uae-bento .uae-quote > div { height: 40px !important; }
  .uae-h2 br { display: none; }
  .uae-h2, .uae-p { white-space: nowrap; }

  /* 5. Testimonials — 1 per slide on desktop, centered with breathing room either side */
  .testi-slide .testi { margin: 0 auto; max-width: 720px; height: 100%; display: flex; flex-direction: column; justify-content: center; text-align: center; padding: 40px 24px; }
  .testi-body { flex: none; }
  .testi-auth { text-align: center; margin-top: 16px; }

  /* Dot colours */
  .t-dot { background: #c8c9ce; }
  .t-dot.on { background: var(--blue); }
  .p-dot { background: #c8c9ce; }
  .p-dot.on { background: var(--blue); }

  /* Learnings / footer */
  .learn-list { display: grid; grid-template-columns: repeat(3, 1fr); }
  .f-cols { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 6%; align-items: start; }
  .f-cols .f-col { flex: none; max-width: none; }

  /* 7. CTA heading one line */
  .cta-h2 br { display: none; }

  /* 8. CTA sub copy 16px */
  .cta p { font-size: 16px !important; }

  /* Footer — restore inset + rounded corners on desktop */
  .footer-wrap { padding: 0; }
  .footer { border-radius: 0; padding-left: var(--g); padding-right: var(--g); }

  /* 4. Footer button smaller + secondary */
  .footer-cta-btn {
    height: 36px !important;
    padding: 0 16px !important;
    font-size: 12px !important;
    color: rgba(255,255,255,0.8) !important;
    border-color: rgba(255,255,255,0.35) !important;
  }

  /* Generic p/li scale via token */
  p, li,
  .what-copy p, .process-body p,
  .sec > p, .p-card > p, .card > p, .p-card p,
  .card p:not(.f-col p):not(.f-copy):not(.legal-meta),
  .svc-tag, .label { font-size: var(--fs-body); }
  /* Static keepers: testi-body intentionally larger italic quote */
  .testi-body { font-size: 18px; }
}


.announce, .hero-wrap, .hero { opacity: 1 !important; transform: none !important; }
.hero-back {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--fs-meta); font-weight: 600;
  color: rgba(255,255,255,0.55); text-decoration: none;
  margin-bottom: 24px; transition: color 0.15s;
  cursor: pointer;
}
.hero-back:hover { color: rgba(255,255,255,0.9); }
.nav-wrap { opacity: 1 !important; }
/* ── SCROLL ANIMATIONS ────────────────── */
.sec, .footer-wrap {
  opacity: 1;
  transform: none;
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.sec.in-view, .footer-wrap.in-view {
  opacity: 1;
  transform: translateY(0);
}
/* Stagger child cards inside each sec */
.sec.in-view .card       { transition-delay: 0.05s; }
.sec.in-view .svc        { transition-delay: calc(var(--i, 0) * 0.08s); }
/* Scroll reveal: panels slide up + fade in as they scroll into view.
   Scoped per-page so the specificity beats the site-wide .sec.in-view rule. */
@media (prefers-reduced-motion: no-preference) {
  body[data-active-page="home"] .hp-reveal,
  body[data-active-page="services"] .hp-reveal,
  body[data-active-page="subscription"] .hp-reveal,
  body[data-active-page="ai-enabled"] .hp-reveal,
  body[data-active-page="why-us"] .hp-reveal,
  body[data-active-page="about"] .hp-reveal,
  body[data-active-page="cs-sainsburys"] .hp-reveal {
    opacity: 0; transform: translateY(40px);
    transition: opacity 0.65s ease, transform 0.75s cubic-bezier(0.22,0.61,0.36,1);
  }
  body[data-active-page="home"] .hp-reveal.hp-in,
  body[data-active-page="services"] .hp-reveal.hp-in,
  body[data-active-page="subscription"] .hp-reveal.hp-in,
  body[data-active-page="ai-enabled"] .hp-reveal.hp-in,
  body[data-active-page="why-us"] .hp-reveal.hp-in,
  body[data-active-page="about"] .hp-reveal.hp-in,
  body[data-active-page="cs-sainsburys"] .hp-reveal.hp-in { opacity: 1; transform: none; }
}

/* ── LEARNING LAB — article layouts ───────────────────────────────── */
.lab-option-bar {
  display: flex; gap: 10px; justify-content: center; flex-wrap: wrap;
  padding: 28px var(--g) 0;
}
.lab-opt-btn {
  padding: 8px 18px; border-radius: 999px; font-size: var(--fs-meta);
  font-weight: 600; border: 2px solid var(--blue); cursor: pointer;
  background: transparent; color: var(--blue); transition: all 0.15s;
  font-family: inherit;
}
.lab-opt-btn.active, .lab-opt-btn:hover { background: var(--blue); color: #fff; }
.lab-layout-wrap { display: none; }
.lab-layout-wrap.active { display: block; }

/* shared article components */
.art-tag {
  display: inline-block; padding: 3px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.4px;
  background: #dcfce7; color: #15803d;
  margin-bottom: 10px;
}
.art-meta { font-size: var(--fs-meta); color: var(--text-2); margin-top: 10px; }
.art-meta span { margin-right: 12px; }
.art-thumb {
  width: 100%; border-radius: 12px; overflow: hidden;
  flex-shrink: 0;
}
.art-thumb-inner {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
}

/* LAYOUT A — Magazine */
.art-mag-featured {
  display: grid; gap: 28px;
  grid-template-columns: 1fr;
}
@media(min-width:680px) {
  .art-mag-featured { grid-template-columns: 1.1fr 1fr; align-items: center; }
}
.art-mag-featured .art-thumb { height: 280px; }
@media(min-width:680px) { .art-mag-featured .art-thumb { height: 320px; } }
.art-mag-title {
  font-size: 20px; font-weight: 700;
  letter-spacing: -0.5px; line-height: 1.25; color: var(--blue);
  margin-bottom: 10px;
}
.art-mag-excerpt { font-size: var(--fs-body); color: var(--text-2); line-height: 1.65; }
.art-mag-read { display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--fs-meta); font-weight: 600; color: var(--blue);
  margin-top: 16px; cursor: pointer; }

/* 3-col article grid */
.art-grid {
  display: grid; gap: 20px;
  grid-template-columns: 1fr;
}
@media(min-width:560px) { .art-grid { grid-template-columns: 1fr 1fr; } }
@media(min-width:900px) { .art-grid { grid-template-columns: repeat(3, 1fr); } }
.art-card {
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: none;
  cursor: pointer; transition: transform 0.18s;
}
.art-card:hover { transform: translateY(-3px); }
.art-card .art-thumb { border-radius: 0; height: 180px; }
.art-card-body { padding: 18px 16px 20px; }
.art-card-meta-row { display:flex; align-items:center; gap:8px; margin-bottom:10px; flex-wrap:wrap; }
.art-card-meta-row .art-tag { margin-bottom:0; }
.art-card-readtime { font-size:11px; color:var(--text-3); font-weight:500; display:inline-flex; align-items:center; gap:3px; }
.art-card-title { font-size: 15px; font-weight: 700; line-height: 1.35;
  color: var(--blue); margin-bottom: 8px; letter-spacing: -0.2px; }
.art-card-excerpt { font-size: var(--fs-meta); color: var(--text-2); line-height: 1.6; }

/* LAYOUT B — Equal card grid (no featured) */
/* uses .art-grid and .art-card already defined above */

/* LAYOUT C — List */
.art-list { display: flex; flex-direction: column; gap: 2px; }
.art-list-item {
  display: flex; gap: 20px; align-items: flex-start;
  padding: 20px 0; border-bottom: 1px solid rgba(0,0,0,0.07); cursor: pointer;
  transition: background 0.15s; border-radius: 8px;
}
.art-list-item:last-child { border-bottom: none; }
.art-list-item:hover { background: rgba(47,106,255,0.03); }
.art-list-thumb { width: 100px; height: 80px; border-radius: 10px; overflow: hidden; flex-shrink: 0; }
@media(min-width:560px) { .art-list-thumb { width: 140px; height: 100px; } }
.art-list-body { flex: 1; }
.art-list-title { font-size: 15px; font-weight: 700; line-height: 1.35;
  color: var(--text-1); margin-bottom: 6px; letter-spacing: -0.2px; }
.art-list-excerpt { font-size: var(--fs-meta); color: var(--text-2); line-height: 1.6; display: none; }
@media(min-width:560px) { .art-list-excerpt { display: block; } }

/* filter bar shared */
.art-filter-bar {
  display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px;
  justify-content: center;
}
.art-filter {
  padding: 5px 14px; border-radius: 999px; font-size: var(--fs-meta);
  font-weight: 600; border: 1.5px solid rgba(0,0,0,0.12); cursor: pointer;
  background: #ffffff; color: var(--text-2); transition: all 0.15s;
  font-family: inherit;
}
.art-filter.on, .art-filter:hover { background: var(--blue-lt); border-color: var(--blue); color: #1e52d6; } /* #1e52d6: 5.6:1 on #e8eeff */
/* ── Skeleton shimmer system ──────────────────────────────────────── */
:root {
  --skel-base: #e8e8e8;
  --skel-shine: #f5f5f5;
}
html.dark { --skel-base: #2c2c2c; --skel-shine: #3a3a3a; }

@keyframes skel-shimmer {
  0%   { background-position: -800px 0; }
  100% { background-position: 800px 0; }
}
.skel,
.art-skel-featured, .art-skel-card {
  border-radius: 12px;
  background: linear-gradient(90deg, var(--skel-base) 25%, var(--skel-shine) 50%, var(--skel-base) 75%);
  background-size: 1600px 100%;
  animation: skel-shimmer 1.6s infinite linear;
}
.art-skel-featured { height: 300px; margin-bottom: 0; border-radius: 16px; }
.art-skel-card     { height: 260px; border-radius: 16px; }

/* Generic skeleton helpers */
.skel-line  { height: 14px; border-radius: 6px; margin-bottom: 10px; }
.skel-line.wide  { width: 80%; }
.skel-line.mid   { width: 60%; }
.skel-line.short { width: 40%; }
.skel-img   { border-radius: 12px; }

/* Image containers: show skeleton while src loads */
.art-thumb, .cs-thumb { position: relative; background: var(--skel-base); }
.art-thumb img, .cs-thumb img {
  position: relative; z-index: 1;
  transition: opacity 0.3s;
}
.art-thumb img.img-loading, .cs-thumb img.img-loading { opacity: 0; }

/* Panel transition skeleton — applied briefly during SPA page nav */
.panel-skel {
  min-height: 320px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding: 32px 0;
}
.panel-skel-card {
  height: 240px; border-radius: 16px;
  background: linear-gradient(90deg, var(--skel-base) 25%, var(--skel-shine) 50%, var(--skel-base) 75%);
  background-size: 1600px 100%;
  animation: skel-shimmer 1.6s infinite linear;
}
/* ── Article detail page ─────────────────────────────────────────── */
.art-body { max-width: 700px; margin: 0; padding-bottom: 56px; }
.art-body p  { font-size: 14px; color: var(--text-2); line-height: 1.8; margin-bottom: 22px; }
.art-body p:first-of-type { font-weight: 700; color: var(--text-1); }
.art-body h2 { font-size: 16px; font-weight: 800; color: var(--text-1);
               letter-spacing: -0.2px; margin: 40px 0 14px; line-height: 1.2; }
.art-body h3 { font-size: 16px; font-weight: 700; color: var(--text-1); margin: 28px 0 10px; }
.art-body blockquote { border-left: 3px solid var(--blue); padding: 4px 0 4px 20px;
                        margin: 28px 0; color: var(--text-2); font-style: italic; }
.art-body ul, .art-body ol { font-size: 14px; color: var(--text-2); line-height: 1.8;
                              margin: 0 0 22px 0; padding-left: 24px; }
.art-body ul { list-style: disc; }
.art-body ol { list-style: decimal; }
.art-body li { margin-bottom: 8px; }
.art-body li:last-child { margin-bottom: 0; }
.art-detail-hero-img { width:100%; border-radius:16px; display:block;
                        max-height:480px; object-fit:cover; }
#art-detail-img { padding: 0 var(--g); margin-bottom: 0; }
.art-detail-meta { display:flex; gap:16px; align-items:center; flex-wrap:wrap;
                   margin-top:16px; }
.art-card-click, .art-mag-featured { cursor: pointer; }

/* ── Article share bar ───────────────────────────────────────────── */
/* Article two-column layout */
.art-page-wrap {
  display: flex;
  gap: 48px;
  padding: 40px var(--g) 0;
  align-items: flex-start;
}
.art-main-col {
  flex: 1;
  min-width: 0;
}
.art-main-col .art-body { padding-bottom: 0; }
.art-sidebar {
  width: 280px;
  flex-shrink: 0;
  align-self: stretch;
}
.art-sidebar-sticky {
  position: sticky;
  top: 88px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
/* Mobile: stack sidebar below content, hide desktop sidebar */
@media (max-width: 900px) {
  .art-page-wrap { flex-direction: column; gap: 0; padding: 32px var(--g) 0; }
  .art-sidebar { width: 100%; }
  .art-sidebar-sticky { position: static; }
  .art-sidebar-desktop-only { display: none; }
  .art-mobile-share, .art-mobile-cta { display: block; }
}
@media (min-width: 901px) {
  .art-mobile-share, .art-mobile-cta { display: none; }
}

.art-sidebar .art-share-bar { flex-direction:column; align-items:stretch; gap:10px; margin-bottom:0; }
.art-sidebar .art-share-btns { flex-direction:column; }
.art-sidebar .art-share-label { margin-bottom:4px; }
/* Mobile share bar: full-width column buttons */
#art-share-bar-mob { flex-direction:column; align-items:stretch; }
#art-share-bar-mob .art-share-btns { flex-direction:column; align-items:stretch; }
.art-share-bar  { display:flex; align-items:center; justify-content:space-between;
                  flex-wrap:wrap; gap:14px; margin:0 0 40px;
                  padding:18px 22px; background:var(--surface-1);
                  border:1.5px solid var(--border); border-radius:14px; }
.art-share-label { font-size:14px; font-weight:700; color:var(--text-1); white-space:nowrap; }
.art-share-btns  { display:flex; gap:8px; flex-wrap:wrap; }
.art-share-btn   { display:inline-flex; align-items:center; justify-content:center; gap:6px;
                   height:40px; padding:0 18px; border-radius:100px; font-family:inherit;
                   font-size:13px; font-weight:600; color:var(--blue);
                   background:transparent; border:2px solid var(--blue); cursor:pointer;
                   text-decoration:none; transition:background 0.15s, color 0.15s; }
.art-share-btn:hover   { background:var(--blue-lt); }
.art-share-btn.copied  { background:#e6f4ea; color:#1e7e34; border-color:#1e7e34; }
@media(max-width:560px) { .art-share-bar { flex-direction:column; align-items:flex-start; } }
/* ── Sidebar: micro-CTA + availability ───────────────────────────── */
.art-sidebar-similar {
  background: var(--surface-1);
  border: 1.5px solid var(--border);
  border-radius: 16px;
  padding: 16px 18px;
}
.art-sidebar-similar-prompt {
  font-size: 14px; font-weight: 700; color: var(--text-1); margin-bottom: 8px; line-height: 1.3;
}
.art-sidebar-similar-link {
  font-size: 13px; font-weight: 600; color: var(--blue); text-decoration: none;
  display: inline-flex; align-items: center; gap: 4px;
}
.art-sidebar-similar-link:hover { text-decoration: underline; }
.art-sidebar-avail {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 16px;
  padding: 14px 16px;
  display: flex; align-items: center; gap: 12px;
}
.art-avail-dot {
  width: 9px; height: 9px; border-radius: 50%; background: #22c55e; flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(34,197,94,0.2);
}
.art-avail-text {
  flex: 1; font-size: 13px; font-weight: 600; color: var(--text-1); line-height: 1.3;
}
.art-avail-link {
  font-size: 12px; font-weight: 600; color: var(--blue);
  text-decoration: none; white-space: nowrap;
}
.art-avail-link:hover { text-decoration: underline; }
/* ── Article prev / next ─────────────────────────────────────────── */
.art-prevnext { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:48px 0 8px; }
.art-pn-card  { display:flex; flex-direction:column; gap:7px; padding:20px 22px;
                background:var(--surface-1); border:1.5px solid var(--border);
                border-radius:14px; cursor:pointer;
                transition:border-color 0.18s, transform 0.18s; }
.art-pn-card:hover { border-color:var(--blue); transform:translateY(-2px); }
.art-pn-card.is-next { align-items:flex-end; text-align:right; }
.art-pn-dir   { font-size:11px; font-weight:700; color:var(--text-3);
                text-transform:uppercase; letter-spacing:0.07em;
                display:flex; align-items:center; gap:4px; }
.art-pn-card.is-next .art-pn-dir { flex-direction:row-reverse; }
.art-pn-cat   { font-size:12px; font-weight:600; color:var(--blue); }
.art-pn-title { font-size:14px; font-weight:700; color:var(--text-1); line-height:1.4; }
@media(max-width:560px) { .art-prevnext { grid-template-columns:1fr; } }

/* ── Recommended for you — carousel ─────────────────────────────── */
.art-recs-wrap       { margin:32px 0 0; }
.art-recs-header-row { display:flex; align-items:center; justify-content:space-between;
                       margin-bottom:20px; }
.art-recs-label      { font-size:clamp(17px,3vw,21px); font-weight:800; color:var(--text-1);
                       letter-spacing:-0.3px; margin:0; }
.art-recs-nav        { display:flex; gap:8px; flex-shrink:0; }
.art-recs-btn        { width:38px; height:38px; border-radius:50%;
                       background:var(--surface-1); border:1.5px solid var(--border);
                       display:flex; align-items:center; justify-content:center;
                       cursor:pointer; transition:border-color 0.15s, background 0.15s;
                       flex-shrink:0; color:var(--text-2); }
.art-recs-btn:hover  { border-color:var(--blue); background:var(--blue-lt); }
.art-recs-btn svg    { pointer-events:none; }
/* Scrollable carousel strip */
.art-recs-grid       { display:flex; gap:16px; overflow-x:auto;
                       scroll-behavior:smooth; scrollbar-width:none;
                       -ms-overflow-style:none; scroll-snap-type:x mandatory;
                       padding: 4px 4px 8px; margin: 0 -4px; }
.art-recs-grid::-webkit-scrollbar { display:none; }
.art-rec-card        { flex:0 0 240px; background:var(--surface-1);
                       border:1.5px solid var(--border); border-radius:14px;
                       overflow:hidden; cursor:pointer;
                       scroll-snap-align:start;
                       transition:border-color 0.18s, transform 0.18s; }
.art-rec-card:hover  { border-color:#9ca3af; transform:translateY(-2px); }
.art-rec-thumb       { height:130px; overflow:hidden; display:flex; align-items:center;
                       justify-content:center; }
.art-rec-thumb img   { width:100%; height:100%; object-fit:cover; display:block; }
.art-rec-body        { padding:14px 16px 16px; display:flex; flex-direction:column; gap:5px; }
.art-rec-tag         { display:inline-block; font-size:11px; font-weight:700; color:#166534;
                       letter-spacing:0.05em; background:#dcfce7; padding:3px 10px; border-radius:999px; }
.art-rec-title       { font-size:13px; font-weight:700; color:var(--blue); line-height:1.35; }
.art-rec-meta        { font-size:11px; color:var(--text-3); margin-top:4px; }

/* ── Learning Lab homepage highlights ───────────────────────────── */
.lab-hi-grid { display:grid; grid-template-columns:1fr; gap:var(--space-stack); margin-bottom:0; }
@media(min-width:560px) { .lab-hi-grid { grid-template-columns:1fr 1fr; } }
@media(min-width:900px) { .lab-hi-grid { grid-template-columns:1fr 1fr 1fr; } }

/* ── end Learning Lab ─────────────────────────────────────────────── */

/* ── Breadcrumbs ──────────────────────────────────────────────────── */
.bc-bar {
  display: flex; align-items: center; flex-wrap: wrap;
  padding: 20px var(--g) 0;
  background: var(--bg);
}
.bc-link {
  font-size: 13px; font-weight: 500; color: var(--blue);
  text-decoration: none; cursor: pointer; transition: color 0.15s;
  white-space: nowrap;
}
.bc-link:hover { color: var(--blue-dk, #1a52e0); }
.bc-sep {
  margin: 0 7px; color: var(--text-3); font-size: 11px;
  opacity: 0.4; user-select: none; flex-shrink: 0;
}
.bc-current {
  font-size: 13px; font-weight: 500; color: var(--text-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 480px;
}
/* ── end Breadcrumbs ─────────────────────────────────────────────── */

/* ── Mobile fixes ────────────────────────────────────────────────── */
@media (max-width: 767px) {
  #page-home .hero-slide { padding-top: 116px !important; padding-bottom: 48px !important; }
  #page-home .hero-btns { margin-bottom: 0 !important; }
  .svc-how-card { padding-left: 24px !important; padding-right: 24px !important; }
  #page-home .p-card { padding-left: 24px !important; padding-right: 24px !important; }
  .results-stats-grid .t-meta { font-size: 14px !important; }

  /* Service showcase panels: stack on mobile */
  .svc-feat-panel { grid-template-columns: 1fr; grid-template-rows: 240px auto; height: auto; }
  .svc-feat-panel.flip .svc-feat-img { order: 0; }
  .svc-feat-panel.flip .svc-feat-content { order: 1; }
  .svc-feat-content { padding: 28px 24px; }

  /* Hero: fixed height on mobile matching Ai Enabled Design hero */
  .hero, body.has-video-hero .hero { min-height: 739px; }

  /* Balance multi-line copy on mobile */
  .hero-sub, .sub p, .sec-head p, #page-home .t-body, #page-home .t-meta { text-wrap: balance; }
  .hero h1, .coming-hero h1, .legal-hero h1, .cs-detail-hero h1 { text-wrap: balance; }
  .hero h1 br, .coming-hero h1 br, .legal-hero h1 br, .cs-detail-hero h1 br { display: none; }
  .hero h1 br + span::before, .coming-hero h1 br + span::before, .legal-hero h1 br + span::before, .cs-detail-hero h1 br + span::before { content: ' '; }

  /* About: stack bio panel on mobile */
  #jh-bio-row { flex-direction: column !important; align-items: center !important; text-align: center; }
  #jh-bio-row > div { min-width: 0 !important; text-align: left; }
  .ai-manifesto-inner { padding: 24px !important; }
  .ai-manifesto-body { font-size: 14px !important; }
  .ai-iterate-inner { padding-left: 24px !important; padding-right: 24px !important; }
  .ai-iterate-body { font-size: 14px !important; }
  .ai-notnot-inner { padding-left: 24px !important; padding-right: 24px !important; }
  .ai-notnot-body { font-size: 14px !important; }
  .ai-notnot-cta { width: 100% !important; box-sizing: border-box; text-align: center; }
  .sub-includes-list { grid-template-columns: 1fr !important; }
  .sub-benefits-inner { padding: 24px !important; }
  .sub-benefits-inner > p { font-size: 14px !important; }
  .sub-call-inner { padding: 24px !important; }
  .sub-call-inner > p { font-size: 14px !important; }
  .sub-wyg-text .btn-on-blue-primary { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
  #page-subscription .card.card-blue { padding-left: 24px !important; padding-right: 24px !important; }
  .ai-speed-grid { flex-direction: row !important; overflow-x: auto !important; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; display: flex !important; }
  .ai-speed-grid::-webkit-scrollbar { display: none; }
  .ai-speed-grid .card.p-card { flex: 0 0 78vw !important; scroll-snap-align: start; }
  .ai-speed-dots { display: flex; justify-content: center; gap: 5px; padding: 20px 0 0; }
  .ai-flow-dots { display: flex; justify-content: center; gap: 5px; padding: 20px 0 0; }
  #aiValueGrid { flex-direction: row !important; overflow-x: auto !important; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  #aiValueGrid::-webkit-scrollbar { display: none; }
  #aiValueGrid .card.p-card { flex: 0 0 78vw !important; scroll-snap-align: start; }
  .ai-value-dots { display: flex; justify-content: center; gap: 5px; padding: 20px 0 0; }
  .mob-br { display: inline; }
  .sub-testi-trio { flex-direction: row !important; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .sub-testi-trio::-webkit-scrollbar { display: none; }
  .sub-testi-trio .card.p-card { flex: 0 0 85vw !important; scroll-snap-align: start; }
  .sub-testi-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .sub-testi-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .sub-testi-dot.on { background: var(--blue); }
  .sub-fit-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .sub-fit-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .sub-fit-dot.on { background: var(--blue); }
  .wwu-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .about-pitch-panel { flex-direction: column !important; min-height: unset; }
  .about-pitch-img { flex: 0 0 220px; width: 100%; }
  .about-pitch-text { padding: 24px 20px; }
  .wwu-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .wwu-dot.on { background: var(--blue); }
  .wmd-grid { display: flex !important; flex-direction: row !important; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 12px !important; }
  .wmd-grid::-webkit-scrollbar { display: none; }
  .wmd-grid .svc { flex: 0 0 85vw !important; scroll-snap-align: start; height: 300px; justify-content: flex-end; }
  #teamGrid .card { flex-direction: column !important; align-items: flex-start !important; }
  .wmd-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .wmd-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .wmd-dot.on { background: var(--blue); }
  #page-testimonials .testi-body { font-size: 14px; }
  #page-testimonials .testi-auth { font-size: 14px; }
  .testi-hero { min-height: 739px !important; }
  .bc-bar { flex-wrap: nowrap; overflow: hidden; }
  .bc-current { max-width: calc(100vw - 210px); }
  #page-case-studies .hero-sub { font-size: 14px !important; }
  #page-learning .hero-sub { text-wrap: balance; }
  #page-learning .art-filter-bar {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-left: calc(-1 * var(--g));
    margin-right: calc(-1 * var(--g));
    padding-left: var(--g);
    padding-right: var(--g);
  }
  #page-learning .art-filter-bar::-webkit-scrollbar { display: none; }
  #page-learning .art-filter { padding: 4px 11px; font-size: 11px; }

  /* Green nudge strip: stack vertically on mobile */
  .sub-nudge-strip {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }
  .sub-nudge-strip a.btn {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }

  /* Onboarding stats: stack vertically on mobile */
  .onboarding-stats {
    flex-direction: column !important;
  }
  .onboarding-stats > div {
    border-right: none !important;
    border-bottom: 1px solid var(--border);
    padding: 18px 20px !important;
    text-align: left !important;
    display: grid !important;
    grid-template-columns: 44px 1fr;
    grid-template-rows: auto auto;
    column-gap: 16px;
    align-items: center;
  }
  .onboarding-stats > div:last-child { border-bottom: none; }
  .onboarding-stats > div > div:first-child {
    grid-column: 1; grid-row: 1 / 3; align-self: center;
    margin-bottom: 0 !important;
  }
  .onboarding-stats > div > div:nth-child(2) { grid-column: 2; grid-row: 1; }
  .onboarding-stats > div > div:nth-child(3) { grid-column: 2; grid-row: 2; }

  /* Image panel CTAs: full-width on mobile so they don't overflow */
  .img-panel-cta {
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .img-panel-cta > span:first-child {
    flex: 1 !important;
    white-space: normal !important;
  }

  /* Results stats: single column on mobile */
  .results-stats-grid {
    grid-template-columns: 1fr !important;
  }

  /* Agency comparison: stack on mobile */
  .agency-compare-grid {
    grid-template-columns: 1fr !important;
  }

  /* Team members: carousel on mobile */
  .team-members-grid {
    display: flex !important; flex-direction: row !important;
    overflow-x: auto; scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 12px !important;
  }
  .team-members-grid::-webkit-scrollbar { display: none; }
  .team-members-grid .card { flex: 0 0 85vw !important; scroll-snap-align: start; }
  .team-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .team-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .team-dot.on { background: var(--blue); }
  /* What we believe: carousel on mobile */
  .wwb-grid { display: flex !important; flex-direction: row !important; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 12px !important; }
  .wwb-grid::-webkit-scrollbar { display: none; }
  .wwb-grid .card { flex: 0 0 85vw !important; scroll-snap-align: start; min-height: 300px; }
  .wwb-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .wwb-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .wwb-dot.on { background: var(--blue); }
  /* experience process: carousel on mobile */
  .exp-process-grid { display: flex !important; flex-direction: row !important; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 12px !important; }
  .exp-process-grid::-webkit-scrollbar { display: none; }
  .exp-process-grid .card { flex: 0 0 85vw !important; scroll-snap-align: start; }
  .exp-process-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .exp-process-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .exp-process-dot.on { background: var(--blue); }
  /* explore more panel */
  .exp-explore-content { padding: 24px !important; }
  .exp-explore-body { font-size: 14px !important; }
  .exp-explore-grid { grid-template-columns: 1fr !important; max-width: 100% !important; }
  /* experience split panels: stack image-top on mobile */
  .exp-split-panel { flex-direction: column !important; }
  .exp-split-img { width: 100% !important; height: 220px; order: -1; }
  .exp-split-text { padding: 24px !important; }
  /* how we work carousel */
  .hww-grid { display: flex !important; flex-direction: row !important; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 12px !important; }
  .hww-grid::-webkit-scrollbar { display: none; }
  .hww-grid .hww-card { flex: 0 0 85vw !important; scroll-snap-align: start; }
  .hww-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .hww-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .hww-dot.on { background: var(--blue); }
  /* digital product + service design + sub-service pages: 14px body text in all cards on mobile */
  #page-digital-product .p-card p,
  #page-digital-product .p-card li,
  #page-service-design .p-card p,
  #page-service-design .p-card li,
  #page-design-systems .p-card p,
  #page-design-systems .p-card li,
  #page-product-audit .p-card p,
  #page-product-audit .p-card li,
  .svc-detail .p-card p,
  .svc-detail .p-card li { font-size: 14px !important; line-height: 1.6 !important; }
  /* service page text cards: reduce horizontal padding on mobile */
  .p-card[style*="padding:36px"] { padding-left: 24px !important; padding-right: 24px !important; }
  /* interface page: stack split panel image-top on mobile */
  .iface-split-panel { flex-direction: column !important; }
  .iface-split-img { width: 100% !important; height: 220px; order: -1; flex: none !important; }
  .iface-split-text { padding: 24px !important; }
  /* what clients gain carousel */
  .wcg-grid { display: flex !important; flex-direction: row !important; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 12px !important; }
  .wcg-grid::-webkit-scrollbar { display: none; }
  .wcg-grid .svc { flex: 0 0 85vw !important; scroll-snap-align: start; }
  .wcg-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .sd-dots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 0; }
  .wcg-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d0d5; transition: background var(--t); }
  .wcg-dot.on { background: var(--blue); }
  br.mob-only { display: block; }
  /* Discovery call CTA: full width on mobile */
  #about-discovery-cta { display: flex !important; width: 100%; justify-content: space-between; }
  /* About panel buttons: full width on mobile */
  .about-panel-btns { flex-direction: column !important; }
  .about-panel-btns .btn { width: 100% !important; justify-content: center; box-sizing: border-box; }

  /* Design services page: stack grids on mobile */
  .svc-engage-grid { grid-template-columns: 1fr !important; }
  .svc-engage-grid .card { padding-left: 24px !important; padding-right: 24px !important; }
  .svc-engage-grid li { font-size: 14px !important; }
  .cta { padding-left: 24px !important; padding-right: 24px !important; }
  .cta p { font-size: 14px !important; text-wrap: balance; }
  .ai-promo-content { padding-left: 24px !important; padding-right: 24px !important; }
  .ai-promo-btn { width: 100% !important; justify-content: space-between !important; }
  .svc-testi-grid { grid-template-columns: 1fr !important; }
  .svc-process-grid { grid-template-columns: 1fr !important; }
}
/* ── end Mobile fixes ────────────────────────────────────────────── */



/* ── CASE STUDY FILTERS ─────────────────────────────────────────── */
.cs-filters {
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
  align-items: center; padding: 48px var(--g) 48px;
}
.cs-filter {
  display: inline-flex; align-items: center; gap: 7px;
  height: 38px; padding: 0 18px;
  border-radius: var(--r-pill);
  background: var(--surface-1); border: 1.5px solid var(--border);
  color: var(--text); font-size: 13px; font-weight: 600;
  cursor: pointer; transition: background 0.15s, border-color 0.15s, color 0.15s;
  white-space: nowrap; font-family: inherit;
}
.cs-filter:hover { border-color: var(--blue); color: var(--blue); }
.cs-filter.is-active { background: var(--blue); border-color: var(--blue); color: #fff; }
.cs-filter.is-active:hover { color: #fff; }
.cs-filter-x { display: none; align-items: center; justify-content: center; opacity: 0.8; }
.cs-filter.is-active .cs-filter-x { display: inline-flex; }
.cs-filter-divider { width: 1px; height: 22px; background: var(--border); margin: 0 4px; }
.cs-filter-empty {
  display: none; text-align: center; padding: 8px var(--g) 0;
}
.cs-filter-empty p { font-size: 16px; color: var(--text-2); line-height: 1.6; }
@media (max-width: 700px) {
  .cs-filter-divider { display: none; }

  /* Mobile: horizontal scroll strip */
  .cs-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    padding-left: var(--g);
    padding-right: var(--g);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .cs-filters::-webkit-scrollbar { display: none; }
}

/* ── CASE STUDIES BENTO GRID ───────────────────────────────────── */
.cs-intro-header {
  padding: 40px var(--g) 0;
  text-align: center;
}
.cs-intro-header h2 {
  font-size: clamp(28px, 4vw, 40px); font-weight: 800;
  color: var(--text); letter-spacing: -1px; line-height: 1.1; margin-bottom: 10px;
}
.cs-intro-header p {
  font-size: 14px; color: var(--text-2); line-height: 1.6;
  max-width: 600px; margin-left: auto; margin-right: auto;
  text-wrap: balance;
}
.cs-bento {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
  padding: 24px var(--g) 0;
}
/* 48px between the grid and the CTA panel */
#page-case-studies .cta-panel-slot .sec { padding-top: 48px; }
.cs-card {
  border-radius: var(--r-xl);
  overflow: hidden;
  background: #2a2a2e;
  box-shadow: var(--sh);
  position: relative;
  display: block;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.cs-card:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(0,0,0,0.13); }
/* ── Case study cards: staggered scroll-in reveal ── */
@media (prefers-reduced-motion: no-preference) {
  .cs-bento .cs-reveal { opacity: 0; transform: translateY(44px); }
  .cs-bento .cs-reveal.in-view {
    opacity: 1; transform: none;
    transition: opacity .6s ease, transform .7s cubic-bezier(.22,.61,.36,1), box-shadow .25s ease;
    transition-delay: var(--rd, 0s);
  }
  .cs-bento .cs-card.cs-reveal.in-view:hover {
    transform: translateY(-3px);
    transition: transform .2s ease, box-shadow .2s ease;
    transition-delay: 0s;
  }
  /* Intro text + filter strip reveal */
  .cs-page-reveal { opacity: 0; transform: translateY(20px); }
  .cs-page-reveal.in-view {
    opacity: 1; transform: none;
    transition: opacity .55s ease, transform .6s cubic-bezier(.22,.61,.36,1);
    transition-delay: var(--rd, 0s);
  }
}
/* Image fills entire card absolutely */
.cs-card-img {
  position: absolute; inset: 0;
  background-color: #2a2a2e;
  background-image: var(--cs-img, none);
  background-size: cover;
  background-position: center;
}
/* Gradient scrim — only when a real image is set */
.cs-card-img[style*="--cs-img"]::after {
  content: '';
  position: absolute; inset: 0;
  /* Top scrim masks stray edges/lines in mockup images (behind the chip);
     bottom scrim keeps title/description legible. */
  background: linear-gradient(to bottom,
    rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.82) 10%, rgba(0,0,0,0) 30%,
    rgba(0,0,0,0) 52%, rgba(0,0,0,0.8) 100%);
}
/* Text overlay sits above the image */
.cs-card-body {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  justify-content: flex-end;
  padding: 20px 22px 24px;
}
/* Bento card category chip pinned to top-left */
.cs-card-body .cs-chip {
  position: absolute; top: 22px; left: 22px; margin-bottom: 0;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.5);
  color: rgba(255,255,255,0.5);
  display: none;
}
.cs-chip {
  display: inline-flex; align-items: center;
  height: 24px; padding: 0 12px;
  border-radius: var(--r-pill);
  background: #d1fae5;
  color: #166534;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.04em; text-transform: capitalize;
  margin-bottom: 10px; width: max-content;
}
.cs-card-body h3 {
  font-size: clamp(24px, 4vw, 32px); font-weight: 800; color: #fff;
  letter-spacing: -0.5px; line-height: 1.1; margin-bottom: 10px;
}
.cs-card-body p { font-size: 13px; color: #ffffff; line-height: 1.5; margin-bottom: 14px; }
.cs-card-link {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 700; color: var(--blue);
  letter-spacing: 0.04em; text-transform: uppercase;
}
.cs-card-link svg { transition: transform 0.15s ease; }
.cs-card:hover .cs-card-link svg { transform: translateX(3px); }

/* ── Card size variants ── */
.cs-card--feat  { grid-column: span 8; min-height: 448px; }
.cs-card--side  { grid-column: span 4; min-height: 448px; }
.cs-card--half  { grid-column: span 6; min-height: 448px; }
.cs-card--third { grid-column: span 4; min-height: 448px; }
.cs-promo {
  grid-column: 1 / -1;
  position: relative; min-height: 420px;
  border-radius: var(--r-xl); overflow: hidden;
  display: flex; align-items: flex-end; background: #111;
  margin: 32px 0; /* + 16px grid gap = 48px clear above & below the banners */
}



@media (max-width: 900px) {
  .cs-bento { grid-template-columns: repeat(6, 1fr); }
  .cs-card--feat,
  .cs-card--side  { grid-column: span 6; }
  .cs-card--half  { grid-column: span 6; }
  .cs-card--third { grid-column: span 3; }
}
@media (max-width: 560px) {
  .cs-bento { grid-template-columns: 1fr; gap: 48px; padding: 16px var(--g); }
  .cs-card--feat,
  .cs-card--side,
  .cs-card--half,
  .cs-card--third { grid-column: span 1; }
  .cs-promo { margin: 0; } /* gap already provides the 48px */
}
.fm-carbon { padding-top: 28px; margin-top: 20px; border-top: 1px solid rgba(255,255,255,0.12); display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.fm-carbon-label { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.5); }
#wcb.carbonbadge { --b1: #ffffff; --b2: #2f6aff; display: inline-flex; font-size: 13px; }
.fm-carbon-note { font-size: 11px; color: rgba(255,255,255,0.4); text-decoration: none; }
.fm-carbon-note:hover { color: rgba(255,255,255,0.7); }
#menuScrim {
  position: fixed;
  inset: 0;
  z-index: 29998;
  background: rgba(0,0,0,0.45);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
#menuScrim.open { opacity: 1; pointer-events: all; }
.fm-handle-wrap { display: flex; justify-content: center; padding: 12px 0 4px; flex-shrink: 0; }
.fm-handle { width: 40px; height: 4px; border-radius: 2px; background: rgba(0,0,0,0.15); }
html.dark .fm-handle { background: rgba(255,255,255,0.2); }
body.menu-open #tt-chat-btn,
body.menu-open #tt-chat-panel,
body.menu-open #brevo-popup { display: none !important; }
#fullMenu {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 29999;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  padding: max(env(safe-area-inset-top, 0px), 0px) var(--g) env(safe-area-inset-bottom, 0px);
  overflow-y: auto;
  transform: translateY(100%);
  transition: transform 0.4s cubic-bezier(0.32,0.72,0,1);
  pointer-events: none;
  visibility: hidden;
}
html.dark #fullMenu { background: #1c1c1e; }
#fullMenu.open {
  transform: translateY(0);
  pointer-events: all;
  visibility: visible;
}
.fm-top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 16px 0 24px;
}
.fm-close {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: transparent;
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: #767676;
}
html.dark .fm-close { color: #ffffff; }
.fm-nav { display: flex; flex-direction: column; flex: 1; }
.menu-link {
  font-family: 'Inter', sans-serif;
  font-size: 20px; font-weight: 600;
  color: #111113;
  padding: 12px 16px;
  letter-spacing: -0.4px;
  display: block;
  border-radius: 12px;
}
html.dark .menu-link { color: #ffffff; }
.menu-link[style*="--blue"] {
  background: rgba(0,0,0,0.05);
}
html.dark .menu-link[style*="--blue"] { background: rgba(255,255,255,0.08); }
.fm-cta {
  background: #2f6aff; color: #fff;
  height: 48px; border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 600;
  margin-top: 32px; width: 100%;
}
/* Hero background video (experimental) */
.hero-bg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; pointer-events: none; }
.hero-bg-overlay { position: absolute; inset: 0; z-index: 0; background: linear-gradient(to top, rgba(17,17,19,0.92) 0%, rgba(17,17,19,0.5) 45%, rgba(17,17,19,0.62) 100%); pointer-events: none; }
#hero .hero-track, #hero #heroDots { position: relative; z-index: 2; }
/* Video-hero pages: styled via body.has-video-hero (toggled by JS). To add a page, just add it to the videoPages map in the JS — no CSS change needed. Offset set by JS. */
body.has-video-hero .hero { min-height: 78svh; }
@media (max-width: 767px) { body.has-video-hero .hero { min-height: 739px; } }
/* Case-study detail hero: same full-bleed treatment (pulled up behind the bars) */
body.has-video-hero .cs-detail-hero { min-height: 560px; }
@media (max-width: 700px) { body.has-video-hero .cs-detail-hero { min-height: 460px; } }
/* Hero content layers above the video/overlay */
body.has-video-hero .hero > :not(.hero-bg-video):not(.hero-bg-overlay) { position: relative; z-index: 2; }
/* Home carousel: let slides stretch so content bottom-aligns above the dots */
body[data-active-page="home"] #heroTrack .hero-slide { height: auto !important; }
body.has-video-hero .nav-wrap { background: transparent !important; }
body.has-video-hero .nav-wrap .nav-icon-btn,
body.has-video-hero .nav-wrap .nav-menu { background: transparent !important; }
body.has-video-hero .nav-wrap .nav-icon-btn:hover,
body.has-video-hero .nav-wrap .nav-menu:hover { background: rgba(255,255,255,0.12) !important; }
body.has-video-hero .announce { background: transparent !important; position: relative; z-index: 999; }
/* hero overflow already set to visible in base */
.hero-track { touch-action: pan-y; }
.hero-track {
  display: flex;
  width: 300%;
  height: 100%;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
  position: absolute; inset: 0;
}
.hero-slide {
  width: 33.333%;
  flex-shrink: 0;
  padding: 36px var(--g) 80px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-width: 0;
  overflow: hidden;
}
/* Homepage v2 section styles — scoped to #page-home so no other page is affected */
#page-home { --hp-black: #111113; --hp-blue: #2f6aff; --hp-blue-dk: #1e59ee; --hp-blue-lt: #e8eeff; --hp-border: #d8d9de; --hp-grey: #f0f0f2; --hp-r-pill: 999px; --hp-text: #222222; --hp-text-2: #65637a; --hp-text-3: #9896a8; --hp-white: #ffffff; }
#page-home section { color: #ffffff; font-size: 16px; line-height: normal; -webkit-font-smoothing: antialiased; }
/* ── Section base ── */
#page-home section {
  width: 100%;
  position: relative;
}

/* ── Inner content constraint (text readability) ── */
#page-home .inner {
  padding: 0 var(--g);
}


/* v2 buttons used by the CTA panel */
#page-home .hp-btn-white {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--hp-white);
  color: var(--hp-text);
  font-size: 14px;
  font-weight: 600;
  padding: 14px 28px;
  border-radius: var(--hp-r-pill);
  text-decoration: none;
  border: none;
  transition: opacity .2s;
}
#page-home .hp-btn-white:hover { opacity: .88; }

#page-home .btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: rgba(255,255,255,0.7);
  font-size: 14px;
  font-weight: 500;
  padding: 14px 28px;
  border-radius: var(--hp-r-pill);
  text-decoration: none;
  border: 1px solid rgba(255,255,255,0.18);
  transition: border-color .2s, color .2s;
}
#page-home .btn-ghost:hover { border-color: rgba(255,255,255,0.4); color: var(--hp-white); }
#page-home #cta .btn-ghost { color: #ffffff; border-color: rgba(255,255,255,0.6); transition: border-color .2s, background .2s; }
#page-home #cta .btn-ghost:hover { border-color: #ffffff; background: rgba(255,255,255,0.12); }

/* ══════════════════════════════════
   2. SERVICES CAROUSEL
   ══════════════════════════════════ */
#page-home #services {
  background: var(--hp-black);
  min-height: 72vh;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

/* Progress bar */
#page-home .svc-progress {
  position: absolute;
  top: 0; left: 0;
  height: 2px;
  background: var(--hp-blue);
  width: 0%;
  transition: width linear;
  z-index: 10;
}

/* Main content area */
#page-home .svc-stage {
  flex: 1;
  display: flex;
  align-items: center;
  padding: 0;
  width: 100%;
  position: relative;
}

/* Slides */
#page-home .svc-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  padding: clamp(56px, 8vw, 96px) var(--g);
  opacity: 0;
  pointer-events: none;
  transform: translateY(16px);
  transition: opacity .45s ease, transform .45s ease;
}
#page-home .svc-slide.active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  position: relative;
  inset: auto;
}

#page-home .svc-slide-inner { max-width: 800px; }

#page-home .svc-counter {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--hp-blue);
  text-transform: uppercase;
  margin-bottom: clamp(20px, 3vw, 32px);
  font-variant-numeric: tabular-nums;
}

#page-home .svc-name {
  font-size: clamp(48px, 7.5vw, 100px);
  font-weight: 800;
  letter-spacing: -3px;
  line-height: 0.95;
  color: var(--hp-white);
  margin-bottom: clamp(20px, 3vw, 32px);
}

#page-home .svc-desc {
  font-size: clamp(15px, 1.4vw, 18px);
  color: rgba(255,255,255,0.45);
  line-height: 1.65;
  max-width: 52ch;
  margin-bottom: clamp(28px, 4vw, 40px);
}

#page-home .svc-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,0.5);
  text-decoration: none;
  transition: color .2s, gap .2s;
}
#page-home .svc-more:hover { color: var(--hp-white); gap: 12px; }

/* Nav bar */
#page-home .svc-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 24px var(--g);
  position: relative;
}
/* faint track = the old divider, inset to the page gutter like Selected work; the blue bar fills along it */
#page-home .svc-progress-track {
  position: absolute;
  top: 0; left: var(--g); right: var(--g);
  height: 2px;
  background: rgba(255,255,255,0.07);
  overflow: hidden;
}

#page-home .hp-svc-dots { display: flex; align-items: center; gap: 6px; }
#page-home button.dot { border: none; padding: 0; cursor: pointer; position: relative; flex-shrink: 0; }
#page-home button.dot::after { content: ''; position: absolute; inset: -12px -3px; }
#page-home button.dot:focus-visible { outline: 2px solid #ffffff; outline-offset: 3px; }
#page-home .svc-nav-arrows {
  display: flex;
  gap: 6px;
  margin-left: auto;
}
#page-home .svc-arrow-btn {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.12);
  background: transparent;
  color: rgba(255,255,255,0.4);
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .2s, color .2s, background .2s;
  font-family: 'Inter', sans-serif;
}
#page-home .svc-arrow-btn:hover {
  border-color: rgba(255,255,255,0.4);
  color: var(--hp-white);
  background: rgba(255,255,255,0.06);
}

/* ══════════════════════════════════
   3. TRUSTED
   ══════════════════════════════════ */
#page-home #trusted {
  background: #ffffff;
  padding: clamp(64px, 9vw, 110px) 0;
}

#page-home .trusted-head {
  font-size: clamp(28px, 3.5vw, 42px);
  font-weight: 800;
  letter-spacing: -1px;
  color: var(--hp-text);
  text-align: center;
  margin-bottom: clamp(40px, 6vw, 64px);
  text-wrap: balance;
}

/* Logo ticker */
#page-home .ticker-wrap {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
}
#page-home .ticker {
  display: flex;
  align-items: center;
  gap: 0;
  width: max-content;
  animation: tickerScroll 40s linear infinite;
}
#page-home .ticker:hover { animation-play-state: paused; }
#page-home .ticker-item {
  padding: 0 clamp(24px, 3vw, 48px);
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-right: 1px solid var(--hp-border);
}
#page-home .ticker-item:first-child { border-left: 1px solid var(--hp-border); }
#page-home .ticker-name {
  font-size: clamp(13px, 1.2vw, 15px);
  font-weight: 700;
  color: var(--hp-text-3);
  letter-spacing: .02em;
  white-space: nowrap;
}
@keyframes tickerScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ══════════════════════════════════
   4. STATS
   ══════════════════════════════════ */
#page-home #stats {
  background: var(--hp-blue);
  padding: clamp(72px, 10vw, 120px) 0;
}

#page-home .stats-head {
  font-size: clamp(28px, 3.5vw, 42px);
  font-weight: 800;
  letter-spacing: -1px;
  color: var(--hp-white);
  text-align: center;
  margin-bottom: clamp(32px, 5vw, 56px);
  text-wrap: balance;
}
#page-home .hp-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
#page-home .stat-item {
  padding: clamp(24px, 3vw, 40px) clamp(24px, 3vw, 48px);
  border-right: 1px solid rgba(255,255,255,0.18);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#page-home .stat-item:first-child { padding-left: 0; }
#page-home .stat-item:last-child { border-right: none; padding-right: 0; }

#page-home .hp-stat-num {
  font-size: clamp(48px, 6vw, 80px);
  font-weight: 800;
  letter-spacing: -2px;
  color: var(--hp-white);
  line-height: 1;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  margin-bottom: 6px;
}
#page-home .hp-stat-u { font-size: 0.5em; vertical-align: super; }
#page-home .hp-stat-a { font-size: 0.45em; margin-left: 1px; vertical-align: super; }
#page-home .stat-label {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.3px;
  color: var(--hp-white);
  line-height: 1.2;
}
#page-home .hp-stat-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.9);
  line-height: 1.6;
  max-width: 34ch;
}
#page-home .stats-link {
  display: block;
  width: max-content;
  margin: clamp(32px, 4vw, 48px) auto 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--hp-white);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.5);
  padding-bottom: 2px;
}
#page-home .stats-link:hover { border-color: var(--hp-white); }

@media (max-width: 700px) {
  #page-home .hp-stats-grid { grid-template-columns: 1fr; }
  /* 34ch is a good measure on desktop; on a phone it leaves ~59px unused on the right */
  #page-home .hp-stat-desc { max-width: none; }
  #page-home .stat-item { padding: 28px 0; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.18); }
  #page-home .stat-item:first-child { padding-top: 0; }
  #page-home .stat-item:last-child { border-bottom: none; padding-bottom: 0; }
}

/* ══════════════════════════════════
   5. FEATURED WORK
   ══════════════════════════════════ */
#page-home #work {
  background: var(--hp-black);
  padding: clamp(72px, 10vw, 120px) 0;
}

#page-home .work-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: clamp(40px, 5vw, 56px);
  flex-wrap: wrap;
}

#page-home .section-title {
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 800;
  letter-spacing: -2px;
  line-height: 1.0;
  color: var(--hp-white);
}

#page-home .sec-link {
  display: inline-block;
  margin-top: clamp(28px, 4vw, 40px);
  font-size: 14px;
  font-weight: 600;
  color: var(--hp-white);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .15s;
}
#page-home .sec-link:hover { opacity: .7; }

/* ── Work carousel ── */
#page-home .wk-progress {
  height: 2px;
  background: rgba(255,255,255,0.07);
  margin-top: 24px;
  overflow: hidden;
}
#page-home .wk-progress-bar {
  height: 100%;
  width: 0%;
  background: var(--hp-blue);
  transition: width 6000ms linear;
}

#page-home .wk-car {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
}

/* Slides are stacked in one grid cell and cross-fade (the track is as tall as the tallest slide) */
#page-home .wk-track { display: grid; }

#page-home .wk-slide {
  grid-area: 1 / 1;
  min-width: 0;
  min-height: 72svh;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-decoration: none;
  color: var(--hp-white);
}

/* Hidden slides can't be clicked or tabbed to; visibility flips only after they've faded out */
#page-home .wk-slide { visibility: hidden; pointer-events: none; transition: visibility 0s linear .6s; }
#page-home .wk-slide.is-active { visibility: visible; pointer-events: auto; z-index: 1; transition: none; }
/* Picture: quick fade out, then the next one fades in */
#page-home .wk-slide .wp-media { opacity: 0; transition: opacity .3s ease; }
#page-home .wk-slide.is-active .wp-media { opacity: 1; transition: opacity .55s ease .15s; }
/* Copy: tag, title, description and link rise in one after another once the picture is showing */
#page-home .wk-slide .wp-content > * { opacity: 0; transform: translateY(14px); transition: opacity .2s ease, transform .2s ease; }
#page-home .wk-slide.is-active .wp-content > * { opacity: 1; transform: none; transition: opacity .5s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
#page-home .wk-slide.is-active .wp-content > :nth-child(1) { transition-delay: .25s; }
#page-home .wk-slide.is-active .wp-content > :nth-child(2) { transition-delay: .32s; }
#page-home .wk-slide.is-active .wp-content > :nth-child(3) { transition-delay: .39s; }
#page-home .wk-slide.is-active .wp-content > :nth-child(4) { transition-delay: .46s; }
@media (prefers-reduced-motion: reduce) {
  #page-home .wk-slide .wp-content > * { transform: none; }
}

/* All cards share the section colour; each image fades into it */
#page-home .wp-bt, #page-home .wp-dewa, #page-home .wp-indeed { background: #111113; }

/* Case-study visual on the right, anchored to the top of the card.
   The frame fades the left edge and the picture fades its own top and bottom —
   one mask per element, so every browser (Safari included) renders it the same */
#page-home .wp-media {
  position: absolute;
  top: 0; bottom: 0; right: 0;
  width: 64%;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 30%, #000 92%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, #000 30%, #000 92%, transparent 100%);
  pointer-events: none;
}
#page-home .wp-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center top;
  transform-origin: center top;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
}
#page-home .wk-slide:hover .wp-img { transform: scale(1.03); }
#page-home .wk-slide .wp-client { white-space: nowrap; text-wrap: nowrap; }
#page-home .wk-slide.wp-bt .wp-client,
#page-home .wk-slide.wp-sainsburys .wp-client,
#page-home .wk-slide.wp-mubadala .wp-client { white-space: normal; text-wrap: balance; }

#page-home .wp-content {
  position: relative;
  z-index: 1;
  padding: clamp(32px, 5vw, 64px);
  max-width: 44%;
}
/* Mobile + tablet: picture sits above the text and the card is as tall as its content */
@media (max-width: 1023px) {
  #page-home .wk-slide { min-height: 0; justify-content: flex-start; }
  #page-home .wp-media {
    position: relative;
    top: auto; bottom: auto;
    width: 100%;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
  }
  #page-home .wp-media { aspect-ratio: 16 / 10.9; overflow: hidden; }
  #page-home .wp-img {
    max-height: none;
    /* Crop into the artwork rather than showing its empty ground: the frame is
       wider than this box, so cover trims the sides, weighted to the devices. */
    width: 100%; height: 100%;
    object-fit: cover; object-position: 100% 50%;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 85%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 85%, transparent 100%);
  }
  #page-home .wp-dewa .wp-img { object-position: 50% 50%; }
  #page-home .wp-sainsburys .wp-media { aspect-ratio: 16 / 10.2; }
  #page-home .wp-sainsburys .wp-img { object-position: 85% 50%; }
  #page-home .wp-content { max-width: none; padding: 8px 0; }  /* text lines up with the section title and dots */
}
/* Desktop: card height follows the images (they scale with width), not the viewport height */
@media (min-width: 1024px) {
  #page-home .wk-slide { min-height: clamp(400px, 38vw, 560px); }
}
/* Indeed Flex: composed with empty space on the left, so it spans most of the card */
@media (min-width: 1024px) {
  #page-home .wp-indeed .wp-media {
    width: 90%;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 15%);
    mask-image: linear-gradient(to right, transparent 0%, #000 15%);
  }
  #page-home .wp-indeed .wp-img {
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%);
  }
}
/* BT: the composed background fills most of the card, fading in behind the text */
@media (min-width: 1024px) {
  /* Single tablet on a wide frame — needs a wider box to read at the size
     the other slides do, same trick as wp-bt and wp-indeed above. */
  #page-home .wp-carrefour .wp-media,
  #page-home .wp-mubadala .wp-media,
  #page-home .wp-sharjah .wp-media,
  #page-home .wp-meraas .wp-media { width: 85%; }
  /* Narrower: this artwork has annotation cards either side of the tablet,
     which otherwise sit behind the headline. */
  #page-home .wp-sainsburys .wp-media { width: 74%; }
  #page-home .wp-bt .wp-media {
    width: 80%;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.25) 22%, #000 42%);
    mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.25) 22%, #000 42%);
  }
  #page-home .wp-bt .wp-img {
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%);
  }
}

#page-home .wp-tag {
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.8);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: var(--hp-r-pill);
  margin-bottom: 20px;
  backdrop-filter: blur(6px);
}

#page-home .wp-client {
  font-size: clamp(48px, 7vw, 96px);
  font-weight: 800;
  letter-spacing: -3px;
  line-height: 1.0;
  color: var(--hp-white);
  margin-bottom: 16px;
}

#page-home .wp-desc {
  font-size: 15px;
  color: rgba(255,255,255,0.6);
  line-height: 1.65;
  max-width: 52ch;
  margin-bottom: 28px;
}

#page-home .wp-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #4a79ff;   /* 4.91:1 on the dark work section; #2f6aff was 4.16:1 and failed AA at 13px */
  transition: color .2s, gap .2s;
}
#page-home .wk-slide:hover .wp-cta { color: #7aa3ff; gap: 12px; }

/* Controls row */
#page-home .wk-ctrl {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 24px;
  gap: 16px;
}

#page-home .wk-dots {
  display: flex;
  gap: 6px;
  align-items: center;
}

@media (max-width: 620px) {
  #page-home .wp-client { letter-spacing: -2px; }
}

/* ══════════════════════════════════
   6. TEAM
   ══════════════════════════════════ */
#page-home #team {
  background: var(--hp-black);
  min-height: 70svh;
  display: flex;
  align-items: flex-end;
  padding-bottom: clamp(52px, 8vw, 96px);
  position: relative;
  overflow: hidden;
}

#page-home #team { isolation: isolate; }
#page-home .team-bg {
  position: absolute;
  inset: 0;
  background: #0d1022 url('/journey-mapping-bg-poster.jpg') center 30% / cover no-repeat;
  filter: saturate(.25) contrast(1.1) brightness(1.05);
}
/* grade the photo into the blue-violet cast of the video backgrounds */
#page-home .team-grade {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, #2f6aff 0%, #3d45d8 60%, #8a3fb5 100%);
  mix-blend-mode: color;
  opacity: .55;
}
#page-home .team-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10,11,22,0.94) 0%, rgba(10,11,22,0.72) 38%, rgba(10,11,22,0.08) 100%),
    linear-gradient(to top, rgba(10,11,22,0.7) 0%, rgba(10,11,22,0) 45%);
}
@media (max-width: 767px) {
  #page-home .team-shade { background: linear-gradient(to top, rgba(10,11,22,0.95) 0%, rgba(10,11,22,0.78) 55%, rgba(10,11,22,0.35) 100%); }
}

#page-home .team-content {
  position: relative;
  z-index: 1;
}
#page-home .team-headline span { color: var(--hp-blue); }

#page-home .team-overline {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--hp-blue);
  margin-bottom: 18px;
}

#page-home .team-headline {
  font-size: clamp(40px, 6vw, 80px);
  font-weight: 800;
  letter-spacing: -2px;
  line-height: 1.0;
  color: var(--hp-white);
  margin-bottom: 20px;
  text-wrap: balance;
}

#page-home .team-body {
  font-size: 15px;
  color: #ffffff;
  line-height: 1.65;
  max-width: 44ch;
  margin-bottom: 36px;
}

#page-home .btn-white-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: var(--hp-white);
  font-size: 14px;
  font-weight: 600;
  padding: 14px 28px;
  border-radius: var(--hp-r-pill);
  text-decoration: none;
  border: 1.5px solid rgba(255,255,255,0.35);
  transition: background .18s, border-color .18s;
}
#page-home .btn-white-outline:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.6);
}

/* ══════════════════════════════════
   7. SUBSCRIPTION
   ══════════════════════════════════ */
#page-home #subscription {
  background: var(--hp-white);
  padding: clamp(72px, 10vw, 120px) 0;
}

#page-home .sub-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 96px);
  align-items: center;
}

#page-home .sub-overline {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--hp-blue);
  margin-bottom: 16px;
}

#page-home .sub-headline {
  font-size: clamp(30px, 4vw, 52px);
  font-weight: 800;
  letter-spacing: -1.2px;
  line-height: 1.08;
  color: var(--hp-text);
  margin-bottom: 20px;
  text-wrap: balance;
}
#page-home .sub-headline span { color: var(--hp-blue); }

#page-home .sub-body {
  font-size: 15px;
  color: var(--hp-text-2);
  line-height: 1.7;
  margin-bottom: 32px;
  max-width: 44ch;
}

#page-home #subscription .hp-btn-blue {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--hp-blue);
  color: var(--hp-white);
  font-size: 14px;
  font-weight: 600;
  padding: 14px 28px;
  border-radius: var(--hp-r-pill);
  text-decoration: none;
  border: none;
  transition: background .18s;
}
#page-home #subscription .hp-btn-blue:hover { background: var(--hp-blue-dk); }

/* Subscription card visual */
#page-home .sub-card {
  background: var(--hp-grey);
  border: none;
  border-radius: 24px;
  padding: clamp(28px, 4vw, 48px);
  display: flex;
  flex-direction: column;
  gap: 20px;
}

#page-home .sub-card-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--hp-blue-lt);
  color: var(--hp-blue);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: var(--hp-r-pill);
  width: fit-content;
}

#page-home .sub-card-head {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 800;
  letter-spacing: -.4px;
  color: var(--hp-text);
}

#page-home .sub-features {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
#page-home .sub-feat {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  color: var(--hp-text-2);
  line-height: 1.5;
}
#page-home .sub-feat-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--hp-blue);
  flex-shrink: 0;
  margin-top: 6px;
}

#page-home .sub-card-divider {
  height: 1px;
  background: var(--hp-border);
}

/* ── Homepage in dark mode ───────────────────────────────────────────────
   The homepage carries its own --hp-* palette with fixed light values, so it
   ignored the theme entirely. Only two bands are light by design — #trusted and
   #subscription — and the rest are already dark or brand blue. Redefining the
   tokens *on those two sections* re-colours everything nested inside them,
   while --hp-white keeps meaning white for text on the dark sections. */
html.dark #page-home #trusted,
html.dark #page-home #subscription {
  --hp-text:    #f0f0f0;
  --hp-text-2:  rgba(240,240,240,0.65);
  --hp-text-3:  rgba(240,240,240,0.55);
  --hp-border:  rgba(240,240,240,0.14);
  --hp-grey:    #222228;
  /* #2f6aff is only 3.5:1 on this surface; this reads as the same blue and passes */
  --hp-blue:    #5b86ff;
  background: var(--surface-1);
}
/* The badge keeps its pale chip, so its label takes the dark blue instead (4.81:1) */
/* Client logos on the dark band. Most are an SVG wrapping a raster, so they
   cannot be recoloured directly, and inverting alone turns each image's opaque
   background into a solid block. Each one masks its own artwork so only the mark
   paints, then the filter renders it in a single light tone. FTA and Rivoli have
   no transparency at all, so they carry a mask built by flooding the background
   in from the edges — which keeps counters and knocked-out letters intact —
   inlined here rather than shipped as new files. */
html.dark #page-home #trusted .logo-ticker-item { background: none; padding: 0; }
html.dark #page-home #trusted img {
  filter: brightness(0) invert(1);
  opacity: 0.82;
  -webkit-mask-size: contain; mask-size: contain;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
}
html.dark #page-home #trusted img[src="/logos/Boots.svg"] { -webkit-mask-image: url(/logos/Boots.svg); mask-image: url(/logos/Boots.svg); }
html.dark #page-home #trusted img[src="/logos/Sainsburys.svg"] { -webkit-mask-image: url(/logos/Sainsburys.svg); mask-image: url(/logos/Sainsburys.svg); }
html.dark #page-home #trusted img[src="/logos/BT.svg"] { -webkit-mask-image: url(/logos/BT.svg); mask-image: url(/logos/BT.svg); }
html.dark #page-home #trusted img[src="/logos/Indeed.svg"] { -webkit-mask-image: url(/logos/Indeed.svg); mask-image: url(/logos/Indeed.svg); }
html.dark #page-home #trusted img[src="/logos/Tesco.svg"] { -webkit-mask-image: url(/logos/Tesco.svg); mask-image: url(/logos/Tesco.svg); }
html.dark #page-home #trusted img[src="/logos/Emaar.svg"] { -webkit-mask-image: url(/logos/Emaar.svg); mask-image: url(/logos/Emaar.svg); }
html.dark #page-home #trusted img[src="/logos/PostOffice.svg"] { -webkit-mask-image: url(/logos/PostOffice.svg); mask-image: url(/logos/PostOffice.svg); }
html.dark #page-home #trusted img[src="/logos/Damac.svg"] { -webkit-mask-image: url(/logos/Damac.svg); mask-image: url(/logos/Damac.svg); }
html.dark #page-home #trusted img[src="/logos/DEWA.svg"] { -webkit-mask-image: url(/logos/DEWA.svg); mask-image: url(/logos/DEWA.svg); }
html.dark #page-home #trusted img[src="/logos/Shell.svg"] { -webkit-mask-image: url(/logos/Shell.svg); mask-image: url(/logos/Shell.svg); }
html.dark #page-home #trusted img[src="/logos/Haleon.svg"] { -webkit-mask-image: url(/logos/Haleon.svg); mask-image: url(/logos/Haleon.svg); }
html.dark #page-home #trusted img[src="/logos/Carrefour.svg"] { -webkit-mask-image: url(/logos/Carrefour.svg); mask-image: url(/logos/Carrefour.svg); }
html.dark #page-home #trusted img[src="/logos/DubaiMall.svg"] { -webkit-mask-image: url(/logos/DubaiMall.svg); mask-image: url(/logos/DubaiMall.svg); }
html.dark #page-home #trusted img[src="/logos/Aramtec.svg"] { -webkit-mask-image: url(/logos/Aramtec.svg); mask-image: url(/logos/Aramtec.svg); }
html.dark #page-home #trusted img[src="/logos/KAEC.svg"] { -webkit-mask-image: url(/logos/KAEC.svg); mask-image: url(/logos/KAEC.svg); }
html.dark #page-home #trusted img[src="/logos/Betterhomes.svg"] { -webkit-mask-image: url(/logos/Betterhomes.svg); mask-image: url(/logos/Betterhomes.svg); }
html.dark #page-home #trusted img[src="/logos/FTA.svg"] { -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASoAAABICAYAAABBcbjKAAAmH0lEQVR42u1debxd09l+3nPPzSBBEok5oTUTY8QQSlBTDRUzbdVMDUXNin70M1QNpaGt+szzVDUVbVFCULMIUoQYGyKRhOTee855vj/2s3izsvcZbu69kdjv73d+55y911577bXWftc7PgvIKaecvhVE0vS9Asmh+l0gaST7kxxN8kuSp+hc0V2zHMkDSX43XJdWfyifU0455VSTIZFscp8iyW763pbkVJIVkr91zOooJtSm7z3cuaVIvqfj75NcJmZWWb9zyimnnDKlpirnLxDDadH3gTq+kztelmS1ps5to3Mz9P08ye5igubqXpBk/5xZ5ZRTTvWodn1J7qzPCJK76fd2JC+VNNWmTyvJ7+m6S8WIZur7dZJ9SPYm+Wx07lpd000S3OaStqaQ/ElQHfNRySmnnGazD4mxvMT6qOzUuSUlIT0aMaS7Vf9KJCfrmiCNHefufa+rt5XkhjrXlI9OTjnlBM8QSG7sVLjWlE9JzCZ8gk1qlBjVUiQ/iNTD/1XdOzo7Vpsks6117oRIPXxXBnqTnavJG+dzyimnb48EVXCfYDhfSEynEQrM6g+qe3MxqaAakuSeOneiY2IVkhNJLqM23BdJY4+EtuUjllNO3z4mVaijzFokh2Z81ie5HsntSX4mhhOkp0N0/RGRcX0aydV17paIIT0t4/oAkm9H536Hr431B5PsWY/RP6eccppPVD2SS5McFH2WITmQ5CIk+1X59JfR/VgxqpI+M0lupHv8IVIBx+maXiRfiBjSNbpmiI6F+kjydie9XZ3brnLKaT6XpKTyDSX5GskvxBRaok+r1LZSHZ/Pxai8cX1CHcb15VOksWN17idOpaw4A3sbyX+7Z2nKwxhyymn+Y1RFfd8bqWVz8vGhCm3OXvUvJ7V9HElWv1Y7to+YUIXkFpg1XisY8EO9l6UEiOZqYE45zYeM6mR2LgUD+kjdbzPHjMK53XTu1Mi4/l+Sy+rcgzrnGdU+Ljh0O5JL18Osck6WU07zSOgBAOq7AGAfAIMAVPQex+9ypYFbhGu7AfgFgB4A2gA0AzjEzC4neTiAkQBaARQBfAFgIzN7heSdAEYAaAHQHcBzADYCsBCAxwCs5No/GMAbAP4BYDMAHwLYAMD7AGBmzEc8p5xyqsUUd3ahCSX93kDnLk+JXF9Y0tEr0bnrdM25TlJ7V7aplSPJbZtaBvY8xD2nnL7BsVJmRpJHA9ha0kpvAJ8BaJIk1F3SU5u7tACgr86ziuYUzpV0jQH4UseLAMqSsm4huT6AwwCsAWB9SU8rAbjKzHZWnNWTal8rgB+TfBTA6u5+L5pZRVHr1DPMADA2khhzyimneSlWiuSG7HoqO69gsC09JI/jQGdcD9LTmWrrCCcplV2ZEKZwkuq4wt3rFYf2UMzDFnLKad5kVOtz7lNQ0S5Um7aKkppJciedOyWKdvdhD5uozIvu3JWNGNE6M5vbzKyST72cOuNFnh/nlt6bJqljZalcOzv1rCsoqI3D1JZgXD/YzP5M8hgAFzrj+jQAm5jZyyRvBbCb2m5q9xQASwNYAMC7SAz2BuBQM/sTycEADgLwgpldHdTeuY6L8y3Kxyp60TZnMV8hRzb5/unoFJJvOi7UPDRWWwubqi0lcv3aSAUcK0iYXvrtY6+e1DXbuZAFklxLx191UtZWiIzrxU42Ai4KYACAN8ysNBfcuZW56e7UvcNzl+dBV7gBYEdLLdFcKLXj+grJ5fT7rW9iP7Zn3jnm1oQk/GBlSSNNc8HYHNoyA4nxfimNVXcAN5NcWxLQCkjCC1oArALgOjMbQXJXAE8D6Kl6ntHzDXPP+BGAMYq7WtlJZ307XeNzYf5rK/iLSpBcRbrpXU7/tm+YPWAttfGGtPa5cuer3LZpblUHYLYEyWNILq6VZN+OxJV20B7Hqz0/7Yo8Kvd8vUk+TvI5uan76fezJBdLi0DW/NhXK/Vi6p8BdaJTBinsQAUXfkyy+9yYS67vt1LfByC57+v/lY22y9X5G35zKUhCD6qtywpBwafSHC0UB29U31XlH3Z1/U3H9na2rDaSy3e65OyiZ48XNs0GEu+H+1iKzphcrt49SV5DcmC9L4C+v6c2vpzBqEK5e1QuFcnQ9UGIO/m7G8Q1OoqZuPsEZMaT24usKAbQjeQ5JM8mua5E++FR35r73cc9V38xnkADo+uaXNIqSU4n+UCUYV+sc3yfIvmYFj+by1Hi4SV7Qf/3iP63h1H5/DpvtC5F0Czh0+IYQnyuNTJqt7XjU8mAhbnAMeuyUw9bSd6sMhX9X1oICxNdPWdoPo10x95IezeK7VlJs8RaTaSyVL4Q4ToSwHVIIlQrSCJaO5t+JVHyOQCXSMysR8Uoq41f1ig3IyV2BSlRwTcBWAbAxQCelzHxHfVjpV4Vug4HRYvqa61zDMNKRalRBX0vCeAknVsLwLYSwx/VNUGVplNFpgNYUL+pNjBFTano3m8CuB3AOCRxN2UAd9aKptbkrZDcEUkcz0wA1wA4DsBj4Rnq6cMOdv60RXOmNAfzPLTzVACXAlhV76iPd5qmZ+/vDN5FzYEwL/u5MSgAmKrzvWTMnlMqqi2/IPmCmV1P8hcAfqfjzQD2UFsKAN4ys/dJritTUFnv5BMyEa3n6n7ezMokm8ys3C5GVceAUzcuAfinGtRXOm7BfWZbRXyjGnjZYvtJgSQA7A9gYwBXq/5yA3r5bG1MoUI1D4xeejOzRwA8osP3z6mdw72MjFZqq9cjpDrLKWqcAZiAxMPUBuBvAA4BcKtjNAUAC+s+k6O+8H3DKs/yORKPUKD7fL/VajvJqQBu1AvRtxZDaIBJzda3dV4bz5l651DWvCma2SiSvxJDL6nOCoDtAYxG4m070Hni3gCwg/ribjGqNiTBmleJmQ8GcJfzts2pJNqkNl1O8nUzu5jkOrKttbnzBQAv6Jphbo5Ml91qYQkVgRk/GbpjlkXGIQTWUo8KEt26tVNU3syF3Xe47unFRXkd+oW2NqD6baQ2PlND9Qv4OntlqH7h5V9d6t/jstu8SHKHelQ/qcvdnYoR6lyE5Gr6HZ7vogjDulil3gVJrkNyE5IrZHmpot1Fgsq1DMlJJD9UO3oKJqSk/4s6dWPpWGXUd3cF/j1E8t/CNfpjZ9gkXB821Vl+8bAVVAOq3+7q+9H6v2vk5bJ2mC5WIPmpU5tI8iCnWlacmvW5Myf8MfK0Pa0x6kHy5SimqaMCQ0lyvNT+7hrTOBH5cLXvZnfts/gaTdTbvtYP3mDfJwUzq+jDGgxgTQD/AfBoNQbgOnt1YS8/qWOV2KMghjJM+DpNDRhxF9Z1a4c2Slxcg+RfkCQ6fgrgLZI/10pc6GLD/EoARskzsjGAIerDxat5NByTOVv9fbhbYYZpdXqQZK96E09dmwZI5XoOwL8AvEbyfpJLq4+a9XKfC2CCGErBSd5NWq0HtGNFDratGwCcA2BLAOtKxVy9AbA4I/l7za0j/aRO6cNT1YcHZi0oLkTicpV9XTAq/btyQ82gdgoB81YAi0iNbgYwUrFLawO41ql1TQD2V+zSzyUBBynrvwB2N7MZMr2sLkm6I9+DgiS+ZQFca2YtAPaUZO6lytH6Xttdm+YFnAhgrJkxeIaDlF3QoDymgKtqq1oPAAPVKKtTNFwSwFIpIn24xwoAnkCSSd2rjhUoXLeurrtDonKZ5C7qkJ2QZG2bbEIXk/yBxOquCM8viOkfrnbM1ARprWHXimlx9XdfZ79oBbCYXMWntSPko5vsGKPUV5Qd6i6SPaRKl8SMlgbQNxo7NvgMsVq1JoBddH05xb5Trzo8QHNrwRrqWf+oD2ebo7r+CC0ovdVH2wE4U+e6KmarIPPH5WLeAYngcQBHk1wEwM1qX2BG55rZHSQ3kzro58NPzexdkicB2FXnOmP+B3vVViQvUrjI9U4F/i+SEIRlAHzXLa6j1b/DXF2vmtk0pek8IilweLjJlnr4AVpxmkh6m07YZDDoyTN1rKgVIJ4oBZJBN62ow6sZD8NEtSp1xm2BMx4HT9qNeo6SS9gMuvI+JB8CkBVc6J/Rr8pxW2YrV8UgOsi1pckZNouqu5jxmOF4eIlLumcvM3uW5PEyzh9F8gYze8W9TIWsurUAfQpgsJl9GXYskd1iCIAfALhb15cjhlTUmBadfaPYgI0z9NfSzhbR5BafMJ/C3EGN8Q99U8543vA/GLZbM8qF/tpLzxzaVgawmVM/ilXGqSO8t0EjOAHAjx2Teh/A3jp3PYAV3bl7zOxkqdg3qh+DXepEM3tQaS3ndCKTipnV0ST/CWB5d+4VMwvbZxXDuAF4Uv26ZoqUdRSA4Tp2FoCNijJu9gMwRatpvEqX1JlTgsE2TPQanf9ZnQbeoFpMq8PbEtoyNTBODeLvHJMqphi9B2Q8W1xv8FhVMqSVUK6ljpdyNIAfupc+PNvUOtvSEtqvlWe6JIpLtGHkrgCOBbCv8/7MqKduJ52Mkn3oFADrmtmduvdMP3aOsX3qmPEn6ns24M0aE2XmhwWttU7pMPRNm9rWWmPOBkN092r9opivJrdwNkkFKdXRls/n1FSgflwNwP9q8Q1M50fylp0HYBvHpN4EsJ9iyG6S9B3O3Whm58n0cJVbIDtbhQ39d6uTmJsAPCXms6F7J8cDeBvAagCWcGVHyQSxgUu/+QjO9dkE4ByS/9IAMALpqmjVJYBlhfw33p1LyxFaQnWV3WQtRR64IAksAuBaxZ4UqthegkdpXd1nFZI3SXxscy5cOKmLAJYRnrNlRPeGejdVmSGy03yaAlhWQQJvkTWJyxqYkQDWQ5KjFdQuANiD5CCXx5U24GWtNCUALbIt7evaEjwq67p2meru7p6TVXI7vfpdBrB5wLwGsE4YK0lix+h4P+eF+qUYezEKiyjF93UhEONJHgrgPAB93Cq/kiRFVonADm1vBrCJ/h+m5y275/XldtD/I0k2S+315ahx6Zdyn4L6o6nGOK3uJLeseV6PtNlbbQ50mJk9JviU4zW/i9I+9jSzSST/LPtnYFIvAThI9stb1MflTpam4ufoqU94/idTQhBe1LFhTkKfKYlqAUW4hzk9Gi7budKApf/NBj0DE3WfLfT/I2e0XSuy+DfqcXipk6Jvx9dZ7oA6vGxrKNj1qHa25ZdyNqRRgM3Ywm382JF0voJA66EBUcDnoCxsbJUbLo/P2+1s20SSU+soN0nbjHc2vY5ZA0Bfrtfr57I5TlZk/yk6PljbVJWcJy8EGR8aQQBPIrmizt2UgmDQVVRx3sAv5A1eMNpE4jg979Xuupciz3vgCRsDQNHMziZ5r6SEBaMcn55ulaBEzmelPy5Zp+46NRjKABwqVTOobM2qdxyAnys4sh414gvlD76oBMlVaxg9WccKF8qMVVu3qWKEDTaWx7ICFV0szss69Khc2KvWEMWDkbmXVspnJf4e6CQNA/C6mT2hWJN/yiM0VKuyNei5KUR9FJ7vWUkH+7lVuRipkcHuME3/D9b1k2LpKHhfzey/MrJCgGzDo7lXa5ymq++bAGye8swBAK6ictOQxCD1dOW8RHW2pA8fJPkggNtqSPh+nn+i309pnr/fSPyUfp6jD0j20f17O4npfDO7juSmSAKZS04i2d/MxonJ7ZliBkEX5giG5xknyW+4HEtxoOe67rrnU1TEKXoXszm+oss7yxW7AMkfy7L/1RY8mH+3OGpoWyB5eKBYsOY6wjVsHkSVaOpML2zoQ/3+To2yYyKwuDLJh+cSqkSzfv8lQiZ4QMeXTNly/USd+4GLsapw7lGQ5C7XWJ/ipK1PFdu1mLSAIH2FEJI7XD2jQr8UXYxRwVnvzwBwiuw0pzl9nM4AWu/LQUlP5lbfvkhiO6DV8dzgcWxAt690kqHQG1RrUblW9LJ3EOjFtCqSTQVJRP8m2pLoNAAvSOqIbTcM0fzRGHYkVUK0dL2ICKFsNUO0j4532EuNksc6iu1GmwF4iOR9sn3sQnIPJKk6fo4VJb2OlmG35OqZ3uCc9PO8yY9Pg9HpbSTPQBJmEySp8QB+JCZ2i7SZcO52M/uNjOc3RDbLuU1POON4kLZeNbMZgnLp4fjKaM3hddz1T0oCLxXdy1QhCTMrycPXAuAz/Y87vT0DQJIlfU+T6PoBgLskslo7oWA6Cz6l1AnQH+VasUbyaM6U2PtFUJVrQdaEMewkyJJSZ5RNgcJp76IS+jAwi5kyXcyQ2jdDXuVZ5rJCIQjgdKnkG+plGgPg5OCZbCT3r73Po3jAkkIKTnfG8xYAe0mFGhkZz8fI+9cbSYxVny4IRahnTIKzJzCftdz5p8XMN3KLwgdIgm2XQxLWE2gvAD8MSetZHTeoq2FW8C0H2dN3s0s/WbLeNKCcZuvPpVzK01L1ANyRXJXkanHaUhdmM6wow3/ZqXX76dxB0aajPnXmhrloPM9Kq3nH7ThTdsbxnSKECL/78t4ZzrXKXEMnlD5ezJlUzry7Al2z2pyulgrWRfY6E7ZXvOVUgFEZ5jZJCLl/I3TuF5G96k2Sz3RCXl+j9qm71L4DXFtmKp+yp7yU3rO9G8lxsmOVIqb7r/xF+WYamgvebZ33SvsBHOudyw7Ur0v73El9V+ql/FLf/1CbFiM5IWJGp+uaLd1LXRLG1xokj5iLEla45wlq/5Xu3Fg5UdZ3zCsY2JnS5vfExPrkMzqnnL4ZjHVCtFHnYnqpH4qkrNuCJ9MhLISXezy+BrKbWxJV2cc/RbGO/6djx6QwJQ/w95ZiygbkMyOnnL5BGPUkD5NE9C7JoTo2MmJSrwrit7tQSehCEUKg5fIqM82FBHRlsCdJThYyyqIKQQjtO5rk4Q66uBTZo8apTI/ZVHMn7hayRN9ILP7qU0N8bgTnqp66a5ZBlXidGjaKQntU3ax+qVZfPXFVVcahve3s0Hs2+ty16qijf5tqzaVG5kfWvRt5rmrtn4NxWpJkP/3+aWQ8n+oQTq5KkULaIuP7U3OQ9TGneOqj1Qfbu+MVxzzjdr1K8mAXQ9aL5LEkbyX5w662FxQ6yxA5Lxt50cXbL80r/ZUVDNpokGgXOYZsTu8XpRqtK0nEY57vrnNHRvaqSfoEleuKCIe8bS7Yp87CrJtUZKl4zynw24NC/kpSJZ00ObBIcnXMms1uAD5U3EbY9mpxJEnGcazOODNrceUWQxKMRpdoOMnMJqbhV2twVkGSxlB2AY1TzOw9V68hiXPp5mI1PjOzCTW26+qFZCsfIMnMbsmY+Kvh64z5lga3A1tM7Wl2cV0hoPENF7MTrllD17ypJN2vnlHfCyGB8ygDeCXEiblrzcxeanDbsuUBfAfAR2Y2JgOLfSUkeNpvmtk0d3wwElSGt6JxXjRKqSm7hNw3QuyRkoZX1flXXX8ErKgpvh8iRIFeSFK7+iFJEH9VAZGz4aO79sPNofHRfIvn6SQzm+CO99c8TxvPit/2TdHuC6tv3sCs8YJrAiiZ2avtYFb9kCAQ9MDX8VJnmdmtJLdAAvETYqVmIEm8Pg7ACFUzVG14HAkmWlcuTCFo+RMxq8McvwiB4s1IsOQuNrPbnCR5JICfqv/hnj2B9MngjGFXkB76viCj3DpIh8T1OutkkneTXDmWgrSLyeSUep/ArHCvfVMSS2doF5NFYsnKXfcrV/6I6FzwrA1yq9Gq9XiJXB1/rLHCLBbZIZZyXp2xipkyp0aYygTX7SXunvvr2NV1QhmHeru7xN/JTrXw41B0yeY7Y9bNU6eSfMoxHUTJpGnUz7VjTbeSLumOH6vjD0fjUXBxQxOieseS3CbFq9dNHiJPLQKEXMojear8mZELvUe0m08Wrezav69b8Ye4tuyo45fWKwFG4/9AZJf6i9uW6uMInjhsWXWuM2R/qfdlUGS/6ko7VSXld/BkjnDP/V2Sv41CFbzENZrk9z3MC5AAqL2uY3/HrMm2YVUZC+BeBy72flpqh0uINCTRsjsAWI/kEMEEe4iTAAtyE5KtnpuQRNwiSsKtREmj3QBsDeAQJVYX/WafmiC7umfYFQn0ShosTbnBlafi+uxT/T8UCaLkXeqnVnydqBsA4UJibNiscU2B4TW5nTc+ILkvEpD+IwRj8w6AywTif0Sdu9gEqWRDSVMtGostkaRhxKkhlQx4FS/phvK3ubH/GZKUqDvUvpkAvoyktjAnml06zmxQNK4fdkGCdIkIlmUVAPcomfVlN498XRWXDvY9ACeZ2ZFRGlAMgROe624km1ZUBOs7AMBfv0qMTaByg8R3tcZpUwDnmNlWusdvVccv691tyI3VCZrTMyVRvQbgQDHSGyWJ+8jzZcXYHwVwop6jJ4D1BJz3nsa+0sVbwZcd7hiQbBRysZk96KTfIEH1xte7+TTr8yiA3zt8NIPTH9evIjmc492LVcpdFOmkgaOG1eE8lWt22Odhk9LlqkRr9yP5WeT+bFXdl2RISoNdnEZFK83A2GamDQtaG5GoMvoguGG3rxJ5/IDaEjwhZ8YwMe45LlZ9Y7QxRMltf11oYPOBkdE9b/P4406iGpchUU12GxekGY5f03VbZjzzmg7yYwF3/pCwysbGfJLPu33iYimJJG+OnrG7k75Kbn6Uo+cN5c+IJKqmlOd6QWV2rOKpG+LauJ72kyTJ/Ruxp7l2/cM96xcu8vxPKdJG8PINkmbypXs3zlI/diXcSyUykJdJ/pXkJt6MoLiqGe4a37aHSG6XZtsuuqTOA5Q82ALgajObidn3/xtO8hpx9HukS1sdYFoBzuV7kUTik0ovE3ZVGcDxZvZJBtBd0IODBHVTBrjdjg58HlpptgPwxzqhO+o1+HpoXgBYOMDemtlMSRYVqYEBKCzAkowg+T+RZBOkwRORgBWGnKgDBGtTrJVPF/ImtSBsG93z+yT7mdlnmgScg+f2cMR9/HOnzIFuSJLPg5Q5NJpbJqliYBUonKABDK3SD00u36yABL+7ERtRwc3ZWcYTQIs2HgjS73MCr/sZgD/IvvIigKvifelq35oG4HwBJprG+2WShyGBzmmL7GbhWTc0s1tIjnOwvhvKTvUEEsiXzs7tK6t/gpR+O4ALzOzfwTmABI12hOxOFad1NSHZMu1CM3vYIbdMEYSxfdVDKdQ3knzOj3ZgJclzfCpMhkQVB4G9EK22fVxUqpeUlolWLi9RTdf3J2kShrNHPKs6W5309feOlKg8zIokHwqR0a+SRZ337uaSc9munfIMod9/6aSE/erdBdn124Zu1Sp7D1Jks8mSqJrTJKoaklgs2a5VYyV+LLputZS4nPj/RJILuuf1EtV097151JZGJKqQzrJ3xg42QQIcINtRGKf158Q7qbm+KL7eubvNjV+L8uG8Pe5SjZW3l34qu93aKf1Y6iCbVSwNzST5f+GddO2/00la5ej37Q5ZIcyVa/Wu/1u7KxvJgpcsTgewhaSezyMpJaxc90hv7w/gzAYQD4Lt4NMIBtdnv+8oj8fizv5RSbGBHaLzfdwOFuZsB5QtYy3nZQjSxEYkB8pjlLXJQ5O+Cx0IlULZyIJk0eQ2oNjZ94lW4jY5Kk6TTc8AXEpyZUlKhTphYXd2kk/BSba7VUFioPqgaGZt1bb2anD335mSogbqc2Y0t0K5zxxkcFpddLsFp6FonI4EkncBt0FAoRMQJSqyLX0i+yEFa/J08Fq2A12kYGafmdlEOR5uctBIBQB/MrMbkWxHFWgDjeVoZ+tZRJ7sMXrnvK2sKbIjtWc8S25eTdeuzuuYWZD6tyZ5DxLQwhHuusBvrpMdbVcze0oL6q0AngHwEyQgiusC2DnsBFRwYQnPmNnDZjYqBdYiMJRpZjbFzCaZ2YyUyU4XwlBxO06E/cRuSJn4odz7ZjZZA1XOgF2pIEGdPE6ddCHJVSWKe7F9Bw3I4UgQILdEAiPRQ7/j3UNCGyabWdnM2hrc1ts/e+wOrwjEbQske+ltrt8Xqux2Wk3DM1TkXQsqy/dk5O0J4MpYqkE2bntBOxK/rfttrn4zJHhXvcX0zO3oU5baUBazXB4J0uiXjTx3hvOhDOAdM3vfzN53ToiKY5AFM/tI6lOMf+9fkFFqXzFiVBWh0P5c5U4juYmes6nBNtdTJozDFJVrm8O4LcqW1kNMaik9c5jXvfQco10bV5R0+Vi0b9+mWmjGuHduvFTULxzDKtXJsGIGNQkJVNOaZnaEmY0luZ20lgfkOPL4XjPkIBliZvtIbd5CUu2TmqverPOl8KgS848T3XZXJ3WvYiT/mOR9JO/RfoA7RG7rkVVExbviCGOpfgH3+inVeT/JGxVDAycOh6jWTXXs8YC1rEhWb4x9TbhOfgZcFLl0iy5n6qssbRkA7wtG1GoifKT6BRXoRykq8T7+XMp9hzqIFyN5jY4fHLwk7vnPqycgUhn3JHm2O9fNuYJ3icbu904kv5Pkn5nsiEzFuCBl1+ai4DxIcrcM1W9tV+8gN04n6PjjPnoes+6qnaYCThMcirny3R3q5aE6dqdLbF1U5UMYzVk6d18V1e+NCKO8WMUIfnyESFloL6KIvn/mEpTLzizyehQCEVT5zVPyBW/RsbNd/3+uYwNloJ8SBWvWoxJ+rEBOH2qyC8lRGSEGk8UXVnTltyX5t4x7z9DcW8PPtYJWoAkKfitngH59ojJtSIC7hmmlj3HTP1K58fp+R8FdRyPZeLKS4hZ+S2WXV90bAVg/EtdLrtwMNf4wucMHSJUJAGdLSAr4syZnT03EO3T9kiT7OpW1xfXBYLVhY61mjag976iOz1Nc4OtJsnlIzLpZoRh/1TVrB3RHgbdtqW2PLifZTQGFJ+ia3Uiu4qTILLVvQ5W/NazSZtaKBGBtgjNmB1TKkwBcIelghDDaFwDwGzk6CilqPt1YT83YQWaGzr8pY3QYp8k6/p4HFtR9HlEbXnG7C83QXNrKzMYF47ubR+NU36fql6MUwtCkzTj9DjWTVPaDKuMZP1c1CvVN6ChzgXMA+TH+jpwyozVvA4MNJpDnXdkh+va4/gtp4frYzA6RieQ3UreLTsJK23T2Vc3BwWZ2opl9SPJHJJ+T8Xwjtw9ks0I5LnQS1ziSPyT5KID7kexJ0OacJNOcCnmQHAlfh7hoFe9ex1ba3VW2KSt/Tqtid/fpVscq0k1li67eQla5NIxpn8So67tl3Cu0q1CrDe1YDZtVh2Xctzkj0K+bP+fLOseARe2vu1+rBIFm9dEiciMPrgdeo9pzu3vOdj83p4pVwjmM5HIKAxhUDYJIY9c9CvwtxPOj1r1T6ivUmSLWvR5HR53Bn91I/prkzSRPjFz/u6rcWCeRBC3hOGcwL0ty6ufCgzyo3YnBISGHwBlOgvZ1BAP4ZdrroKC8vJdTwkaoOn7t91wguQfJpzMkrkkkf+dx7RvdY6Aj8/GKHZ1z1Wh934Qct0bakJYY3pn39KrUnOTWdWaun8fqml9yGut4jp5S0YJqdJH64Tr3sn8kBrJBxAgCU3vZMapyxFT+x3n5ewte5Z2IYQUmOcWZOOLE4gm6to9r+34uHi1maBMVUb9EXQyq3sRev7pXu6aeMrXqzUJozEB1qBvNsVbdjbS7kX6sdW5O29/oy1oL7bIRALl62tTImFZDM2j0Ho32+5z2dUcmjjttoeDssXTpTAdFoUCDJfH4/fMuU11XpIQNeabxiUKQlnaS+zEk/5MhBfnwmmfFkBZ0kvzhNSSu0zzWlHKJc8opp3lUmgrG9QudU+Fzkj1IrhIxn0NU9gnHFJ7GrHmJQQKamsFEPid5CcnvOoZ5sIspo0MTDVkfN8tJ0lvM7Y2Mut+WatrXSU8HS+L6nOSpObJwTjnN24xq9+jF31gv+geOEVwnxnKBY2rTBaK3XBRsebwksv9kMJUvFEC6qmvL3oJl8UHcbY4BfpihEr7GZJfwBZwqe2RkYwsezp75RiY55TSPbvChUJYZLkL9VJc7+hVD0LGdMkIXfDT7jU5iOiiSmFqc6tjCZIebdaJQhEczQgvanEr4hHIfm1wo0rGCGU5jjrd0Fm5dTjnl1EWbfTgYHpK8VudOdxJMG8klSPaXly8YzQNTu9sxk5DuMtjdZy+3e41P6g713xpw0FV+a4fn7tNjgkr4oIz7i8sm9UEGg3pJCerd5jUgzJxyymn2AN6DpR5NdBsnfD+SnnZyW9Qz2gr+pBSDemBAQ9z9RpB8JMUmFej+gBGl8sMVAM6MnWSmZhx/Xvmvzfko55TT/LU57UChkMLFP01zqteFVUIXNoxiqdrc74oi+Ye5ureSVMRIagv0z5CZovIbyLBecnW2ZqiEu/rwk84IX8opp5zm8oa0EfrH4ynIuAdF9qNV5SmckrKNViwx/Y3k1u5emyr9reKu9aEKj4d4LYeAcL0LMo1RV650z5AzqJxyms83VS1GMOEB9ruHGJOHYfmZyj7pyr4X5dvFEtMjHgSS5FAZvFtTJKawUcM+rvxKJP8Q7TwTwP765N69nHL6doUu7CYGELx1m4ihfewYxA0poQuTFOIwTIn4FcewYtzyPdx91xBm1MwM4/gYGceDbW053fcTt0tO7t3LKadvWejCspEhe18d99LSqxmoC0e4+oYIutjbmFoi4/e+rvyKirWansGw3vIwzvJIDp3fUpxyyimn+pnVuULFfMDtMnSysym1KGxhccekyk5i2jvaNegqh2ueJjEd6SS6ZSUxfRYFbwaIl74dkaydU045zR9Mq1/0f3gUwBkSlF93jMrjT71A8oBIYvqT0lsYbeEVJKbjHJ7ZIKEmfBxhVy3kdyzPRyqnnHLJytzv/pEkdLqOXxvFNJWicq+RPMxJTMs4iS2NYY3X5g2hLYsqRecKkuvl+Xs55ZRT1rbyBYfuWVZO3yr4OnShHMVRpTGgt0ke4+pcWhv6vu/KBPvU9WKSPfKRyCmnnNoTJLoCyd6R187bqI5VKs6UDJvUGdG+k4soyv1dV+YQv1dkgOHOJamccsqpYSnLIZ7eKwYzNuBCSWI61YHmBUZ2m0Ny9QxrIeUHbp978XLKKaeODBL1m3Js4AIvmyOJ6TSl3rylsAWL7GBd7sX7f8uKDroDbwlJAAAAAElFTkSuQmCC
); mask-image: url(data:image/png;base64,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
); }
html.dark #page-home #trusted { --fta-mask: var(--fta-mask); }
html.dark #page-home #trusted img[src="/logos/Rivoli.svg"] { -webkit-mask-image: var(--fta-mask); mask-image: var(--fta-mask); }
html.dark #page-home #trusted img[src="/logos/Sharjah.svg"] { -webkit-mask-image: url(/logos/Sharjah.svg); mask-image: url(/logos/Sharjah.svg); }
/* Filled marks — a roundel, a pecten, a square with the letter knocked out.
   Whitening these leaves a solid blob, so they keep their own colours; the mask
   still removes the white board they were drawn on. */
html.dark #page-home #trusted img[src="/logos/PostOffice.svg"],
html.dark #page-home #trusted img[src="/logos/Rivoli.svg"],
html.dark #page-home #trusted img[src="/logos/Shell.svg"] { filter: none; opacity: 1; }
html.dark #page-home .sub-badge { color: var(--hp-blue-dk); }

/* ── Light panels in dark mode ───────────────────────────────────────────
   Case study decks and panels are document surfaces: they hold artwork drawn
   for white and type that is hard-coded dark. They stay light in dark mode, so
   the text tokens are restored to their light values inside them — otherwise
   token-based copy inherits the dark theme's near-white and vanishes. */
html.dark .cs-panel,
html.dark .cs-deck,
html.dark .tesco-work-item,
html.dark #page-about .stat,
html.dark #page-about .agency-compare-grid > div {
  --text:      #1a1a2e;
  --text-2:    #65637a;
  --text-3:    #696778;
  --border:    rgba(0,0,0,0.08);
  --surface-1: #ffffff;
  --surface-2: #e8e8ec;
  --surface-3: #e0e0e4;
  --blue:      #1e59ee;
  color: var(--text);
}

/* Section headings on the case studies carry their navy inline and sit on the
   page itself rather than on a panel, so in dark mode they were navy on
   near-black. Only direct children of .cs-section are touched; headings inside
   the light panels keep their colour. */
html.dark [id^="page-cs-"] .cs-section > h2 { color: var(--text) !important; }

/* ── Contrast corrections ────────────────────────────────────────────────
   The footer and the digest strip are dark in both themes — #222 and #333 —
   so the brand blue is 3.51:1 and 2.96:1 on them either way. Redefining the
   token covers the footer links, whose inline styles reference it; the strip's
   eyebrow has its colour written into the markup, so it needs the override. */
.page-footer-slot,
.brevo-strip-injected { --blue: #5b86ff; }
.brevo-strip-title div { color: #7aa3ff !important; }

/* The brand blue on a pale blue chip is 3.91:1, and white at 85% on brand blue
   is 3.72:1. Both are set in the markup, so they are matched on that. */
[style*="background:var(--blue-lt)"] { color: var(--blue-dk) !important; }
[style*="color:rgba(255,255,255,0.85)"] { color: #ffffff !important; }

/* Cards sit on #222 in dark mode, a step lighter than the page, where the page
   accent is 4.14:1. This reads as the same blue and measures 4.92:1 there. */
html.dark .card,
html.dark .hero,
html.dark .cs-pn-card,
html.dark .cs-outcome-card,
html.dark .cs-col-block,
html.dark .sub-card { --blue: #5b86ff; }

/* Stat descriptions on the brand-blue panel: 90% white is 3.98:1, full white 4.54:1. */
#page-home .hp-stat-desc { color: #ffffff; }
html.dark #page-home .sub-card { border: 1px solid rgba(240,240,240,0.10); }
); mask-image: url(data:image/png;base64,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
); }
); mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAABICAYAAABIk43cAAAAX0lEQVR42u3PQQEAAAQEMPTvfEr42Rqsk6SemHpEVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZW9tYCnfYEjKZZ5YgAAAAASUVORK5CYII=
); }

html.dark #page-home .sub-card { border: 1px solid rgba(240,240,240,0.10); }
); mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALkAAABACAAAAABjW4lRAAAASklEQVR42u3OAQkAAAgDsGv/ztpCELYEq8lTHXNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz8zsLImcBf9rPc9cAAAAASUVORK5CYII=
); }
); mask-image: url(data:image/png;base64,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
); }

#page-home .sub-card-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
#page-home .sub-card-cta-text {
  font-size: 13px;
  color: var(--hp-text-2);   /* --hp-text-3 measured 2.54:1 on the card's grey */
}
#page-home .sub-card-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--hp-blue-dk);   /* --hp-blue measured 3.99:1 on the card's grey */
  text-decoration: none;
}

@media (max-width: 720px) {
  #page-home .sub-layout { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════
   8. CTA
   ══════════════════════════════════ */
#page-home #cta {
  background: var(--hp-blue);
  padding: clamp(80px, 12vw, 160px) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

#page-home .cta-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 70% at 50% 35%, rgba(255,255,255,0.16) 0%, transparent 70%),
    radial-gradient(ellipse 90% 60% at 50% 115%, rgba(17,17,19,0.3) 0%, transparent 70%);
  pointer-events: none;
}

#page-home .cta-overline {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 20px;
}

#page-home .cta-headline {
  font-size: clamp(40px, 7vw, 96px);
  font-weight: 800;
  letter-spacing: -2.5px;
  line-height: 1.0;
  color: var(--hp-white);
  margin-bottom: clamp(28px, 4vw, 48px);
  text-wrap: balance;
}

#page-home .cta-headline em {
  font-style: normal;
  color: #111113;
}
/* The dark accent word works on the wide panel; at phone width the headline wraps
   tight to the buttons and it reads as an error, so it matches the rest of the line. */
@media (max-width: 767px) {
  #page-home .cta-headline em { color: var(--hp-white); }
}

#page-home .cta-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ══════════════════════════════════
   Responsive
   ══════════════════════════════════ */
@media (max-width: 600px) {
  #page-home .hero-orb { display: none; }
  #page-home .svc-item { grid-template-columns: 40px 1fr 20px; }
  #page-home .svc-name { font-size: clamp(20px, 6vw, 28px); }
}

@media (prefers-reduced-motion: reduce) {
  #page-home .hero-orb { animation: none; }
  #page-home .ticker { animation: none; }
}


/* ══ One title style for every homepage section (the live hero h1) ══ */
#page-home { --title-size: 42px; --title-ls: -1.5px; }
@media (min-width: 768px) { #page-home { --title-size: 56px; --title-ls: -3px; } }
#page-home .hero h1, #page-home .trusted-head, #page-home .svc-name, #page-home .stats-head, #page-home .section-title, #page-home .wp-client, #page-home .team-headline, #page-home .sub-headline, #page-home .cta-headline {
  font-size: var(--title-size);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: var(--title-ls);
  text-wrap: balance;
}

/* On a phone the trusted headline is long enough that balancing it leaves four
   short lines in the middle of the column. Let it fill the gutter-to-gutter
   width instead, and drop the hard break that splits it into two halves.
   `pretty` only keeps the last line from being left short; where it isn't
   supported, `wrap` still fills. */
@media (max-width: 767px) {
  #page-home .trusted-head {
    text-wrap: wrap;
    text-wrap: pretty;
  }
  #page-home .trusted-head br { display: none; }
}

/* ══ Services panel: white copy, blue link, animated visuals ══ */
#page-home .svc-desc { color: #ffffff; }
#page-home .svc-more { color: #4a79ff; }   /* same: AA-safe accent on the dark services panel */
#page-home .svc-more:hover { color: #7aa3ff; }

#page-home .svc-slide { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: center; width: 100%; }
@media (min-width: 900px) { #page-home .svc-slide { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 5vw, 96px); } }
#page-home .svc-vis { width: 100%; max-width: 520px; justify-self: end; }
@media (max-width: 899px) { #page-home .svc-vis { justify-self: start; max-width: 440px; } }
#page-home .svc-vis svg { display: block; width: 100%; height: auto; overflow: visible; font-family: 'Inter', system-ui, sans-serif; }

#page-home .svc-vis .s-surface { fill: #1a1b21; stroke: rgba(255,255,255,0.12); stroke-width: 1; }
#page-home .svc-vis .s-dim { fill: rgba(255,255,255,0.10); }
#page-home .svc-vis .s-mid { fill: rgba(255,255,255,0.24); }
#page-home .svc-vis .s-hi { fill: rgba(255,255,255,0.6); }
#page-home .svc-vis .s-blue { fill: #2f6aff; }
#page-home .svc-vis .s-blue-lt { fill: #7aa3ff; }
#page-home .svc-vis .s-label { font-size: 10px; font-weight: 600; letter-spacing: .08em; fill: rgba(255,255,255,0.55); }

/* entrances — base state is the finished picture; animations replay each time a slide becomes active */
#page-home .svc-vis .in-pop { transform-box: fill-box; transform-origin: center; }
#page-home .svc-vis .in-draw { stroke-dasharray: 1; stroke-dashoffset: 0; }
#page-home .svc-slide.active .svc-vis .in-rise { animation: sv-rise .6s cubic-bezier(.2,.8,.2,1) var(--d, 0s) both; }
#page-home .svc-slide.active .svc-vis .in-fade { animation: sv-fade .5s ease var(--d, 0s) both; }
#page-home .svc-slide.active .svc-vis .in-pop { animation: sv-pop .5s cubic-bezier(.2,.9,.3,1.3) var(--d, 0s) both; }
#page-home .svc-slide.active .svc-vis .in-draw { animation: sv-draw .7s ease-out var(--d, 0s) both; }
@keyframes sv-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes sv-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sv-pop { from { opacity: 0; transform: scale(.3); } to { opacity: 1; transform: scale(1); } }
@keyframes sv-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes sv-march { to { stroke-dashoffset: -20; } }

/* 01 journey */
#page-home .v-journey .j-hl { fill: none; stroke: #2f6aff; stroke-width: 1.5; }
#page-home .v-journey .j-stem { stroke: rgba(255,255,255,0.12); stroke-width: 1; stroke-dasharray: 2 4; }
#page-home .v-journey .j-track { stroke: rgba(255,255,255,0.22); stroke-width: 2; stroke-dasharray: 4 6; }
#page-home .v-journey .j-fill { stroke: #2f6aff; stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: 0; }
#page-home .v-journey .j-node-base { fill: #1a1b21; stroke: rgba(255,255,255,0.3); stroke-width: 1.5; }
#page-home .v-journey .j-node { fill: #2f6aff; }
#page-home .v-journey .j-dot { transform: translateX(360px); }
#page-home .svc-slide.active .v-journey .j-track { animation: sv-march 1s linear infinite; }
#page-home .svc-slide.active .v-journey .j-fill { animation: j-fill 5s ease-in-out .6s infinite both; }
#page-home .svc-slide.active .v-journey .j-dot { animation: j-move 5s ease-in-out .6s infinite both; }
#page-home .svc-slide.active .v-journey .j-a1 { animation: j-on1 5s linear .6s infinite both; }
#page-home .svc-slide.active .v-journey .j-a2 { animation: j-on2 5s linear .6s infinite both; }
#page-home .svc-slide.active .v-journey .j-a3 { animation: j-on3 5s linear .6s infinite both; }
#page-home .svc-slide.active .v-journey .j-a4 { animation: j-on4 5s linear .6s infinite both; }
@keyframes j-move { 0% { opacity: 0; transform: translateX(0); } 3% { opacity: 1; } 25% { transform: translateX(120px); } 50% { transform: translateX(240px); } 75%, 94% { opacity: 1; transform: translateX(360px); } 100% { opacity: 0; transform: translateX(360px); } }
@keyframes j-fill { 0% { stroke-dashoffset: 1; } 25% { stroke-dashoffset: .6667; } 50% { stroke-dashoffset: .3333; } 75%, 100% { stroke-dashoffset: 0; } }
@keyframes j-on1 { 0%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes j-on2 { 0%, 24% { opacity: 0; } 27%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes j-on3 { 0%, 49% { opacity: 0; } 52%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes j-on4 { 0%, 74% { opacity: 0; } 77%, 94% { opacity: 1; } 100% { opacity: 0; } }

/* 02 interface */
#page-home .v-ui .i-cursor { transform: translate(118px, 300px); }
#page-home .v-ui .i-ripple { opacity: 0; fill: none; stroke: #ffffff; stroke-width: 2; transform-box: fill-box; transform-origin: center; }
#page-home .svc-slide.active .v-ui .i-select { animation: sv-fade .4s ease 1.3s both; }
#page-home .svc-slide.active .v-ui .i-cursor { animation: i-cursor 3.4s cubic-bezier(.45,0,.2,1) .2s both; }
#page-home .svc-slide.active .v-ui .i-ripple { animation: i-ripple 3.4s ease-out .2s both; }
@keyframes i-cursor {
  0%, 40% { opacity: 0; transform: translate(360px, 190px); }
  48% { opacity: 1; transform: translate(360px, 190px); }
  78% { transform: translate(118px, 300px) scale(1); }
  84% { transform: translate(118px, 300px) scale(.82); }
  90%, 100% { opacity: 1; transform: translate(118px, 300px) scale(1); }
}
@keyframes i-ripple { 0%, 82% { opacity: 0; transform: scale(.3); } 86% { opacity: .9; } 100% { opacity: 0; transform: scale(1.8); } }

/* 03 sketch to screen */
#page-home .v-sketch .sk { fill: none; stroke: rgba(255,255,255,0.55); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
#page-home .v-sketch .sk-arrow { fill: none; stroke: #2f6aff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
#page-home .v-sketch .sk-shaft { stroke-dasharray: 4 5; }
#page-home .svc-slide.active .v-sketch .sk-shaft { animation: sv-march .8s linear infinite; }

/* 04 service blueprint */
#page-home .v-blueprint .b-lane { fill: rgba(255,255,255,0.025); stroke: rgba(255,255,255,0.07); }
#page-home .v-blueprint .b-vis { stroke: #7aa3ff; stroke-width: 1; stroke-dasharray: 3 5; opacity: .7; }
#page-home .v-blueprint .b-path { fill: none; stroke: rgba(255,255,255,0.18); stroke-width: 1.5; stroke-linejoin: round; }
#page-home .v-blueprint .b-fill { fill: none; stroke: #2f6aff; stroke-width: 2; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
#page-home .v-blueprint .b-node-base { fill: #1a1b21; stroke: rgba(255,255,255,0.3); stroke-width: 1.5; }
#page-home .v-blueprint .b-node { fill: #2f6aff; }
#page-home .v-blueprint .b-pulse { transform: translate(410px, 86px); }
#page-home .svc-slide.active .v-blueprint .b-fill { animation: b-fill 5s ease-in-out .5s infinite both; }
#page-home .svc-slide.active .v-blueprint .b-pulse { animation: b-move 5s ease-in-out .5s infinite both; }
#page-home .svc-slide.active .v-blueprint .b-a1 { animation: b-on1 5s linear .5s infinite both; }
#page-home .svc-slide.active .v-blueprint .b-a2 { animation: b-on2 5s linear .5s infinite both; }
#page-home .svc-slide.active .v-blueprint .b-a3 { animation: b-on3 5s linear .5s infinite both; }
#page-home .svc-slide.active .v-blueprint .b-a4 { animation: b-on4 5s linear .5s infinite both; }
#page-home .svc-slide.active .v-blueprint .b-a5 { animation: b-on5 5s linear .5s infinite both; }
@keyframes b-move { 0% { opacity: 0; transform: translate(150px, 86px); } 3% { opacity: 1; } 18% { transform: translate(215px, 166px); } 36% { transform: translate(280px, 250px); } 54% { transform: translate(345px, 166px); } 72%, 94% { opacity: 1; transform: translate(410px, 86px); } 100% { opacity: 0; transform: translate(410px, 86px); } }
@keyframes b-fill { 0% { stroke-dashoffset: 1; } 18% { stroke-dashoffset: .754; } 36% { stroke-dashoffset: .5; } 54% { stroke-dashoffset: .246; } 72%, 100% { stroke-dashoffset: 0; } }
@keyframes b-on1 { 0%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes b-on2 { 0%, 17% { opacity: 0; } 20%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes b-on3 { 0%, 35% { opacity: 0; } 38%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes b-on4 { 0%, 53% { opacity: 0; } 56%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes b-on5 { 0%, 71% { opacity: 0; } 74%, 94% { opacity: 1; } 100% { opacity: 0; } }

/* 05 design system */
#page-home .v-ds .ds-acc { fill: #2f6aff; }
#page-home .v-ds .ds-acc-stroke { stroke: #2f6aff; }
#page-home .v-ds .ds-slide-fill { transform-box: fill-box; transform-origin: left center; }
#page-home .svc-slide.active .v-ds .ds-acc { animation: ds-fill 4s ease-in-out var(--t, 1s) infinite; }
#page-home .svc-slide.active .v-ds .ds-acc.ds-slide-fill { animation: ds-fill 4s ease-in-out var(--t, 1s) infinite, ds-sfill 4s ease-in-out var(--t, 1s) infinite; }
#page-home .svc-slide.active .v-ds .ds-acc-stroke { animation: ds-stroke 4s ease-in-out var(--t, 1s) infinite; }
#page-home .svc-slide.active .v-ds .ds-knob { animation: ds-toggle 4s ease-in-out var(--t, 1s) infinite; }
#page-home .svc-slide.active .v-ds .ds-slide-knob { animation: ds-sknob 4s ease-in-out var(--t, 1s) infinite; }
#page-home .svc-slide.active .v-ds .ds-caret { animation: ds-blink 1s steps(1) infinite; }
@keyframes ds-fill { 0%, 30% { fill: #2f6aff; } 40%, 75% { fill: #7aa3ff; } 85%, 100% { fill: #2f6aff; } }
@keyframes ds-stroke { 0%, 30% { stroke: #2f6aff; } 40%, 75% { stroke: #7aa3ff; } 85%, 100% { stroke: #2f6aff; } }
@keyframes ds-toggle { 0%, 30% { transform: translateX(-26px); } 40%, 75% { transform: translateX(0); } 85%, 100% { transform: translateX(-26px); } }
@keyframes ds-sfill { 0%, 30% { transform: scaleX(.35); } 40%, 75% { transform: scaleX(1); } 85%, 100% { transform: scaleX(.35); } }
@keyframes ds-sknob { 0%, 30% { transform: translateX(-39px); } 40%, 75% { transform: translateX(0); } 85%, 100% { transform: translateX(-39px); } }
@keyframes ds-blink { 50% { opacity: 0; } }

/* 06 audit */
#page-home .v-audit .a-heat { opacity: .7; transform-box: fill-box; transform-origin: center; }
#page-home .v-audit .a-scan { opacity: 0; }
#page-home .svc-slide.active .v-audit .a-heat { animation: a-heat 3s ease-in-out var(--d, 0s) infinite alternate both; }
#page-home .svc-slide.active .v-audit .a-scan { animation: a-scan 2.6s ease-in-out .2s 2 both; }
@keyframes a-heat { from { opacity: .35; transform: scale(.85); } to { opacity: .9; transform: scale(1.1); } }
@keyframes a-scan { 0% { opacity: 0; transform: translateY(0); } 10%, 90% { opacity: 1; } 100% { opacity: 0; transform: translateY(262px); } }

@media (prefers-reduced-motion: reduce) {
  #page-home .svc-vis * { animation: none !important; }
}

/* Learning Lab (live component) — follows live tokens so it keeps dark-mode support */
#page-home #articles { background: var(--page-bg); color: var(--text); padding: clamp(72px, 10vw, 120px) 0; }
#page-home #articles:has(.lab-highlights-slot:empty) { display: none; }
#page-home #articles .sec { padding: 0 var(--g); }
#page-home #articles .sec-head { margin-bottom: clamp(32px, 5vw, 56px); }
#page-home #articles .sec-head h2 { font-size: var(--title-size); font-weight: 700; line-height: 1.08; letter-spacing: var(--title-ls); color: var(--text); text-wrap: balance; }

/* Hero: stacked slides that cross-fade (the live script toggles .is-active) */
#page-home #heroTrack { display: grid; width: 100%; transform: none !important; transition: none; }
#page-home #heroTrack .hero-slide { grid-area: 1 / 1; width: 100%; visibility: hidden; pointer-events: none; transition: visibility 0s linear .3s; }
#page-home #heroTrack .hero-slide.is-active { visibility: visible; pointer-events: auto; transition: none; }
#page-home #heroTrack .hero-slide > * { opacity: 0; transform: translateY(-12px); transition: opacity .25s ease, transform .3s ease; }
#page-home #heroTrack .hero-slide.is-active > * { opacity: 1; transform: none; transition: none; }
/* headline: every word rises from its own mask (padding/negative margin give the mask room for ascenders, descenders and tight tracking) */
#page-home .hero h1 .hw { display: inline-block; overflow: hidden; vertical-align: top; padding: .12em .1em .18em; margin: -.12em -.1em -.18em; }
#page-home .hero h1 .hw, #page-home .hero h1 .hw-i { color: inherit; }
#page-home .hero h1 .hw-i { display: inline-block; }
#page-home #heroTrack .hero-slide.is-active .hw-i { animation: hx-word .85s cubic-bezier(.2,.8,.2,1) calc(.3s + var(--i) * .05s) both; }
#page-home #heroTrack .hero-slide.is-active .hero-sub { animation: hx-soft .8s cubic-bezier(.2,.8,.2,1) .7s both; }
#page-home #heroTrack .hero-slide.is-active .hero-btns > * { animation: hx-btn .7s cubic-bezier(.2,.8,.2,1) .85s both; }
#page-home #heroTrack .hero-slide.is-active .hero-btns > :nth-child(2) { animation-delay: .95s; }
@keyframes hx-word { from { transform: translateY(115%); } to { transform: translateY(0); } }
@keyframes hx-soft { from { opacity: 0; transform: translateY(14px); filter: blur(6px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes hx-btn { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  #page-home #heroTrack .hero-slide.is-active .hw-i,
  #page-home #heroTrack .hero-slide.is-active .hero-sub,
  #page-home #heroTrack .hero-slide.is-active .hero-btns > * { animation: hx-fade .4s ease both; }
  @keyframes hx-fade { from { opacity: 0; } to { opacity: 1; } }
}
