
  /* ---------- Design Tokens (matched to Figma) ---------- */
  :root {
    --bg-base: #FAFAFA;
    --bg-white: #FFFFFF;
    --bg-soft: #F5F7FB;
    --bg-dark: #0A0F1F;
    --bg-darker: #06091A;

    --ink-900: #101828;
    --ink-700: #344054;
    --ink-600: #4A5565;
    --ink-500: #6A7282;
    --ink-400: #6A7282;
    --ink-300: #D1D5DC;
    --ink-200: #E5E7EB;
    --ink-100: #F3F4F6;

    --brand: #155DFC;
    --brand-2: #0092B8;
    --brand-soft: #EAF1FF;
    --brand-glow: rgba(21, 93, 252, 0.18);

    --success: #10B981;
    --danger: #EF4444;
    --amber: #F59E0B;

    --grad-hero: linear-gradient(135deg, #FFFFFF 0%, #F5F7FB 100%);
    --grad-blue: linear-gradient(135deg, #155DFC 0%, #0092B8 100%);
    --grad-blue-soft: linear-gradient(135deg, #EAF1FF 0%, #E0F2FE 100%);

    --shadow-xs: 0 1px 2px rgba(16, 24, 40, 0.04);
    --shadow-sm: 0 4px 12px rgba(16, 24, 40, 0.06);
    --shadow-md: 0 12px 32px rgba(16, 24, 40, 0.08);
    --shadow-lg: 0 25px 50px -12px rgba(16, 24, 40, 0.18);
    --shadow-blue: 0 20px 60px -20px rgba(21, 93, 252, 0.45);

    --radius-sm: 8px;
    --radius: 12px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-pill: 999px;

    /* Spacing scale — 8-point grid */
    --space-1: 8px;
    --space-2: 16px;
    --space-3: 24px;
    --space-4: 32px;
    --space-5: 48px;
    --space-6: 64px;
    --space-7: 80px;
    --space-8: 120px;

    /* Section vertical padding */
    --section-y: clamp(60px, 8vw, 120px);
    --section-y-tight: clamp(32px, 5vw, 64px);

    /* Animation tokens */
    --dur-fast: 160ms;
    --dur-base: 250ms;
    --dur-slow: 420ms;
    --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

    /* Container scales up on larger viewports (1920px optimized) */
    --container: 1920px;
    --container-wide: 1440px;
    --prose: 720px;
    --pad-x: clamp(24px, calc(8.33vw - 40px), 120px);
      /* ===== Type scale ===== */
      --fs-display-1: var(--ps-text-h1);
      --fs-display-2: var(--ps-text-h1);
      --fs-stat: var(--ps-text-h1);
      --fs-title-l: var(--ps-text-h3);
      --fs-title-m: var(--ps-text-body);
      --fs-body: var(--ps-text-body);
      --fs-meta: var(--ps-text-nav);
      --fs-eyebrow: var(--ps-text-eyebrow);

      /* ===== Spacing scale ===== */
      --space-1: 4px;
      --space-2: 8px;
      --space-3: 12px;
      --space-4: 16px;
      --space-5: 24px;
      --space-6: 32px;
      --space-7: 48px;
      --space-8: 80px;
    }

  /* 1920px+ — give content more room without becoming oceanic */
        
  /* ---------- Reset ---------- */
  *, *::before, *::after { box-sizing: border-box; }
  html, body { margin: 0; padding: 0; }
  body {
    font-family: 'Outfit', system-ui, -apple-system, sans-serif;
    background: var(--bg-base);
    color: var(--ink-900);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.55;
    overflow-x: hidden;
  }
  a { color: inherit; text-decoration: none; }
  img, svg { display: block; max-width: 100%; }
  button { font-family: inherit; cursor: pointer; border: none; background: none; }

  /* ---------- Utility ---------- */
  .container { max-width: var(--container); margin: 0 auto; padding: 0 var(--pad-x); }
  .accent-bar { width: 64px; height: 4px; background: var(--brand); border-radius: var(--radius-pill); }
  .eyebrow {
    display: inline-block;
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--brand);
    margin-bottom: 12px;
  }
  .section { padding: clamp(60px, 9vw, 100px) 0; position: relative; }
  .section--white { background: var(--bg-white); }
  .section--gray { background: var(--bg-base); }

  h1, h2, h3, h4 {  font-weight: 500; letter-spacing: -0.025em; line-height: 1.3; margin: 0; color: var(--ink-900); font-size: var(--ps-text-h3); }
  h1 { font-size: var(--fs-display-1); font-weight: 300; letter-spacing: -0.03em; line-height: 1.18; }
  h2 { font-size: var(--fs-display-2);  font-weight:300;}
  h3 {   font-size: var(--ps-text-h3); font-weight: 500; letter-spacing: -0.02em; color: var(--ink-900); line-height: 1.3;  }
  p { margin: 0; font-size: var(--fs-title-m); font-weight: 300; line-height: 1.5; color: var(--ink-600); }

  /* ---------- Buttons ---------- */
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 52px;
    padding: 0 26px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-body);
    font-weight: 500;
    letter-spacing: 0.01em;
    transition: transform var(--dur-base) ease, box-shadow var(--dur-base) ease, background var(--dur-base) ease;
    white-space: nowrap;
  }
  .btn-primary {
    background: var(--brand);
    color: #fff;
    box-shadow: 0 8px 24px -8px var(--brand-glow);
  }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 34px -10px rgba(21,93,252,0.55); background: var(--brand-hover); }
  .btn-ghost {
    background: var(--bg-white);
    color: var(--brand);
    border: 1px solid var(--brand);
  }
  .btn-ghost:hover { background: var(--brand-soft); transform: translateY(-2px); }
  .btn-dark { background: var(--ink-900); color: #fff; }
  .btn-dark:hover { background: #000; transform: translateY(-2px); }
  .btn .arrow { transition: transform var(--dur-base) ease; }
  .btn:hover .arrow { transform: translateX(4px); }

  .btn-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    height: 40px;
    padding: 0 18px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(21, 93, 252, 0.4);
    color: var(--brand);
    font-size: var(--fs-meta);
    font-weight: 500;
    background: transparent;
    transition: all var(--dur-base) ease;
  }
  .btn-pill:hover { background: var(--brand); color: #fff; border-color: var(--brand); }
  .btn-pill svg { width: 18px; height: 18px; }

  /* ---------- HEADER (Figma node 478:158 — exact) ----------
     bg: rgba(255,255,255,0.8), border-bottom: rgba(229,231,235,0.6)
     padding: var(--space-2) var(--space-8)
     Logo: flex-1, two vectors side-by-side with -20px margin overlap
     Nav: 619.867px wide, gap 40px, Outfit Medium 16px, tracking 0.35px
       Active = var(--brand), rest = #212121
     Actions: flex-1 right, gap 32px, buttons 44×44 rounded-8
  ----------------------------------------------------------------- */
  
  .header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: var(--space-2) clamp(20px, 6vw, var(--space-8));
    box-sizing: border-box;
  }
  /* Logo: flex 1 0 0, two overlapping vectors */
  .logo {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    align-items: center;
    text-decoration: none;
  }
  /* Nav: centered */
  .nav {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
  }
  
  .nav a.active { color: var(--brand); }

  /* Solutions dropdown */

  .icon-btn {
    width: 44px;
    height: 44px;
    border-radius: 8px;
    padding: var(--space-1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink-600);
    transition: background var(--dur-fast) ease;
    flex-shrink: 0;
  }
  .icon-btn:hover { background: var(--ink-200); }
  .icon-btn svg { width: 20px; height: 20px; display: block; }

  @media (max-width: 1100px) {
    .header-inner { padding: var(--space-2) var(--space-3); }
    .nav { display: none; }
  }

  /* ---------- HERO (Figma node 478:179 — exact) ---------- */
  .hero {
    background: linear-gradient(to left, #FFFFFF, #F5F5F5);
    padding: clamp(56px,6vw,88px) clamp(20px, 6vw, var(--space-8)) clamp(40px,4vw,60px);
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
  }
  /* white-wall 1: position absolute, 1018px tall, full width, object-cover */
  .hero-wall {
    position: absolute;
    left: 0;
    top: -0.29px;
    width: 1440px;
    height: 1018px;
    pointer-events: none;
    z-index: 0;
  }
  .hero-wall img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
  }
  /* radial gradient overlay */
  .hero-radial {
    position: absolute;
    left: -1px;
    top: -0.29px;
    width: 1441px;
    height: 1018px;
    pointer-events: none;
    z-index: 1;
    background: radial-gradient(
      ellipse 720px 509px at 72.4% 50%,
      rgba(250, 250, 250, 0) 0%,
      rgba(250, 250, 250, 1) 100%
    );
  }
  /* Inner layout — flex row, image stays in flow and vertically centers with text */
  .hero-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
  }
  .hero-text-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: flex-start;
  }
  .hero h1 {
    width: 100%;
    font-family: 'Outfit', sans-serif;
    font-weight: 300;
    font-size: var(--fs-display-1);
    line-height: 1.15;
    letter-spacing: -1.5px;
    color: var(--ink-900);
    margin: 0;
  }
  .hero h1 .em {
    font-weight: 500;
    color: var(--brand-3);
  }
  /* Trust chip above headline */
  .hero-trust {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 6px 14px;
    background: var(--brand-soft);
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-pill);
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    color: var(--brand);
    letter-spacing: 0.01em;
    width: fit-content;
  }
  .hero-trust svg {
    width: 13px; height: 13px;
    stroke: currentColor;
  }
  /* Value strip — plain text with bullet dividers */
  .hero-value-strip {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: 0.01em;
    white-space: nowrap;
  }
  .hero-value-strip > span:not(.sep) {
    padding: 2px 0;
  }
  .hero-value-strip .sep {
    color: #C5CCD9;
    margin: 0 14px;
    user-select: none;
  }
  /* Row 2: sub + CTA */
  .hero-sub-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
    justify-content: center;
    padding-left: 0;
  }
  .hero-sub-row > .btn { margin-top: 28px; }
  .hero-sub {
    font-family: 'Outfit', sans-serif;
    font-weight: 300;
    font-size: var(--fs-title-m);
    line-height: 1.5;
    color: var(--ink-600);
    letter-spacing: 0.01em;
    width: 100%;
    max-width: 620px;
    margin: 0;
  }
  .hero-sub .value-strip-inline {
    display: inline;
    font-weight: 400;
    color: var(--ink-600);
    vertical-align: baseline;
  }
  .hero-sub .value-strip-inline .sep {
    color: var(--ink-600);
    margin: 0 var(--space-1);
    font-weight: 400;
    vertical-align: baseline;
    display: inline;
  }
  /* "Learn more" CTA — pill, bg #212121 */
  .hero-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 52px;
    padding: 0 28px;
    background: var(--brand);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-pill);
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    font-size: var(--fs-body);
    letter-spacing: 0.01em;
    line-height: normal;
    cursor: pointer;
    text-decoration: none;
    transition: background var(--dur-fast) ease, transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
    white-space: nowrap;
    box-shadow: 0 8px 24px -8px rgba(21, 93, 252, 0.45);
  }
  .hero-cta-btn:hover { background: var(--brand-hover); transform: translateY(-2px); box-shadow: 0 14px 34px -10px rgba(21,93,252,0.55); }
  .hero-cta-btn--ghost {
    background: transparent;
    color: var(--ink-900);
    border: 1.5px solid var(--ink-200);
    box-shadow: none;
  }
  .hero-cta-btn--ghost:hover { border-color: var(--brand); color: var(--brand); background: transparent; box-shadow: none; transform: translateY(-2px); }

  /* Right image — flex child, vertically centered by parent align-items: center */
  .hero-image-col {
    flex-shrink: 0;
    width: 460px;
    height: 340px;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: hero-float 6s ease-in-out infinite;
  }
  .hero-image-col svg {
    width: 100%;
    height: 100%;
  }
  @keyframes hero-float {
    0%, 100% { transform: translateY(0px); }
    50%       { transform: translateY(-12px); }
  }

  @media (max-width: 1100px) {
    .hero-image-col { width: 340px; height: 275px; }
  }
  @media (max-width: 1100px) {
    .hero-inner { flex-direction: column; align-items: flex-start; gap: var(--space-5); }
    .hero h1 { font-size: var(--fs-display-1); }
    .hero-wall, .hero-radial { width: 100%; }
    .hero-image-col { width: 100%; height: 260px; }
  }
  @media(max-width:480px) {
    .hero h1 { font-size: var(--fs-display-1); }
  }

  /* ---------- PROMO VIDEO (Figma — black rounded card) ---------- */
  .promo {
    background: var(--bg-base);
    padding: 0 var(--pad-x) 60px;
  }
  .promo-card {
    position: relative;
    background: #000;
    border: 1px solid rgba(229,231,235,0.6);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    height: clamp(360px, 40vw, 576px);
    display: grid;
    place-items: center;
  }
  .promo-bg {
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 30% 50%, rgba(21,93,252,0.4), transparent 50%),
      radial-gradient(circle at 70% 50%, rgba(0,146,184,0.3), transparent 50%),
      linear-gradient(135deg, var(--bg-dark) 0%, #1A2347 100%);
  }
  .promo-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
      linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 40px 40px;
  }
  .promo-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7), transparent 60%);
  }
  .play-button {
    position: relative;
    width: 96px; height: 96px;
    border-radius: 50%;
    background: var(--brand);
    display: grid; place-items: center;
    box-shadow: 0 25px 50px rgba(0,0,0,0.4);
    cursor: pointer;
    transition: transform var(--dur-base) ease;
    z-index: 2;
  }
  .play-button::before {
    content: '';
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    background: var(--brand);
    opacity: 0.4;
    animation: ripple 2s infinite;
    z-index: -1;
  }
  @keyframes ripple {
    0% { transform: scale(1); opacity: 0.4; }
    100% { transform: scale(1.4); opacity: 0; }
  }
  .play-button:hover { transform: scale(1.08); }
  .play-button:not(.nav-dropdown-trigger) svg { color: #fff; margin-left: 4px; }
  .promo-caption {
    position: absolute;
    bottom: 32px;
    left: 88px;
    display: flex;
    align-items: center;
    gap: 12px;
    z-index: 2; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5;}
  .promo-bar-vert {
    width: 4px;
    height: 48px;
    border-radius: var(--radius-pill);
    background: linear-gradient(to bottom, var(--brand-3), #00B8DB);
  }
  .promo-caption h3 {  
    color: var(--ink-900);
    font-size: var(--ps-text-h3);
    font-weight: 500;
    margin-bottom: 4px; line-height: 1.3;  }
  .promo-caption p {
    color: var(--ink-600);
    font-size: var(--fs-title-m);
    font-weight: 300; line-height: 1.5;}
  @media(max-width:768px) {
    .promo-caption { left: 24px; bottom: 24px; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5;}
    .promo-caption h3 {   font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); line-height: 1.3;  }
  }

  /* ---------- METRICS (Figma stats row, content-doc numbers) ---------- */
  .metrics {
    background: var(--bg-base);
    padding: 0 0 var(--space-7);
  }
  .metrics-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
  }
  .metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    width: 100%;
  }
  .metric {
    text-align: center;
    padding: var(--space-2) var(--space-3);
    border-right: 1px solid var(--ink-200);
  }
  .metric:last-child { border-right: none; }
  .metric-num {
    font-size: var(--ps-text-h1);
    font-weight: 300;
    color: var(--ink-900);
    letter-spacing: -0.03em;
    line-height: 1;
    margin-bottom: var(--space-2);
  }
  .metric-label {
    font-size: var(--fs-body);
    color: var(--ink-600);
    letter-spacing: 0.04em;
    font-weight: 300; line-height: 1.5;}
  @media(max-width:768px) {
    .metrics-grid { grid-template-columns: repeat(2, 1fr); }
    .metric { border-bottom: 1px solid var(--ink-200); padding: var(--space-3); }
    .metric:nth-child(odd) { border-right: 1px solid var(--ink-200); }
    .metric:nth-child(even) { border-right: none; }
    .metric:nth-last-child(-n+2) { border-bottom: none; }
  }

  /* Partners strip */
  .partners {
    background: var(--bg-white);
    padding: 36px 0;
    border-top: 1px solid var(--ink-200);
    border-bottom: 1px solid var(--ink-200);
  }
  .partners-inner {
    display: flex; align-items: center; justify-content: space-between;
    gap: 40px; flex-wrap: wrap;
  }
  .partners-label {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--brand);
    margin-bottom: 12px;
    text-align: center;
    display: block;
  }
  .partners-list {
    display: flex; gap: 36px; align-items: center; flex-wrap: wrap;
    flex: 1; justify-content: flex-end;
  }
  .partners-list span {
    font-size: var(--fs-body);
    font-weight: 500;
    color: var(--ink-500);
    transition: color var(--dur-fast);
  }
  .partners-list span:hover { color: var(--ink-900); }

  /* ---------- SECTION HEADER ---------- */
  .section-header {
    text-align: center;
    max-width: 760px;
    margin: 0 auto var(--space-6);
  }
  .section-header h2 { margin: var(--space-2) 0 20px; }
  .section-header h2 em { font-style: normal; font-weight: 500; color: var(--brand); }
  .section-header p {
    font-size: var(--fs-title-m);
    color: var(--ink-600);
    font-weight: 300;
    line-height: 1.5;
  }
  .section-header .accent-bar { margin: 28px auto 0; }

  /* ---------- SOUND FAMILIAR — Hybrid: Concept D title + Concept C counters ---------- */
  .sf-section {
    padding: 0;
    background: #FFFFFF;
    position: relative;
    overflow: hidden;
  }
  /* Top editorial zone — Option B */
  .sf-top {
    padding: clamp(52px, 7vw, 88px) var(--pad-x) clamp(20px, 2.5vw, var(--space-4));
    position: relative;
    z-index: 2;
   text-align: center;}
  .sf-metrics-band { padding: 0 var(--pad-x); }
  .sf-eyebrow {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--brand);
    margin: 0 0 var(--space-3);
    display: block;
  }
  .sf-bar {
    width: 40px;
    height: 3px;
    background: var(--brand);
    border-radius: var(--radius);
    margin-bottom: 28px;
  }
  .sf-vs-row {
    display: flex;
    align-items: baseline;
    gap: clamp(var(--space-2), 3vw, 36px);
    flex-wrap: wrap;
  }
  .sf-line1 {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 300;
    color: var(--ink-600);
    letter-spacing: -0.04em;
    line-height: 1.5;
  }
  .sf-vs-badge {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--ink-600);
    flex-shrink: 0;
    padding-bottom: 4px;
  }
  .sf-line2 {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 300;
    color: var(--ink-600);
    letter-spacing: -0.04em;
    line-height: 1.5;
    opacity: 0.45;
  }
  .sf-top-sub {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    max-width: 580px;
    
    margin: var(--space-3) auto 0;
  }
  /* Metrics band */
  .po-title {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-display-2);
    font-weight: 300;
    color: var(--ink-900);
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0;
    max-width: var(--container);
  }
  .po-title em {
    font-style: normal;
    font-weight: 500;
    color: var(--brand);
  }

  .po-rows {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-1);
  }
  .po-cell {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: var(--space-3) 22px;
    border-right: 1px solid var(--ink-200);
    transition: background var(--dur-base) ease;
  }
  .po-cell:last-child { border-right: none; }
  .po-cell:hover { background: #FAFBFD; }

  .po-dwrap {
    position: relative;
    width: 80px; height: 80px;
    flex-shrink: 0;
  }
  .po-dwrap svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
  }
  .po-dtrack {
    fill: none;
    stroke: #F1F3F7;
    stroke-width: 6;
  }
  .po-dprog {
    fill: none;
    stroke: var(--brand);
    stroke-width: 6;
    stroke-linecap: round;
    transition: stroke-dashoffset 1.4s var(--ease-out);
  }
  .po-dcircle {
    fill: #F1F3F7;
  }
  .po-dcenter {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .po-dnum {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h1);
    font-weight: 400;
    color: var(--brand);
    letter-spacing: -0.025em;
    line-height: 1;
  }
  .po-dnum .sfx { font-size: var(--fs-meta); font-weight: 300; }
  .po-dnum em {
    font-style: normal;
    font-family: 'Outfit', system-ui, -apple-system, sans-serif;
    font-weight: 400;
  }

  .po-dtext {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
  }
  .po-dlabel {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.01em;
    line-height: 1.2;
  }
  .po-ddir {
    font-family: 'Outfit', system-ui, -apple-system, sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--ink-600);
  }

  @media (max-width: 1100px) {
    .po-rows { grid-template-columns: repeat(2, 1fr); }
    .po-cell:nth-child(2) { border-right: none; }
    .po-cell:nth-child(1), .po-cell:nth-child(2) { border-bottom: 1px solid var(--ink-200); }
  }
  @media(max-width:480px) {
    .po-rows { grid-template-columns: 1fr; }
    .po-cell { border-right: none; border-bottom: 1px solid var(--ink-200); }
    .po-cell:last-child { border-bottom: none; }
  }

  @media (max-width: 1100px) {
    .sf-metric:nth-last-child(-n+2) { border-bottom: none; padding-bottom: 0; }
  }
  @media(max-width:480px) {
  }
  /* CTA zone — A4 minimal */
  .sf-cta-zone {
    padding: 36px var(--pad-x) var(--space-6);
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
    border-top: 1px solid var(--ink-200);
    border-bottom: 1px solid var(--ink-200);
  }
  .sf-cta-left {}
  .sf-cta-heading {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-display-2);
    font-weight: 300;
    color: var(--ink-900);
    letter-spacing: -0.035em;
    line-height: 1.2;
    margin-bottom: var(--space-1);
  }
  .sf-cta-sub {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    max-width: 500px;
  }
  .sf-cta-right {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
    align-items: center;
  }
  .sf-cta-btn-p {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 500;
    color: #fff;
    background: var(--ink-900);
    border: none;
    border-radius: var(--radius-pill);
    padding: 12px 26px;
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--dur-fast) ease;
  }
  .sf-cta-btn-p:hover { background: #1E293B; }
  .sf-cta-btn-s {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 400;
    color: var(--ink-700);
    background: #fff;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius-pill);
    padding: 12px 26px;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color var(--dur-fast) ease, color var(--dur-fast) ease;
  }
  .sf-cta-btn-s:hover { border-color: var(--brand-border); color: var(--brand); }
  /* Responsive */
  @media (max-width: 1100px) {
    .sf-top { padding: var(--space-5) 40px 40px; }

    .sf-cta-zone { padding: var(--space-4) clamp(20px, 4vw, 40px) var(--space-5); flex-direction: column; align-items: flex-start; gap: var(--space-3); }
    .sf-cta-right { flex-wrap: wrap; }
  }
  @media(max-width:480px) {
    .sf-top { padding: var(--space-5) 20px var(--space-4); }
    .sf-line1, .sf-line2 { font-size: var(--fs-body); font-weight: 300; color: var(--ink-600); line-height: 1.5;}
    .sf-cta-zone { padding: 28px 20px 44px; }  /* mobile */
    .sf-cta-right { flex-direction: column; width: 100%; }
    .sf-cta-btn-p, .sf-cta-btn-s { width: 100%; text-align: center; }
  }

  .solutions-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
  .solution-card {
    background: var(--bg-white);
    border: 1px solid var(--ink-200);
    border-radius: var(--radius-xl);
    padding: var(--space-5) 40px;
    position: relative;
    overflow: hidden;
    transition: all var(--dur-base) var(--ease-out);
    cursor: pointer;
  }
  .solution-card:hover {
    transform: translateY(-6px);
    border-color: var(--brand);
    box-shadow: var(--shadow-blue);
  }
  .solution-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(600px 300px at 100% 0%, rgba(21,93,252,0.06), transparent 70%);
    opacity: 0;
    transition: opacity var(--dur-base) ease;
    pointer-events: none;
  }
  .solution-card:hover::before { opacity: 1; }
  .solution-num {
    font-family: 'Outfit', system-ui, -apple-system, sans-serif;
    font-size: var(--fs-meta);
    color: var(--brand);
    letter-spacing: 0.1em;
    margin-bottom: var(--space-3);
  }
  .solution-card h3 {  
    font-size: var(--ps-text-h3);
    font-weight: 500;
    margin-bottom: var(--space-2); color: var(--ink-900); line-height: 1.3;  }
  .solution-card p {
    font-size: var(--fs-title-m);
    color: var(--ink-600);
    line-height: 1.5;
    margin-bottom: 28px;
    min-height: 80px; font-weight: 300;}
  .solution-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--brand);
    font-weight: 500;
    font-size: var(--fs-body);
  }
  .solution-link svg { transition: transform var(--dur-base) ease; }
  .solution-card:hover .solution-link svg { transform: translateX(6px); }
  .solution-visual {
    position: absolute;
    top: 32px; right: 32px;
    width: 64px; height: 64px;
    border-radius: var(--radius);
    background: var(--grad-blue-soft);
    display: grid; place-items: center;
    color: var(--brand);
  }
  @media(max-width:768px) { .solutions-grid { grid-template-columns: 1fr; } }

  .ai-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }
  .ai-cards .span-2 { grid-column: span 2; }
  .ai-card {
    background: #fff;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius-lg);
    padding: 28px;
    transition: all var(--dur-base) var(--ease-out);
    position: relative;
    overflow: hidden;
  }
  .ai-card:hover {
    transform: translateY(-4px);
    border-color: var(--brand);
    box-shadow: var(--shadow-md);
  }
  .ai-icon {
    width: 44px; height: 44px;
    border-radius: var(--radius);
    background: var(--grad-blue-soft);
    color: var(--brand);
    display: grid; place-items: center;
    margin-bottom: 20px;
    transition: all var(--dur-base) var(--ease-out);
  }
  .ai-card:hover .ai-icon { background: var(--brand); color: #fff; transform: rotate(-4deg); }
  .ai-card h4 { 
    font-size: var(--ps-text-h3);
    font-weight: 500;
    margin-bottom: 10px;
    color: var(--ink-900);
    letter-spacing: -0.01em; line-height: 1.3; }
  .ai-card p {
    font-size: var(--fs-title-m);
    color: var(--ink-600);
    line-height: 1.5;
    font-weight: 300;
  }
  .ai-card .tag {
    display: inline-block;
    margin-top: var(--space-2);
    font-size: var(--fs-eyebrow);
    color: var(--brand);
    background: var(--brand-soft);
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    letter-spacing: 0.05em;
    font-weight: 500;
  }
  .ai-cta-row { text-align: center; margin-top: var(--space-5); }
  @media (max-width: 1100px) {
    .ai-cards { grid-template-columns: repeat(2, 1fr); }
    .ai-cards .span-2 { grid-column: span 2; }
  }
  @media(max-width:480px) {
    .ai-cards { grid-template-columns: 1fr; }
    .ai-cards .span-2 { grid-column: span 1; }
  }

  .trans-row {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 60px;
    align-items: center;
    padding: 56px 0;
    border-bottom: 1px solid var(--ink-200);
  }
  .trans-row:last-child { border-bottom: none; }
  .trans-row.reverse { grid-template-columns: 320px 1fr; }
  .trans-row.reverse .trans-content { order: 2; }
  .trans-row.reverse .trans-visual { order: 1; }
  .trans-content h3 {  
    font-size: var(--ps-text-h3);
    font-weight: 500;
    margin-bottom: var(--space-2);
    color: var(--ink-900); line-height: 1.3;  }
  .trans-content p {
    font-size: var(--fs-title-m);
    color: var(--ink-600);
    font-weight: 300;
    line-height: 1.5;
    max-width: 540px;
    margin-bottom: var(--space-3);
  }
  .trans-tags { display: flex; gap: var(--space-1); flex-wrap: wrap; margin-bottom: var(--space-3); }
  .trans-tag {
    font-size: var(--fs-eyebrow);
    color: var(--ink-700);
    background: var(--ink-100);
    padding: 6px 12px;
    border-radius: var(--radius-pill);
    font-weight: 500;
  }
  .trans-visual {
    width: 280px; height: 280px;
    margin: 0 auto;
    position: relative;
    display: grid; place-items: center;
  }
  .gear {
    width: 100%; height: 100%;
    color: var(--ink-300);
    animation: rotate 30s linear infinite;
    transition: color var(--dur-slow) ease;
  }
  .trans-row:hover .gear { color: var(--brand); }
  .gear-glow {
    position: absolute;
    width: 80%; height: 80%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(21,93,252,0.12), transparent 70%);
    filter: blur(20px);
  }
  @keyframes rotate { to { transform: rotate(360deg); } }
  @media(max-width:768px) {
    .trans-row, .trans-row.reverse { grid-template-columns: 1fr; gap: var(--space-4); padding: 40px 0; }
    .trans-row.reverse .trans-content { order: 1; }
    .trans-row.reverse .trans-visual { order: 2; }
    .trans-visual { width: 200px; height: 200px; }
  }

  /* ---------- WHY PRIMESOFT — sticky left / stacked card scroll ---------- */
  .why-section { background: #FFFFFF; }
  .why-layout {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: var(--space-7);
    align-items: start;
  }
  .why-left {
    position: sticky;
    top: 100px;
  }
  .why-right {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  /* Each card is sticky — sticks at increasing top values */
  /* Next card slides over the previous because of higher z-index */
  /* Inactive cards — black icon + title */
  /* Active card — blue bold icon + title */

  .why-left-eyebrow {
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--brand);
    display: block;
    margin-bottom: 14px;
  }
  .why-left-headline {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-display-2);
    font-weight: 300;
    color: var(--ink-900);
    letter-spacing: -0.03em;
    line-height: 1.15;
    margin-bottom: 20px;
  }
  .why-left-headline strong { font-weight: 500; color: var(--brand); }
  .why-left-bar {
    width: 48px;
    height: 3px;
    background: var(--brand);
    border-radius: var(--radius-pill);
    margin-bottom: 20px;
  }
  .why-left-sub {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin-bottom: 28px;
  }
  .why-left-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta);
    font-weight: 500;
    color: #fff;
    background: var(--brand);
    border: none;
    border-radius: var(--radius-pill);
    padding: 12px var(--space-3);
    cursor: pointer;
    text-decoration: none;
    transition: background var(--dur-fast) ease;
  }
  .why-left-cta:hover { background: var(--brand-hover); }
  .why-left-cta svg { width: 13px; height: 13px; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
  @media (max-width: 1100px) {
    .why-layout { grid-template-columns: 1fr; gap: 40px; }
    .why-left { position: static; }
  }
  @media(max-width:480px) {
  }

  /* ---------- POC SECTION — Dark centered (Option A) ---------- */
  .poc {
    background: #FFFFFF;
    position: relative;
    overflow: hidden;
  }
  .poc-card {
    background: var(--bg-dark);
    border-radius: var(--radius-xl);
    padding: 72px var(--space-7);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0;
  }
  .poc-left {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    max-width: 640px;
  }
  .poc-eyebrow {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--brand);
    display: block;
    margin-bottom: 20px;
  }
  .poc h2 {
    font-size: var(--fs-display-2);
    font-weight: 300;
    color: #ffffff;
    line-height: 1.2;
    letter-spacing: -0.03em;
    margin: 0 0 20px;
  }
  .poc h2 b { font-weight: 500; color: var(--brand); }
  .poc-sub {
    font-size: var(--fs-title-m);
    color: var(--ink-600);
    font-weight: 300;
    line-height: 1.5;
    margin: 0 0 36px;
  }
  .poc-cta {
    background: var(--brand);
    color: #fff;
    height: 52px;
    padding: 0 var(--space-4);
    font-size: var(--fs-body);
    font-weight: 500;
    width: fit-content;
    box-shadow: none;
    margin-top: var(--space-1);
    border-radius: var(--radius-pill);
  }
  .poc-cta:hover { background: var(--brand-hover); transform: translateY(-2px); }
  @media(max-width:480px) {
    .poc-card { padding: var(--space-5) 28px; }
  }

  /* ---------- CLIENTS REVIEW (reference redesign) ---------- */
  /* ───── Clients section — magazine header + italic-serif quote (OPT C) ───── */
  .clients-q-section {
    background: #FAFBFD;
    padding: clamp(var(--space-6), 8vw, 100px) 0;
  }
  .clients-q-inner {
    max-width: 860px;
    margin: 0 auto;
    padding: 0 var(--pad-x);
  }
  .clients-q-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding-bottom: 22px;
    border-bottom: 1px solid var(--ink-200);
    margin-bottom: 40px;
    flex-wrap: wrap;
  }
  .clients-q-profile {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .clients-q-avatar {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand), var(--brand-3));
    color: #fff;
    font-size: var(--fs-meta);
    font-weight: 500;
    letter-spacing: 0.01em;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .clients-q-info { text-align: left; }
  .clients-q-name {
    font-size: var(--fs-body);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.01em;
    line-height: 1.3;
  }
  .clients-q-meta {
    font-size: var(--fs-meta);
    color: var(--ink-600);
    line-height: 1.4;
    margin-top: 2px;
  }
  .clients-q-sep { margin: 0 var(--space-1); color: #C5CCD9; }
  .clients-q-project { color: var(--ink-600); }
  .clients-q-actions {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .clients-q-company {
    font-size: var(--fs-meta);
    font-weight: 500;
    color: var(--brand);
    padding: 6px 14px;
    background: var(--brand-soft);
    border-radius: var(--radius-pill);
    letter-spacing: -0.005em;
    white-space: nowrap;
  }
  .clients-q-nav { display: flex; gap: 6px; }
  .clients-q-nav-btn {
    width: 34px; height: 34px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--ink-200);
    color: var(--ink-600);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;
  }
  .clients-q-nav-btn:hover { background: var(--brand); border-color: var(--brand); color: #fff; }
  .clients-q-nav-btn svg { width: 15px; height: 15px; }
  .clients-q-quote {
    font-family: 'Outfit', sans-serif;
    font-style: normal;
    font-size: var(--ps-text-h1);
    font-weight: 300;
    color: var(--ink-900);
    line-height: 1.35;
    letter-spacing: -0.018em;
    margin: 0 auto;
    max-width: 720px;
    text-align: center;
  }
  .clients-q-quote::before { content: open-quote; }
  .clients-q-quote::after { content: close-quote; }
  .clients-q-dots {
    display: flex;
    justify-content: center;
    gap: var(--space-1);
    margin-top: 44px;
  }
  .clients-q-dot {
    width: 6px; height: 6px;
    border-radius: var(--radius-pill);
    background: #DCE5F7;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background var(--dur-base) ease, width var(--dur-base) ease;
  }
  .clients-q-dot:hover { background: var(--brand-border); }
  .clients-q-dot.active {
    background: var(--brand);
    width: 22px;
  }
  @media(max-width:768px) {
    .clients-q-header { gap: var(--space-2); margin-bottom: var(--space-4); }
    .clients-q-actions { width: 100%; justify-content: space-between; }
    .clients-q-quote { font-size: var(--fs-title-l); }
  }

  .clients-section {
    background: #FFFFFF;
    padding: clamp(60px, 8vw, 100px) 0;
    position: relative;
    overflow: hidden;
  }
  .clients-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-7);
    align-items: center;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--pad-x);
  }
  .clients-left {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  /* Section title — large, light weight, matching reference */
  .clients-section-title {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-display-2);
    font-weight: 300;
    color: var(--ink-900);
    letter-spacing: -1.5px;
    line-height: 1.15;
    margin: 0 0 4px;
  }
  /* Logos row */
  .clients-logos {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 28px 0;
  }
  .clients-logo {
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    border-radius: var(--radius);
    background: #FFFFFF;
    border: 1px solid #EBEBEB;
    transition: all var(--dur-base) var(--ease-out);
    cursor: pointer;
    opacity: 0.35;
    filter: grayscale(1);
  }
  .clients-logo.active {
    opacity: 1;
    filter: none;
    border-color: var(--brand-border);
    box-shadow: 0 2px 12px rgba(21,93,252,0.1);
  }
  .clients-logo img { height: 32px; width: auto; object-fit: contain; }
  /* Nav arrows — below logos, left-aligned */
  .clients-nav {
    display: flex;
    gap: 10px;
    align-items: center;
  }
  .clients-nav-btn {
    width: 44px; height: 44px;
    border-radius: 8px;
    border: 1.5px solid var(--ink-400);
    background: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: all var(--dur-fast) var(--ease-out);
    color: var(--ink-900);
  }
  .clients-nav-btn:hover { background: var(--ink-900); border-color: var(--ink-900); color: #fff; }
  .clients-nav-btn svg { width: 16px; height: 16px; }
  /* Divider */
  .clients-divider {
    width: 100%;
    height: 1px;
    background: var(--ink-200);
    margin-bottom: 28px;
  }
  /* Testimonial */
  .clients-testimonial { display: flex; flex-direction: column; gap: 20px; }
  .clients-project {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 400;
    color: var(--ink-900);
    letter-spacing: -0.5px;
    line-height: 1.25;
    margin: 0;
  }
  .clients-quote {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin: 0;
    max-width: 480px;
  }
  /* Author */
  .clients-author { display: flex; gap: 14px; align-items: center; }
  .clients-avatar {
    width: 52px; height: 52px;
    border-radius: 50%;
    flex-shrink: 0;
    background: #D1D8F5;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body); font-weight: 500; color: var(--brand);
    overflow: hidden;
  }
  .clients-avatar img {
    width: 100%; height: 100%;
    object-fit: cover;
    border-radius: 50%;
  }
  .clients-author-name {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600);
    letter-spacing: -0.2px; line-height: 1.5;
  }
  .clients-author-role {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta); font-weight: 300; color: var(--ink-600);
    line-height: 1.5;
  }
  /* Right: laptop mockup */
  .clients-right {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
  }
  .clients-laptop-wrap {
    width: 100%;
    max-width: 520px;
    position: relative;
    filter: drop-shadow(0 32px 64px rgba(16,24,40,0.14));
    transition: transform var(--dur-slow) ease;
  }
  .clients-laptop-wrap:hover { transform: translateY(-6px); }
  .clients-laptop-svg {
    width: 100%;
    height: auto;
    display: block;
  }
  /* Screen inner — sits inside the laptop bezel */
  .clients-screen {
    position: absolute;
    top: 6.2%;
    left: 13%;
    width: 74%;
    height: 60%;
    background: #F0F4FF;
    border-radius: var(--radius);
    overflow: hidden;
    display: flex;
    align-items: stretch;
  }
  /* Mini UI inside the screen */
  .clients-screen-ui {
    width: 100%;
    height: 100%;
    background: #fff;
    display: flex;
    flex-direction: column;
  }
  .cs-topbar {
    background: var(--brand);
    height: 18%;
    display: flex;
    align-items: center;
    padding: 0 var(--space-1);
    gap: 4px;
  }
  .cs-topbar-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.5); }
  .cs-topbar-search {
    flex: 1;
    height: 10px;
    background: rgba(255,255,255,0.25);
    border-radius: var(--radius);
    margin: 0 6px;
  }
  .cs-body {
    display: flex;
    flex: 1;
    overflow: hidden;
  }
  .cs-sidebar {
    width: 28%;
    background: #F8F9FC;
    border-right: 1px solid var(--ink-200);
    padding: 6px 4px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .cs-nav-item {
    height: 8px;
    border-radius: var(--radius);
    background: var(--ink-200);
  }
  .cs-nav-item.active { background: #C7D2FE; }
  .cs-main {
    flex: 1;
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 5px;
  }
  .cs-row {
    display: flex;
    gap: 4px;
  }
  .cs-card {
    flex: 1;
    border-radius: var(--radius);
    background: var(--ink-200);
    height: 36px;
    overflow: hidden;
    position: relative;
  }
  .cs-card-img {
    width: 100%; height: 100%;
    background: linear-gradient(135deg, #E0E7FF, #DFF2FE);
  }
  .cs-card-tag {
    position: absolute;
    bottom: 3px; left: 3px;
    width: 50%;
    height: 5px;
    background: var(--ink-400);
    border-radius: 2px;
  }
  .cs-table {
    background: var(--bg-soft);
    border: 1px solid var(--ink-200);
    border-radius: var(--radius);
    padding: 3px;
    flex: 1;
  }
  .cs-table-row {
    display: flex;
    gap: 3px;
    margin-bottom: 2px;
  }
  .cs-cell {
    flex: 1;
    height: 6px;
    background: var(--ink-200);
    border-radius: var(--radius);
  }
  .cs-cell.head { background: #C7D2FE; }

  @media (max-width: 1100px) {
    .clients-inner { grid-template-columns: 1fr; gap: var(--space-5); }
    .clients-laptop-wrap { max-width: 420px; margin: 0 auto; }
  }
  @media(max-width:480px) {
    .clients-project { font-size: var(--ps-text-h3); }
    .clients-section-title { font-size: var(--fs-display-2); }
  }

  /* ---------- INDUSTRIES — full bleed dark overlay ---------- */
  .ind-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-2);
  }
  .ind-card {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    height: 340px;
    cursor: pointer;
    border: 1px solid var(--ink-200);
    opacity: 0;
    transform: translateY(28px);
    transition: opacity var(--dur-slow) ease, transform var(--dur-slow) ease, box-shadow var(--dur-base) ease;
  }
  .ind-card.ind-visible { opacity: 1; transform: translateY(0); }
  .ind-card:nth-child(1) { transition-delay: 0s; }
  .ind-card:nth-child(2) { transition-delay: 0.1s; }
  .ind-card:nth-child(3) { transition-delay: 0.2s; }
  .ind-card:nth-child(4) { transition-delay: 0.3s; }
  .ind-card:hover { box-shadow: 0 16px 40px rgba(0,0,0,0.18); border-color: transparent; }
  .ind-img {
    position: absolute;
    inset: 0; width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.62);
    transition: transform var(--dur-slow) var(--ease-in-out), filter var(--dur-slow) ease;
  }
  /* Full-card dark tint overlay above image, below text */
  .ind-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10,15,31,0.25) 0%, rgba(10,15,31,0.55) 100%);
    z-index: 1;
    pointer-events: none;
    transition: opacity var(--dur-base) ease;
  }
  .ind-card:hover .ind-img { transform: scale(1.07); filter: brightness(0.55); }
  /* Default: title at bottom, dark gradient */
  .ind-default {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 52px 20px 20px;
    background: linear-gradient(to top, rgba(10,15,31,0.85) 0%, transparent 100%);
    z-index: 2;
    transition: opacity var(--dur-base) ease;
  }
  .ind-card:hover .ind-default { opacity: 0; }
  .ind-card-name {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3); font-weight: 500;
    color: #FFFFFF; letter-spacing: -0.02em; line-height: 1.3;
  }
  .ind-card-sub {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m); font-weight: 300;
    color: rgba(255,255,255,0.78); margin-top: 6px; line-height: 1.5;
  }
  /* Hover: dark progressive blur panel rises from bottom */
  .ind-hover {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 44px 20px 22px;
    background: linear-gradient(to top,
      rgba(10,15,31,0.96) 0%,
      rgba(10,15,31,0.88) 40%,
      rgba(10,15,31,0.55) 70%,
      rgba(10,15,31,0.0) 100%
    );
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 3;
    transform: translateY(100%);
    transition: transform var(--dur-slow) var(--ease-in-out);
  }
  .ind-card:hover .ind-hover { transform: translateY(0); }
  .ind-hover-title {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3); font-weight: 500;
    color: #FFFFFF; margin-bottom: 10px; letter-spacing: -0.02em; line-height: 1.3;}
  .ind-hover-desc {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m); font-weight: 300;
    color: rgba(255,255,255,0.82); line-height: 1.5; margin-bottom: var(--space-2);
  }
  .ind-hover-link {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta); font-weight: 500; color: #fff;
    display: inline-flex; align-items: center; gap: 5px;
    border-bottom: 1px solid rgba(255,255,255,0.35);
    padding-bottom: 2px; text-decoration: none;
    transition: gap var(--dur-fast) ease;
  }
  .ind-card:hover .ind-hover-link { gap: 9px; }
  @media (max-width: 1100px) { .ind-grid { grid-template-columns: repeat(2, 1fr); } }
  @media(max-width:480px)  { .ind-grid { grid-template-columns: 1fr; } }

  /* ---------- CASE STUDIES — 3D Flip Cards (Cloud & DevOps Case Studies AA5) ---------- */
  .cs-flip-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    max-width: var(--container);
    margin: 0 auto;
    perspective: 1500px;
  }
  .cs-flip-card {
    aspect-ratio: 4/5;
    border-radius: var(--radius);
    cursor: pointer;
    transform-style: preserve-3d;
    transition: transform 0.7s cubic-bezier(0.2,0.8,0.2,1);
    position: relative;
    text-decoration: none;
    color: inherit;
  }
  .cs-flip-card:hover, .cs-flip-card:focus-visible { transform: rotateY(180deg); outline: none; }
  .cs-flip-card .cs-flip-face {
    position: absolute; inset: 0;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    border-radius: var(--radius);
    overflow: hidden;
  }
  .cs-flip-card .cs-front {
    background: linear-gradient(135deg, #fff, #F4F8FF);
    border: 1px solid var(--ink-200);
    padding: 28px;
    display: flex;
    flex-direction: column;
  }
  .cs-flip-card .cs-front .cs-titleblock { margin-top: auto; padding-top: var(--space-2); padding-bottom: 4px; }
  .cs-flip-card .cs-front .cs-top { display: flex; justify-content: space-between; align-items: center; }
  .cs-flip-card .cs-front .cs-ind {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.2px;
  }
  .cs-flip-card .cs-front .cs-tag {
    font-family: 'JetBrains Mono', 'Outfit', monospace;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    color: var(--brand);
    padding: 5px 11px;
    background: #F1F5FF;
    border: 1px solid var(--brand-border);
    border-radius: var(--radius-pill);
    letter-spacing: 0.12em;
  }
  .cs-flip-card .cs-front .cs-mockup {
    flex: 0 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 0 22px;
    min-height: 0;
    overflow: hidden;
  }
  .cs-flip-card .cs-front .cs-mockup svg,
  .cs-flip-card .cs-front .cs-mockup img {
    max-width: 72%;
    max-height: 200px;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 10px 24px rgba(21,93,252,0.16));
  }
  .cs-flip-card .cs-front .cs-titleblock h3 {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 500;
    color: var(--ink-900);
    margin: 0 0 6px;
    line-height: 1.3;
    letter-spacing: -0.2px;
  }
  .cs-flip-card .cs-front .cs-hint {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    color: var(--ink-600);
    letter-spacing: normal;
    text-transform: none;
  }
  .cs-flip-card .cs-back {
    background: linear-gradient(135deg, var(--brand), var(--brand-3));
    transform: rotateY(180deg);
    color: #fff;
    padding: var(--space-4) 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
  }
  .cs-flip-card .cs-back .cs-back-tag {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    letter-spacing: normal;
    opacity: 0.85;
    text-transform: none;
  }
  .cs-flip-card .cs-back .cs-stat-mega {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-stat);
    font-weight: 300;
    line-height: 1;
    letter-spacing: -3px;
  }
  .cs-flip-card .cs-back .cs-stat-lbl {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta);
    opacity: 0.92;
    margin-top: 6px;
  }
  .cs-flip-card .cs-back h3 {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 500;
    margin: 14px 0 10px;
    line-height: 1.3;
    color: #fff;
    letter-spacing: -0.2px;
  }
  .cs-flip-card .cs-back p {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta);
    color: rgba(255,255,255,0.92);
    line-height: 1.55;
    margin: 0;
    font-weight: 300;
  }
  .cs-flip-card .cs-back .cs-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 10px 18px;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.3);
    color: #fff;
    border-radius: var(--radius-pill);
    font-size: var(--fs-meta);
    font-weight: 500;
    text-decoration: none;
    backdrop-filter: blur(10px);
    align-self: flex-start;
    margin-top: 6px;
    transition: background 0.25s;
  }
  .cs-flip-card .cs-back .cs-cta:hover { background: rgba(255,255,255,0.28); }

  @media (max-width: 1100px) { .cs-flip-grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 720px)  { .cs-flip-grid { grid-template-columns: 1fr; } .cs-flip-card { aspect-ratio: 1; } }

  /* ---------- BLOGS (Figma style) ---------- */
  .insights-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
  }
  .insight-card {
    cursor: pointer;
    transition: transform var(--dur-base) ease, box-shadow var(--dur-base) ease;
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--ink-200);
    padding-bottom: var(--space-3);
    text-decoration: none;
    display: block;
  }
  .insight-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(21,93,252,0.08); }
  .insight-img {
    height: 200px;
    border-radius: var(--radius) var(--radius) 0 0;
    margin-bottom: 20px;
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform var(--dur-slow) var(--ease-in-out);
  }
  .insight-card:hover .insight-img { transform: scale(1.04); }
  .insight-tag {
    font-size: var(--fs-eyebrow);
    color: var(--brand);
    background: var(--brand-soft);
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    letter-spacing: 0.1em;
    font-weight: 500;
    display: inline-block;
    margin-bottom: var(--space-2);
    margin-left: var(--space-3);
  }
  .insight-card h4 { 
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    line-height: 1.3;
    margin-bottom: 12px;
    letter-spacing: -0.02em;
    padding: 0 var(--space-3);
   }
  .insight-card p {
    font-size: var(--fs-title-m);
    color: var(--ink-600);
    line-height: 1.5;
    font-weight: 300;
    margin-bottom: 0;
    padding: 0 var(--space-3);
  }
  .view-all-row {
    display: flex; justify-content: center;
    margin-top: 56px;
  }
  .view-all-btn {
    height: 52px;
    padding: 0 36px;
    background: #fff;
    border: 1.5px solid var(--ink-400);
    border-radius: var(--radius-pill);
    color: var(--ink-900);
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 400;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    transition: all var(--dur-base) ease;
  }
  .view-all-btn:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); box-shadow: 0 4px 16px rgba(21,93,252,0.1); }
  @media (max-width: 1100px) { .insights-grid { grid-template-columns: 1fr; } }

  /* ---------- FINAL CTA (Figma "Ready to Build the Future" style) ---------- */
  .final-cta {
    background:
      radial-gradient(900px 500px at 50% 0%, rgba(21,93,252,0.08), transparent 60%),
      var(--bg-base);
    text-align: center;
  }
  .final-cta h2 {
    font-size: var(--fs-display-2);
    margin-bottom: var(--space-3);
  }
  .final-cta-sub {
    font-size: var(--fs-title-m);
    color: var(--ink-600);
    font-weight: 300;
    max-width: 720px;
    margin: 0 auto var(--space-4);
    line-height: 1.5;
  }
  .final-cta .accent-bar { margin: 0 auto 40px; }
  .final-cta-row { display: flex; gap: var(--space-2); justify-content: center; flex-wrap: wrap; }
  .final-cta-meta {
    margin-top: 40px;
    font-size: var(--fs-meta);
    color: var(--ink-500);
    display: flex;
    gap: var(--space-4);
    justify-content: center;
    flex-wrap: wrap;
  }
  .final-cta-meta span { display: flex; align-items: center; gap: var(--space-1); }

  /* ---------- HOW WE WORK — Accordion ---------- */
  .hww-section {
    background: var(--bg-soft);
    padding: clamp(60px, 9vw, 100px) var(--pad-x);
  }
  .hww-header { text-align: center; margin-bottom: var(--space-5); }

  /* Deel-style horizontal timeline (How It Works) */
  .deel-timeline { max-width: var(--container); margin: 0 auto; padding: var(--space-3) 0 0; }
  .deel-labels { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-2); margin-bottom: 22px; align-items: end; }
  .deel-labels .label {
    text-align: center;
    display: flex; flex-direction: column; align-items: center; gap: 6px;
  }
  .deel-labels .label .num {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 500;
    color: var(--brand);
    letter-spacing: -0.01em;
  }
  .deel-labels .label .ttl {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.01em;
    line-height: 1.3;
    min-height: 2.6em; /* reserves 2 lines for uniform vertical rhythm across all 5 steps */
    display: flex;
    align-items: flex-start;
    justify-content: center;
    text-align: center;
  }
  .deel-track { position: relative; height: 24px; margin-bottom: 22px; overflow: visible; }
  /* Static dashed baseline */
  .deel-track::before {
    content: '';
    position: absolute;
    left: 10%; right: 10%; top: 50%;
    transform: translateY(-50%);
    border-top: 1.5px dashed var(--brand-border);
    z-index: 0;
  }
  /* Sequential one-time animation (triggered when section scrolls into view) */
  /* Brand-blue progress line — starts at 0 width, fills in steps synced with dot pulses */
  .deel-track::after {
    content: '';
    position: absolute;
    left: 10%; top: 50%;
    transform: translateY(-50%);
    height: 1.5px;
    width: 0%;
    background: var(--brand);
    border-radius: var(--radius);
    z-index: 1;
  }
  .deel-timeline.is-active .deel-track::after {
    animation: deel-line-fill 4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }
  /* Keyframes: line pauses at each dot for ~0.3s while that dot fills, then advances to the next */
  @keyframes deel-line-fill {
    0%    { width: 0%; }    /* dot 1 starts filling */
    7.5%  { width: 0%; }    /* dot 1 done */
    22.5% { width: 20%; }   /* line reaches dot 2 */
    30%   { width: 20%; }   /* dot 2 done */
    45%   { width: 40%; }   /* line reaches dot 3 */
    52.5% { width: 40%; }   /* dot 3 done */
    67.5% { width: 60%; }   /* line reaches dot 4 */
    75%   { width: 60%; }   /* dot 4 done */
    90%   { width: 80%; }   /* line reaches dot 5 */
    100%  { width: 80%; }   /* dot 5 done; hold */
  }
  .deel-dots {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    height: 100%;
    z-index: 2;
  }
  .deel-dots .dot-cell {
    display: flex; align-items: center; justify-content: center;
  }
  .deel-dots .dot {
    width: 12px; height: 12px;
    border-radius: 50%;
    background: var(--brand-border);
    box-shadow: 0 0 0 4px var(--bg-soft);
  }
  /* Each dot fills in turn, synced with the line keyframes above */
  .deel-timeline.is-active .deel-dots .dot {
    animation: deel-dot-fill 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }
  .deel-timeline.is-active .deel-dots .dot-cell:nth-child(1) .dot { animation-delay: 0s; }
  .deel-timeline.is-active .deel-dots .dot-cell:nth-child(2) .dot { animation-delay: 0.9s; }
  .deel-timeline.is-active .deel-dots .dot-cell:nth-child(3) .dot { animation-delay: 1.8s; }
  .deel-timeline.is-active .deel-dots .dot-cell:nth-child(4) .dot { animation-delay: 2.7s; }
  .deel-timeline.is-active .deel-dots .dot-cell:nth-child(5) .dot { animation-delay: 3.6s; }
  @keyframes deel-dot-fill {
    0%   { background: var(--brand-border); transform: scale(1); }
    60%  { transform: scale(1.35); }
    100% { background: var(--brand); transform: scale(1.15); }
  }
  /* Respect reduced motion — show the final state immediately */
  @media (prefers-reduced-motion: reduce) {
    .deel-track::after { width: 80%; animation: none; }
    .deel-dots .dot { background: var(--brand); transform: scale(1.15); }
  }
  .deel-cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-2); }
  .deel-card {
    background: #fff;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius);
    padding: 26px 22px;
    text-align: center;
    transition: transform var(--dur-fast) var(--ease-out),
                box-shadow var(--dur-fast) var(--ease-out),
                border-color var(--dur-fast) var(--ease-out);
    min-height: 220px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .deel-card:hover {
    border-color: var(--brand-border);
    box-shadow: 0 16px 36px rgba(21,93,252,0.08);
    transform: translateY(-3px);
  }
  .deel-card:hover ~ .deel-card { /* no-op, just keeping selector tree */ }
  .deel-card p {
    /* Body spec — DS canonical: 18px / 300 / var(--ink-600) / lh 1.5 */
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin: 0;
  }
  @media (max-width: 1100px) {
    .deel-labels, .deel-dots, .deel-cards { grid-template-columns: repeat(3, 1fr); }
    .deel-track::before { left: 16%; right: 16%; }
    .deel-cards .deel-card:nth-child(n+4) { display: none; }
    .deel-labels .label:nth-child(n+4) { display: none; }
    .deel-dots .dot-cell:nth-child(n+4) { display: none; }
  }
  @media (max-width: 768px) {
    .deel-labels, .deel-dots, .deel-cards { grid-template-columns: 1fr; }
    .deel-track { display: none; }
    .deel-labels .label, .deel-cards .deel-card { display: flex !important; }
    .deel-labels .label { margin-top: 12px; }
  }

  .hww-eyebrow {
    display: block;
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--brand);
    margin-bottom: 14px;
  }
  .hww-heading {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-display-2);
    font-weight: 300;
    color: var(--ink-900);
    letter-spacing: -0.03em;
    line-height: 1.15;
    margin: 0 0 14px;
  }
  .hww-heading em {
    font-style: normal;
    font-weight: 500;
    color: var(--brand);
  }
  .hww-subhead {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    max-width: 620px;
    margin: 0 auto;
    line-height: 1.5;
  }
  .hww-acc-row {
    display: flex;
    gap: var(--space-1);
    min-height: 260px;
    max-width: var(--container);
    margin: 0 auto;
  }
  .hww-acc-card {
    flex: 1;
    min-width: 0;
    max-width: none;
    border-radius: var(--radius);
    overflow: hidden;
    position: relative;
    cursor: pointer;
    background: #ffffff;
    border: 1px solid var(--ink-200);
    transition: flex var(--dur-slow) var(--ease-in-out),
                border-color var(--dur-base) ease,
                box-shadow var(--dur-base) ease;
  }
  .hww-acc-card.hww-active {
    flex: 2.8;
    border-color: #D1DEFF;
    box-shadow: 0 6px 24px rgba(21,93,252,0.09);
  }
  .hww-collapsed {
    position: absolute;
    inset: 0;
    padding: var(--space-4);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    text-align: left;
    opacity: 1;
    transition: opacity var(--dur-fast) ease;
    pointer-events: auto;
  }
  .hww-acc-card.hww-active .hww-collapsed {
    opacity: 0;
    pointer-events: none;
  }
  .hww-col-num {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-600);
    line-height: 1.25;
    letter-spacing: -0.02em;
  }
  .hww-col-title {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    line-height: 1.3;
    letter-spacing: -0.015em;
    white-space: normal;
    text-align: left;
    padding: 0;
    margin-top: 10px;
  }
  .hww-expanded {
    position: absolute;
    inset: 0;
    padding: var(--space-4);
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dur-base) ease var(--dur-fast);
    white-space: normal;
    overflow: hidden;
  }
  .hww-acc-card.hww-active .hww-expanded {
    opacity: 1;
    pointer-events: auto;
  }
  .hww-exp-num {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--brand);
    line-height: 1.25;
    letter-spacing: -0.02em;
    margin-bottom: 6px;
  }
  .hww-exp-title {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    line-height: 1.3;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-1);
  }
  .hww-exp-bar {
    width: 32px;
    height: 3px;
    border-radius: var(--radius-pill);
    background: var(--brand);
    margin-bottom: 10px;
  }
  .hww-exp-desc {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    max-width: 520px;
  }
  /* Responsive */
  @media (max-width: 1100px) {
    .hww-section { padding: 60px 40px; }
    .hww-acc-row { flex-direction: column; height: auto; gap: 6px; }
    .hww-acc-card { flex: none !important; width: 100% !important; max-width: none !important; height: 64px; min-width: unset; border-radius: var(--radius); transition: height var(--dur-slow) var(--ease-in-out), border-color var(--dur-base) ease, box-shadow var(--dur-base) ease; }
    .hww-acc-card.hww-active { flex: none !important; height: 280px; }
    .hww-acc-card.hww-active { height: 280px; }
    .hww-collapsed { flex-direction: row; padding: 0 18px; align-items: center; justify-content: flex-start; gap: 14px; }
    .hww-col-title { text-align: left; font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); line-height: 1.3;}
    .hww-expanded { padding: 18px 22px; }
    .hww-exp-num { font-size: var(--ps-text-h3); margin-bottom: 6px; }
    .hww-exp-title { font-size: var(--ps-text-h3); margin-bottom: 6px; font-weight: 500; color: var(--ink-900); line-height: 1.3;}
    .hww-exp-desc { font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5;}
  }
  @media(max-width:480px) {
    .hww-section { padding: var(--space-5) 20px; }
  }

  /* ---------- FOOTER — QualNetics dark navy ---------- */
  .footer {
    background: var(--bg-dark);
    padding: var(--space-7) 0 var(--space-4);
    border-top: none;
    color: rgba(255,255,255,0.7);
  }
  .footer-top {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
    gap: var(--space-5);
    margin-bottom: 56px;
  }
  .footer .logo,
  .footer .logo a { color: #FFFFFF; }
  .footer-brand p {
    font-size: var(--fs-title-m);
    color: var(--ink-600);
    line-height: 1.5;
    margin: var(--space-2) 0 var(--space-3);
    font-weight: 300;
  }
  .footer-contact { font-size: var(--fs-meta); color: rgba(255,255,255,0.75); }
  .footer-contact div { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
  .footer-contact svg { color: rgba(255,255,255,0.6); flex-shrink: 0; }
  .footer-col h5 {
    font-size: var(--fs-meta);
    font-weight: 500;
    color: #FFFFFF;
    margin: 0 0 18px;
  }
  .footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
  .footer-col a {
    font-size: var(--fs-meta);
    color: rgba(255,255,255,0.6);
    transition: color var(--dur-fast);
  }
  .footer-col a:hover { color: #FFFFFF; }
  .footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: var(--space-3);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--fs-meta);
    color: rgba(255,255,255,0.5);
    flex-wrap: wrap;
    gap: var(--space-2);
  }
  .footer-social { display: flex; gap: 12px; }
  .footer-social a {
    width: 36px; height: 36px;
    border-radius: var(--radius);
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.1);
    display: grid; place-items: center;
    color: rgba(255,255,255,0.7);
    transition: all var(--dur-fast);
  }
  .footer-social a:hover { background: var(--brand); color: #fff; border-color: var(--brand); }
  .footer-legal { display: flex; gap: 20px; }
  .footer-legal a { color: rgba(255,255,255,0.5); }
  .footer-legal a:hover { color: #FFFFFF; }
  @media (max-width: 1100px) {
    .footer-top { grid-template-columns: 1fr 1fr; }
  }
  @media(max-width:480px) {
    .footer-top { grid-template-columns: 1fr; gap: var(--space-4); }
    .footer-bottom { flex-direction: column; align-items: flex-start; }
  }

  /* ---------- Reveal animation ---------- */
  .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  .reveal.in {
    opacity: 1;
    transform: translateY(0);
  }

  /* ---------- CERTIFIED PARTNERSHIPS ---------- */
  .partners {
    background: transparent;
    padding: 40px var(--space-8);
    border-top: 1px solid var(--ink-200);
    border-bottom: 1px solid var(--ink-200);
  }
  /* partners-label defined above — no duplicate needed */
  .partners-grid {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: nowrap;
  }
  .partner-card {
    background: #FFFFFF;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    width: 148px;
    height: 76px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px var(--space-2);
    transition: box-shadow var(--dur-base) ease, transform var(--dur-base) ease;
  }
  .partner-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.1);
    transform: translateY(-2px);
  }
  .partner-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
  }
  @media (max-width: 1100px) {
    .partners { padding: var(--space-4) 40px; }
    .partners-grid { flex-wrap: wrap; gap: 10px; }
    .partner-card { width: 130px; height: 68px; }
  }
  @media(max-width:480px) {
    .partners { padding: var(--space-3) 20px; }
    .partner-card { width: 120px; height: 64px; }
  }

  /* ---------- OUR SOLUTIONS — card grid ---------- */
  .sols-section { background:var(--bg-soft); padding:var(--space-7) 0; overflow:hidden; }
  .sols-headline-wrap { text-align:center; padding:0 var(--pad-x); margin-bottom:var(--space-4); }
  .sols-headline { font-family:'Outfit',sans-serif; font-size: var(--fs-display-2); font-weight:300; color:var(--ink-900); letter-spacing:-0.04em; line-height:1.2; margin-bottom:var(--space-1); }
  .sols-headline .sols-hl { color:var(--brand); font-weight:400; }
  .sols-headline-sub { font-family:'Outfit',sans-serif; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); margin-top:12px; line-height: 1.5; }
  .sols-tabs { display:flex; justify-content:center; margin-bottom:40px; background:#fff; border:1px solid var(--ink-200); border-radius:var(--radius-pill); padding:5px; width:fit-content; margin-left:auto; margin-right:auto; }
  .sols-tab { font-family:'Outfit',sans-serif; font-size:var(--fs-meta); font-weight:400; color:var(--ink-600); padding:10px var(--space-4); border-radius:var(--radius-pill); border:none; background:transparent; cursor:pointer; white-space:nowrap; transition:all var(--dur-fast) ease; }
  .sols-tab.active { background:var(--ink-900); color:#fff; font-weight:500; }
  .sols-tab:hover:not(.active) { color:var(--ink-900); }
  .sols-panel { display:none; }
  .sols-panel.active { display:block; }
  .sols-grid-wrap { padding:0 var(--pad-x); }
  .sols-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-2); }
  .sols-card { background:#fff; border:1px solid var(--ink-200); border-radius:var(--radius); padding:var(--space-4) 28px; display:flex; flex-direction:column; cursor:pointer; transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform var(--dur-fast) ease; }
  .sols-card:hover { border-color:var(--brand-border); box-shadow:0 8px 28px rgba(21,93,252,0.08); transform:translateY(-3px); }
  .sols-icon-wrap { width:64px; height:64px; flex-shrink:0; margin-bottom:20px; }
  
  .sols-icon-wrap { width:64px; height:64px; border-radius: var(--radius); background:linear-gradient(135deg,var(--brand-soft),#F4F8FF); border:1px solid #DCE5F7; display:flex; align-items:center; justify-content:center; color:var(--brand); margin-bottom:18px; }
  .sols-icon-svg svg { width:32px; height:32px; }
  .sols-panel-sub { font-family: 'Outfit', system-ui, -apple-system, sans-serif; font-size: var(--fs-eyebrow); font-weight:500; letter-spacing: normal; text-transform: none; color:var(--ink-600); text-align:center; margin:0 0 var(--space-3); }
  .sols-panel-cta { display:inline-flex; align-items:center; gap:var(--space-1); padding:12px var(--space-3); background:transparent; border:1px solid #DCE5F7; color:var(--brand); border-radius:var(--radius-pill); font-family:'Outfit',sans-serif; font-size:var(--fs-meta); font-weight:500; text-decoration:none; margin:var(--space-4) auto 0; display:flex; justify-content:center; width:fit-content; transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) ease; }
  .sols-panel-cta:hover { background:var(--brand-soft); border-color:var(--brand); transform:translateY(-1px); }
  .sols-name { font-family:'Outfit',sans-serif; font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); letter-spacing:-0.02em; line-height: 1.3; margin-bottom:12px; }
  .sols-desc { font-family:'Outfit',sans-serif; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; flex:1; }
  .sols-explore-row { display:flex; align-items:center; justify-content:center; padding:28px var(--pad-x) 0; margin-top:var(--space-3); }
  .sols-count { font-family:'Outfit',sans-serif; font-size: var(--fs-meta); font-weight:300; color:var(--ink-600); }
  .sols-explore-btn { display:inline-flex; align-items:center; gap:var(--space-1); font-family:'Outfit',sans-serif; font-size:var(--fs-meta); font-weight:500; color:var(--ink-900); background:#fff; border:1px solid var(--ink-200); border-radius:var(--radius-pill); padding:10px 22px; cursor:pointer; transition:all var(--dur-fast) ease; text-decoration:none; }
  .sols-explore-btn:hover { background:var(--brand); color:#fff; border-color:var(--brand); }
  .sols-explore-btn svg { width:14px; height:14px; stroke:currentColor; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; transition:transform var(--dur-fast) ease; }
  .sols-explore-btn:hover svg { transform:translateX(3px); }
  @media (max-width: 1100px) { .sols-grid { grid-template-columns:repeat(2,1fr); } }
  @media(max-width:480px) { .sols-grid { grid-template-columns:1fr; } .sols-card { padding:28px var(--space-3); } }

  /* ---------- STATS BAND — QualNetics subdued stat row ---------- */
  .stats-band {
    background: var(--bg-soft);
    padding: var(--space-5) 0;
  }
  .stats-row-wrap {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--pad-x);
  }
  .stats-row {
    display: grid;
    grid-template-columns: 1fr 1px 1fr 1px 1fr 1px 1fr;
    align-items: center;
  }
  .stats-cell {
    padding: var(--space-1) 14px;
    text-align: center;
  }
  .stats-num {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h1);
    font-weight: 300;
    color: var(--ink-900);
    letter-spacing: -0.025em;
    line-height: 1;
    margin-bottom: 6px;
  }
  .stats-label {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta);
    font-weight: 500;
    color: var(--ink-600);
    letter-spacing: 0.01em;
    line-height: 1.4;
  }
  .stats-div {
    background: var(--ink-200);
    align-self: stretch;
    width: 1px;
  }
  @media(max-width:768px) {
    .stats-row { grid-template-columns: 1fr 1px 1fr; row-gap: var(--space-2); }
    .stats-div:nth-of-type(2), .stats-div:nth-of-type(3) { display: none; }
  }

  /* ---------- PARTNERS — Scrolling logo marquee (Qualnetics-style) ---------- */
  .partners-section { padding: 72px 0; background: #FFFFFF; border-top: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); }
  .partners-section .container { max-width: var(--container); margin: 0 auto; padding: 0 var(--pad-x); }
  .partners-section .section-header { text-align: center; margin-bottom: var(--space-5); }
  .partners-section .eyebrow { font-family: 'Outfit', sans-serif; font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: normal; text-transform: none; color: var(--brand); display: inline-block; margin-bottom: 14px; }
  .partners-section .section-statement { font-family: 'Outfit', sans-serif; font-size: var(--fs-display-2); font-weight: 300; color: var(--ink-900); letter-spacing: -0.03em; line-height: 1.15; margin: 0; }
  .partners-section .section-statement em { font-style: normal; font-weight: 500; color: var(--brand); }
  .int-marquee-wrap { position: relative; mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%); }
  .int-marquee-viewport { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -ms-overflow-style: none; cursor: grab; }
  .int-marquee-viewport::-webkit-scrollbar { display: none; }
  .int-marquee-viewport:active { cursor: grabbing; }
  .int-marquee-track { display: flex; align-items: center; gap: 0; width: max-content; will-change: transform; transform: translate3d(0, 0, 0); }
  .int-logo { display: flex; align-items: center; justify-content: center; min-width: 180px; height: 64px; padding: 0 28px; user-select: none; flex-shrink: 0; transition: transform var(--dur-fast) ease; }
  .int-logo:hover { transform: scale(1.06); }
  @media(max-width:480px) {
    .int-logo { min-width: 140px; padding: 0 var(--space-2); }
  }

  /* ---------- WHY PRIMESOFT — Core Capabilities style ---------- */
  .cc-section { padding: clamp(var(--space-7), 10vw, var(--space-8)) 0; background: var(--bg-soft); }
  .cc-section .container { max-width: var(--container); margin: 0 auto; padding: 0 var(--pad-x); }
  .cc-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--space-7); align-items: start; }
  .cc-left { position: sticky; top: 100px; }
  .cc-left-eyebrow { display: block; font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: normal; text-transform: none; color: var(--brand); margin-bottom: 14px; }
  .cc-left-headline { font-family: 'Outfit', sans-serif; font-size: var(--fs-display-2); font-weight: 300; color: var(--ink-900); letter-spacing: -0.03em; line-height: 1.15; margin-bottom: 20px; }
  .cc-left-headline strong { font-weight: 500; color: var(--brand); }
  .cc-left-sub { font-family: 'Outfit', sans-serif; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; margin-bottom: 28px; }
  .cc-left-cta { display: inline-flex; align-items: center; gap: var(--space-1); font-family: 'Outfit', sans-serif; font-size: var(--fs-meta); font-weight: 500; color: #fff; background: var(--brand); border-radius: var(--radius-pill); padding: 12px var(--space-3); text-decoration: none; transition: background var(--dur-fast) ease, transform var(--dur-fast) ease; }
  .cc-left-cta:hover { background: var(--brand-hover); transform: translateY(-1px); }

  .cc-right { display: flex; flex-direction: column; gap: 0; counter-reset: cc-card-num; }
  .cc-card { counter-increment: cc-card-num; position: sticky; background: linear-gradient(180deg, #FFFFFF 0%, #FCFCFE 100%); border: 1px solid var(--ink-200); border-radius: var(--radius); padding: 36px 36px var(--space-4); margin-bottom: var(--space-3); box-shadow: 0 1px 0 rgba(16,24,40,0.02), 0 8px 24px -16px rgba(16,24,40,0.08); transition: border-color var(--dur-slow) ease, box-shadow var(--dur-slow) ease, transform var(--dur-base) ease; overflow: hidden; display: grid; grid-template-columns: 96px 1fr; gap: 28px; align-items: flex-start; }
  .cc-card::before { content: ""; position: absolute; top: 0; left: 24px; right: 24px; height: 1px; background: linear-gradient(90deg, transparent 0%, rgba(21,93,252,0.18) 50%, transparent 100%); opacity: 0.6; transition: opacity var(--dur-slow) ease, background var(--dur-slow) ease; }
  .cc-card::after { content: "0" counter(cc-card-num); position: absolute; top: 22px; right: 28px; font-family: 'Outfit', system-ui, -apple-system, sans-serif; font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: 0.16em; color: #C5CCD9; transition: color var(--dur-slow) ease; pointer-events: none; }
  .cc-card:hover { border-color: #D9E4FB; box-shadow: 0 4px 12px rgba(21,93,252,0.04), 0 18px 40px -18px rgba(21,93,252,0.18); transform: translateY(-2px); }
  .cc-card:hover::after { color: var(--brand); }
    .cc-card:nth-child(1) { top: 108px; z-index: 1; }
  .cc-card:nth-child(2) { top: 116px; z-index: 2; }
  .cc-card:nth-child(3) { top: 124px; z-index: 3; }
  .cc-card:nth-child(4) { top: 132px; z-index: 4; }
  .cc-card:nth-child(5) { top: 140px; z-index: 5; }
  .cc-card:nth-child(6) { top: 148px; z-index: 6; }
  .cc-card:last-child { margin-bottom: 0; }

  .cc-card-head { display: flex; align-items: flex-start; margin-bottom: 0; }
  .cc-card-icon { width: 88px; height: 88px; border-radius: var(--radius); background: linear-gradient(135deg, #F4F8FF 0%, var(--brand-soft) 60%, #E0EAFF 100%); border: 1px solid rgba(21,93,252,0.12); box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), inset 0 -1px 0 rgba(21,93,252,0.04), 0 6px 16px -8px rgba(21,93,252,0.18); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--brand); position: relative; transition: background var(--dur-base) ease, border-color var(--dur-base) ease, color var(--dur-base) ease, transform var(--dur-base) ease, box-shadow var(--dur-base) ease; }
  .cc-card-icon svg { width: 42px; height: 42px; stroke: currentColor; stroke-width: 1.5; transition: stroke var(--dur-base) ease, transform var(--dur-base) ease; position: relative; z-index: 1; }
  .cc-card-icon-img { width: 80px; height: 80px; object-fit: contain; position: relative; z-index: 1; transition: filter var(--dur-base) ease, transform var(--dur-base) ease; }
  .cc-card-icon:has(.cc-card-icon-img) { background: transparent; border: none; box-shadow: none; width: 80px; height: 80px; }
  .cc-card:has(.cc-card-icon-img) { grid-template-columns: 96px 1fr; gap: 22px; }
  .cc-card.cc-active .cc-card-icon:has(.cc-card-icon-img) { background: transparent; border: none; box-shadow: none; }
  .cc-card.cc-active .cc-card-icon-img { transform: scale(1.04); filter: drop-shadow(0 8px 18px rgba(21,93,252,0.18)); }
  .cc-card:hover .cc-card-icon { transform: scale(1.04); }

  .cc-card-content { display: flex; flex-direction: column; min-width: 0; }
  .cc-card-title { font-family: 'Outfit', sans-serif; font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); letter-spacing: -0.02em; line-height: 1.3; margin-bottom: 10px; padding-right: 36px; transition: color var(--dur-base) ease; }
  .cc-card-sub { font-family: 'Outfit', sans-serif; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; margin-bottom: 0; }

  .cc-card.cc-active { border-color: var(--brand-border); box-shadow: 0 1px 0 rgba(21,93,252,0.04), 0 18px 50px -18px rgba(21,93,252,0.22), inset 0 0 0 1px rgba(21,93,252,0.06); }
  .cc-card.cc-active::before { background: linear-gradient(90deg, transparent 0%, var(--brand) 30%, var(--brand-2) 70%, transparent 100%); opacity: 1; height: 2px; }
  .cc-card.cc-active::after { color: var(--brand); font-weight: 500; }
  .cc-card.cc-active .cc-card-icon { background: linear-gradient(135deg, var(--brand) 0%, #2270FF 50%, var(--brand-2) 100%); border-color: rgba(21,93,252,0.4); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), inset 0 -1px 0 rgba(0,0,0,0.05), 0 12px 28px -10px rgba(21,93,252,0.5); }
  .cc-card.cc-active .cc-card-title { color: var(--ink-900); font-weight: 500; font-size: var(--ps-text-h3); line-height: 1.3;}

  @media (max-width: 1100px) {
    .cc-layout { grid-template-columns: 1fr; gap: 40px; }
    .cc-left { position: static; }
    .cc-card { position: relative !important; top: auto !important; z-index: auto !important; margin-bottom: var(--space-2) !important; }
  }
  @media(max-width:480px) {
    .cc-card { padding: var(--space-3); grid-template-columns: 1fr; gap: var(--space-2); }
    .cc-card-icon { width: 64px; height: 64px; border-radius: var(--radius); }
    .cc-card-icon svg { width: 32px; height: 32px; }
    .cc-card-title { font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); line-height: 1.3;}
  }

  /* ---------- FINAL CTA — QualNetics ag-section style (dark + inline pill) ---------- */
  .ag-section {
    position: relative;
    padding: clamp(40px, 5vw, var(--space-6)) 0;
    background: var(--bg-dark);
    overflow: hidden;
  }
  .ag-section::before {
    content: "";
    position: absolute;
    bottom: -40%;
    left: 50%;
    transform: translateX(-50%);
    width: min(900px, 100%);
    height: 520px;
    background: radial-gradient(ellipse, rgba(21,93,252,0.22) 0%, transparent 65%);
    pointer-events: none;
    z-index: 0;
  }
  .ag-section::after {
    content: "";
    position: absolute; inset: 0;
    background-image:
      linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: radial-gradient(ellipse 70% 60% at center, black 30%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 70% 60% at center, black 30%, transparent 80%);
    pointer-events: none;
    z-index: 0;
  }
  .ag-section .container { position: relative; z-index: 2; }
  .ag-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    flex-wrap: wrap;
  }
  .ag-row-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    text-align: left;
  }
  .ag-eyebrow {
    display: inline-flex; align-items: center; gap: 10px;
    padding: var(--space-1) var(--space-2);
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: var(--radius-pill);
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: rgba(255,255,255,0.7);
  }
  .ag-eyebrow .pulse {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: rgba(255,255,255,0.9);
    box-shadow: 0 0 0 4px rgba(255,255,255,0.18);
    animation: ag-pulse 2s ease-in-out infinite;
  }
  @keyframes ag-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
  }
  .ag-h2 {
    font-size: var(--fs-display-2);
    font-weight: 300;
    color: #FFFFFF;
    line-height: 1.15;
    letter-spacing: -0.025em;
    margin: 0;
  }
  .ag-h2 em {
    font-style: normal;
    font-weight: 500;
    color: #FFFFFF;
  }
  .ag-cta {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    height: 52px;
    padding: 0 28px;
    background: linear-gradient(120deg, var(--brand), var(--brand-3));
    color: #FFFFFF;
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta);
    font-weight: 500;
    border: none;
    cursor: pointer;
    border-radius: var(--radius-pill);
    flex-shrink: 0;
    text-decoration: none;
    box-shadow: 0 14px 40px -14px rgba(21,93,252,0.7), inset 0 1px 0 rgba(255,255,255,0.2);
    transition: transform var(--dur-base) ease, box-shadow var(--dur-base) ease;
  }
  .ag-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 48px -14px rgba(21,93,252,0.85), inset 0 1px 0 rgba(255,255,255,0.25);
  }
  .ag-cta .arrow { transition: transform var(--dur-fast) ease; }
  .ag-cta:hover .arrow { transform: translateX(4px); }
  @media(max-width:768px) {
    .ag-row { flex-direction: column; align-items: flex-start; }
    .ag-h2 { font-size: var(--fs-display-2); }
  }

  /* ---------- FINAL CTA Modal — QualNetics fcta-* ---------- */
  .fcta-btn {
    display: inline-flex; align-items: center; gap: 10px;
    width: fit-content;
    height: 54px;
    padding: 0 28px;
    border-radius: var(--radius-pill);
    background: var(--brand);
    color: #fff;
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 500;
    border: none;
    cursor: pointer;
    box-shadow: 0 12px 32px rgba(21,93,252,0.45), inset 0 1px 0 rgba(255,255,255,0.18);
    transition: transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease, background var(--dur-fast) ease;
  }
  .fcta-btn:hover {
    background: var(--brand);
    transform: translateY(-1px);
    box-shadow: 0 16px 40px rgba(21,93,252,0.55), inset 0 1px 0 rgba(255,255,255,0.22);
  }
  .fcta-btn .arrow { transition: transform var(--dur-fast) ease; }
  .fcta-btn:hover .arrow { transform: translateX(4px); }

  .fcta-overlay {
    position: fixed; inset: 0;
    background: rgba(6, 9, 20, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: none;
    align-items: center; justify-content: center;
    z-index: 1000;
    padding: var(--space-3);
    opacity: 0;
    transition: opacity var(--dur-base) ease;
  }
  .fcta-overlay.open { display: flex; opacity: 1; }
  .fcta-overlay.open .fcta-modal { transform: translateY(0) scale(1); opacity: 1; }
  .fcta-modal {
    background: #FFFFFF;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius);
    box-shadow: 0 40px 100px rgba(16,24,40,0.18), 0 4px 12px rgba(16,24,40,0.06);
    width: 100%;
    max-width: 600px;
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: var(--space-4) 36px 28px;
    position: relative;
    transform: translateY(12px) scale(0.98);
    opacity: 0;
    transition: transform var(--dur-base) var(--ease-out), opacity var(--dur-base) ease;
    scrollbar-width: none;            /* Firefox */
    -ms-overflow-style: none;          /* IE / legacy Edge */
  }
  .fcta-modal::-webkit-scrollbar { display: none; }
  /* Chrome / Safari / new Edge */
  .fcta-modal-close {
    position: absolute;
    top: 18px; right: 18px;
    width: 36px; height: 36px;
    border-radius: var(--radius-pill);
    background: var(--bg-soft);
    border: 1px solid var(--ink-200);
    color: var(--ink-600);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all var(--dur-fast) var(--ease-out);
  }
  .fcta-modal-close:hover { background: var(--brand-soft); color: var(--brand); border-color: var(--brand-border); }
  .fcta-modal-eyebrow {
    display: inline-block;
    font-size: var(--fs-eyebrow); font-weight: 500;
    letter-spacing: normal; text-transform: none;
    color: var(--brand); margin-bottom: 12px;
  }
  .fcta-modal-title {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3); font-weight: 500;
    color: var(--ink-900); letter-spacing: -0.02em;
    line-height: 1.3; margin-bottom: 6px;
  }
  .fcta-modal-sub {
    font-size: var(--fs-title-m); font-weight: 300;
    color: var(--ink-600); line-height: 1.5;
    margin-bottom: 20px;
  }
  .fcta-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .fcta-field { display: flex; flex-direction: column; gap: 6px; }
  .fcta-field.full { grid-column: span 2; }
  .fcta-field label {
    font-size: var(--fs-eyebrow); font-weight: 500;
    letter-spacing: 0.04em; color: var(--ink-900);
  }
  .fcta-field input,
  .fcta-field textarea {
    background: #FFFFFF;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius);
    padding: 12px 14px;
    color: var(--ink-900);
    font-family: inherit;
    font-size: var(--fs-meta); font-weight: 400;
    transition: border-color var(--dur-fast) ease, background var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
    outline: none;
  }
  .fcta-field input::placeholder,
  .fcta-field textarea::placeholder { color: var(--ink-600); font-weight: 300; }
  .fcta-field input:focus,
  .fcta-field textarea:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(21,93,252,0.15);
  }
  .fcta-field textarea { resize: vertical; min-height: 76px; }
  .fcta-submit { width: 100%; justify-content: center; margin-top: 14px; }
  .fcta-form-note {
    font-size: var(--fs-eyebrow); font-weight: 300;
    color: var(--ink-600); text-align: center;
    margin-top: 10px;
  }
  body.fcta-modal-open { overflow: hidden; }
  @media(max-width:480px) {
    .fcta-modal { padding: 28px 22px var(--space-3); }
    .fcta-fields { grid-template-columns: 1fr; }
    .fcta-field.full { grid-column: span 1; }
    .fcta-modal-title { font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); line-height: 1.3;}
  }

  /* ---------- HEADER LOGO + NAV LAYOUT (QualNetics style) ---------- */

  .header-actions .btn-primary {
    height: 44px;
    padding: 0 20px;
    font-size: var(--fs-meta);
    background: var(--brand);
    color: #fff;
    border-radius: var(--radius-pill);
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    text-decoration: none;
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    transition: background var(--dur-fast) ease, transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
    box-shadow: 0 8px 24px -8px rgba(21,93,252,0.45);
  }
  .header-actions .btn-primary:hover {
    background: var(--brand-hover);
    transform: translateY(-2px);
    box-shadow: 0 14px 34px -10px rgba(21,93,252,0.55);
  }
  .header-actions .btn-primary .arrow { transition: transform var(--dur-fast) ease; display: inline-block; }
  .header-actions .btn-primary:hover .arrow { transform: translateX(4px); }
  @media (max-width: 1100px) {  }

  /* ---------- Accessibility primitives ---------- */
  :focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: 3px;
    border-radius: var(--radius);
  }
  .skip-link {
    position: absolute;
    top: -48px;
    left: 16px;
    background: var(--brand);
    color: #FFFFFF;
    padding: 10px 18px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-meta);
    font-weight: 500;
    z-index: 9999;
    transition: top var(--dur-fast) var(--ease-out);
  }
  .skip-link:focus { top: 12px; }

  /* ---------- Canonical button system (BEM) ---------- */
  .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 52px;
    padding: 0 28px;
    border-radius: var(--radius-pill);
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    transition: transform var(--dur-base) var(--ease-out),
                box-shadow var(--dur-base) var(--ease-out),
                background var(--dur-base) var(--ease-out),
                border-color var(--dur-base) var(--ease-out),
                color var(--dur-base) var(--ease-out);
  }
  .btn .arrow { transition: transform var(--dur-fast) var(--ease-out); display: inline-block; }
  .btn:hover .arrow { transform: translateX(4px); }
  .btn--primary {
    background: var(--brand);
    color: #fff;
    box-shadow: var(--shadow-blue);
  }
  .btn--primary:hover {
    background: var(--brand-hover);
    transform: translateY(-2px);
    box-shadow: 0 18px 48px -14px rgba(21,93,252,0.85);
  }
  .btn--secondary {
    background: var(--bg-white);
    color: var(--brand);
    border-color: var(--brand);
  }
  .btn--secondary:hover {
    background: var(--brand-soft);
  }
  .btn--ghost {
    background: transparent;
    color: var(--brand);
    padding: 0;
    height: auto;
    border: none;
  }
  .btn--sm { height: 44px; padding: 0 20px; font-size: var(--fs-meta); }

  /* Aliases — legacy classes inherit canonical styles to keep markup unchanged
     while still letting new work use .btn--primary etc. */
  .btn-primary:not(.btn) { /* legacy support — same look as .btn--primary */ }
  .ag-cta, .fcta-btn, .cc-left-cta, .why-left-cta { /* visually similar primary pills */ }

  /* ---------- Contract & Vendor Optimizer — composed reuse ---------- */
  /* What CVO Delivers — 5-card grid using number badges (no sticky scroll) */
  .cvo-deliver-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-3);
  }
  .cvo-deliver-grid .cvo-deliver-card:nth-child(4) { grid-column: 1 / 2; }
  .cvo-deliver-grid .cvo-deliver-card:nth-child(5) { grid-column: 2 / 4; }
  .cvo-deliver-card {
    background: var(--bg-white);
    border: 1px solid var(--ink-200);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
    display: flex;
    gap: var(--space-3);
    align-items: flex-start;
    transition: transform var(--dur-base) var(--ease-out),
                box-shadow var(--dur-base) var(--ease-out),
                border-color var(--dur-base) var(--ease-out);
  }
  .cvo-deliver-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--brand-border);
  }
  .cvo-deliver-card .cvo-num {
    font-family: 'Outfit', system-ui, -apple-system, sans-serif;
    font-size: var(--fs-meta);
    font-weight: 500;
    letter-spacing: 0.16em;
    color: var(--brand);
    flex-shrink: 0;
    line-height: 1.5;
  }
  .cvo-deliver-card .cvo-card-body h3 {  
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.02em;
    margin: 0 0 6px;
      line-height: 1.3;
    }
  .cvo-deliver-card .cvo-card-body p {
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin: 0;
  }
  @media (max-width: 1100px) {
    .cvo-deliver-grid { grid-template-columns: repeat(2, 1fr); }
    .cvo-deliver-grid .cvo-deliver-card:nth-child(4),
    .cvo-deliver-grid .cvo-deliver-card:nth-child(5) { grid-column: auto; }
  }
  @media (max-width: 768px) {
    .cvo-deliver-grid { grid-template-columns: 1fr; }
  }

  /* Outcome line on cc-card (matches QualNetics pattern) */
  .cvo-outcome {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(90deg, rgba(21,93,252,0.05) 0%, rgba(21,93,252,0.01) 100%);
    border-left: 2px solid var(--brand-border);
    border-radius: 0 8px 8px 0;
    margin-top: 14px;
    font-size: var(--fs-meta);
    font-weight: 500;
    color: var(--ink-700);
  }
  .cvo-outcome svg { width: 12px; height: 12px; color: var(--brand); flex-shrink: 0; margin-top: 3px; }

  /* Chips */
  .cvo-chips-row { text-align: center; margin-bottom: var(--space-5); }
  .cvo-chips-label {
    font-family: 'Outfit', system-ui, -apple-system, sans-serif;
    font-size: var(--fs-eyebrow);
    font-weight: 500;
    letter-spacing: 0.16em;
    color: var(--ink-500);
    text-transform: uppercase;
    margin-bottom: 12px;
  }
  .cvo-chips {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-1);
    max-width: 760px;
  }
  .cvo-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    background: var(--brand-soft);
    border: 1px solid #DCE5F7;
    border-radius: var(--radius-pill);
    font-size: var(--fs-meta);
    font-weight: 500;
    color: var(--ink-700);
  }
  .cvo-chip--alt { background: var(--bg-white); border-color: var(--ink-200); }

  /* 3-col feature cards (Risk & Compliance) */
  .cvo-3col-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-3);
  }
  /* 2x2 feature grid (Spend Intelligence) */
  .cvo-2x2-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
  }
  .cvo-feature-card {
    background: var(--bg-white);
    border: 1px solid var(--ink-200);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
    transition: transform var(--dur-base) var(--ease-out),
                box-shadow var(--dur-base) var(--ease-out),
                border-color var(--dur-base) var(--ease-out);
  }
  .cvo-feature-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--brand-border);
  }
  .cvo-feature-card h3 {  
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.02em;
    margin: 0 0 var(--space-1);
      line-height: 1.3;
    }
  .cvo-feature-card p {
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin: 0;
  }
  @media (max-width: 1100px) {
    .cvo-3col-grid { grid-template-columns: repeat(2, 1fr); }
    .cvo-2x2-grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 768px) {
    .cvo-3col-grid { grid-template-columns: 1fr; }
  }

  /* ---------- BUSINESS IMPACT — stat cards (Variant 2) ---------- */
  .imp-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    max-width: var(--container);
    margin: 0 auto;
  }
  .imp-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius);
    padding: var(--space-4) 26px 28px;
    overflow: hidden;
    transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
  }
  .imp-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(16,24,40,0.08);
  }
  .imp-stat .big {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h1);
    font-weight: 300;
    color: var(--ink-900);
    letter-spacing: -0.03em;
    line-height: 1;
  }
  .imp-stat .big .pct {
    font-size: var(--fs-body);
    font-weight: 300;
    color: var(--ink-500);
    margin-left: 2px;
  }
  .imp-divider {
    width: 32px;
    height: 2px;
    background: var(--brand);
    margin: 18px 0 var(--space-2);
  }
  .imp-card h4 { 
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    margin: 0 0 var(--space-1);
    line-height: 1.3;
      letter-spacing: -0.02em;
   }
  .imp-card p {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    line-height: 1.5;
    color: var(--ink-600);
    margin: 0;
  }
  @media (max-width: 1100px) {
    .imp-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 560px) {
    .imp-grid { grid-template-columns: 1fr; }
  }

  /* Why CVO — inline 3-col */
  .cvo-why-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-5);
    max-width: var(--container);
    margin: 0 auto;
  }
  .cvo-why-item h3 {  
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.015em;
    margin: 0 0 var(--space-1); line-height: 1.3;  }
  .cvo-why-item p {
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin: 0;
  }
  @media (max-width: 1100px) {
    .cvo-why-row { grid-template-columns: 1fr; gap: var(--space-3); text-align: left; }
  }

  /* Hero CTA on dark — adjust btn--primary visibility */
  .hero .btn--primary { box-shadow: 0 14px 40px -14px rgba(21,93,252,0.7); }

  /* ---------- WHAT IT DELIVERS — Image left + description list right ---------- */
  .isa-deliver-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
    align-items: center;
    max-width: var(--container);
    margin: 0 auto;
  }
  .isa-deliver-split .imgcol img {
    width: 100%;
    height: auto;
    display: block;
  }
  .isa-deliver-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .isa-deliver-row {
    padding: 14px 0;
    border-bottom: 1px solid #ECEEF3;
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
  }
  .isa-deliver-row:last-child { border-bottom: none; }
      .isa-deliver-row .num {
    font-family: 'Outfit', system-ui, -apple-system, sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 500;
    letter-spacing: -0.02em;
    color: var(--brand);
    flex-shrink: 0;
    width: 48px;
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
  }
  .isa-deliver-row h3 {  
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.02em;
    margin: 0 0 3px;
    line-height: 1.3;
    }
  .isa-deliver-row p {
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin: 0;
  }
  @media (max-width: 1100px) {
    .isa-deliver-split { grid-template-columns: 1fr; gap: var(--space-4); }
  }

  /* ---------- CHANNELS — Editorial tiles with 3D icons (Option 02, no numbers, centered) ---------- */
  .isa-channels {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    max-width: var(--container);
    margin: 0 auto;
  }
  .isa-channel-cell {
    padding: 36px 22px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    transition: transform var(--dur-fast) var(--ease-out),
                box-shadow var(--dur-fast) var(--ease-out),
                border-color var(--dur-fast) var(--ease-out);
  }
  .isa-channel-cell:hover { background: #FAFBFD; }
  .isa-channel-cell .icon {
    width: 80px; height: 80px; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .isa-channel-cell .icon img { width: 100%; height: 100%; object-fit: contain; }
  .isa-channel-cell h3 {
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    letter-spacing: -0.02em;
    margin: 0 0 12px;
    line-height: 1.3;
    min-height: 2.6em;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .isa-channel-cell p {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m);
    font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin: 0;
    flex: 1 1 auto;
  }
  .isa-channel-cell .cc-outcome {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid #ECEEF3;
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-body);
    font-weight: 500;
    color: var(--brand);
    line-height: 1.45;
    text-align: center;
  }
  @media (max-width: 1100px) {
    .isa-channels { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 768px) {
    .isa-channels { grid-template-columns: 1fr; }
  }

  /* ---------- CORE CAPABILITIES — Read-more toggle additions ---------- */
  .cc-card-collapsible {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--dur-slow) var(--ease-out);
  }
  .cc-card-collapsible > .cc-card-collapsible-inner {
    min-height: 0;
    overflow: hidden;
  }
  .cc-card.cc-expanded .cc-card-collapsible { grid-template-rows: 1fr; }
  .cc-card-collapsible-inner > * + * { margin-top: 14px; }
  .cc-card-desc {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m); font-weight: 300;
    color: var(--ink-600);
    line-height: 1.5;
    margin: 0 0 14px;
  }
  .cc-card-toggle {
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: 6px;
    margin-top: 14px; padding: 0;
    background: none; border: none;
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-meta); font-weight: 500;
    color: var(--brand);
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease-out), gap var(--dur-fast) var(--ease-out);
  }
  .cc-card-toggle:hover { color: var(--brand-hover); gap: 9px; }
  .cc-card-toggle-chev {
    width: 12px; height: 12px;
    stroke: currentColor; fill: none; stroke-width: 2.2;
    stroke-linecap: round; stroke-linejoin: round;
    transition: transform var(--dur-slow) var(--ease-out);
  }
  .cc-card.cc-expanded .cc-card-toggle-chev { transform: rotate(180deg); }

  /* ---------- WHY ISA — Stacked layers with annotated foreignObject labels ---------- */
  .why-three { max-width: var(--container); margin: var(--space-4) auto 0; padding: 0 var(--space-2); }
  #why { padding-bottom: clamp(40px, 6vw, 60px); }

  .why-three-tag {
    font-family: 'Outfit', system-ui, -apple-system, sans-serif;
    font-size: var(--fs-eyebrow); font-weight: 500;
    letter-spacing: normal; text-transform: none;
    color: var(--ink-600); text-align: center;
    display: block; margin-bottom: 12px;
  }
  .annotated { max-width: 1100px; margin: 0 auto; }
  .annotated svg { width: 100%; height: auto; display: block; }
  .annotated .label { display: flex; gap: 14px; align-items: flex-start; }
  .annotated .label h4 { 
    font-family: 'Outfit', sans-serif;
    font-size: var(--ps-text-h3); font-weight: 500; letter-spacing: -0.01em;
     color: var(--ink-900);
    margin: 0 0 6px; line-height: 1.3;
   }
  .annotated .label p {
    font-family: 'Outfit', sans-serif;
    font-size: var(--fs-title-m); font-weight: 300; line-height: 1.5;
    color: var(--ink-600); margin: 0;
  }

  /* Light navbar variant — applied when scrolled past hero */
  .header.is-light { background: rgba(255, 255, 255, 0.95) !important; border-bottom: 1px solid rgba(229, 231, 235, 0.6) !important; backdrop-filter: saturate(180%) blur(18px); -webkit-backdrop-filter: saturate(180%) blur(18px); }
  .header.is-light .nav a,
  .header.is-light .header-nav a,
  .header.is-light .nav-dropdown-trigger { color: var(--ink-900) !important; }
  .header.is-light a[aria-label="PrimeSoft home"] img { filter: none !important; }

  
  .nav a, 
  .header a[aria-label="PrimeSoft home"] img { transition: filter 0.3s ease; }

  /* === Header (synced from qualnetics) === */
  .header{position:sticky;top:0;z-index:100;background: rgba(255, 255, 255, 0.95);backdrop-filter:saturate(180%) blur(18px);border-bottom: 1px solid rgba(229, 231, 235, 0.6);padding:var(--space-2) var(--pad-x);display:flex;align-items:center;}
  .header { transition: background 0.3s ease, border-color 0.3s ease; }
  .header-logo{flex:1 0 0;display:flex;align-items:center;}
  .header-logo img{height:50px;width:auto;object-fit:contain;}
  .header-nav{flex:1;display:flex;align-items:center;justify-content:center;gap:28px;}
  .header-nav a{font-size:var(--fs-body);font-weight:500;color: var(--ink-900);letter-spacing:0.2px;white-space:nowrap;transition:color var(--dur-fast);}
  .header-nav a:hover,.header-nav a.active{color:var(--brand);}
    .header-actions{flex:1 0 0;display:flex;align-items:center;justify-content:flex-end;gap:12px;}
  
  /* === Dropdown rules (restored from qualnetics) === */
  .nav-dropdown { position:relative;display:flex;align-items:center; }
  .nav-dropdown-trigger { font-family:'Outfit',sans-serif;font-weight:500;font-size:var(--fs-body);letter-spacing:0.2px;color: var(--ink-900);white-space:nowrap;transition:color var(--dur-fast) ease;cursor:pointer;display:flex;align-items:center;gap:5px;background:none;border:none;padding:0; }
  .nav-dropdown-trigger:hover { color:var(--brand); }
  .nav-dropdown-trigger svg { width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;transition:transform var(--dur-base) ease; }
  .nav-dropdown:hover .nav-dropdown-trigger svg { transform: rotate(180deg); }

  .nav-dropdown-menu { position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-6px);background:#fff;border:1px solid var(--ink-200);border-radius: var(--radius);box-shadow:0 12px 36px rgba(16,24,40,0.12);min-width:240px;padding:var(--space-1);opacity:0;visibility:hidden;transition:opacity var(--dur-base) ease,transform var(--dur-base) ease,visibility var(--dur-base) ease;z-index:200; }
  .nav-dropdown:hover .nav-dropdown-menu { opacity:1;visibility:visible;transform:translateX(-50%) translateY(0); }
  .nav-dropdown-item { display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius: var(--radius);text-decoration:none;transition:background var(--dur-fast) ease; }
  .nav-dropdown-item:hover { background:var(--bg-soft); }
  .nav-dropdown-icon { width:36px;height:36px;border-radius: var(--radius);background:var(--brand-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--dur-fast) ease; }
  .nav-dropdown-item:hover .nav-dropdown-icon { background:var(--brand); }
  .nav-dropdown-icon svg { width:18px;height:18px;stroke:var(--brand);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke var(--dur-fast) ease; }
  .nav-dropdown-item:hover .nav-dropdown-icon svg { stroke:#fff; }
  .nav-dropdown-label { font-size:var(--fs-meta);font-weight:500;color:var(--ink-900);line-height:1.2; }
  .nav-dropdown-sub { font-size:var(--fs-body);font-weight:300;color:var(--ink-600);margin-top:1px; }
  .nav-dropdown-trigger { transition: color 0.3s ease; }
  
  /* ===== ISA Hero — Concept C floating cards ===== */
  .isa-hero-mockup { position: relative; min-height: 440px; }
  .isa-floating-stack { position: relative; width: 100%; height: 100%; min-height: 440px; }
  .isa-float-card { position: absolute; background: #fff; border-radius: var(--radius); padding: 18px 20px; box-shadow: 0 16px 40px -12px rgba(16,24,40,0.18), 0 6px 16px -6px rgba(16,24,40,0.08); display: flex; gap: 14px; align-items: flex-start; border: 1px solid #F2F4F7; max-width: 380px; }
  .isa-fc1 { top: 0; left: 0; width: 88%; max-width: 380px; transform: rotate(-2deg); animation: isaFloat1 6s ease-in-out infinite; z-index: 1; }
  .isa-fc2 { top: 38%; right: 0; width: 92%; max-width: 400px; transform: rotate(1.5deg); background: linear-gradient(135deg, var(--brand) 0%, #2270FF 100%); border-color: transparent; color: #fff; box-shadow: 0 20px 48px -10px rgba(21,93,252,0.32), 0 8px 20px -6px rgba(21,93,252,0.15); animation: isaFloat2 7s ease-in-out infinite; z-index: 3; }
  .isa-fc3 { bottom: 0; left: 8%; width: 88%; max-width: 380px; transform: rotate(-1deg); animation: isaFloat3 8s ease-in-out infinite; z-index: 2; }
  .isa-fc-avatar { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #B4C7F5 0%, #D9E5FF 100%); display: flex; align-items: center; justify-content: center; color: var(--brand); font-size: var(--fs-meta); font-weight: 500; flex-shrink: 0; }
  .isa-fc-avatar--ai { background: rgba(255,255,255,0.22); color: #fff; font-size: var(--fs-body); }
  .isa-fc-avatar--green { background: linear-gradient(135deg, #B7E4C7 0%, #DDF5E5 100%); color: #16A34A; }
  .isa-fc-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
  .isa-fc-name { font-size: var(--fs-meta); font-weight: 500; color: var(--ink-900); display: flex; align-items: center; gap: 6px; }
  .isa-fc2 .isa-fc-name { color: #fff; }
  .isa-fc-ai-tag { font-size: var(--fs-eyebrow); padding: 2px 6px; background: rgba(255,255,255,0.25); border-radius: 4px; font-weight: 500; letter-spacing: 0.4px; }
  .isa-fc-text { font-size: var(--fs-meta); color: var(--ink-600); line-height: 1.5; }
  .isa-fc2 .isa-fc-text { color: rgba(255,255,255,0.94); }
  .isa-fc-meta { font-size: var(--fs-eyebrow); color: var(--ink-600); margin-top: 4px; font-weight: 500; letter-spacing: 0.2px; }
  .isa-fc2 .isa-fc-meta { color: rgba(255,255,255,0.75); }

  .isa-channel-chips { position: absolute; bottom: -16px; right: 10%; display: flex; gap: 10px; z-index: 4; }
  .isa-channel-chip { width: 44px; height: 44px; background: #fff; border-radius: 12px; box-shadow: 0 8px 20px -6px rgba(16,24,40,0.18), 0 2px 6px -2px rgba(16,24,40,0.08); display: flex; align-items: center; justify-content: center; border: 1px solid #F2F4F7; transition: transform 0.3s ease; }

  @keyframes isaFloat1 { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-6px); } }
  @keyframes isaFloat2 { 0%, 100% { transform: rotate(1.5deg) translateY(0); } 50% { transform: rotate(1.5deg) translateY(8px); } }
  @keyframes isaFloat3 { 0%, 100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-5px); } }

  @media (max-width: 1100px) {
    .isa-hero-grid { grid-template-columns: 1fr !important; }
    .isa-hero-mockup { min-height: 380px; margin-top: 20px; }
    .isa-floating-stack { min-height: 380px; }
    .isa-float-card { max-width: 340px; }
    .isa-channel-chips { right: 50%; transform: translateX(50%); }
  }
  @media (max-width: 600px) {
    .isa-float-card { padding: 14px var(--space-2); }
    .isa-fc-name { font-size: var(--fs-meta); }
    .isa-fc-text { font-size: var(--fs-eyebrow); }
  }
  /* ===== end ISA Hero Concept C ===== */

  /* ===== ISA "What It Delivers" — Concept C brain visualization ===== */
  .isa-brain-wrap { position: relative; width: 100%; max-width: 560px; aspect-ratio: 1/1; margin: 0 auto; }
  .isa-brain-core {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: 150px; height: 150px; border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #2270FF 0%, var(--brand) 60%, #0B47C9 100%);
    box-shadow: 0 0 80px rgba(21,93,252,0.45), 0 0 0 12px rgba(21,93,252,0.08), 0 0 0 28px rgba(21,93,252,0.04);
    display: flex; align-items: center; justify-content: center;
    z-index: 5;
    animation: isaBrainGlow 4s ease-in-out infinite;
  }
  .isa-brain-core::before {
    content: ''; position: absolute; inset: 8px; border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.18);
  }
  .isa-brain-pulse {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: 150px; height: 150px; border-radius: 50%;
    border: 1.5px solid rgba(21,93,252,0.4);
    z-index: 3;
    pointer-events: none;
  }
  .isa-brain-pulse--1 { animation: isaBrainPulse 3s ease-out infinite; }
  .isa-brain-pulse--2 { animation: isaBrainPulse 3s ease-out 1.5s infinite; }
  .isa-brain-lines { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
  .isa-brain-orbit { position: absolute; inset: 0; z-index: 4; }
  .isa-brain-node {
    position: absolute;
    background: #FFFFFF;
    border-radius: var(--radius);
    padding: 12px 14px;
    box-shadow: 0 12px 28px -8px rgba(16,24,40,0.14), 0 4px 10px -2px rgba(16,24,40,0.06);
    width: 180px;
    display: flex; gap: 10px; align-items: center;
    border: 1px solid #F2F4F7;
    transition: transform .3s ease, box-shadow .3s ease;
  }
  .isa-brain-node-icon {
    width: 34px; height: 34px; border-radius: var(--radius);
    background: linear-gradient(135deg, var(--brand-soft) 0%, #DCE5FF 100%);
    color: var(--brand);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .isa-brain-node-text { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
  .isa-brain-node-text b { font-size: var(--fs-meta); font-weight: 500; color: var(--ink-900); }
  .isa-brain-node-text small { font-size: var(--fs-eyebrow); color: var(--ink-600); font-weight: 400; letter-spacing: 0.2px; }
  /* Positions — radial layout around the centre core */
  .isa-brain-n1 { top: 4%;  left: 22%; }
  .isa-brain-n2 { top: 24%; right: 0; }
  .isa-brain-n3 { bottom: 24%; right: 0; }
  .isa-brain-n4 { bottom: 4%; left: 22%; }
  .isa-brain-n5 { top: 50%; left: 0; transform: translateY(-50%); }
  .isa-brain-n5:hover { transform: translateY(-50%) translateY(-3px); }

  @keyframes isaBrainGlow {
    0%, 100% { box-shadow: 0 0 80px rgba(21,93,252,0.45), 0 0 0 12px rgba(21,93,252,0.08), 0 0 0 28px rgba(21,93,252,0.04); }
    50%      { box-shadow: 0 0 100px rgba(21,93,252,0.55), 0 0 0 14px rgba(21,93,252,0.10), 0 0 0 32px rgba(21,93,252,0.05); }
  }
  @keyframes isaBrainPulse {
    0%   { transform: translate(-50%, -50%) scale(1);   opacity: 0.6; }
    100% { transform: translate(-50%, -50%) scale(2.2); opacity: 0;   }
  }

  @media (max-width: 1100px) {
    .isa-brain-wrap { max-width: 480px; }
    .isa-brain-node { width: 160px; padding: 10px 12px; }
    .isa-brain-node-text b { font-size: var(--fs-eyebrow); }
    .isa-brain-node-text small { font-size: var(--fs-eyebrow); }
  }
  @media (max-width: 600px) {
    .isa-brain-wrap { max-width: 360px; }
    .isa-brain-core { width: 110px; height: 110px; }
    .isa-brain-pulse { width: 110px; height: 110px; }
    .isa-brain-node { width: 130px; padding: var(--space-1) 10px; }
    .isa-brain-node-icon { width: 28px; height: 28px; }
    .isa-brain-node-text b { font-size: var(--fs-eyebrow); }
    .isa-brain-node-text small { font-size: var(--fs-eyebrow); }
  }
  /* ===== end ISA Delivers Concept C ===== */

  /* Prevent single-word widow on heading wraps (modern browsers; gracefully ignored on old ones) */
  h1, h2, h3, .section-header h2, .cc-left-headline, .hww-heading, .po-title, .sols-headline, .ag-h2 {
    text-wrap: balance;
  }


    /* Em accent utilities */
    em.em-blue { font-style: normal; font-weight: 500; color: var(--brand); }
    em.em-blue-mid { font-style: normal; font-weight: 500; color: var(--brand); }
    em.em-dark-mid { font-style: normal; font-weight: 500; color: var(--ink-900); }

  
    /* Business Outcomes — DSA-style 3-col with progress arcs + cell borders */
    .po-outcomes-section .po-rows {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 0 !important;
      max-width: var(--container);
      margin: 0 auto;
    }
    .po-outcomes-section .po-cell {
      border-right: 1px solid var(--ink-200);
      border-bottom: 1px solid var(--ink-200);
    }
    .po-outcomes-section .po-cell:nth-child(3n) { border-right: none; }
    .po-outcomes-section .po-cell:nth-last-child(-n+3) { border-bottom: none; }

  
    /* Why PrimeSoft — triangular nexus (CVO design) */
    .why-split { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; max-width: var(--container); margin: 0 auto; }
    .why-img-box { display: flex; align-items: center; justify-content: center; min-height: 380px; }
    .why-img-box svg { width: 100%; height: auto; max-width: 460px; }
    .why-principles { display: flex; flex-direction: column; gap: 4px; }
    .why-row { display: grid; grid-template-columns: 24px 1fr; gap: 18px; align-items: start; padding: 18px 0; border-bottom: 1px solid #ECEEF3; }
    .why-row:last-child { border-bottom: none; }
    .why-row .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--brand, var(--brand)); margin-top: 7px; justify-self: center; box-shadow: 0 0 0 4px rgba(21,93,252,0.12); }
    .why-row h4 { font-family: 'Outfit', sans-serif; font-size: var(--ps-text-h3); font-weight: 500; letter-spacing: -0.01em; color: var(--ink-900); margin: 0 0 6px; line-height: 1.3; }
    .why-row p { font-family: 'Outfit', sans-serif; font-size: var(--fs-title-m); font-weight: 300; line-height: 1.5; color: var(--ink-600); margin: 0; }
    @media (max-width: 900px) {
      .why-split { grid-template-columns: 1fr; gap: 40px; }
      .why-img-box { min-height: 320px; }
    }

    /* Cloud orbit hero visual */
    .cd-orbit-wrap { position: relative; width: 100%; max-width: 500px; aspect-ratio: 1 / 1; margin: 0 auto; }
    .cd-orbit-ring { position: absolute; inset: 50% auto auto 50%; width: 84%; height: 84%; transform: translate(-50%, -50%);
      border: 1.5px dashed var(--brand-border); border-radius: 50%; animation: cd-rotate 60s linear infinite; }
    .cd-orbit-ring::before, .cd-orbit-ring::after {
      content: ''; position: absolute; width: 8px; height: 8px; border-radius: 50%; background: var(--brand);
      box-shadow: 0 0 0 4px rgba(21,93,252,0.15);
    }
    .cd-orbit-ring::before { top: -4px; left: 50%; margin-left: -4px; }
    .cd-orbit-ring::after { bottom: -4px; right: 50%; margin-right: -4px; opacity: 0.4; }
    .cd-orbit-line { position: absolute; top: 50%; left: 50%; width: 0; height: 0; pointer-events: none; }
    .cd-orbit-line svg { position: absolute; top: -180px; left: -180px; width: 360px; height: 360px; overflow: visible; }
    .cd-orbit-line line { stroke: url(#cd-orbit-grad); stroke-width: 1.5; stroke-linecap: round; opacity: 0.6; }
    .cd-orbit-hub { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
      width: 128px; height: 128px; border-radius: 50%;
      background: linear-gradient(135deg, var(--brand) 0%, var(--brand-3) 100%);
      display: flex; align-items: center; justify-content: center; flex-direction: column;
      color: #FFFFFF; text-align: center; font-weight: 500; font-size: var(--fs-meta); letter-spacing: -0.01em;
      box-shadow: 0 12px 40px rgba(21,93,252,0.35), inset 0 1px 0 rgba(255,255,255,0.2);
      animation: cd-hub-pulse 3s ease-in-out infinite;
      z-index: 3;
    }
    .cd-orbit-hub::after {
      content: ''; position: absolute; inset: -8px; border-radius: 50%;
      background: radial-gradient(circle, rgba(21,93,252,0.4) 0%, transparent 70%);
      z-index: -1; animation: cd-hub-glow 3s ease-in-out infinite;
    }
    .cd-orbit-hub .label { font-size: var(--fs-eyebrow); font-weight: 500; text-transform: uppercase;
      letter-spacing: 0.18em; opacity: 0.7; margin-bottom: 2px; }
    .cd-orbit-hub .name { font-size: var(--fs-body); font-weight: 500; }
    .cd-orbit-node { position: absolute; width: 92px; height: 92px; border-radius: 50%;
      background: #FFFFFF; border: 2px solid var(--brand); display: flex; align-items: center; justify-content: center;
      font-weight: 500; font-size: var(--fs-meta); color: var(--brand); letter-spacing: -0.01em;
      box-shadow: 0 8px 24px rgba(21,93,252,0.18), inset 0 1px 0 rgba(255,255,255,0.8);
      z-index: 2;
    }
    .cd-orbit-node.n1 { top: 0;    left: 50%; transform: translate(-50%, 0); animation: cd-float-a 4s ease-in-out infinite; }
    .cd-orbit-node.n2 { top: 50%;  right: 0;  transform: translate(0, -50%); animation: cd-float-b 4s ease-in-out infinite 0.6s; }
    .cd-orbit-node.n3 { bottom: 0; left: 50%; transform: translate(-50%, 0); animation: cd-float-a 4s ease-in-out infinite 1.2s; }
    .cd-orbit-node.n4 { top: 50%;  left: 0;   transform: translate(0, -50%); animation: cd-float-b 4s ease-in-out infinite 1.8s; }
    @keyframes cd-rotate { from { transform: translate(-50%,-50%) rotate(0); } to { transform: translate(-50%,-50%) rotate(360deg); } }
    @keyframes cd-hub-pulse { 0%, 100% { transform: translate(-50%,-50%) scale(1); } 50% { transform: translate(-50%,-50%) scale(1.04); } }
    @keyframes cd-hub-glow { 0%, 100% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.15); } }
    @keyframes cd-float-a { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, -8px); } }
    @keyframes cd-float-b { 0%, 100% { transform: translate(0, -50%); } 50% { transform: translate(0, calc(-50% - 8px)); } }
    @media (prefers-reduced-motion: reduce) {
      .cd-orbit-ring, .cd-orbit-hub, .cd-orbit-hub::after, .cd-orbit-node { animation: none !important; }
    }

  
    /* Architecture — System Diagram (foundation-first 1→5, brand-blue palette) */
    .sd { width: 100%; max-width: 1100px; margin: 0 auto; }
    .sd-platform { display: grid; grid-template-columns: 300px 1fr 300px; gap: 0; align-items: stretch; }
    .sd-side { display: flex; flex-direction: column; align-items: stretch; justify-content: stretch; padding: 0; gap: 0; height: 100%; }
    .sd-side .role { font-size: var(--fs-eyebrow); font-weight: 500; color: var(--brand); letter-spacing: 0.16em; text-transform: uppercase; text-align: center; }
    .sd-side .box { background: #fff; border: 1px solid var(--ink-200); border-radius: 12px; padding: 28px var(--space-3); width: 100%; text-align: center; box-shadow: 0 4px 16px rgba(21,93,252,0.08); flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 0; }
    .sd-side .box h3 { font-family: 'Outfit', sans-serif; font-size: var(--fs-title-m); font-weight: 500; color: var(--ink-900); margin: 0 0 var(--space-1); line-height: 1.3; letter-spacing: -0.01em; }
    .sd-side .box .desc { font-family: 'Outfit', sans-serif; font-size: var(--fs-body); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    .sd-side .arrow { font-size: var(--ps-text-body); color: var(--brand); font-weight: 300; margin: var(--space-1) 0; line-height: 1; align-self: center; }
    .sd-stack { display: flex; flex-direction: column; gap: 10px; padding: 0 12px; height: 100%; min-height: 0; }
    .sd-layer { background: #fff; border: 1.5px solid var(--ink-200); border-radius: 12px; padding: 28px 26px; text-align: center; box-shadow: 0 4px 16px rgba(16,24,40,0.04); flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-1); min-height: 0; }
    .sd-layer .role { font-size: var(--fs-eyebrow); font-weight: 500; color: var(--brand); letter-spacing: 0.16em; text-transform: uppercase; }
    .sd-layer h3 { font-family: 'Outfit', sans-serif; font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); margin: var(--space-1) 0 6px; line-height: 1.3; letter-spacing: -0.01em; }
    .sd-layer .desc { font-family: 'Outfit', sans-serif; font-size: var(--fs-body); font-weight: 300; color: var(--ink-600); margin: 0 0 14px; line-height: 1.5; }
    .sd-layer .chips { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
    .sd-layer .chip { font-family: 'Outfit', sans-serif; font-size: var(--fs-eyebrow); font-weight: 500; color: var(--brand); background: #FFFFFF; padding: 5px 12px; border-radius: 6px; border: 1px solid var(--ink-200); }
    .sd-layer.foundation { background: linear-gradient(135deg, var(--brand), var(--brand-3)); color: #fff; border-color: transparent; box-shadow: 0 12px 32px rgba(21,93,252,0.25); }
    .sd-layer.foundation .role { color: rgba(255,255,255,0.85); }
    .sd-layer.foundation h3 { color: #fff; }
    .sd-layer.foundation .desc { color: rgba(255,255,255,0.85); }
    .sd-layer.foundation .chip { color: #fff; background: rgba(255,255,255,0.18); border-color: rgba(255,255,255,0.25); }
    .sd-umbrella { margin-top: var(--space-4); }
    .sd-umbrella .box { background: #F1F5FF; border: 1.5px dashed var(--brand); border-radius: 12px; padding: 20px 28px; display: grid; grid-template-columns: 1fr auto; gap: 22px; align-items: center; }
    .sd-umbrella .role { font-size: var(--fs-eyebrow); font-weight: 500; color: var(--brand); letter-spacing: 0.16em; text-transform: uppercase; }
    .sd-umbrella h3 { font-family: 'Outfit', sans-serif; font-size: var(--fs-title-m); font-weight: 500; color: var(--ink-900); margin: 0; line-height: 1.3; letter-spacing: -0.01em; }
    .sd-umbrella .chips { display: flex; gap: 6px; flex-wrap: wrap; }
    .sd-umbrella .chip { font-family: 'Outfit', sans-serif; font-size: var(--fs-eyebrow); font-weight: 500; color: var(--brand); background: #fff; padding: 5px 12px; border-radius: 6px; border: 1px solid var(--brand-border); }
    .num-badge { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--brand); color: #fff; font-family: 'Outfit', sans-serif; font-size: var(--fs-meta); font-weight: 500; margin-bottom: var(--space-1); }
    .num-badge.light { background: rgba(255,255,255,0.25); color: #fff; }
    .num-badge.outline { background: #fff; color: var(--brand); border: 2px solid var(--brand); }
    .sd-legend { margin-top: 28px; padding: var(--space-2) 22px; background: #F9FAFB; border: 1px dashed var(--ink-200); border-radius: 8px; font-size: var(--fs-body); font-weight: 300; color: var(--ink-600); text-align: center; line-height: 1.5; }
    .sd-legend strong { color: var(--brand); font-weight: 500; }
    @media (max-width: 900px) {
      .sd-platform { grid-template-columns: 1fr; }
      .sd-side .arrow { font-size: var(--ps-text-body); color: var(--brand); font-weight: 300; margin: var(--space-1) 0; line-height: 1; align-self: center; }
      .sd-side { display: flex; flex-direction: column; align-items: stretch; justify-content: center; padding: 0; gap: 10px; }
      /* Sequential phase order when stacked (single column): 1 → 2 → 3 → 4.
         DOM is P1(left), stack[P3,P2], P4(right); inside the stack P3 renders
         before P2, so mobile read 1,3,2,4. Reorder the stack (P2 above P3) and
         pin the columns' order to fix the sequence. */
      #architecture .sd-stack { display: flex; flex-direction: column; }
      #architecture .sd-side.left  { order: 1; }
      #architecture .sd-stack      { order: 2; }
      #architecture .sd-side.right { order: 3; }
      #architecture .sd-stack .sd-layer.foundation { order: 1; }  /* Phase 2 first  */
      #architecture .sd-stack .sd-layer:not(.foundation) { order: 2; }  /* Phase 3 after */
    }

  
    /* Delivers — clean flat cards with subtle hover tilt (6-col virtual grid so row 2 (2 cards) is centered) */
    /* Delivers — 5-card single row, staggered depth, uploaded PNG icons, category tag pills */
    .cd-depth-wrap { max-width: 1280px; margin: 0 auto; padding: 0; }
    .cd-depth-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
    .cd-depth-card { background: #fff; border: 1px solid #ECEEF3; border-radius: 18px; padding: 28px 22px;
      display: flex; flex-direction: column; gap: 14px;
      transition: transform 0.5s cubic-bezier(0.2,0.8,0.2,1), box-shadow 0.5s cubic-bezier(0.2,0.8,0.2,1), border-color 0.3s;
      box-shadow: 0 6px 18px rgba(16,24,40,0.05);
    }
    .cd-depth-card:nth-child(odd) { transform: translateY(8px); }
    .cd-depth-card:nth-child(even) { transform: translateY(-4px); }
    /* Number eyebrow — brand-blue at top */
    .cd-depth-num { font-family: 'Outfit', sans-serif; font-size: var(--fs-meta); color: var(--brand); font-weight: 500; letter-spacing: 0.16em; }
    /* Icon — uploaded PNG with drop-shadow */
    .cd-depth-ico { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform 0.3s; }
    .cd-depth-ico img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 3px 6px rgba(21,93,252,0.10)) drop-shadow(0 1px 2px rgba(16,24,40,0.05)); transition: filter 0.3s, transform 0.3s; }
    /* Title — concise, 18px / 500 */
    .cd-depth-card h3 { font-family: 'Outfit', sans-serif; font-size: var(--fs-title-m); font-weight: 500; color: var(--ink-900); margin: 0; line-height: 1.3; letter-spacing: -0.02em; }
    /* Body — 15px / 300 for compact 5-col cards */
    .cd-depth-card p { font-family: 'Outfit', sans-serif; font-size: var(--fs-body); font-weight: 300; color: var(--ink-600); margin: 0; line-height: 1.55; flex: 1; }
    /* Outcome line (from doc) — brand-blue with → arrow at the bottom */
    .cd-depth-outcome { font-family: 'Outfit', sans-serif; font-size: var(--fs-meta); color: var(--brand); font-weight: 500; line-height: 1.5; margin-top: auto; padding-top: 12px; border-top: 1px solid #ECEEF3; display: flex; align-items: flex-start; gap: 6px; }
    .cd-depth-outcome .arr { flex-shrink: 0; font-weight: 500; }
    @media (max-width: 1100px) {
      .cd-depth-grid { grid-template-columns: repeat(3, 1fr); }
    }
    @media (max-width: 700px) {
      .cd-depth-grid { grid-template-columns: 1fr; }
      .cd-depth-card:nth-child(odd), .cd-depth-card:nth-child(even) { transform: none; }
    }

  
    /* CI/CD pipeline visualization inside Delivery Process card */
    .cd-pipe { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 4px; width: 100%; }
    .cd-pipe-stage { font-family: 'Outfit', sans-serif; font-size: var(--fs-eyebrow); font-weight: 500; color: var(--brand); background: #FFFFFF; border: 1px solid var(--ink-200); border-radius: 8px; padding: 7px 18px; min-width: 130px; text-align: center; letter-spacing: 0.08em; text-transform: uppercase; transition: all 0.25s; }
    .cd-pipe-arrow { color: var(--brand); font-size: var(--fs-eyebrow); line-height: 1; opacity: 0.5; }

  
    /* Observability — horizontal pill cluster (parallel capabilities, NOT a pipeline) */
    .cd-pills { display: flex; flex-wrap: wrap; gap: var(--space-1); justify-content: center; margin-top: var(--space-1); }
    .cd-pill { font-family: 'Outfit', sans-serif; font-size: var(--fs-eyebrow); font-weight: 500; color: var(--brand); background: #FFFFFF; padding: 6px 14px; border-radius: 6px; border: 1px solid var(--ink-200); letter-spacing: 0.04em; transition: all 0.25s; }

  
    /* Architecture alignment fixes */
    .sd-platform { align-items: stretch; }
    .sd-side { padding: 0; gap: 0; position: relative; }
    .sd-side .box { background: #fff; border: 1px solid var(--ink-200); border-radius: 12px; padding: 28px var(--space-3); width: 100%; text-align: center; box-shadow: 0 4px 16px rgba(21,93,252,0.08); flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 0; }
    .sd-side .box .num-badge { margin-bottom: 4px; }
    .sd-side .box .role { font-size: var(--fs-eyebrow); font-weight: 500; color: var(--brand); letter-spacing: 0.18em; text-transform: uppercase; }
    .sd-side .box h3 { margin: 6px 0 var(--space-1); font-size: var(--fs-body); font-weight: 500; color: var(--ink-900); line-height: 1.2; }
    .sd-side .arrow { font-size: var(--fs-title-l); color: var(--brand); opacity: 0.5; position: absolute; top: 50%; transform: translateY(-50%); }
    .sd-side.left .arrow { right: -18px; }
    .sd-side.right .arrow { left: -18px; }

  
    /* Architecture — arrow labels + reading flow legend */
    .sd-side .arrow { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: var(--ps-text-body); line-height: 1; }
    .sd-side .arrow .arrow-label { font-family: 'Outfit', sans-serif; font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--brand); opacity: 1; white-space: nowrap; }
    .sd-reading-flow { margin-top: var(--space-4); padding: 14px var(--space-3); background: #F1F5FF; border: 1px dashed var(--brand-border); border-radius: 10px; font-size: var(--fs-meta); color: var(--ink-900); text-align: center; line-height: 1.6; }
    .sd-reading-flow strong { color: var(--brand); font-weight: 500; }
    .sd-reading-flow .step { display: inline-flex; align-items: center; gap: 6px; margin: 0 4px; }
    .sd-reading-flow .step .n { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--brand); color: #fff; font-size: var(--fs-eyebrow); font-weight: 500; font-family: 'Outfit', sans-serif; }
    .sd-reading-flow .sep { color: var(--brand-border); margin: 0 2px; }

  

/* ===== next source <style> block ===== */


    /* HD-only: widen hero left column to accommodate long H1 at 84px cap (ET pages) */
    @media (min-width: 1441px) {
      .isa-hero-grid {
        grid-template-columns: minmax(360px, 900px) 1fr !important;
      }
    }
  

/* ===== next source <style> block ===== */


    /* HD scaling for Delivers cards + Architecture section (ET pages) */
    @media (min-width: 1441px) {
      /* "What ... Delivers" cards */
      .cd-depth-card h3 { font-size: var(--ps-text-h3) !important; }
      .cd-depth-card p { font-size: var(--ps-text-body) !important; }
      .cd-depth-outcome { font-size: var(--fs-body) !important; }
      /* Architecture (System Diagram) section — larger for readability at HD */
      #architecture .sd-layer h3,
      #architecture .sd-side .box h3,
      #architecture .sd-umbrella h3 { font-size: var(--ps-text-h3) !important; line-height: 1.25 !important; }
      /* Description body text in layers/boxes */
      #architecture .sd-layer .desc,
      #architecture .sd-side .box .desc { font-size: var(--ps-text-body) !important; line-height: 1.5 !important; }
      /* All chip/pill/stage tags across the section */
      #architecture .sd-layer .chip,
      #architecture .sd-umbrella .chip,
      #architecture .cd-pipe-stage,
      #architecture .cd-pill { font-size: var(--fs-title-m) !important; padding: var(--space-1) 14px !important; }
      /* Role badges */
      #architecture .sd-side .role,
      #architecture .sd-side .box .role,
      #architecture .sd-layer .role,
      #architecture .sd-umbrella .role { font-size: var(--fs-body) !important; }
      /* Pipe arrows between stages */
      #architecture .cd-pipe-arrow { font-size: var(--fs-body) !important; }
      /* Reading flow legend at the bottom */
      #architecture .sd-reading-flow { font-size: var(--fs-title-m) !important; padding: 18px 28px !important; line-height: 1.6 !important; }
      #architecture .sd-reading-flow .step .n { width: 26px !important; height: 26px !important; font-size: var(--fs-meta) !important; }
      #architecture .sd-reading-flow .step { gap: var(--space-1) !important; margin: 0 6px !important; }
      #architecture .sd-reading-flow .sep { font-size: var(--fs-title-m) !important; }
    }
  

/* ===== next source <style> block ===== */


    /* Universal HD step-up (≥1441px) — comprehensive fixed-pixel coverage */
    @media (min-width: 1441px) {
      .footer-brand p { font-size: var(--ps-text-nav) !important; line-height: 1.55 !important; }
      .footer-col h5 { font-size: var(--fs-body) !important; }
      .footer-col a, .footer-col li { font-size: var(--fs-body) !important; }
      .footer-contact, .footer-contact a, .footer-contact p { font-size: var(--fs-body) !important; }
      .footer-bottom, .footer-bottom p, .footer-bottom a { font-size: var(--fs-meta) !important; }
      .ai-card h4 { font-size: var(--ps-text-h3) !important; }
      .ai-card p { font-size: var(--ps-text-body) !important; line-height: 1.55 !important; }
      .ai-card .tag { font-size: var(--fs-meta) !important; padding: 5px 12px !important; }
      .ai-icon { width: 56px !important; height: 56px !important; }
      .solution-card h3 { font-size: var(--ps-text-h3) !important; }
      .solution-card p { font-size: var(--ps-text-body) !important; line-height: 1.55 !important; }
      .metric-num, .metrics-band .metric-num { font-size: var(--fs-stat) !important; }
      .metric-label, .metrics-band .metric-label { font-size: var(--fs-title-m) !important; }
      .partners-grid .partner-name, .partner-card .partner-name { font-size: var(--fs-body) !important; }
    }
  

/* ===== next source <style> block ===== */


    /* ═══════════════════════════════════════════════════════════════════
       METRICS BAND — Variant A (clean minimal editorial pattern)
       Reusable component across Home/Wealth/Cloud/Oracle/PD/QA
       ═══════════════════════════════════════════════════════════════════ */
    .mb-band {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      max-width: 100%;
      margin: 0 auto;
    }
    .mb-band--3 { grid-template-columns: repeat(3, 1fr); }
    .mb-band--6 { grid-template-columns: repeat(3, 1fr); row-gap: var(--space-5); }
    .mb-band--7 { grid-template-columns: repeat(4, 1fr); row-gap: var(--space-5); }
    .mb-cell {
      padding: 0 clamp(var(--space-3), 3vw, var(--space-5));
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
    }
    .mb-cell:first-child { padding-left: 0; }
    .mb-cell:last-child { padding-right: 0; }
    .mb-cell:not(:last-child)::after {
      content: '';
      position: absolute;
      top: 20%;
      right: 0;
      height: 60%;
      width: 1px;
      background: var(--ink-200);
    }
    .mb-cat {
      font-size: var(--fs-title-m);
      font-weight: 500;
      color: var(--ink-900);
      letter-spacing: -0.01em;
      line-height: 1.45;
      margin-bottom: 20px;
    }
    .mb-value {
      font-size: var(--fs-stat);
      font-weight: 300;
      letter-spacing: -0.03em;
      line-height: 1;
      color: var(--ink-900);
      font-family: 'Outfit', sans-serif;
      margin-bottom: 28px;
      display: inline-flex;
      align-items: baseline;
    }
    .mb-value em { font-style: normal; font-weight: inherit; color: inherit; }
    .mb-desc {
      font-size: var(--fs-title-m);
      color: var(--ink-600);
      font-weight: 300;
      line-height: 1.55;
    }
    @media (min-width: 1441px) {
      .mb-cat { font-size: var(--ps-text-eyebrow) !important; }
      .mb-desc { font-size: var(--ps-text-body) !important; }
      /* At HD: narrower band, centered — creates symmetric whitespace */
      .mb-band { max-width: 1240px; }
      .mb-band--6 { max-width: 1360px; }
      .mb-band--7 { max-width: 1440px; }
    }
    @media (max-width: 1024px) {
      .mb-band, .mb-band--3, .mb-band--6, .mb-band--7 { grid-template-columns: repeat(2, 1fr); row-gap: 40px; }
      .mb-cell:nth-child(2n)::after { display: none; }
      .mb-cell:nth-child(2n+1) { padding-left: 0; }
    }
    @media (max-width: 640px) {
      .mb-band, .mb-band--3, .mb-band--6, .mb-band--7 { grid-template-columns: 1fr; row-gap: var(--space-4); }
      .mb-cell::after { display: none; }
      .mb-cell { padding: 0 !important; }
    }
  

/* ===== next source <style> block ===== */
















































































































/* ═══════════════════════════════════════════════════════════════════════
   PRIMESOFT RESPONSIVE SYSTEM — canonical tokens + rules  (v3 — mobile pass)
   Design source of truth: 1366px
   Breakpoint priorities: 1024 · 1366-1919 · mobile 360-767 · tablet 768-1023
   Injected LAST in the cascade so it settles inter-page drift.
   ═══════════════════════════════════════════════════════════════════════ */
/* CANONICAL VERSION MARKER: v3.24 — hero specificity boost */


:root {
  --ps-container: 1440px;
  --ps-pad-x: clamp(20px, 5vw, 80px);

  --ps-section-py: clamp(56px, 8vw, 112px);
  --ps-section-header-mb: clamp(48px, 4vw, 72px);
  --ps-hero-py:    clamp(32px, 4vw, 56px);    /* Compact: 32 mobile / 55 @1366 / 56 @HD */
  --ps-hero-gap:   48px;
  --ps-case-header-py: clamp(48px, 5vw, 80px);

  --ps-s1: 8px;
  --ps-s2: 16px;
  --ps-s3: 24px;
  --ps-s4: 32px;
  --ps-s5: 48px;
  --ps-s6: 64px;
  --ps-s7: 80px;
  --ps-s8: 120px;

  --fs-display-1:      var(--ps-text-h1);
  --fs-display-2:      var(--ps-text-h1);
  --fs-body:    var(--ps-text-body);   /* discrete: 18px base, 22px @HD via media query */
  --fs-body-sm: var(--ps-text-nav);   /* discrete: 16px base, 18px @HD */
  --fs-eyebrow: var(--ps-text-eyebrow);

  --ps-lh-tight:   1.08;
  --ps-lh-heading: 1.15;
  --ps-lh-body:    1.55;

  --container: var(--ps-container);
  --pad-x:     var(--ps-pad-x);
}

@media (min-width: 1441px) {
  :root { --ps-container: 1600px; --container: 1600px; }
}
@media (min-width: 1024px) and (max-width: 1365px) {
  :root { --ps-pad-x: clamp(24px, 4vw, 48px); }
}

html, body { overflow-x: clip; }

.container {
  max-width: var(--ps-container);
  margin-inline: auto;
  padding-inline: var(--ps-pad-x);
  width: 100%;
  box-sizing: border-box;
}

.section { padding-block: var(--ps-section-py); }

.section-header, .sec-head, .hww-header, .impact-intro, .f1-head {
  margin-bottom: var(--ps-section-header-mb);
}

.case-header { padding-block: var(--ps-case-header-py); }

.hero {
  align-items: center;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.hero > [class*="hero-grid"],
.hero > .hero-content,
.hero > .hero-inner {
  max-width: var(--ps-container);
  margin-inline: auto;
  padding-block: var(--ps-hero-py);
  padding-inline: var(--ps-pad-x);
  width: 100%;
  box-sizing: border-box;
}

[class*="hero-grid"] {
  align-items: start;
  gap: var(--ps-hero-gap);
}

.hero h1:not([style*="font-size"]),
.hero-inner h1:not([style*="font-size"]),
.hero-content h1:not([style*="font-size"]),
.case-title:not([style*="font-size"]),
.mockup-tagline:not([style*="font-size"]),
.cu-head h1:not([style*="font-size"]),
.cs-title:not([style*="font-size"]) {
  font-size: var(--fs-display-1);
  line-height: var(--ps-lh-tight);
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.section-header h2:not([style*="font-size"]),
.sec-h2:not([style*="font-size"]) {
  font-size: var(--fs-display-2);
  line-height: var(--ps-lh-heading);
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.section-header p:not([style*="font-size"]),
.sec-lede:not([style*="font-size"]),
.hero-lede:not([style*="font-size"]),
.hero-sub:not([style*="font-size"]),
.hww-subhead:not([style*="font-size"]),
.hww-exp-desc:not([style*="font-size"]),
.impact-intro p:not([style*="font-size"]),
.f1-subtitle:not([style*="font-size"]),
.cc-left-sub:not([style*="font-size"]),
.cc-card-desc:not([style*="font-size"]),
.cc-card-sub:not([style*="font-size"]),
.isa-deliver-row p:not([style*="font-size"]),
.isa-channel-cell p:not([style*="font-size"]),
.imp-card p:not([style*="font-size"]),
.sols-headline-sub:not([style*="font-size"]),
.sols-desc:not([style*="font-size"]),
.mb-cat:not([style*="font-size"]),
.mb-desc:not([style*="font-size"]),
.why-row p:not([style*="font-size"]),
.sf-top-sub:not([style*="font-size"]),
.sf-cta-sub:not([style*="font-size"]),
.poc-sub:not([style*="font-size"]),
.why-left-sub:not([style*="font-size"]),
.fcta-modal-sub:not([style*="font-size"]),
.ag-lede:not([style*="font-size"]),
.ag-sub:not([style*="font-size"]),
.final-cta-sub:not([style*="font-size"]),
.trans-content p:not([style*="font-size"]),
.deel-card p:not([style*="font-size"]),
.clients-quote:not([style*="font-size"]),
.ind-card-sub:not([style*="font-size"]),
.ind-hover-desc:not([style*="font-size"]),
.insight-card p:not([style*="font-size"]),
.promo-caption:not([style*="font-size"]),
.cvo-deliver-card p:not([style*="font-size"]),
.cvo-feature-card p:not([style*="font-size"]),
.cvo-why-item p:not([style*="font-size"]),
.cd-depth-card p:not([style*="font-size"]),
.sd-side .box .desc:not([style*="font-size"]),
.sd-layer .desc:not([style*="font-size"]),
.sa-deliver-point p:not([style*="font-size"]) {
  font-size: var(--fs-body);
  line-height: var(--ps-lh-body);
  /* Distribute words evenly — no widow (last word alone) or orphan
     (single word first) lines. Falls back gracefully on older browsers. */
  text-wrap: balance;
  text-wrap: pretty;
}

@media (min-width: 1441px) {
  p[style*="font-size:var(--fs-title-m)"],
  p[style*="font-size: var(--fs-title-m)"] {
    font-size: var(--ps-text-body) !important;
    line-height: 1.55 !important;
  }
}
/* Body text step-up at HD — discrete 18px → 22px, no fractional values.
   Switch at 1600px: 360-1440 (small monitors) uses 18px, 1600+ (HD/QHD) uses 22px. */
@media (min-width: 1600px) {
  :root {
    --fs-body:    var(--ps-text-body);
    --fs-body-sm: var(--ps-text-nav);
  }
  /* Force all recurring body-text classes to 22px at HD — beats legacy !important rules */
  .hww-exp-desc,
  .hww-subhead,
  .cc-card-desc,
  .cc-card-sub,
  .cc-left-sub,
  .impact-intro p,
  .isa-deliver-row p,
  .isa-channel-cell p,
  .cvo-feature-card p,
  .cvo-deliver-card p,
  .cvo-why-item p,
  .sols-headline-sub,
  .sols-desc,
  .imp-card p,
  .impact-sub,
  .mb-desc,
  .mb-cat,
  .why-row p,
  .deel-card p,
  .trans-content p,
  .insight-card p,
  .clients-quote,
  .ind-card-sub,
  .ind-hover-desc,
  .poc-sub,
  .why-left-sub,
  .fcta-modal-sub,
  .sf-top-sub,
  .sf-cta-sub,
  .ag-lede,
  .ag-sub,
  .final-cta-sub,
  .cs-lede,
  .cs-card-desc,
  #risk-compliance .cvo-feature-card p,
  .cd-depth-card p,
  .sd-side .box .desc,
  .sd-layer .desc,
  .sa-deliver-point p,
  .solution p,
  .final-cta p {
    font-size: var(--ps-text-body) !important;
    line-height: 1.55 !important;
  }
  /* 1600+ (22px text): row min-height sized to fit the actual longest description
     (5 lines × 22px × 1.55 lh = 170px + heading area 90px + padding 64 = ~324px).
     Set 340px = content + 16px slack, no wasted whitespace on collapsed cards. */
  .hww-acc-row {
    min-height: 280px !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════
   MOBILE (≤ 767px) — comprehensive natural mobile adaptation
   Bumps type floors · restores margins · centers stats · fixes hamburger
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  /* User-specified minimum type sizes:
     H1 40 · H2 32 · H3 24 · Body 16 · Eyebrow 14 */
  :root {
    --fs-display-1:      var(--ps-text-h1);
    --fs-display-2:      var(--ps-text-h1);
    --fs-body:    var(--ps-text-body);
    --fs-body-sm: var(--ps-text-nav);
    --fs-eyebrow: var(--ps-text-eyebrow);
    --ps-section-header-mb: clamp(32px, 8vw, 48px);
    /* Looser line-heights for smaller headings on mobile — no crowded lines */
    --ps-lh-tight:   1.18;   /* H1 mobile: was 1.08 */
    --ps-lh-heading: 1.22;   /* H2 mobile: was 1.15 */
  }

  /* Force headings to win against legacy !important rules.
     We keep  filter so intentional inline styles still win. */
  .hero h1,
  .hero-inner h1,
  .hero-content h1,
  .cvo-hero-grid h1,
  .isa-hero-grid h1,
  .dsa-hero-grid h1,
  .pd-hero-grid h1,
  .wealth-hero-grid h1,
  .case-title,
  .mockup-tagline,
  .cu-head h1,
  .cs-title {
    font-size: var(--fs-display-1) !important;
    line-height: var(--ps-lh-tight) !important;
  }
  .section-header h2,
  .sec-h2,
  .hww-heading,
  .impact-intro h2,
  .f1-headline {
    font-size: var(--fs-display-2) !important;
    line-height: var(--ps-lh-heading) !important;
  }
  .section-header p,
  .sec-lede,
  .hero-lede,
  .hero-sub,
  .hww-subhead,
  .impact-intro p,
  .f1-subtitle,
  .isa-deliver-row p,
  .isa-channel-cell p,
  .cc-card-desc,
  .cc-card-sub,
  .cc-left-sub,
  .hww-exp-desc,
  .sols-headline-sub,
  .sols-desc,
  .imp-card p,
  .impact-sub,
  .deel-card p,
  .clients-quote,
  .why-row p,
  .cvo-deliver-card p,
  .cvo-feature-card p,
  .cvo-why-item p,
  .cs-lede,
  .cs-card-desc,
  .final-cta-sub,
  .sf-top-sub,
  .sf-cta-sub,
  .ag-lede,
  .ag-sub,
  .trans-content p,
  .insight-card p,
  .promo-caption p,
  .ind-card-sub,
  .ind-hover-desc,
  .poc-sub,
  .why-left-sub,
  .fcta-modal-sub,
  .mb-desc,
  .mb-cat,
  .cvo-deliver-desc,
  .cvo-outcome,
  .f1-transform-caption,
  .cu-offices-head p,
  .cd-depth-card p,
  .sd-side .box .desc,
  .sd-layer .desc,
  .sa-deliver-point p,
  .solution p,
  .final-cta p {
    font-size: var(--fs-body) !important;
    line-height: var(--ps-lh-body) !important;
  }
  .eyebrow,
  .hww-eyebrow,
  .section-header .eyebrow {
    font-size: var(--fs-eyebrow) !important;
    letter-spacing: 0.14em !important;
  }

  /* Section rhythm — more breathing room between sections */
  .section { padding-block: clamp(56px, 12vw, 88px) !important; }

  /* Hero — natural mobile stack; padding inherits from --ps-hero-py (56px min) */
  .hero { min-height: auto; }
  [class*="hero-grid"] {
    grid-template-columns: 1fr !important;
    gap: var(--space-4);
  }


  /* ─── Channels/Modules grid on mobile: force 1 column + tighter rhythm ─── */
  .isa-channels {
    grid-template-columns: 1fr !important;
    gap: var(--space-2) !important;
  }
  .isa-channel-cell {
    padding: 20px var(--space-2) !important;
  }
  .isa-channel-cell .icon {
    width: 44px !important;
    height: 44px !important;
    margin: 0 auto 12px !important;
  }
  /* Hide Business Outcomes divider on mobile (cells stack — divider unnecessary).
     Also remove the padding-top:var(--space-5) that legacy adds to cells 4-6 (nth-child n+5)
     for visual row separation on desktop — unnecessary when cells stack on mobile. */
  .mb-row-divider {
    display: none !important;
  }
  .mb-band--6 .mb-cell:nth-child(n+5),
  .mb-band--7 .mb-cell:nth-child(n+6),
  .mb-band--8 .mb-cell:nth-child(n+5),
  .mb-band--8 .mb-cell:nth-child(n+6) {
    padding-top: 0 !important;
  }

  /* PD-style .mb-band--6 (3-col grid at desktop >=1025px, NO divider element).
     Legacy .mb-cell::after gives cells right dividers except :last-child — cell 3
     (end of top row) has stray divider extending past grid.
     Legacy .mb-cell:first-child gives cell 1 padding-left:0, but cell 4 (start of
     bottom row) doesn't get the same treatment — misalignment.
     Fix both — scoped to >=1025px so tablet 2-col layout is untouched. */
  @media (min-width: 1025px) {
    .mb-band--6 .mb-cell:nth-child(3)::after {
      display: none !important;
    }
    .mb-band--6 .mb-cell:nth-child(3) {
      padding-right: 0 !important;
    }
    .mb-band--6 .mb-cell:nth-child(4) {
      padding-left: 0 !important;
    }
  }
  /* ─── HAMBURGER FIX ─── */
  .hamburger {
    display: inline-flex !important;   /* override legacy display:none base */
    align-items: center !important;
    justify-content: center !important;
    position: fixed !important;
    top: 16px !important;
    right: var(--ps-pad-x) !important;
    z-index: 10000 !important;          /* above fcta-overlay (1000) and skip-link (9999) */
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    pointer-events: auto !important;   /* ensure clicks fire */
  }
  .hamburger svg {
    width: 24px !important;
    height: 24px !important;
    stroke: var(--ink-900) !important;
    fill: none !important;
    stroke-width: 2 !important;
    pointer-events: none !important;   /* SVG doesn't intercept clicks — the button does */
  }
  /* Hide hamburger when drawer is open — only the close (X) icon should be visible */
  body.mobile-menu-open .hamburger {
    display: none !important;
  }

  /* Wealth-Platform hero-only: full-bleed background image overlaps text on mobile.
     Hide the bg image + reveal a stacked mobile image below the CTA.
     Other pages use side-by-side hero grids that collapse naturally. */
  .hero-bg { display: none !important; }
  .hero-mobile-img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    object-position: right center !important;
    margin: var(--space-4) auto 0 !important;
  }

  /* Why PrimeSoft section — mobile: shrink SVG box, tighten gap between image + text */
  .why-split {
    gap: var(--space-3) !important;
  }
  .why-img-box {
    min-height: auto !important;
    padding: 0 !important;
  }
  .why-img-box svg {
    max-height: 260px !important;
  }
  .why-row {
    padding: 14px 0 !important;
  }

  /* ─── BUSINESS IMPACT — center-align on mobile + tight rhythm ─── */
  .mb-band {
    row-gap: var(--space-4) !important;   /* compact vertical rhythm for stacked cells */
  }
  .mb-cell,
  .impact-cell,
  .imp-card {
    text-align: center !important;
    align-items: center !important;
    padding-inline: 0 !important;   /* padding lives on .mb-band container, not cells */
  }
  .mb-cell::after,
  .mb-cell::before { display: none !important; }
  /* Tight rhythm INSIDE each cell so label + value + description read as a group */
  .mb-cat  { margin-bottom: var(--space-1) !important;  }
  .mb-value { margin-bottom: 12px !important; }
  .mb-desc { margin-bottom: 0 !important;    }

  /* ─── HOW IT WORKS — mobile: expand every card, no accordion ───
     Root fix: on desktop the cards use absolute-positioned overlays with
     fixed heights (64/280). That breaks on mobile. Simpler: hide the
     collapsed overlay entirely and let the expanded content flow statically.
     Every card shows num + title + description. No click needed. */
  .hww-section {
    padding-inline: var(--ps-pad-x) !important;
  }
  /* Card wrapper: static height driven by content, uniform padding */
  .hww-acc-card,
  .hww-acc-card.hww-active {
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    flex: none !important;
    width: 100% !important;
    max-width: none !important;
    padding: var(--space-3) !important;
    margin-bottom: 12px !important;
    border-radius: var(--radius) !important;
    overflow: visible !important;
    position: relative !important;
    cursor: default !important;
  }
  .hww-acc-card:last-child { margin-bottom: 0 !important; }
  /* Hide the collapsed overlay entirely on mobile */
  .hww-collapsed {
    display: none !important;
  }
  /* Expanded content: static flow, top-left, opaque */
  .hww-expanded {
    position: static !important;
    inset: auto !important;
    padding: 0 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    display: block !important;
    overflow: visible !important;
  }
  .hww-expanded > div {
    display: block !important;
  }
  /* Typography: canonical num + title + description */
  .hww-exp-num {
    display: block !important;
    font-size: var(--fs-meta) !important;
    font-weight: 500 !important;
    color: var(--brand) !important;
    letter-spacing: 0.05em !important;
    margin: 0 0 var(--space-1) 0 !important;
    line-height: 1 !important;
  }
  .hww-exp-title {
    display: block !important;
    font-size: var(--fs-title-m) !important;
    font-weight: 500 !important;
    color: var(--ink-900) !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
    margin: 0 0 12px 0 !important;
  }
  .hww-exp-bar {
    display: block !important;
    width: 32px !important;
    height: 2px !important;
    background: var(--ink-200) !important;
    margin: 0 0 12px 0 !important;
  }
  .hww-exp-desc {
    display: block !important;
    font-size: var(--fs-title-m) !important;
    color: var(--ink-600) !important;
    line-height: 1.55 !important;
    margin: 0 !important;
  }
  /* Kill any accordion active-state size boosts on mobile */
  .hww-acc-card.hww-active .hww-expanded,
  .hww-acc-card:not(.hww-active) .hww-expanded {
    opacity: 1 !important;
    pointer-events: auto !important;
    transition: none !important;
  }

  /* ─── CARDS — consistent padding ─── */
  .cc-card, .cs-card-body, .tc-card, .m4-card, .sf-card, .sols-card {
    padding: var(--ps-s4) !important;
  }

  /* ─── TOUCH TARGETS ─── */
  .btn, .btn-primary, .btn--primary, .btn-secondary,
  .fcta-trigger, .hero-cta-btn, .ag-cta, .cc-left-cta {
    min-height: 48px !important;
    padding-inline: var(--ps-s3) !important;
    font-size: var(--fs-body) !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════
   DESKTOP (≥ 1024px) — targeted fixes for legacy component overflow
   These address specific 1920 issues found during ISA pilot testing.
   ═══════════════════════════════════════════════════════════════════════ */
@media (min-width: 1024px) {
  /* ─── HOW IT WORKS at desktop ───
     Tier 1 (1024-1599, 18px text): NO override — legacy owns row min-height, padding,
     AND overflow:hidden on card. The overflow:hidden is REQUIRED for the hover
     cross-fade animation to render cleanly. Only tier 2 (1600+) tweaks row height. */

  /* ─── Pyramid labels: sized to fit the SVG's fixed foreignObject slots
     (SVG is a fixed-position diagram — 22px body would overflow into next tier).
     Use 18px body / 20px heading — readable but fits within the pyramid layout. */
  .annotated .label h4 {
    font-size: var(--ps-text-h3) !important;
    margin: 0 0 4px !important;
    line-height: 1.25 !important;
  }
  .annotated .label p {
    font-size: var(--fs-body) !important;
    line-height: 1.45 !important;
  }

  /* ─── "Built on three principles" tag: more visible at HD ─── */
  .why-three-tag {
    font-size: var(--fs-meta) !important;
    color: var(--ink-600) !important;
    letter-spacing: normal !important;
    margin-bottom: 20px !important;
  }

  /* ─── CC card "Read more" / "Show less" toggle: too small at HD ─── */
  .cc-card-toggle {
    font-size: var(--ps-text-body) !important;
    gap: var(--space-1) !important;
    margin-top: var(--space-2) !important;
  }
  .cc-card-toggle-chev {
    width: clamp(12px, 0.9vw, 15px) !important;
    height: clamp(12px, 0.9vw, 15px) !important;
  }

}



/* ═══════════════════════════════════════════════════════════════════════
   PYRAMID SVG LABELS ON MOBILE
   The SVG viewBox is 0 80 1000 360. On a 390px viewport it scales to ~390
   wide (scale ~0.39). To make label text readable at that scale, internal
   font-size needs to be ~2.5× the desired actual size.
   Desktop labels stay at their normal sizes.
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  /* On mobile the label descriptions don't fit — hide them, show only tier titles.
     Line endpoints are at y=138/245/350 (8 SVG units from top of each foreignObject).
     Allow content to overflow the foreignObject vertically so titles render fully
     when centered on the line height. */
  .annotated foreignobject {
    overflow: visible !important;
  }
  .annotated .label {
    display: block !important;
    height: 100% !important;
    padding-left: 12px !important;
    position: relative !important;
    overflow: visible !important;
  }
  .annotated .label > div {
    width: 100% !important;
    position: absolute !important;
    top: 8px !important;
    left: 12px !important;
    right: 0 !important;
    transform: translateY(-50%) !important;
    overflow: visible !important;
  }
  .annotated .label h4 {
    font-size: var(--ps-text-h1) !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: nowrap !important;
  }
  .annotated .label p {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   CORE CAPABILITIES CARDS on mobile — Option A (approved)
   
   Icon top-left · title below icon · description below title. All left-aligned.
   Matches the HWW cards pattern for cross-page consistency.
   Applies at ≤767px only — desktop layout unchanged.
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  .cc-card {
    display: block !important;
    padding: var(--space-3) !important;
    background: #FFFFFF !important;
    border: 1px solid var(--ink-200) !important;
    border-radius: var(--radius) !important;
    margin-bottom: var(--space-2) !important;
    text-align: left !important;
  }
  .cc-card:last-child { margin-bottom: 0 !important; }
  .cc-card-head {
    display: block !important;
    width: auto !important;
    margin-bottom: var(--space-2) !important;
    flex: none !important;
  }
  .cc-card-icon {
    width: 56px !important;
    height: 56px !important;
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
  .cc-card-icon-img {
    width: 56px !important;
    height: 56px !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }
  .cc-card-content {
    width: 100% !important;
    padding: 0 !important;
    text-align: left !important;
  }
  .cc-card-title {
    font-size: var(--fs-title-m) !important;
    font-weight: 500 !important;
    color: var(--ink-900) !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
    margin: 0 0 var(--space-1) !important;
    text-align: left !important;
  }
  .cc-card-sub, .cc-card-desc {
    font-size: var(--fs-body) !important;
    font-weight: 300 !important;
    color: var(--ink-600) !important;
    line-height: 1.55 !important;
    text-align: left !important;
    margin: 0 !important;
  }
  /* Kill any hover transforms / sticky positioning that legacy applies to cc-card */
  .cc-card:hover { transform: none !important; }
  /* Container that holds all cards — vertical stack */
  .cc-right, .cc-cards, .cc-card-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }
}
/* ═══════════════════════════════════════════════════════════════════════
   SMALL MOBILE (≤ 480px) — very narrow screens
   ═══════════════════════════════════════════════════════════════════════ */

  /* Wealth hero mobile-only image — hidden on desktop */
  .hero-mobile-img { display: none; }

@media (max-width: 480px) {
  :root {
    --ps-pad-x: clamp(20px, 4vw, 24px);   /* Enterprise B2B standard: 20-24px on mobile */
  }
  .section { padding-block: clamp(48px, 12vw, 72px) !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   HERO — kill legacy HD-only section padding
   Legacy adds padding-top:105px !important + padding-bottom:76px !important
   at @1441px+ only. That's the SOLE cause of the "extra whitespace at 1920"
   vs "fine at 1366". Override with 0 so hero at 1920 matches 1366 rhythm.
   ═══════════════════════════════════════════════════════════════════════ */
@media (min-width: 1024px) {
  /* Hero at desktop+: kill section min-height so section is content-driven.
     Higher specificity (section.hero = 11) to beat any legacy .hero rules.
     Also top-align content so any residual slack goes to bottom (not centered
     which creates equal top/bottom whitespace surrounding a small content). */
  section.hero {
    min-height: auto !important;
    align-items: flex-start !important;
    padding: 0 !important;
  }
  /* Also force grid padding to use our token, high specificity to beat legacy */
  section.hero > [class*="hero-grid"],
  section.hero > .hero-content,
  section.hero > .hero-inner {
    padding-block: var(--ps-hero-py) !important;
  }
}
@media (min-width: 1441px) {
  /* Kill legacy .hero padding-top:105 + padding-bottom:76 at HD.
     ONLY targets section.hero — case-fullbleed-hero and cu-hero need their own
     vertical padding (they don't have a hero-grid child to own padding-block). */
  section.hero {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: auto !important;
  }
}

@media (min-width: 1441px) {
  /* Section-header container widens proportionally at HD.
     Prevents "H2 wraps to 3 lines at 1920 but 2 at 1366" caused by fixed
     760px max-width while H2 font-size scales up to 52px. */
  .section-header { max-width: clamp(760px, 60vw, 1100px) !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Business Impact stat description — cap at 2 lines max
   Applies at all viewports. Text wraps naturally within 2 lines, then
   any overflow is truncated with ellipsis.
   ═══════════════════════════════════════════════════════════════════════ */
.mb-desc {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-clamp: 2;  /* future standard */
}

/* ═══════════════════════════════════════════════════════════════════════
   HEADER / NAV — align with container at HD viewports
   
   Root cause: .header uses padding-inline: var(--pad-x) on a full-width
   element. At viewports > --ps-container (e.g., 1920 with container 1600),
   the header content sits left of container content (e.g., logo at 80px
   from viewport left while container content starts at 240px).
   
   Fix: pad by the greater of --ps-pad-x OR half the extra viewport space
   plus --ps-pad-x. At viewports ≤ container, base padding wins. At larger
   viewports, extra padding is added to match container centering.
   ═══════════════════════════════════════════════════════════════════════ */
.header {
  padding-inline: max(var(--ps-pad-x), calc((100vw - var(--ps-container)) / 2 + var(--ps-pad-x))) !important;
}

  /* Architecture section — scale up starting at 1200 (was 1441 only) so all 
     desktop viewports get proper hierarchy, not just full HD */
  @media (min-width: 1200px) {
    #architecture .sd-side .box h3,
    #architecture .sd-layer h3,
    #architecture .sd-umbrella h3 {
      font-size: var(--fs-title-l) !important;
      line-height: 1.3 !important;
    }
    #architecture .sd-side .box .role,
    #architecture .sd-side .role,
    #architecture .sd-layer .role,
    #architecture .sd-umbrella .role {
      font-size: var(--fs-meta) !important;
    }
    #architecture .cd-pipe-stage,
    #architecture .cd-pill,
    #architecture .sd-layer .chip,
    #architecture .sd-umbrella .chip {
      font-size: var(--fs-meta) !important;
      padding: 6px 12px !important;
    }
    #architecture .sd-side .box .desc,
    #architecture .sd-layer .desc {
      font-size: var(--fs-title-m) !important;
      line-height: 1.5 !important;
    }
  }

  /* Architecture — HD (1600+) — bigger still, aligned with 22px body text */
  @media (min-width: 1600px) {
    #architecture .sd-side .box h3,
    #architecture .sd-layer h3,
    #architecture .sd-umbrella h3 {
      font-size: var(--fs-title-l) !important;
    }
    #architecture .sd-side .box .role,
    #architecture .sd-side .role,
    #architecture .sd-layer .role,
    #architecture .sd-umbrella .role {
      font-size: var(--fs-body) !important;
    }
    #architecture .cd-pipe-stage,
    #architecture .cd-pill,
    #architecture .sd-layer .chip,
    #architecture .sd-umbrella .chip {
      font-size: var(--fs-body) !important;
      padding: var(--space-1) 14px !important;
    }
    #architecture .sd-side .box .desc,
    #architecture .sd-layer .desc {
      font-size: var(--ps-text-body) !important;
    }
  }

  /* Card-bottom blue outcome text at HD — bump to 18px for readability at 1920.
     .cd-depth-outcome — "What PrimeSoft ... Delivers" cards (13→18)
     .cc-outcome — "Core Capabilities" outcome text (15→18) */
  @media (min-width: 1600px) {
    .cd-depth-outcome,
    .cc-outcome {
      font-size: var(--fs-title-m) !important;
      line-height: 1.5 !important;
    }
  }

  /* ─── Architecture section (#architecture) — shared across PD/Cloud/Oracle/QA ─── */
  /* .sd wrapper — legacy hardcoded max-width: 1100px, expand to fill container */
  #architecture .sd { max-width: 100% !important; width: 100% !important; }
  /* Card sizing (from PD): let cards size to content instead of equal-height flex share.
     Without these, .sd-layer has flex: 1 1 0 which causes content clipping when
     one card in the middle stack has more chips than the other. */
  #architecture .sd-stack {
    height: auto !important;
    min-height: 0 !important;
  }
  #architecture .sd-layer {
    flex: 0 0 auto !important;
    min-height: auto !important;
    padding: 22px var(--space-3) !important;
    gap: 10px !important;
  }
  /* Widen the .sd-platform grid — desktop only. Mobile stacks vertically below. */
  @media (min-width: 1024px) {
    #architecture .sd-platform {
      grid-template-columns: 1fr 1.35fr 1fr !important;
      gap: var(--space-2) !important;
    }
  }
  /* Reading flow — label on top row, steps on single row below */
  #architecture .sd-flow-label {
    display: block !important;
    margin-bottom: var(--space-1) !important;
    text-align: center !important;
  }
  #architecture .sd-flow-steps {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    overflow: hidden !important;
  }
  #architecture .sd-flow-steps .step {
    white-space: nowrap !important;
    flex: 0 1 auto !important;
    margin: 0 2px !important;
    font-size: var(--fs-body) !important;
    gap: 4px !important;
  }
  #architecture .sd-flow-steps .step .n {
    width: 20px !important;
    height: 20px !important;
    font-size: var(--fs-eyebrow) !important;
    flex-shrink: 0 !important;
  }
  #architecture .sd-flow-steps .sep {
    flex: 0 0 auto !important;
    font-size: var(--fs-meta) !important;
    margin: 0 2px !important;
  }
  
  /* HD (1600+) — bump chip, role, and reading-flow steps */
  @media (min-width: 1600px) {
    #architecture .cd-pipe-stage,
    #architecture .cd-pill,
    #architecture .sd-layer .chip,
    #architecture .sd-umbrella .chip {
      font-size: var(--fs-body) !important;
      padding: var(--space-1) var(--space-2) !important;
    }
    #architecture .sd-side .box .role,
    #architecture .sd-side .role,
    #architecture .sd-layer .role,
    #architecture .sd-umbrella .role {
      font-size: var(--fs-body) !important;
      letter-spacing: 0.14em !important;
    }
    #architecture .sd-flow-steps .step {
      font-size: var(--fs-body) !important;
    }
    #architecture .sd-flow-steps .sep {
      font-size: var(--fs-body) !important;
    }
    #architecture .sd-flow-steps .step .n {
      width: 22px !important;
      height: 22px !important;
      font-size: var(--fs-eyebrow) !important;
    }
  }

  /* How It Works (deel-timeline) — HD scale (1600+) so step titles + descriptions
     are legible at 1920. Steps titles bumped to 22, descriptions to 22 matching body. */
  @media (min-width: 1600px) {
    .deel-labels .label .num {
      font-size: var(--ps-text-h3) !important;
    }
    .deel-labels .label .ttl {
      font-size: var(--ps-text-h3) !important;
      line-height: 1.3 !important;
    }
    .deel-card p {
      font-size: var(--ps-text-body) !important;
      line-height: 1.5 !important;
    }
  }

  /* Case Studies (cs-flip-card) — HD scale (1600+) so card content is readable at 1920 */
  @media (min-width: 1600px) {
    /* Front face */
    .cs-flip-card .cs-front .cs-ind { font-size: var(--ps-text-eyebrow) !important; }
    .cs-flip-card .cs-front .cs-tag { font-size: var(--fs-meta) !important; padding: 6px 12px !important; }
    .cs-flip-card .cs-front .cs-titleblock h3 { font-size: var(--ps-text-h3) !important; line-height: 1.3 !important; }
    .cs-flip-card .cs-front .cs-hint { font-size: var(--fs-meta) !important; }
    /* Back face */
    .cs-flip-card .cs-back .cs-back-tag { font-size: var(--fs-meta) !important; }
    .cs-flip-card .cs-back .cs-stat-mega { font-size: var(--ps-text-h1) !important; }
    .cs-flip-card .cs-back .cs-stat-lbl { font-size: var(--fs-body) !important; }
    .cs-flip-card .cs-back h3 { font-size: var(--ps-text-h3) !important; line-height: 1.3 !important; }
    .cs-flip-card .cs-back p { font-size: var(--fs-title-m) !important; line-height: 1.55 !important; }
    .cs-flip-card .cs-back .cs-cta { font-size: var(--fs-body) !important; padding: 12px 20px !important; }
  }

  /* PD How It Works — desktop uses deel-timeline, mobile uses hww-acc component (matches ISA design) */
  .hww-acc-mobile { display: none; }
  @media (max-width: 767px) {
    .deel-timeline { display: none !important; }
    .hww-acc-mobile { display: block !important; }
  }
  /* ─── Case Studies mobile — show FRONT face only, replace hover-hint with CTA ─── */
  @media (max-width: 767px) {
    /* Explicit padding at multiple layers so cards can't overflow */
    #case-studies {
      padding-left: 0 !important;
      padding-right: 0 !important;
    }
    #case-studies > .container,
    #case-studies .container {
      padding-left: 20px !important;
      padding-right: 20px !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
    }
    /* 1-col grid — full width of container's inner area */
    .cs-flip-grid {
      grid-template-columns: 1fr !important;
      gap: 20px !important;
      perspective: none !important;
      padding: 0 !important;
      margin: 0 !important;
      max-width: 100% !important;
      width: 100% !important;
      box-sizing: border-box !important;
    }
    /* Force card to respect container width, override aspect-ratio */
    .cs-flip-card {
      aspect-ratio: auto !important;
      width: 100% !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
    }
    
    /* Card container — cleaner padding, softer shadow, no clipping */
    .cs-flip-card {
      display: block !important;
      perspective: none !important;
      transform-style: flat !important;
      transform: none !important;
      height: auto !important;
      background: #FFFFFF !important;
      border: 1px solid var(--ink-200) !important;
      border-radius: var(--radius-pill) !important;
      overflow: visible !important;
      text-decoration: none !important;
      color: inherit !important;
      box-shadow: 0 2px 8px rgba(16,24,40,0.06) !important;
      padding: var(--space-3) 20px !important;
    }
    .cs-flip-card:hover { transform: none !important; }
    
    /* Flatten flip-face — strip its border/bg/padding */
    .cs-flip-face.cs-front,
    .cs-front {
      position: static !important;
      transform: none !important;
      backface-visibility: visible !important;
      display: block !important;
      height: auto !important;
      padding: 0 !important;
      background: transparent !important;
      border: none !important;
      border-radius: 0 !important;
      overflow: visible !important;
      color: var(--ink-900) !important;
    }
    .cs-flip-face.cs-back { display: none !important; }
    
    /* Top row: industry label + case tag — well-spaced */
    .cs-front .cs-top {
      display: flex !important;
      justify-content: space-between !important;
      align-items: center !important;
      gap: 12px !important;
      margin: 0 0 20px !important;
      padding: 0 !important;
    }
    .cs-front .cs-ind {
      font-size: var(--fs-eyebrow) !important;
      font-weight: 500 !important;
      letter-spacing: normal !important;
      text-transform: none !important;
      color: var(--ink-600) !important;
      line-height: 1 !important;
    }
    .cs-front .cs-tag {
      font-size: var(--fs-eyebrow) !important;
      font-weight: 500 !important;
      padding: 5px 10px !important;
      letter-spacing: 0.1em !important;
      line-height: 1 !important;
    }
    
    /* Mockup section — dedicated visual band with subtle backdrop */
    .cs-front .cs-mockup {
      padding: 20px var(--space-2) !important;
      margin: 0 0 var(--space-3) !important;
      overflow: visible !important;
      background: #F8FAFF !important;
      border-radius: 10px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      min-height: 160px !important;
    }
    .cs-front .cs-mockup img {
      width: 100% !important;
      height: auto !important;
      max-height: 180px !important;
      max-width: 100% !important;
      object-fit: contain !important;
      display: block !important;
      margin: 0 auto !important;
    }
    
    /* Title block + CTA — grouped as bottom action zone */
    .cs-front .cs-titleblock {
      display: block !important;
      margin: 0 !important;
      padding: 0 !important;
    }
    .cs-front .cs-titleblock h3 {
      font-size: var(--fs-title-m) !important;
      font-weight: 500 !important;
      color: var(--ink-900) !important;
      line-height: 1.35 !important;
      margin: 0 0 18px !important;
      letter-spacing: -0.01em !important;
    }
    
    /* Hide the "Hover to reveal outcome →" hint */
    .cs-front .cs-hint { display: none !important; }
    
    /* "Read full case study →" CTA button */
    .cs-front .cs-titleblock::after {
      content: "Read full case study →";
      display: inline-flex !important;
      align-items: center !important;
      gap: 6px !important;
      padding: 11px 20px !important;
      background: var(--brand) !important;
      color: #FFFFFF !important;
      border-radius: var(--radius-pill) !important;
      font-size: var(--fs-meta) !important;
      font-weight: 500 !important;
      font-family: 'Outfit', sans-serif !important;
      margin: 0 !important;
      letter-spacing: 0 !important;
    }
  }

  /* ─── Architecture section mobile — vertical stack in 1→5 reading order ─── */
  @media (max-width: 767px) {
    /* Sequential phase order when stacked: 1 → 2 → 3 → 4.
       .sd-stack uses display: contents so its layers become direct flex children
       of .sd-platform, letting all four phases be ordered together.
       DOM: P1(left), stack[P3, P2(foundation)], P4(right). */
    #architecture .sd-stack { display: contents !important; }
    #architecture .sd-side.left { order: 1 !important; }                    /* Phase 1 · Consult & Advise */
    #architecture .sd-layer.foundation { order: 2 !important; }             /* Phase 2 · Implement & Integrate */
    #architecture .sd-layer:not(.foundation) { order: 3 !important; }       /* Phase 3 · Optimise & Enhance */
    #architecture .sd-side.right { order: 4 !important; }                   /* Phase 4 · Run & Support */
    /* Umbrella (Governance = step 5) is a separate sibling of .sd-platform
       so it renders after all 4 layers naturally. */
    #architecture .sd { max-width: 100% !important; padding: 0 !important; }
    #architecture .sd-platform {
      display: flex !important;
      flex-direction: column !important;
      gap: 12px !important;
    }
    /* Sides + stack all become sequential blocks */
    #architecture .sd-side,
    #architecture .sd-stack {
      display: flex !important;
      flex-direction: column !important;
      gap: 12px !important;
      padding: 0 !important;
      height: auto !important;
    }
    /* Cards: consistent look across sides + layers.
       Override the desktop flex `align-items: center` so all children
       (role badge, h3, chips) start from the LEFT edge on mobile. */
    #architecture .sd-side .box,
    #architecture .sd-layer {
      padding: 20px 18px !important;
      border-radius: 12px !important;
      min-height: auto !important;
      text-align: left !important;
      align-items: flex-start !important;
      justify-content: flex-start !important;
    }
    /* Ensure inner text elements don't inherit center-align via inline styles */
    #architecture .sd-side .box .role,
    #architecture .sd-side .role,
    #architecture .sd-layer .role,
    #architecture .sd-umbrella .role,
    #architecture .sd-side .box h3,
    #architecture .sd-layer h3,
    #architecture .sd-umbrella h3,
    #architecture .sd-side .box .desc,
    #architecture .sd-layer .desc {
      align-self: flex-start !important;
      width: 100% !important;
    }
    /* Umbrella umbrella box grid also needs alignment fix */
    #architecture .sd-umbrella .box {
      align-items: flex-start !important;
    }
    /* Titles and body copy readable on small screens */
    #architecture .sd-side .box h3,
    #architecture .sd-layer h3,
    #architecture .sd-umbrella h3 {
      font-size: var(--fs-title-m) !important;
      text-align: left !important;
      margin: 6px 0 var(--space-1) !important;
    }
    #architecture .sd-side .box .role,
    #architecture .sd-layer .role,
    #architecture .sd-umbrella .role {
      font-size: var(--fs-eyebrow) !important;
      text-align: left !important;
    }
    #architecture .sd-side .box .desc,
    #architecture .sd-layer .desc {
      font-size: var(--fs-body) !important;
      text-align: left !important;
      margin-bottom: 12px !important;
    }
    /* Chips wrap in rows, aligned left */
    #architecture .sd-layer .chips,
    #architecture .sd-umbrella .chips {
      justify-content: flex-start !important;
      gap: 6px !important;
      margin-top: 4px !important;
    }
    #architecture .cd-pipe-stage,
    #architecture .cd-pill,
    #architecture .sd-layer .chip,
    #architecture .sd-umbrella .chip {
      font-size: var(--fs-eyebrow) !important;
      padding: 6px 10px !important;
    }
    /* Layer 3 (Enterprise Integration) — match Layer 2 chip layout:
       wrap pipe stages horizontally like chips, hide the ↓ arrows. */
    #architecture .cd-pipe {
      display: flex !important;
      flex-direction: row !important;
      flex-wrap: wrap !important;
      align-items: flex-start !important;
      justify-content: flex-start !important;
      width: 100% !important;
      gap: 6px !important;
      margin-top: 4px !important;
    }
    #architecture .cd-pipe-arrow {
      display: none !important;
    }
    #architecture .cd-pipe-stage {
      text-align: left !important;
      min-width: 0 !important;
      width: auto !important;
      max-width: 100% !important;
      /* Match .sd-layer .chip visual so it looks like Layer 2's chips */
      font-size: var(--fs-eyebrow) !important;
      font-weight: 500 !important;
      padding: 6px 10px !important;
      letter-spacing: 0.02em !important;
      text-transform: none !important;
    }
    /* Layer 4 (Quality & Compliance) — pills wrap starting from LEFT. */
    #architecture .cd-pills {
      justify-content: flex-start !important;
      align-items: flex-start !important;
    }
    #architecture .cd-pill {
      text-align: left !important;
    }
    /* Umbrella card: label + chips stack instead of grid */
    #architecture .sd-umbrella { margin-top: 12px !important; }
    #architecture .sd-umbrella .box {
      grid-template-columns: 1fr !important;
      gap: 14px !important;
      padding: 20px 18px !important;
    }
    /* Reading flow: stack steps vertically on mobile */
    #architecture .sd-flow-label {
      text-align: left !important;
      margin-bottom: 10px !important;
    }
    #architecture .sd-flow-steps {
      display: flex !important;
      flex-direction: column !important;
      align-items: stretch !important;
      gap: var(--space-1) !important;
    }
    #architecture .sd-flow-steps .step {
      display: flex !important;
      align-items: center !important;
      gap: 10px !important;
      font-size: var(--fs-meta) !important;
      margin: 0 !important;
      padding: var(--space-1) 12px !important;
      background: #F8FAFF !important;
      border-radius: 8px !important;
    }
    #architecture .sd-flow-steps .step .n {
      width: 24px !important;
      height: 24px !important;
      font-size: var(--fs-eyebrow) !important;
    }
    #architecture .sd-flow-steps .sep { display: none !important; }
    /* Hide the reading-flow band on mobile — redundant now that layer cards
       stack in the same 1→5 order that the flow describes. */
    #architecture .sd-reading-flow { display: none !important; }
  }

  /* ─── Business Outcomes mb-band--6 DSA/PD style: 3+3 layout with horizontal divider ─── */
  /* Desktop: 3 columns */
  @media (min-width: 1025px) {
    .mb-band--6 { grid-template-columns: repeat(3, 1fr) !important; row-gap: 0 !important; }
    .mb-band--6 .mb-cell:nth-child(n+5) {
      padding-top: var(--space-5) !important;
      margin-top: 0 !important;
    }
    .mb-band--6 .mb-cell:nth-child(3)::after { display: none !important; }
    .mb-band--6 .mb-cell:nth-child(5) { padding-left: 0 !important; }
  }
  /* Tablet: 2 columns */
  @media (min-width: 641px) and (max-width: 1024px) {
    .mb-band--6 { grid-template-columns: repeat(2, 1fr) !important; row-gap: 40px !important; }
  }
  /* Mobile: 1-column stack (long descriptions need full width to read comfortably) */
  @media (max-width: 640px) {
    .mb-band--6 { grid-template-columns: 1fr !important; row-gap: var(--space-4) !important; }
    .mb-band--6 .mb-cell:nth-child(n+5) { padding-top: 0 !important; }
  }
  .mb-row-divider {
    grid-column: 1 / -1;
    height: 1px;
    background: var(--ink-200);
    margin: var(--space-5) 0 0;
  }
  @media (max-width: 767px) {
    .mb-row-divider { display: none !important; }
  }

  /* Case Studies — match PD's mockup treatment (100% width, softer drop-shadow).
     Cloud/Oracle/QA had 72% width constraint. Now all pages consistent. */
  .cs-flip-card .cs-front .cs-mockup,
  .cs-mockup {
    flex: 1 1 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 20px 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  .cs-flip-card .cs-front .cs-mockup img,
  .cs-mockup img {
    max-width: 100% !important;
    max-height: 198px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    filter: drop-shadow(0 8px 16px rgba(16,24,40,0.10)) !important;
  }
  .cs-flip-card .cs-front .cs-mockup svg,
  .cs-mockup svg {
    max-width: 90% !important;
    max-height: 200px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    filter: drop-shadow(0 10px 24px rgba(21,93,252,0.16)) !important;
  }

  /* Our Solutions cards — equal height per row (fix C&V being taller than siblings) */
  .sols-grid {
    align-items: stretch !important;
  }
  .sols-card {
    height: 100% !important;
    min-height: 100% !important;
    align-self: stretch !important;
  }

  /* How We Work / How It Works (hww-acc) — HD 1600+ font scaling. */
  @media (min-width: 1600px) {
    .hww-subhead {
      font-size: var(--ps-text-body) !important;
      line-height: 1.55 !important;
    }
    .hww-col-num {
      font-size: var(--fs-title-l) !important;
    }
    .hww-col-title {
      font-size: var(--ps-text-h3) !important;
      line-height: 1.3 !important;
    }
    .hww-exp-num {
      font-size: var(--fs-title-l) !important;
    }
    .hww-exp-title {
      font-size: var(--ps-text-h3) !important;
      line-height: 1.3 !important;
    }
    .hww-exp-desc {
      font-size: var(--ps-text-body) !important;
      line-height: 1.55 !important;
      max-width: 640px !important;
    }
    .hww-eyebrow {
      font-size: var(--fs-eyebrow) !important;
    }
  }

  /* Trust chip mobile — balance text wrap, larger icon, better spacing */
  @media (max-width: 640px) {
    .hero-trust {
      font-size: var(--fs-eyebrow) !important;
      padding: 10px var(--space-2) !important;
      line-height: 1.4 !important;
      gap: 12px !important;
      text-wrap: balance !important;
      max-width: 100% !important;
      align-items: center !important;
      border-radius: var(--radius-pill) !important;
    }
    .hero-trust svg {
      width: 20px !important;
      height: 20px !important;
      flex-shrink: 0 !important;
      margin-top: 0 !important;
    }
  }

  /* Hero value strip mobile — 2 on line 1 ("Accelerate • Modernize"), 1 on line 2 ("Adopt AI") */
  @media (max-width: 767px) {
    .hero-value-strip {
      display: flex !important;
      flex-direction: row !important;      /* override any column stack */
      flex-wrap: wrap !important;
      justify-content: flex-start !important;
      align-items: center !important;
      row-gap: 6px !important;
      column-gap: 0 !important;
      white-space: normal !important;
      text-align: left !important;
    }
    /* Show all separators */
    .hero-value-strip .sep {
      display: inline !important;
      margin: 0 var(--space-1) !important;
    }
    /* Hide the SECOND separator (the 4th child overall = between "Modernize" and "Adopt AI").
       Selector uses nth-child since nth-of-type(2) was matching the FIRST span with class sep. */
    .hero-value-strip > .sep:nth-child(4) {
      display: none !important;
    }
    /* Force the last item ("Adopt AI with Confidence") to a new line via flex-basis */
    .hero-value-strip > span:not(.sep):last-child {
      flex-basis: 100% !important;
      text-align: left !important;
    }
  }

  /* Home promo video section — proper top spacing + title layout on mobile */
  @media (max-width: 767px) {
    .promo {
      padding-top: 40px !important;      /* was 0 — proper spacing above video card */
    }
    /* Adjust title inside video card on mobile — improve alignment */
    .promo-caption {
      left: 20px !important;
      right: 20px !important;
      bottom: 20px !important;
      max-width: calc(100% - 40px) !important;
      align-items: flex-start !important;
    }
    .promo-caption h3 {
      font-size: var(--fs-title-m) !important;         /* was 22 — better fit for narrow mobile */
      line-height: 1.3 !important;
      margin-bottom: 4px !important;
    }
    .promo-caption p {
      font-size: var(--fs-meta) !important;
      line-height: 1.4 !important;
    }
    .promo-bar-vert {
      width: 3px !important;
      height: 44px !important;
      flex-shrink: 0 !important;
      margin-top: 2px !important;
    }
    /* Reduce play button so it doesn't overlap the title */
    .promo .play-button {
      width: 56px !important;
      height: 56px !important;
    }
    .promo .play-button svg {
      width: 22px !important;
      height: 22px !important;
      margin-left: 2px !important;
    }
    /* Also shrink the ripple animation for the smaller button */
    .promo .play-button::before {
      inset: -6px !important;
    }
  }

  /* Pain Metrics Band mobile — reduce gap between title and stats + 2x2 layout */
  @media (max-width: 767px) {
    .sf-top {
      padding-bottom: var(--space-2) !important;      /* was 32 */
    }
    .sf-metrics-band {
      padding-top: var(--space-2) !important;         /* was 40 */
      padding-bottom: 40px !important;      /* was 72 */
    }
    /* 4 stats → 2x2 grid on mobile */
    .sf-metrics-band .mb-band {
      grid-template-columns: repeat(2, 1fr) !important;
      row-gap: 28px !important;
      column-gap: 12px !important;
    }
    /* Center-align cell content in the 2x2 grid (impact stats feel) */
    .sf-metrics-band .mb-cell {
      text-align: center !important;
      align-items: center !important;
      padding: 0 !important;
    }
    /* Hide vertical dividers between cells (no longer 1-column) */
    .sf-metrics-band .mb-cell::after,
    .sf-metrics-band .mb-cell::before {
      display: none !important;
    }
  }

  /* Customer review + stats-band mobile adjustments */
  @media (max-width: 767px) {
    /* Bump customer review body text 17 → 18px (design system standard) */
    .clients-q-name { font-size: var(--fs-title-m) !important; }
    .clients-q-quote { font-size: var(--fs-title-m) !important; line-height: 1.55 !important; }
    
    /* Stats-band (Enterprise-Grade / 20+ Years / 4 / 24×7) — 2x2 on mobile */
    .stats-band .stats-row {
      display: grid !important;
      grid-template-columns: repeat(2, 1fr) !important;
      column-gap: 12px !important;
      row-gap: var(--space-3) !important;
      flex-wrap: initial !important;
    }
    .stats-band .stats-cell {
      padding: var(--space-1) !important;
      text-align: center !important;
    }
    /* Hide the vertical dividers (.stats-div) in 2x2 layout */
    .stats-band .stats-div { display: none !important; }
    /* Bump stats font sizes on mobile for 2x2 layout */
    .stats-band .stats-num {
      font-size: var(--ps-text-h1) !important;    /* was 28 — bigger for 2x2 impact */
      margin-bottom: 6px !important;
    }
    .stats-band .stats-label {
      font-size: var(--fs-meta) !important;    /* was 12 — better readability */
      line-height: 1.4 !important;
    }
  }

  /* Industries cards mobile — original design + rounded transparent overlay */
  @media (max-width: 767px) {
    .ind-grid {
      grid-template-columns: 1fr !important;
      gap: var(--space-2) !important;
    }
    /* Card sizes to content — no empty band at bottom */
    .ind-card {
      min-height: 220px !important;
      height: auto !important;
    }
    /* White overlay — semi-transparent + rounded so image peeks through around edges */
    .ind-card .ind-hover {
      background: rgba(255, 255, 255, 0.85) !important;
      backdrop-filter: blur(8px) !important;
      -webkit-backdrop-filter: blur(8px) !important;
      border-radius: var(--radius) !important;
      margin: var(--space-2) !important;
      padding: 20px !important;
      position: relative !important;
      inset: auto !important;
      opacity: 1 !important;
      color: var(--ink-900) !important;
      box-shadow: 0 4px 20px rgba(16,24,40,0.15) !important;
    }
    .ind-card .ind-hover-title {
      color: var(--ink-900) !important;
    }
    .ind-card .ind-hover-desc {
      color: var(--ink-600) !important;
    }
    .ind-card .ind-hover-link {
      color: var(--brand) !important;
      border-bottom-color: rgba(21,93,252,0.35) !important;
    }
  }

  /* Missing HD scaling for card titles — Core Capabilities + What Delivers */
  @media (min-width: 1600px) {
    .cc-card-title {
      font-size: var(--ps-text-h3) !important;
      line-height: 1.3 !important;
    }
    .cd-depth-card h3 {
      font-size: var(--ps-text-h3) !important;
      line-height: 1.3 !important;
      font-weight: 500 !important;
    }
  }
  /* Also ensure a good base for cd-depth-card h3 */
  .cd-depth-card h3:not([style*="font-size"]) {
    font-size: var(--ps-text-h3);
    font-weight: 500;
    color: var(--ink-900);
    line-height: 1.3;
  }

  /* About QualNetics stats — 2x2 layout on mobile */
  @media (max-width: 767px) {
    #about-qualnetics .qn-stats-row {
      grid-template-columns: 1fr 1fr !important;
      row-gap: var(--space-3) !important;
      column-gap: 12px !important;
    }
    /* Hide vertical dividers in 2x2 layout */
    #about-qualnetics .qn-stat-divider {
      display: none !important;
    }
    /* Bump stat number for better mobile impact */
    #about-qualnetics .qn-stats-row > div > div:first-child {
      font-size: var(--ps-text-h3) !important;
    }
  }

  /* Contact Us — align to DS standards (H1, form input, office name) */
  /* H1 hero — DS scaling (was 44-88, should be 40-72 max) */
  .cu-head h1,
  .cu-hero h1 {
    font-size: var(--fs-display-1) !important;
  }
  @media (min-width: 1441px) {
    .cu-head h1,
    .cu-hero h1 {
      font-size: var(--fs-display-1) !important;
    }
  }
  /* Form input — bump to body sizes (18/22) for readability + DS alignment */
  .cu-field input,
  .cu-field textarea,
  .cu-field select,
  .cu-form input,
  .cu-form textarea,
  .cu-form select {
    font-size: var(--fs-title-m) !important;
    line-height: 1.5 !important;
  }
  @media (min-width: 1441px) {
    .cu-field input,
    .cu-field textarea,
    .cu-field select,
    .cu-form input,
    .cu-form textarea,
    .cu-form select {
      font-size: var(--ps-text-body) !important;
    }
  }
  @media (min-width: 1600px) {
    .cu-field input,
    .cu-field textarea,
    .cu-field select,
    .cu-form input,
    .cu-form textarea,
    .cu-form select {
      font-size: var(--ps-text-body) !important;
    }
  }
  /* Office name — align to card title (22/26) */
  .cu-office-name {
    font-size: var(--ps-text-h3) !important;
  }
  @media (min-width: 1441px) {
    .cu-office-name {
      font-size: var(--ps-text-h3) !important;
    }
  }

  /* Contact Us mobile — align to DS (fix legacy small mobile sizes) */
  @media (max-width: 767px) {
    /* Form input/textarea — 16px minimum prevents iOS zoom-on-focus */
    .cu-field input,
    .cu-field textarea,
    .cu-field select,
    .cu-form input,
    .cu-form textarea,
    .cu-form select {
      font-size: var(--fs-body) !important;
    }
    /* Form label — DS eyebrow 12px minimum */
    .cu-field label {
      font-size: var(--fs-eyebrow) !important;
    }
    /* Lede subtitle — DS body 16px on mobile (was going down to 14) */
    .lede {
      font-size: var(--fs-body) !important;
      line-height: 1.5 !important;
    }
    /* Office name on mobile — matches card title mobile */
    .cu-office-name {
      font-size: var(--ps-text-h3) !important;
    }
    /* Quickmeta phone/email — bump slightly for readability */
    .cu-qm {
      font-size: var(--fs-meta) !important;
    }
  }



/* ===== next source <style> block ===== */


        .oracle-hero-img-wrap {
          position: relative;
          width: 100%;
          height: 100%;
          margin: 0;
          display: flex;
          align-items: center;
          justify-content: flex-end;
        }
        .oracle-hero-img-wrap img {
          width: 130%;
          max-width: 130%;
          height: auto;
          display: block;
          transform: translateX(10%);
        }
        @media (max-width: 900px) {
          .oracle-hero-img-wrap { justify-content: center; }
          .oracle-hero-img-wrap img { width: 100%; max-width: 100%; transform: none; margin: 0 auto; }
        }
      

/* ===== next source <style> block ===== */


    /* Oracle ERP — 4-card grid with modern angled/zigzag floating layout (mirrors PD) */
    #what-delivers .cd-depth-grid { grid-template-columns: repeat(4, 1fr) !important; gap: 22px; perspective: 1200px; }
    #what-delivers .cd-depth-card:nth-child(1) { transform: translateY(0)    rotate(-1.4deg); }
    #what-delivers .cd-depth-card:nth-child(2) { transform: translateY(18px) rotate( 1.4deg); }
    #what-delivers .cd-depth-card:nth-child(3) { transform: translateY(0)    rotate(-1.4deg); }
    #what-delivers .cd-depth-card:nth-child(4) { transform: translateY(18px) rotate( 1.4deg); }
    #what-delivers .cd-depth-card { transition: transform 0.5s cubic-bezier(0.2,0.8,0.2,1), box-shadow 0.5s cubic-bezier(0.2,0.8,0.2,1), border-color 0.3s; }
    #what-delivers
    #what-delivers .cd-depth-ico { width: 80px; height: 80px; }
    @media (max-width: 1100px) {
      #what-delivers .cd-depth-grid { grid-template-columns: repeat(2, 1fr) !important; }
    }
    @media (max-width: 700px) {
      #what-delivers .cd-depth-grid { grid-template-columns: 1fr !important; }
      #what-delivers .cd-depth-card:nth-child(1),
      #what-delivers .cd-depth-card:nth-child(2),
      #what-delivers .cd-depth-card:nth-child(3),
      #what-delivers .cd-depth-card:nth-child(4) { transform: none; }
    }
  

/* ===== next source <style> block ===== */


    /* Oracle ERP — Pitfall B chip-overflow scoped overrides (center stack chips denser than C&D) */
    #architecture .sd-stack { height: auto !important; min-height: 0; }
    #architecture .sd-layer { flex: 0 0 auto !important; min-height: auto; padding: 22px var(--space-3); gap: 10px; }
    #architecture .sd-layer .chips { margin-top: 4px; row-gap: 6px; }
    /* Architecture typography normalization — h3 / role / tag elements consistent across 5 cards */
    #architecture .sd-side .box h3,
    #architecture .sd-layer h3,
    #architecture .sd-umbrella h3 { font-size: var(--fs-title-m) !important; font-weight: 500 !important; line-height: 1.3; letter-spacing: -0.01em; margin: 4px 0 6px; }
    #architecture .sd-side .box .role,
    #architecture .sd-side .role,
    #architecture .sd-layer .role,
    #architecture .sd-umbrella .role { font-size: var(--fs-eyebrow) !important; font-weight: 500 !important; color: var(--brand); letter-spacing: 0.16em !important; text-transform: uppercase; margin: 0 0 4px; }
    #architecture .sd-layer.foundation .role { color: rgba(255,255,255,0.85) !important; }
    #architecture .cd-pipe-stage,
    #architecture .cd-pill,
    #architecture .sd-layer .chip,
    #architecture .sd-umbrella .chip { font-size: var(--fs-eyebrow) !important; font-weight: 500 !important; color: var(--brand); text-transform: none !important; letter-spacing: 0.04em !important; padding: 4px 10px; }
    #architecture .sd-layer.foundation .chip { color: #fff !important; }
  
  /* ═══════════════════════════════════════════════════════════════════════
     Button system normalization — 1 size (44px height / 14px text / 20px
     side padding / 999px radius / 500 weight) applied to every button-like
     class on every page. Color/fill/border rules from existing classes are
     preserved — primary stays filled-blue, secondary/outline stays outlined.
     Only the dimensions are unified.
     ═══════════════════════════════════════════════════════════════════════ */
  .btn, .btn-primary, .btn--primary, .btn-secondary,
  .hero-cta-btn, .ag-cta, .cc-left-cta, .cc-left-cta-blue,
  .fcta-btn, .fcta-submit, .view-all-btn, .sols-panel-cta,
  .hww-btn-primary, .hww-btn-outline, .header-btn,
  .lead-cta-card, .poc-cta, .sf-cta-btn-p, .sf-cta-btn-s {
    height: 44px !important;
    padding: 0 20px !important;
    font-size: var(--fs-meta) !important;
    font-weight: 500 !important;
    border-radius: var(--radius-pill) !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: var(--space-1) !important;
    white-space: nowrap !important;
  }

  /* No-italics sitewide override — force normal font-style on em/i/etc. */
  em, i, cite, dfn, var, address, .em, [class*="em-"] { font-style: normal !important; }


  /* ═══════════════════════════════════════════════════════════════════════
     RESPONSIVE FIXES — appended for full mobile support (additive only)
     P3: overflow-x guard   P5: touch targets   P7: footer 1-col
     ═══════════════════════════════════════════════════════════════════════ */

  /* P3 — prevent horizontal scroll on the whole page */
  html, body { overflow-x: clip; }

  /* P7 — footer collapses to single column on very small screens */
  @media (max-width: 480px) {
    .footer-top { grid-template-columns: 1fr !important; gap: var(--space-4) !important; }
    .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
    .footer-social, .footer-legal { justify-content: center; }
  }

  /* P5 — enforce minimum touch target size on touch devices only */
  @media (hover: none) and (pointer: coarse) {
    .btn, .btn-primary, .btn-secondary, .btn--primary,
    .cs-page, .cs-chip, .filter-chip, .nav-dropdown-trigger,
    .header-nav a, .cu-btn, .hero-cta-btn, .fcta-trigger,
    .ag-cta, button.btn, a.btn, .lms-btn, .db-btn {
      min-height: 44px;
    }
    .cs-page.cs-page-arrow, .icon-btn, .cs-tool-btn {
      min-height: 44px; min-width: 44px;
    }
  }


  /* P1 — mobile nav collapse (missing on solution pages) */
  @media (max-width: 1100px) {
    .header-nav { display: none !important; }
    .header .header-actions .btn:not(.btn-primary) { display: none; }
  }


  /* ═══════════════════════════════════════════════════════════════════════
     MOBILE HAMBURGER + SLIDE-IN DRAWER (below 1100px)
     ═══════════════════════════════════════════════════════════════════════ */

  .hamburger {
    display: none;
    width: 44px; height: 44px;
    border: none; background: transparent;
    color: var(--ink-900); cursor: pointer;
    align-items: center; justify-content: center;
    border-radius: var(--radius);
    margin-left: var(--space-1);
    -webkit-tap-highlight-color: transparent;
  }
  .hamburger:hover { background: var(--bg-soft); }
  .hamburger svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }

  .mobile-backdrop {
    position: fixed; inset: 0;
    background: rgba(15,23,42,0.55);
    z-index: 998;
    opacity: 0; visibility: hidden;
    transition: opacity 0.28s ease, visibility 0.28s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }

  .mobile-drawer {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: 88%; max-width: 380px;
    background: #FFFFFF;
    z-index: 999;
    transform: translateX(100%);
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex; flex-direction: column;
    overflow-y: auto;
    box-shadow: -20px 0 60px rgba(15,23,42,0.16);
  }

  body.mobile-menu-open { overflow: hidden; }
  body.mobile-menu-open .mobile-backdrop { opacity: 1; visibility: visible; }
  body.mobile-menu-open .mobile-drawer { transform: translateX(0); }

  .mobile-drawer-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--space-2) 20px;
    border-bottom: 1px solid #ECEEF3;
    flex-shrink: 0;
  }
  .mobile-drawer-head img { height: 36px; width: auto; display: block; }
  .mobile-drawer-close {
    width: 40px; height: 40px;
    border: none; background: transparent;
    color: var(--ink-900); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius);
    -webkit-tap-highlight-color: transparent;
  }
  .mobile-drawer-close:hover { background: var(--bg-soft); }
  .mobile-drawer-close svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }

  .mobile-drawer-nav {
    flex: 1;
    padding: 12px 14px;
    display: flex; flex-direction: column;
    gap: 2px;
  }
  .mobile-drawer-nav > a {
    padding: 13px 14px;
    font-size: var(--fs-body); font-weight: 500;
    color: var(--ink-900);
    text-decoration: none;
    border-radius: var(--radius);
    transition: background 0.15s ease, color 0.15s ease;
  }
  .mobile-drawer-nav > a:hover { background: var(--bg-soft); color: var(--brand); }

  .mobile-drawer-nav details { border-radius: var(--radius); }
  .mobile-drawer-nav summary {
    padding: 13px 14px;
    font-size: var(--fs-body); font-weight: 500;
    color: var(--ink-900);
    cursor: pointer;
    list-style: none;
    display: flex; align-items: center; justify-content: space-between;
    border-radius: var(--radius);
    transition: background 0.15s ease, color 0.15s ease;
  }
  .mobile-drawer-nav summary::-webkit-details-marker { display: none; }
  .mobile-drawer-nav summary::after {
    content: '';
    width: 8px; height: 8px;
    border-right: 2px solid var(--ink-600);
    border-bottom: 2px solid var(--ink-600);
    transform: rotate(45deg);
    transition: transform 0.22s ease;
    margin-right: 6px;
  }
  .mobile-drawer-nav details[open] summary::after {
    transform: rotate(-135deg);
  }
  .mobile-drawer-nav summary:hover { background: var(--bg-soft); color: var(--brand); }

  .mobile-submenu {
    padding: 2px 0 6px 12px;
    display: flex; flex-direction: column; gap: 1px;
  }
  .mobile-submenu a {
    padding: 10px 14px;
    font-size: var(--fs-meta); font-weight: 400;
    color: var(--ink-600);
    text-decoration: none;
    border-radius: var(--radius);
    transition: background 0.15s ease, color 0.15s ease;
  }
  .mobile-submenu a:hover { background: var(--bg-soft); color: var(--brand); }

  .mobile-drawer-cta {
    padding: 14px 20px 20px;
    border-top: 1px solid #ECEEF3;
    flex-shrink: 0;
  }
  .mobile-drawer-cta a {
    display: flex; align-items: center; justify-content: center;
    width: 100%; height: 48px;
    background: var(--brand); color: #fff;
    border-radius: var(--radius-pill);
    font-size: var(--fs-body); font-weight: 500;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(21,93,252,0.28);
  }
  .mobile-drawer-cta a:hover { background: #0F4CD8; }

  @media (max-width: 1100px) {
    .hamburger { display: inline-flex; }
    .header .header-actions { display: none !important; }
  }


  /* ═══════════════════════════════════════════════════════════════════════
     HD DESKTOP (≥ 1441px) — wider container + generous whitespace
     Additive only. Existing clamp() typography maxes are respected.
     ═══════════════════════════════════════════════════════════════════════ */
  @media (min-width: 1441px) {
    /* Wider content area — was 1280px, now 1440px on HD screens */
    :root { --container: 1440px; }

    /* Container padding gets more generous */
    .container, .hero-content, .cs-shell {
      padding-left: clamp(40px, 6vw, var(--space-8));
      padding-right: clamp(40px, 6vw, var(--space-8));
    }

    /* Hero sections breathe */
    .hero, .case-fullbleed-hero, .cu-hero {
      padding-top: clamp(96px, 8vw, 140px);
      padding-bottom: clamp(72px, 6vw, 108px);
    }

    /* Section headers space more generously */
    .sec-head, .hww-header, .impact-intro, .section-header,
    .f1-head, .cvo-hero-grid { margin-bottom: clamp(var(--space-5), 4vw, 72px); }

    /* Case-study title block */
    .case-header { padding-top: clamp(var(--space-7), 7vw, var(--space-8)); padding-bottom: clamp(var(--space-5), 4vw, 72px); }
  }


  /* ═══════════════════════════════════════════════════════════════════════
     SMALL MOBILE (≤ 430px) — tighter section padding + smaller headings
     Covers heroes, F1 flow, HWW, impact, ISA deliver, CTAs, buttons
     ═══════════════════════════════════════════════════════════════════════ */
  @media (max-width: 430px) {
    /* Universal container padding */
    .container, .hero-content, .cs-shell { padding-left: var(--space-2); padding-right: var(--space-2); }

    /* Case-study title block */
    .case-title { font-size: var(--fs-display-1) !important; letter-spacing: -0.02em; line-height: 1.1; }
    .case-subtitle { font-size: var(--fs-body) !important; line-height: 1.55; }
    .case-header { padding: var(--space-4) 0 var(--space-3) !important; }
    .case-tag { font-size: var(--fs-eyebrow) !important; padding: 4px 10px !important; }

    /* Case-study hero */
    .case-fullbleed-hero { padding: var(--space-4) 0 !important; }
    .mockup-tagline { font-size: var(--fs-display-1) !important; line-height: 1.15; }
    .mockup-logo img { height: 72px !important; }
    .hero-lede { font-size: var(--fs-body) !important; line-height: 1.55; }

    /* Contact hero */
    .cu-hero { padding: 40px var(--space-2) !important; }
    .cu-head h1 { font-size: var(--fs-display-1) !important; line-height: 1.1; }
    .cu-head p.lede { font-size: var(--fs-body) !important; }
    .cu-card { padding: var(--space-3) 20px !important; border-radius: var(--radius) !important; }

    /* Section headers everywhere */
    .sec-h2, .hww-heading, .impact-intro h2, .section-header h2, .f1-headline,
    .cvo-hero-grid h1, .isa-hero-grid h1, .dsa-hero-grid h1 {
      font-size: var(--fs-display-1) !important;
      line-height: 1.15;
      letter-spacing: -0.02em;
    }
    /* legacy 14.5px rule removed — canonical 18px owns mobile */

    /* F1 vertical flow */
    .f1-section { padding: 40px 0 !important; }
    .f1-pain-chip { font-size: var(--fs-eyebrow) !important; padding: 7px 12px !important; }
    .f1-sol-card { padding: 12px 14px !important; font-size: var(--fs-meta) !important; }
    .f1-transform-caption { font-size: var(--fs-meta) !important; }
    .f1-outcomes { padding: 20px var(--space-2) !important; grid-template-columns: 1fr 1fr !important; gap: 20px 12px !important; }
    .f1-out-val { font-size: var(--fs-stat) !important; }
    .f1-out-cap { font-size: var(--fs-eyebrow) !important; }

    /* How It Works (deel timeline) */
    .hww-header { margin-bottom: var(--space-4) !important; }
    .deel-timeline { padding: 0 4px !important; }
    .deel-card p { font-size: var(--fs-meta) !important; line-height: 1.5; }

    /* Impact grid */
    .impact { padding: var(--space-5) 0 !important; }
    .impact-intro { margin-bottom: var(--space-4) !important; }
    .impact-num { font-size: var(--fs-stat) !important; }
    .impact-label { font-size: var(--fs-meta) !important; }
    .impact-sub { font-size: var(--fs-eyebrow) !important; line-height: 1.45; }
    .impact-cell { padding: 20px var(--space-2) !important; }

    /* Solution ISA-deliver rows (case-study solution section) */
    .isa-deliver-split { padding: var(--space-4) 0 !important; gap: var(--space-3) !important; }
    .isa-deliver-row { padding: 12px 0 !important; gap: 12px !important; }
    .isa-deliver-row .num { font-size: var(--ps-text-h3) !important; min-width: 32px !important; }
    .isa-deliver-row h3 { font-size: var(--fs-body) !important; }

    /* Video walkthrough */
    .video-block { padding: 40px 0 !important; }
    .video-frame { aspect-ratio: 16 / 9; height: auto !important; }

    /* Related cases */
    .related { padding: var(--space-5) 0 !important; }
    .related-card { padding: 20px !important; }
    .related-card h3 { font-size: var(--fs-body) !important; }

    /* Buttons — hero CTAs full-width */
    .hero-cta-btn, .fcta-trigger, .btn--primary,
    .cs-hero-block .btn, .hero-inner .btn, .case-header .btn {
      max-width: 100% !important;
    }
    .hero-cta-btn, a.fcta-trigger, .cta-btn-primary {
      width: 100% !important; justify-content: center !important;
    }

    /* Case-studies list page */
    .cs-shell { padding: 40px var(--space-2) !important; }
    .cs-title { font-size: var(--fs-display-1) !important; }
    .cs-lede { font-size: var(--fs-meta) !important; }
    .cs-card-cover { min-height: 160px !important; padding: 12px 14px !important; }
    .cs-card-title { font-size: var(--fs-body) !important; }
    .cs-card-desc { font-size: var(--fs-meta) !important; line-height: 1.5; }
    .cs-pagination { gap: 4px !important; }
    .cs-page { min-width: 40px; height: 40px; font-size: var(--fs-meta); }
  }


  /* ═══════════════════════════════════════════════════════════════════════
     HD DESKTOP v2 (≥ 1441px) — comprehensive scaling
     Typography maxes, viewport-scaling spacing, larger structural elements.
     Fixes "designed for 1366, looks small on 1920" problem.
     ═══════════════════════════════════════════════════════════════════════ */
  

  /* ═══════════════════════════════════════════════════════════════════════
     BUSINESS OUTCOMES · .po-* responsive scaling
     Currently .po-* has fixed sizes with no HD scale-up or mobile scale-down.
     ═══════════════════════════════════════════════════════════════════════ */

  @media (min-width: 1441px) {
    /* HD — bigger metric number, slightly larger label/tag */
    /* HD scale-up removed — was overriding fixed inline sizes on Business Outcomes labels */
    .po-dlabel { font-size: var(--ps-text-body) !important; }
    .po-ddir { font-size: var(--ps-text-nav) !important; }
  }

  @media (max-width: 640px) {
    /* Portrait phone — compact the tiles */
    .po-dnum { font-size: var(--fs-stat) !important; }
    .po-dlabel { font-size: var(--fs-meta) !important; }
    .po-ddir { font-size: var(--fs-eyebrow) !important; }
  }

  @media (max-width: 430px) {
    /* Small mobile */
    .po-dnum { font-size: var(--ps-text-h3) !important; }
    .po-dlabel { font-size: var(--fs-meta) !important; }
    .po-ddir { font-size: var(--fs-eyebrow) !important; line-height: 1.3; }
  }


  /* ═══════════════════════════════════════════════════════════════════════
     BUSINESS OUTCOMES · unified grid collapse for .po-rows AND .imp-grid
     Standardizes the breakpoints so all 7 solution pages collapse identically
     regardless of which class family is used (.po-rows vs .imp-grid).
     ═══════════════════════════════════════════════════════════════════════ */
  @media (max-width: 1100px) {
    .po-rows, .imp-grid { grid-template-columns: repeat(2, 1fr) !important; }
  }
  @media (max-width: 560px) {
    .po-rows, .imp-grid { grid-template-columns: 1fr !important; }
  }


  /* ═══════════════════════════════════════════════════════════════════════
     PROPORTIONAL HD SCALING (≥ 1441px) — supersedes previous HD block
     Same composition as 1366 · scaled ~15-20% at 1920 · no new elements
     Preserves visual hierarchy, alignment, and content positioning
     ═══════════════════════════════════════════════════════════════════════ */
  @media (min-width: 1441px) {

    /* ── Container widens from 1280 → 1600 (preserves 1366 proportions) ── */
    :root { --container: 1600px !important; }

    /* ── Hero + section padding ── */
    .hero, .case-fullbleed-hero, .cu-hero {
      padding-top: clamp(56px, 6vw, 105px) !important;
      padding-bottom: clamp(40px, 4.5vw, 76px) !important;
    }

    /* ── Container / shell horizontal padding — same as 1366 pattern at HD ── */
    .container, .hero-content, .cs-shell {
      padding-left: clamp(20px, 6vw, var(--space-8)) !important;
      padding-right: clamp(20px, 6vw, var(--space-8)) !important;
    }

    /* ── Section verticals scale proportionally ── */
    .section, .hww-section, .cc-section, .impact,
    .solution-pc3, .video-block, .related,
    .sf-section, .sols-section, .stats-band, .ag-section,
    .partners-section, .promo, .v3-section {
      padding-top: clamp(var(--space-6), 6vw, 100px) !important;
      padding-bottom: clamp(var(--space-6), 6vw, 100px) !important;
    }

    /* ── Case-study title block ── */
    .case-header {
      padding-top: clamp(var(--space-6), 6vw, 100px) !important;
      padding-bottom: clamp(40px, 4vw, 68px) !important;
    }

    /* ── Section header margin ── */
    .sec-head, .hww-header, .impact-intro, .section-header, .f1-head {
      margin-bottom: clamp(40px, 4vw, 72px) !important;
    }

    /* ══════════════════ TYPOGRAPHY — proportional maxes ══════════════════ */

    /* Hero H1 (all pages) — 63px @ 1366 · 84px @ 1920 (~+33%) */
    .hero h1, .hero-inner h1 {
      font-size: var(--fs-display-1) !important;
      line-height: 1.08;
    }

    /* Case-study title — 63px @ 1366 · 78px @ 1920 */
    .case-title { font-size: var(--fs-display-1) !important; }

    /* Mockup tagline (case-study hero) */
    .mockup-tagline { font-size: var(--ps-text-h1) !important; }

    /* Contact page H1 */
    .cu-head h1 { font-size: var(--fs-display-1) !important; }

    /* Section H2 — 42px @ 1366 · 58px @ 1920 (~+38%) */
    .sec-h2, .f1-headline, .hww-heading, .ag-h2,
    .sols-headline, .cc-left-headline, .section-header h2 {
      font-size: var(--fs-display-2) !important;
      line-height: 1.15;
    }

    /* Sub-lead paragraphs — 18px @ 1366 · 22px @ 1920 */
    .hero-sub, .hero-lede, .case-subtitle,
    .sec-lede, .hww-subhead, .impact-intro p,
    .section-header p, .f1-subtitle, p.lede,
    .cs-lede, .cu-head p.lede {
      font-size: var(--ps-text-body) !important;
      line-height: 1.55;
    }

    /* Value strip / bullet lists */
    .hero-value-strip {
      font-size: var(--ps-text-body) !important;
    }

    /* Trust chip */
    .hero-trust {
      font-size: var(--ps-text-nav) !important;
    }
    .hero-trust svg {
      width: clamp(13px, 1vw, 16px) !important;
      height: clamp(13px, 1vw, 16px) !important;
    }

    /* Card titles */
    .cc-card-title, .cs-card-title, .impact-label,
    .tc-name, .sf-cta-heading, .sols-name {
      font-size: var(--ps-text-h3) !important;
    }

    /* Card body text */
    .cc-card-sub, .cs-card-desc, .tc-desc, .sols-desc,
    .impact-sub, .isa-deliver-row p {
      font-size: var(--ps-text-body) !important;
      line-height: 1.55;
    }

    /* Metric numbers — moderate scaling */
    .impact-num, .f1-out-val, .stats-num {
      font-size: var(--ps-text-h1) !important;
    }

    /* ══════════════════ BUTTONS ══════════════════ */

    /* Standard button */
    .btn, .btn-primary, .btn--primary {
      height: clamp(44px, 3.5vw, 52px) !important;
      padding: 0 clamp(20px, 1.8vw, 28px) !important;
      font-size: var(--ps-text-btn) !important;
    }

    /* Hero CTAs — bigger for prominence */
    .hero-cta-btn, a.fcta-trigger, .ag-cta,
    .hero-actions .btn, .hero-sub-row .btn {
      height: clamp(48px, 4vw, 66px) !important;
      padding: 0 clamp(var(--space-3), 2.4vw, 42px) !important;
      font-size: var(--ps-text-btn) !important;
    }

    /* ══════════════════ IMAGES / STRUCTURAL ══════════════════ */

    /* Hero image column (product/solution pages) */
    .hero-image-col {
      height: clamp(280px, 30vw, 540px) !important;
      width: auto !important;
    }
    .hero-product-img { max-width: clamp(320px, 45vw, 780px) !important; }

    /* Case-study card cover */
    .cs-card-cover { min-height: clamp(180px, 15vw, 240px) !important; }

    /* ══════════════════ GRID GAPS ══════════════════ */

    .cs-grid, .impact-grid, .f1-solutions, .f1-outcomes,
    .m4-grid, .tc-grid, .vc4-grid, .lead-grid, .sols-grid,
    .cvo-hero-grid, .isa-hero-grid, .dsa-hero-grid {
      gap: clamp(20px, 1.8vw, var(--space-4)) !important;
    }

    /* ══════════════════ CARD PADDING ══════════════════ */

    .cc-card, .cs-card-body, .impact-cell,
    .tc-card, .vc4-card, .m4-card {
      padding: clamp(var(--space-3), 2vw, 36px) !important;
    }
  }


  /* ═══════════════════════════════════════════════════════════════════════
     SOLUTION PAGE TEMPLATE — full HD proportional coverage (≥ 1441px)
     Applies to all 8 solution pages (shared component classes)
     ═══════════════════════════════════════════════════════════════════════ */
  @media (min-width: 1441px) {

    /* ── CC (Why/Core Capabilities) cards ── */
    .cc-card-icon-img { width: clamp(48px, 3.6vw, 64px) !important; height: clamp(48px, 3.6vw, 64px) !important; }
    .cvo-outcome { font-size: var(--ps-text-body) !important; }
    .cvo-outcome svg { width: clamp(12px, 1vw, 15px) !important; height: clamp(12px, 1vw, 15px) !important; }

    /* ── HWW accordion (solution pages) ── */
    .hww-acc-card { padding: clamp(20px, 1.7vw, var(--space-4)) !important; }
    .hww-col-num { font-size: var(--ps-text-h3) !important; }
    .hww-col-title { font-size: var(--ps-text-h3) !important; }
    .hww-exp-num { font-size: var(--ps-text-h3) !important; }
    .hww-exp-title { font-size: var(--ps-text-h3) !important; }
    .hww-exp-desc { font-size: var(--ps-text-body) !important; }
    .hww-eyebrow { font-size: var(--fs-eyebrow) !important; }

    /* ── Deliver cards (Wealth, ISA-style) ── */
    .isa-deliver-row .num, .cvo-deliver-num { font-size: var(--ps-text-h1) !important; }
    .isa-deliver-row h3 { font-size: var(--ps-text-h3) !important; }
    .isa-deliver-row p { font-size: var(--ps-text-body) !important; }

    /* ── CVO deliver grid ── */
    .cvo-deliver-card { padding: clamp(var(--space-3), 2vw, 36px) !important; }
    .cvo-deliver-title { font-size: var(--ps-text-h3) !important; }
    .cvo-deliver-desc { font-size: var(--ps-text-body) !important; }

    /* ── Section header shared ── */
    .section-header .eyebrow { font-size: var(--fs-eyebrow) !important; }

    /* ── Business outcomes (.po-*) — extends existing .po-dnum HD rule ── */
    .po-outcomes-section .po-dnum { font-size: var(--fs-stat) !important; }
    .po-dlabel { font-size: var(--ps-text-body) !important; }
    .po-ddir { font-size: var(--ps-text-nav) !important; }
    .po-cell { padding: clamp(var(--space-3), 2vw, 36px) !important; }
    /* HD scale-up removed — was overflowing 80x80 parent */

    /* ── Intelligent Support .imp-* ── */
    .imp-card { padding: clamp(var(--space-3), 2vw, 36px) !important; }
    .imp-card .big { font-size: var(--fs-stat) !important; }
    .imp-card h4 { font-size: var(--ps-text-h3) !important; }
    .imp-card p { font-size: var(--ps-text-body) !important; }

    /* ── ISA/DSA/CVO hero grid text elements ── */
    .isa-hero-grid p, .dsa-hero-grid p, .cvo-hero-grid p { font-size: var(--ps-text-body) !important; }
    .eyebrow { font-size: var(--fs-eyebrow) !important; }
    .em-blue, .em-blue-mid { font-weight: inherit; }

    /* ── Solutions/PC3 pattern for solution pages ── */
    .sols-panel-cta { font-size: var(--ps-text-btn) !important; height: clamp(44px, 3.5vw, 52px) !important; }

    /* ── Header nav ── */
    .header-nav a, .nav-dropdown-trigger { font-size: var(--ps-text-nav) !important; }
    .nav-dropdown-label { font-size: var(--fs-meta) !important; }
    .nav-dropdown-sub { font-size: var(--fs-meta) !important; }

    /* ── Final CTA (ag-section) ── */
    .ag-eyebrow { font-size: var(--fs-eyebrow) !important; }
    .ag-cta { font-size: var(--ps-text-btn) !important; height: clamp(52px, 4vw, 60px) !important; padding: 0 clamp(var(--space-3), 2.4vw, 36px) !important; }
  }


  /* ═══════════════════════════════════════════════════════════════════════
     UNIVERSAL ALIGNMENT FIX
     Every wrapper using max-width: var(--container) WITHOUT its own
     horizontal padding is reduced by 2*var(--pad-x) so its content aligns
     to the same X-axis as .container content.
     Result: every section on the page starts and ends at the exact same
     left/right coordinates regardless of which wrapper class it uses.
     ═══════════════════════════════════════════════════════════════════════ */
  .hero-inner,
  .hww-acc-row,
  .hww-grid,
  .imp-grid,
  .po-rows,
  .po-title,
  .isa-deliver-split,
  .isa-channels,
  .cvo-why-row,
  .footer-inner,
  .m4,
  .m4-grid,
  .platform-inner,
  .reeng-inner,
  .sa-deliver-wrap,
  .tc-stack,
  .top-bar-inner,
  .vc4-grid,
  .why-split,
  .cs-flip-grid,
  .cc-nav-card,
  .deel-timeline {
    max-width: calc(var(--container) - 2 * var(--pad-x)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }


/* ===== next source <style> block ===== */


/* Last-in-cascade override — beats all legacy !important rules at 1441+ */
@media (min-width: 1600px) {
  .hww-exp-desc,
  .hww-subhead,
  .cc-card-desc,
  .cc-card-sub,
  .cc-left-sub,
  .impact-intro p,
  .isa-deliver-row p,
  .isa-channel-cell p,
  .cvo-feature-card p,
  .cvo-deliver-card p,
  .cvo-why-item p,
  .sols-headline-sub,
  .sols-desc,
  .imp-card p,
  .impact-sub,
  .mb-desc,
  .mb-cat,
  .why-row p,
  .deel-card p,
  .trans-content p,
  .insight-card p,
  .clients-quote,
  .ind-card-sub,
  .ind-hover-desc,
  .poc-sub,
  .why-left-sub,
  .fcta-modal-sub,
  .sf-top-sub,
  .sf-cta-sub,
  .ag-lede,
  .ag-sub,
  .final-cta-sub,
  .cs-lede,
  .cs-card-desc,
  #risk-compliance .cvo-feature-card p,
  .cd-depth-card p,
  .sd-side .box .desc,
  .sd-layer .desc,
  .sa-deliver-point p,
  .solution p,
  .final-cta p,
  .section-header p,
  .sec-lede,
  .hero-lede,
  .hero-sub,
  .f1-subtitle {
    font-size: var(--ps-text-body) !important;
    line-height: 1.55 !important;
  }
}


/* ===== next source <style> block ===== */


/* --- Widen the .sd wrapper to match container width. Legacy hardcoded 1100px. --- */
#architecture .sd {
  max-width: 100% !important;
  width: 100% !important;
}

/* PD Architecture — clean restrained type system.
   Only 4 sizes, 2 tiers. Chips stay small (they're LABELS not headlines).
   Card H3 stays modest (20-22) to remain subordinate to section H2.
   Reference: Datadog/Stripe/AWS enterprise diagram conventions. */

/* --- Widen grid so cards aren't cramped at 300px --- */
@media (min-width: 1024px) {
  #architecture .sd-platform {
    grid-template-columns: 1fr 1.35fr 1fr !important;
    gap: var(--space-2) !important;
  }
}

/* --- Desktop (>=1024): clean tight type scale --- */
@media (min-width: 1024px) {
  /* Card headers — subordinate to section H2 */
  #architecture .sd-side .box h3,
  #architecture .sd-layer h3,
  #architecture .sd-umbrella h3 {
    font-size: var(--ps-text-h3) !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
  }
  /* Card body text */
  #architecture .sd-side .box .desc,
  #architecture .sd-layer .desc {
    font-size: var(--fs-body) !important;
    line-height: 1.5 !important;
  }
  /* Eyebrow role labels — small caps, consistent */
  #architecture .sd-side .box .role,
  #architecture .sd-side .role,
  #architecture .sd-layer .role,
  #architecture .sd-umbrella .role {
    font-size: var(--fs-eyebrow) !important;
    font-weight: 500 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
  }
  /* Chips/pills — compact scannable tags */
  #architecture .cd-pipe-stage,
  #architecture .cd-pill,
  #architecture .sd-layer .chip,
  #architecture .sd-umbrella .chip {
    font-size: var(--fs-eyebrow) !important;
    font-weight: 500 !important;
    padding: 6px 12px !important;
    letter-spacing: 0.02em !important;
  }
  /* Reading flow at bottom */
  #architecture .sd-reading-flow {
    font-size: var(--fs-meta) !important;
  }
}

/* --- HD (>=1600): larger, maintains RELATIVE proportion with 22px body text.
       Ratio: chip is ~68% of body (readable), h3 is 118% (clear hierarchy). */
@media (min-width: 1600px) {
  #architecture .sd-side .box h3,
  #architecture .sd-layer h3,
  #architecture .sd-umbrella h3 {
    font-size: var(--fs-title-l) !important;   /* bumped up to maintain hierarchy above chip 18 */
  }
  #architecture .sd-side .box .desc,
  #architecture .sd-layer .desc {
    font-size: var(--ps-text-body) !important;   /* matches HD body text */
  }
  #architecture .sd-side .box .role,
  #architecture .sd-side .role,
  #architecture .sd-layer .role,
  #architecture .sd-umbrella .role {
    font-size: var(--fs-body) !important;   /* was 13 — up to 16, uppercase small caps */
    letter-spacing: 0.14em !important;
  }
  #architecture .cd-pipe-stage,
  #architecture .cd-pill,
  #architecture .sd-layer .chip,
  #architecture .sd-umbrella .chip {
    font-size: var(--fs-title-m) !important;   /* was 15 — up to 18 for readability at 1920 */
    padding: 10px 18px !important;
  }
  #architecture .sd-reading-flow {
    font-size: var(--fs-title-m) !important;   /* was 15 — bumped for HD */
    padding: 18px 28px !important;
  }
}


/* --- Reading flow: label div on top, steps div below on single line --- */
#architecture .sd-reading-flow {
  text-align: center !important;
}
#architecture .sd-flow-label {
  display: block !important;
  margin-bottom: var(--space-1) !important;
}
#architecture .sd-flow-steps {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  overflow-x: visible !important;
}
#architecture .sd-flow-steps .step {
  white-space: nowrap !important;
  flex: 0 1 auto !important;   /* allow shrink so all 5 fit */
  margin: 0 2px !important;
  font-size: var(--fs-body) !important;  /* tighter than 18 chip size, fits 5 in one line */
  gap: 4px !important;
}
#architecture .sd-flow-steps .step .n {
  width: 20px !important;
  height: 20px !important;
  font-size: var(--fs-eyebrow) !important;
  flex-shrink: 0 !important;
}
#architecture .sd-flow-steps .sep {
  flex: 0 0 auto !important;
  font-size: var(--fs-meta) !important;
  margin: 0 2px !important;
}

/* [large-screen single-line heading — requested] Only ≥1200px; medium/mobile keep wrapping. */
@media (min-width: 1200px) {
  #outcomes .section-header { max-width: none !important; }
  #outcomes .section-header h2 { white-space: nowrap; }
  #outcomes .section-header p { max-width: 760px; margin-left: auto; margin-right: auto; }
}

/* T4 — Hero image enlarged at HD. The image column (.isa-hero-mockup) was ~511px;
   rebalance the grid so the visual gets more room while the text column keeps a
   safe minimum (no overlap/collapse with the title & copy). */
@media (min-width: 1441px) {
  .hero .isa-hero-grid {
    grid-template-columns: minmax(340px, 600px) 1fr !important;
    gap: 56px !important;
    align-items: center !important;
  }
  .hero .isa-hero-mockup { min-height: 0 !important; }
  .hero .isa-hero-mockup .pd-hero-img-wrap {
    width: 100% !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
  }
  .hero .isa-hero-mockup .pd-hero-img-wrap img {
    width: 100% !important; height: auto !important; max-width: 720px !important; display: block !important;
  }
}

/* Why PrimeSoft (#why) — force white background at EVERY breakpoint (requested).
   The section already renders .section--white on desktop, but a broad mobile rule
   repaints it gray; this high-specificity !important pins it white on all screens. */
html body #why { background: var(--bg-white) !important; }
