/* enterprise-transformation overview page — full re-lift of the prototype (all <style> blocks); url(assets/)->url(/assets/). */

    *,*::before,*::after{ box-sizing: border-box; margin: 0; padding: 0; }
    html{ scroll-behavior: smooth; }
    body{ font-family: 'Outfit',sans-serif; background: var(--bg-soft); color: var(--ink-900); overflow-x: hidden; }
    a{ text-decoration: none; color: inherit; }
    button{ cursor: pointer; font-family: 'Outfit',sans-serif; border: none; outline: none; }
    img{ max-width: 100%; display: block; }

    :root{
      --brand: #155DFC; --brand-2: #155DFC; --brand-soft: #EAF1FF;
      --brand-glow: rgba(21,93,252,0.18);
      --ink-900: #101828; --ink-700: #344054; --ink-600: #4A5565;
      --ink-500: #6A7282; --ink-400: #6A7282; --ink-200: #E5E7EB;
      --bg-base: #FAFAFA; --bg-white: #FFFFFF;
      --bg-dark: #0A0F1F; --bg-darker: #06091A;
      --grad-blue: linear-gradient(135deg,#155DFC 0%,#155DFC 100%);
      --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: 12px; --radius-lg: 16px; --radius-xl: 24px; --radius-pill: 999px;
      --container: 1920px; --pad-x: clamp(24px, calc(8.33vw - 40px), 120px);
    
    /* 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 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);

    --prose: 720px;
      /* ===== 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 */
        
    .container{ max-width: var(--container); margin: 0 auto; padding: 0 var(--pad-x); }
    .section{ padding: clamp(60px,9vw,100px) 0; position: relative; }
    .section--white{ background: var(--bg-white); }
    .section--gray{ background: var(--bg-base); }
    .section--dark{ background: var(--bg-dark); }

    h1,h2,h3,h4 { font-weight: 500; letter-spacing:-0.025em; line-height: 1.3; 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; color: var(--ink-900); }
    h3 {  font-size: var(--ps-text-h3); font-weight: 500; letter-spacing:-0.02em; color: var(--ink-900); line-height: 1.3;  }
    p { font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    .eyebrow{ font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: normal; text-transform: none; color: var(--brand); display: inline-block; margin-bottom: 12px; }
    .accent-bar{ width: 64px; height: 4px; background: var(--brand); border-radius: var(--radius-pill); }
    .section-header{ text-align: center;max-width: 760px;margin: 0 auto 56px; }
    .section-header .accent-bar{ margin: var(--space-3) auto 0; }

    /* BUTTONS */
    .btn{ display: inline-flex; align-items: center; gap: var(--space-1); height: 52px; padding: 0 28px; border-radius: var(--radius-pill); font-size: var(--fs-body); font-weight: 500; transition: all var(--dur-base) ease; }
    .btn-primary{ background: var(--brand); color: #fff; box-shadow: 0 8px 24px -8px var(--brand-glow); }
    .btn-primary:hover{ background: var(--brand-hover); transform: translateY(-2px); box-shadow: 0 14px 34px -10px rgba(21,93,252,0.55); }
    .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-outline-white{ background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.8); border-radius: var(--radius-pill); height: 52px; padding: 0 28px; display: inline-flex; align-items: center; gap: 10px; font-size: var(--fs-body); font-weight: 500; transition: all var(--dur-base) ease; }
    .btn-outline-white:hover{ background: rgba(255,255,255,0.1); }
    .btn .arrow{ transition: transform var(--dur-fast) ease; }
    .btn:hover .arrow{ transform: translateX(4px); }

    /* HEADER */
    .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-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); }
    .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: 2px; 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; }
    .header-actions{ flex: 1 0 0; display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
    @media (max-width: 1100px){ .header-nav{ display: none; }}

    /* HERO â dark, full bleed, Figma style */
    .hero{ position: relative; overflow: hidden; display: flex; align-items: center; min-height: 560px; }
    .hero-bg{ position: absolute; inset: 0; }
    .hero-bg img{ width: 100%; height: 100%; object-fit: cover; object-position: center right; }
    .hero-overlay{ position: absolute; inset: 0; background: linear-gradient(88.97deg,rgba(10,15,31,0.95) 0%,rgba(15,20,40,0.82) 55%,rgba(20,25,50,0.4) 100%); }
    .hero-inner{ position: relative; z-index: 2; padding: clamp(56px,6vw,88px) var(--pad-x) clamp(40px,4vw,60px); max-width: 1920px; margin: 0 auto; width: 100%; }
    .hero-back{ display: inline-flex; align-items: center; gap: 10px; font-size: var(--fs-body); font-weight: 500; color: var(--ink-600); margin-bottom: var(--space-4); transition: gap var(--dur-fast) ease; text-decoration: none; letter-spacing: 0.01em; }
    .hero-back:hover{ gap: 14px; }
    .hero-back svg{ width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }
    .hero-content{ max-width: 826px; }
    .hero-product-badge{ display: inline-flex; align-items: center; gap: 40px; margin-bottom: var(--space-4); }
    .hero-product-badge img{ width: 71px; height: 71px; object-fit: contain; }
    .hero-product-tag{ font-size: var(--fs-body); font-weight: 400; color: rgba(238,238,238,0.9); letter-spacing: 0.02em; }
    .hero h1{ color: #fff; margin-bottom: 20px; }
    .hero-sub{ font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; max-width: 720px; margin-bottom: 36px; }
    .hero-actions{ display: flex; gap: var(--space-2); flex-wrap: wrap; }

    /* KEY FEATURES PILLS */
    .features-section{ background: #fff; padding: clamp(var(--space-5),6vw,72px) 0; border-bottom: 1px solid var(--ink-200); }
    .features-title{ font-size: var(--fs-display-2); font-weight: 300; color: var(--ink-900); letter-spacing:-0.03em; margin-bottom: 36px; }
    .features-pills{ display: flex; flex-wrap: wrap; gap: 12px; }
    .feature-pill{ background: #fff; border: 1px solid #E0E0E0; border-radius: var(--radius-pill); padding: 14px var(--space-3); font-size: var(--fs-body); font-weight: 400; color: var(--ink-900); white-space: nowrap; transition: all var(--dur-fast) ease; }
    .feature-pill:hover{ border-color: var(--brand); color: var(--brand); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
    .features-bar{ width: 64px; height: 4px; background: var(--ink-900); border-radius: var(--radius-pill); margin-top: 40px; }

    /* METRICS */
    .metrics-band{ background: var(--bg-white); border-top: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); }
    .metrics-grid{ display: grid; grid-template-columns: repeat(4,1fr); }
    .metric-item{ text-align: center; padding: 40px var(--space-3); border-right: 1px solid var(--ink-200); }
    .metric-item:last-child{ border-right: none; }
    .metric-num{ font-size: var(--fs-stat); font-weight: 300; letter-spacing:-0.04em; color: var(--brand); line-height: 1; margin-bottom: var(--space-1); }
    .metric-label{ font-size: var(--fs-body); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    @media(max-width:768px){ .metrics-grid{ grid-template-columns: repeat(2,1fr); }.metric-item:nth-child(2){ border-right: none; }}

    /* PLATFORM SECTION */
    .platform-section{ padding: clamp(60px,9vw,100px) var(--pad-x); }
    .platform-inner{ max-width: var(--container); margin: 0 auto; }
    .platform-title{ font-size: var(--fs-display-2); font-weight: 500; color: var(--ink-900); letter-spacing:-0.03em; margin-bottom: 40px; }
    .platform-img-wrap{ border-radius: var(--radius-lg); overflow: hidden; margin-bottom: var(--space-4); position: relative; }
    .platform-img-wrap img{ width: 100%; height: auto; display: block; }
    .platform-caption{ background: #fff; border: 1px solid var(--ink-200); border-radius: var(--radius); padding: 20px var(--space-3); position: absolute; bottom: 24px; left: 24px; max-width: 540px; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    .platform-desc{ font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; margin-bottom: 40px; text-align: justify; }
    .highlights-title{ font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); margin-bottom: var(--space-3); padding-left: var(--space-4); }
    .highlights-list{ display: flex; flex-direction: column; gap: 20px; padding-left: var(--space-4); }
    .highlight-item{ display: flex; align-items: flex-start; gap: 20px; }
    .highlight-icon{ width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; }
    .highlight-icon img{ width: 100%; height: 100%; object-fit: contain; }
    .highlight-text{ font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; text-align: justify; }

    /* RE-ENGINEERING SECTION */
    .reeng-section{ padding: clamp(60px,9vw,100px) var(--pad-x); background: var(--bg-base); }
    .reeng-inner{ max-width: var(--container); margin: 0 auto; }
    .reeng-title{ font-size: var(--fs-display-2); font-weight: 500; color: var(--ink-900); letter-spacing:-0.03em; margin-bottom: var(--space-4); }
    .reeng-grid{ display: grid; grid-template-columns: 1fr 400px; gap: var(--space-5); align-items: start; }
    .reeng-text p { font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; text-align: justify; margin-bottom: var(--space-3); }
    .reeng-image{ border-radius: var(--radius-lg); overflow: hidden; }
    .reeng-image img{ width: 100%; height: 100%; object-fit: cover; }
    @media (max-width: 1100px){ .reeng-grid{ grid-template-columns: 1fr; }.reeng-image{ max-height: 400px; }}

    /* VALUE PROPOSITION â Why PrimeSoft style */
  .vp-section { background: #FFFFFF; }
  .vp-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--space-7); align-items: start; }
  .vp-left { position: sticky; top: 100px; }
  .vp-right { display: flex; flex-direction: column; gap: 0; }
  .vp-card {
    position: sticky;
    background: #FFFFFF;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius);
    padding: 36px var(--space-4);
    display: flex;
    flex-direction: column;
    transition: border-color var(--dur-base) ease, box-shadow var(--dur-base) ease;
    margin-bottom: var(--space-3);
  }
  .vp-card:nth-child(1) { top: 108px; z-index: 1; }
  .vp-card:nth-child(2) { top: 116px; z-index: 2; }
  .vp-card:nth-child(3) { top: 124px; z-index: 3; }
  .vp-card:nth-child(4) { top: 132px; z-index: 4; margin-bottom: 0; }
  .vp-card .vp-card-icon { color: var(--ink-900); transition: color var(--dur-base) ease; }
  .vp-card .vp-card-icon svg { stroke: currentColor; transition: stroke var(--dur-base) ease; }
  .vp-card .vp-card-title { color: var(--ink-900); font-weight: 500; transition: color var(--dur-base) ease;     font-size: var(--ps-text-h3);
      letter-spacing: -0.02em;
      line-height: 1.3;
  }
  .vp-card .vp-card-desc { color: var(--ink-600); font-size: var(--fs-title-m); font-weight: 300; line-height: 1.5; }
  .vp-card.vp-active { border-color: var(--brand-border); box-shadow: 0 12px 36px rgba(21,93,252,0.10); }
  .vp-card.vp-active .vp-card-icon { color: var(--brand); }
  .vp-card.vp-active .vp-card-title { color: var(--ink-900); font-weight: 500; font-size: var(--ps-text-h3); line-height: 1.3; }
  .vp-card-icon { margin-bottom: 20px; display: flex; align-items: center; }
  .vp-card-icon svg { width: 36px; height: 36px; }
  .vp-card-title { font-family: 'Outfit', sans-serif; font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); letter-spacing: -0.025em; line-height: 1.3; margin-bottom: 10px; transition: color var(--dur-fast) ease; }
  .vp-card-desc { font-family: 'Outfit', sans-serif; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
  .vp-left-eyebrow { font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: normal; text-transform: none; color: var(--ink-900); display: block; margin-bottom: 14px; }
  .vp-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; }
  .vp-left-headline strong { font-weight: 500; color: var(--brand); }
  .vp-left-bar { width: 48px; height: 3px; background: var(--brand); border-radius: var(--radius-pill); margin-bottom: 20px; }
  .vp-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; }
  .vp-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; }
  .vp-left-cta:hover { background: var(--brand-hover); }
  .vp-left-cta svg { width: 13px; height: 13px; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
  @media (max-width: 1100px) {
    .vp-layout { grid-template-columns: 1fr; gap: 40px; }
    .vp-left { position: static; }
    .vp-card { position: relative !important; top: auto !important; z-index: auto !important; margin-bottom: var(--space-2) !important; }
  }
  @media(max-width:480px) {
    .vp-card { padding: 28px var(--space-3); }
    .vp-card-title { font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); line-height: 1.3; }
  }

    /* CAPABILITIES GRID */
    .cap-section{ padding: clamp(60px,9vw,100px) 0; background: var(--bg-white); }
    .cap-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
    .cap-card{ background: var(--bg-white); border: 1px solid var(--ink-200); border-radius: var(--radius-lg); padding: 28px; display: flex; gap: var(--space-2); transition: all var(--dur-base) ease; }
    .cap-card:hover{ border-color: var(--brand); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
    .cap-dot{ width: 8px; height: 8px; border-radius: 50%; background: var(--brand); flex-shrink: 0; margin-top: 6px; }
    .cap-title{ font-size: var(--ps-text-h3); font-weight: 500; color: var(--ink-900); margin-bottom: 6px;    letter-spacing: -0.02em;
      line-height: 1.3;
  }
    .cap-desc{ font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    @media (max-width: 1100px){ .cap-grid{ grid-template-columns: repeat(2,1fr); }}    @media(max-width:480px){ .cap-grid{ grid-template-columns: 1fr; }}

    /* HOW IT WORKS */
    .how-steps{ display: flex; flex-direction: column; gap: 0; }
    .how-step{ display: grid; grid-template-columns: 60px 1fr; gap: var(--space-3); padding: var(--space-4) 0; border-bottom: 1px solid var(--ink-200); }
    .how-step:last-child{ border-bottom: none; }
    .how-step-num{ width: 52px; height: 52px; border-radius: 50%; background: var(--brand-soft); display: flex; align-items: center; justify-content: center; font-family: 'Outfit', system-ui, -apple-system, sans-serif; font-size: var(--fs-meta); font-weight: 500; color: var(--brand); flex-shrink: 0; transition: all var(--dur-base) ease; }
    .how-step:hover .how-step-num{ background: var(--brand); color: #fff; }
    .how-step-desc{ font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }

    /* INTEGRATIONS */
    .int-section{ background: var(--bg-dark); padding: clamp(60px,9vw,100px) 0; }
    .int-section .section-header 
    .int-grid{ display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
    .int-group{ background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--radius-lg); padding: 28px var(--space-3); }
    .int-group-title{ font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: normal; text-transform: none; color: var(--brand); margin-bottom: var(--space-2); }
    .int-item{ font-size: var(--fs-meta); font-weight: 300; color: rgba(255,255,255,0.65); padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
    .int-item:last-child{ border-bottom: none; }
    @media (max-width: 1100px){ .int-grid{ grid-template-columns: repeat(2,1fr); }}    @media(max-width:480px){ .int-grid{ grid-template-columns: 1fr; }}

    /* WHO TRUSTS */
    .trust-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-3); }
    .trust-card{ background: var(--bg-white); border: 1px solid var(--ink-200); border-radius: var(--radius-xl); padding: 36px var(--space-4); transition: all var(--dur-base) ease; }
    .trust-card:hover{ transform: translateY(-4px); border-color: var(--brand); box-shadow: var(--shadow-md); }
    .trust-tag{ font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: normal; text-transform: none; color: var(--brand); background: var(--brand-soft); padding: 4px 12px; border-radius: var(--radius-pill); display: inline-block; margin-bottom: var(--space-2); }
    .trust-desc{ font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    @media (max-width: 1100px){ .trust-grid{ grid-template-columns: 1fr; }}

    /* FINAL CTA */
    .final-cta-card{ background: var(--bg-dark); border-radius: var(--radius-xl); padding: clamp(56px,8vw,88px) clamp(var(--space-4),5vw,72px); text-align: center; position: relative; overflow: hidden; }
    .final-cta-card::before{ content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle,rgba(21,93,252,0.12) 0%,transparent 70%); pointer-events: none; }
    .final-cta-card 
    .final-cta-checklist{ display: flex; gap: 28px; justify-content: center; flex-wrap: wrap; margin-bottom: 40px; position: relative; z-index: 1; }
    .final-cta-check{ display: flex; align-items: center; gap: var(--space-1); font-size: var(--fs-meta); color: rgba(255,255,255,0.7); }
    .final-cta-check svg{ width: 16px; height: 16px; stroke: var(--success-text); fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }

    /* CONTACT */
    .contact-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: start; }
    .contact-left 
    .contact-left p { font-size: var(--fs-title-m); margin-bottom: 0; font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    .form-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2); }
    .form-field{ display: flex; flex-direction: column; gap: 6px; }
    .form-field.full{ grid-column: span 2; }
    .form-field label{ font-size: var(--fs-meta); font-weight: 500; color: var(--ink-700); }
    .form-field input,.form-field textarea{ font-family: 'Outfit',sans-serif; font-size: var(--fs-body); font-weight: 300; color: var(--ink-900); background: #fff; border: 1px solid var(--ink-200); border-radius: var(--radius); padding: 12px var(--space-2); transition: border-color var(--dur-fast),box-shadow var(--dur-fast); outline: none; }
    .form-field input:focus,.form-field textarea:focus{ border-color: var(--brand); box-shadow: 0 0 0 3px rgba(21,93,252,0.1); }
    .form-field textarea{ resize: vertical; min-height: 100px; }
    .form-note{ font-size: var(--fs-meta); color: var(--ink-600); margin-top: 12px; }
    @media (max-width: 1100px){ .contact-grid{ grid-template-columns: 1fr; }}    @media(max-width:480px){ .form-grid{ grid-template-columns: 1fr; }.form-field.full{ grid-column: span 1; }}


    /* REVEAL */
    .reveal{ opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease,transform 0.7s ease; }
    .reveal.in{ opacity: 1; transform: none; }

    /* CAPABILITIES â Anchor style animations */
    .cap-left{ opacity: 0; transform: translateX(-32px); transition: opacity 0.7s ease,transform 0.7s ease; }
    .cap-left.in{ opacity: 1; transform: none; }
    .cap-ey{ opacity: 0; transform: translateY(12px); transition: opacity 0.6s 0.2s var(--ease-out),transform 0.6s 0.2s var(--ease-out); }
    .cap-left.in .cap-ey{ opacity: 1; transform: none; }
    .cap-h2{ opacity: 0; transform: translateY(12px); transition: opacity 0.6s 0.3s var(--ease-out),transform 0.6s 0.3s var(--ease-out); }
    .cap-left.in .cap-h2{ opacity: 1; transform: none; }
    .cap-bar{ opacity: 0; transform: scaleX(0); transform-origin: left; transition: opacity var(--dur-slow) var(--dur-slow) ease,transform var(--dur-slow) var(--dur-slow) ease; }
    .cap-left.in .cap-bar{ opacity: 1; transform: scaleX(1); }
    .cap-img{ opacity: 0; transition: opacity 0.8s 0.6s ease; }
    .cap-left.in .cap-img{ opacity: 1; }
    .cap-item{ opacity: 0; transform: translateY(20px); transition: opacity var(--dur-slow) ease,transform var(--dur-slow) ease; }
    .cap-item.in{ opacity: 1; transform: none; }
    .cap-icon-box{ width: 36px; height: 36px; border-radius: var(--radius); background: var(--brand-soft); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; color: var(--brand); transition: background var(--dur-base) ease,transform var(--dur-base) ease; cursor: default; }
    .cap-icon-box:hover{ transform: rotate(-4deg); }

    /* PRIMESOFT INTRO â Variation 1 */
    .ps-intro-v1{ background: var(--brand-soft); border-radius: 14px; padding: 52px 56px; position: relative; overflow: hidden; }
    .ps-intro-wm{ position: absolute; right:-20px; top: 50%; transform: translateY(-50%) translateX(80px); font-size: var(--ps-text-h3); font-weight: 500; color: rgba(21,93,252,0.07); letter-spacing:-6px; white-space: nowrap; pointer-events: none; user-select: none; opacity: 0; transition: opacity 1.2s var(--ease-in-out),transform 1.2s var(--ease-in-out); }
    .ps-intro-v1.in .ps-intro-wm{ opacity: 1; transform: translateY(-50%) translateX(0); }
    .ps-intro-ey{ font-size: var(--fs-eyebrow); font-weight: 500; letter-spacing: normal; text-transform: none; color: var(--ink-900); display: inline-block; margin-bottom: 12px; opacity: 0; transform: translateY(16px); transition: opacity 0.6s 0.2s var(--ease-out),transform 0.6s 0.2s var(--ease-out); }
    .ps-intro-v1.in .ps-intro-ey{ opacity: 1; transform: none; }
    .ps-intro-h2{ font-size: var(--fs-display-2); font-weight: 300; color: var(--ink-900); letter-spacing:-0.03em; line-height: 1.2; margin-bottom: 20px; max-width: 600px; position: relative; z-index: 1; opacity: 0; transform: translateY(16px); transition: opacity 0.6s 0.4s var(--ease-out),transform 0.6s 0.4s var(--ease-out); }
    .ps-intro-v1.in .ps-intro-h2{ opacity: 1; transform: none; }
    .ps-intro-b1{ font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; max-width: 680px; position: relative; z-index: 1; margin-bottom: var(--space-2); opacity: 0; transform: translateY(16px); transition: opacity 0.6s 0.6s ease,transform 0.6s 0.6s ease; }
    .ps-intro-v1.in .ps-intro-b1{ opacity: 1; transform: none; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    .ps-intro-b2{ font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; max-width: 680px; position: relative; z-index: 1; opacity: 0; transform: translateY(16px); transition: opacity 0.6s 0.8s ease,transform 0.6s 0.8s ease; }
    .ps-intro-v1.in .ps-intro-b2{ opacity: 1; transform: none; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    /* Fallback: if parent reveal fires first, also show ps-intro content */
    .reveal.in .ps-intro-wm{ opacity: 1; transform: translateY(-50%) translateX(0); transition-delay: 0.3s; }
    .reveal.in .ps-intro-ey{ opacity: 1; transform: none; transition-delay: 0.4s; }
    .reveal.in .ps-intro-h2{ opacity: 1; transform: none; transition-delay: 0.5s; }
    .reveal.in .ps-intro-b1{ opacity: 1; transform: none; transition-delay: 0.6s; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
    .reveal.in .ps-intro-b2{ opacity: 1; transform: none; transition-delay: 0.7s; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }
  
/* ============================================================
   PREMIUM DESIGN UPGRADES â senior designer pass
   ============================================================ */

/* Premium card â subtle inner gradient + top highlight + soft shadow */
.card-premium {
  position: relative;
  background: linear-gradient(180deg, #FFFFFF 0%, #FAFBFD 100%);
  border: 1px solid rgba(229,231,235,0.9);
  border-radius: var(--radius);
  box-shadow: 0 1px 2px rgba(16,24,40,0.04), 0 0 0 1px rgba(255,255,255,0.5) inset;
  transition: transform var(--dur-base) cubic-bezier(0.16, 1, 0.3, 1), box-shadow var(--dur-base) ease, border-color var(--dur-base) ease;
  overflow: hidden;
}
.card-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 16px;
  right: 16px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(21,93,252,0.25), transparent);
  opacity: 0;
  transition: opacity var(--dur-base) ease;
}
.card-premium:hover {
  transform: translateY(-4px);
  border-color: rgba(21,93,252,0.35);
  box-shadow: 0 16px 40px -12px rgba(21,93,252,0.18), 0 0 0 1px rgba(255,255,255,0.5) inset;
}
.card-premium:hover::before { opacity: 1; }

/* Icon container â gradient lift */
.icon-premium {
  width: 48px;
  height: 48px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--brand-soft) 0%, #DCE7FF 100%);
  border: 1px solid rgba(199,215,255,0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  box-shadow: 0 1px 2px rgba(21,93,252,0.08), inset 0 1px 0 rgba(255,255,255,0.8);
}

/* Result moment strip â celebrates the outcome */
.result-moment {
  position: relative;
  background: linear-gradient(135deg, #F0F5FF 0%, var(--brand-soft) 50%, #E0EBFF 100%);
  border: 1px solid rgba(199,215,255,0.6);
  border-radius: var(--radius);
  padding: 22px var(--space-4);
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  overflow: hidden;
}
.result-moment::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.9), transparent);
}
.result-moment-label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--fs-eyebrow);
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
  color: var(--brand);
}
.result-moment-label::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 4px rgba(21,93,252,0.15);
  animation: pulse-dot 2.4s ease-in-out infinite;
}
@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 4px rgba(21,93,252,0.15); }
  50% { box-shadow: 0 0 0 8px rgba(21,93,252,0.05); }
}
.result-pill-premium {
  padding: 7px var(--space-2);
  background: #fff;
  border: 1px solid rgba(199,215,255,0.6);
  border-radius: var(--radius-pill);
  font-size: var(--fs-meta);
  font-weight: 500;
  color: var(--brand);
  box-shadow: 0 1px 2px rgba(21,93,252,0.06);
  transition: all var(--dur-base);
}
.result-pill-premium:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(21,93,252,0.12);
  border-color: var(--brand);
}

/* Section statement â oversized typography for visual rhythm */
.section-statement {
  font-size: var(--fs-display-2);
  font-weight: 300;
  color: var(--ink-900);
  letter-spacing: -0.035em;
  line-height: 1.1;
  margin-bottom: 14px;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
.section-statement em {
  font-style: normal;
  font-weight: 500;
  color: var(--brand);
}

/* Apply premium card to existing card patterns */
.section .container > div > div[style*="background:#fff;border:1px solid var(--ink-200)"][style*="border-radius:14px"]:not(.no-premium),
.section .container > div > div[style*="background:#fff;border:1px solid var(--ink-200)"][style*="border-radius:14px"]:not(.no-premium) {
  background: linear-gradient(180deg, #FFFFFF 0%, #FAFBFD 100%) !important;
  border: 1px solid rgba(229,231,235,0.9) !important;
  box-shadow: 0 1px 2px rgba(16,24,40,0.04);
  transition: transform var(--dur-base) cubic-bezier(0.16, 1, 0.3, 1), box-shadow var(--dur-base) ease, border-color var(--dur-base) ease !important;
}

/* Premium CTA section background */
.cta-cinematic {
  position: relative;
  background:
    radial-gradient(ellipse at top left, rgba(21,93,252,0.06) 0%, transparent 50%),
    radial-gradient(ellipse at bottom right, rgba(0,146,184,0.05) 0%, transparent 50%),
    linear-gradient(180deg, #FFFFFF 0%, #F8FAFE 100%);
  border: 1px solid rgba(199,215,255,0.4);
  border-radius: 20px;
  overflow: hidden;
}
.cta-cinematic::before {
  content: '';
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(21,93,252,0.4), transparent);
}

/* Why QualNetics â gradient band reinvention */
.why-qn-band {
  position: relative;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(21,93,252,0.08) 0%, transparent 60%),
    radial-gradient(ellipse 70% 50% at 100% 100%, rgba(0,146,184,0.06) 0%, transparent 60%),
    linear-gradient(180deg, #FAFBFE 0%, #F5F8FE 100%);
  overflow: hidden;
}
.why-qn-band::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(21,93,252,0.25), transparent);
}

/* Ensure accent-bar is hidden where we use section-statement (we don't need it twice) */
.section-header:has(.section-statement) {
  max-width: var(--container);
}

.section-statement + p + .accent-bar {
  display: none;
}

/* Slight spacing rhythm improvement between sections */
.why-qn-band { padding-top: clamp(70px, 9vw, 110px); padding-bottom: clamp(70px, 9vw, 110px); }

/* Subtle hero noise overlay for premium texture */
.hero-noise-overlay {
  position: absolute;
  inset: 0;
  background-image: url("data: image/svg+xml; utf8,<svg xmlns='http: //www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/></svg>");
  opacity: 0.04;
  pointer-events: none;
  mix-blend-mode: overlay;
  z-index: 1;
}


/* ============================================================
   HOW IT WORKS â homepage-style expanding accordion
   ============================================================ */
.hww-section {
  background: #FFFFFF;
  padding: clamp(60px, 9vw, 100px) var(--pad-x);
}
.hww-header { text-align: center; margin-bottom: var(--space-5); }
.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: 280px;
  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: 28px var(--space-4) var(--space-3);
    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: 28px var(--space-4) var(--space-3);
    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: 10px;
}

.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: 10px;
}
.hww-exp-bar {
  width: 32px;
  height: 3px;
  border-radius: var(--radius-pill);
  background: var(--brand);
  margin-bottom: 14px;
}

.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: 340px;
}
@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-collapsed { flex-direction: row; padding: 0 18px; align-items: center; justify-content: flex-start; gap: 14px; }
  .hww-col-title { text-align: left; margin-top: 0; 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; }
}


/* ============================================================
   CORE CAPABILITIES â Option L Â· sidebar nav + animated detail
   ============================================================ */
.cc-nav-card {
  max-width: var(--container);
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(16,24,40,0.04);
}
.cc-nav-grid {
  display: grid;
  grid-template-columns: 400px 1px 1fr;
  align-items: stretch;
}

/* LEFT: Capability list */
.cc-nav-list {
  padding: var(--space-3) var(--space-2);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cc-nav-label {
  font-family: 'Outfit', system-ui, -apple-system, sans-serif;
  font-size: var(--fs-eyebrow);
  font-weight: 500;
  color: var(--ink-600);
  letter-spacing: normal;
  padding: var(--space-1) 12px 12px;
  text-transform: none;
}

/* Nav item â button reset */
.cc-nav-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px var(--space-2) 14px 18px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius);
  cursor: pointer;
  text-align: left;
  font-family: 'Outfit', sans-serif;
  transition: background var(--dur-base) cubic-bezier(0.16, 1, 0.3, 1),
              border-color var(--dur-base) ease,
              transform var(--dur-base) ease;
}

/* Animated left-edge indicator bar */
.cc-nav-item::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%) scaleY(0);
  width: 3px;
  height: 24px;
  background: var(--brand);
  border-radius: var(--radius-pill);
  transition: transform var(--dur-base) cubic-bezier(0.16, 1, 0.3, 1);
  transform-origin: center;
}

/* Inactive icon container */
.cc-nav-icon {
  width: 34px;
  height: 34px;
  border-radius: var(--radius);
  background: var(--ink-200);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--ink-600);
  transition: background var(--dur-base) cubic-bezier(0.16, 1, 0.3, 1),
              color var(--dur-base) ease,
              transform var(--dur-slow) cubic-bezier(0.16, 1, 0.3, 1);
}

.cc-nav-text {
  flex: 1;
  font-size: var(--fs-body);
  font-weight: 400;
  color: var(--ink-600);
  line-height: 1.3;
  transition: color var(--dur-base) ease, font-weight var(--dur-base) ease;
}

.cc-nav-arrow {
  color: var(--ink-600);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity var(--dur-base) ease, transform var(--dur-base) ease, color var(--dur-base) ease;
  flex-shrink: 0;
}

/* Inactive hover state â subtle */
.cc-nav-item:hover {
  background: var(--bg-soft);
  border-color: var(--ink-200);
}
.cc-nav-item:hover .cc-nav-icon {
  background: var(--brand-soft);
  color: var(--brand);
}
.cc-nav-item:hover .cc-nav-text {
  color: var(--ink-900);
}

/* ACTIVE state â animated */
.cc-nav-item.cc-active {
  background: #F0F5FF;
  border-color: var(--brand-border);
}
.cc-nav-item.cc-active::before {
  transform: translateY(-50%) scaleY(1);
}
.cc-nav-item.cc-active .cc-nav-icon {
  background: #fff;
  border: 1px solid var(--brand-border);
  color: var(--brand);
  transform: scale(1.05);
}
.cc-nav-item.cc-active .cc-nav-text {
  color: var(--ink-900);
  font-weight: 500;
}
.cc-nav-item.cc-active .cc-nav-arrow {
  color: var(--brand);
  opacity: 1;
  transform: translateX(0);
}

/* Vertical divider */
.cc-divider {
  background: var(--ink-200);
}

/* RIGHT: Detail panel */
.cc-detail {
  position: relative;
  padding: 0;
  display: grid;
}

/* Each detail pane stacked in same grid cell â container auto-sizes to tallest pane */
.cc-detail-pane {
  grid-area: 1 / 1;
  padding: 40px 44px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity var(--dur-base) ease,
              transform var(--dur-slow) cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0s linear var(--dur-base);
}

/* Active pane visible â staggered child reveal */
.cc-detail-pane.cc-detail-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity var(--dur-slow) ease 0.1s,
              transform var(--dur-slow) cubic-bezier(0.16, 1, 0.3, 1) 0.1s,
              visibility 0s linear;
}

/* Position counter pill */
.cc-position {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 5px 12px;
  background: var(--brand-soft);
  border-radius: var(--radius-pill);
  font-family: 'Outfit', system-ui, -apple-system, sans-serif;
  font-size: var(--fs-eyebrow);
  font-weight: 500;
  color: var(--brand);
  letter-spacing: 0.1em;
  margin-bottom: 20px;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity var(--dur-slow) ease, transform var(--dur-slow) cubic-bezier(0.16, 1, 0.3, 1);
}
.cc-detail-pane.cc-detail-active .cc-position {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.15s;
}

/* Title */
.cc-detail-pane.cc-detail-active

/* Key statement */
.cc-statement {
  font-family: 'Outfit', sans-serif;
  font-size: var(--fs-title-m);
  font-weight: 300;
  color: var(--ink-600);
  line-height: 1.5;
  margin-bottom: 18px;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity var(--dur-slow) ease, transform var(--dur-slow) cubic-bezier(0.16, 1, 0.3, 1);
}
.cc-detail-pane.cc-detail-active .cc-statement {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.25s; font-size: var(--fs-title-m); font-weight: 300; color: var(--ink-600); line-height: 1.5; }

/* Prose body */
.cc-prose {
  font-family: 'Outfit', sans-serif;
  font-size: var(--fs-meta);
  font-weight: 300;
  color: var(--ink-600);
  line-height: 1.8;
  margin: 0 0 var(--space-3);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity var(--dur-slow) ease, transform var(--dur-slow) cubic-bezier(0.16, 1, 0.3, 1);
}
.cc-detail-pane.cc-detail-active .cc-prose {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.3s;
}

/* Outcome strip */
.cc-outcome {
  padding: 18px 22px;
  background: linear-gradient(135deg, #F0F5FF 0%, var(--brand-soft) 100%);
  border: 1px solid rgba(199,215,255,0.6);
  border-radius: var(--radius);
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: 'Outfit', sans-serif;
  font-size: var(--fs-meta);
  font-weight: 500;
  color: var(--ink-900);
  line-height: 1.55;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity var(--dur-slow) ease, transform var(--dur-slow) cubic-bezier(0.16, 1, 0.3, 1);
}
.cc-detail-pane.cc-detail-active .cc-outcome {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.35s;
}
.cc-outcome-check {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--success-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

/* Responsive â stack on mobile */
@media (max-width: 1100px) {
  .cc-nav-grid {
    grid-template-columns: 1fr;
  }
  .cc-divider {
    display: none;
  }
  .cc-nav-list {
    padding: var(--space-2) 12px;
    border-bottom: 1px solid var(--ink-200);
  }
  .cc-detail {
    min-height: auto;
  }
  .cc-detail-pane {
    position: relative;
    padding: var(--space-4) var(--space-3);
  }
  .cc-detail-pane:not(.cc-detail-active) {
    display: none;
  }
}



/* Why QualNetics â 3-strip hover states */
.why-strip:hover {
  background: linear-gradient(180deg, #FAFBFE 0%, #F5F8FF 100%);
}
.why-strip:hover .why-strip-icon {
  transform: scale(1.06);
  background: var(--brand-soft);
}


/* What QualNetics Delivers â orbit infographic animations */
@keyframes orbitPulseWD { 0%,100%{ opacity: 0.4; }50%{ opacity: 0.9; } }
@keyframes orbitGlowWD { 0%,100%{ transform: scale(1); }50%{ transform: scale(1.05); } }
@keyframes orbitFlowWD { to{ stroke-dashoffset:-40; } }
.orbit-flow-line { animation: orbitFlowWD 4s linear infinite; }
.orbit-status-dot { animation: orbitPulseWD 1.8s ease-in-out infinite; }
.orbit-self-heal-glow { transform-origin: center; animation: orbitGlowWD 2.8s ease-in-out infinite; transform-box: fill-box; }



/* ============================== CORE CAPABILITIES â Sticky-stack ============================== */
.cc-section { padding: clamp(var(--space-7), 10vw, var(--space-8)) 0; }
.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(--ink-900);
  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); }

/* Right column stacks vertically with auto-numbered cards (CSS counter) */
.cc-right {
  display: flex;
  flex-direction: column;
  gap: 0;
  counter-reset: cc-card-num;
}

/* Each card is sticky, stacking with increasing top values */
.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;
}
/* Hairline gradient strip at the top â becomes vivid on active */
.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;
}
/* Auto-numbered badge in the top-right corner */
.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; margin-bottom: 0; }

/* Card LAYOUT: horizontal â large premium icon LEFT, content RIGHT */
.cc-card {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 28px;
  align-items: flex-start;
}
.cc-card-head {
  display: flex;
  align-items: flex-start;
  margin-bottom: 0;
}
/* Icon â layered premium treatment: gradient bg + hairline border + inner highlight */
.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;
}
/* Raster image icons â frameless treatment (illustrated icons stand on their own) */
.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;
}
/* When the icon container holds an image: strip the frame AND shrink to icon bounds */
.cc-card-icon:has(.cc-card-icon-img) {
  background: transparent;
  border: none;
  box-shadow: none;
  width: 80px;
  height: 80px;
}
/* For cards holding an image icon, tighten the grid column so text sits closer */
.cc-card:has(.cc-card-icon-img) {
  grid-template-columns: 96px 1fr;
  gap: 22px;
}
/* Active state â keep the illustrated icon in its natural color (no white filter) */
.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 {
  /* Subtle scale + soft brand glow as the active cue, no color shift */
  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: 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 18px;
}
/* Outcome â refined left-accent treatment instead of full pill */
.cc-card-outcome {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px 12px var(--space-2);
  background: linear-gradient(90deg, rgba(21,93,252,0.04) 0%, rgba(21,93,252,0.01) 100%);
  border: none;
  border-left: 2px solid var(--brand-border);
  border-radius: 0 10px 10px 0;
  transition:
    background var(--dur-base) ease,
    border-color var(--dur-base) ease;
}
.cc-card-outcome-check {
  width: 14px;
  height: 14px;
  color: var(--brand);
  flex-shrink: 0;
  margin-top: 3px;
  transition: color var(--dur-base) ease;
}
.cc-card-outcome span {
  font-size: var(--fs-meta);
  font-weight: 500;
  color: var(--ink-600);
  line-height: 1.5;
  transition: color var(--dur-base) ease;
}

/* Active state â premium accent treatment */
.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; }
.cc-card.cc-active .cc-card-outcome {
  background: linear-gradient(90deg, rgba(21,93,252,0.08) 0%, rgba(21,93,252,0.02) 100%);
  border-left-color: var(--brand);
}
.cc-card.cc-active .cc-card-outcome-check { color: var(--brand); }
.cc-card.cc-active .cc-card-outcome span { color: var(--ink-900); }

/* ââ Collapsible content + Read more ââ */
.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-collapsible-inner { padding-top: 0; }
.cc-card.cc-expanded .cc-card-collapsible-inner { padding-bottom: 4px; }

/* Read more toggle */
.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);
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: color var(--dur-fast) ease, gap var(--dur-fast) ease;
}
.cc-card-toggle:hover { color: var(--brand-hover); gap: 9px; }
.cc-card-toggle:focus-visible {
  outline: 2px solid rgba(21,93,252,0.35);
  outline-offset: 4px;
  border-radius: 4px;
}
.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-base) var(--ease-out);
}
.cc-card.cc-expanded .cc-card-toggle-chev { transform: rotate(180deg); }

/* Responsive */
@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; }
}


}


/* ====== INTEGRATIONS â Scrolling logo marquee ====== */
@keyframes int-marquee-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}
.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: flex-end;
  gap: 0;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

/* Each group: label TOP, logos BELOW */
.int-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  padding: 0 var(--space-1);
  flex-shrink: 0;
}
.int-group-label {
  font-family: 'Outfit', system-ui, -apple-system, sans-serif;
  font-size: var(--fs-eyebrow);
  font-weight: 500;
  color: var(--ink-600);
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  text-align: center;
}
.int-group-logos {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

/* Individual logo unit */
.int-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 96px;
  padding: var(--space-1) 4px;
  user-select: none;
}
.int-logo img {
  width: 30px;
  height: 30px;
  object-fit: contain;
  pointer-events: none;
  transition: transform var(--dur-fast) ease;
}
.int-logo:hover img { transform: scale(1.1); }
.int-logo span {
  font-size: var(--fs-meta);
  font-weight: 500;
  color: var(--ink-600);
  letter-spacing: -0.005em;
  white-space: nowrap;
}

/* Vertical separator between groups */
.int-group-sep {
  width: 1px;
  height: 56px;
  background: var(--ink-200);
  margin: 0 28px;
  flex-shrink: 0;
  align-self: flex-end;
  margin-bottom: var(--space-1);
}

@media(max-width:480px) {
  .int-logo { min-width: 80px; }
  .int-logo img { width: 26px; height: 26px; }
  .int-logo span { font-size: var(--fs-eyebrow); }
  .int-group-sep { margin: 0 var(--space-2); }
}


  /* 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; }
  .header { transition: background 0.3s ease, border-color 0.3s ease; }
  .nav a, .header-nav a, .nav-dropdown-trigger { transition: color 0.3s ease; }
  .header a[aria-label="PrimeSoft home"] img { transition: filter 0.3s ease; }

  /* ===== Header logo white on dark navbar ===== */
  .header .header-logo img { filter: none; transition: filter 0.3s ease; }
  .header.is-light .header-logo img { filter: none; }
  /* ===== end logo invert ===== */

  /* ===== Skip-link (visually hidden until focused) ===== */
  .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); text-decoration: none; }
  .skip-link:focus { top: 12px; }
  /* ===== end skip-link ===== */

  /* 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 (extracted from inline styles) */
    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); }

  

/* ===== next <style> ===== */


    /* Universal HD step-up (â¥1441px) â comprehensive fixed-pixel coverage */
    @media (min-width: 1441px) {
      .tc-eyebrow { font-size: var(--fs-eyebrow) !important; }
      .tc-tagline { font-size: var(--fs-title-m) !important; }
      .tc-item-title { font-size: var(--fs-title-m) !important; }
      .tc-item-desc { font-size: var(--fs-title-m) !important; line-height: 1.55 !important; }
      .tc-stat-label { font-size: var(--fs-meta) !important; }
      .tc-sublabel { font-size: var(--fs-eyebrow) !important; }
      .tc-content { font-size: var(--fs-body) !important; }
      .vc4-num { font-size: var(--ps-text-h1) !important; }
      .vc4-icon { width: 60px !important; height: 60px !important; }
      .vc4-card .role { font-size: var(--fs-meta) !important; }
      .vc4-title { font-size: var(--ps-text-h3) !important; }
      .vc4-desc { font-size: var(--fs-body) !important; line-height: 1.55 !important; }
      .lead-name { font-size: var(--ps-text-h3) !important; }
      .lead-title { font-size: var(--fs-body) !important; }
      .lead-desc { font-size: var(--fs-body) !important; }
      .header-nav a, .nav-dropdown-trigger { font-size: var(--ps-text-nav) !important; }
    }
  

/* ===== next <style> ===== */
















































































































/* âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
   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: 340px !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;
    left: var(--ps-pad-x) !important;   /* moved from right to left */
    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;
  }

  /* âââ MOBILE NAV REDESIGN (< 1100px): hamburger-left, logo-left, button-right, blue bar âââ */
  @media (max-width: 1100px) {
    html body .header {
      /* hamburger (20px left offset + 44px wide) + 20px breathing gap = 84px */
      padding-left: var(--pad-x, 20px) !important;
      padding-right: var(--pad-x, 20px) !important;
      padding-inline: var(--pad-x, 20px) !important;
      position: sticky !important;
      top: 0 !important;
      z-index: 100 !important;
      background: rgba(255, 255, 255, 0.97) !important;
      backdrop-filter: saturate(180%) blur(18px);
      -webkit-backdrop-filter: saturate(180%) blur(18px);
    }
    html body .header .header-logo {
      flex: 1 1 auto !important;
      justify-content: flex-start !important;
    }
    html body .header .header-logo img {
      height: 50px !important;
      margin: 0 !important;
    }
    html body .header .header-actions {
      display: flex !important;
      flex: 0 0 auto !important;
      align-items: center !important;
    }
    html body .header.header .header-actions.header-actions .btn,
    html body .header.header .header-actions.header-actions .btn-primary,
    html body .header.header .header-actions.header-actions a.btn,
    html body .header.header .header-actions.header-actions a.btn-primary {
      /* height from unified button scale (site.css 44/52/56) */
      padding: 0 16px !important;
      font-size: var(--fs-meta) !important;
    }
  }
  @media (max-width: 480px) {
    .header-logo img { height: 44px !important; }
    html body .header.header .header-actions.header-actions .btn,
    html body .header.header .header-actions.header-actions .btn-primary,
    html body .header.header .header-actions.header-actions a.btn,
    html body .header.header .header-actions.header-actions a.btn-primary {
      padding: 0 16px !important;
      font-size: var(--fs-meta) !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: 0.22em !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(--ps-text-h3) !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) {
    /* Reorder cards to match Foundation â Governance flow.
       .sd-stack contains L2 and L1; display: contents lets them become direct
       children of .sd-platform for flex ordering. */
    #architecture .sd-stack { display: contents !important; }
    #architecture .sd-layer.foundation { order: 1 !important; }
    #architecture .sd-layer:not(.foundation) { order: 2 !important; }
    #architecture .sd-side.left { order: 3 !important; }
    #architecture .sd-side.right { order: 4 !important; }
    /* 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(--ps-text-h3) !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(--ps-text-h3) !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 <style> ===== */


  /* Nav dropdown unification (2026-07-16): sub 14px + nowrap, wider menu */
  .nav-dropdown-menu { min-width: 340px !important; }
  .nav-dropdown-sub { font-size: var(--fs-meta) !important; white-space: nowrap !important; }
  .nav-dropdown-label { white-space: nowrap !important; }
  .nav-dropdown-item { border-radius: var(--radius) !important; align-items: flex-start !important; }


/* ===== next <style> ===== */


  /* Leadership avatars â portrait pill shape at every viewport (2026-07-15) */

  /* Desktop base â preserves original 180Ã220 pill shape */
  #leadership .lead-photo,
  #leadership .lead-cta-photo,
  #leadership .lead-cta-card > div:first-of-type {
    width: 180px !important;
    height: 220px !important;
    border-radius: 9999px !important;
    aspect-ratio: 180 / 220;
    overflow: hidden;
  }
  #leadership .lead-photo img,
  #leadership .lead-cta-photo img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* HD 1441+ â scale up proportionally (same aspect ratio) â both avatars AND CTA card */
  @media (min-width: 1441px) {
    #leadership .lead-photo,
    #leadership .lead-cta-photo,
    #leadership .lead-cta-card > div:first-of-type {
      width: clamp(180px, 12vw, 240px) !important;
      height: auto !important;
      aspect-ratio: 180 / 220 !important;
      border-radius: 9999px !important;
    }
    .lead-grid { gap: clamp(28px, 2.4vw, 44px) !important; }
    .lead-card { padding: clamp(20px, 2vw, 36px) !important; }
    .lead-name { font-size: var(--ps-text-h3) !important; }
    .lead-role { font-size: var(--ps-text-eyebrow) !important; }
    /* Grow the arrow ring inside the CTA + label slightly at HD */
    #leadership .lead-cta-card > div:first-of-type > div:first-child {
      width: clamp(64px, 4.6vw, 88px) !important;
      height: clamp(64px, 4.6vw, 88px) !important;
    }
    #leadership .lead-cta-card > div:first-of-type > div:last-child {
      font-size: var(--ps-text-btn) !important;
    }
  }

  /* Mobile â smaller but same pill shape */
  @media (max-width: 767px) {
    #leadership .lead-photo,
    #leadership .lead-cta-photo,
    #leadership .lead-cta-card > div:first-of-type {
      width: 130px !important;
      height: 160px !important;
      border-radius: 9999px !important;
    }
  }


/* ===== next <style> ===== */


  /* PrimeSoft site-wide typography tokens â 11 tokens on 8pt grid (2026-07-16) */
  :root {
    --ps-text-body-sm: 12px;
    --ps-text-body:    16px;
    --ps-text-chip:    12px;
    --ps-text-eyebrow: 12px;
    --ps-text-h4:      18px;
    --ps-text-h3:      20px;
    --ps-text-h2:      28px;
    --ps-text-h1:      36px;
    --ps-text-btn:     14px;
    --ps-text-nav:     14px;
    --ps-text-navitem: 14px;
  }
  @media (min-width: 768px) {
    :root {
      --ps-text-body-sm: 14px;
      --ps-text-body:    18px;
      --ps-text-chip:    12px;
      --ps-text-eyebrow: 14px;
      --ps-text-h4:      20px;
      --ps-text-h3:      24px;
      --ps-text-h2:      40px;
      --ps-text-h1:      48px;
      --ps-text-btn:     14px;
      --ps-text-nav:     14px;
      --ps-text-navitem: 14px;
    }
  }
  @media (min-width: 1600px) {
    :root {
      --ps-text-body-sm: 16px;
      --ps-text-body:    22px;
      --ps-text-chip:    14px;
      --ps-text-eyebrow: 16px;
      --ps-text-h4:      24px;
      --ps-text-h3:      26px;
      --ps-text-h2:      48px;
      --ps-text-h1:      56px;
      --ps-text-btn:     16px;
      --ps-text-nav:     16px;
      --ps-text-navitem: 16px;
    }
  }

  /* BROAD MAPPINGS â every element type */

  /* Every h1 */
  html body h1,
  html body .hero h1,
  html body .hero-inner h1,
  html body .case-title,
  html body .cu-head h1,
  html body .cs-title {
    font-size: var(--ps-text-h1) !important;
  }

  /* Every h2 */
  html body h2,
  html body .sec-h2,
  html body .section-header h2,
  html body .hww-heading,
  html body .ag-h2 {
    font-size: var(--ps-text-h2) !important;
  }

  /* Every h3 â SITE-WIDE â 28px at HD */
  html body h3 {
    font-size: var(--ps-text-h3) !important;
  }

  /* Every h4 */
  html body h4 {
    font-size: var(--ps-text-h4) !important;
  }

  /* Body / paragraphs */
  html body p:not([style*="font-size"]),
  html body .hero-sub,
  html body .hero-lede,
  html body .lede,
  html body .sec-lede,
  html body .section-header p {
    font-size: var(--ps-text-body) !important;
  }

  /* Eyebrows */
  html body .eyebrow,
  html body .section-header .eyebrow,
  html body .ag-eyebrow,
  html body .hww-eyebrow,
  html body .cc-left-eyebrow,
  html body .tc-eyebrow,
  html body .cu-eyebrow,
  html body .sf-eyebrow,
  html body .cs-hero-eyebrow,
  html body .cs-eyebrow {
    font-size: var(--fs-eyebrow) !important;
  }

  /* Chips and pills â excluding Architecture (has its own tuning) */
  html body .chip,
  html body .cd-pill,
  html body .cd-pipe-stage {
    font-size: var(--ps-text-chip) !important;
  }
  /* Restore Architecture chip/pill sizes (they have own scale in ps-architecture-override) */
  html body #architecture .chip,
  html body #architecture .cd-pill,
  html body #architecture .cd-pipe-stage {
    font-size: unset !important;
  }

  /* Buttons â standardized to var(--ps-text-btn) */
  html body .btn,
  html body .btn-primary,
  html body .btn--primary,
  html body .btn-outline,
  html body .btn-secondary,
  html body .hero-cta-btn,
  html body a.fcta-trigger,
  html body .ag-cta,
  html body .sols-panel-cta,
  html body .cc-left-cta,
  html body .view-all-btn {
    font-size: var(--ps-text-btn) !important;
  }

  /* Nav */
  html body .header-nav a,
  html body .nav-dropdown-trigger {
    font-size: var(--ps-text-nav) !important;
  }
  html body .nav-dropdown-label {
    font-size: var(--ps-text-navitem) !important;
  }


/* ===== next <style> ===== */


  /* Header logo image scales up at HD (2026-07-16) */
  @media (min-width: 1600px) {
    .header-logo img { height: 64px !important; width: auto !important; }
  }


/* ===== next <style> ===== */


  /* Standardized button heights â 2 tokens (2026-07-16) */
  :root {
    --ps-btn-height:    44px;
    --ps-btn-height-lg: 48px;
  }
  @media (min-width: 1600px) {
    :root {
      --ps-btn-height:    56px;
      --ps-btn-height-lg: 56px;
    }
  }

  /* Standard buttons â 44/44/48 (with high specificity to beat legacy .hero-sub-row .btn) */
  html body .btn,
  html body .btn-primary,
  html body .btn--primary,
  html body .btn-outline,
  html body .btn-secondary,
  html body .fcta-btn,
  html body .fcta-submit,
  html body a.fcta-trigger,
  html body .ag-cta,
  html body .sols-panel-cta,
  html body .cc-left-cta,
  html body .view-all-btn,
  html body .cu-btn,
  html body .cu-btn--primary,
  html body .cu-btn--secondary,
  /* Beat legacy .hero-actions .btn / .hero-sub-row .btn (spec 20+) with spec 22 */
  html body .hero-actions .btn,
  html body .hero-sub-row .btn {
    height: var(--ps-btn-height) !important;
    padding: 0 20px !important;
    font-size: var(--ps-text-btn) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Hero / large CTAs â 48/48/56 */
  html body .hero-cta-btn {
    height: var(--ps-btn-height-lg) !important;
    padding: 0 var(--space-3) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }


/* ===== next <style> ===== */


/* Sols-* card grid styles extracted from index.html for dedicated Solutions pages */
/* ---------- 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: 0 auto var(--space-4); max-width: var(--container); }
.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: 500; }
.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); max-width: var(--container); margin: 0 auto; }
.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; display: flex; align-items: center; justify-content: center; margin-bottom: var(--space-1); transition: transform var(--dur-base) ease; }
.sols-card:hover .sols-icon-wrap { transform: scale(1.04); }
.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: var(--space-3) auto 0; max-width: var(--container); }
.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); }
.sols-grid { grid-template-columns:repeat(2,1fr); }
.sols-grid { grid-template-columns:1fr; }
.sols-card { padding:28px var(--space-3); }
/* 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;
  }
ary/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;
  }
/* Solutions panel CTA â center horizontally using flex on the parent.
     We avoid text-align:center on .sols-grid-wrap because that would also
     center the card text inside .sols-grid. Setting margin: var(--space-4) auto 0
     with width:fit-content turns the inline-flex button into a block-level
     centered element. */
  .sols-panel-cta {
    margin: var(--space-4) auto 0 !important;
    width: fit-content !important;
    display: flex !important;
  }
.sols-section { padding: var(--space-6) 0; }
/* Section headlines â same clamp minimum as hero */
    .sols-headline, .cc-left-headline, .ag-h2 { font-size: var(--fs-display-2); line-height: 1.15; }
.sols-headline-sub, .cc-left-sub { font-size: var(--fs-body); line-height: 1.55; }
/* Solutions carousel */
    .sols-name { font-size: var(--ps-text-h3); }
.sols-desc { font-size: var(--fs-body); line-height: 1.55; }
.sols-tab { font-size: var(--fs-meta); padding: var(--space-1) 14px !important; }
.sols-section { padding: var(--space-5) 0; }
/* Tighter headlines on small mobile */
    .sols-headline, .cc-left-headline, .ag-h2 { font-size: var(--ps-text-h1); }
.sols-section { padding: 40px 0; }
/* Headline float-down */
    .sols-headline, .cc-left-headline, .ag-h2 { font-size: var(--fs-display-2); }
/* Section headlines */
    .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.1;
    }
/* Card titles */
    .cc-card-title, .cs-card-title, .impact-label,
    .tc-name, .sf-cta-heading, .sols-name {
      font-size: var(--fs-display-2) !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;
    }
/* Section verticals */
    .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(100px, 8vw, 180px) !important;
      padding-bottom: clamp(100px, 8vw, 180px) !important;
    }
/* Grid gaps grow */
    .cs-grid, .impact-grid, .f1-solutions, .f1-outcomes,
    .m4-grid, .tc-grid, .vc4-grid, .lead-grid, .sols-grid {
      gap: clamp(var(--space-3), 2vw, 40px) !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;
    }
/* 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;
    }
/* 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;
    }
/* ââââââââââââââââââ 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;
    }
/* ââ Solutions carousel ââ */
    .sols-headline { font-size: var(--fs-display-2) !important; }
.sols-headline-sub { font-size: var(--ps-text-body) !important; }
.sols-tab { font-size: var(--ps-text-body) !important; padding: 10px clamp(var(--space-2), 1.4vw, 22px) !important; }
.sols-panel-sub { font-size: var(--fs-eyebrow) !important; }
.sols-name { font-size: var(--fs-title-l) !important; }
.sols-desc { font-size: var(--ps-text-body) !important; }
.sols-count { font-size: var(--ps-text-body) !important; }
.sols-explore-btn { font-size: var(--ps-text-btn) !important; height: clamp(44px, 3.5vw, 52px) !important; }
.sols-panel-cta { font-size: var(--ps-text-btn) !important; height: clamp(44px, 3.5vw, 52px) !important; }
/* âââ CARDS â consistent padding âââ */
  .cc-card, .cs-card-body, .tc-card, .m4-card, .sf-card, .sols-card {
    padding: var(--ps-s4) !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;
  }
/* Buttons â standardized to var(--ps-text-btn) */
  html body .btn,
  html body .btn-primary,
  html body .btn--primary,
  html body .btn-outline,
  html body .btn-secondary,
  html body .hero-cta-btn,
  html body a.fcta-trigger,
  html body .ag-cta,
  html body .sols-panel-cta,
  html body .cc-left-cta,
  html body .view-all-btn {
    font-size: var(--ps-text-btn) !important;
  }
/48 (with high specificity to beat legacy .hero-sub-row .btn) */
  html body .btn,
  html body .btn-primary,
  html body .btn--primary,
  html body .btn-outline,
  html body .btn-secondary,
  html body .fcta-btn,
  html body .fcta-submit,
  html body a.fcta-trigger,
  html body .ag-cta,
  html body .sols-panel-cta,
  html body .cc-left-cta,
  html body .view-all-btn,
  html body .cu-btn,
  html body .cu-btn--primary,
  html body .cu-btn--secondary,
  /* Beat legacy .hero-actions .btn / .hero-sub-row .btn (spec 20+) with spec 22 */
  html body .hero-actions .btn,
  html body .hero-sub-row .btn {
    height: var(--ps-btn-height) !important;
    padding: 0 20px !important;
    font-size: var(--ps-text-btn) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }


/* ===== next <style> ===== */


  /* Center-align "Explore All AI Solutions" button â tight fit */
  html body a.sols-panel-cta {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin: var(--space-4) auto 0 !important;
    width: auto !important;
    padding: 0 var(--space-3) !important;
    box-sizing: border-box !important;
  }
/* Wrap the button in centered flex container by targeting parent */
  html body .sols-grid-wrap {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }
html body .sols-grid-wrap > a.sols-panel-cta {
    align-self: center !important;
  }
@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); } }
@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 <style> ===== */


  /* Two-tone layout: white hero + subtle gray cards section */
  html body {
    background: #FFFFFF !important;
  }
  html body #hero {
    background: #FFFFFF !important;
  }
  html body #solutions {
    background: var(--bg-soft) !important;
    padding: var(--space-7) 0 !important;
  }


/* ===== next <style> ===== */


  /* ET page â 2Ã2 grid layout (4 cards balanced) */
  #solutions .sols-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--space-3) !important;
    max-width: 900px !important;
    margin: 0 auto !important;
  }
  #solutions .sols-card {
    width: auto !important;
    max-width: none !important;
  }
  @media (max-width: 640px) {
    #solutions .sols-grid { grid-template-columns: 1fr !important; }
  }


/* ===== next <style> ===== */


  /* Nuclear eyebrow override â beats all legacy hardcoded sizes */
  html body [class~="eyebrow"],
  html body [class~="eyebrow"]:not(.no-token),
  html body span[class*="eyebrow"],
  html body div[class*="eyebrow"] {
    font-size: var(--ps-text-eyebrow) !important;
  }




/* ===== next <style> ===== */


/* Enterprise Transformation #solutions â 3+1 layout instead of 2x2 â 2026-07-19 */
@media (min-width: 901px) {
  html body #solutions .sols-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
    max-width: 1160px !important;
    margin: 0 auto !important;
  }
  /* 4th card wraps naturally to left of second row */
  html body #solutions .sols-grid > .sols-card:nth-child(4) {
    grid-column: auto !important;
  }
}

@media (min-width: 1441px) {
  html body #solutions .sols-grid {
    max-width: var(--container, 1600px) !important;
    gap: 28px !important;
  }
}

@media (max-width: 900px) and (min-width: 601px) {
  html body #solutions .sols-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 600px) {
  html body #solutions .sols-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ===== next <style> ===== */


/* fcta modal â typography + spacing per design guidelines
   Selectors use .fcta-modal .X to beat site-wide html body p:not(...) rule â 2026-07-19 */

/* Modal shell */
html body .fcta-modal {
  padding: 40px 36px var(--space-4) !important;
  border-radius: var(--radius) !important;
  max-width: 640px !important;
}

/* Close button */
html body .fcta-modal .fcta-modal-close {
  width: 40px !important;
  height: 40px !important;
  top: 16px !important;
  right: 16px !important;
}

/* Title + subtitle â higher specificity to win over site p rule */
html body .fcta-modal .fcta-modal-title {
  font-size: var(--fs-title-l) !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  color: var(--ink-900) !important;
  margin: 0 0 10px !important;
}
html body .fcta-modal .fcta-modal-sub {
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: var(--ink-600) !important;
  margin: 0 0 28px !important;
}

/* Field group */
html body .fcta-modal .fcta-fields {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 18px var(--space-2) !important;
  margin-bottom: var(--space-3) !important;
}
html body .fcta-modal .fcta-field.full { grid-column: 1 / -1 !important; }

html body .fcta-modal .fcta-field {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-1) !important;
}
html body .fcta-modal .fcta-field label {
  font-size: var(--fs-meta) !important;
  font-weight: 500 !important;
  color: var(--ink-900) !important;
  letter-spacing: 0 !important;
}
html body .fcta-modal .fcta-field input,
html body .fcta-modal .fcta-field textarea {
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
  color: var(--ink-900) !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D5DD !important;
  border-radius: var(--radius) !important;
  padding: 12px 14px !important;
  line-height: 1.5 !important;
  transition: border-color 0.15s !important;
  font-family: inherit !important;
}
html body .fcta-modal .fcta-field textarea {
  min-height: 96px !important;
  resize: vertical !important;
}
html body .fcta-modal .fcta-field input:focus,
html body .fcta-modal .fcta-field textarea:focus {
  outline: none !important;
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px rgba(21,93,252,0.10) !important;
  color: var(--ink-900) !important;
}
html body .fcta-modal .fcta-field input::placeholder,
html body .fcta-modal .fcta-field textarea::placeholder {
  color: #9CA3AF !important;
  font-weight: 400 !important;
}

/* Submit button */
html body .fcta-modal .fcta-btn.fcta-submit {
  width: 100% !important;
  height: 52px !important;
  padding: 0 28px !important;
  border-radius: var(--radius-pill) !important;
  background: var(--brand) !important;
  color: #FFFFFF !important;
  font-size: var(--fs-body) !important;
  font-weight: 500 !important;
  border: none !important;
  cursor: pointer !important;
  transition: background 0.15s, transform 0.15s !important;
  margin-top: 4px !important;
}
html body .fcta-modal .fcta-btn.fcta-submit:hover {
  background: #0F4CD8 !important;
  transform: translateY(-1px) !important;
}

/* Legal note */
html body .fcta-modal .fcta-form-note {
  font-size: var(--fs-meta) !important;
  font-weight: 400 !important;
  color: var(--ink-600) !important;
  line-height: 1.5 !important;
  text-align: center !important;
  margin: var(--space-2) 0 0 !important;
}

/* Mobile */
@media (max-width: 600px) {
  html body .fcta-modal { padding: 28px 20px var(--space-3) !important; }
  html body .fcta-modal .fcta-fields { grid-template-columns: 1fr !important; gap: var(--space-2) !important; }
  html body .fcta-modal .fcta-modal-title { font-size: var(--ps-text-h3) !important; }
  html body .fcta-modal .fcta-modal-sub { font-size: var(--fs-body) !important; }
}


/* ===== next <style> ===== */


/* 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 <style> ===== */


/* Fix HWW action buttons â parent must be row for buttons to size to content */
#how-we-work .hww-actions {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin-top: var(--space-3) !important;
}
/* .btn-outline isn't defined on about-us â inherit .btn base + outline visual */
.btn-outline {
  background: transparent !important;
  color: var(--brand) !important;
  border: 1px solid var(--brand) !important;
  height: 52px !important;
  padding: 0 28px !important;
  border-radius: var(--radius-pill) !important;
  font-size: var(--fs-body) !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  transition: background 0.2s ease !important;
  line-height: 1 !important;
}
.btn-outline:hover {
  background: var(--brand-soft) !important;
}
/* Ensure primary in HWW context sizes to content, not full-width */
#how-we-work .hww-actions .btn,
#how-we-work .hww-actions .btn-primary,
#how-we-work .hww-actions .btn-outline {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  align-self: flex-start !important;
}


/* ===== next <style> ===== */


/* âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
   VALUES SECTION â full font ladder audit
   Section eyebrow, H2, card heading, and description all DS-aligned
   across mobile â¤767 / base 1366 / HD 1441+ / HD 1600+ (1920).
   âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */

/* Section header â override inline styles with proper HD ladder */
#values .container > div:first-child .eyebrow,
#values .eyebrow {
  font-size: var(--fs-eyebrow) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
#values .container > div:first-child h2,
#values h2 {
  font-size: var(--fs-display-2) !important;
  font-weight: 300 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.025em !important;
}
#values h2 em, #values .em-blue-mid {
  font-style: normal !important;
  font-weight: 500 !important;
  color: var(--brand) !important;
}

/* Card layout â icon top â heading â description */
#values .vc4-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: var(--space-2) !important;
  padding: var(--space-3) 20px !important;
  background: #FFFFFF !important;
  border: 1px solid var(--ink-soft, #ECEEF3) !important;
  border-radius: var(--radius) !important;
}
#values .vc4-card .vc4-icon {
  width: 56px !important; height: 56px !important; flex-shrink: 0 !important;
}
#values .vc4-card .vc4-icon img {
  width: 100% !important; height: 100% !important; object-fit: contain !important;
}
#values .vc4-card .vc4-heading {
  font-size: var(--ps-text-h3) !important;
  font-weight: 500 !important;
  color: var(--ink, var(--ink-900)) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  margin: 0 !important;
}
#values .vc4-card p {
  font-size: var(--fs-body) !important;
  color: var(--ink-mid, var(--ink-600)) !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}
#values .vc4-num { display: none !important; }

/* Grid â 4 in a row at desktop */
#values .vc4-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
}

/* HD 1441+ âââ */
@media (min-width: 1441px) {
  #values .eyebrow { font-size: var(--fs-eyebrow) !important; }
  #values h2 { font-size: var(--fs-display-2) !important; }
  #values .vc4-card .vc4-heading { font-size: var(--fs-title-l) !important; }
  #values .vc4-card p { font-size: var(--ps-text-body) !important; }
  #values .vc4-grid { gap: var(--space-3) !important; }
  #values .vc4-card { padding: 28px var(--space-3) !important; }
}

/* HD 1600+ / 1920 âââ */
@media (min-width: 1600px) {
  #values .eyebrow { font-size: var(--fs-eyebrow) !important; }
  #values h2 { font-size: var(--fs-display-2) !important; }
  #values .vc4-card .vc4-heading { font-size: var(--ps-text-h3) !important; }
  #values .vc4-card p { font-size: var(--ps-text-body) !important; }
  #values .vc4-grid { gap: 28px !important; }
  #values .vc4-card { padding: var(--space-4) 28px !important; }
}

/* Tablet 641-1100 â 2Ã2 grid âââ */
@media (max-width: 1100px) {
  #values .vc4-grid { grid-template-columns: 1fr 1fr !important; }
}

/* Mobile â¤767 â 1 column, DS body sizes âââ */
@media (max-width: 767px) {
  #values .eyebrow { font-size: var(--fs-eyebrow) !important; }
  #values h2 { font-size: var(--ps-text-h1) !important; line-height: 1.15 !important; }
  #values .vc4-grid { grid-template-columns: 1fr !important; }
  #values .vc4-card {
    align-items: center !important;
    text-align: center !important;
    padding: var(--space-3) 20px !important;
  }
  #values .vc4-card .vc4-heading { font-size: var(--ps-text-h3) !important; }
  #values .vc4-card p { font-size: var(--fs-title-m) !important; line-height: 1.55 !important; }
}


/* ===== next <style> ===== */


/* .hww-item h3 is a step card title on About Us â align to site-wide 20px mobile card title */
@media (max-width: 767px) {
  #how-we-work .hww-item h3,
  section#how-we-work .hww-item h3 {
    font-size: var(--ps-text-h3) !important;
    line-height: 1.3 !important;
    font-weight: 500 !important;
  }
}


/* ===== next <style> ===== */


/* COMPREHENSIVE About Us DS-alignment override
   Covers EVERY text element at Mobile / 1366 / HD 1441+ / HD 1600+
   High-specificity + !important to beat inline styles and legacy rules. */

/* ââââââââââââââ MOBILE â¤767px ââââââââââââââ */
@media (max-width: 767px) {
  /* Hero â proper mobile H1 */
  section.hero h1, .hero h1, .hero-inner h1 {
    font-size: var(--ps-text-h1) !important;
    line-height: 1.15 !important;
  }
  section.hero p, .hero p, .hero-sub {
    font-size: var(--fs-title-m) !important; line-height: 1.5 !important;
  }
  /* Section headers (inline styled H2 tags) */
  section#story h2, section#capabilities h2, section#how-we-work h2,
  section#values h2, section#leadership h2, section#partnerships h2,
  section#news h2, section#contact h2,
  #story h2[style*="font-size"], #capabilities h2[style*="font-size"],
  #how-we-work h2[style*="font-size"], #values h2[style*="font-size"],
  #leadership h2[style*="font-size"], #partnerships h2[style*="font-size"],
  #news h2[style*="font-size"] {
    font-size: var(--ps-text-h1) !important;
    line-height: 1.2 !important;
  }
  section#contact .ag-h2, .ag-h2 {
    font-size: var(--ps-text-h1) !important;
  }
  /* Section subheads */
  section#story p, section#capabilities p, section#how-we-work p,
  section#values p, section#leadership p, section#partnerships p,
  section#news p,
  #story p[style*="font-size"], #capabilities p[style*="font-size"],
  #how-we-work p[style*="font-size"], #values p[style*="font-size"],
  #leadership p[style*="font-size"], #partnerships p[style*="font-size"],
  #news p[style*="font-size"] {
    font-size: var(--fs-title-m) !important; line-height: 1.5 !important;
  }
  /* Eyebrows (inline styled) */
  span.eyebrow[style*="font-size"], .eyebrow {
    font-size: var(--fs-eyebrow) !important;
  }
  /* TC Cards (Two Capabilities section) */
  .tc-name { font-size: var(--ps-text-h3) !important; line-height: 1.25 !important; }
  .tc-tagline { font-size: var(--fs-title-m) !important; }
  .tc-desc { font-size: var(--fs-title-m) !important; line-height: 1.5 !important; }
  .tc-item-title { font-size: var(--ps-text-h3) !important; font-weight: 500 !important; }
  .tc-item-desc { font-size: var(--fs-title-m) !important; line-height: 1.5 !important; }
  .tc-sublabel { font-size: var(--fs-eyebrow) !important; }
  .tc-stat-num { font-size: var(--fs-stat) !important; }
  .tc-stat-label { font-size: var(--fs-eyebrow) !important; }
  /* M4 Cards (How We Work) */
  .m4-card h3 { font-size: var(--ps-text-h3) !important; }
  .m4-card p { font-size: var(--fs-title-m) !important; line-height: 1.5 !important; }
  /* VC4 Cards (Values) */
  .vc4-card h3 { font-size: var(--ps-text-h3) !important; }
  .vc4-card p { font-size: var(--fs-title-m) !important; line-height: 1.5 !important; }
  .vc4-num { font-size: var(--fs-title-l) !important; }
  /* Leadership */
  .lead-name { font-size: var(--ps-text-h3) !important; line-height: 1.25 !important; }
  .lead-role { font-size: var(--fs-meta) !important; }
  /* News */
  .news-card h3, .news-card h3[style*="font-size"] { font-size: var(--ps-text-h3) !important; }
  .news-card p, .news-card p[style*="font-size"] { font-size: var(--fs-title-m) !important; }
  /* AG section (Apply CTA) */
  .ag-eyebrow { font-size: var(--fs-eyebrow) !important; }
  .ag-cta { font-size: var(--fs-title-m) !important; }
}

/* ââââââââââââââ DESKTOP 1024-1440 (1366 region) ââââââââââââââ */
@media (min-width: 1024px) and (max-width: 1440px) {
  /* Section headers - 1366 middle range */
  section#story h2, section#capabilities h2, section#how-we-work h2,
  section#values h2, section#leadership h2, section#partnerships h2,
  section#news h2, .ag-h2 {
    font-size: var(--ps-text-h1) !important;
  }
  /* Section subheads */
  section#story p, section#capabilities p, section#how-we-work p,
  section#values p, section#leadership p, section#partnerships p,
  section#news p,
  #story p[style*="font-size"], #capabilities p[style*="font-size"],
  #how-we-work p[style*="font-size"], #values p[style*="font-size"],
  #leadership p[style*="font-size"], #partnerships p[style*="font-size"],
  #news p[style*="font-size"] {
    font-size: var(--fs-title-m) !important; line-height: 1.55 !important;
  }
  /* TC Cards */
  .tc-item-title { font-size: var(--fs-title-m) !important; }
  .tc-item-desc { font-size: var(--fs-title-m) !important; }
  /* Leadership name â bump to match DS card title */
  .lead-name { font-size: var(--ps-text-h3) !important; }
  /* News */
  .news-card h3 { font-size: var(--ps-text-h3) !important; }
  .news-card p { font-size: var(--fs-body) !important; }
}

/* ââââââââââââââ HD 1441+ ââââââââââââââ */
@media (min-width: 1441px) {
  /* Hero */
  section.hero h1, .hero h1, .hero-inner h1 {
    font-size: var(--fs-display-1) !important;
    line-height: 1.15 !important;
  }
  section.hero p, .hero p, .hero-sub {
    font-size: var(--ps-text-body) !important; line-height: 1.55 !important;
  }
  /* Section H2 - bump to DS HD */
  section#story h2, section#capabilities h2, section#how-we-work h2,
  section#values h2, section#leadership h2, section#partnerships h2,
  section#news h2, section#contact h2,
  #story h2[style*="font-size"], #capabilities h2[style*="font-size"],
  #how-we-work h2[style*="font-size"], #values h2[style*="font-size"],
  #leadership h2[style*="font-size"], #partnerships h2[style*="font-size"],
  #news h2[style*="font-size"], .ag-h2 {
    font-size: var(--fs-display-2) !important;
    line-height: 1.18 !important;
  }
  /* Section subheads at HD */
  section#story p, section#capabilities p, section#how-we-work p,
  section#values p, section#leadership p, section#partnerships p,
  section#news p,
  #story p[style*="font-size"], #capabilities p[style*="font-size"],
  #how-we-work p[style*="font-size"], #values p[style*="font-size"],
  #leadership p[style*="font-size"], #partnerships p[style*="font-size"],
  #news p[style*="font-size"] {
    font-size: var(--ps-text-body) !important; line-height: 1.55 !important;
  }
  /* Eyebrows */
  span.eyebrow[style*="font-size"], .eyebrow, .tc-eyebrow, .ag-eyebrow {
    font-size: var(--fs-eyebrow) !important;
  }
  /* TC Cards */
  .tc-name { font-size: var(--fs-title-l) !important; }
  .tc-tagline { font-size: var(--ps-text-h3) !important; }
  .tc-desc { font-size: var(--ps-text-body) !important; line-height: 1.55 !important; }
  .tc-item-title { font-size: var(--ps-text-h3) !important; }
  .tc-item-desc { font-size: var(--fs-title-m) !important; }
  .tc-sublabel { font-size: var(--fs-meta) !important; }
  .tc-stat-num { font-size: var(--ps-text-h1) !important; }
  .tc-stat-label { font-size: var(--fs-meta) !important; }
  /* M4 Cards */
  .m4-card h3 { font-size: var(--fs-title-l) !important; }
  .m4-card p { font-size: var(--ps-text-body) !important; }
  /* VC4 Cards */
  .vc4-card h3 { font-size: var(--fs-title-l) !important; }
  .vc4-card p { font-size: var(--ps-text-body) !important; line-height: 1.55 !important; }
  .vc4-num { font-size: var(--ps-text-h1) !important; }
  /* Leadership */
  .lead-name { font-size: var(--ps-text-h3) !important; }
  .lead-role { font-size: var(--fs-title-m) !important; }
  /* News */
  .news-card h3, .news-card h3[style*="font-size"] { font-size: var(--ps-text-h3) !important; }
  .news-card p, .news-card p[style*="font-size"] { font-size: var(--fs-title-m) !important; }
  /* AG section */
  .ag-cta { font-size: var(--fs-title-m) !important; }
  /* How We Work â fills 1441+ gap */
  #how-we-work h2, section#how-we-work h2 { font-size: var(--fs-display-2) !important; }
  #how-we-work .hww-intro, section#how-we-work .hww-intro { font-size: var(--ps-text-body) !important; }
  #how-we-work .hww-item h3, section#how-we-work .hww-item h3 { font-size: var(--fs-title-l) !important; }
  #how-we-work .hww-item p, section#how-we-work .hww-item p { font-size: var(--ps-text-body) !important; }
  #how-we-work .hww-item-num, section#how-we-work .hww-item-num { font-size: var(--ps-text-h1) !important; }
  #how-we-work .hww-meta, section#how-we-work .hww-meta { font-size: var(--fs-meta) !important; }
  #how-we-work .hww-btn-primary, #how-we-work .hww-btn-outline { font-size: var(--fs-meta) !important; }
  /* Contact / ag / fcta form â fills 1441+ gap */
  #contact h2, section#contact h2, .ag-h2 { font-size: var(--fs-display-2) !important; }
  #contact .ag-row-text, section#contact .ag-row-text { font-size: var(--ps-text-body) !important; }
  #contact .ag-eyebrow, .ag-eyebrow { font-size: var(--fs-eyebrow) !important; }
  .fcta-modal-title { font-size: var(--ps-text-h3) !important; }
  .fcta-modal-sub { font-size: var(--ps-text-body) !important; }
  .fcta-form-note { font-size: var(--fs-meta) !important; }
  .fcta-field label, .fcta-field input, .fcta-field textarea, .fcta-field select {
    font-size: var(--fs-title-m) !important;
  }
  /* Story stat labels â 16px inline should scale to 18px at HD */
  #story div[style*="font-size:var(--fs-body)"], section#story div[style*="font-size:var(--fs-body)"] {
    font-size: var(--fs-title-m) !important;
  }
}

/* ââââââââââââââ HD 1600+ ââââââââââââââ */
@media (min-width: 1600px) {
  section.hero h1, .hero h1, .hero-inner h1 {
    font-size: var(--fs-display-1) !important;
  }
  /* Reinforce all body text at 22px */
  section#story p, section#capabilities p, section#how-we-work p,
  section#values p, section#leadership p, section#partnerships p,
  section#news p,
  .tc-desc, .m4-card p, .vc4-card p,
  .news-card p, .news-card p[style*="font-size"] {
    font-size: var(--ps-text-body) !important;
  }
  .tc-item-title { font-size: var(--ps-text-h3) !important; }
  .tc-item-desc { font-size: var(--fs-title-m) !important; }
  .m4-card h3, .vc4-card h3 { font-size: var(--ps-text-h3) !important; }
  .lead-name { font-size: var(--ps-text-h3) !important; }
  .news-card h3 { font-size: var(--ps-text-h3) !important; }
  /* How We Work at 1600+ */
  #how-we-work .hww-item h3, section#how-we-work .hww-item h3 { font-size: var(--ps-text-h3) !important; }
  #how-we-work .hww-item p, section#how-we-work .hww-item p { font-size: var(--ps-text-body) !important; }
  #how-we-work .hww-intro { font-size: var(--ps-text-body) !important; }
  /* Contact at 1600+ */
  .fcta-modal-title { font-size: var(--ps-text-h3) !important; }
  .fcta-modal-sub { font-size: var(--ps-text-body) !important; }
  #contact .ag-row-text { font-size: var(--ps-text-body) !important; }
}

/* âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
   MOBILE (â¤767px) â About Us specific fixes
   1. Hero images stacked vertically
   2. Story stats 2Ã2 grid
   3. Values cards icon-on-top
   4. Leadership mobile-friendly grid
   5. Footer horizontal padding
   âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */
@media (max-width: 767px) {

  /* 1. HERO IMAGES â stack vertically instead of 3-column grid */
  section.hero div[style*="grid-template-columns:1fr 1fr 1fr"],
  section.hero div[style*="grid-template-columns: 1fr 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 2px !important;
  }
  section.hero div[style*="grid-template-columns:1fr 1fr 1fr"] img,
  section.hero div[style*="grid-template-columns: 1fr 1fr 1fr"] img {
    aspect-ratio: 16/10 !important;
    width: 100% !important;
  }

  /* 2. STORY STATS â clean 2Ã2 grid, centered, no bleed */
  /* Contain any story-section pseudo-element bleed (m4-hero blur, m4-card glow) */
  #story, section#story {
    overflow: hidden !important;
  }
  /* The stats grid container */
  #about-stats,
  #story #about-stats {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px var(--space-1) !important;
    max-width: 100% !important;
    width: calc(100% - 32px) !important;
    margin: var(--space-4) auto 0 !important;
    padding: 20px 12px !important;
    box-sizing: border-box !important;
    align-items: stretch !important;
    justify-items: stretch !important;
  }
  /* Hide vertical divider 1px lines completely */
  #about-stats > div[style*="width:1px"],
  #story div[style*="background:var(--ink-200)"][style*="width:1px"] {
    display: none !important;
  }
  /* Each stat cell: reset padding, center content */
  #about-stats > div[style*="padding:var(--space-2) 14px"],
  #about-stats > div[style*="text-align:center"] {
    padding: var(--space-1) 4px !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
  }
  /* Stat number/icon inside â center it */
  #about-stats > div > div:first-child {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto 6px !important;
  }
  /* Stat label */
  #about-stats > div > div:last-child {
    text-align: center !important;
    margin: 0 auto !important;
    max-width: 140px !important;
  }

  /* 3. VALUES CARDS â icon on top, content below */
  #values .vc4-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: var(--space-2) !important;
    padding: var(--space-3) 20px !important;
  }
  #values .vc4-icon {
    margin: 0 auto !important;
    flex-shrink: 0 !important;
  }
  #values .vc4-icon img {
    width: 56px !important;
    height: 56px !important;
    object-fit: contain !important;
  }
  #values .vc4-card > div:not(.vc4-icon) {
    text-align: center !important;
    width: 100% !important;
  }
  #values .vc4-card h3 {
    text-align: center !important;
  }
  #values .vc4-card p {
    text-align: center !important;
  }

  /* 4. LEADERSHIP MOBILE â vertical grid (2 cols), no horizontal scroll */
  #leadership .lead-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px 12px !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    scroll-snap-type: none !important;
    padding: var(--space-1) 0 !important;
  }
  #leadership .lead-card {
    flex: unset !important;
    scroll-snap-align: unset !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  #leadership .lead-photo,
  #leadership .lead-cta-photo {
    width: 130px !important;
    height: 160px !important;
    border-radius: 65px !important;
  }
  #leadership .lead-cta-card .lead-cta-photo {
    width: 130px !important;
    height: 160px !important;
    border-radius: 65px !important;
  }
  #leadership .lead-cta-card .cta-icon-ring,
  #leadership .lead-cta-card > div > div:first-child {
    width: 48px !important;
    height: 48px !important;
  }
  #leadership .lead-name {
    font-size: var(--ps-text-h3) !important;
    line-height: 1.2 !important;
    margin-top: 12px !important;
  }
  #leadership .lead-role {
    font-size: var(--fs-meta) !important;
    line-height: 1.35 !important;
    margin-top: 4px !important;
  }
  /* Hide the horizontal-scroll arrows on mobile */
  #leadership .lead-nav,
  #leadership .lead-arrow,
  #leadership .lead-scroll-btn {
    display: none !important;
  }


  /* DS 18px body: story stat labels (16px inline) bumped on mobile */
  #story div[style*="font-size:var(--fs-body)"],
  section#story div[style*="font-size:var(--fs-body)"] {
    font-size: var(--fs-title-m) !important;
    line-height: 1.4 !important;
  }

  /* 6. HOW WE WORK â .hww-meta bigger + proper line-height */
  #how-we-work .hww-meta,
  section#how-we-work .hww-meta {
    font-size: var(--fs-meta) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.1em !important;
    display: block !important;
    margin-top: 10px !important;
    padding-top: var(--space-1) !important;
  }
  #how-we-work .hww-meta::before,
  section#how-we-work .hww-meta::before {
    display: none !important;
  }
  /* 6b. HOW WE WORK â stack number ON TOP, text BELOW on mobile */
  #how-we-work .hww-item,
  section#how-we-work .hww-item {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: var(--space-3) 0 !important;
  }
  #how-we-work .hww-item-num,
  section#how-we-work .hww-item-num {
    font-size: var(--ps-text-h1) !important;
    line-height: 1 !important;
    text-align: left !important;
    margin: 0 !important;
  }

  /* 7. TC-ITEM CARDS â equal 2-col widths + larger fonts on mobile */
  #capabilities .tc-grid,
  .tc-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }
  .tc-item {
    padding: var(--space-2) 14px !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
    width: 100% !important;
  }
  .tc-item-title {
    font-size: var(--ps-text-h3) !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    margin-bottom: 6px !important;
  }
  .tc-item-desc {
    font-size: var(--fs-title-m) !important;
    line-height: 1.45 !important;
  }

  /* 8. LEADERSHIP â hide right-side blur/fade mask; resize CTA card oval */
  #leadership .lead-grid-wrap::after,
  #leadership .lead-grid::after,
  #leadership .lead-grid::before {
    display: none !important;
    background: none !important;
    content: none !important;
  }
  /* CTA oval (inline-styled div â target as first div child of the CTA card) */
  #leadership .lead-cta-card > div:first-of-type {
    width: 130px !important;
    height: 160px !important;
    border-radius: 65px !important;
    padding: var(--space-1) !important;
    box-sizing: border-box !important;
  }
  #leadership .lead-cta-card > div:first-of-type > div:first-child {
    width: 44px !important;
    height: 44px !important;
    margin-bottom: 6px !important;
  }
  #leadership .lead-cta-card > div:first-of-type > div:first-child svg {
    width: 20px !important;
    height: 20px !important;
  }
  #leadership .lead-cta-card > div:first-of-type > div:last-child {
    font-size: var(--fs-eyebrow) !important;
    letter-spacing: 0.08em !important;
  }
  #leadership .lead-cta-card > div:last-of-type h3 {
    font-size: var(--fs-title-m) !important;
    line-height: 1.2 !important;
    margin: 12px 0 4px 0 !important;
  }
  #leadership .lead-cta-card > div:last-of-type > div {
    font-size: var(--fs-meta) !important;
    line-height: 1.35 !important;
  }
}


/* HERO TOP SPACING — unified with contact-us/blogs/case-studies/about-us
   via the shared --ps-hero-py token (medium/large only; mobile <768px
   unchanged). This page's intro block is a plain `.section`, reused by
   every other section further down the page, so the override is scoped to
   only the first child of <main> (ID selector, so it wins outright without
   touching any other `.section` on the page). See contact-us.css for full
   rationale. */
@media (min-width: 768px) {
  #main > .section:first-child { padding-top: var(--ps-hero-py) !important; }
}
