/* =========================================================
   Infini8 — inner pages layer
   Loaded AFTER style.css on every page except index.html.
   Extends the brand system: mega-menu nav, page heroes,
   content sections, tools, legal / article prose.
   ========================================================= */

/* ---------- small shared helpers ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  text-transform:uppercase; letter-spacing:.16em;
  font-size:12px; font-weight:600; color:var(--blue);
  margin:0 0 18px;
}
.eyebrow::before{
  content:""; width:22px; height:2px; border-radius:2px;
  background:linear-gradient(90deg,var(--accent),var(--blue));
}
.eyebrow.light{ color:#8cc4ff; }
.eyebrow.center{ justify-content:center; }
.muted{ color:var(--muted); }
.mt-0{ margin-top:0 !important; }
.mb-0{ margin-bottom:0 !important; }
.center{ text-align:center; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* =========================================================
   MEGA NAV
   ========================================================= */
.mega-nav{ gap:6px; }
.mega-nav .nav-item{ position:relative; display:flex; align-items:center; }
.mega-nav .nav-link{
  display:inline-flex; align-items:center; gap:6px;
  padding:10px 14px; border-radius:10px;
}
.mega-nav .nav-link::after{ left:14px; right:14px; width:auto; transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.mega-nav .nav-link:hover::after,
.mega-nav .nav-link.current::after{ transform:scaleX(1); width:auto; }
.mega-nav .nav-link.current{ color:var(--blue); }
.mega-nav .caret{
  width:10px; height:10px; flex:none; transition:transform .2s ease;
  fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;
}
.mega-nav .nav-item:hover .caret,
.mega-nav .nav-item:focus-within .caret{ transform:rotate(180deg); }
.sub-toggle{ display:none; }

.mega{
  position:absolute; top:100%; left:50%;
  padding-top:14px;                 /* hover bridge */
  transform:translate(-50%,8px);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
  z-index:70;
}
.mega-nav .nav-item:hover > .mega,
.mega-nav .nav-item:focus-within > .mega{
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translate(-50%,0);
  transition:opacity .2s ease, transform .2s ease, visibility 0s;
}
.mega-panel{
  background:#fff; border:1px solid var(--line); border-radius:20px;
  box-shadow:0 30px 70px -30px rgba(0,18,56,.45);
  padding:14px; display:grid; gap:6px;
  width:max-content; max-width:min(92vw, 760px);
}
.mega-panel.cols-2{ grid-template-columns:1fr 1fr; }
.mega-panel.split{ grid-template-columns:270px 1fr; gap:14px; }

.main-nav .mega a{ padding:0; font-size:inherit; color:inherit; }
.main-nav .mega a::after{ display:none; }
.mega-link{
  display:flex !important; gap:14px; align-items:flex-start;
  padding:14px 16px !important; border-radius:14px;
  width:310px; transition:background .15s ease;
}
.mega-link:hover{ background:var(--tint); }
.mega-link .mi{
  flex:none; width:38px; height:38px; border-radius:11px;
  background:var(--tint-2); color:var(--blue);
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .15s ease, color .15s ease;
}
.mega-link:hover .mi{ background:var(--blue); color:#fff; }
.mega-link .mi svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.mega-link b{ display:block; font-family:var(--ff-display); font-weight:600; color:var(--ink); font-size:15.5px; line-height:1.3; }
.mega-link small{ display:block; color:var(--muted); font-size:13px; line-height:1.45; margin-top:3px; font-weight:400; }
.mega-link.overview{ grid-column:1 / -1; width:auto; border-top:1px solid var(--line); border-radius:0 0 12px 12px; padding-top:14px !important; margin-top:4px; }
.mega-link.overview b{ color:var(--blue-deep); font-size:14.5px; }

.mega-feature{
  display:flex !important; flex-direction:column; justify-content:space-between;
  border-radius:16px; padding:22px !important; color:#fff !important;
  background:radial-gradient(130% 120% at 0% 0%, #0a4f9e 0%, #00306a 55%, #001a44 100%);
  position:relative; overflow:hidden; min-height:240px;
}
.mega-feature::before{
  content:""; position:absolute; width:220px; height:220px; right:-80px; bottom:-90px; border-radius:50%;
  background:linear-gradient(150deg,#2e96f5,#0a52b8); opacity:.55;
}
.mega-feature > *{ position:relative; }
.mega-feature .tag{ text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:600; color:#8cc4ff; }
.mega-feature b{ font-family:var(--ff-display); font-size:22px; line-height:1.15; display:block; margin:10px 0 8px; }
.mega-feature small{ color:rgba(226,236,250,.8); font-size:13px; line-height:1.5; display:block; }
.mega-feature .go{ margin-top:18px; font-weight:600; font-size:14px; display:inline-flex; gap:8px; align-items:center; }
.mega-group-label{
  text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:600;
  color:var(--muted); padding:10px 16px 2px;
}

/* =========================================================
   PAGE HERO
   ========================================================= */
.page-hero{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg,#ffffff 0%, #eef4fd 60%, #e6eefb 100%);
}
.page-hero::before{
  content:""; position:absolute; z-index:0;
  width:560px; height:560px; right:-120px; top:-140px;
  background:radial-gradient(circle, rgba(58,123,255,.18), rgba(58,123,255,0) 62%);
  animation:orbFloat 16s ease-in-out infinite;
  pointer-events:none;
}
.page-hero .hero-blinds{ opacity:.55; }
.page-hero-inner{ position:relative; z-index:1; padding:56px var(--pad) 84px; }
.page-hero h1{
  font-family:var(--ff-display); font-weight:700; letter-spacing:-.02em; line-height:1.06;
  font-size:clamp(34px, 5vw, 60px); margin:0 0 22px; max-width:900px;
  background:linear-gradient(180deg,#2f86ea 8%, #0c2f5e 92%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:heroRise .9s cubic-bezier(.2,.7,.2,1) both;
}
.page-hero .lede{
  font-size:clamp(16px,1.35vw,20px); color:var(--slate); max-width:680px; margin:0 0 34px;
  animation:heroRise .9s cubic-bezier(.2,.7,.2,1) .1s both;
}
.page-hero .hero-actions{ justify-content:flex-start; }
.page-hero .eyebrow{ animation:heroRise .9s cubic-bezier(.2,.7,.2,1) both; }
.page-hero.center{ text-align:center; }
.page-hero.center h1, .page-hero.center .lede{ margin-inline:auto; }
.page-hero.center .hero-actions, .page-hero.center .crumbs{ justify-content:center; }

/* dark hero variant */
.page-hero.dark{
  background:radial-gradient(120% 140% at 30% 0%, #0a4f9e 0%, #00306a 45%, #001a44 100%);
}
.page-hero.dark .hero-blinds{ opacity:.12; }
.page-hero.dark h1{ background:linear-gradient(180deg,#ffffff 20%, #a8d0ff 100%); -webkit-background-clip:text; background-clip:text; }
.page-hero.dark .lede{ color:rgba(226,236,250,.85); }
.page-hero.dark .crumbs, .page-hero.dark .crumbs a{ color:rgba(226,236,250,.7); }
.page-hero.dark .eyebrow{ color:#8cc4ff; }

.hero-meta{
  display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:40px;
  animation:heroRise .9s cubic-bezier(.2,.7,.2,1) .3s both;
}
.hero-meta div{ font-size:14px; color:var(--muted); }
.hero-meta b{ display:block; font-family:var(--ff-display); color:var(--ink); font-size:17px; font-weight:600; }
.page-hero.dark .hero-meta div{ color:rgba(226,236,250,.7); }
.page-hero.dark .hero-meta b{ color:#fff; }

/* breadcrumbs */
.crumbs{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  font-size:13px; color:var(--muted); margin:0 0 30px;
}
.crumbs a{ color:var(--muted); transition:color .15s; }
.crumbs a:hover{ color:var(--blue); }
.crumbs span[aria-hidden]{ opacity:.5; }

/* =========================================================
   SECTIONS
   ========================================================= */
.section{ padding:96px 0; position:relative; }
.section.tight{ padding:72px 0; }
.section.tint{ background:linear-gradient(180deg,#eef4ff,#e9f1fd); }
.section.soft{ background:linear-gradient(180deg,#ffffff,#f5f8fe); }
.section.dark{
  background:radial-gradient(120% 140% at 50% 0%, #0a4f9e 0%, #00306a 45%, #001a44 100%);
  color:rgba(226,236,250,.85);
}
.section.dark .section-title{ color:#fff; }
.section.dark .section-lede{ color:rgba(226,236,250,.8); }
.section-head{ margin-bottom:54px; }
.section-head.center{ text-align:center; }
.section-head.center .section-lede{ margin-inline:auto; }
.section-head.row{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }

.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split.top{ align-items:start; }
.split.wide-left{ grid-template-columns:1.25fr 1fr; }
.split.wide-right{ grid-template-columns:1fr 1.25fr; }

.prose-lg p{ font-size:17px; color:var(--slate); margin:0 0 18px; }
.prose-lg p:last-child{ margin-bottom:0; }

/* ---------- card grids ---------- */
.grid{ display:grid; gap:24px; }
.grid.c2{ grid-template-columns:repeat(2,1fr); }
.grid.c3{ grid-template-columns:repeat(3,1fr); }
.grid.c4{ grid-template-columns:repeat(4,1fr); }

.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:30px 28px; position:relative; isolation:isolate;
  display:flex; flex-direction:column;
  box-shadow:0 14px 36px -30px rgba(0,18,56,.4);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
a.card:hover, .card.hover:hover{ transform:translateY(-5px); box-shadow:var(--shadow-card); border-color:#d9e2f0; }
.card::after{
  content:""; position:absolute; inset:0; border-radius:inherit; z-index:-1;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), rgba(58,123,255,.08), transparent 60%);
  opacity:0; transition:opacity .35s ease;
}
.card:hover::after{ opacity:1; }
.card h3{ font-family:var(--ff-display); color:var(--ink); font-weight:600; font-size:20px; line-height:1.25; margin:18px 0 10px; }
.card p{ font-size:15px; color:var(--muted); margin:0 0 18px; }
.card p:last-child{ margin-bottom:0; }
.card .learn{ margin-top:auto; }
.card:hover .learn span{ transform:translateX(4px); }
.card .ico{ transition:transform .35s ease; }
.card:hover .ico{ transform:translateY(-3px) scale(1.08); }
.card .num{
  font-family:var(--ff-display); font-weight:700; font-size:14px; letter-spacing:.08em;
  color:var(--blue); display:block;
}
.section.dark .card{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); box-shadow:none; }
.section.dark .card h3{ color:#fff; }
.section.dark .card p{ color:rgba(226,236,250,.75); }

.icon-tile{
  width:52px; height:52px; border-radius:14px; flex:none;
  background:var(--tint-2); color:var(--blue);
  display:inline-flex; align-items:center; justify-content:center;
}
.icon-tile svg{ width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.section.dark .icon-tile{ background:rgba(46,150,245,.16); color:#8cc4ff; }

/* ---------- service journey (4 phases) ---------- */
.journey{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  position:relative; counter-reset:j;
}
.journey::before{
  content:""; position:absolute; left:6%; right:6%; top:43px; height:2px;
  background:linear-gradient(90deg, rgba(46,150,245,0), #2e96f5 12%, #2e96f5 88%, rgba(46,150,245,0));
  opacity:.45;
}
.journey-step{ position:relative; text-align:left; }
.journey-step .dot{
  width:86px; height:86px; border-radius:50%;
  background:#fff; border:1px solid var(--line);
  box-shadow:0 18px 40px -26px rgba(0,18,56,.5);
  display:flex; align-items:center; justify-content:center; color:var(--blue);
  position:relative; margin-bottom:26px;
  transition:transform .3s ease, background .3s ease, color .3s ease;
}
.journey-step:hover .dot{ transform:translateY(-4px); background:var(--blue); color:#fff; }
.journey-step .dot svg{ width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.journey-step .dot::after{
  counter-increment:j; content:"0" counter(j);
  position:absolute; top:-6px; right:-8px;
  background:var(--ink); color:#fff; border-radius:20px;
  font-family:var(--ff-display); font-size:12px; font-weight:700; padding:3px 8px;
}
.journey-step h3{ font-family:var(--ff-display); color:var(--ink); font-size:21px; font-weight:600; margin:0 0 10px; }
.journey-step p{ font-size:15px; color:var(--muted); margin:0 0 14px; }
.journey-step .learn{ font-size:14px; }
.journey-step:hover .learn span{ transform:translateX(4px); }
.loop-note{
  margin:44px auto 0; max-width:720px; text-align:center;
  display:flex; gap:14px; align-items:center; justify-content:center;
  color:var(--muted); font-size:15px;
}
.loop-note svg{ width:44px; height:24px; color:var(--blue); flex:none; }

/* ---------- service detail ---------- */
.check-list{ display:flex; flex-direction:column; gap:16px; }
.check-list li{ display:flex; gap:14px; align-items:flex-start; font-size:16px; color:var(--slate); }
.check-list li b{ color:var(--ink); font-weight:600; }
.check-list .check{ width:24px; height:24px; }
.section.dark .check-list li{ color:rgba(226,236,250,.85); }
.section.dark .check-list li b{ color:#fff; }
.section.dark .check{ color:#5fb0ff; }

.deliverable{
  display:flex; gap:18px; align-items:flex-start;
  padding:22px 0; border-top:1px solid var(--line);
}
.deliverable:last-child{ border-bottom:1px solid var(--line); }
.deliverable h4{ font-family:var(--ff-display); color:var(--ink); font-size:18px; font-weight:600; margin:0 0 4px; }
.deliverable p{ margin:0; color:var(--muted); font-size:15px; }
.deliverable .icon-tile{ width:44px; height:44px; border-radius:12px; }
.deliverable .icon-tile svg{ width:22px; height:22px; }

.facts{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:30px; box-shadow:var(--shadow-soft);
}
.facts h3{ font-family:var(--ff-display); color:var(--ink); font-size:20px; margin:0 0 18px; }
.facts dl{ margin:0; display:grid; gap:0; }
.facts dl > div{ display:grid; grid-template-columns:130px 1fr; gap:14px; padding:14px 0; border-top:1px solid var(--line); }
.facts dt{ font-size:13px; text-transform:uppercase; letter-spacing:.1em; font-weight:600; color:var(--muted); padding-top:2px; }
.facts dd{ margin:0; color:var(--ink); font-weight:500; font-size:15px; }
.facts .btn{ width:100%; margin-top:22px; }

/* timeline (vertical) */
.timeline{ position:relative; display:flex; flex-direction:column; gap:0; }
.timeline li{ position:relative; padding:0 0 34px 64px; }
.timeline li:last-child{ padding-bottom:0; }
.timeline li::before{
  content:""; position:absolute; left:21px; top:44px; bottom:0; width:2px;
  background:linear-gradient(180deg,#2e96f5,rgba(46,150,245,.1));
}
.timeline li:last-child::before{ display:none; }
.timeline .t-num{
  position:absolute; left:0; top:0; width:44px; height:44px; border-radius:50%;
  background:linear-gradient(180deg,#1f8bef,#0a6fd6); color:#fff;
  font-family:var(--ff-display); font-weight:700; font-size:15px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 20px -10px rgba(10,124,224,.9);
}
.timeline h4{ font-family:var(--ff-display); color:var(--ink); font-size:19px; font-weight:600; margin:8px 0 6px; }
.timeline .when{ font-size:12px; text-transform:uppercase; letter-spacing:.12em; font-weight:600; color:var(--blue); }
.timeline p{ margin:6px 0 0; color:var(--muted); font-size:15px; }
.section.dark .timeline h4{ color:#fff; }
.section.dark .timeline p{ color:rgba(226,236,250,.75); }
.section.dark .timeline .when{ color:#8cc4ff; }

/* next / prev service nav */
.pager{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.pager a{
  border:1px solid var(--line); border-radius:var(--radius); padding:24px 28px; background:#fff;
  display:flex; flex-direction:column; gap:4px; transition:transform .2s, box-shadow .2s;
}
.pager a:hover{ transform:translateY(-3px); box-shadow:var(--shadow-card); }
.pager small{ text-transform:uppercase; letter-spacing:.12em; font-size:12px; font-weight:600; color:var(--muted); }
.pager b{ font-family:var(--ff-display); color:var(--ink); font-size:20px; font-weight:600; }
.pager .next{ text-align:right; }

/* FAQ */
.faq{ display:flex; flex-direction:column; gap:12px; max-width:860px; margin-inline:auto; }
.faq details{
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:0 24px;
  transition:box-shadow .2s, border-color .2s;
}
.faq details[open]{ box-shadow:var(--shadow-card); border-color:#d9e2f0; }
.faq summary{
  cursor:pointer; list-style:none; padding:20px 0;
  font-family:var(--ff-display); font-weight:600; color:var(--ink); font-size:17px;
  display:flex; justify-content:space-between; gap:20px; align-items:center;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; flex:none; width:30px; height:30px; border-radius:50%;
  background:var(--tint-2); color:var(--blue); font-size:20px; line-height:30px; text-align:center;
  transition:transform .2s;
}
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ margin:0 0 22px; color:var(--muted); font-size:15px; }

/* CTA band */
.cta-band{
  border-radius:28px; padding:64px 56px; position:relative; overflow:hidden;
  background:radial-gradient(120% 160% at 0% 0%, #0a4f9e 0%, #00306a 50%, #001a44 100%);
  display:grid; grid-template-columns:1.4fr auto; gap:40px; align-items:center;
}
.cta-band::before{
  content:""; position:absolute; width:340px; height:340px; right:-110px; top:-150px; border-radius:50%;
  background:linear-gradient(150deg,#2e96f5,#0a52b8); opacity:.5;
}
.cta-band > *{ position:relative; }
.cta-band h2{ font-family:var(--ff-display); color:#fff; font-size:clamp(26px,3.2vw,38px); line-height:1.1; margin:0 0 12px; letter-spacing:-.015em; }
.cta-band p{ color:rgba(226,236,250,.82); margin:0; max-width:560px; }
.cta-band .actions{ display:flex; gap:14px; flex-wrap:wrap; justify-content:flex-end; }
.btn-outline-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.35); }
.btn-outline-light:hover{ transform:translateY(-2px); border-color:#fff; }

/* chips */
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 16px; border-radius:30px;
  background:#fff; border:1px solid var(--line);
  font-size:14px; font-weight:500; color:var(--ink);
  transition:border-color .15s, transform .15s, box-shadow .15s;
}
.chip:hover{ border-color:#c9d8ee; transform:translateY(-2px); box-shadow:0 10px 20px -16px rgba(0,18,56,.5); }
.chip.soft{ background:var(--tint); border-color:transparent; }
.section.dark .chip{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.14); color:#fff; }

/* tag pill */
.pill{
  display:inline-block; padding:5px 12px; border-radius:20px;
  background:var(--tint-2); color:var(--blue-deep);
  font-size:12px; font-weight:600; letter-spacing:.04em;
}
.pill.green{ background:#e3f6ec; color:#17784a; }
.pill.amber{ background:#fff3dc; color:#94600b; }
.pill.dark{ background:var(--ink); color:#fff; }

/* stat row */
.stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.stat{ border-left:2px solid #2e96f5; padding-left:20px; }
.stat b{ display:block; font-family:var(--ff-display); font-weight:700; font-size:clamp(32px,3.6vw,46px); color:var(--ink); line-height:1; letter-spacing:-.02em; margin-bottom:8px; }
.stat span{ font-size:14px; color:var(--muted); }
.section.dark .stat b{ color:#fff; }
.section.dark .stat span{ color:rgba(226,236,250,.75); }

/* =========================================================
   BLUEPRINT
   ========================================================= */
.bp-pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.bp-pillar{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:34px 30px; position:relative; overflow:hidden;
  box-shadow:0 18px 50px -38px rgba(0,18,56,.5);
}
.bp-pillar .big{
  font-family:var(--ff-display); font-weight:700; font-size:72px; line-height:.9;
  background:linear-gradient(180deg,#2e96f5,#0a52b8); -webkit-background-clip:text; background-clip:text; color:transparent;
  display:block; margin-bottom:18px;
}
.bp-pillar h3{ font-family:var(--ff-display); color:var(--ink); font-size:23px; margin:0 0 10px; }
.bp-pillar > p{ color:var(--muted); font-size:15px; margin:0 0 20px; }
.bp-pillar ul{ display:flex; flex-direction:column; gap:10px; border-top:1px solid var(--line); padding-top:18px; }
.bp-pillar li{ font-size:14.5px; color:var(--slate); display:flex; gap:10px; }
.bp-pillar li::before{ content:""; flex:none; width:7px; height:7px; border-radius:50%; background:var(--blue); margin-top:8px; }

.feature-solution{
  border-radius:28px; overflow:hidden; position:relative;
  background:radial-gradient(120% 140% at 0% 0%, #0a4f9e 0%, #00306a 50%, #001a44 100%);
  display:grid; grid-template-columns:1.2fr 1fr; gap:0;
}
.feature-solution .fs-copy{ padding:56px; position:relative; z-index:1; }
.feature-solution h2{ font-family:var(--ff-display); color:#fff; font-size:clamp(28px,3.6vw,44px); line-height:1.08; margin:0 0 16px; letter-spacing:-.015em; }
.feature-solution p{ color:rgba(226,236,250,.85); margin:0 0 28px; max-width:520px; }
.feature-solution .fs-visual{ position:relative; min-height:360px; display:flex; align-items:center; justify-content:center; padding:40px; }
.bp-stack{ display:flex; flex-direction:column; gap:14px; width:100%; max-width:340px; }
.bp-stack div{
  border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06);
  border-radius:16px; padding:18px 20px; color:#fff;
  display:flex; align-items:center; gap:16px;
  backdrop-filter:blur(6px);
  transition:transform .3s ease, background .3s ease;
}
.bp-stack div:hover{ transform:translateX(-6px); background:rgba(255,255,255,.12); }
.bp-stack div:nth-child(2){ margin-left:24px; }
.bp-stack div:nth-child(3){ margin-left:48px; }
.bp-stack span{ font-family:var(--ff-display); font-weight:700; color:#5fb0ff; font-size:22px; }
.bp-stack b{ font-family:var(--ff-display); font-weight:600; font-size:16px; display:block; }
.bp-stack small{ color:rgba(226,236,250,.7); font-size:13px; }

/* compare table */
.compare{ width:100%; border-collapse:separate; border-spacing:0; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.compare th, .compare td{ text-align:left; padding:18px 22px; border-bottom:1px solid var(--line); font-size:15px; vertical-align:top; }
.compare thead th{ font-family:var(--ff-display); color:var(--ink); font-size:16px; background:#f7faff; }
.compare thead th.hl{ background:var(--ink); color:#fff; }
.compare td.hl{ background:#f3f8ff; color:var(--ink); font-weight:500; }
.compare tr:last-child td{ border-bottom:none; }
.compare td:first-child{ color:var(--muted); font-weight:500; }
.table-wrap{ overflow-x:auto; border-radius:var(--radius-lg); }

/* =========================================================
   TOOLS (shared)
   ========================================================= */
.tool-card{ display:flex; flex-direction:column; }
.tool-card .tool-meta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:auto; padding-top:8px; margin-bottom:18px; }
.tool-shell{
  background:#fff; border:1px solid var(--line); border-radius:24px;
  box-shadow:0 30px 70px -45px rgba(0,18,56,.55);
  overflow:hidden;
}
.tool-head{
  padding:22px 30px; border-bottom:1px solid var(--line); background:#f7faff;
  display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
}
.tool-head h2{ font-family:var(--ff-display); color:var(--ink); font-size:19px; margin:0; }
.tool-body{ padding:34px 30px; }
.tool-note{ font-size:13px; color:var(--muted); margin:18px 0 0; }

/* progress */
.progress{ height:8px; background:var(--tint-2); border-radius:8px; overflow:hidden; width:220px; }
.progress i{ display:block; height:100%; width:0; background:linear-gradient(90deg,#3a7bff,#0a6fd6); border-radius:8px; transition:width .35s ease; }
.progress-label{ font-size:13px; color:var(--muted); font-weight:600; }

/* quiz */
.quiz-q{ display:none; animation:qIn .4s cubic-bezier(.2,.7,.2,1); }
.quiz-q.active{ display:block; }
@keyframes qIn{ from{ opacity:0; transform:translateX(18px); } to{ opacity:1; transform:none; } }
.quiz-q .dim{ margin-bottom:12px; }
.quiz-q h3{ font-family:var(--ff-display); color:var(--ink); font-size:clamp(21px,2.3vw,27px); line-height:1.25; margin:0 0 24px; max-width:720px; }
.options{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.option{ position:relative; }
.option input{ position:absolute; opacity:0; pointer-events:none; }
.option label{
  display:flex; gap:14px; align-items:flex-start; cursor:pointer;
  border:1.5px solid var(--line); border-radius:14px; padding:16px 18px;
  font-size:15px; color:var(--slate); background:#fff; height:100%;
  transition:border-color .15s, background .15s, box-shadow .15s;
}
.option label:hover{ border-color:#b9cfee; box-shadow:0 10px 22px -16px rgba(0,18,56,.45); }
.option label .k{
  flex:none; width:26px; height:26px; border-radius:8px; border:1.5px solid #c7d6ec;
  font-family:var(--ff-display); font-size:13px; font-weight:700; color:var(--muted);
  display:flex; align-items:center; justify-content:center; transition:.15s;
}
.option input:checked + label{ border-color:var(--blue); background:#f1f7ff; color:var(--ink); }
.option input:checked + label .k{ background:var(--blue); border-color:var(--blue); color:#fff; }
.option input:focus-visible + label{ outline:2px solid var(--blue); outline-offset:2px; }
.quiz-nav{ display:flex; justify-content:space-between; align-items:center; margin-top:30px; gap:12px; }
.btn-text{ background:none; border:none; color:var(--muted); font-weight:600; font-family:var(--ff-body); font-size:15px; cursor:pointer; padding:10px 4px; }
.btn-text:hover{ color:var(--ink); }
.btn-text:disabled{ opacity:.35; cursor:default; }
.btn:disabled{ opacity:.45; cursor:not-allowed; transform:none !important; box-shadow:none; }

/* results */
.results{ display:none; }
.results.show{ display:block; animation:qIn .5s cubic-bezier(.2,.7,.2,1); }
.result-top{ display:grid; grid-template-columns:240px 1fr; gap:44px; align-items:center; margin-bottom:40px; }
.gauge{ position:relative; width:240px; height:240px; }
.gauge svg{ width:100%; height:100%; transform:rotate(-90deg); }
.gauge circle{ fill:none; stroke-width:14; }
.gauge .track{ stroke:var(--tint-2); }
.gauge .val{ stroke:url(#gaugeGrad); stroke-linecap:round; transition:stroke-dashoffset 1.2s cubic-bezier(.2,.7,.2,1); }
.gauge .g-label{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.gauge .g-label b{ font-family:var(--ff-display); font-size:58px; color:var(--ink); line-height:1; }
.gauge .g-label span{ font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-weight:600; margin-top:6px; }
.level-name{ font-family:var(--ff-display); font-size:clamp(26px,3vw,36px); color:var(--ink); margin:8px 0 10px; line-height:1.1; }
.bars{ display:flex; flex-direction:column; gap:16px; }
.bar-row{ display:grid; grid-template-columns:130px 1fr 48px; gap:14px; align-items:center; font-size:14px; }
.bar-row .bl{ font-weight:600; color:var(--ink); }
.bar-row .bt{ height:10px; background:var(--tint-2); border-radius:10px; overflow:hidden; }
.bar-row .bt i{ display:block; height:100%; width:0; border-radius:10px; background:linear-gradient(90deg,#3a7bff,#0a6fd6); transition:width 1s cubic-bezier(.2,.7,.2,1); }
.bar-row .bt i.low{ background:linear-gradient(90deg,#f0a43a,#e07a10); }
.bar-row .bv{ text-align:right; color:var(--muted); font-variant-numeric:tabular-nums; font-weight:600; }
.recs{ margin-top:36px; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.rec{ border:1px solid var(--line); border-radius:16px; padding:22px; background:#fbfdff; }
.rec h4{ font-family:var(--ff-display); color:var(--ink); margin:10px 0 6px; font-size:17px; }
.rec p{ margin:0; font-size:14.5px; color:var(--muted); }
.result-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:34px; padding-top:28px; border-top:1px solid var(--line); align-items:center; }

/* calculator / inputs */
.calc{ display:grid; grid-template-columns:1.05fr 1fr; gap:0; }
.calc-inputs{ padding:34px 30px; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:26px; }
.calc-outputs{ padding:34px 30px; background:linear-gradient(180deg,#f7faff,#eef4ff); }
.field label{ display:flex; justify-content:space-between; gap:12px; font-size:14.5px; font-weight:600; color:var(--ink); margin-bottom:10px; }
.field label output, .field label .val{ font-family:var(--ff-display); color:var(--blue-deep); font-variant-numeric:tabular-nums; }
.field small{ display:block; font-size:12.5px; color:var(--muted); margin-top:8px; }
.field .group-label{ text-transform:uppercase; letter-spacing:.12em; font-size:11.5px; color:var(--muted); font-weight:600; }
input[type=range]{
  -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:6px;
  background:linear-gradient(90deg,var(--blue) var(--fill,50%), var(--tint-2) var(--fill,50%));
  outline:none; cursor:pointer;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:22px; height:22px; border-radius:50%;
  background:#fff; border:3px solid var(--blue); box-shadow:0 4px 10px -2px rgba(10,124,224,.6);
  transition:transform .15s;
}
input[type=range]::-webkit-slider-thumb:hover{ transform:scale(1.15); }
input[type=range]::-moz-range-thumb{ width:18px; height:18px; border-radius:50%; background:#fff; border:3px solid var(--blue); }
input[type=range]:focus-visible{ outline:2px solid var(--blue); outline-offset:6px; }
.out-big{ margin-bottom:26px; }
.out-big small{ text-transform:uppercase; letter-spacing:.12em; font-size:12px; font-weight:600; color:var(--muted); }
.out-big b{ display:block; font-family:var(--ff-display); font-size:clamp(38px,4.4vw,54px); color:var(--ink); line-height:1.05; letter-spacing:-.02em; font-variant-numeric:tabular-nums; margin-top:6px; }
.out-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.out{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px; }
.out small{ display:block; font-size:12.5px; color:var(--muted); font-weight:500; margin-bottom:4px; }
.out b{ font-family:var(--ff-display); font-size:22px; color:var(--ink); font-variant-numeric:tabular-nums; }
.split-bar{ display:flex; height:14px; border-radius:10px; overflow:hidden; background:var(--tint-2); margin:24px 0 10px; }
.split-bar i{ display:block; height:100%; transition:width .5s ease; }
.split-bar i.a{ background:#0a6fd6; }
.split-bar i.b{ background:#5fb0ff; }
.legend{ display:flex; gap:20px; flex-wrap:wrap; font-size:13px; color:var(--muted); }
.legend span::before{ content:""; display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:8px; vertical-align:-1px; background:var(--c); }

/* gap finder table */
.gap-list{ display:flex; flex-direction:column; }
.gap-row{
  display:grid; grid-template-columns:1fr 280px 120px; gap:18px; align-items:center;
  padding:16px 0; border-top:1px solid var(--line);
}
.gap-row:first-child{ border-top:none; padding-top:0; }
.gap-row .gp b{ display:block; color:var(--ink); font-weight:600; font-size:15px; }
.gap-row .gp small{ color:var(--muted); font-size:13px; }
.seg{ display:grid; grid-template-columns:repeat(4,1fr); background:var(--tint); border-radius:10px; padding:3px; gap:3px; }
.seg input{ position:absolute; opacity:0; pointer-events:none; }
.seg label{
  text-align:center; font-size:12.5px; font-weight:600; color:var(--muted);
  padding:8px 4px; border-radius:8px; cursor:pointer; transition:background .15s, color .15s;
  white-space:nowrap;
}
.seg label:hover{ color:var(--ink); }
.seg input:checked + label{ background:#fff; color:var(--blue-deep); box-shadow:0 4px 10px -6px rgba(0,18,56,.4); }
.seg input:focus-visible + label{ outline:2px solid var(--blue); }
.hrs{ display:flex; align-items:center; gap:8px; }
.hrs input{
  width:70px; padding:9px 10px; border:1px solid #d6e2f2; border-radius:10px;
  font-family:var(--ff-body); font-size:15px; color:var(--ink); text-align:right;
}
.hrs input:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(10,124,224,.15); }
.hrs input:disabled{ background:#f4f6fa; color:#a0aabb; }
.hrs span{ font-size:13px; color:var(--muted); white-space:nowrap; }
.gap-head{ display:grid; grid-template-columns:1fr 280px 120px; gap:18px; font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); font-weight:600; padding-bottom:12px; margin-bottom:6px; border-bottom:1px solid var(--line); }
.gap-results{ margin-top:30px; border-top:1px solid var(--line); padding-top:30px; }
.gap-summary{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:28px; }
.gap-summary .out{ background:linear-gradient(180deg,#f7faff,#eef4ff); }
.gap-summary .out b{ font-size:30px; }
.gap-rank{ display:flex; flex-direction:column; gap:12px; }
.gap-item{
  display:grid; grid-template-columns:36px 1fr auto; gap:16px; align-items:center;
  padding:16px 18px; border:1px solid var(--line); border-radius:14px; background:#fff;
}
.gap-item .rk{ width:36px; height:36px; border-radius:50%; background:var(--ink); color:#fff; font-family:var(--ff-display); font-weight:700; display:flex; align-items:center; justify-content:center; font-size:14px; }
.gap-item b{ color:var(--ink); font-size:15.5px; }
.gap-item p{ margin:2px 0 0; font-size:13.5px; color:var(--muted); }
.gap-item .hv{ text-align:right; font-family:var(--ff-display); color:var(--blue-deep); font-weight:700; font-size:18px; white-space:nowrap; }
.gap-item .hv small{ display:block; font-family:var(--ff-body); font-weight:500; color:var(--muted); font-size:12px; }
.empty{ text-align:center; color:var(--muted); padding:24px; border:1px dashed #cfdcef; border-radius:14px; font-size:14.5px; }

/* =========================================================
   ABOUT / PLATFORMS / CLIENTS
   ========================================================= */
.values{ counter-reset:v; }
.value{ padding:28px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:80px 1fr; gap:20px; }
.value::before{ counter-increment:v; content:"0" counter(v); font-family:var(--ff-display); font-weight:700; font-size:28px; color:var(--blue); line-height:1; }
.value h3{ font-family:var(--ff-display); color:var(--ink); margin:0 0 8px; font-size:21px; }
.value p{ margin:0; color:var(--muted); font-size:15.5px; }

.quote{
  font-family:var(--ff-display); font-weight:500; color:var(--ink);
  font-size:clamp(22px,2.6vw,32px); line-height:1.3; letter-spacing:-.01em; margin:0;
}
.quote::before{ content:"\201C"; display:block; font-size:80px; line-height:.6; color:var(--blue); margin-bottom:10px; }

.infinity-visual{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  background:radial-gradient(120% 140% at 30% 0%, #0a4f9e 0%, #00306a 50%, #001a44 100%);
  aspect-ratio:5/4; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-soft);
}
.infinity-visual svg{ width:70%; color:#fff; opacity:.95; filter:drop-shadow(0 20px 40px rgba(46,150,245,.5)); animation:markDrift 14s ease-in-out infinite; }

.platform-cat{ display:grid; grid-template-columns:300px 1fr; gap:40px; padding:36px 0; border-top:1px solid var(--line); }
.platform-cat:last-child{ border-bottom:1px solid var(--line); }
.platform-cat .pc-head{ display:flex; gap:16px; align-items:flex-start; }
.platform-cat h3{ font-family:var(--ff-display); color:var(--ink); font-size:20px; margin:0 0 6px; }
.platform-cat p{ margin:0; color:var(--muted); font-size:14.5px; }
.platform-cat .chips{ align-content:flex-start; }
.chip .dotc{ width:8px; height:8px; border-radius:50%; background:var(--blue); }

.logo-wall{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.logo-wall div{
  background:#fff; min-height:120px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  color:var(--ink); padding:20px; text-align:center; transition:background .2s;
}
.logo-wall div:hover{ background:#f7faff; }
.logo-wall b{ font-family:var(--ff-display); font-size:18px; font-weight:600; }
.logo-wall small{ color:var(--muted); font-size:12.5px; }
.logo-wall .ph{ color:#9fb1cc; }
.logo-wall .ph svg{ height:20px; width:104px; opacity:.45; }

.case-detail{ display:grid; grid-template-columns:1fr 1.3fr; gap:0; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fff; box-shadow:0 18px 50px -38px rgba(0,18,56,.5); }
.case-detail + .case-detail{ margin-top:30px; }
.case-detail .cd-side{
  padding:40px; position:relative; overflow:hidden; color:#fff;
  background:radial-gradient(130% 130% at 0% 0%, #0a4f9e 0%, #00306a 55%, #001a44 100%);
  display:flex; flex-direction:column;
}
.case-detail .cd-side::before{ content:""; position:absolute; width:260px; height:260px; border-radius:50%; right:-100px; bottom:-110px; background:linear-gradient(150deg,#2e96f5,#0a52b8); opacity:.5; }
.case-detail .cd-side > *{ position:relative; }
.case-detail .cd-side .case-tag{ color:#8cc4ff; }
.case-detail .cd-side .case-stat{ color:#fff; font-size:64px; margin:18px 0 6px; }
.case-detail .cd-side .case-metric{ color:rgba(226,236,250,.75); }
.case-detail .cd-side .chips{ margin-top:auto; }
.case-detail .cd-body{ padding:40px; }
.case-detail h3{ font-family:var(--ff-display); color:var(--ink); font-size:24px; margin:0 0 18px; line-height:1.2; }
.case-detail h4{ text-transform:uppercase; letter-spacing:.12em; font-size:12px; color:var(--blue); margin:22px 0 6px; }
.case-detail p{ margin:0; color:var(--muted); font-size:15px; }

/* contact */
.contact-wrap{ display:grid; grid-template-columns:1fr 1.15fr; gap:64px; align-items:start; }
.contact-list{ display:flex; flex-direction:column; gap:20px; margin-top:34px; }
.contact-list li{ display:flex; gap:16px; align-items:flex-start; }
.contact-list b{ display:block; font-family:var(--ff-display); color:var(--ink); font-size:17px; }
.contact-list span, .contact-list a{ color:var(--muted); font-size:15px; }
.contact-list a:hover{ color:var(--blue); }
.cta-form select{
  width:100%; background:var(--form-field); border:1px solid #a8d2f3; border-radius:12px;
  padding:15px 18px; font-family:var(--ff-body); font-size:15px; color:var(--ink);
  -webkit-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003a8c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:16px;
}
.cta-form select:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(10,124,224,.18); }
.collab-types .card{ padding:26px; }
.collab-types .card h3{ margin-top:14px; font-size:18px; }

/* =========================================================
   INSIGHTS
   ========================================================= */
.filter-bar{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:40px; }
.filter-bar button{
  font-family:var(--ff-body); font-size:14px; font-weight:600; color:var(--muted);
  background:#fff; border:1px solid var(--line); border-radius:30px; padding:10px 18px; cursor:pointer;
  transition:.15s;
}
.filter-bar button:hover{ color:var(--ink); border-color:#c9d8ee; }
.filter-bar button[aria-pressed="true"]{ background:var(--ink); color:#fff; border-color:var(--ink); }
.post-featured{
  display:grid; grid-template-columns:1.1fr 1fr; gap:0; margin-bottom:40px;
  border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fff;
  box-shadow:0 18px 50px -38px rgba(0,18,56,.5); transition:transform .2s, box-shadow .2s;
}
.post-featured:hover{ transform:translateY(-4px); box-shadow:var(--shadow-soft); }
.post-cover{
  position:relative; overflow:hidden; min-height:300px;
  background:radial-gradient(120% 140% at 20% 0%, #0a4f9e 0%, #00306a 50%, #001a44 100%);
}
.post-cover .cover-art{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.post-featured .pf-body{ padding:44px; display:flex; flex-direction:column; }
.post-featured h2{ font-family:var(--ff-display); color:var(--ink); font-size:clamp(24px,2.6vw,32px); line-height:1.15; margin:14px 0 14px; letter-spacing:-.01em; }
.post-featured p{ color:var(--muted); margin:0 0 24px; }
.post-meta{ display:flex; gap:14px; align-items:center; flex-wrap:wrap; font-size:13px; color:var(--muted); }
.post-meta .dotsep{ width:4px; height:4px; border-radius:50%; background:#b5c3d8; }
.post-card{ padding:0; overflow:hidden; }
.post-card .post-cover{ min-height:170px; }
.post-card .pc-body{ padding:24px 26px 26px; display:flex; flex-direction:column; flex:1; }
.post-card h3{ margin:12px 0 10px; font-size:19px; }
.post-card .post-meta{ margin-top:auto; padding-top:10px; }
.post-card.is-hidden{ display:none; }
.soon{ font-size:12px; font-weight:600; color:var(--muted); background:#f1f4f9; padding:4px 10px; border-radius:20px; }

.newsletter{ display:flex; gap:12px; max-width:520px; margin-top:26px; }
.newsletter input{
  flex:1; min-width:0; padding:15px 18px; border-radius:40px; border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08); color:#fff; font-family:var(--ff-body); font-size:15px;
}
.newsletter input::placeholder{ color:rgba(226,236,250,.6); }
.newsletter input:focus{ outline:none; border-color:#5fb0ff; }
.newsletter-status{ color:#8cc4ff; font-size:14px; font-weight:600; margin:12px 0 0; min-height:1px; }

/* =========================================================
   ARTICLE & LEGAL PROSE
   ========================================================= */
.prose{ max-width:760px; margin-inline:auto; font-size:17px; color:var(--slate); line-height:1.75; }
.prose h2{ font-family:var(--ff-display); color:var(--ink); font-size:clamp(24px,2.6vw,30px); line-height:1.2; margin:52px 0 16px; letter-spacing:-.01em; scroll-margin-top:100px; }
.prose h3{ font-family:var(--ff-display); color:var(--ink); font-size:20px; margin:34px 0 10px; }
.prose p{ margin:0 0 20px; }
.prose ul, .prose ol{ margin:0 0 22px; padding-left:22px; }
.prose ul{ list-style:disc; }
.prose ol{ list-style:decimal; }
.prose li{ margin-bottom:8px; }
.prose li::marker{ color:var(--blue); }
.prose a{ color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.prose strong{ color:var(--ink); }
.prose blockquote{
  margin:34px 0; padding:4px 0 4px 26px; border-left:3px solid var(--blue);
  font-family:var(--ff-display); color:var(--ink); font-size:22px; line-height:1.4;
}
.prose .callout{
  background:var(--tint); border-radius:16px; padding:22px 26px; margin:30px 0; font-size:15.5px;
}
.prose .callout b{ display:block; font-family:var(--ff-display); color:var(--ink); margin-bottom:4px; }
.prose table{ width:100%; border-collapse:collapse; margin:0 0 24px; font-size:15px; }
.prose th, .prose td{ text-align:left; border-bottom:1px solid var(--line); padding:12px 10px; vertical-align:top; }
.prose th{ color:var(--ink); font-family:var(--ff-display); }
.ph-note{ background:#fff3dc; color:#7a4e06; border-radius:6px; padding:1px 6px; font-size:.92em; }

.legal-layout{ display:grid; grid-template-columns:240px 1fr; gap:64px; align-items:start; }
.legal-layout .prose{ margin:0; max-width:none; }
.legal-layout .prose h2:first-child{ margin-top:0; }
.toc{ position:sticky; top:110px; }
.toc h4{ text-transform:uppercase; letter-spacing:.12em; font-size:12px; color:var(--muted); margin:0 0 14px; }
.toc ol{ display:flex; flex-direction:column; gap:2px; border-left:2px solid var(--line); counter-reset:toc; }
.toc a{ display:block; padding:7px 0 7px 16px; margin-left:-2px; border-left:2px solid transparent; font-size:14px; color:var(--muted); transition:.15s; }
.toc a:hover{ color:var(--ink); }
.toc a.active{ color:var(--blue); border-left-color:var(--blue); font-weight:600; }

.article-head{ max-width:860px; }
.author{ display:flex; gap:14px; align-items:center; margin-top:30px; }
.author .av{ width:46px; height:46px; border-radius:50%; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; }
.author .av svg{ width:26px; height:16px; }
.author b{ display:block; color:var(--ink); font-size:15px; }
.author span{ font-size:13px; color:var(--muted); }
.article-cover{ margin-top:-40px; position:relative; z-index:2; }
.article-cover .post-cover{ border-radius:24px; min-height:340px; box-shadow:var(--shadow-soft); }

/* careers */
.job{
  display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center;
  padding:28px 30px; border:1px solid var(--line); border-radius:var(--radius); background:#fff;
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.job + .job{ margin-top:16px; }
.job:hover{ transform:translateY(-3px); box-shadow:var(--shadow-card); border-color:#d9e2f0; }
.job h3{ font-family:var(--ff-display); color:var(--ink); font-size:21px; margin:0 0 8px; }
.job p{ margin:0 0 14px; color:var(--muted); font-size:15px; max-width:640px; }
.job .chips{ gap:8px; }
.job .chip{ padding:6px 12px; font-size:13px; }
.job.open-app{ background:linear-gradient(180deg,#f7faff,#eef4ff); border-style:dashed; border-color:#bcd2ee; }

/* =========================================================
   FOOTER (inner pages)
   ========================================================= */
.site-footer .footer-inner.five{ grid-template-columns:1.4fr 1fr 1fr 1fr 1.1fr; }
.footer-bottom{
  position:relative; z-index:1; margin-top:44px; padding-top:24px; border-top:1px solid #e2e9f4;
  display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:13px; color:var(--muted);
}
.footer-bottom a{ color:var(--muted); }
.footer-bottom a:hover{ color:var(--blue); }
.footer-bottom nav{ display:flex; gap:22px; flex-wrap:wrap; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  .mega-nav .nav-link{ padding:10px 10px; }
}
@media (max-width:1080px){
  .grid.c4{ grid-template-columns:repeat(2,1fr); }
  .journey{ grid-template-columns:repeat(2,1fr); gap:44px 24px; }
  .journey::before{ display:none; }
  .stat-row{ grid-template-columns:repeat(2,1fr); gap:32px 24px; }
  .site-footer .footer-inner.five{ grid-template-columns:1fr 1fr 1fr; }
  .bp-pillars{ grid-template-columns:1fr; }
  .logo-wall{ grid-template-columns:repeat(3,1fr); }
  .gap-row, .gap-head{ grid-template-columns:1fr 260px 110px; }
}

@media (max-width:880px){
  /* mobile nav */
  .mega-nav{ gap:0; }
  .main-nav.mega-nav.open{ max-height:calc(100vh - 78px); overflow-y:auto; }
  .mega-nav .nav-item{ flex-wrap:wrap; width:100%; border-top:1px solid #f0f3f8; }
  .mega-nav .nav-item > .nav-link{ flex:1; border-top:none; padding:16px 26px; border-radius:0; }
  .mega-nav .nav-link .caret{ display:none; }
  .sub-toggle{
    display:flex; align-items:center; justify-content:center;
    width:56px; height:54px; background:none; border:none; border-left:1px solid #f0f3f8;
    color:var(--ink); cursor:pointer;
  }
  .sub-toggle svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s; }
  .nav-item.open .sub-toggle svg{ transform:rotate(180deg); }
  .mega{
    position:static; transform:none !important; width:100%;
    padding:0; opacity:1; visibility:visible; pointer-events:auto;
    display:none; transition:none;
  }
  .mega-nav .nav-item:hover > .mega, .mega-nav .nav-item:focus-within > .mega{ transform:none; }
  .nav-item.open > .mega{ display:block; }
  .mega-panel, .mega-panel.cols-2, .mega-panel.split{
    grid-template-columns:1fr; width:100%; max-width:none;
    border:none; border-radius:0; box-shadow:none; background:#f7faff; padding:8px 14px 14px;
  }
  .mega-link{ width:auto; padding:12px !important; }
  .mega-link small{ display:none; }
  .mega-link .mi{ width:32px; height:32px; }
  .mega-feature{ min-height:0; padding:18px !important; }
  .mega-feature small{ display:none; }
  .main-nav .mega a{ border-top:none; }
  .mobile-cta{ display:block; padding:18px 26px 22px; border-top:1px solid #f0f3f8; width:100%; }
  .mobile-cta .btn{ width:100%; border-top:none !important; padding:15px 30px !important; color:#fff !important; }

  .split, .split.wide-left, .split.wide-right{ grid-template-columns:1fr; gap:40px; }
  .grid.c3{ grid-template-columns:1fr 1fr; }
  .feature-solution{ grid-template-columns:1fr; }
  .feature-solution .fs-copy{ padding:40px 30px 10px; }
  .feature-solution .fs-visual{ min-height:0; padding:20px 30px 40px; justify-content:flex-start; }
  .cta-band{ grid-template-columns:1fr; padding:44px 30px; }
  .cta-band .actions{ justify-content:flex-start; }
  .calc{ grid-template-columns:1fr; }
  .calc-inputs{ border-right:none; border-bottom:1px solid var(--line); }
  .result-top{ grid-template-columns:1fr; justify-items:center; text-align:center; gap:24px; }
  .recs{ grid-template-columns:1fr; }
  .platform-cat{ grid-template-columns:1fr; gap:20px; }
  .case-detail{ grid-template-columns:1fr; }
  .contact-wrap{ grid-template-columns:1fr; gap:44px; }
  .post-featured{ grid-template-columns:1fr; }
  .post-featured .pf-body{ padding:30px; }
  .legal-layout{ grid-template-columns:1fr; gap:24px; }
  .toc{ position:static; }
  .site-footer .footer-inner.five{ grid-template-columns:1fr 1fr; }
  .gap-head{ display:none; }
  .gap-row{ grid-template-columns:1fr auto; gap:12px; }
  .gap-row .gp{ grid-column:1 / -1; }
  .gap-row .seg{ grid-column:1; }
  .gap-summary{ grid-template-columns:1fr; }
  .pager{ grid-template-columns:1fr; }
  .pager .next{ text-align:left; }
}
@media (min-width:881px){ .mobile-cta{ display:none; } }

@media (max-width:560px){
  .grid.c2, .grid.c3, .grid.c4{ grid-template-columns:1fr; }
  .journey{ grid-template-columns:1fr; }
  .options{ grid-template-columns:1fr; }
  .page-hero-inner{ padding:40px var(--pad) 64px; }
  .tool-body, .calc-inputs, .calc-outputs{ padding:26px 20px; }
  .tool-head{ padding:18px 20px; }
  .progress{ width:120px; }
  .gauge{ width:200px; height:200px; }
  .bar-row{ grid-template-columns:96px 1fr 40px; font-size:13px; }
  .out-grid{ grid-template-columns:1fr; }
  .logo-wall{ grid-template-columns:repeat(2,1fr); }
  .value{ grid-template-columns:1fr; gap:10px; }
  .facts dl > div{ grid-template-columns:1fr; gap:4px; }
  .case-detail .cd-side, .case-detail .cd-body{ padding:30px 24px; }
  .job{ grid-template-columns:1fr; padding:24px; }
  .newsletter{ flex-direction:column; }
  .section{ padding:72px 0; }
  .site-footer .footer-inner.five{ grid-template-columns:1fr; }
  .stat-row{ grid-template-columns:1fr 1fr; }
  .seg label{ font-size:11.5px; padding:8px 2px; }
  .gap-item{ grid-template-columns:30px 1fr; }
  .gap-item .hv{ grid-column:2; text-align:left; }
  .gap-item .rk{ width:30px; height:30px; }
}

/* keep legal links clear of the decorative footer mark */
@media (min-width:881px){ .footer-bottom{ padding-right:150px; } }
@media (max-width:880px){ .mega-nav ~ .nav-toggle{ margin-left:auto; } }
@media (max-width:560px){ .hrs input{ width:58px; padding:9px 8px; } }

/* The header shrinks once the page is scrolled past 8px. Without this, the browser's
   scroll anchoring compensates for the height change, pushes scrollY back below the
   threshold and the header flickers between both states. */
html{ overflow-anchor:none; }


/* =========================================================
   CLIENT LOGO SLIDER (partials/logo-slider.php)
   ========================================================= */
.logo-slider{ padding:34px 0 38px; overflow:hidden; }
.ls-viewport{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.ls-rail{ display:flex; width:max-content; animation:lsScroll 34s linear infinite; }
.ls-viewport:hover .ls-rail{ animation-play-state:paused; }
.ls-track{ display:flex; align-items:center; gap:72px; padding:0 72px 0 0; margin:0; list-style:none; }
.ls-item{ flex:none; height:56px; min-width:110px; display:flex; align-items:center; justify-content:center; }
.ls-item img{
  height:34px; width:auto; max-width:150px; object-fit:contain;
  filter:grayscale(1); opacity:.55;
  transition:filter .3s ease, opacity .3s ease, transform .3s ease;
}
.ls-name{
  font-family:var(--ff-display); font-weight:700; font-size:22px; letter-spacing:-.01em;
  color:var(--ink); opacity:.45; white-space:nowrap;
  transition:opacity .3s ease, color .3s ease, transform .3s ease;
}
.ls-item:hover img{ filter:none; opacity:1; transform:translateY(-2px); }
.ls-item:hover .ls-name{ opacity:.9; color:var(--blue-deep); transform:translateY(-2px); }
@keyframes lsScroll{ to{ transform:translateX(-50%); } }

@media (max-width:560px){
  .ls-track{ gap:48px; padding-right:48px; }
  .ls-item img{ height:28px; max-width:120px; }
  .ls-name{ font-size:19px; }
}
/* No motion: show one static, centred, wrapping row */
@media (prefers-reduced-motion:reduce){
  .ls-viewport{ -webkit-mask-image:none; mask-image:none; }
  .ls-rail{ animation:none; width:auto; justify-content:center; }
  .ls-track{ flex-wrap:wrap; justify-content:center; gap:20px 48px; padding:0 20px; }
  .ls-track[aria-hidden="true"]{ display:none; }
}
/* =========================================================
   FORMS: HubSpot connection (js/hubspot-forms.js)
   ========================================================= */
.hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-consent{ margin:2px 0 0; font-size:12.5px; line-height:1.5; color:#345d86; }
.form-consent a{ color:var(--blue-deep); text-decoration:underline; text-underline-offset:2px; }
.cta-form button[disabled], .newsletter button[disabled]{ opacity:.7; cursor:wait; transform:none; }
.newsletter-optin{ display:flex; gap:10px; align-items:flex-start; margin-top:14px; max-width:520px; font-size:13px; line-height:1.5; color:rgba(226,236,250,.82); cursor:pointer; }
.newsletter-optin input{ margin-top:3px; width:16px; height:16px; accent-color:#2e96f5; flex:none; }
.form-status.is-error{ color:#b3261e; }
.newsletter-status.is-error{ color:#ffb4ab; }
