
/* ===== DESIGN TOKENS - Network Firm Inspired ===== */
:root {
  --navy: #070a49;
  --navy-dark: #050737;
  --navy-mid: #1c52a9;
  --white: #ffffff;
  --soft-white: #edf3ff;
  --black: #000000;
  --text-dark: #070a49;
  --text-body: #2d3748;
  --text-muted: #4a5568;
  --accent: #1c52a9;
  --accent-light: #3b6fd4;
  --border: rgba(7,10,73,0.12);
  --bg-white: #ffffff;
  --bg-light: #f8f9fc;
  --shadow-sm: 0 2px 8px rgba(7,10,73,0.08);
  --shadow-md: 0 4px 20px rgba(7,10,73,0.12);
  --shadow-lg: 0 8px 40px rgba(7,10,73,0.16);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --transition: 0.25s cubic-bezier(0.4,0,0.2,1);
  --font: 'Inter', 'Proxima Nova', -apple-system, sans-serif;
}

/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font);color:var(--text-dark);background:var(--bg-white);overflow-x:hidden;-webkit-font-smoothing:antialiased}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:#f0f2f8}
::-webkit-scrollbar-thumb{background:var(--navy-mid);border-radius:4px}

/* ===== TYPOGRAPHY SYSTEM ===== */
h1{font-size:clamp(2.4rem,5vw,4rem);font-weight:800;line-height:1.1;letter-spacing:-0.02em;color:var(--text-dark)}
h2{font-size:clamp(1.9rem,3.5vw,3rem);font-weight:800;line-height:1.15;letter-spacing:-0.02em;color:var(--text-dark)}
h3{font-size:clamp(1.3rem,2.5vw,1.75rem);font-weight:700;line-height:1.25;color:var(--text-dark)}
h4{font-size:clamp(1.05rem,2vw,1.3rem);font-weight:700;color:var(--text-dark)}
p{font-size:1.0625rem;line-height:1.75;color:var(--text-body);font-weight:500}

/* Eyebrow labels - sitewide consistent */
.eyebrow{
  display:inline-block;
  font-size:0.875rem;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:0.75rem;
  position:relative;
  padding-bottom:0.6rem;
}
.eyebrow::after{
  content:'';position:absolute;bottom:0;left:0;
  width:32px;height:2.5px;background:var(--accent);
}
.eyebrow-center::after{left:50%;transform:translateX(-50%)}

/* ===== NAVBAR ===== */
.navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:var(--white);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 3rem;height:90px;
  border-bottom:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  transition:box-shadow var(--transition);
}
.navbar.scrolled{box-shadow:var(--shadow-md)}
.nav-logo{display:flex;align-items:center;text-decoration:none;cursor:pointer}
.nav-logo img{height:70px;width:auto;max-width:180px;display:block;object-fit:contain}
.nav-links{display:flex;align-items:center;gap:0.25rem;list-style:none;position:absolute;right:3rem;top:9px}
.nav-links a{
  color:var(--text-dark);text-decoration:none;
  font-size:0.9375rem;font-weight:600;
  letter-spacing:0.01em;
  padding:0.5rem 0.9rem;border-radius:6px;
  transition:all var(--transition);white-space:nowrap;
}
.nav-links a:hover{color:var(--accent);background:rgba(28,82,169,0.07)}
.nav-links a.active{color:var(--accent)}
.utility-nav{display:flex;align-items:center;gap:.2rem;list-style:none;position:absolute;right:3rem;bottom:8px}
.utility-nav a{display:block;color:var(--text-dark);text-decoration:none;font-size:.9375rem;font-weight:600;letter-spacing:.01em;padding:.5rem .9rem;border-radius:6px;transition:all var(--transition);white-space:nowrap}
.utility-nav a:hover{color:var(--accent);background:rgba(28,82,169,.07)}
.utility-nav a.active{color:var(--accent)}
.nav-cta-btn{
  background:var(--navy)!important;color:var(--white)!important;
  padding:0.6rem 1.4rem!important;border-radius:6px!important;
  font-weight:700!important;font-size:0.875rem!important;
  letter-spacing:0.04em!important;text-transform:uppercase!important;
  transition:all var(--transition)!important;
}
.nav-cta-btn:hover{background:var(--navy-mid)!important;transform:translateY(-1px);box-shadow:0 4px 15px rgba(7,10,73,0.3)!important}

/* Hamburger */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;background:none;border:none}
.hamburger span{width:24px;height:2px;background:var(--navy);border-radius:2px;transition:var(--transition);display:block}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mobile-menu{
  display:none;position:fixed;top:90px;left:0;right:0;bottom:0;
  background:var(--white);
  flex-direction:column;align-items:center;
  gap:0.5rem;z-index:999;padding:2rem;
  border-top:1px solid var(--border);
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  justify-content:flex-start;
}
.mobile-menu.open{display:flex}
.mobile-menu a{
  color:var(--text-dark);text-decoration:none;font-size:1.125rem;font-weight:600;
  padding:0.85rem 2rem;border-radius:8px;width:100%;text-align:center;
  transition:var(--transition);
}
.mobile-menu a:hover,.mobile-menu a.active{background:var(--navy);color:var(--white)}

/* ===== PAGE SECTIONS ===== */
.page-section{display:none}
.page-section.active{display:block}

/* ===== HERO SECTION ===== */
.hero-section{
  position:relative;isolation:isolate;
  display:flex;align-items:center;justify-content:flex-start;
  width:100%;
  height:100vh;height:100svh;min-height:520px;
  padding:calc(90px + clamp(28px,6vh,64px)) clamp(24px,3vw,52px) clamp(28px,6vh,64px);
  overflow:hidden;
  background:var(--navy);
}
.hero-bg-text{
  position:absolute;inset:0;z-index:0;
  display:grid;place-items:center;
  overflow:hidden;pointer-events:none;user-select:none;
}
.hero-bg-text span{
  color:var(--white);
  font-size:clamp(8rem,20vw,18rem);
  font-weight:900;line-height:0.85;letter-spacing:-0.06em;
  white-space:nowrap;
  opacity:0;
  transform:translateX(10%) scale(0.985);
  animation:watermarkReveal 950ms 80ms cubic-bezier(0.2,0.8,0.2,1) forwards;
}
@keyframes watermarkReveal{
  from{opacity:0;transform:translateX(10%) scale(0.985)}
  to{opacity:0.04;transform:translateX(0) scale(1)}
}
.hero-content{position:relative;z-index:1;width:min(100%,980px)}
.hero-title{
  max-width:980px;
  margin:0 0 clamp(20px,3vh,28px);
  color:var(--white);
  font-size:clamp(2.65rem,min(5.25vw,8.8vh),5rem);
  font-weight:800;line-height:1.32;letter-spacing:-0.015em;
}
.hero-title-line,.hero-highlight{display:block}
.hero-title .word{
  display:inline-block;margin-right:0.32em;
  opacity:0;transform:translateY(34px);
  animation:wordReveal 560ms ease forwards;
  animation-delay:var(--delay);
}
.hero-title-line .word:last-child{margin-right:0}
@keyframes wordReveal{to{opacity:1;transform:translateY(0)}}
/* This line appears once and stays fully visible; no blinking animation. */
.hero-highlight{
  margin-top:0.3em;
  color:var(--soft-white);
  font-size:1em;font-style:normal;font-weight:800;line-height:1.32;letter-spacing:-0.015em;
  opacity:0;transform:translateY(24px);
  animation:highlightReveal 650ms 2.18s ease forwards;
}
@keyframes highlightReveal{to{opacity:1;transform:translateY(0)}}
.hero-sub{
  max-width:720px;
  margin:0 0 clamp(24px,4vh,40px);
  color:rgba(255,255,255,0.76);
  font-size:clamp(1rem,1.25vw,1.25rem);
  font-weight:500;line-height:1.65;
  opacity:0;transform:translateY(20px);
  animation:contentReveal 720ms 2.72s ease forwards;
}
@keyframes contentReveal{to{opacity:1;transform:translateY(0)}}
.hero-cta-row{
  display:flex;flex-wrap:wrap;gap:16px;
  opacity:0;transform:translateY(20px);
  animation:contentReveal 720ms 3.02s ease forwards;
}
.btn-hero-primary,.btn-hero-secondary{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:54px;
  padding:0.9rem 2.2rem;border-radius:6px;
  font-family:var(--font);font-size:1rem;font-weight:700;line-height:1;
  letter-spacing:0.01em;text-decoration:none;cursor:pointer;
  transition:transform var(--transition),background-color var(--transition),border-color var(--transition),box-shadow var(--transition);
}
.btn-hero-primary{border:2px solid var(--white);background:var(--white);color:var(--navy)}
.btn-hero-primary:hover,.btn-hero-primary:focus-visible{background:#f8f9fc;transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,0.25)}
.btn-hero-secondary{border:2px solid rgba(255,255,255,0.42);background:transparent;color:var(--white)}
.btn-hero-secondary:hover,.btn-hero-secondary:focus-visible{border-color:rgba(255,255,255,0.85);background:rgba(255,255,255,0.1);transform:translateY(-2px)}
.btn-hero-primary:focus-visible,.btn-hero-secondary:focus-visible{outline:3px solid rgba(255,255,255,0.45);outline-offset:4px}

/* Compact desktop: keeps the complete hero inside shorter desktop screens
   (short laptop viewports) without needing to scroll. */
@media(min-width:1161px) and (max-height:720px){
  .hero-section{min-height:460px;padding-top:calc(90px + 24px);padding-bottom:24px}
  .hero-title{margin-bottom:18px;font-size:clamp(2.5rem,min(4.6vw,7.4vh),4rem)}
  .hero-sub{margin-bottom:24px;font-size:1.05rem;line-height:1.5}
  .btn-hero-primary,.btn-hero-secondary{min-height:50px;padding:0.8rem 1.9rem}
}

/* Inline pill-style CTA links inside paragraphs: keep them from sitting flush
   against the preceding word at every breakpoint. */
.cta-inline-link{margin:.3em .05em;vertical-align:middle}

/* ===== HOME PAGE ===== */
.home-section{padding:6rem 3rem}
.home-section-alt{background:var(--bg-light)}
.home-inner{max-width:1140px;margin:0 auto}
.home-section-head{max-width:760px;margin-bottom:2.75rem}
.home-section-head h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:1rem}
.home-section-head p{font-size:1.08rem;line-height:1.8;color:var(--text-body)}
.home-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.home-card-grid.two{grid-template-columns:repeat(2,1fr)}
.home-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:2rem;box-shadow:var(--shadow-sm);transition:var(--transition);display:flex;flex-direction:column;align-items:flex-start}
.home-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(28,82,169,.35)}
.home-card-num{font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--navy-mid);margin-bottom:1rem}
.home-card h3{font-size:1.35rem;margin-bottom:.75rem}
.home-card p{color:var(--text-body);line-height:1.75;margin-bottom:1.35rem;flex:1}
.home-card-link{color:var(--navy-mid);font-weight:800;text-decoration:none}
.home-card-link:hover{text-decoration:underline}
.home-dark-feature{background:var(--navy);border-radius:var(--radius-lg);padding:3rem;color:var(--white);display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center}
.home-dark-feature h2,.home-dark-feature h3{color:var(--white)}
.home-dark-feature p{color:rgba(255,255,255,.78);font-size:1.05rem;line-height:1.8;margin:1rem 0 1.5rem}
.home-dark-points{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.home-dark-point{padding:1rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:8px;color:rgba(255,255,255,.9);font-weight:700}
.home-case-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.home-case{border-left:4px solid var(--navy-mid)}
.home-pricing-strip{background:linear-gradient(135deg,#eef3fb,#fff);border:1px solid var(--border);border-radius:var(--radius-lg);padding:3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.home-pricing-strip h2{margin-bottom:.65rem}
.home-pricing-strip p{color:var(--text-body);line-height:1.75;max-width:720px}
.home-pill-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}
.home-pill{padding:.45rem .85rem;border-radius:100px;background:rgba(28,82,169,.08);color:var(--navy);font-size:.88rem;font-weight:700}
.prefooter-cta{background:linear-gradient(135deg,var(--navy) 0%,#1a2a8a 50%,#0d3a6e 100%);padding:7rem 3rem;text-align:center;color:var(--white);position:relative;overflow:hidden}
.prefooter-cta::before{content:'';position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(28,82,169,.18);filter:blur(70px);top:-230px;left:50%;transform:translateX(-50%)}
.prefooter-cta::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:50px 50px;
}
.prefooter-cta-inner{max-width:800px;margin:0 auto;position:relative;z-index:2}
.prefooter-cta h2{color:var(--white);font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:1.25rem}
.prefooter-cta p{color:rgba(255,255,255,.78);font-size:1.12rem;line-height:1.75;max-width:650px;margin:0 auto 2rem}
.prefooter-btn{display:inline-flex;padding:.95rem 2rem;border:1.5px solid rgba(255,255,255,.55);border-radius:6px;color:var(--white);font-weight:800;text-decoration:none;transition:var(--transition)}
.prefooter-btn:hover{background:var(--white);color:var(--navy);transform:translateY(-2px)}

/* ===== SECTIONS ===== */
.section{padding:6rem 3rem}
.section-inner{max-width:1140px;margin:0 auto}
.section-alt{background:var(--bg-light)}
.section-white{background:var(--white)}
.section-navy{background:var(--navy)}
.section-header{margin-bottom:3.5rem}
.section-header-center{text-align:center}
.section-header-center .eyebrow::after{left:50%;transform:translateX(-50%)}
.section-subtitle{color:var(--text-muted);max-width:620px;margin:1rem auto 0;font-size:1.0625rem;line-height:1.75}

/* ===== PAGE HERO (inner pages) ===== */
.page-hero{
  padding:8rem 3rem 5rem;
  background:linear-gradient(135deg,var(--navy) 0%,#1a2a8a 50%,#0d3a6e 100%);
  position:relative;overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:50px 50px;
}
.page-hero .eyebrow{color:rgba(255,255,255,0.8)}
.page-hero .eyebrow::after{background:rgba(255,255,255,0.6)}
.page-hero h1{color:var(--white);position:relative;font-size:clamp(2.4rem,5vw,3.8rem)}
.page-hero p{color:rgba(255,255,255,0.75);max-width:660px;margin:1.25rem 0 0;font-size:1.125rem;line-height:1.75;position:relative}

/* ===== SERVICES GRID ===== */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.service-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);padding:2.25rem;
  box-shadow:var(--shadow-sm);transition:all var(--transition);
  cursor:pointer;position:relative;overflow:hidden;
}
.service-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--navy-mid);transform:scaleX(0);transform-origin:left;
  transition:transform var(--transition);
}
.service-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-5px)}
.service-card:hover::before{transform:scaleX(1)}
.service-card h3{color:var(--text-dark);margin-bottom:0.85rem;font-size:1.3rem}
.service-card p{color:var(--text-muted);font-size:0.9625rem;line-height:1.7}
.card-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:0.9rem;font-weight:700;margin-top:1.25rem;text-decoration:none;transition:gap var(--transition)}
.card-link:hover{gap:10px}

/* ===== WHY GRID ===== */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.why-points{display:flex;flex-direction:column;gap:1.25rem}
.why-point{
  display:flex;gap:1.1rem;align-items:flex-start;
  padding:1.35rem;border-radius:var(--radius-md);
  background:var(--white);border:1px solid var(--border);
  box-shadow:var(--shadow-sm);transition:all var(--transition);
}
.why-point:hover{transform:translateX(6px);box-shadow:var(--shadow-md)}
.why-point-icon{
  width:42px;height:42px;border-radius:10px;
  background:var(--navy);
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;flex-shrink:0;color:var(--white);font-weight:700;
}
.why-point-text h4{color:var(--text-dark);margin-bottom:0.3rem;font-size:1.05rem}
.why-point-text p{font-size:0.9rem;color:var(--text-muted);line-height:1.65}
.why-visual{
  background:var(--navy);border-radius:var(--radius-lg);
  padding:2.75rem;color:var(--white);
  position:relative;overflow:hidden;
}
.why-visual::before{
  content:'';position:absolute;top:-60px;right:-60px;
  width:220px;height:220px;border-radius:50%;
  background:rgba(28,82,169,0.3);filter:blur(50px);
}
.why-visual h3{color:var(--white);margin-bottom:1.1rem;font-size:1.5rem}
.why-visual p{color:rgba(255,255,255,0.78);line-height:1.75;margin-bottom:1.5rem}
.why-tags{display:flex;flex-wrap:wrap;gap:0.5rem}
.why-tag{
  background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.88);
  border:1px solid rgba(255,255,255,0.18);
  padding:0.3rem 0.85rem;border-radius:100px;font-size:0.8rem;font-weight:600;
}

/* ===== EXPERTISE GRID ===== */
.expertise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.exp-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);padding:1.75rem;
  box-shadow:var(--shadow-sm);transition:all var(--transition);
  position:relative;overflow:hidden;
}
.exp-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:var(--navy-mid);transform:scaleX(0);transform-origin:left;
  transition:transform var(--transition);
}
.exp-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.exp-card:hover::after{transform:scaleX(1)}
.exp-card h4{color:var(--text-dark);font-size:1.1rem;margin-bottom:0.6rem;font-weight:700}
.exp-card p{font-size:0.9375rem;color:var(--text-muted);line-height:1.7}

/* ===== CASE STUDY CARDS (home page) ===== */
.cs-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.cs-card{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--transition);cursor:pointer}
.cs-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.cs-card-header{
  background:var(--navy);padding:2.25rem;position:relative;overflow:hidden;
}
.cs-card-header::before{
  content:'';position:absolute;top:-30px;right:-30px;
  width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,0.05);
}
.cs-card-header h3{color:var(--white);font-size:1.25rem;margin-bottom:0.5rem}
.cs-card-header p{color:rgba(255,255,255,0.72);font-size:0.9rem}
.cs-num{
  position:absolute;top:1.5rem;right:1.75rem;
  font-size:3.5rem;font-weight:900;color:rgba(255,255,255,0.18);line-height:1;
}
.cs-card-body{background:var(--white);border:1px solid var(--border);border-top:none;padding:1.75rem}
.cs-card-body p{font-size:0.9375rem;color:var(--text-muted);line-height:1.7}
.cs-highlights{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:1.25rem}
.cs-tag{
  background:rgba(7,10,73,0.08);color:var(--navy);
  padding:0.3rem 0.8rem;border-radius:100px;
  font-size:0.78rem;font-weight:700;
}

/* ===== CTA SECTION ===== */
.cta-section{
  background:var(--navy);padding:6rem 3rem;text-align:center;
  position:relative;overflow:hidden;
}
.cta-section::before{
  content:'';position:absolute;top:-50%;left:-10%;
  width:500px;height:500px;border-radius:50%;
  background:rgba(28,82,169,0.2);filter:blur(80px);
}
.cta-section h2{color:var(--white);margin-bottom:1.1rem}
.cta-section p{color:rgba(255,255,255,0.78);max-width:560px;margin:0 auto 2.25rem;font-size:1.0625rem;line-height:1.8}

/* ===== BUTTONS ===== */
.btn-primary{
  background:var(--navy);color:var(--white);border:none;
  padding:0.875rem 2rem;border-radius:6px;font-size:0.9375rem;font-weight:700;
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;
  transition:all var(--transition);font-family:var(--font);letter-spacing:0.01em;
}
.btn-primary:hover{background:var(--navy-mid);transform:translateY(-2px);box-shadow:0 8px 25px rgba(7,10,73,0.3)}
.btn-secondary{
  background:transparent;color:var(--white);
  border:2px solid rgba(255,255,255,0.45);
  padding:0.875rem 2rem;border-radius:6px;font-size:0.9375rem;font-weight:600;
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;
  transition:all var(--transition);font-family:var(--font);
}
.btn-secondary:hover{border-color:rgba(255,255,255,0.85);background:rgba(255,255,255,0.1);transform:translateY(-2px)}

/* ===== TEAM SECTION ===== */
.team-section{padding:6rem 3rem;background:var(--bg-light)}
.team-section-header{text-align:center;margin-bottom:3.5rem}
.team-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;max-width:1140px;margin:0 auto}
.team-card{
  background:var(--white);border-radius:var(--radius-md);
  border:1px solid var(--border);box-shadow:var(--shadow-sm);
  overflow:hidden;transition:all var(--transition);
  text-align:center;
}
.team-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.team-photo-wrap{
  width:100%;aspect-ratio:1/1;overflow:hidden;
  position:relative;background:#e8eaf0;border-radius:50%;
  margin:1.5rem auto 1rem;width:136px;height:136px;
  border:3px solid #fff;
  box-shadow:0 6px 18px rgba(16,32,56,0.16);
}
.team-photo-wrap img{
  width:100%;height:100%;object-fit:cover;object-position:center top;
  display:block;
  backface-visibility:hidden;
}
.team-card:hover .team-photo-wrap img{transform:none}
.team-info{padding:0 1rem 1.5rem}
.team-name{font-size:1.0625rem;font-weight:700;color:var(--text-dark);margin-bottom:0.25rem}
.team-role{font-size:0.8rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:0.85rem}
.team-learn-btn{
  display:inline-block;padding:0.4rem 1.1rem;
  border:1.5px solid var(--navy);color:var(--navy);
  border-radius:4px;font-size:0.82rem;font-weight:700;
  cursor:pointer;transition:all var(--transition);text-decoration:none;
  letter-spacing:0.02em;
}
.team-learn-btn:hover{background:var(--navy);color:var(--white)}

/* ===== TEAM MODAL ===== */
.team-modal-overlay{
  display:none;position:fixed;inset:0;z-index:2000;
  background:rgba(7,10,73,0.65);backdrop-filter:blur(6px);
  align-items:center;justify-content:center;padding:2rem;
}
.team-modal-overlay.open{display:flex}
.team-modal{
  background:var(--white);border-radius:var(--radius-lg);
  max-width:640px;width:100%;padding:2.75rem;
  position:relative;box-shadow:var(--shadow-lg);
  max-height:85vh;overflow-y:auto;
}
.team-modal-close{
  position:absolute;top:1.25rem;right:1.25rem;
  background:none;border:none;cursor:pointer;
  font-size:1.5rem;color:var(--text-muted);line-height:1;
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;transition:var(--transition);
}
.team-modal-close:hover{background:var(--bg-light);color:var(--text-dark)}
.team-modal-name{font-size:1.6rem;font-weight:800;color:var(--text-dark);margin-bottom:0.2rem}
.team-modal-title{font-size:0.9rem;font-weight:700;color:var(--accent);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:1.5rem}
.team-modal-bio{font-size:1rem;line-height:1.8;color:var(--text-body)}

/* ===== FOCUS SECTION ===== */
.focus-section{padding:6rem 3rem}
.focus-inner{max-width:1000px;margin:0 auto}
.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2.5rem}
.focus-col{display:flex;flex-direction:column;gap:1.25rem}
.focus-item{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:1.25rem 1.5rem;
  font-size:1rem;font-weight:600;color:var(--text-dark);
  box-shadow:var(--shadow-sm);
  cursor:default;border-left:4px solid var(--navy-mid);
}

/* ===== EXPERTISE PAGE ===== */
.exp-section{padding:5rem 3rem}
.exp-inner{max-width:1100px;margin:0 auto}
.exp-intro{max-width:800px;margin:0 0 3rem}
.exp-intro p{font-size:1.0625rem;line-height:1.85;color:var(--text-body);margin-bottom:1rem}
.exp-knowledge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:3rem}
.exp-knowledge-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);padding:1.85rem;
  box-shadow:var(--shadow-sm);transition:all var(--transition);
  position:relative;overflow:hidden;
}
.exp-knowledge-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:var(--navy-mid);
}
.exp-knowledge-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.exp-knowledge-card h4{color:var(--text-dark);font-size:1.1rem;margin-bottom:0.65rem;font-weight:700}
.exp-knowledge-card p{font-size:0.9375rem;color:var(--text-muted);line-height:1.7}
.why-matters-box{
  background:var(--navy);border-radius:var(--radius-lg);
  padding:3rem;color:var(--white);position:relative;overflow:hidden;
}
.why-matters-box::before{
  content:'';position:absolute;top:-60px;right:-60px;
  width:250px;height:250px;border-radius:50%;
  background:rgba(28,82,169,0.3);filter:blur(50px);
}
.why-matters-box h3{color:var(--white);margin-bottom:1.25rem;position:relative;font-size:1.6rem}
.why-matters-box p{color:rgba(255,255,255,0.8);line-height:1.75;position:relative;font-size:1rem;margin-bottom:0.75rem}
.wmb-tags{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:1.5rem;position:relative}
.wmb-tag{
  background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.9);
  border:1px solid rgba(255,255,255,0.18);
  padding:0.3rem 0.85rem;border-radius:100px;font-size:0.8rem;font-weight:600;
}

/* ===== SERVICES TABS ===== */
.solution-tabs{display:flex;gap:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--white);margin-bottom:2.5rem;box-shadow:var(--shadow-sm)}
.solution-tab-btn{flex:1;padding:1.15rem 1.5rem;border:none;background:none;font-size:1.05rem;font-weight:700;color:var(--text-muted);cursor:pointer;transition:all var(--transition);border-right:1px solid var(--border);font-family:var(--font)}
.solution-tab-btn:last-child{border-right:none}
.solution-tab-btn.active{background:var(--navy);color:var(--white)}
.solution-tab-btn:hover:not(.active){background:var(--bg-light);color:var(--text-dark)}
.solution-content{display:none}
.solution-content.active{display:block}
.solution-overview{max-width:930px;margin:0 auto 3rem}
.solution-overview h2{font-size:2rem;margin-bottom:.45rem}
.solution-lead{font-size:1.2rem;font-weight:700;color:var(--navy-mid);margin-bottom:1.5rem}
.solution-overview h3{font-size:1.35rem;margin:2.2rem 0 .85rem}
.solution-overview p,.solution-overview li{font-size:1rem;line-height:1.8;color:var(--text-body)}
.solution-overview p{margin-bottom:1rem}
.solution-overview ul{padding-left:1.35rem;display:flex;flex-direction:column;gap:.55rem}
.solution-model{background:var(--bg-light);border:1px solid var(--border);border-left:4px solid var(--navy-mid);border-radius:var(--radius-md);padding:1.5rem;margin:1rem 0}
.solution-model h4{font-size:1.15rem;margin-bottom:.4rem}
.solution-model .best-for{margin-top:.75rem;margin-bottom:0;color:var(--text-muted)}
.solution-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.solution-link{display:inline-flex;align-items:center;padding:.7rem 1rem;border-radius:6px;background:var(--navy);color:var(--white);text-decoration:none;font-weight:700;transition:var(--transition)}
.solution-link:hover{background:var(--navy-mid);transform:translateY(-1px)}
.solution-crosslink{margin-top:2rem!important;padding-top:1.25rem;border-top:1px solid var(--border)}
.solution-crosslink a{color:var(--navy-mid);font-weight:700}
.solution-subheading{text-align:center;margin:3.5rem 0 1.25rem;scroll-margin-top:100px}
.solution-page-links{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0 3rem}
.solution-page-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem 1.5rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--navy);font-size:1.05rem;font-weight:800;text-decoration:none;transition:var(--transition)}
.solution-page-link:hover{background:var(--navy);color:var(--white);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.pricing-section{padding:5rem 3rem;background:var(--white)}
.pricing-inner{max-width:1000px;margin:0 auto}
.pricing-intro{max-width:850px;margin-bottom:3rem}
.pricing-intro p,.pricing-block p,.pricing-block li{font-size:1.02rem;line-height:1.8;color:var(--text-body)}
.pricing-intro p,.pricing-block p{margin-bottom:1rem}
.pricing-jumps{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.75rem}
.pricing-jumps a{padding:.8rem 1.1rem;border-radius:6px;background:var(--navy);color:var(--white);font-weight:700;text-decoration:none;transition:var(--transition)}
.pricing-jumps a:hover{background:var(--navy-mid);transform:translateY(-1px)}
.pricing-block{scroll-margin-top:100px;border-top:1px solid var(--border);padding-top:3rem;margin-top:3rem}
.pricing-block h2{font-size:2rem;margin-bottom:.4rem}
.pricing-tagline{font-size:1.15rem!important;font-weight:700;color:var(--navy-mid)!important;margin-bottom:1.75rem!important}
.pricing-block h3{font-size:1.35rem;margin:2rem 0 .85rem}
.pricing-factor-grid,.pricing-engagement-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.25rem 0}
.pricing-card{background:var(--bg-light);border:1px solid var(--border);border-left:4px solid var(--navy-mid);border-radius:var(--radius-md);padding:1.5rem}
.pricing-card h4{font-size:1.1rem;margin-bottom:.55rem}
.pricing-card p{margin:0;color:var(--text-muted)}
.pricing-track-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.25rem}
.pricing-promise{background:var(--navy);color:var(--white);border-radius:var(--radius-lg);padding:2.25rem;margin-top:3.5rem}
.pricing-promise h2,.pricing-promise h3{color:var(--white)}
.pricing-promise p,.pricing-promise li{color:rgba(255,255,255,.84);line-height:1.8}
.pricing-promise ul{padding-left:1.25rem;display:flex;flex-direction:column;gap:.75rem}
.states-section{padding:5rem 3rem 6rem;background:var(--white)}
.states-inner{max-width:1000px;margin:0 auto}
.states-inner p,.states-inner li{font-size:1.0625rem;line-height:1.85;color:var(--text-body)}
.states-inner p{margin-bottom:1.25rem}
.states-inner h2{font-size:1.75rem;color:var(--navy);margin:3rem 0 1rem}
.states-inner h2:first-of-type{margin-top:0}
.states-core{background:var(--bg-light);border:1px solid var(--border);border-left:4px solid var(--navy-mid);border-radius:var(--radius-md);padding:1.75rem 2rem;margin:1.5rem 0 2.5rem}
.states-core ul{margin:0;padding-left:1.3rem;display:flex;flex-direction:column;gap:.6rem}
.states-rule-list{display:flex;flex-direction:column;gap:1rem;margin:1.5rem 0 2rem}
.states-rule{padding:1.35rem 1.5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-sm)}
.states-rule p{margin:0}
.states-rule strong{color:var(--navy)}
.states-process{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0 2rem}
.states-process-card{background:var(--bg-light);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.4rem}
.states-process-card p{margin:0}
.states-process-card strong{display:block;color:var(--navy);margin-bottom:.35rem}
.states-note{background:#f5f7ff;border:1px solid #dfe5f4;border-radius:var(--radius-md);padding:1.5rem 1.75rem;margin:2rem 0}
.states-note p{margin:0}
.states-cta{background:var(--navy);border-radius:var(--radius-lg);padding:2.25rem;margin-top:3rem}
.states-cta h2{color:var(--white);margin:0 0 .75rem}
.states-cta p{color:rgba(255,255,255,.82);margin-bottom:1.25rem}
.states-cta .solution-link{background:var(--white);color:var(--navy)}
.states-cta .solution-link:hover{background:var(--bg-light)}
.careers-lead{max-width:900px;margin:0 auto}
.careers-lead p{font-size:1.12rem;line-height:1.85;margin-bottom:1.2rem}
.careers-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.75rem}
.careers-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}
.career-feature{background:var(--white);border:1px solid var(--border);border-top:4px solid var(--navy-mid);border-radius:var(--radius-md);padding:1.65rem;box-shadow:var(--shadow-sm)}
.career-feature h3{font-size:1.25rem;color:var(--navy);margin-bottom:.7rem}
.career-feature p{font-size:1rem;line-height:1.75;margin-bottom:.8rem}
.career-feature p:last-child{margin-bottom:0}
.career-review-flow{display:flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:wrap;margin:1rem 0;padding:1rem;border-radius:8px;background:var(--bg-light);color:var(--navy);font-weight:800}
.career-review-flow span{color:var(--accent)}
.career-life-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:2.5rem;align-items:start}
.career-facts{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.5rem}
.career-fact{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.15rem}
.career-fact strong{display:block;color:var(--navy);margin-bottom:.25rem}
.career-benefits{background:var(--navy);border-radius:var(--radius-lg);padding:2rem;color:var(--white)}
.career-benefits h3{color:var(--white);margin-bottom:1.25rem}
.career-benefits ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.career-benefits li{position:relative;padding:.7rem .7rem .7rem 1.8rem;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:rgba(255,255,255,.88);line-height:1.45}
.career-benefits li::before{content:'✓';position:absolute;left:.65rem;color:#9fc3ff;font-weight:800}
.career-list{padding-left:1.3rem;display:flex;flex-direction:column;gap:.65rem;margin:1.5rem 0}
.career-list li{font-size:1.03rem;line-height:1.7;color:var(--text-body)}
.career-training-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.5rem 0}
.career-training-item{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:1rem 1.15rem;color:var(--text-body);font-weight:600;line-height:1.55}
.career-training-note{background:#f5f7ff;border-left:4px solid var(--navy-mid);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:1.35rem 1.5rem;margin-top:1.75rem}
.career-training-note p{margin:0}
.career-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);gap:1rem;margin:2rem 0}
.career-role{display:grid;grid-template-rows:subgrid;grid-row:span 3;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:0;box-shadow:var(--shadow-sm);overflow:hidden}
.career-role-header{grid-row:1;padding:1.5rem 1.5rem 1.15rem}
.career-role-header h3{font-size:1.05rem;color:var(--navy);margin-bottom:.5rem;overflow-wrap:break-word;line-height:1.35}
.career-role-meta-row{display:block}
.career-role-meta{color:var(--accent);font-weight:700;font-size:.92rem}
.career-role-openings{display:block;color:var(--navy);font-weight:800;font-size:.85rem;margin-top:.5rem}
.career-role-body{grid-row:2;padding:1.15rem 1.5rem;border-top:1px solid var(--border);background:var(--bg-light)}
.career-role-body p{font-size:1rem;line-height:1.7;margin:0}
.career-role-footer{grid-row:3;padding:1.15rem 1.5rem 1.5rem;border-top:1px solid var(--border);align-self:end}
.career-role-footer button,.career-role-footer>a.solution-link{align-self:flex-start;border:none;cursor:pointer;font-family:var(--font)}
.career-general{background:var(--bg-light);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.75rem;margin-top:2rem}
.career-grow{max-width:900px;margin:0 auto;text-align:center}
.career-grow p{max-width:780px;margin:0 auto 1.1rem}
.career-grow .careers-actions{justify-content:center}
.career-modal-overlay{display:none;position:fixed;inset:0;z-index:3000;background:rgba(7,10,73,.72);padding:1.5rem;align-items:center;justify-content:center}
.career-modal-overlay.open{display:flex}
.career-modal{width:min(520px,100%);background:var(--white);border-radius:var(--radius-lg);padding:2rem;box-shadow:0 24px 70px rgba(0,0,0,.3);position:relative;text-align:center}
.career-modal h2{font-size:1.65rem;color:var(--navy);margin-bottom:.8rem}
.career-modal p{margin-bottom:1.4rem}
.career-modal-close{position:absolute;top:.8rem;right:1rem;border:none;background:none;color:var(--navy);font-size:1.8rem;cursor:pointer;line-height:1}
.stabs{display:flex;gap:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--white);margin-bottom:2.5rem;box-shadow:var(--shadow-sm)}
.stab-btn{
  flex:1;padding:1.1rem 1.5rem;border:none;background:none;
  font-size:1.05rem;font-weight:700;color:var(--text-muted);
  cursor:pointer;transition:all var(--transition);border-right:1px solid var(--border);
  font-family:var(--font);letter-spacing:0.01em;
}
.stab-btn:last-child{border-right:none}
.stab-btn.active{background:var(--navy);color:var(--white)}
.stab-btn:hover:not(.active){background:var(--bg-light);color:var(--text-dark)}
.stab-content{display:none}
.stab-content.active{display:block}
.svc-layout{display:grid;grid-template-columns:280px 1fr;gap:2.5rem;align-items:start}
.svc-sidebar{display:flex;flex-direction:column;gap:1.25rem}
.svc-feature-card{
  background:var(--navy);border-radius:var(--radius-md);padding:1.75rem;
  color:var(--white);position:relative;overflow:hidden;
}
.svc-feature-card h4{color:var(--white);font-size:1.15rem;margin-bottom:0.6rem;font-weight:700}
.svc-feature-card p{color:rgba(255,255,255,0.78);font-size:0.9375rem;line-height:1.65}
.svc-connected-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);padding:1.75rem;box-shadow:var(--shadow-sm);
}
.svc-connected-card h4{color:var(--text-dark);font-size:1.1rem;margin-bottom:1rem;font-weight:700}
.svc-connected-card ul{list-style:none;display:flex;flex-direction:column;gap:0.6rem}
.svc-connected-card li{color:var(--text-muted);font-size:0.9375rem;padding-left:1.25rem;position:relative}
.svc-connected-card li::before{content:'•';position:absolute;left:0;color:var(--accent);font-weight:700}
.svc-main-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);padding:2.25rem;box-shadow:var(--shadow-sm);
}
.svc-main-card h3{color:var(--text-dark);font-size:1.5rem;margin-bottom:1.5rem;font-weight:700}
.svc-main-card p{color:var(--text-body);font-size:1rem;line-height:1.8;margin-bottom:1.1rem}
.svc-steps{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}
.svc-step{
  display:flex;gap:1.25rem;align-items:flex-start;
  padding:1.25rem;border-radius:var(--radius-sm);background:var(--bg-light);
  border:1px solid var(--border);
}
.svc-step-num{
  width:36px;height:36px;border-radius:50%;background:var(--navy);
  color:var(--white);font-weight:800;font-size:0.85rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.svc-step-body h5{color:var(--text-dark);font-size:1rem;font-weight:700;margin-bottom:0.3rem}
.svc-step-body p{font-size:0.9rem;color:var(--text-muted);line-height:1.65;margin:0}

/* ===== SOFTWARE PAGE ===== */
.soft-layout{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;margin-bottom:4rem}
.soft-main h3{color:var(--text-dark);font-size:1.5rem;font-weight:700;margin-bottom:1rem}
.soft-main p{color:var(--text-body);font-size:1rem;line-height:1.8;margin-bottom:1rem}
.soft-detail-card{
  background:var(--navy);border-radius:var(--radius-lg);
  padding:2.25rem;color:var(--white);
}
.soft-detail-card h4{color:var(--white);font-size:1.25rem;font-weight:700;margin-bottom:1rem}
.soft-detail-card p{color:rgba(255,255,255,0.8);font-size:0.9375rem;line-height:1.75;margin-bottom:0.75rem}
.ftabs,.clio-ftabs{display:flex;flex-wrap:wrap;gap:0.75rem;margin-bottom:2rem}
.ftab-btn,.clio-ftab-btn,.caret-tab-btn,.assembly-tab-btn,.other-tab-btn{
  padding:0.65rem 1.35rem;border-radius:6px;border:1.5px solid var(--border);
  background:var(--white);font-size:1rem;font-weight:600;color:var(--text-muted);
  cursor:pointer;transition:all var(--transition);font-family:var(--font);
}
.ftab-btn.active,.clio-ftab-btn.active,.caret-tab-btn.active,.assembly-tab-btn.active,.other-tab-btn.active{background:var(--navy);color:var(--white);border-color:var(--navy)}
.ftab-btn:hover:not(.active),.clio-ftab-btn:hover:not(.active),.caret-tab-btn:hover:not(.active),.assembly-tab-btn:hover:not(.active),.other-tab-btn:hover:not(.active){background:var(--bg-light);color:var(--text-dark);border-color:var(--navy-mid)}
.ftab-content,.clio-ftab-content,.caret-tab-content,.assembly-tab-content,.other-tab-content{display:none}
.ftab-content.active,.clio-ftab-content.active,.caret-tab-content.active,.assembly-tab-content.active,.other-tab-content.active{display:block}
.ftab-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);padding:2rem;box-shadow:var(--shadow-sm);
}
.ftab-card h4{color:var(--text-dark);font-size:1.25rem;font-weight:700;margin-bottom:0.85rem}
.ftab-card p{color:var(--text-body);font-size:1rem;line-height:1.8}
.issues-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.75rem}
.issue-pill{
  background:var(--bg-light);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:0.85rem 1rem;
  font-size:1rem;font-weight:600;color:var(--text-dark);
  text-align:center;transition:all var(--transition);
}


/* ===== NAV SOFTWARE DROPDOWN ===== */
.nav-dropdown{position:relative}
.nav-dropdown > a{display:inline-flex;align-items:center;gap:0.4rem}
.nav-dropdown > a svg{transition:transform var(--transition);flex-shrink:0}
.nav-dropdown.open > a svg{transform:rotate(180deg)}
.nav-dropdown-menu{
  display:none;position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%);
  background:var(--white);border-radius:12px;box-shadow:0 14px 45px rgba(7,10,73,0.18);
  border:1px solid var(--border);padding:0.6rem;min-width:220px;z-index:200;
  max-height:75vh;overflow-y:auto;
}
.nav-dropdown.open .nav-dropdown-menu{display:block}
.nav-dropdown-menu a{
  display:block;padding:0.7rem 1.1rem;border-radius:8px;
  color:var(--navy);text-decoration:none;font-size:1rem;font-weight:600;
  transition:all var(--transition);white-space:nowrap;
}
.nav-dropdown-menu a:hover{background:var(--bg-light)}
.nav-software-search-shell{
  position:sticky;top:-.6rem;z-index:4;background:var(--white);
  margin:-.6rem -.6rem .35rem;padding:.75rem .75rem .6rem;
  border-bottom:1px solid var(--border);border-radius:12px 12px 0 0;
}
.nav-software-search-box{position:relative;display:flex;align-items:center}
.nav-software-search-box svg{position:absolute;left:.8rem;color:var(--accent);pointer-events:none}
.nav-software-search-box input{
  width:100%;height:42px;border:1.5px solid var(--border);border-radius:9px;
  background:var(--bg-light);padding:.65rem 2.35rem .65rem 2.45rem;
  color:var(--text-dark);font:600 .9rem/1 var(--font);outline:none;
}
.nav-software-search-box input:focus{background:var(--white);border-color:var(--accent);box-shadow:0 0 0 3px rgba(28,82,169,.1)}
.nav-software-search-box input::placeholder{color:#777c89;font-weight:500}
.nav-software-menu-clear{
  display:none;position:absolute;right:.55rem;width:25px;height:25px;border:0;
  border-radius:50%;background:#e9edf5;color:var(--text-muted);cursor:pointer;
  font-size:1rem;line-height:1;
}
.nav-software-menu-clear.visible{display:block}
.nav-software-search-status{min-height:1rem;margin:.4rem .15rem 0;color:var(--text-muted);font-size:.74rem}
.nav-software-search-results{display:none;padding:.15rem 0}
.nav-software-search-results.active{display:block}
.nav-software-search-results button{
  display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:.12rem;
  padding:.68rem .85rem;border:0;border-radius:8px;background:transparent;
  color:var(--navy);font-family:var(--font);text-align:left;cursor:pointer;
}
.nav-software-search-results button:hover,.nav-software-search-results button:focus{background:var(--bg-light);outline:none}
.nav-software-search-results strong{font-size:.94rem;font-weight:750}
.nav-software-search-results span{color:var(--text-muted);font-size:.76rem;line-height:1.35}
.nav-software-search-empty{padding:.85rem;color:var(--text-muted);font-size:.86rem;text-align:center}
.nav-software-menu-items.searching{display:none}
.nav-dropdown-menu .nav-subgroup{position:relative}
.nav-dropdown-menu .nav-subgroup > a{display:flex;align-items:center;justify-content:space-between;gap:0.5rem}
.nav-dropdown-menu .nav-subgroup > a svg{transition:transform var(--transition);flex-shrink:0}
.nav-dropdown-menu .nav-subgroup.open > a svg{transform:rotate(180deg)}
.nav-subsubmenu{display:none;flex-direction:column;padding-left:0.85rem}
.nav-dropdown-menu .nav-subgroup.open .nav-subsubmenu{display:flex}
.nav-subsubmenu a{font-size:0.95rem;opacity:0.82}

/* Flyout-right variant: submenu emerges to the side instead of expanding downward.
   These panels get moved to <body> in JS and positioned via position:fixed with
   JS-computed coordinates, so they escape both the scrollable dropdown's clipping
   and the centering transform on .nav-dropdown-menu (which would otherwise become
   their containing block and trap them relative to it instead of the viewport). */
.nav-dropdown-menu .nav-subgroup.flyout-right.open > a svg{transform:none}
.flyout-panel{
  display:none;position:fixed;
  flex-direction:column;padding:0.6rem;background:var(--white);
  border:1px solid var(--border);border-radius:10px;
  box-shadow:0 14px 45px rgba(7,10,73,0.2);min-width:200px;z-index:9999;
}
.flyout-panel.open{display:flex}
.flyout-panel a{
  font-size:1rem;opacity:1;padding:0.65rem 1rem;border-radius:8px;
  color:var(--navy);font-weight:600;white-space:nowrap;
}
.flyout-panel a:hover{background:var(--bg-light)}

/* ===== MOBILE SOFTWARE SUBMENU ===== */
.mobile-menu-group{width:100%}
.mobile-menu-group > a{display:flex;align-items:center;justify-content:space-between}
.mobile-menu-group > a svg{transition:transform var(--transition);flex-shrink:0}
.mobile-menu-group.open > a svg{transform:rotate(180deg)}
.mobile-submenu{display:none;flex-direction:column;padding-left:1.25rem}
.mobile-menu-group.open .mobile-submenu{display:flex}
.mobile-submenu a{font-size:0.95rem;opacity:0.85}
.mobile-submenu .mobile-subgroup > a{display:flex;align-items:center;justify-content:space-between;gap:0.5rem}
.mobile-submenu .mobile-subgroup > a svg{transition:transform var(--transition);flex-shrink:0}
.mobile-submenu .mobile-subgroup.open > a svg{transform:rotate(180deg)}
.mobile-subsubmenu{display:none;flex-direction:column;padding-left:1.25rem}
.mobile-submenu .mobile-subgroup.open .mobile-subsubmenu{display:flex}
.mobile-subsubmenu a{font-size:0.9rem;opacity:0.75}
.software-panel{display:none}
.software-panel.active{display:block}
.software-overview{display:none}
.software-overview.active{display:block}
.software-overview-intro{max-width:850px;margin-bottom:3rem}
.software-overview-intro p{font-size:1.08rem;line-height:1.8;color:var(--text-body)}
.software-search-wrap{max-width:720px;margin:-.75rem 0 3.25rem}
.software-search-label{display:block;color:var(--navy);font-size:.88rem;font-weight:750;margin-bottom:.65rem}
.software-search-box{position:relative;display:flex;align-items:center}
.software-search-box svg{position:absolute;left:1.05rem;color:var(--accent);pointer-events:none}
.software-search-box input{width:100%;height:58px;border:1.5px solid var(--border);border-radius:12px;background:var(--white);padding:.9rem 3rem .9rem 3.2rem;color:var(--text-dark);font:600 1rem/1 var(--font);outline:none;box-shadow:var(--shadow-sm);transition:all var(--transition)}
.software-search-box input::placeholder{color:#777c89;font-weight:500}
.software-search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(28,82,169,.1),var(--shadow-md)}
.software-page-search-clear{display:none;position:absolute;right:1rem;border:0;background:var(--bg-light);color:var(--text-muted);width:28px;height:28px;border-radius:50%;font-size:1.1rem;line-height:1;cursor:pointer}
.software-page-search-clear.visible{display:block}
.software-search-status{min-height:1.25rem;margin-top:.6rem;color:var(--text-muted);font-size:.86rem}
.software-no-results{display:none;background:var(--bg-light);border:1px dashed var(--border);border-radius:var(--radius-md);padding:2rem;text-align:center;color:var(--text-body)}
.software-no-results.visible{display:block}
.software-no-results strong{display:block;color:var(--navy);font-size:1.15rem;margin-bottom:.35rem}
.software-directory-group.search-hidden,.software-directory-card.search-hidden{display:none}
.software-directory-group{margin-top:2.75rem}
.software-directory-group h3{font-size:1.35rem;color:var(--navy);margin-bottom:1rem}
.software-directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.software-directory-card{
  width:100%;min-height:112px;padding:1.3rem 1.4rem;text-align:left;
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);cursor:pointer;font-family:var(--font);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  transition:all var(--transition);
}
.software-directory-card:hover{transform:translateY(-3px);border-color:var(--navy-mid);box-shadow:var(--shadow-md);background:var(--bg-light)}
.software-directory-card strong{display:block;color:var(--navy);font-size:1.05rem;margin-bottom:.3rem}
.software-directory-card span{display:block;color:var(--text-muted);font-size:.86rem;line-height:1.45;font-weight:500}
.software-directory-card b{color:var(--accent);font-size:1.2rem;flex-shrink:0}
.software-back-link{display:flex;width:max-content;align-items:center;gap:.3rem;border:none;background:transparent;color:var(--text-muted);padding:.2rem 0;border-radius:0;font-family:var(--font);font-size:.8rem;font-weight:650;cursor:pointer;margin-bottom:.45rem;transition:var(--transition)}
.software-back-link:hover{color:var(--accent);transform:translateX(-2px)}
.software-back-link + .eyebrow{display:block;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:800;letter-spacing:-.02em;text-transform:none;color:var(--navy);line-height:1.15;margin-bottom:1.5rem;padding-bottom:.7rem}
.soft-integration-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:4rem}
.soft-integration-single{max-width:820px;margin-bottom:4rem}
.soft-integration-triple{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem;margin-bottom:4rem}
.mini-tab-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}
.mini-tab-card{background:var(--bg-light);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1.25rem}
.mini-tab-card h5{color:var(--text-dark);font-size:1rem;font-weight:700;margin-bottom:0.5rem}
.mini-tab-card p{color:var(--text-muted);font-size:0.9rem;line-height:1.65;margin:0}
.mini-group-label{color:var(--navy);font-size:0.85rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;margin:2rem 0 0.25rem}
.understanding-prose p{color:var(--text-body);font-size:1.0625rem;line-height:1.85;margin-bottom:1.25rem;max-width:800px}

/* ===== CASE STUDIES PAGE ===== */
.cs-tabs{display:flex;gap:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--white);margin-bottom:3rem;box-shadow:var(--shadow-sm)}
.cs-tab-btn{
  flex:1;padding:1.2rem 1.5rem;border:none;background:none;
  font-size:1.05rem;font-weight:700;color:var(--text-muted);
  cursor:pointer;transition:all var(--transition);border-right:1px solid var(--border);
  font-family:var(--font);
}
.cs-tab-btn:last-child{border-right:none}
.cs-tab-btn.active{background:var(--navy);color:var(--white)}
.cs-tab-btn:hover:not(.active){background:var(--bg-light);color:var(--text-dark)}
.cs-tab-content{display:none}
.cs-tab-content.active{display:block}

/* Case study inner layout */
.cs-cover{
  background:linear-gradient(135deg,var(--navy) 0%,#1a2a8a 60%,#0d3a6e 100%);
  padding:3.5rem;border-radius:var(--radius-lg);margin-bottom:2.5rem;
  position:relative;overflow:hidden;
}
.cs-cover::before{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:40px 40px;
}
.cs-kicker{
  font-size:0.85rem;font-weight:700;letter-spacing:0.15em;
  text-transform:uppercase;color:rgba(255,255,255,0.7);
  margin-bottom:0.75rem;position:relative;
}
.cs-cover h2{color:var(--white);font-size:clamp(1.9rem,3.5vw,2.8rem);margin-bottom:0.85rem;position:relative}
.cs-cover p{color:rgba(255,255,255,0.8);font-size:1.125rem;position:relative;max-width:700px}

/* YouTube embed */
.cs-video-wrap{
  position:relative;margin-bottom:2.5rem;
  border-radius:var(--radius-md);overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.cs-video-thumb{position:relative;cursor:pointer}
.cs-video-thumb iframe{
  width:100%;aspect-ratio:16/9;border:none;display:block;
}
.cs-video-thumb-img{width:100%;display:block;object-fit:cover}
.cs-video-play-overlay{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:76px;height:76px;background:rgba(255,255,255,0.95);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 30px rgba(0,0,0,0.35);transition:transform 0.25s ease;
  pointer-events:none;
}
.cs-video-thumb:hover .cs-video-play-overlay{transform:translate(-50%,-50%) scale(1.08)}
.cs-video-expand-btn{
  position:absolute;bottom:1rem;right:1rem;
  background:var(--navy);color:var(--white);
  border:none;border-radius:6px;padding:0.5rem 1rem;
  font-size:0.85rem;font-weight:700;cursor:pointer;
  display:flex;align-items:center;gap:6px;
  transition:all var(--transition);font-family:var(--font);
  z-index:10;
}
.cs-video-expand-btn:hover{background:var(--navy-mid)}

/* Video modal */
.video-modal-overlay{
  display:none;position:fixed;inset:0;z-index:3000;
  background:rgba(0,0,0,0.92);
  align-items:center;justify-content:center;padding:2rem;
}
.video-modal-overlay.open{display:flex}
.video-modal{position:relative;width:100%;max-width:1100px}
.video-modal iframe{width:100%;aspect-ratio:16/9;border:none;border-radius:var(--radius-md)}
.video-modal-close{
  position:absolute;top:-2.75rem;right:0;
  background:none;border:none;cursor:pointer;
  color:var(--white);font-size:1.75rem;line-height:1;
  display:flex;align-items:center;gap:0.5rem;
  font-family:var(--font);font-weight:700;font-size:1rem;
  padding:0.4rem 0.8rem;border:1.5px solid rgba(255,255,255,0.4);
  border-radius:4px;transition:var(--transition);
}
.video-modal-close:hover{background:rgba(255,255,255,0.12)}

/* Case study layout */
.cs-layout{display:grid;grid-template-columns:260px 1fr;gap:2.5rem;align-items:start}
.cs-rail{position:sticky;top:96px}
.cs-rail-title{
  font-size:0.8rem;font-weight:700;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--accent);
  margin-bottom:1rem;padding-bottom:0.6rem;
  border-bottom:2px solid var(--border);
}
.cs-facts{display:flex;flex-direction:column;gap:1rem}
.cs-fact{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:1.35rem;
  box-shadow:var(--shadow-sm);transition:all var(--transition);
  cursor:default;
}
.cs-fact:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--navy-mid)}
.cs-fact strong{
  display:block;font-size:1.9rem;font-weight:800;
  color:var(--navy);line-height:1;margin-bottom:0.35rem;
}
.cs-fact span{font-size:0.9rem;color:var(--text-muted);line-height:1.45;font-weight:500}

/* Accordion */
.cs-acc-item{
  border:1px solid var(--border);border-radius:var(--radius-md);
  margin-bottom:0.85rem;overflow:hidden;
  box-shadow:var(--shadow-sm);transition:box-shadow var(--transition);
}
.cs-acc-item.open{box-shadow:var(--shadow-md)}
.cs-acc-header{
  display:flex;align-items:center;gap:1rem;
  padding:1.35rem 1.5rem;cursor:pointer;
  background:var(--white);transition:background var(--transition);
  user-select:none;
}
.cs-acc-header:hover{background:var(--bg-light)}
.cs-acc-num{
  width:36px;height:36px;border-radius:50%;
  background:var(--navy);color:var(--white);
  font-weight:800;font-size:0.85rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.cs-acc-title h3{font-size:1.1rem;font-weight:700;color:var(--text-dark);margin:0}
.cs-acc-arrow{margin-left:auto;color:var(--text-muted);transition:transform var(--transition);flex-shrink:0}
.cs-acc-item.open .cs-acc-arrow{transform:rotate(180deg)}
.cs-acc-body{
  display:none;padding:1.5rem 1.75rem 1.75rem;
  background:var(--bg-light);border-top:1px solid var(--border);
}
.cs-acc-item.open .cs-acc-body{display:block}
.cs-acc-body p{color:var(--text-body);font-size:1rem;line-height:1.8;margin-bottom:0.85rem}
.cs-acc-body p:last-child{margin-bottom:0}
.cs-acc-body ul,.cs-acc-body ol{padding-left:1.5rem;margin:0.75rem 0}
.cs-acc-body li{color:var(--text-body);font-size:1rem;line-height:1.75;margin-bottom:0.35rem}

/* ===== CONTACT PAGE ===== */
.contact-section{padding:5rem 3rem}
.contact-inner{max-width:700px;margin:0 auto}
.contact-info-card{
  background:var(--navy);border-radius:var(--radius-lg);
  padding:2.75rem;color:var(--white);
}
.contact-info-card h3{color:var(--white);font-size:1.5rem;font-weight:700;margin-bottom:1.75rem}
.contact-item{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.75rem}
.contact-item:last-of-type{margin-bottom:0}
.contact-item-icon{
  width:44px;height:44px;border-radius:10px;
  background:rgba(255,255,255,0.12);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:1.1rem;
}
.contact-item-text h5{
  color:rgba(255,255,255,0.6);font-size:0.78rem;
  font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  margin-bottom:0.3rem;
}
.contact-item-text p,.contact-item-text a{
  color:var(--white);font-size:1rem;line-height:1.6;
  text-decoration:none;font-weight:500;
}
.contact-item-text a:hover{text-decoration:underline}
.contact-disclaimer{
  margin-top:2rem;padding:1.1rem 1.4rem;
  background:rgba(255,255,255,0.07);border-radius:8px;
  border:1px solid rgba(255,255,255,0.12);
}
.contact-disclaimer p{
  color:rgba(255,255,255,0.6);font-size:0.85rem;
  margin:0;font-style:italic;line-height:1.6;
}

/* ===== FOOTER ===== */
footer{background:var(--navy);padding:5rem 3rem 0;color:var(--white)}
.footer-inner{
  max-width:1240px;margin:0 auto;
  display:grid;grid-template-columns:minmax(240px,1.55fr) repeat(3,minmax(130px,1fr)) minmax(195px,1.2fr);
  gap:2.25rem;padding-bottom:4rem;align-items:start;
}
.footer-brand{align-self:start;margin-top:-2.6rem}
.footer-brand img{height:90px;width:auto;max-width:220px;display:block;margin-bottom:1.5rem;object-fit:contain}
.footer-brand p{color:rgba(255,255,255,0.65);font-size:0.9375rem;line-height:1.75;max-width:340px}
.footer-brand-note{margin-top:1.15rem;padding-top:1.15rem;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem!important;color:rgba(255,255,255,.48)!important}
.footer-col h5{
  color:rgba(255,255,255,0.5);font-size:0.78rem;
  font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
  margin-bottom:1.25rem;
}
.footer-col a{
  display:block;color:rgba(255,255,255,0.82);
  text-decoration:none;font-size:0.9375rem;font-weight:500;
  margin-bottom:0.75rem;transition:color var(--transition);
}
.footer-col a:hover{color:var(--white)}
.footer-sublink{padding-left:1rem!important;font-size:.875rem!important;color:rgba(255,255,255,0.62)!important;position:relative}
.footer-sublink:hover{color:var(--white)!important}
.footer-social-link{
  display:inline-flex!important;align-items:center;justify-content:center;
  width:36px;height:36px;
  color:rgba(255,255,255,0.85);margin-bottom:1rem!important;
  transition:var(--transition);
}
.footer-social-link:hover{color:var(--white);transform:translateY(-2px)}
.footer-social-link::after{display:none!important}
.footer-col p{color:rgba(255,255,255,0.5);font-size:0.875rem;line-height:1.65;margin-top:.85rem}
.footer-address{padding-top:.9rem;border-top:1px solid rgba(255,255,255,.1)}
.footer-bottom{
  max-width:1240px;margin:0 auto;
  border-top:1px solid rgba(255,255,255,0.1);
  padding:1.5rem 0;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
}
.footer-bottom p{color:rgba(255,255,255,0.45);font-size:0.85rem;margin:0}
.footer-badge{font-style:italic}
.footer-legal-links{color:rgba(255,255,255,0.45);font-size:0.85rem;margin:0;display:flex;gap:0.6rem;align-items:center}
.footer-legal-links a{color:rgba(255,255,255,0.45);text-decoration:none;transition:color var(--transition)}
.footer-legal-links a:hover{color:var(--white)}
.footer-legal-links span{color:rgba(255,255,255,0.3)}

/* ===== LEGAL PAGES ===== */
.legal-content{max-width:860px;margin:0 auto;padding:5rem 3rem 6rem}
.legal-content p{font-size:1.0625rem;line-height:1.85;color:var(--text-body);margin-bottom:1.25rem}
.legal-content h2{font-size:1.5rem;color:var(--navy);margin:2.5rem 0 1rem;font-weight:700}
.legal-content h2:first-of-type{margin-top:0}
.legal-content ol{margin:0 0 1.25rem 1.4rem;padding:0}
.legal-content ol li{font-size:1.0625rem;line-height:1.85;color:var(--text-body);margin-bottom:0.6rem;padding-left:0.3rem}
.legal-content ul{margin:0 0 1.25rem 1.4rem;padding:0}
.legal-content ul li{font-size:1.0625rem;line-height:1.85;color:var(--text-body);margin-bottom:0.5rem}
.legal-content a{color:var(--navy-mid);text-decoration:underline}
.legal-content .legal-updated{color:rgba(7,10,73,0.5);font-size:0.9rem;margin-bottom:2.5rem}

/* ===== STORY SECTION ===== */
.story-section{padding:5rem 3rem;background:var(--bg-light)}
.story-inner{max-width:860px;margin:0 auto}
.story-inner p{font-size:1.0625rem;line-height:1.85;color:var(--text-body);margin-bottom:1.25rem}
.story-highlight{
  background:var(--white);border-left:4px solid var(--navy-mid);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:1.5rem 2rem;margin:2rem 0;box-shadow:var(--shadow-sm);
}
.story-highlight p{font-size:1rem;color:var(--text-dark);font-style:italic;margin:0}

/* ===== SCROLL REVEAL ===== */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}.reveal-delay-4{transition-delay:0.4s}



/* Tab panels inside Services/Software/Case Studies pages are content
   switches within one already-snapped section, not separate stops. */
.cs-tab-content,
.stab-content,
.ftab-content{
  scroll-snap-align:none;
}
.footer-brand a{display:inline-block;text-decoration:none;line-height:0}
.footer-brand img,
.footer-col a,
.footer-bottom p{transition:all 0.25s ease}
.footer-brand img:hover{transform:scale(1.06);cursor:pointer;filter:brightness(1.08)}
.footer-col a{position:relative;width:max-content;max-width:100%}
.footer-col a::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--white);transition:width 0.25s ease}
.footer-col a:hover::after{width:100%}
.footer-col a:hover{transform:translateX(6px)}
.contact-item-text a:hover{color:var(--white);opacity:0.85}
.cs-fact strong{display:inline-block;transition:transform 0.25s ease}
.cs-fact.counting strong{transform:scale(1.06)}

/* ===== RESPONSIVE ===== */
@media(max-width:1500px){
  .navbar{padding:0 1.5rem}
  .nav-logo img{max-width:160px}
  .nav-links{right:1.5rem;gap:.1rem}
  .nav-links>li>a{font-size:.94rem;padding:.42rem .66rem}
  .utility-nav{right:1.5rem}
  .utility-nav a{font-size:.94rem;padding:.42rem .66rem}
}
@media(max-width:1160px){
  .nav-links,.utility-nav{display:none}
  .hamburger{display:flex}
}
@media(max-width:1024px){
  .nav-links{display:none}
  .hamburger{display:flex}
  .services-grid{grid-template-columns:1fr 1fr}
  .why-grid{grid-template-columns:1fr;gap:2.5rem}
  .cs-layout{grid-template-columns:1fr}
  .cs-rail{position:static}
  .team-grid{grid-template-columns:repeat(3,1fr)}
  .soft-layout{grid-template-columns:1fr}
  .soft-integration-grid{grid-template-columns:1fr}
  .soft-integration-triple{grid-template-columns:1fr 1fr}
  .mini-tab-grid{grid-template-columns:1fr}
  .svc-layout{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1.2fr 1fr 1fr;gap:2.5rem}
  .footer-brand{margin-top:0}
}
@media(max-width:1160px){
  /* Mobile navigation: one clean, left-aligned hierarchy */
  body.mobile-menu-open{overflow:hidden;touch-action:none}
  .mobile-menu{
    align-items:stretch;
    gap:.2rem;
    padding:1rem 1.1rem calc(2rem + env(safe-area-inset-bottom));
    text-align:left;
    overscroll-behavior:contain;
  }
  .mobile-menu a{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:.65rem;
    width:100%;
    min-width:0;
    min-height:48px;
    padding:.72rem .85rem;
    border-radius:8px;
    text-align:left;
    font-size:1rem;
    line-height:1.35;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  .mobile-menu > a,
  .mobile-menu-group > a{
    font-size:1.04rem;
    font-weight:700;
  }
  .mobile-menu-group{width:100%;min-width:0}
  .mobile-menu-group > a,
  .mobile-submenu .mobile-subgroup > a{justify-content:flex-start}
  .mobile-menu-group > a svg,
  .mobile-submenu .mobile-subgroup > a svg{
    margin-left:auto;
    flex:0 0 auto;
  }
  .mobile-submenu{
    width:calc(100% - .75rem);
    margin:.15rem 0 .4rem .75rem;
    padding:0 0 0 .65rem;
    border-left:2px solid rgba(28,82,169,.16);
  }
  .mobile-submenu a{
    padding:.64rem .75rem;
    font-size:.95rem;
    font-weight:600;
    opacity:1;
  }
  .mobile-subgroup{width:100%;min-width:0}
  .mobile-subsubmenu{
    width:calc(100% - .65rem);
    margin:.1rem 0 .3rem .65rem;
    padding:0 0 0 .55rem;
    border-left:1px solid rgba(28,82,169,.2);
  }
  .mobile-subsubmenu a{
    padding:.58rem .65rem;
    font-size:.9rem;
    font-weight:550;
    opacity:1;
  }
  .mobile-menu a:hover,
  .mobile-menu a.active{box-shadow:none}
  .mobile-menu a:focus-visible{
    outline:3px solid rgba(28,82,169,.3);
    outline-offset:2px;
  }

  /* Mobile layout safeguards for long content and controls */
  img,video,iframe,svg{max-width:100%}
  .page-section,.section-inner,.home-inner,.footer-inner{min-width:0}
  .btn,.btn-outline,.btn-primary,.career-role-link{
    max-width:100%;
    white-space:normal;
    text-align:center;
  }
  .team-modal,.video-modal,.career-modal{max-width:calc(100vw - 2rem)}
  .soft-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .solution-tabs,.stabs{flex-direction:column}
  .solution-tab-btn,.stab-btn{border-right:none;border-bottom:1px solid var(--border)}
  .solution-tab-btn:last-child,.stab-btn:last-child{border-bottom:none}
  .solution-overview{margin-bottom:2rem}
  .solution-overview h2{font-size:1.65rem}
  .solution-links{flex-direction:column}
  .solution-link{justify-content:center}
  .solution-page-links{grid-template-columns:1fr}
  .software-directory-grid{grid-template-columns:1fr}
  .pricing-section{padding:4rem 1.25rem}
  .pricing-factor-grid,.pricing-engagement-grid{grid-template-columns:1fr}
  .pricing-jumps{flex-direction:column}
  .pricing-jumps a{text-align:center}
  .states-section{padding:4rem 1.25rem}
  .states-process{grid-template-columns:1fr}
  .states-core,.states-rule,.states-note,.states-cta{padding:1.35rem}
  .careers-grid,.career-life-layout,.career-facts,.career-training-grid,.career-roles{grid-template-columns:1fr}
  .career-benefits ul{grid-template-columns:1fr}
  .navbar{padding:0 1.5rem;height:68px}
  .nav-logo img{height:55px;max-width:140px}
  .nav-links{display:none}
  .hamburger{display:flex}
  .mobile-menu{top:68px}
  .section{padding:4rem 1.5rem}
  .services-grid{grid-template-columns:1fr}
  .soft-integration-triple{grid-template-columns:1fr}
  .cs-grid{grid-template-columns:1fr}
  .expertise-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .focus-grid{grid-template-columns:1fr 1fr}
  .footer-inner{grid-template-columns:1fr}
  .footer-brand img{height:75px;max-width:190px}
  html{scroll-padding-top:68px}
  
  .page-section.active > .hero-section{
    scroll-margin-top:68px;
  }
  .page-section.active > section.section,
  .page-section.active > .story-section,
  .page-section.active > .cta-section,
  .page-section.active > .page-hero,
  .page-section.active > .contact-section,
  .page-section.active > .team-section,
  .page-section.active > .focus-section,
  .page-section.active > .exp-section,
  #sec-services > section.section,
  #sec-software > section.section,
  #sec-casestudies > section.section{
    
    scroll-margin-top:68px;
  }
  .footer-bottom{flex-direction:column;text-align:left;align-items:flex-start}
  .hero-section{padding:100px 1.5rem 3rem}
  .home-section{padding:4rem 1.25rem}
  .home-card-grid,.home-card-grid.two,.home-case-grid{grid-template-columns:1fr}
  .home-dark-feature{grid-template-columns:1fr;padding:2rem}
  .home-dark-points{grid-template-columns:1fr}
  .home-pricing-strip{padding:2rem;flex-direction:column;align-items:flex-start}
  .prefooter-cta{padding:5rem 1.25rem}
  .stabs{flex-direction:column}
  .cs-tabs{flex-direction:column}
  .cs-cover{padding:2rem}
  .issues-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .navbar{padding:0 1rem}
  .mobile-menu{padding-left:.8rem;padding-right:.8rem}
  .mobile-menu a{padding-left:.75rem;padding-right:.75rem}
  .mobile-submenu{width:calc(100% - .55rem);margin-left:.55rem;padding-left:.5rem}
  .mobile-subsubmenu{width:calc(100% - .45rem);margin-left:.45rem;padding-left:.4rem}
  .section,.states-section,.pricing-section{padding-left:1rem;padding-right:1rem}
  .hero-section,.page-hero{padding-left:1rem;padding-right:1rem}
  .home-dark-feature,.home-pricing-strip,.cs-cover{padding:1.4rem}
  
  .focus-grid{grid-template-columns:1fr}
  .issues-grid{grid-template-columns:1fr}
}

/* ===== MOBILE SPACING & TYPE SYSTEM =====
   One shared rhythm for every page. Kept last so older page-specific
   responsive rules cannot create different gutters or heading scales. */
@media(max-width:768px){
  :root{
    --mobile-gutter:1.25rem;
    --mobile-section-space:3.75rem;
    --mobile-heading-space:2rem;
    --mobile-card-pad:1.25rem;
  }

  /* Natural document flow prevents false blank space between short sections. */
  body{scroll-snap-type:none}
  .page-section.active > section.section,
  .page-section.active > .story-section,
  .page-section.active > .cta-section,
  .page-section.active > .page-hero,
  .page-section.active > .contact-section,
  .page-section.active > .team-section,
  .page-section.active > .focus-section,
  .page-section.active > .exp-section,
  #sec-services > section.section,
  #sec-software > section.section,
  #sec-casestudies > section.section{min-height:auto}

  /* A single content gutter and vertical section rhythm sitewide. */
  .section,
  .home-section,
  .team-section,
  .focus-section,
  .exp-section,
  .pricing-section,
  .states-section,
  .contact-section,
  .story-section,
  .legal-content{
    padding:var(--mobile-section-space) var(--mobile-gutter);
  }
  .cta-section,
  .prefooter-cta{
    padding:4.5rem var(--mobile-gutter);
  }
  footer{padding:3.75rem var(--mobile-gutter) 0}
  .page-hero{
    padding:6.75rem var(--mobile-gutter) 3.5rem;
  }
  .hero-section{
    min-height:auto;
    padding:7rem var(--mobile-gutter) 4rem;
  }

  /* Predictable page-title, section-title and card-title hierarchy. */
  .hero-title{
    font-size:2.35rem;
    line-height:1.12;
    letter-spacing:-.025em;
    margin-bottom:1.25rem;
  }
  .page-hero h1{
    font-size:2.15rem;
    line-height:1.16;
    letter-spacing:-.02em;
  }
  .section-header h2,
  .home-section-head h2,
  .team-section-header h2,
  .solution-overview h2,
  .pricing-block h2,
  .states-inner h2,
  .legal-content h2,
  .career-grow h2,
  .prefooter-cta h2,
  .cta-section h2{
    font-size:1.65rem;
    line-height:1.22;
    letter-spacing:-.015em;
  }
  .home-card h3,
  .service-card h3,
  .career-feature h3,
  .career-role h3,
  .software-directory-group h3,
  .svc-main-card h3,
  .soft-main h3,
  .cs-acc-title h3{
    font-size:1.2rem;
    line-height:1.3;
  }
  .section-subtitle,
  .section-header p,
  .home-section-head p,
  .team-section-header p,
  .page-hero p,
  .hero-sub{
    font-size:1rem;
    line-height:1.7;
  }

  /* Uniform separation below headings and introductions. */
  .section-header,
  .team-section-header,
  .home-section-head{
    margin-bottom:var(--mobile-heading-space);
  }
  .section-header h2,
  .team-section-header h2,
  .home-section-head h2{margin-bottom:.75rem}
  .section-subtitle{margin-top:.75rem}
  .eyebrow{
    font-size:.78rem;
    line-height:1.4;
    margin-bottom:.7rem;
  }

  /* Consistent inner spacing for the main card and feature surfaces. */
  .home-card,
  .service-card,
  .exp-card,
  .why-point,
  .mini-tab-card,
  .ftab-card,
  .svc-main-card,
  .svc-feature-card,
  .svc-connected-card,
  .soft-detail-card,
  .career-feature,
  .career-role,
  .career-general,
  .career-training-note,
  .pricing-card,
  .states-core,
  .states-rule,
  .states-process-card,
  .states-note{
    padding:var(--mobile-card-pad);
  }
  .home-dark-feature,
  .home-pricing-strip,
  .why-visual,
  .why-matters-box,
  .career-benefits,
  .pricing-promise,
  .states-cta,
  .cs-cover,
  .contact-info-card{
    padding:1.5rem;
  }

  /* Lists and long copy stay inside the common gutter. */
  .legal-content ol,
  .legal-content ul,
  .states-core ul,
  .career-list,
  .pricing-promise ul{
    margin-left:0;
    padding-left:1.25rem;
  }
  .section-inner,
  .home-inner,
  .story-inner,
  .states-inner,
  .pricing-inner,
  .contact-inner,
  .legal-content{width:100%;max-width:100%}
}

@media(max-width:480px){
  :root{
    --mobile-gutter:1rem;
    --mobile-section-space:3.25rem;
    --mobile-heading-space:1.75rem;
    --mobile-card-pad:1.1rem;
  }
  .hero-title{font-size:2.05rem}
  .page-hero h1{font-size:1.9rem}
  .section-header h2,
  .home-section-head h2,
  .team-section-header h2,
  .solution-overview h2,
  .pricing-block h2,
  .states-inner h2,
  .legal-content h2,
  .career-grow h2,
  .prefooter-cta h2,
  .cta-section h2{font-size:1.5rem}
  .page-hero{padding-top:6.25rem;padding-bottom:3rem}
  .hero-section{padding-top:6.5rem;padding-bottom:3.5rem}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* Multipage architecture and consolidated responsive safeguards. */
html{scroll-padding-top:104px}
body{min-width:320px}
main{display:block;min-height:60vh}
.page-section{display:block}
.skip-link{position:fixed;left:1rem;top:1rem;z-index:5000;transform:translateY(-200%)}
.skip-link:focus{transform:none}
.nav-links button,.utility-nav button,.mobile-menu button,.nav-subgroup>button,.mobile-subgroup>button{
  appearance:none;border:0;background:transparent;color:var(--text-dark);font:inherit;cursor:pointer
}
.nav-links>li>button,.utility-nav>li>button{font-size:.9375rem;font-weight:600;letter-spacing:.01em;padding:.5rem .9rem;border-radius:6px;white-space:nowrap}
.nav-dropdown>button,.nav-subgroup>button,.mobile-menu-group>button,.mobile-subgroup>button{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.65rem;text-align:left}
.nav-dropdown>button:hover,.nav-dropdown>button.active{color:var(--accent);background:rgba(28,82,169,.07)}
.cs-acc-header{font-family:var(--font);width:100%;text-align:left}
.software-directory-card[href]{text-decoration:none}
.team-card[role="button"]:focus-visible,.cs-video-thumb[role="button"]:focus-visible,.cs-acc-header:focus-visible,
.nav-links button:focus-visible,.mobile-menu button:focus-visible,a:focus-visible,button:focus-visible{
  outline:3px solid #3b6fd4;outline-offset:3px
}
[role="dialog"][aria-hidden="true"]{display:none}
[role="dialog"][aria-hidden="false"]{display:flex}
.software-back-link{display:inline-flex;margin:0 0 1rem;padding:.35rem 0;font-size:.875rem;font-weight:700;color:var(--accent);text-decoration:none}
.software-panel.active{display:block}
img{max-width:100%;height:auto}
table{max-width:100%}

@media(max-width:1160px){
  /* The hamburger layout is active throughout the tablet range. Keep the
     document in natural flow here as well, rather than retaining the legacy
     full-screen scroll snapping that previously remained active above 768px. */
  body{scroll-snap-type:none;overflow-x:clip}
  .page-section,
  .page-section.active > .hero-section,
  .page-section.active > section.section,
  .page-section.active > .story-section,
  .page-section.active > .cta-section,
  .page-section.active > .page-hero,
  .page-section.active > .contact-section,
  .page-section.active > .team-section,
  .page-section.active > .focus-section,
  .page-section.active > .exp-section,
  #sec-services > section.section,
  #sec-software > section.section,
  #sec-casestudies > section.section{
    min-height:auto;
    scroll-snap-align:none;
    scroll-snap-stop:normal;
  }
  .navbar{height:78px;padding:0 1.25rem}
  .nav-logo img{height:58px;max-width:154px}
  .nav-links,.utility-nav{display:none}
  .hamburger{display:flex}
  .mobile-menu{top:78px;align-items:stretch;gap:.2rem;padding:1rem var(--mobile-gutter,1.25rem) 2rem;text-align:left}
  .mobile-menu>a,.mobile-menu-group>button,.mobile-menu-group>a{width:100%;min-height:48px;padding:.75rem .8rem;text-align:left;justify-content:space-between;font-size:1rem;border-radius:6px}
  .mobile-submenu{padding:.15rem 0 .35rem .8rem}
  .mobile-submenu>a,.mobile-subgroup>button,.mobile-subgroup>a{width:100%;min-height:44px;padding:.65rem .8rem;text-align:left;justify-content:space-between;font-size:.95rem;white-space:normal;overflow-wrap:anywhere}
  .mobile-subsubmenu{padding:.1rem 0 .3rem .8rem}
  .mobile-subsubmenu>a{display:block;width:100%;padding:.6rem .8rem;text-align:left;font-size:.9rem;white-space:normal;overflow-wrap:anywhere}
  .mobile-menu svg{flex:0 0 auto;margin-left:auto}
  .page-hero,.hero-section{padding-top:calc(78px + 3rem)}
  .section-inner,.home-inner,.story-inner,.states-inner,.pricing-inner,.contact-inner,.legal-content,
  .page-section,main{min-width:0;max-width:100%}
  img,video,iframe,svg{max-width:100%}
  html{scroll-padding-top:90px}
}

@media(max-width:768px){
  :root{--mobile-gutter:1.25rem;--mobile-section-space:4rem;--mobile-heading-space:2rem;--mobile-card-pad:1.25rem}
  .page-hero,.hero-section,.section,.home-section,.story-section,.team-section,.focus-section,.exp-section,
  .states-section,.pricing-section,.contact-section,.prefooter-cta{padding-left:var(--mobile-gutter);padding-right:var(--mobile-gutter)}
  .section,.home-section,.story-section,.team-section,.focus-section,.exp-section,.states-section,.pricing-section,.contact-section{padding-top:var(--mobile-section-space);padding-bottom:var(--mobile-section-space)}
  h1,.page-hero h1{font-size:clamp(2rem,9vw,2.65rem);line-height:1.12}
  h2,.section-header h2,.home-section-head h2,.team-section-header h2,.solution-overview h2,.pricing-block h2,.states-inner h2,.legal-content h2,.career-grow h2,.prefooter-cta h2,.cta-section h2{font-size:clamp(1.55rem,7vw,2rem);line-height:1.2}
  h3{font-size:clamp(1.2rem,5.5vw,1.45rem);line-height:1.3}
  p{font-size:1rem;line-height:1.7}
  .page-hero p{font-size:1.05rem}
  .section-header,.home-section-head,.team-section-header{margin-bottom:var(--mobile-heading-space)}
  .service-card,.team-card,.exp-card,.career-role-card,.career-benefit-card,.pricing-card,.software-directory-card,.cs-cover,.contact-info-card{padding:var(--mobile-card-pad)}
  /* Long focus items need the full line length on phones and small tablets. */
  .focus-grid{grid-template-columns:minmax(0,1fr);gap:1rem}
  /* Our Expertise: use one full-width card per row on phones. */
  .exp-knowledge-grid{grid-template-columns:minmax(0,1fr);gap:1.25rem;margin-bottom:2.5rem}
  .exp-knowledge-card{width:100%;min-width:0;padding:var(--mobile-card-pad)}
  .exp-knowledge-card h4,.exp-knowledge-card p{overflow-wrap:anywhere}
  .hero-cta-row,.career-cta-row,.solution-links{align-items:stretch}
  .hero-cta-row>a,.career-cta-row>a,.solution-links>a{width:100%;justify-content:center;text-align:center}
  .footer-inner{grid-template-columns:1fr 1fr;gap:2.25rem 1.25rem}
  .footer-brand{grid-column:1/-1}
  .footer-bottom{gap:1rem;text-align:left;align-items:flex-start}
  .footer-legal-links{justify-content:flex-start}
  .table-wrap,.soft-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .modal-card,.team-modal,.video-modal{max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);overflow:auto}
}

@media(max-width:600px){
  /* Portrait, name, role and action remain comfortably grouped at phone widths. */
  .team-grid{grid-template-columns:minmax(0,1fr);gap:1.25rem}
  .team-card{width:100%;min-width:0}
  .team-info{padding-left:.75rem;padding-right:.75rem}

  /* Give biography copy usable width and keep names clear of the close control. */
  .team-modal-overlay{padding:.75rem}
  .team-modal{max-width:calc(100vw - 1.5rem);padding:1.5rem 1.25rem 1.35rem}
  .team-modal-name{padding-right:2.75rem;font-size:1.4rem;overflow-wrap:anywhere}
  .team-modal-title{padding-right:2.25rem;margin-bottom:1.1rem}
  .team-modal-close{top:.75rem;right:.75rem}

  /* Phones use a calm single-column footer; two columns begin at tablet width. */
  .footer-inner{grid-template-columns:minmax(0,1fr)}
  .footer-brand{grid-column:auto}
}

@media(max-width:480px){
  :root{--mobile-gutter:1rem;--mobile-section-space:3.25rem;--mobile-heading-space:1.75rem;--mobile-card-pad:1.1rem}
  .footer-inner{grid-template-columns:1fr}
  .footer-brand{grid-column:auto}
  .page-hero{padding-top:6.25rem;padding-bottom:3rem}
  .hero-section{padding-top:6.5rem;padding-bottom:3.5rem}
}

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

/* Home hero: keep the complete message and both actions in the first viewport. */
body{scroll-snap-type:none}
.page-section,
.page-section.active > section.section,
.page-section.active > .story-section,
.page-section.active > .cta-section,
.page-section.active > .page-hero,
.page-section.active > .contact-section,
.page-section.active > .team-section,
.page-section.active > .focus-section,
.page-section.active > .exp-section,
#sec-services > section.section,
#sec-software > section.section,
#sec-casestudies > section.section{
  min-height:auto;scroll-snap-align:none;scroll-snap-stop:normal
}
.flyout-panel{overflow-y:auto;overscroll-behavior:contain}
.footer-bottom p,.footer-legal-links,.footer-legal-links a{color:rgba(255,255,255,.72)}
.page-section.active > .hero-section{
  min-height:100vh;
  min-height:100svh;
}
@media(min-width:1161px){
  .page-section.active > .page-hero{
    min-height:100vh;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
}

@media(max-width:1160px){
  .flyout-panel.open{display:none}
  .page-section.active > .hero-section{
    min-height:100vh;
    min-height:100svh;
    padding-top:calc(78px + clamp(1rem,3vh,2rem));
    padding-bottom:clamp(1.25rem,3vh,2.5rem);
  }
  .hero-title{
    font-size:clamp(2.35rem,min(7vw,7.8vh),4rem);
    margin-bottom:clamp(.9rem,2.2vh,1.4rem);
  }
  .hero-sub{
    font-size:clamp(1rem,2.25vh,1.15rem);
    line-height:1.55;
    margin-bottom:clamp(1rem,2.5vh,1.75rem);
  }
}

@media(max-width:768px){
  .page-section.active > .hero-section{
    min-height:100vh;
    min-height:100svh;
    padding-top:calc(78px + clamp(.75rem,2.2vh,1.25rem));
    padding-bottom:clamp(1rem,2.2vh,1.75rem);
  }
  .hero-title{
    font-size:clamp(2rem,min(9vw,6.7vh),2.65rem);
    line-height:1.08;
    margin-bottom:clamp(.75rem,1.8vh,1.15rem);
  }
  .hero-sub{
    font-size:clamp(.9rem,2vh,1rem);
    line-height:1.5;
    margin-bottom:clamp(.85rem,2vh,1.25rem);
  }
}

@media(max-width:480px){
  .hero-cta-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;width:100%}
  .hero-cta-row>a{
    width:100%;min-height:44px;padding:.7rem .45rem;
    font-size:.82rem;white-space:nowrap;
  }
}

@media(max-width:380px){
  /* Avoid squeezed labels and remain robust when browser text is enlarged. */
  .hero-cta-row{grid-template-columns:minmax(0,1fr)}
  .hero-cta-row>a{white-space:normal;font-size:.9rem;padding:.75rem 1rem}
}

@media(min-width:1161px) and (max-height:800px){
  .hero-title{font-size:clamp(3.1rem,min(5.4vw,9.4vh),4.85rem)}
  .hero-sub{font-size:1.15rem;line-height:1.55}
}

/* ===== DESKTOP-ONLY FIXES (min-width:1161px) — mobile/tablet below this untouched ===== */
@media(min-width:1161px){
  /* --- Single-line navbar (was wrapping into 2 rows). Utility items now
     live under a "More" dropdown inside nav-links, so only 7 top-level
     items need to fit — sizing can stay close to the original. --- */
  .navbar{gap:.3rem}
  .nav-logo{margin-right:clamp(1.25rem,2vw,2.5rem)}
  .nav-links{position:static;margin-left:auto;gap:.1rem}
  /* Scoped to >li>a (not the broader ".nav-links a") so this only sizes the
     top-level nav items (Home, Pricing, dropdown triggers, etc.) and does not
     also shrink links nested inside dropdown panels (Your Own Dedicated Team,
     Who Are We, Clio, Filevine, ...), which were being caught by the old
     descendant selector and rendering smaller than their flyout counterparts. */
  .nav-links>li>a,.nav-links>li>button{font-size:.92rem;padding:.52rem .68rem}
  .nav-logo img{height:64px;max-width:160px}

  /* Keep the rightmost menu fully inside the desktop viewport. */
  #navMoreDropdownPanel{
    left:auto;right:0;transform:none;
    min-width:240px;
    max-width:min(320px,calc(100vw - 3rem));
  }

  /* --- Dropdown sub-item button/link font mismatch (Solutions + Software menus).
     Buttons don't inherit font-family the way links do in some browsers, so pin
     every relevant font property explicitly (with !important as a safety net)
     to guarantee CARET / Assembly Software / Other Software match the plain
     software links exactly. Desktop dropdown only. --- */
  .nav-dropdown-menu .nav-subgroup>button{
    font-family:var(--font)!important;
    font-size:1rem!important;
    font-weight:600!important;
    line-height:normal!important;
    letter-spacing:normal!important;
    color:var(--navy)!important;
    padding:.7rem 1.1rem;border-radius:8px;
  }
  /* --- Remove stray underline on flyout sub-tab links (Overview, Check Writing, etc.) --- */
  .flyout-panel a{text-decoration:none;display:block}

  /* --- Card/box heading selector fixes: markup uses h2/h3 but CSS targeted h4/h5,
     so headings fell back to oversized global heading styles with no spacing
     before the paragraph beneath them. Restoring intended card-heading sizing. --- */
  .exp-knowledge-card h2{font-size:1.15rem;font-weight:700;margin-bottom:.7rem;color:var(--text-dark);line-height:1.3}
  .svc-feature-card h2{color:var(--white);font-size:1.05rem;font-weight:700;margin-bottom:.6rem;line-height:1.3}
  .svc-connected-card h2{color:var(--text-dark);font-size:1.1rem;font-weight:700;margin-bottom:1rem;line-height:1.3}
  .svc-main-card h2{color:var(--text-dark);font-size:1.6rem;font-weight:700;margin-bottom:1.25rem;line-height:1.25}
  .svc-step-body h3{color:var(--text-dark);font-size:1rem;font-weight:700;margin-bottom:.35rem;line-height:1.3}
  .soft-detail-card h2,.soft-detail-card h3{color:var(--white);font-size:1.25rem;font-weight:700;margin-bottom:1rem;line-height:1.3}
  .ftab-card h2,.ftab-card h3{color:var(--text-dark);font-size:1.25rem;font-weight:700;margin-bottom:.85rem;line-height:1.3}
  .mini-tab-card h3{color:var(--text-dark);font-size:1rem;font-weight:700;margin-bottom:.5rem;line-height:1.3}
  .contact-info-card h2{color:var(--white);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;line-height:1.25}
  .why-matters-box h2{color:var(--white);margin-bottom:1.25rem;font-size:1.6rem;font-weight:700;line-height:1.25}

  /* --- Fact/stat cards: number and label must stack, not run into one line --- */
  .cs-fact strong{display:block}

  /* --- Inline arrow links styled as plain underlined text; make them read as buttons --- */
  .cta-inline-link{
    display:inline-flex;align-items:center;gap:.4rem;
    background:rgba(28,82,169,0.09);color:var(--accent)!important;
    font-weight:700;padding:.4rem 1rem;border-radius:24px;
    text-decoration:none!important;white-space:nowrap;
    transition:all var(--transition);
    margin:.3em .05em;vertical-align:middle;
  }
  .cta-inline-link:hover{background:var(--accent);color:var(--white)!important;transform:translateY(-1px)}

  /* --- Solutions dropdown: "Your Own Dedicated Team" was a plain link while
     "Full-Service Outsourcing" is a button with a trailing chevron, so the two
     rows looked inconsistent. Give the link the same right-aligned arrow and
     spacing so both rows read as one uniform list. Desktop dropdown only —
     the mobile menu uses separate markup/classes and is untouched. --- */
  .nav-dropdown-menu a.nav-dropdown-link-arrow{
    display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  }
  .nav-dropdown-menu a.nav-dropdown-link-arrow svg{flex-shrink:0}
}
@media(min-width:1161px) and (max-width:1400px){
  .navbar{padding:0 1.5rem}
  .nav-logo{margin-right:1.25rem}
  .nav-links>li>a,.nav-links>li>button{font-size:.84rem;padding:.44rem .52rem}
  .nav-logo img{height:56px;max-width:145px}
}

@media(max-height:650px){
  .page-section.active > .hero-section{
    min-height:auto;padding-top:calc(78px + 1rem);padding-bottom:1.5rem
  }
  .hero-title{font-size:clamp(2rem,min(7vw,7vh),3.25rem);margin-bottom:.75rem}
  .hero-sub{font-size:.95rem;line-height:1.45;margin-bottom:.9rem}
}

/* ===================================================================
   ADDITIONAL COMPONENTS - v89 update
   Solution page feature boxes, interactive lead headings, security
   callout boxes, states map, careers leadership block, pricing polish
   =================================================================== */

/* --- Interactive "lead" statement heading used on solution pages --- */
.solution-lead-wrap{
  display:flex;align-items:flex-start;gap:.85rem;
  margin:0 0 1.5rem;padding:1.1rem 1.4rem;
  background:linear-gradient(135deg,rgba(28,82,169,0.07),rgba(28,82,169,0.02));
  border-left:4px solid var(--navy-mid);border-radius:0 var(--radius-md) var(--radius-md) 0;
}
.solution-lead-wrap .solution-lead-mark{
  flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:50%;
  background:var(--navy-mid);color:var(--white);
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;font-weight:800;line-height:1;
}
.solution-lead{
  font-size:1.35rem;font-weight:800;color:var(--navy);
  margin-bottom:0!important;line-height:1.35;letter-spacing:-.01em;
}

/* --- Feature grid: turns plain lists into scannable boxes --- */
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:1.5rem 0 1.75rem}
.feature-box{
  display:flex;gap:.85rem;align-items:flex-start;
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:1.15rem 1.25rem;box-shadow:var(--shadow-sm);transition:var(--transition);
}
.feature-box:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(28,82,169,.3)}
.feature-box-icon{
  flex:0 0 auto;width:2.15rem;height:2.15rem;border-radius:8px;
  background:rgba(28,82,169,0.1);color:var(--navy-mid);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;
}
.feature-box p{margin:0!important;font-size:.98rem!important;line-height:1.6!important}

/* --- Security & Compliance: quick-facts strip under the intro --- */
.quickfacts-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.75rem 0 2.5rem}
.quickfact{
  background:var(--bg-light);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:1.15rem 1.25rem;text-align:center;
}
.quickfact strong{display:block;color:var(--navy);font-size:1.02rem;margin-bottom:.3rem}
.quickfact span{color:var(--text-muted);font-size:.88rem;line-height:1.5}

/* --- Security & Compliance: highlighted disclosure boxes (Insurance / Rule 5.3) --- */
.callout-box{
  background:var(--bg-light);border:1px solid var(--border);border-left:4px solid var(--accent);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:1.5rem 1.75rem;margin:1.25rem 0 2rem;
}
.callout-box h2{margin-top:0!important;font-size:1.5rem!important}
.callout-box p:last-child{margin-bottom:0!important}
.callout-box-tag{
  display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);background:rgba(28,82,169,.1);padding:.3rem .75rem;border-radius:20px;
  margin-bottom:.85rem;
}

/* --- States We Serve: interactive main statement + US map --- */
.states-statement{
  font-size:clamp(1.5rem,3vw,2.15rem);font-weight:800;color:var(--navy);
  line-height:1.3;letter-spacing:-.01em;max-width:820px;margin-bottom:.5rem!important;
}
.states-statement .accent{color:var(--navy)}
.states-map-card{
  background:var(--navy);border-radius:var(--radius-lg);
  padding:2.5rem 2rem 2rem;margin:2.5rem 0;position:relative;overflow:hidden;
}
.states-map-card::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px);
  background-size:36px 36px;
}
.states-map-card svg{position:relative;display:block;margin:0 auto;max-width:760px;width:100%;height:auto}
.us-state-group{animation-play-state:paused}
.states-map-card.visible .us-state-group{animation-play-state:running}
.us-state-path{
  fill:rgba(255,255,255,0.28);
  stroke:var(--navy);
  stroke-width:1.1;
  stroke-linejoin:round;
  transition:fill .2s ease;
}
.us-state-group .us-state-path{
  animation:stateFillIn .55s ease forwards;
  animation-play-state:inherit;
  animation-delay:inherit;
}
@keyframes stateFillIn{
  from{fill:rgba(255,255,255,0.28)}
  to{fill:#ffffff}
}
.us-state-path:hover{fill:#ffb703!important;cursor:pointer}
.us-state-label{
  fill:var(--navy);
  font-family:var(--font);
  font-size:8px;
  font-weight:800;
  text-anchor:middle;
  opacity:0;
  pointer-events:none;
  animation:stateLabelIn .45s ease forwards;
  animation-play-state:inherit;
  animation-delay:inherit;
}
@keyframes stateLabelIn{
  from{opacity:0}
  to{opacity:1}
}
.states-map-caption{
  position:relative;text-align:center;color:rgba(255,255,255,.72);
  font-size:.92rem;margin-top:1.25rem!important;
}

/* --- Careers: redesigned leadership-path block (moved into main content flow) --- */
.career-grow-split{
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:2.5rem;align-items:center;
  max-width:1080px;margin:0 auto;
}
.career-grow-split .career-grow-copy{text-align:left}
.career-grow-split .career-grow-copy .eyebrow{color:rgba(255,255,255,.75)}
.career-grow-split .career-grow-copy h2{color:#fff;margin-bottom:1rem}
.career-grow-split .career-grow-copy p{color:rgba(255,255,255,.82);margin-bottom:.9rem}
.career-grow-split .careers-actions{justify-content:flex-start;margin-top:1.5rem}
.career-grow-path{
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);
  border-radius:var(--radius-md);padding:1.75rem;
}
.career-grow-path-step{display:flex;gap:1rem;align-items:flex-start;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,0.12)}
.career-grow-path-step:last-child{border-bottom:none}
.career-grow-path-num{
  flex:0 0 auto;width:2rem;height:2rem;border-radius:50%;background:rgba(255,255,255,0.14);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;
}
.career-grow-path-step div>strong{display:block;color:#fff;font-size:.98rem;margin-bottom:.15rem}
.career-grow-path-step div>span{color:rgba(255,255,255,.7);font-size:.85rem}

/* --- Careers: open-roles headcount (plain bold text, inline with meta) --- */

/* --- Pricing: cleaner rhythm inside the "What You Can Count On" band --- */
.pricing-promise{padding:2.75rem}
.pricing-promise h2{margin-bottom:1.25rem!important}
.pricing-promise-list{list-style:none!important;padding-left:0!important;display:flex;flex-direction:column;gap:1rem!important;margin-bottom:0}
.pricing-promise-list li{
  display:flex;gap:.85rem;align-items:flex-start;
  background:rgba(255,255,255,0.06);border-radius:var(--radius-md);padding:1rem 1.25rem;
}
.pricing-promise-check{
  flex:0 0 auto;width:1.6rem;height:1.6rem;border-radius:50%;
  background:rgba(255,255,255,0.16);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;
}
.pricing-promise h3{margin-top:2.75rem!important;padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.16)}
.pricing-promise .solution-links{margin-top:2rem!important}

@media(max-width:900px){
  .feature-grid{grid-template-columns:1fr}
  .quickfacts-row{grid-template-columns:1fr}
  .career-grow-split{grid-template-columns:1fr;gap:1.75rem}
  .career-grow-split .career-grow-copy{text-align:left}
  .career-grow-split .careers-actions{justify-content:flex-start}
}

/* ===== Homepage hero: final mobile/tablet overrides (match reference build) =====
   Placed at the end of the stylesheet so these specific hero properties win
   over any earlier, unrelated historical breakpoint rules for the same
   selectors. Only hero-specific properties are set here; all other rules in
   the earlier breakpoint blocks (headings, cards, spacing scales, etc.) are
   untouched. */
@media(max-width:768px){
  .hero-section{
    height:auto;
    min-height:100svh;
    padding:clamp(26px,5vh,44px) 20px;
  }
  .hero-content{width:100%}
  .hero-title{
    font-size:clamp(2rem,9vw,2.85rem);
    line-height:1.1;
    margin-bottom:20px;
  }
  .hero-title-line{white-space:normal}
  .hero-bg-text span{font-size:clamp(7rem,39vw,13rem)}
  .hero-sub{
    max-width:620px;
    margin-bottom:24px;
    font-size:1rem;
    line-height:1.55;
  }
  .hero-cta-row{gap:12px}
  .btn-hero-primary,.btn-hero-secondary{min-height:50px;padding:0.82rem 1.5rem}
}
@media(max-width:480px){
  .hero-cta-row{flex-direction:column}
  .btn-hero-primary,.btn-hero-secondary{width:100%}
}
