:root{
  --black:#000000; --midnight:#081A2E; --emerald:#0C241B;
  --purple:#5F2D91; --teal:#42F5E6; --pearl:#F8F9FF; --gold:#FFD84D; --orange:#FFBA3D;
  --aurora:linear-gradient(100deg,#5F2D91 0%,#42F5E6 50%,#FFD84D 100%);
  --energy:linear-gradient(100deg,#FFD84D 0%,#FFBA3D 55%,#5F2D91 100%);
  --muted:#9fb0bd;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
/* Contain vertical rubber-band overscroll so the curved footer sections do not
   bounce/flicker on mobile when a scroll gesture stops at the bottom. */
html,body{overscroll-behavior-y:none;}
body{background:var(--black);color:var(--pearl);font-family:'Poppins',system-ui,sans-serif;font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3,h4,.brandmark{font-family:'Poppins',system-ui,sans-serif;font-weight:600;line-height:1.15;letter-spacing:-0.01em;}
.wrap{max-width:1140px;margin:0 auto;padding:0 28px;}
.eyebrow{font-weight:600;font-size:12px;letter-spacing:0.32em;text-transform:uppercase;color:var(--teal);}
.grad{background:var(--aurora);-webkit-background-clip:text;background-clip:text;color:transparent;}
.muted{color:var(--muted);}
a{color:inherit;text-decoration:none;}

/* nav */
nav{position:sticky;top:0;z-index:50;background:rgba(0,0,0,0.72);backdrop-filter:blur(10px);border-bottom:1px solid rgba(248,249,255,0.06);border-radius:0 0 28px 28px;transition:transform .35s cubic-bezier(.2,.7,.2,1),background .3s ease,border-color .3s ease;will-change:transform;}
/* scrolled-down: collapse the bar up out of view (reveals on scroll up) */
nav.nav-hidden{transform:translateY(-100%);}
/* solid once scrolled past the very top */
nav.nav-solid{background:rgba(0,0,0,0.92);border-bottom-color:rgba(248,249,255,0.1);}
/* never hide while the mobile menu is open */
nav:has(.navlinks.open){transform:none!important;}
@media (prefers-reduced-motion:reduce){nav{transition:background .3s ease;}nav.nav-hidden{transform:none;}}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px;gap:18px;}
.brandmark{display:flex;align-items:center;}
.nav-logo{height:42px;width:auto;display:block;}
.navlinks{display:flex;gap:20px;font-size:12.5px;letter-spacing:0.03em;color:var(--muted);align-items:center;}
.navlinks a{white-space:nowrap;}
.btn-primary-mobile{display:none;}  /* mobile-only CTA; hidden on desktop */
.nav-inner{gap:20px;}
.navlinks a:hover{color:var(--pearl);}
.navlinks a.active{color:var(--pearl);}
/* hamburger (hidden on desktop) */
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--pearl);margin:5px 0;transition:.25s;border-radius:2px;}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ===== Mega-menu (smart menu) — desktop ===== */
.nav-item{position:relative;display:flex;align-items:center;}
.nav-services{display:inline-flex;align-items:center;gap:5px;}
.nav-services .chev{transition:transform .2s ease;opacity:.8;}
.has-mega:hover .nav-services .chev,.has-mega:focus-within .nav-services .chev{transform:rotate(180deg);}
.mega{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-8px);
  width:min(980px,calc(100vw - 48px));
  background:rgba(6,11,18,0.98);backdrop-filter:blur(16px);
  border:1px solid rgba(248,249,255,0.10);border-radius:14px;
  box-shadow:0 30px 80px rgba(0,0,0,0.55);
  padding:26px 28px 18px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .2s ease,transform .2s ease,visibility .2s;
  z-index:60;
}
/* invisible bridge so the menu doesn't close in the gap */
.mega::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px;}
/* DESKTOP ONLY: hover / focus-within opens the mega panel. On mobile this is
   gated off because tapping the Services link gives it focus, which would open
   the panel via :focus-within AND fight the JS toggle -> the double-tap bug. */
@media (min-width:1025px){
  .has-mega:hover .mega,.has-mega:focus-within .mega{
    opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
  }
}
.mega.open{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.mega-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.mega-gir{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:-4px 0 20px;padding:13px 18px;border-radius:10px;text-decoration:none;background:linear-gradient(100deg,rgba(214,169,58,0.16),rgba(66,245,230,0.10));border:1px solid rgba(214,169,58,0.38);transition:border-color .2s ease,transform .2s ease;}
.mega-gir:hover{border-color:rgba(214,169,58,0.7);transform:translateY(-1px);}
.mega-gir-txt{font-size:13.5px;color:#e9eef5;line-height:1.45;}
.mega-gir-txt strong{color:var(--gold);font-weight:700;margin-right:6px;}
.mega-gir-cta{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;color:#42f5e6;white-space:nowrap;}
.mega-col{display:flex;flex-direction:column;min-width:0;}
.mega-head{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--teal);font-weight:600;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(66,245,230,0.18);}
.mega-col a{color:#c4d0d9;font-size:13px;line-height:1.35;padding:6px 0;letter-spacing:0;white-space:normal;border:0;transition:color .15s ease,transform .15s ease;}
.mega-col a:hover{color:var(--pearl);transform:translateX(3px);}
.mega-col a.active{color:var(--teal);}
.mega-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(248,249,255,0.08);}
.mega-all{color:var(--teal);font-size:13px;font-weight:500;}
.mega-all:hover{color:var(--pearl);}
.mega-cta{font-size:13px;padding:9px 18px;}
.btn{font-family:'Poppins',sans-serif;font-weight:500;font-size:14px;padding:11px 22px;border-radius:6px;display:inline-block;transition:.2s;cursor:pointer;border:none;white-space:nowrap;}
.btn-primary{background:var(--aurora);color:#06231d;}
.btn-primary:hover{filter:brightness(1.08);}
.btn-ghost{background:transparent;border:1px solid rgba(248,249,255,0.28);color:var(--pearl);}
.btn-ghost:hover{border-color:var(--teal);}
.btn-icon{display:inline-flex;align-items:center;gap:8px;}
.btn-icon svg{width:14px;height:14px;}

/* hero */
.hero{position:relative;padding:140px 0 110px;overflow:hidden;background:linear-gradient(180deg,#06121f,#000);border-radius:36px 36px 0 0;margin-top:-26px;z-index:1;}
.hero.sub{padding:112px 0 56px;}
.aurora{position:absolute;inset:-30% -10% auto -10%;height:140%;z-index:0;pointer-events:none;filter:blur(60px);opacity:.55;
  background:
    radial-gradient(40% 55% at 20% 30%,rgba(95,45,145,.9),transparent 70%),
    radial-gradient(45% 50% at 50% 25%,rgba(66,245,230,.75),transparent 70%),
    radial-gradient(45% 55% at 72% 35%,rgba(255,216,77,.55),transparent 70%),
    radial-gradient(35% 45% at 90% 55%,rgba(255,186,61,.6),transparent 70%);
  animation:drift 16s ease-in-out infinite alternate;}
@keyframes drift{0%{transform:translateX(-3%) translateY(0) scale(1);}100%{transform:translateX(4%) translateY(2%) scale(1.08);}}
.hero .wrap{position:relative;z-index:1;max-width:880px;}
.hero.sub .wrap{max-width:760px;}
.hero h1{font-size:clamp(38px,6vw,68px);font-weight:700;margin:18px 0 22px;}
.hero.sub h1{font-size:clamp(34px,5vw,52px);}
.hero p.sub-p{font-size:clamp(17px,2vw,21px);color:#cdd9e2;max-width:680px;font-weight:300;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;}
.sig{margin-top:26px;font-size:13px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);}

section{padding:84px 0;position:relative;z-index:1;border-radius:36px 36px 0 0;margin-top:-26px;padding-top:90px;background:#000;}
/* Alternating section shades so the curved seam reads between every section.
   Exclude the footer scoop sections (.cred/.closing) which keep their own look. */
section:nth-of-type(odd):not(.cred):not(.closing){background:linear-gradient(180deg,#050e18,#000);}
section:nth-of-type(even):not(.cred):not(.closing){background:linear-gradient(180deg,#020608,#000);}
/* Neutralize legacy inline padding-top:0 so the scoop keeps its top breathing room. */
section[style*="padding-top:0"]{padding-top:90px !important;}
.sec-head{font-size:clamp(26px,3.4vw,38px);font-weight:600;max-width:760px;margin-bottom:14px;}
.sec-lead{color:var(--muted);max-width:640px;margin-bottom:44px;}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;}
.cards.three{grid-template-columns:repeat(3,1fr);}
.card{background:linear-gradient(180deg,rgba(8,26,46,.9),rgba(12,36,27,.55));border:1px solid rgba(248,249,255,0.08);border-radius:16px;padding:30px 26px;position:relative;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease,border-color .25s ease;}
a.card:hover{transform:translateY(-4px);border-color:rgba(66,245,230,0.4);}
.card.signature{border-color:rgba(66,245,230,0.45);}
.card .tag{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;display:inline-block;}
.card h3{font-size:21px;font-weight:600;margin-bottom:10px;}
.card .role{font-size:13px;font-weight:500;color:var(--teal);margin-bottom:14px;}
.card.signature .role{color:var(--gold);}
.card p{color:#c4d0d9;font-size:15.5px;flex:1;}
.card .bar{height:3px;width:54px;background:var(--aurora);border-radius:3px;margin-bottom:20px;}
.card-links{display:flex;flex-direction:column;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(248,249,255,0.08);}
.card-links a{color:var(--teal);font-size:14px;font-weight:500;text-decoration:none;transition:opacity .15s ease,transform .15s ease;}
.card-links a:hover{opacity:0.75;transform:translateX(3px);}
.card.signature .bar{background:var(--energy);}
.card .card-cta{margin-top:22px;align-self:flex-start;justify-content:center;}
/* Card hover lifts the whole card, but ONLY the button is clickable */
.cards .card{cursor:default;}
.cards a.card{cursor:pointer;text-decoration:none;color:inherit;}
.card-ref{margin-top:18px;padding-top:16px;border-top:1px solid rgba(248,249,255,0.08);font-size:13.5px;font-weight:500;color:var(--teal);display:inline-flex;align-items:center;gap:6px;letter-spacing:0.01em;}
.card.signature .card-ref{color:var(--gold);border-top-color:rgba(245,193,66,0.25);}
.card-ref .arr{transition:transform .18s ease;}
a.card:hover .card-ref .arr{transform:translateX(4px);}

/* credibility */
.cred{background:linear-gradient(180deg,#04121f,#000);border-top:1px solid rgba(248,249,255,0.06);border-bottom:1px solid rgba(248,249,255,0.06);border-radius:60px 60px 0 0;margin-top:-40px;position:relative;z-index:1;padding-top:104px;}
.founder-cred{display:grid;grid-template-columns:260px 1fr;gap:44px;align-items:center;margin-top:36px;}
.founder-portrait{margin:0;}
.founder-portrait img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:18px;border:1px solid rgba(248,249,255,0.10);box-shadow:0 20px 50px rgba(0,0,0,.4);display:block;}
.founder-portrait figcaption{display:flex;flex-direction:column;gap:3px;margin-top:16px;}
.fc-name{font-size:18px;font-weight:600;color:var(--pearl);}
.fc-title{font-size:13.5px;color:var(--muted);letter-spacing:.04em;}
.fc-badge{margin-top:8px;display:inline-block;width:fit-content;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);border:1px solid rgba(66,245,230,0.35);border-radius:999px;padding:5px 12px;}
.founder-body{min-width:0;}
.founder-body .stats{margin-top:0;}
@media(max-width:760px){.founder-cred{grid-template-columns:1fr;gap:28px;}.founder-portrait{max-width:220px;}}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px;margin:36px 0 30px;}
.stat .n{font-size:clamp(30px,4vw,44px);font-weight:700;}
.stat .l{font-size:13px;letter-spacing:0.06em;color:var(--muted);text-transform:uppercase;margin-top:4px;}
.cred p.body{max-width:760px;color:#c4d0d9;font-size:17px;}

/* mission */
.mission{text-align:center;padding:96px 0;}
.mission h2{font-size:clamp(28px,4.4vw,48px);font-weight:700;max-width:900px;margin:0 auto;}

/* how we work */
.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:30px;}
.work-item{border-left:2px solid var(--teal);padding:6px 0 6px 18px;}
.work-item b{font-weight:600;font-size:17px;display:block;margin-bottom:4px;}
.work-item span{color:var(--muted);font-size:15px;}
.fed{margin-top:18px;border:1px solid rgba(255,216,77,0.4);border-radius:14px;padding:22px 26px;background:rgba(255,216,77,0.05);display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.fed .fed-amt{font-weight:700;font-size:26px;color:var(--gold);white-space:nowrap;}
.fed p{color:#d8e0e6;font-size:15.5px;}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;}
.pillar{background:rgba(8,26,46,.55);border:1px solid rgba(248,249,255,0.07);border-radius:14px;padding:24px 22px;}
.pillar h4{font-weight:600;font-size:17px;margin-bottom:8px;}
.pillar p{color:var(--muted);font-size:14.5px;}
a.pillar{display:flex;flex-direction:column;text-decoration:none;color:inherit;cursor:pointer;transition:transform .25s ease,border-color .25s ease;}
a.pillar:hover{transform:translateY(-4px);border-color:rgba(66,245,230,0.4);}
a.pillar p{flex:1;}
.pillar-ref{margin-top:16px;padding-top:14px;border-top:1px solid rgba(248,249,255,0.08);font-size:13px;font-weight:500;color:var(--teal);display:inline-flex;align-items:center;gap:6px;}
.pillar-ref .arr{transition:transform .18s ease;}
a.pillar:hover .pillar-ref .arr{transform:translateX(4px);}
.studio{margin-top:26px;color:var(--muted);font-style:italic;max-width:760px;}

/* principles */
.principles{border:1px dashed rgba(248,249,255,0.18);border-radius:16px;padding:34px 30px;color:var(--muted);}
.principles ol{margin:0;padding-left:20px;}
.principles li{margin-bottom:12px;color:#c4d0d9;}
.principles li b{color:var(--pearl);font-weight:600;}

/* sec-head with eyebrow above */
.sec-eyebrow{margin-bottom:14px;}

/* two-col prose */
.prose{max-width:760px;color:#c4d0d9;font-size:16.5px;}
.prose p{margin-bottom:18px;}
.prose h3{color:var(--pearl);font-size:20px;margin:30px 0 10px;}

/* founder feature */
.founder{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:center;}
.founder .photo{border-radius:18px;overflow:hidden;border:1px solid rgba(248,249,255,0.1);position:relative;}
.founder .photo img{width:100%;height:100%;display:block;object-fit:cover;}
.founder .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,0.25));pointer-events:none;}

/* team */
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;}
.member{background:rgba(8,26,46,.55);border:1px solid rgba(248,249,255,0.07);border-radius:16px;padding:0 0 26px;overflow:hidden;}
.member .headshot{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border-bottom:1px solid rgba(248,249,255,0.07);}
.member .body{padding:22px 24px 0;display:flex;flex-direction:column;align-items:flex-start;gap:0;}
.member .li-btn{margin-top:0;}
.member .li-btn + .li-btn{margin-top:8px;}
.member .name{font-size:19px;font-weight:600;}
.member .title{color:var(--teal);font-size:13px;font-weight:500;margin:4px 0 14px;letter-spacing:0.02em;}
.member p{color:var(--muted);font-size:14.5px;margin-bottom:18px;}
.li-btn{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--pearl);border:1px solid rgba(248,249,255,0.18);border-radius:8px;padding:8px 14px;transition:.2s;}
.li-btn:hover{border-color:var(--teal);background:rgba(66,245,230,0.06);}
.li-btn svg{width:16px;height:16px;}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;counter-reset:step;}
.step{background:rgba(8,26,46,.55);border:1px solid rgba(248,249,255,0.07);border-radius:16px;padding:26px 24px;position:relative;}
.step .num{font-size:13px;font-weight:700;color:var(--teal);letter-spacing:0.16em;margin-bottom:12px;}
.step h4{font-size:17px;font-weight:600;margin-bottom:8px;}
.step p{color:var(--muted);font-size:14.5px;}

/* closing */
.closing{text-align:center;padding:130px 0 110px;position:relative;overflow:hidden;background:linear-gradient(180deg,#06121f,#04101b);border-radius:60px 60px 0 0;margin-top:-56px;z-index:1;}
.closing .aurora{opacity:.4;}
.closing h2{position:relative;z-index:1;font-size:clamp(30px,4.6vw,52px);font-weight:700;margin-bottom:14px;}
.closing p{position:relative;z-index:1;color:#cdd9e2;margin-bottom:30px;max-width:620px;margin-left:auto;margin-right:auto;}
.closing .btn{position:relative;z-index:1;font-size:16px;padding:15px 30px;}

/* support strip (portal) */
.support{margin-top:6px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:linear-gradient(120deg,rgba(66,245,230,0.07),rgba(95,45,145,0.07));border:1px solid rgba(248,249,255,0.08);border-radius:16px;padding:26px 28px;transition:border-color .25s ease,transform .25s ease;}
.support:hover{border-color:rgba(66,245,230,0.4);transform:translateY(-2px);}
.support .left{display:flex;align-items:flex-start;gap:18px;min-width:280px;}
.support .icon{width:46px;height:46px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;background:rgba(248,249,255,0.04);border:1px solid rgba(248,249,255,0.08);}
.support .icon svg{width:22px;height:22px;color:var(--teal);}
.support .tag{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:4px;display:block;}
.support h3{font-size:1.15rem;}
.support p{color:#c4d0d9;font-size:14px;margin-top:2px;}

/* sec-head row */
.sec-row{display:flex;align-items:center;gap:16px;margin:28px 0 22px;}
.sec-row .label{font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.sec-row .rule{flex:1;height:1px;background:linear-gradient(90deg,rgba(248,249,255,0.12),transparent);}

/* form */
.form-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:start;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:13px;color:#c4d2dd;margin-bottom:7px;font-weight:500;}
.field input,.field select,.field textarea{width:100%;background:rgba(8,26,46,.78);border:1px solid rgba(248,249,255,0.28);border-radius:10px;padding:12px 14px;color:var(--pearl);font-family:'Poppins',sans-serif;font-size:15px;font-weight:300;transition:border-color .2s,box-shadow .2s;}
.field input::placeholder,.field textarea::placeholder{color:#7e909e;opacity:1;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(66,245,230,0.14);}
.field textarea{resize:vertical;min-height:110px;}
.field.error input,.field.error select,.field.error textarea{border-color:#ff6b6b;}
.field .err-msg{color:#ff8a8a;font-size:12.5px;margin-top:6px;display:none;}
.field.error .err-msg{display:block;}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;}
.form-aside{background:rgba(8,26,46,.55);border:1px solid rgba(248,249,255,0.08);border-radius:16px;padding:28px 26px;}
.form-aside h3{font-size:18px;margin-bottom:12px;}
.form-aside p{color:var(--muted);font-size:14.5px;margin-bottom:18px;}
.form-aside .alt{border-top:1px solid rgba(248,249,255,0.08);padding-top:18px;margin-top:6px;font-size:14px;color:var(--muted);}
.form-aside .alt a{color:var(--pearl);border-bottom:1px solid rgba(248,249,255,0.2);}
.form-msg{padding:14px 16px;border-radius:10px;font-size:14.5px;margin-bottom:18px;display:none;}
.form-msg.ok{display:block;background:rgba(66,245,230,0.08);border:1px solid rgba(66,245,230,0.4);color:var(--teal);}
.form-msg.bad{display:block;background:rgba(255,107,107,0.08);border:1px solid rgba(255,107,107,0.4);color:#ff8a8a;}

/* booking CTA block (contact) */
.book-cta{background:linear-gradient(180deg,rgba(8,26,46,.9),rgba(12,36,27,.55));border:1px solid rgba(248,249,255,0.08);border-radius:18px;padding:48px 40px;position:relative;overflow:hidden;}
.book-cta::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--aurora);}
.book-cta-inner{max-width:560px;}
.book-cta h3{font-size:24px;font-weight:600;margin-bottom:10px;}
.book-cta p{color:#c4d0d9;font-size:15.5px;margin-bottom:26px;}
.book-btn{font-size:15px;padding:14px 28px;}

/* case studies / testimonials */
.cs-list{display:flex;flex-direction:column;gap:22px;}
.cs{background:linear-gradient(180deg,rgba(8,26,46,.9),rgba(12,36,27,.55));border:1px solid rgba(248,249,255,0.08);border-radius:18px;padding:34px 32px;position:relative;overflow:hidden;}
.cs::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--aurora);}
.cs .quote{font-size:clamp(17px,2vw,21px);line-height:1.6;color:var(--pearl);font-weight:300;margin-bottom:22px;}
.cs .quote::before{content:"\201C";color:var(--teal);font-size:36px;line-height:0;vertical-align:-12px;margin-right:6px;}
.cs .who{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.cs .who .nm{font-weight:600;font-size:15px;}
.cs .who .rl{color:var(--muted);font-size:13.5px;}
.cs .who .li{margin-left:auto;}
.cs.placeholder{border-style:dashed;border-color:rgba(248,249,255,0.18);background:rgba(8,26,46,.4);}
.cs.placeholder .quote{color:var(--muted);}
.cs-note{color:var(--muted);font-size:13px;margin-top:14px;}
.cs-cred{margin-top:48px;}
.cred-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:18px;}
.cred-card{background:rgba(8,26,46,.55);border:1px solid rgba(248,249,255,0.08);border-radius:14px;padding:24px 22px;}
.cred-card h3{font-size:16px;font-weight:600;color:var(--pearl);margin:0 0 8px;}
.cred-card p{font-size:14px;line-height:1.65;color:var(--muted);margin:0;}

/* blog */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;}
.post{background:linear-gradient(180deg,rgba(8,26,46,.9),rgba(12,36,27,.55));border:1px solid rgba(248,249,255,0.08);border-radius:16px;padding:28px 26px;display:flex;flex-direction:column;transition:transform .25s ease,border-color .25s ease;}
a.post:hover{transform:translateY(-4px);border-color:rgba(66,245,230,0.4);}
.post .cat{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--teal);font-weight:600;margin-bottom:12px;}
.post h3{font-size:19px;font-weight:600;margin-bottom:10px;line-height:1.3;}
.post p{color:var(--muted);font-size:14.5px;flex:1;}
.post .date{color:#5e6f7a;font-size:12.5px;margin-top:18px;}
.empty-note{text-align:center;padding:60px 28px;border:1px dashed rgba(248,249,255,0.18);border-radius:18px;color:var(--muted);background:rgba(8,26,46,.4);}
.empty-note h3{color:var(--pearl);font-size:20px;margin-bottom:10px;font-weight:600;}

/* resume page */
.resume{max-width:860px;}
.resume-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:10px;}
.resume .contactline{color:var(--muted);font-size:14px;margin-bottom:6px;}
.resume .contactline a{color:var(--muted);text-decoration:none;border-bottom:1px solid rgba(159,176,189,0.35);transition:color .15s ease,border-color .15s ease;}
.resume .contactline a:hover{color:var(--pearl);border-bottom-color:rgba(248,249,255,0.6);}
.resume .titleline{color:var(--teal);font-size:14px;font-weight:500;letter-spacing:0.02em;margin-bottom:28px;}
.r-sec{margin-top:40px;}
.r-sec > .label{display:flex;align-items:center;gap:16px;font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:20px;}
.r-sec > .label::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(248,249,255,0.12),transparent);}
.r-sec p{color:#c4d0d9;font-size:15.5px;}
.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 28px;}
.skills-grid li{color:#c4d0d9;font-size:14.5px;margin-bottom:6px;}
.skills-grid{list-style:none;padding:0;}
.skills-grid li::before{content:"\2022";color:var(--teal);margin-right:10px;}
.job{margin-bottom:28px;}
.job-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;}
.job .co{font-weight:600;font-size:17px;}
.job .dates{color:var(--muted);font-size:13.5px;white-space:nowrap;}
.job .pos{color:var(--teal);font-size:14px;font-weight:500;margin:2px 0 12px;}
.job ul{margin:0;padding-left:18px;}
.job li{color:#c4d0d9;font-size:14.5px;margin-bottom:7px;}
.r-list{list-style:none;padding:0;}
.r-list li{color:#c4d0d9;font-size:14.5px;margin-bottom:7px;}
.r-list li::before{content:"\2022";color:var(--teal);margin-right:10px;}
.resume-dl{display:inline-flex;align-items:center;gap:8px;}
.resume-dl svg{width:16px;height:16px;}
@media (max-width:680px){.skills-grid{grid-template-columns:1fr;}}

/* footer */
footer{position:relative;z-index:1;background:linear-gradient(180deg,#06121f,#020a12);border-top:1px solid rgba(248,249,255,0.08);border-radius:60px 60px 0 0;margin-top:-56px;padding:84px 0 44px;color:var(--muted);font-size:13.5px;}
/* the section just above the footer gets extra bottom space so the curve
   overlaps empty padding, not content (prevents the bottom seam/glitch) */
body > :not(footer):last-of-type{}
@media (max-width:760px){footer{border-radius:36px 36px 0 0;margin-top:-40px;padding:64px 0 40px;}}
.foot-top{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:26px;padding-bottom:26px;border-bottom:1px solid rgba(248,249,255,0.07);}
.foot-logo{height:40px;width:auto;}
.foot-links{display:flex;gap:24px;flex-wrap:wrap;font-size:13.5px;}
.foot-links a:hover{color:var(--pearl);}
.foot-meta a{color:var(--pearl);}
.phone-reveal{cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
.phone-num{color:var(--pearl);}
.disc{margin-top:10px;font-size:12px;color:#5e6f7a;max-width:100%;}
.foot-copy{margin-top:14px;font-size:12.5px;color:#5e6f7a;}

.note-banner{background:var(--midnight);color:var(--teal);font-size:12px;letter-spacing:0.04em;text-align:center;padding:9px;}

@media (max-width:1024px){
  /* Tighten vertical rhythm on small screens. On desktop the generous section
     padding looks great; stacked on a narrow phone it leaves tall black gaps
     between sections. Scale it down site-wide here. */
  /* Mobile section scoop: smaller negative pull + extra top padding so content
     clears the rounded scoop and never crowds/overlaps the section above. */
  /* Mobile: keep the curved scoop (border-radius) but NO negative margin, so no
     section ever overlaps the one above it. Clean, spaced, curved. */
  section{padding:48px 0 48px;padding-top:56px;border-radius:24px 24px 0 0;margin-top:0;}
  section[style*="padding-top:0"]{padding-top:56px !important;}
  .hero{padding:96px 0 44px;border-radius:0;margin-top:0;}
  .hero.sub{padding:88px 0 36px;}
  nav{border-radius:0 0 18px 18px;}
  /* Safeguard: never collapse the bar off-screen on mobile (keeps hamburger reachable). */
  nav.nav-hidden{transform:none !important;}
  .hero-actions{margin-top:24px;}
  /* Mobile: NO negative margin on these sections so the closing 'Ship the system'
     box never overlaps the 'Where this leads next' content above it. Clean gap. */
  .closing{padding:64px 0 56px;border-radius:36px 36px 0 0;margin-top:0;}
  .cred{padding:56px 0 48px;border-radius:36px 36px 0 0;margin-top:0;}
  /* mobile nav: hamburger reveals a dropdown panel */
  .nav-toggle{display:block;order:3;}
  .nav-inner .btn-primary{display:none;}
  .navlinks{
    position:absolute;top:68px;left:0;right:0;
    display:flex;flex-direction:column;gap:0;
    background:#05080d;
    border-bottom:1px solid rgba(248,249,255,0.10);
    box-shadow:0 24px 48px rgba(0,0,0,0.55);
    padding:8px 0;
    max-height:0;overflow:hidden;opacity:0;pointer-events:none;
    transition:max-height .3s ease,opacity .25s ease;
  }
  .navlinks.open{max-height:520px;opacity:1;pointer-events:auto;}
  .navlinks a{padding:15px 28px;font-size:15px;border-bottom:1px solid rgba(248,249,255,0.05);}
  .navlinks a:last-of-type{border-bottom:0;}
  .navlinks .btn-primary-mobile{display:block;margin:12px 28px 8px;background:var(--aurora);color:#06231d;text-align:center;border-radius:6px;padding:13px;font-weight:600;border-bottom:0;}
  /* ===== Mega-menu — mobile accordion ===== */
  .navlinks.open{max-height:85vh;overflow-y:auto;}
  .nav-item{flex-direction:column;align-items:stretch;width:100%;}
  .nav-item .nav-services{justify-content:center;gap:8px;padding:15px 28px;font-size:15px;border-bottom:1px solid rgba(248,249,255,0.05);color:var(--muted);text-align:center;}
  .nav-item.mobile-open .nav-services .chev{transform:rotate(180deg);}
  .mega{
    position:static !important;transform:none !important;width:100% !important;left:auto !important;right:auto !important;
    background:#0a1019;border:0;border-radius:0;box-shadow:none;
    padding:0;opacity:1;visibility:hidden;pointer-events:none;
    max-height:0;overflow:hidden;transition:max-height .3s ease,visibility .3s;
  }
  .mega::before{display:none;}
  /* IMPORTANT: on mobile, ONLY the tapped accordion opens it. Do NOT open on
     hover/focus, that is what caused the double-tap confusion on touch. */
  .nav-item.mobile-open .mega{visibility:visible;pointer-events:auto;max-height:1200px;transform:none !important;}
  .mega-inner{grid-template-columns:1fr;gap:0;}
  /* Compact menu: category headers + a short curated set of top services.
     Hide the non-featured links on mobile (full lists kept for desktop hover). */
  .mega-col{padding:0 0 6px;}
  .mega-col a:not(.mega-head-link):not(.mega-feat){display:none !important;}
  .mega-head-link{display:flex !important;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;padding:14px 28px 10px !important;margin:0 !important;font-size:14.5px !important;letter-spacing:0.02em !important;text-transform:uppercase !important;font-weight:600 !important;color:var(--teal) !important;text-align:left !important;border-bottom:0 !important;}
  .mega-head-link .arr{color:var(--teal);}
  .mega-feat{display:block !important;padding:9px 28px 9px 40px !important;font-size:14px !important;color:#c4d0d9 !important;text-align:left !important;border-bottom:1px solid rgba(248,249,255,0.04) !important;}
  .mega-feat:active,.mega-feat:hover{color:var(--pearl) !important;transform:none !important;}
  .mega-col:last-child .mega-feat:last-of-type{border-bottom:0 !important;}
  .mega-foot{flex-direction:column;align-items:stretch;gap:10px;padding:16px 28px;}
  .mega-all{text-align:center;color:var(--teal);font-weight:500;}
  .mega-cta{text-align:center;}
  .cards.three{grid-template-columns:1fr;}
  .form-wrap{grid-template-columns:1fr;gap:28px;}
  .founder{grid-template-columns:1fr;gap:28px;}
  .founder .photo{max-width:380px;}
  /* Mobile: make the portal CTA the unmistakable full-width tap target */
  .card .card-cta{align-self:stretch;width:100%;padding:14px 22px;font-size:15px;}
  .support{flex-direction:column;align-items:stretch;}
  .support .btn-primary{width:100%;justify-content:center;padding:14px 22px;font-size:15px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .aurora{animation:none;}
  .card,.support,.btn{transition:none;}
}

/* Who-we-serve: partner types + sectors */
.serve-rows{margin-top:40px;display:flex;flex-direction:column;gap:24px;}
.serve-row{display:flex;flex-direction:column;gap:14px;}
.serve-label{font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.serve-tags{display:flex;flex-wrap:wrap;gap:10px;}
.serve-tags span{display:inline-block;padding:8px 16px;border:1px solid rgba(66,245,230,0.25);border-radius:100px;background:rgba(66,245,230,0.05);color:#c4d0d9;font-size:13.5px;font-weight:400;}
@media (max-width:880px){.serve-tags span{font-size:12.5px;padding:7px 13px;}}

/* The TLG Operating Pillars */
.op-pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:36px;}
.op-pillar{display:flex;gap:18px;align-items:flex-start;padding:24px;border:1px solid rgba(248,249,255,0.08);border-radius:14px;background:linear-gradient(160deg,rgba(8,26,46,0.6),rgba(12,36,27,0.35));}
.op-pillar .opn{font-size:13px;font-weight:700;letter-spacing:0.05em;color:var(--midnight);background:var(--aurora);border-radius:8px;padding:6px 10px;line-height:1;flex-shrink:0;}
.op-pillar h3{font-size:17px;font-weight:600;margin-bottom:6px;color:var(--pearl);}
.op-pillar p{font-size:14.5px;line-height:1.6;color:#c4d0d9;margin:0;}
@media (max-width:880px){.op-pillars{grid-template-columns:1fr;gap:16px;}.op-pillar{padding:20px;}}

/* ===== Footer badge + legal links ===== */
.foot-badge{margin-top:4px;font-size:12.5px;letter-spacing:0.04em;color:var(--teal);font-weight:500;}
.foot-legal{margin-top:18px;display:flex;gap:22px;flex-wrap:wrap;justify-content:flex-end;font-size:12.5px;}
.foot-legal a{color:var(--muted);border-bottom:1px solid rgba(248,249,255,0.12);padding-bottom:1px;}
.foot-legal a:hover{color:var(--pearl);}

/* ===== Legal pages ===== */
.hero-legal{padding-bottom:30px;}
.legal-updated{margin-top:14px;font-size:13px;color:var(--muted);letter-spacing:0.02em;}
.legal-body{padding-top:6px;}
.wrap-legal{max-width:820px;}
.legal-body h2{font-size:19px;font-weight:600;color:var(--pearl);margin:34px 0 12px;letter-spacing:-0.01em;}
.legal-body h2:first-child{margin-top:0;}
.legal-body p{font-size:15.5px;line-height:1.72;color:#c4d0d9;margin-bottom:14px;}
.legal-body a:not(.btn){color:var(--teal);border-bottom:1px solid rgba(66,245,230,0.4);}
.legal-body ul{margin:6px 0 18px;padding-left:22px;}
.legal-body li{font-size:15.5px;line-height:1.7;color:#c4d0d9;margin-bottom:10px;}
.legal-body b{color:var(--pearl);font-weight:600;}

/* ===== Scroll reveal: cards "fall" in and settle ===== */
/* Only hide-before-reveal when JS is active (html.js). If JS fails, everything
   shows normally, so content is never trapped hidden.
   Drop from above with a slight overshoot/bounce so elements feel like they
   land. Re-animates every time they enter the viewport. */
:root{--fall-ease:cubic-bezier(.18,.89,.32,1.18);} /* overshoot for the settle */
html.js .reveal{opacity:0;transform:translateY(-34px) scale(.985);transition:opacity .55s ease,transform .62s var(--fall-ease);will-change:opacity,transform;}
html.js .reveal.in{opacity:1;transform:translateY(0) scale(1);}
/* stagger children inside a revealed group so a row cascades down */
html.js .reveal-group > *{opacity:0;transform:translateY(-30px) scale(.985);transition:opacity .5s ease,transform .58s var(--fall-ease);will-change:opacity,transform;}
html.js .reveal-group.in > *{opacity:1;transform:translateY(0) scale(1);}
html.js .reveal-group.in > *:nth-child(1){transition-delay:.00s;}
html.js .reveal-group.in > *:nth-child(2){transition-delay:.07s;}
html.js .reveal-group.in > *:nth-child(3){transition-delay:.14s;}
html.js .reveal-group.in > *:nth-child(4){transition-delay:.21s;}
html.js .reveal-group.in > *:nth-child(5){transition-delay:.28s;}
html.js .reveal-group.in > *:nth-child(6){transition-delay:.35s;}
html.js .reveal-group.in > *:nth-child(7){transition-delay:.42s;}
html.js .reveal-group.in > *:nth-child(8){transition-delay:.49s;}
@media (prefers-reduced-motion: reduce){
  html.js .reveal,html.js .reveal.in,html.js .reveal-group > *,html.js .reveal-group.in > *{opacity:1!important;transform:none!important;transition:none!important;}
}

/* plain (non-link) service summary inside a full-box category card */
.card-svc{list-style:none;margin:16px 0 0;padding:16px 0 0;border-top:1px solid rgba(248,249,255,0.08);display:flex;flex-direction:column;gap:7px;}
.card-svc li{font-size:13.5px;color:#b9c6d0;padding-left:16px;position:relative;}
.card-svc li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--teal);opacity:.7;}
.card.signature .card-svc li::before{background:var(--gold);}
.card-svc + .card-ref{margin-top:16px;}

/* ===== Services-in-track list (hub pages) ===== */
.svc-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:8px;}
.svc-item{display:block;text-decoration:none;color:inherit;background:rgba(8,26,46,.5);border:1px solid rgba(248,249,255,0.08);border-radius:14px;padding:22px 22px;transition:transform .2s ease,border-color .2s ease;}
.svc-item:hover{transform:translateY(-3px);border-color:rgba(66,245,230,0.4);}
.svc-item h4{font-size:16px;font-weight:600;color:var(--pearl);margin:0 0 6px;display:flex;align-items:center;gap:7px;}
.svc-item h4 .arr{color:var(--teal);transition:transform .18s ease;}
.svc-item:hover h4 .arr{transform:translateX(4px);}
.svc-item p{font-size:14px;line-height:1.55;color:#b9c6d0;margin:0;}

/* clickable mega-menu category headers */
a.mega-head-link{display:flex;align-items:center;gap:7px;text-decoration:none;cursor:pointer;transition:color .15s ease;}
a.mega-head-link .arr{font-size:1em;opacity:0.8;transition:transform .18s ease;}
a.mega-head-link:hover{color:var(--pearl);}
a.mega-head-link:hover .arr{transform:translateX(3px);}

/* clickable category headers (services page + mega) */
a.cat-head{text-decoration:none;color:inherit;display:inline-flex;align-items:center;gap:8px;}
a.cat-head .arr{color:var(--teal);font-size:0.8em;transition:transform .18s ease;opacity:0.85;}
a.cat-head:hover{color:var(--teal);}
a.cat-head:hover .arr{transform:translateX(4px);}
.card.signature a.cat-head:hover{color:var(--gold);}
.card.signature a.cat-head .arr{color:var(--gold);}

/* ===== AWS framework visuals (flow / ladder) ===== */
.flow-note{font-size:12.5px;letter-spacing:0.04em;text-transform:uppercase;color:var(--muted);margin:0 0 18px;}
.flow{display:flex;flex-wrap:wrap;gap:0;align-items:stretch;margin:8px 0 4px;}
.flow-step{flex:1;min-width:160px;position:relative;padding:22px 20px 22px 22px;background:linear-gradient(160deg,rgba(8,26,46,0.55),rgba(12,36,27,0.3));border:1px solid rgba(248,249,255,0.08);border-right:0;}
.flow-step:first-child{border-radius:14px 0 0 14px;}
.flow-step:last-child{border-radius:0 14px 14px 0;border-right:1px solid rgba(248,249,255,0.08);}
.flow-step .fnum{font-size:12px;font-weight:700;letter-spacing:0.14em;color:var(--teal);margin-bottom:8px;}
.flow-step h4{font-size:15.5px;font-weight:600;color:var(--pearl);margin:0 0 6px;line-height:1.25;}
.flow-step p{font-size:13.5px;line-height:1.55;color:#b9c6d0;margin:0;}
.flow-step::after{content:"";position:absolute;top:50%;right:-1px;width:10px;height:10px;border-top:2px solid rgba(66,245,230,0.55);border-right:2px solid rgba(66,245,230,0.55);transform:translateY(-50%) rotate(45deg);background:#000;z-index:2;}
.flow-step:last-child::after{display:none;}
.flow.gold .flow-step .fnum{color:var(--gold);}
.flow.gold .flow-step::after{border-color:rgba(255,216,77,0.55);}
/* vertical ladder variant for tiers */
.ladder{display:flex;flex-direction:column;gap:10px;margin:8px 0 4px;}
.rung{display:flex;align-items:center;gap:18px;padding:18px 22px;border:1px solid rgba(248,249,255,0.08);border-radius:14px;background:linear-gradient(160deg,rgba(8,26,46,0.5),rgba(12,36,27,0.28));}
.rung .rlevel{font-size:12px;font-weight:700;letter-spacing:0.12em;color:var(--midnight);background:var(--aurora);border-radius:8px;padding:7px 12px;line-height:1;flex-shrink:0;min-width:74px;text-align:center;}
.rung .rbody h4{font-size:16px;font-weight:600;color:var(--pearl);margin:0 0 3px;}
.rung .rbody p{font-size:14px;line-height:1.55;color:#b9c6d0;margin:0;}
.rung.top{border-color:rgba(66,245,230,0.4);}
@media (max-width:760px){.flow{flex-direction:column;}.flow-step{border-right:1px solid rgba(248,249,255,0.08);border-bottom:0;border-radius:0;}.flow-step:first-child{border-radius:14px 14px 0 0;}.flow-step:last-child{border-radius:0 0 14px 14px;}.flow-step::after{top:auto;bottom:-6px;right:50%;transform:translateX(50%) rotate(135deg);}}

/* ===== HubSpot embedded form, restyled to TLG dark theme ===== */
.hs-form-frame{min-height:120px;}
.hs-form-fallback{margin-top:14px;font-size:13.5px;color:var(--muted);}
.hs-form-fallback a{color:var(--teal);border-bottom:1px solid rgba(66,245,230,0.4);}
.hs-form-frame .hs-form-field{margin-bottom:18px;}
.hs-form-frame label,.hs-form-frame .hs-field-desc{color:var(--pearl);font-size:13.5px;font-weight:500;display:block;margin-bottom:8px;letter-spacing:0.01em;}
.hs-form-frame .hs-field-desc{color:var(--muted);font-weight:400;}
.hs-form-frame input[type=text],
.hs-form-frame input[type=email],
.hs-form-frame input[type=tel],
.hs-form-frame input[type=number],
.hs-form-frame textarea,
.hs-form-frame select{
  width:100%;box-sizing:border-box;background:#0a1722;color:var(--pearl);
  border:1px solid rgba(248,249,255,0.14);border-radius:8px;padding:13px 14px;
  font-family:'Poppins',sans-serif;font-size:15px;line-height:1.4;transition:border-color .15s ease,box-shadow .15s ease;
}
.hs-form-frame textarea{min-height:120px;resize:vertical;}
.hs-form-frame input:focus,.hs-form-frame textarea:focus,.hs-form-frame select:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(66,245,230,0.15);
}
.hs-form-frame input::placeholder,.hs-form-frame textarea::placeholder{color:#6f8294;}
.hs-form-frame select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2342F5E6' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;}
.hs-form-frame .hs-error-msg,.hs-form-frame .hs-error-msgs label{color:#ff8b8b;font-size:12.5px;margin-top:6px;font-weight:400;}
.hs-form-frame .hs-button,.hs-form-frame input[type=submit]{
  background:var(--aurora);color:#06231d;border:none;border-radius:6px;
  font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;padding:13px 26px;
  cursor:pointer;transition:filter .15s ease,transform .15s ease;margin-top:4px;
}
.hs-form-frame .hs-button:hover,.hs-form-frame input[type=submit]:hover{filter:brightness(1.08);transform:translateY(-1px);}
.hs-form-frame .hs-richtext,.hs-form-frame .hs-richtext p{color:var(--muted);font-size:13px;}
.hs-form-frame ul.inputs-list{list-style:none;margin:6px 0 0;padding:0;}
.hs-form-frame .hs-form-booleancheckbox-display,.hs-form-frame .hs-form-radio-display{display:flex;align-items:flex-start;gap:8px;color:#c4d0d9;font-weight:400;}
.hs-form-frame .submitted-message{color:var(--teal);font-size:15.5px;line-height:1.6;padding:18px 0;}
.hs-form-frame fieldset{max-width:none!important;}
/* Newer HubSpot inline embed (.hsfc-* class namespace) */
.hs-form-frame .hsfc-Form,.hs-form-frame form{max-width:none;}
.hs-form-frame .hsfc-FieldLabel,.hs-form-frame .hsfc-Label{color:var(--pearl)!important;font-size:13.5px!important;font-weight:500!important;margin-bottom:8px!important;}
.hs-form-frame .hsfc-TextInput,.hs-form-frame .hsfc-DropdownInput,.hs-form-frame .hsfc-TextArea,.hs-form-frame .hsfc-PhoneInput input{
  background:#0a1722!important;color:var(--pearl)!important;border:1px solid rgba(248,249,255,0.14)!important;border-radius:8px!important;padding:13px 14px!important;font-family:'Poppins',sans-serif!important;font-size:15px!important;width:100%!important;box-sizing:border-box!important;
}
.hs-form-frame .hsfc-TextInput:focus,.hs-form-frame .hsfc-TextArea:focus,.hs-form-frame .hsfc-DropdownInput:focus{outline:none!important;border-color:var(--teal)!important;box-shadow:0 0 0 3px rgba(66,245,230,0.15)!important;}
.hs-form-frame .hsfc-Button,.hs-form-frame .hsfc-NavigationRow button{background:var(--aurora)!important;color:#06231d!important;border:none!important;border-radius:6px!important;font-family:'Poppins',sans-serif!important;font-weight:600!important;font-size:14px!important;padding:13px 26px!important;cursor:pointer!important;}
.hs-form-frame .hsfc-Button:hover{filter:brightness(1.08);}
.hs-form-frame .hsfc-ErrorAlert,.hs-form-frame .hsfc-FieldError{color:#ff8b8b!important;font-size:12.5px!important;}
.hs-form-frame .hsfc-DescriptionText,.hs-form-frame .hsfc-Step__Title{color:var(--muted)!important;}

/* ===== Back-to-top button ===== */
#to-top{position:fixed;right:22px;bottom:22px;z-index:90;width:46px;height:46px;border:none;border-radius:50%;background:var(--aurora);color:#06231d;display:grid;place-items:center;cursor:pointer;opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity .25s ease,transform .25s ease,filter .15s ease;box-shadow:0 6px 20px rgba(0,0,0,.45);}
#to-top.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
#to-top:hover{filter:brightness(1.08);transform:translateY(-2px) scale(1.04);}
#to-top svg{width:20px;height:20px;}
@media (max-width:760px){#to-top{right:16px;bottom:16px;width:42px;height:42px;}}
@media (prefers-reduced-motion:reduce){#to-top{transition:opacity .2s ease;}#to-top.show{transform:none;}#to-top:hover{transform:none;}}

/* ===== Native portal pages ===== */
.portal-frame{display:block;width:100%;height:760px;min-height:620px;border:0;border-radius:16px;overflow:hidden;background:rgba(248,249,255,0.03);box-shadow:0 0 0 1px rgba(248,249,255,0.08) inset;}
@media (max-width:760px){.portal-frame{height:80vh;}}
.portal-fallback{margin-top:16px;font-size:13.5px;color:var(--muted);}
.portal-fallback a{color:var(--teal);border-bottom:1px solid rgba(66,245,230,0.4);}
.portal-launch{background:linear-gradient(180deg,rgba(8,26,46,.9),rgba(12,36,27,.55));border:1px solid rgba(248,249,255,0.08);border-radius:18px;padding:40px 36px;max-width:760px;}
.portal-launch .tag{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;display:inline-block;}
.portal-launch .sec-head{margin-bottom:12px;}
.portal-launch .btn{margin-top:24px;}
@media (max-width:760px){.portal-launch{padding:28px 22px;}}

/* ===== HubSpot meetings inline embed ===== */
.meetings-iframe-container{min-height:680px;width:100%;border-radius:14px;overflow:hidden;background:rgba(248,249,255,0.03);border:1px solid rgba(248,249,255,0.08);}
.meetings-iframe-container iframe{width:100%!important;min-height:680px;border:0;}
.tlg-meetings-frame{display:block;width:100%;height:720px;min-height:680px;border:0;border-radius:14px;overflow:hidden;background:rgba(248,249,255,0.03);box-shadow:0 0 0 1px rgba(248,249,255,0.08) inset;}
@media (max-width:640px){.tlg-meetings-frame{height:760px;}}
/* PDF document viewer (portrait reports): tall enough that a full page fits with
   #view=Fit, so the document reads at a clean, natural scale (not magnified). */
.tlg-pdf-frame{display:block;width:100%;height:88vh;max-height:1100px;min-height:620px;border:0;border-radius:14px;background:#1b1f24;box-shadow:0 0 0 1px rgba(248,249,255,0.08) inset;}
@media (max-width:640px){.tlg-pdf-frame{height:78vh;min-height:520px;}}
/* Report viewer: renders report PAGES AS IMAGES so they always fit the width on
   every device with zero magnification (mobile PDF embeds ignore #view=Fit and
   render at native size, which looked zoomed). Scrollable, page by page. */
.report-viewer{max-height:94vh;overflow-y:auto;border-radius:14px;background:#11151a;box-shadow:0 0 0 1px rgba(248,249,255,0.08) inset;padding:18px;-webkit-overflow-scrolling:touch;}
.report-viewer img{display:block;width:100%;max-width:920px;margin-left:auto;margin-right:auto;height:auto;border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,0.4);}
.report-viewer img + img{margin-top:18px;}
@media (max-width:640px){.report-viewer{max-height:86vh;padding:10px;}.report-viewer img + img{margin-top:10px;}}
.book-fallback{margin-top:16px;font-size:13.5px;color:var(--muted);}
.book-fallback a{color:var(--teal);border-bottom:1px solid rgba(66,245,230,0.4);}

/* Partners page: vetted partner network cards. */
.partner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;}
.partner-card{padding:26px 26px 24px;border-radius:18px;background:linear-gradient(180deg,#0a1b2e,#05101b);border:1px solid rgba(248,249,255,0.09);box-shadow:0 -8px 24px rgba(0,0,0,0.35);transition:transform .25s ease,border-color .25s ease;}
.partner-card:hover{transform:translateY(-3px);border-color:rgba(66,245,230,0.3);}
/* Logo area: holds a real logo <img> when provided, else a styled monogram. */
.partner-logo{display:flex;align-items:center;justify-content:flex-start;height:52px;margin-bottom:16px;}
.partner-logo img{max-height:46px;max-width:170px;width:auto;height:auto;object-fit:contain;}
.partner-mono{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:52px;padding:0 14px;border-radius:12px;font-weight:700;font-size:22px;letter-spacing:0.01em;color:#04121f;background:linear-gradient(135deg,#5F2D91,#42F5E6);}
.partner-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.partner-head h3{font-size:20px;font-weight:600;color:#f8f9ff;}
.partner-tag{font-size:11.5px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:var(--teal);background:rgba(66,245,230,0.12);border:1px solid rgba(66,245,230,0.3);padding:3px 10px;border-radius:999px;}
.partner-role{font-size:13px;font-weight:600;letter-spacing:0.02em;color:var(--gold);margin-bottom:10px;}
.partner-card p{color:#c4d0d9;font-size:14.5px;line-height:1.6;}
.partner-link{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-weight:600;font-size:14px;color:var(--teal);border-bottom:1px solid rgba(66,245,230,0.4);}
.partner-link .arr{transition:transform .18s ease;}
.partner-link:hover .arr{transform:translateX(3px);}

/* Reports marketplace: catalog cards. */
.market-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;}
.market-card{display:flex;flex-direction:column;padding:24px 24px 22px;border-radius:18px;background:linear-gradient(180deg,#0a1b2e,#05101b);border:1px solid rgba(248,249,255,0.09);box-shadow:0 -8px 24px rgba(0,0,0,0.35);transition:transform .25s ease,border-color .25s ease;}
.market-card:hover{transform:translateY(-3px);border-color:rgba(66,245,230,0.3);}
.market-tag{font-size:12px;font-weight:600;letter-spacing:0.03em;color:var(--gold);margin-bottom:8px;}
.market-card h3{font-size:19px;font-weight:600;color:#f8f9ff;margin-bottom:8px;}
.market-card p{color:#c4d0d9;font-size:14.5px;line-height:1.6;flex:1;margin-bottom:16px;}
.market-card .market-req{align-self:flex-start;font-size:14px;padding:11px 20px;border:0;cursor:pointer;}
.mk-price{display:flex;align-items:baseline;gap:8px;margin:6px 0 18px;color:#c4d0d9;font-size:14.5px;}
.mk-price-amt{font-size:30px;font-weight:700;color:var(--gold);letter-spacing:-0.01em;}
/* ===== Reports cart builder ===== */
.cart-builder{max-width:760px;}
.qty-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:6px 0 18px;}
.qty-row label{font-size:14.5px;font-weight:600;color:#f8f9ff;}
.qty-stepper{display:inline-flex;align-items:stretch;border:1px solid rgba(248,249,255,0.16);border-radius:10px;overflow:hidden;background:rgba(248,249,255,0.03);}
.qty-stepper button{width:42px;border:0;background:transparent;color:#f8f9ff;font-size:20px;line-height:1;cursor:pointer;transition:background .2s ease;}
.qty-stepper button:hover{background:rgba(66,245,230,0.14);}
.qty-stepper input{width:74px;text-align:center;border:0;border-left:1px solid rgba(248,249,255,0.12);border-right:1px solid rgba(248,249,255,0.12);background:transparent;color:#f8f9ff;font-size:16px;font-weight:600;-moz-appearance:textfield;}
.qty-stepper input::-webkit-outer-spin-button,.qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.qty-hint{font-size:13px;color:var(--gold);}
.mk-lines{display:flex;flex-direction:column;gap:10px;margin:4px 0 12px;}
.mk-line{display:flex;align-items:center;gap:10px;}
.mk-line-num{flex:0 0 26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(66,245,230,0.12);color:#42f5e6;font-size:12.5px;font-weight:700;}
.mk-line-input{flex:1;padding:12px 14px;border:1px solid rgba(248,249,255,0.14);border-radius:10px;background:rgba(248,249,255,0.03);color:#f8f9ff;font-size:14.5px;}
.mk-line-input:focus{outline:none;border-color:rgba(66,245,230,0.5);}
.mk-line-input.line-invalid{border-color:#ff7b7b;background:rgba(255,123,123,0.06);}
.mk-line-del{flex:0 0 34px;height:34px;border:1px solid rgba(248,249,255,0.14);border-radius:8px;background:transparent;color:#9fb0bd;font-size:20px;line-height:1;cursor:pointer;transition:all .2s ease;}
.mk-line-del:hover{border-color:#ff7b7b;color:#ff7b7b;}
.btn-add{font-size:13.5px;padding:9px 16px;}
.cart-summary{margin:18px 0 6px;padding:18px 20px;border:1px solid rgba(248,249,255,0.1);border-radius:14px;background:rgba(248,249,255,0.03);max-width:420px;}
.cart-line{display:flex;justify-content:space-between;align-items:baseline;font-size:14.5px;color:#c4d0d9;padding:4px 0;}
.cart-line.cart-disc{color:#42f5e6;}
.cart-line[hidden]{display:none;}
.cart-line.cart-total{margin-top:8px;padding-top:12px;border-top:1px solid rgba(248,249,255,0.12);font-size:18px;font-weight:700;color:#f8f9ff;}
.cart-tiers{margin:12px 0 0;font-size:12px;color:#8c99a6;line-height:1.5;}
.mk-request-form{max-width:760px;margin-top:8px;}
.f-details{display:flex;flex-direction:column;gap:8px;margin:6px 0;}
.f-row{display:flex;justify-content:space-between;gap:16px;font-size:14px;color:#c4d0d9;border-bottom:1px solid rgba(248,249,255,0.06);padding-bottom:8px;}
.f-row span{color:#9fb0bd;}
.f-row strong{color:#f8f9ff;text-align:right;font-weight:600;}
/* ===== Checkout page ===== */
.checkout-grid{display:grid;grid-template-columns:1fr 360px;gap:28px;align-items:start;}
@media(max-width:820px){.checkout-grid{grid-template-columns:1fr;}}
.co-block{margin-bottom:22px;padding:22px;border:1px solid rgba(248,249,255,0.1);border-radius:14px;background:rgba(248,249,255,0.03);}
.co-h{font-size:16px;font-weight:600;color:#f8f9ff;margin-bottom:14px;}
.co-loading{color:#9fb0bd;font-size:14px;padding:14px 0;}
.co-pay-err{color:#ff9b9b;font-size:13.5px;margin-top:10px;min-height:1em;}
.co-secured{font-size:12px;color:#8c99a6;margin-top:12px;}
.co-code-row{display:flex;gap:10px;}
.co-code-row input{flex:1;background:rgba(8,26,46,.78);border:1px solid rgba(248,249,255,0.28);border-radius:10px;padding:12px 14px;color:var(--pearl);font-family:'Poppins',sans-serif;font-size:15px;font-weight:300;text-transform:uppercase;letter-spacing:.04em;}
.co-code-row input::placeholder{color:#7e909e;text-transform:none;letter-spacing:0;}
.co-code-row input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(66,245,230,0.14);}
.co-code-btn{background:rgba(248,249,255,0.06);border:1px solid rgba(248,249,255,0.2);color:var(--pearl);white-space:nowrap;}
.co-code-btn:hover{border-color:var(--teal);}
.co-code-msg{font-size:13px;margin-top:10px;min-height:0;}
.co-code-msg.ok{color:#5fe3a1;}
.co-code-msg.err{color:#ff8a8a;}
.co-promo-line span:first-child{color:var(--teal);}
.co-turnstile{margin-bottom:14px;min-height:0;}
.co-turnstile:empty{margin-bottom:0;}
.checkout-aside .co-summary{position:sticky;top:96px;padding:22px;border:1px solid rgba(248,249,255,0.1);border-radius:14px;background:rgba(248,249,255,0.04);}
.co-items{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid rgba(248,249,255,0.1);}
.co-item{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:#c4d0d9;}
.co-item-n{flex:0 0 22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(66,245,230,0.12);color:#42f5e6;font-size:11px;font-weight:700;}
.co-item-m{flex:1;line-height:1.4;}
.co-item-p{color:#9fb0bd;}
.co-edit{display:inline-block;margin-top:12px;font-size:13px;color:#42f5e6;}
.co-empty{text-align:center;padding:40px 0;}
.co-empty p{color:#c4d0d9;margin-bottom:16px;}

/* ===== Blog post cards (native Wix blog embed) ===== */
.post-card{display:flex;flex-direction:column;background:rgba(248,249,255,0.03);border:1px solid rgba(248,249,255,0.08);border-radius:14px;overflow:hidden;transition:border-color .25s ease,transform .25s ease;}
.post-card:hover{border-color:rgba(66,245,230,0.4);transform:translateY(-3px);}
.post-thumb{aspect-ratio:16/9;overflow:hidden;background:rgba(248,249,255,0.04);}
.post-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.post-thumb-text{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#04121f 0%,#0a2233 55%,#0c241b 100%);position:relative;}
.post-thumb-text::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(66,245,230,0.10),transparent 60%);}
.pt-kicker{position:relative;z-index:1;font-size:13px;letter-spacing:0.18em;text-transform:uppercase;color:var(--teal);font-weight:600;border:1px solid rgba(66,245,230,0.3);border-radius:999px;padding:8px 18px;}
.post-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1;}
.post-meta{font-size:11.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--teal);font-weight:600;margin-bottom:10px;}
.post-body h3{font-size:18px;font-weight:600;color:var(--pearl);line-height:1.3;margin-bottom:10px;}
.post-body p{font-size:14px;line-height:1.6;color:#c4d0d9;margin-bottom:16px;flex:1;}
.post-link{font-size:13.5px;font-weight:500;color:var(--teal);}

/* ===== Blog article pages ===== */
.article-hero .wrap{max-width:820px;}
.article-back{display:block;width:fit-content;font-size:13px;color:var(--teal);margin-bottom:18px;}
.article-meta{margin-top:14px;font-size:13.5px;color:var(--muted);letter-spacing:0.02em;}
.article-hero-img{margin:0 0 32px;border-radius:16px;overflow:hidden;border:1px solid rgba(248,249,255,0.08);}
.article-hero-img img{width:100%;height:auto;display:block;}
.article-body{max-width:760px;}
.article-body p{font-size:16px;line-height:1.75;color:#c4d0d9;margin-bottom:18px;}
.article-body h2{font-size:24px;font-weight:600;color:var(--pearl);margin:38px 0 14px;letter-spacing:-0.01em;}
.article-body h3{font-size:19px;font-weight:600;color:var(--pearl);margin:28px 0 10px;}
.article-body h4{font-size:16.5px;font-weight:600;color:var(--pearl);margin:22px 0 8px;}
.article-body ul,.article-body ol{margin:6px 0 20px;padding-left:24px;}
.article-body li{font-size:16px;line-height:1.7;color:#c4d0d9;margin-bottom:10px;}
.article-body strong{color:var(--pearl);font-weight:600;}
.article-body a:not(.btn){color:var(--teal);border-bottom:1px solid rgba(66,245,230,0.4);}
.article-img{margin:28px 0;border-radius:14px;overflow:hidden;border:1px solid rgba(248,249,255,0.08);}
.article-img img{width:100%;height:auto;display:block;}
.article-img figcaption{font-size:13px;color:var(--muted);padding:10px 14px;background:rgba(248,249,255,0.03);}
.article-foot{display:flex;gap:14px;flex-wrap:wrap;margin-top:40px;padding-top:28px;border-top:1px solid rgba(248,249,255,0.08);}

.disc a{color:var(--muted);border-bottom:1px solid rgba(248,249,255,0.18);}
.disc a:hover{color:var(--pearl);}

/* Custom dark lead form (contact page) */
.lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;}
.lead-grid .field{margin-bottom:18px;}
#tlg-lead-form .field .req{color:var(--teal);font-weight:600;}
#tlg-lead-form textarea{min-height:96px;}
#tlg-lead-form .form-foot{margin-top:8px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
#tlg-lead-form .form-note{font-size:13.5px;color:var(--muted);margin:0;}
#tlg-lead-form button[disabled]{opacity:.6;cursor:default;}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
@media (max-width:760px){.lead-grid{grid-template-columns:1fr;}}

/* ===== Government Readiness Assessment (interactive checklist) ===== */
.ax-wrap{max-width:920px;margin:0 auto;}
.ax-step1{position:relative;}
/* Scoreboard: a summary panel at the top of Step 1 showing overall readiness and
   per-cluster chips. It scrolls with the page (NOT sticky) so it can never
   overlap or clip an open section. Sections open on click; the chips highlight
   the section nearest the top as you scroll (scroll-spy). Clicking a chip jumps
   to that section. This avoids all sticky-overlap and scroll-jitter issues. */
#ax-scoreboard{position:relative;z-index:6;margin-bottom:26px;background:#000;padding:12px 0 14px;border-radius:0 0 16px 16px;}
.ax-overall{display:flex;align-items:center;gap:20px;padding:20px 24px;border-radius:20px;background:linear-gradient(180deg,#08203a,#04121f);border:1px solid rgba(248,249,255,0.08);}
/* Retake button: sits on the right of the status bar, only shown post-complete. */
.ax-retake-btn{margin-left:auto;display:inline-flex;align-items:center;gap:7px;background:transparent;border:1px solid rgba(66,245,230,0.4);color:var(--teal);font-family:inherit;font-weight:600;font-size:13px;padding:9px 16px;border-radius:999px;cursor:pointer;transition:all .18s ease;white-space:nowrap;}
.ax-retake-btn:hover{background:rgba(66,245,230,0.1);border-color:var(--teal);}
.ax-retake-btn svg{flex:none;}
@media (max-width:600px){.ax-retake-btn{padding:8px 13px;font-size:12.5px;}.ax-overall{gap:14px;flex-wrap:wrap;}}
.ax-ring{--p:0;width:74px;height:74px;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--teal) calc(var(--p)*1%),rgba(248,249,255,0.10) 0);position:relative;}
.ax-ring::before{content:"";position:absolute;inset:7px;border-radius:50%;background:#05121f;}
.ax-ring span{position:relative;z-index:1;font-weight:700;font-size:18px;}
.ax-overall-meta .ax-band{font-size:19px;font-weight:700;letter-spacing:-0.01em;}
.ax-overall-meta .ax-overall-sub{color:var(--muted);font-size:13.5px;margin-top:2px;}
.ax-overall.band-strong .ax-band{color:#42F5E6;}
.ax-overall.band-mid .ax-band{color:#FFD84D;}
.ax-overall.band-early .ax-band{color:#FFBA3D;}
.ax-overall.band-low .ax-band{color:#ff8b8b;}
.ax-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:10px;}
.ax-chip{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:rgba(8,26,46,0.6);border:1px solid rgba(248,249,255,0.06);cursor:pointer;transition:border-color .25s ease,background .25s ease,transform .2s ease;}
.ax-chip:hover{border-color:rgba(66,245,230,0.35);transform:translateY(-1px);}
.ax-chip.is-active{border-color:rgba(66,245,230,0.55);background:rgba(10,33,56,0.85);box-shadow:0 0 0 1px rgba(66,245,230,0.18);}
.ax-chip.is-active .ax-chip-l{color:#f8f9ff;}
.ax-chip-l{font-size:12.5px;color:#c4d0d9;}
.ax-chip-v{font-size:13px;font-weight:700;color:var(--teal);}

/* Gated results: score summary + prioritized, sourced recommendations. */
#ax-results .ax-result-top{display:flex;align-items:center;gap:20px;padding:20px 24px;border-radius:20px;background:linear-gradient(180deg,#08203a,#04121f);border:1px solid rgba(248,249,255,0.08);}
#ax-results .ax-result-meta .ax-band{font-size:18px;font-weight:700;}
#ax-results .ax-result-sub{color:var(--muted);font-size:14px;margin-top:2px;}
#ax-results .ax-result-top.band-strong .ax-band{color:#42F5E6;}
#ax-results .ax-result-top.band-mid .ax-band{color:#FFD84D;}
#ax-results .ax-result-top.band-early .ax-band{color:#FFBA3D;}
#ax-results .ax-result-top.band-low .ax-band{color:#ff8b8b;}
.ax-rc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px;}
.ax-rc{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:rgba(8,26,46,0.6);border:1px solid rgba(248,249,255,0.06);}
.ax-rc-l{font-size:12.5px;color:#c4d0d9;}
.ax-rc-v{font-size:13px;font-weight:700;color:var(--teal);}
.ax-recos-head{font-size:19px;font-weight:600;margin:26px 0 12px;}
.ax-recos{list-style:none;counter-reset:reco;display:flex;flex-direction:column;gap:12px;padding:0;margin:0;}
.ax-reco{position:relative;counter-increment:reco;padding:16px 18px 16px 56px;border-radius:16px;background:linear-gradient(180deg,#0a1b2e,#05101b);border:1px solid rgba(248,249,255,0.09);}
.ax-reco::before{content:counter(reco);position:absolute;left:16px;top:16px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;color:#04121f;background:linear-gradient(135deg,#5F2D91,#42F5E6);}
.ax-reco-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px;}
.ax-reco-tag{font-size:11px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px;}
.ax-reco-tag.gap{color:#ff8b8b;background:rgba(255,139,139,0.12);border:1px solid rgba(255,139,139,0.3);}
.ax-reco-tag.partial{color:#FFD84D;background:rgba(255,216,77,0.12);border:1px solid rgba(255,216,77,0.3);}
.ax-reco-tag.cluster{color:#42F5E6;background:rgba(66,245,230,0.12);border:1px solid rgba(66,245,230,0.3);}
.ax-reco-cl{font-size:12.5px;color:#8aa0b2;font-weight:600;}
.ax-reco-t{font-size:16px;font-weight:600;color:#f8f9ff;margin-bottom:5px;}
.ax-reco-w{color:#c4d0d9;font-size:14px;line-height:1.55;margin-bottom:8px;}
.ax-reco-src{display:inline-block;font-size:12.5px;color:var(--teal);border-bottom:1px solid rgba(66,245,230,0.4);}
.ax-reco-src:hover{border-bottom-color:var(--teal);}
.ax-recos-foot{margin-top:18px;color:#c4d0d9;font-size:14.5px;line-height:1.55;max-width:720px;}

/* Deck-of-cards accordion: collapsed clusters stack and fan; opening one lifts it forward. */
#assessment-root{display:flex;flex-direction:column;}
.ax-cluster{position:relative;padding:22px 24px;border-radius:22px;background:linear-gradient(180deg,#0a1b2e,#05101b);border:1px solid rgba(248,249,255,0.09);box-shadow:0 -8px 24px rgba(0,0,0,0.45);transition:transform .42s cubic-bezier(.2,.8,.2,1),margin .42s cubic-bezier(.2,.8,.2,1),box-shadow .42s ease,border-color .3s ease,background .3s ease;transform-origin:top center;will-change:transform,margin;}
/* Stack: collapsed cards fan with a slight overlap, but keep enough room so each
   gets its own focal moment as you scroll. */
.ax-cluster + .ax-cluster{margin-top:14px;}
.ax-cluster:not(.open){transform:scale(.985);}
/* Give each collapsed header its own comfortable scroll zone. */
.ax-cluster:not(.open) .ax-chead{padding:6px 0;}
.ax-cluster:not(.open):hover{transform:scale(.99);border-color:rgba(66,245,230,0.3);cursor:pointer;}
/* Open card: full size, lifted forward with a clear gap above and below. */
.ax-cluster.open{transform:scale(1);margin-top:22px;margin-bottom:22px;border-color:rgba(66,245,230,0.28);box-shadow:0 18px 50px rgba(0,0,0,0.6),0 0 0 1px rgba(66,245,230,0.12);z-index:2;background:linear-gradient(180deg,#0c2138,#06121f);}
.ax-cluster:first-child{margin-top:0;}

.ax-chead{display:flex;align-items:flex-start;gap:16px;width:100%;background:none;border:none;text-align:left;font-family:inherit;cursor:pointer;color:inherit;padding:0;}
.ax-cnum{font-size:13px;font-weight:700;color:var(--teal);letter-spacing:0.08em;padding-top:4px;flex:none;}
.ax-cmeta{flex:1;min-width:0;}
.ax-cmeta h3{font-size:20px;font-weight:600;}
.ax-cmeta p{color:var(--muted);font-size:14px;max-height:0;opacity:0;overflow:hidden;margin-top:0;transition:max-height .55s cubic-bezier(.16,1,.3,1),opacity .4s ease,margin-top .55s cubic-bezier(.16,1,.3,1);}
.ax-cluster.open .ax-cmeta p{max-height:96px;opacity:1;margin-top:4px;}
.ax-cprog{display:inline-block;margin-top:6px;font-size:12px;color:#7f93a3;font-weight:600;letter-spacing:0.02em;}
.ax-cscore{flex:none;display:flex;align-items:center;gap:10px;}
.ax-cpct{font-size:22px;font-weight:700;color:#f8f9ff;}
.ax-chev{color:#7f93a3;transition:transform .55s cubic-bezier(.16,1,.3,1),color .4s ease;}
.ax-cluster.open .ax-chev{transform:rotate(180deg);color:var(--teal);}
.ax-bar{height:6px;border-radius:6px;background:rgba(248,249,255,0.08);margin:14px 0 0;overflow:hidden;}
.ax-bar span{display:block;height:100%;background:linear-gradient(90deg,#5F2D91,#42F5E6);border-radius:6px;transition:width .45s cubic-bezier(.16,1,.3,1);}
/* Collapsible body: animates open/closed with a soft, unified easing. */
/* Flow open/close: the body's height animates via the grid track, while the
   inner content slides (transform) so it appears to flow OUT of the header when
   opening and flow back UP INTO it when closing. Transform + opacity are GPU
   composited, so there is no layout jitter. */
.ax-cbody{display:grid;grid-template-rows:0fr;margin-top:0;transition:grid-template-rows .6s cubic-bezier(.22,1,.3,1),margin-top .6s cubic-bezier(.22,1,.3,1);}
.ax-cbody-inner{overflow:hidden;min-height:0;opacity:0;transition:opacity .42s ease;will-change:opacity;}
.ax-cluster.open .ax-cbody{grid-template-rows:1fr;margin-top:18px;}
.ax-cluster.open .ax-cbody-inner{opacity:1;}
@media (prefers-reduced-motion:reduce){
  .ax-cbody,.ax-cbody-inner{transition-duration:.01ms !important;}
}
@media (prefers-reduced-motion:reduce){
  .ax-cluster,.ax-cbody,.ax-chev,.ax-cmeta p,.ax-bar span{transition-duration:.01ms !important;}
  .ax-cluster.open .ax-cbody-inner > *{animation:none !important;}
}
/* Mobile: keep the cluster header from cramping. Smaller title, tighter gaps,
   compact score column so the percentage and chevron never collide with a
   two-line title or the description text. */
@media (max-width:560px){
  .ax-cluster{padding:18px 16px;}
  .ax-chead{gap:10px;}
  .ax-cnum{font-size:12px;padding-top:3px;}
  .ax-cmeta h3{font-size:17px;line-height:1.25;}
  .ax-cmeta p{font-size:13px;}
  .ax-cscore{gap:6px;}
  .ax-cpct{font-size:17px;}
  .ax-chev{width:18px;height:18px;flex:none;}
  .ax-text{min-width:0;flex-basis:100%;}
  .ax-opts{width:100%;}
  .ax-opt{flex:1;}
}

.ax-sglabel{font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;color:#7f93a3;margin:14px 0 8px;font-weight:600;}
.ax-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid rgba(248,249,255,0.05);flex-wrap:wrap;}
.ax-item:first-of-type{border-top:none;}
.ax-text{flex:1;min-width:220px;font-size:14.5px;color:#e7eef3;line-height:1.5;}
.ax-opts{display:flex;gap:6px;flex:none;}
.ax-opt{font-family:inherit;cursor:pointer;border:1px solid rgba(248,249,255,0.14);background:rgba(8,26,46,0.5);color:#9fb0bd;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:999px;transition:all .15s ease;}
.ax-opt:hover{border-color:rgba(66,245,230,0.4);color:#f8f9ff;}
.ax-opt.ax-ready.on{background:rgba(66,245,230,0.16);border-color:#42F5E6;color:#42F5E6;}
.ax-opt.ax-partial.on{background:rgba(255,216,77,0.14);border-color:#FFD84D;color:#FFD84D;}
.ax-opt.ax-gap.on{background:rgba(255,139,139,0.14);border-color:#ff8b8b;color:#ff8b8b;}

.ax-follow{margin:6px 0 6px 0;padding:12px 16px;border-radius:14px;background:rgba(95,45,145,0.10);border:1px solid rgba(95,45,145,0.28);}
.ax-followlabel{font-size:12px;color:#c9b8e6;margin-bottom:4px;font-weight:600;}
.ax-item.ax-sub .ax-text{font-size:14px;color:#d4dde4;}

.ax-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:8px;}
#ax-reset{background:none;border:1px solid rgba(248,249,255,0.16);color:#9fb0bd;font-family:inherit;font-weight:600;font-size:13.5px;padding:11px 20px;border-radius:999px;cursor:pointer;transition:all .15s ease;}
#ax-reset:hover{border-color:rgba(255,139,139,0.5);color:#ff8b8b;}

@media (max-width:640px){
  #ax-scoreboard{position:static;}
  .ax-overall{flex-direction:row;}
  .ax-item{align-items:flex-start;}
  .ax-opts{width:100%;gap:8px;}
  .ax-opt{flex:1;text-align:center;padding:13px 6px;min-height:44px;font-size:13.5px;}
}

/* Federal Ramp header strip linking to the interactive assessment */
.fed-assess-strip{display:block;position:relative;z-index:3;background:linear-gradient(100deg,rgba(95,45,145,0.22),rgba(66,245,230,0.12));border-top:1px solid rgba(66,245,230,0.20);border-bottom:1px solid rgba(66,245,230,0.20);}
.fed-assess-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 28px;flex-wrap:wrap;}
.fed-assess-strip .fas-txt{font-size:14.5px;color:#e7eef3;flex:1;min-width:240px;}
.fed-assess-strip .fas-txt strong{color:var(--teal);font-weight:600;}
.fed-assess-strip .fas-cta{display:inline-flex;align-items:center;gap:8px;flex:none;font-weight:600;font-size:14px;color:var(--teal);border:1px solid rgba(66,245,230,0.4);padding:9px 18px;border-radius:999px;transition:all .15s ease;white-space:nowrap;}
.fed-assess-strip:hover .fas-cta{background:rgba(66,245,230,0.14);color:#f8f9ff;}
.fed-assess-strip .fas-cta .arr{transition:transform .18s ease;}
.fed-assess-strip:hover .fas-cta .arr{transform:translateX(3px);}
@media(max-width:640px){.fed-assess-strip .wrap{padding:14px 20px;}.fed-assess-strip .fas-cta{width:100%;justify-content:center;}}
/* Global Insights Reports strip: same shape as the assessment strip, gold accent
   so it reads as a distinct, resellable offer across all service pages. */
.insights-strip{display:block;position:relative;z-index:3;background:linear-gradient(100deg,rgba(95,45,145,0.20),rgba(255,186,61,0.14));border-top:1px solid rgba(255,186,61,0.22);border-bottom:1px solid rgba(255,186,61,0.22);}
.insights-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 28px;flex-wrap:wrap;}
.insights-strip .ins-txt{font-size:14.5px;color:#e7eef3;flex:1;min-width:240px;}
.insights-strip .ins-txt strong{color:var(--gold);font-weight:600;}
.insights-strip .ins-cta{display:inline-flex;align-items:center;gap:8px;flex:none;font-weight:600;font-size:14px;color:var(--gold);border:1px solid rgba(255,186,61,0.45);padding:9px 18px;border-radius:999px;transition:all .15s ease;white-space:nowrap;}
.insights-strip:hover .ins-cta{background:rgba(255,186,61,0.16);color:#fff;}
.insights-strip .ins-cta .arr{transition:transform .18s ease;}
.insights-strip:hover .ins-cta .arr{transform:translateX(3px);}
@media(max-width:640px){.insights-strip .wrap{padding:14px 20px;}.insights-strip .ins-cta{width:100%;justify-content:center;}}
/* A section that directly follows either strip must NOT scoop up over it (the
   negative margin + opaque background was clipping the strip's text). Drop the
   pull and keep normal top padding so the strip reads cleanly. */
.fed-assess-strip + section,
.insights-strip + section{margin-top:0;border-radius:0;}
/* When the strip sits ABOVE a hero (e.g. top of Services page), stop the hero's
   negative-margin scoop from pulling up over the strip. */
.insights-strip + .hero{margin-top:0;border-radius:0;}
