@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=DM+Serif+Display&family=Geist:wght@600&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  /* New brand palette — deeper navy, cooler sky blue */
  --navy:#0A1628;
  --navy2:#0F1F33;
  --blue:#5FA8E8;
  --blue-dim:rgba(95,168,232,0.12);
  --blue-border:rgba(95,168,232,0.3);
  --mist:#F4F6FA;
  --white:#ffffff;
  --gray50:#f9fafb;
  --gray100:#f3f4f6;
  --gray200:#e5e7eb;
  --gray400:#9ca3af;
  --gray600:#6b7280;
  --gray900:#111827;
  --text:#1f2937;
  --r-sm:6px;--r-md:10px;--r-lg:14px;
}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;color:var(--text);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased;}

/* NEW WORDMARK — `soa.` */
.brand-wordmark{font-family:'Geist','DM Sans',sans-serif;font-weight:600;letter-spacing:-0.07em;line-height:1;color:#fff;display:inline-block;}
.brand-wordmark .brand-dot{color:var(--blue);}
.brand-wordmark.brand-on-light{color:var(--navy);}

/* NAV */
.nav{position:sticky;top:0;z-index:100;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.06);}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:68px;}
.nav-logo{display:flex;align-items:center;text-decoration:none;}
.nav-logo .brand-wordmark{font-size:28px;}
/* Legacy logo-mark / logo-text-top kept hidden — replaced by wordmark */
.logo-mark{display:none;}
.logo-text-top,.logo-text-bot{display:none;}
.nav-links{display:flex;align-items:center;gap:28px;}
.nav-links a{color:rgba(255,255,255,.65);font-size:14px;text-decoration:none;transition:color .18s;}
.nav-links a:hover{color:#fff;}

/* Nav dropdown — AI services for firms */
.nav-dropdown{position:relative;}
.nav-dd-trigger{background:none;border:none;color:rgba(255,255,255,.65);font-size:14px;font-family:'DM Sans',sans-serif;cursor:pointer;padding:0;display:flex;align-items:center;transition:color .18s;}
.nav-dd-trigger:hover,.nav-dropdown:hover .nav-dd-trigger{color:#fff;}
.nav-dd-trigger svg{transition:transform .25s;}
.nav-dropdown:hover .nav-dd-trigger svg{transform:rotate(180deg);}
.nav-dd-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:8px;min-width:340px;box-shadow:0 20px 50px rgba(10,22,40,0.18),0 4px 12px rgba(10,22,40,0.08);opacity:0;visibility:hidden;transition:opacity .2s,transform .25s cubic-bezier(.2,.7,.2,1),visibility .2s;z-index:100;}
.nav-dd-menu::before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#fff;border-left:1px solid #e2e8f0;border-top:1px solid #e2e8f0;}
.nav-dropdown:hover .nav-dd-menu,.nav-dropdown:focus-within .nav-dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(6px);}
.nav-dd-menu::after{content:'';position:absolute;top:-14px;left:0;right:0;height:14px;}
.nav-dd-item{display:flex !important;align-items:flex-start;gap:12px;padding:12px 14px !important;border-radius:10px;text-decoration:none;color:inherit !important;transition:background .18s;border-bottom:none !important;}
.nav-dd-item:hover{background:#f0f7ff;}
.nav-dd-icon{width:36px;height:36px;background:linear-gradient(135deg,rgba(95,168,232,0.14),rgba(95,168,232,0.04));border-radius:9px;display:flex;align-items:center;justify-content:center;color:#5FA8E8;flex-shrink:0;transition:background .18s;}
.nav-dd-item:hover .nav-dd-icon{background:linear-gradient(135deg,rgba(95,168,232,0.25),rgba(95,168,232,0.1));}
.nav-dd-title{color:#0A1628;font-size:14px;font-weight:700;margin-bottom:2px;letter-spacing:-.1px;}
.nav-dd-sub{color:#64748b;font-size:12px;line-height:1.4;}

/* Mobile section labels */
.mobile-section-label{color:rgba(95,168,232,0.9) !important;font-size:11px !important;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:14px 0 4px !important;border-bottom:none !important;}
.mobile-sub{padding-left:14px !important;color:rgba(255,255,255,.6) !important;}

.nav-cta{background:var(--blue);color:#fff;font-size:13px;font-weight:600;padding:10px 22px;border-radius:var(--r-sm);text-decoration:none;transition:opacity .18s;}
.nav-cta:hover{opacity:.88;}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;}
.nav-hamburger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;}
.mobile-menu{display:none;flex-direction:column;background:var(--navy);border-top:1px solid rgba(255,255,255,.08);padding:16px 32px 20px;}
.mobile-menu.open{display:flex;}
.mobile-menu a{color:rgba(255,255,255,.7);font-size:15px;text-decoration:none;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);}
.mobile-menu a:last-child{border-bottom:none;}

/* SECTION BASE */
.section{padding:88px 32px;}
.section-inner{max-width:1200px;margin:0 auto;}
.section-label{color:var(--blue);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;}
.section-title{color:var(--navy);font-family:'DM Serif Display',serif;font-size:38px;font-weight:400;margin-bottom:12px;line-height:1.2;letter-spacing:-.3px;}
.section-sub{color:var(--gray600);font-size:16px;max-width:560px;line-height:1.7;}

/* BUTTONS */
.btn-primary{background:var(--blue);color:#fff;font-size:15px;font-weight:600;padding:14px 28px;border-radius:var(--r-sm);text-decoration:none;display:inline-block;transition:opacity .18s;font-family:'DM Sans',sans-serif;border:none;cursor:pointer;}
.btn-primary:hover{opacity:.88;}
.btn-ghost{border:1px solid rgba(255,255,255,.3);color:rgba(255,255,255,.9);font-size:15px;padding:14px 28px;border-radius:var(--r-sm);text-decoration:none;display:inline-block;transition:border-color .18s;}
.btn-ghost:hover{border-color:rgba(255,255,255,.7);}
.btn-outline-dark{border:1px solid var(--navy);color:var(--navy);font-size:14px;font-weight:500;padding:12px 24px;border-radius:var(--r-sm);text-decoration:none;display:inline-block;transition:all .18s;background:transparent;}
.btn-outline-dark:hover{background:var(--navy);color:#fff;}

/* PAGE HERO */
.page-hero{background:var(--navy);padding:72px 32px 64px;}
.page-hero-inner{max-width:1200px;margin:0 auto;}
.page-hero-label{color:var(--blue);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;}
.page-hero h1{font-family:'DM Serif Display',serif;color:#fff;font-size:48px;font-weight:400;line-height:1.18;margin-bottom:18px;letter-spacing:-.5px;}
.page-hero p{color:rgba(255,255,255,.6);font-size:17px;line-height:1.7;max-width:560px;margin-bottom:32px;}

/* TICKER */
.ticker-outer{background:var(--navy);border-top:1px solid rgba(95,168,232,0.12);border-bottom:1px solid rgba(95,168,232,0.12);overflow:hidden;height:96px;display:flex;align-items:center;position:relative;}
.ticker-outer::before,.ticker-outer::after{content:'';position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;}
.ticker-outer::before{left:0;background:linear-gradient(90deg,var(--navy),transparent);}
.ticker-outer::after{right:0;background:linear-gradient(270deg,var(--navy),transparent);}
.ticker-belt{display:flex;align-items:center;animation:beltRoll 42s linear infinite;width:max-content;}
.ticker-belt:hover{animation-play-state:paused;}
.ticker-logo{display:flex;align-items:center;justify-content:center;padding:0 44px;white-space:nowrap;}
.ticker-logo img{height:34px;width:auto;display:block;opacity:.78;transition:opacity .25s;}
.ticker-logo img:hover{opacity:1;}
@keyframes beltRoll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* FOOTER */
.footer{background:#071525;padding:60px 32px 0;border-top:1px solid rgba(95,168,232,0.15);}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;padding-bottom:52px;border-bottom:1px solid rgba(255,255,255,.15);}
.footer-logo{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.footer-col-title{color:#5FA8E8;font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:18px;font-weight:700;}
.footer-col a{display:block;color:rgba(255,255,255,.75);font-size:14px;text-decoration:none;margin-bottom:12px;transition:color .18s;}
.footer-col a:hover{color:#fff;}
.footer-bottom{max-width:1200px;margin:0 auto;padding:22px 0;display:flex;justify-content:space-between;align-items:center;color:rgba(255,255,255,.5);font-size:12px;flex-wrap:wrap;gap:10px;}
.footer-bottom a{color:rgba(255,255,255,.5);text-decoration:none;transition:color .18s;}
.footer-bottom a:hover{color:#fff;}

/* FADE UP */
.fade-up{opacity:0;transform:translateY(22px);transition:opacity .55s ease,transform .55s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* RESPONSIVE */
@media(max-width:1024px){.footer-inner{grid-template-columns:1fr 1fr;}}
@media(max-width:768px){
  .nav-links,.nav-cta{display:none;}
  .nav-hamburger{display:flex;}
  .section{padding:56px 20px;}
  .page-hero{padding:52px 20px 44px;}
  .page-hero h1{font-size:34px;}
  .section-title{font-size:28px;}
  .footer-inner{grid-template-columns:1fr 1fr;gap:28px;}
}
@media(max-width:520px){.footer-inner{grid-template-columns:1fr;}}

/* ============================================================
   MOBILE RESPONSIVE PASS — added for full site mobile support
   Forces multi-column layouts to stack and scales type on phones.
   Uses attribute selectors + !important to override inline grids.
   ============================================================ */
@media (max-width: 820px){
  /* Stop any horizontal overflow site-wide */
  html, body { overflow-x: hidden !important; max-width: 100% !important; }
  * { max-width: 100%; }

  /* Collapse ANY inline multi-column grid to a single column */
  [style*="grid-template-columns"]{
    grid-template-columns: 1fr !important;
  }
  /* Collapse the shared grid classes */
  .hero-inner, .role-grid, .tools-grid, .vet-steps, .profiles-grid,
  .svc-dyn-grid, .who-grid, .footer-inner, .cs-stats, .cs-results{
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  /* Hero: center, scale the big serif headline down */
  .hero-inner{ gap: 28px !important; }
  .hero h1{ font-size: 32px !important; line-height: 1.15 !important; }
  .hero-sub{ font-size: 15px !important; }
  .hero-stats{ gap: 20px !important; }

  /* The AI matching tool — its two panels must stack, not sit side by side */
  .aim-hero, .aim-split, .aim-panels{
    display: block !important;
  }
  .aim-cand, .aim-panel, .aim-results, .aim-default{
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Buttons / CTAs full width and stacked */
  .hero-btns{ flex-direction: column !important; gap: 12px !important; }
  .hero-btns a, .btn-primary, .btn-ghost{ width: 100% !important; text-align: center !important; box-sizing: border-box !important; }
  .cta-form{ flex-direction: column !important; gap: 12px !important; }
  .cta-form input, .cta-form button{ width: 100% !important; box-sizing: border-box !important; }

  /* Cards: ensure text doesn't get clipped, allow wrapping */
  .who-card, .svc-dyn-card, .role-card, .cs-card{
    width: 100% !important; box-sizing: border-box !important;
  }

  /* Scale down oversized display headings generally */
  h1{ font-size: 32px !important; line-height: 1.15 !important; }
  h2{ font-size: 26px !important; line-height: 1.2 !important; }

  /* Tame any element with a fixed wide pixel width */
  [style*="width:420px"], [style*="width:480px"], [style*="width:520px"],
  [style*="min-width:420px"], [style*="min-width:480px"]{
    width: 100% !important; min-width: 0 !important;
  }

  /* Section padding tighten so content uses the screen width */
  .section, .section-inner{ padding-left: 18px !important; padding-right: 18px !important; }
}

/* Extra-small phones */
@media (max-width: 420px){
  .hero h1, h1{ font-size: 28px !important; }
  .brand-wordmark{ font-size: 26px; }
}
