/* Reset */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 18px); }
body, h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }

/* Typography and base */
body {
  min-width: 320px;
  overflow-x: hidden;
  background: var(--background);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
::selection { background: var(--accent); color: var(--text-primary); }
:focus-visible { outline: 3px solid var(--brand-secondary); outline-offset: 4px; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  line-height: var(--lh-heading);
  letter-spacing: -0.035em;
}
h1 { font-size: var(--fs-page); }
h2 { font-size: var(--fs-section); }
h3 { font-size: var(--fs-card); }
p { color: var(--text-secondary); }
address { font-style: normal; }

/* Layout */
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.article { max-width: var(--article); }
.section { position: relative; padding-block: var(--space-7); }
.section--soft { background: var(--background-soft); }
.section--dark { overflow: hidden; background: var(--background-dark); color: var(--text-inverse); }
.section--dark p { color: #c5d1e7; }
.grid { display: grid; gap: 20px; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.split { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 100px); align-items: center; }
.section-head {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(280px, .55fr);
  gap: var(--space-5);
  align-items: end;
  margin-bottom: var(--space-5);
}
.section-head > p { max-width: 560px; justify-self: end; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: var(--space-2);
  color: var(--brand-primary);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.eyebrow::before { width: 28px; height: 2px; background: currentColor; content: ""; }
.section--dark .eyebrow { color: var(--brand-secondary); }

/* Shared utility */
.skip-link {
  position: fixed;
  z-index: 999;
  top: 10px;
  left: 10px;
  padding: 9px 14px;
  border-radius: 999px;
  transform: translateY(-160%);
  background: var(--accent);
  color: var(--text-primary);
  font-weight: 700;
  transition: transform var(--transition);
}
.skip-link:focus { transform: none; }
.btn {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: .82rem 1.35rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 700;
  line-height: 1;
  transition: transform var(--transition), background var(--transition), color var(--transition), box-shadow var(--transition);
}
.btn:hover { transform: translateY(-3px); }
.btn--primary { background: var(--brand-primary); color: var(--text-inverse); box-shadow: 0 14px 32px rgba(35,87,245,.28); }
.btn--primary:hover { background: var(--brand-primary-dark); }
.btn--light { background: var(--surface); color: var(--text-primary); }
.btn--outline { border-color: rgba(255,255,255,.38); color: var(--text-inverse); }
.btn__arrow {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.16);
  transition: transform var(--transition);
}
.btn:hover .btn__arrow { transform: translateX(3px); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--text-primary); font-weight: 700; }
.text-link:hover { color: var(--brand-primary); }
.tag-list { display: flex; flex-wrap: wrap; gap: 8px; }
.tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 11px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text-primary);
  font-size: .8rem;
  font-weight: 700;
}
.tag::before { width: 7px; height: 7px; border-radius: 50%; background: var(--brand-secondary); content: ""; }
.card {
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.card:hover { transform: translateY(-6px); border-color: #bdcbf5; box-shadow: var(--shadow-sm); }
.card h3 { margin-bottom: 12px; }
.card p + .text-link, .card .tag-list + .text-link { margin-top: 20px; }
.icon-mark {
  display: grid;
  width: 48px;
  height: 48px;
  margin-bottom: 34px;
  place-items: center;
  border-radius: 14px;
  background: #eaf0ff;
  color: var(--brand-primary);
  font-family: var(--font-display);
  font-size: .82rem;
  font-weight: 800;
}
.notice {
  padding: 18px 20px;
  border-left: 4px solid var(--warning);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  background: #fff8e8;
  color: #68440a;
}
.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity 650ms ease, transform 650ms ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }

/* Header and global navigation */
.nav-wrap { display: flex; height: 100%; align-items: center; justify-content: space-between; gap: clamp(18px,2.5vw,36px); }
.brand { display: inline-flex; align-items: center; gap: 11px; font-family: var(--font-display); font-size: 1.18rem; font-weight: 800; letter-spacing: -.04em; }
.brand-mark { position: relative; display: grid; width: 38px; height: 38px; place-items: center; overflow: hidden; border-radius: 11px; background: var(--brand-primary); color: var(--text-inverse); }
.brand-mark::after { position: absolute; right: -7px; bottom: -7px; width: 23px; height: 23px; border-radius: 50%; background: var(--brand-secondary); content: ""; }
.brand-mark span { position: relative; z-index: 1; }
.desktop-nav { display: flex; align-items: center; gap: 26px; }
.nav-item { position: relative; }
.nav-link, .nav-button { padding: 11px 0; border: 0; background: transparent; color: #34435f; font-size: .91rem; font-weight: 700; }
.nav-link:hover, .nav-link.active, .nav-button:hover, .nav-button.active { color: var(--brand-primary); }
.nav-button { display: inline-flex; align-items: center; gap: 6px; }
.nav-button::after { font-size: .72rem; content: "⌄"; transition: transform var(--transition); }
.nav-button[aria-expanded="true"]::after { transform: rotate(180deg); }
.mega-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  display: none;
  width: min(680px, calc(100vw - 40px));
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  box-shadow: var(--shadow-lg);
  transform: translateX(-42%);
}
.nav-item:last-of-type .mega-menu { right: 0; left: auto; transform: none; }
.mega-menu.is-open { display: grid; }
.header-cta { min-height: 44px; padding-inline: 1.05rem; font-size: .86rem; }
.menu-toggle { display: none; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--background-soft); color: var(--text-primary); }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { display: block; width: 19px; height: 2px; margin: 4px auto; background: currentColor; content: ""; transition: var(--transition); }
.menu-toggle[aria-expanded="true"] span { opacity: 0; }
.menu-toggle[aria-expanded="true"]::before { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"]::after { transform: translateY(-6px) rotate(-45deg); }
.mobile-panel {
  position: fixed;
  z-index: var(--z-menu);
  inset: 0;
  display: none;
  padding: 92px 24px 28px;
  overflow-y: auto;
  background: var(--background-dark);
  color: var(--text-inverse);
}
.mobile-panel.is-open { display: block; }
.mobile-panel__group { padding-block: 14px; border-bottom: 1px solid rgba(255,255,255,.14); }
.mobile-panel__group > a, .mobile-panel__button { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 8px 0; border: 0; background: transparent; color: var(--text-inverse); font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; text-align: left; }
.mobile-subnav { display: none; padding: 8px 0 4px 14px; }
.mobile-subnav.is-open { display: grid; }
.mobile-subnav a { padding: 6px 0; color: #b9c6dc; }
.mobile-panel .btn { width: 100%; margin-top: 24px; }

.site-footer { padding: 70px 0 28px; background: #05132d; color: var(--text-inverse); }
.footer-grid { display: grid; grid-template-columns: 1.35fr .65fr .7fr; gap: 60px; padding-bottom: 48px; }
.footer-intro p { max-width: 430px; margin-top: 18px; color: #9facc3; }
.footer-col h2 { margin-bottom: 16px; font-size: .84rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-col ul { display: grid; gap: 8px; list-style: none; color: #aeb9ce; }
.footer-col a:hover { color: var(--brand-secondary); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); color: #8491a8; font-size: .82rem; }
.back-top { position: fixed; z-index: var(--z-float); right: 24px; bottom: 24px; display: grid; width: 48px; height: 48px; place-items: center; border: 0; border-radius: 50%; background: var(--background-dark); color: var(--text-inverse); box-shadow: var(--shadow-sm); opacity: 0; pointer-events: none; transform: translateY(10px); transition: var(--transition); }
.back-top.is-visible { opacity: 1; pointer-events: auto; transform: none; }


/* Responsive */
@media (max-width: 1024px) {
  :root { --space-7: 5.5rem; }
  .desktop-nav { gap: 16px; }
  .header-cta { display: none; }
  .grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 820px) {
  :root { --header-height: 70px; --space-7: 4.6rem; }
  .container { width: min(calc(100% - 32px), var(--container)); }
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .section-head, .split { grid-template-columns: 1fr; }
  .section-head { gap: 18px; }
  .section-head > p { justify-self: start; }
  .grid--3 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-intro { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  :root { --space-7: 3.8rem; }
  .container { width: min(calc(100% - 28px), var(--container)); }
  .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }
  .card { padding: 23px; }
  .footer-grid { grid-template-columns: 1fr; gap: 34px; }
  .footer-intro { grid-column: auto; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* P0 visual shell — header, navigation, motion and footer */
[data-partial="partials/header.html"] { height: var(--header-height); }
.site-header {
  position: fixed;
  z-index: var(--z-header);
  top: 0;
  right: 0;
  left: 0;
  height: var(--header-height);
  border-bottom: 1px solid transparent;
  transition: height 300ms ease, background 300ms ease, border-color 300ms ease, box-shadow 300ms ease, color 300ms ease;
}
.brand--header { flex: 0 0 auto; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font-size: 1.05rem; letter-spacing: -.045em; }
.brand-copy small { margin-top: 5px; color: #75839a; font-family: var(--font-body); font-size: .56rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.brand-mark { width: 40px; height: 40px; border-radius: 50%; background: var(--brand-primary); }
.brand-mark::after { right: -4px; bottom: -4px; width: 18px; height: 18px; background: var(--accent); }
.desktop-nav { gap: clamp(17px,2vw,30px); }
.nav-link,.nav-button { position: relative; color: inherit; font-size: .9rem; letter-spacing: -.01em; }
.nav-link::before,.nav-button::before { position: absolute; right: 0; bottom: 5px; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform 260ms ease; }
.nav-link:hover::before,
.nav-link.active::before,
.nav-button:hover::before,
.nav-button.active::before,
.desktop-nav .nav-item:has(.mega-menu:is(:hover,.is-open)) > .nav-button::before { transform: scaleX(1); transform-origin: left; }
.desktop-nav .nav-link:focus-visible,
.desktop-nav .nav-button:focus-visible {
  outline: none;
  color: var(--brand-primary);
  box-shadow: inset 0 -3px 0 var(--brand-primary);
}
.nav-button::after { margin-left: 3px; content: "+"; font-size: .9rem; }
.header-cta { min-height: 46px; padding: 5px 6px 5px 18px; background: var(--brand-primary); color: #fff; font-size: .78rem; white-space: nowrap; }
.header-cta i { width: 34px; height: 34px; background: #fff; color: var(--brand-primary); }
.mega-menu {
  top: calc(100% + 15px);
  display: block;
  width: min(850px,calc(100vw - 48px));
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(220,228,240,.9);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 35px 85px rgba(7,26,61,.2);
  color: var(--text-primary);
  opacity: 0;
  pointer-events: none;
  transform: translate(-38%,-10px) scale(.98);
  transform-origin: top center;
  visibility: hidden;
  transition: opacity 220ms ease, transform 280ms ease, visibility 220ms;
}
.mega-menu.is-open { display: block; opacity: 1; pointer-events: auto; transform: translate(-38%,0) scale(1); visibility: visible; }
.menu-toggle { position: relative; z-index: calc(var(--z-header) + 3); background: rgba(7,26,61,.06); }
.mobile-navigation { position: fixed; z-index: calc(var(--z-header) - 1); inset: 0; display: grid; grid-template-columns: 1fr minmax(320px,520px); overflow: hidden; opacity: 0; pointer-events: none; visibility: hidden; transition: opacity 260ms ease,visibility 260ms; }
.mobile-navigation.is-open { opacity: 1; pointer-events: auto; visibility: visible; }
.mobile-backdrop { border: 0; background: rgba(3,10,25,.66); opacity: 0; backdrop-filter: blur(4px); transition: opacity 260ms ease; }
.mobile-navigation.is-open .mobile-backdrop { opacity: 1; }
.mobile-panel { position: relative; inset: auto; display: block; padding: 105px 34px 32px; background: #06142f; color: #fff; transform: translateX(100%); transition: transform 360ms cubic-bezier(.2,.78,.22,1); }
.mobile-navigation.is-open .mobile-panel { transform: translateX(0); }
.mobile-panel__meta { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.14); color: #778ba9; font-size: .62rem; font-weight: 700; text-transform: uppercase; }
.mobile-panel__group { padding-block: 6px; }
.mobile-panel__group > a,.mobile-panel__button { padding: 13px 0; font-size: clamp(1.45rem,4vw,2rem); }
.mobile-panel__group > a > span,.mobile-panel__button > span { color: #6e82a3; font-family: var(--font-body); font-size: .63rem; letter-spacing: .08em; }
.mobile-subnav { max-height: 0; display: grid; overflow: hidden; padding: 0 0 0 16px; opacity: 0; transition: max-height 350ms ease,opacity 250ms ease,padding 250ms ease; }
.mobile-subnav.is-open { max-height: 580px; padding-block: 5px 12px; opacity: 1; }
.mobile-subnav a { padding: 5px 0; color: #9eacc2; font-size: .78rem; }
.mobile-panel__action { margin-top: 22px; padding: 22px; border: 1px solid rgba(255,255,255,.13); border-radius: 20px; background: rgba(255,255,255,.045); }
.mobile-panel__action p { color: #a6b5cc; font-size: .82rem; }
.mobile-panel__action .btn { margin-top: 14px; }

/* Shared site shell — default visual surface for non-Home routes. */
body:not([data-section="home"]) .site-header {
  border-color: rgba(7,26,61,.09);
  background: rgba(255,255,255,.98);
  color: var(--text-primary);
  box-shadow: 0 8px 30px rgba(7,26,61,.055);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
body:not([data-section="home"]) .site-header .brand-copy small { color: #75839a; }
body:not([data-section="home"]) .site-header .nav-link,
body:not([data-section="home"]) .site-header .nav-button { color: #34435f; }
.site-header .desktop-nav .nav-link,
.site-header .desktop-nav .nav-button { transition: color 180ms ease; }
.site-header .desktop-nav .nav-link:hover,
.site-header .desktop-nav .nav-link.active,
.site-header .desktop-nav .nav-button:hover,
.site-header .desktop-nav .nav-button.active,
.site-header .desktop-nav .nav-button[aria-expanded="true"] { color: var(--brand-primary); }
.desktop-nav { align-self: stretch; }
.nav-item,
.nav-link,
.nav-button { height: 100%; }
.nav-link,
.nav-button { display: inline-flex; align-items: center; }
.nav-button { gap: 0; }
.nav-button::after { display: none; }
.nav-link::before,
.nav-button::before { bottom: -1px; height: 2px; background: var(--brand-primary); }
.header-cta {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 6px 7px 6px 20px;
  border-radius: 999px;
}
body:not([data-section="home"]) .header-cta {
  background: var(--brand-primary);
  color: #fff;
  box-shadow: 0 12px 28px rgba(35,87,245,.2);
}
.header-cta i {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--brand-primary);
  font-style: normal;
  transition: transform 220ms ease;
}
.header-cta:hover i { transform: rotate(45deg); }
.mega-menu {
  position: fixed;
  top: var(--header-height);
  right: 32px;
  left: 32px;
  display: grid;
  width: min(1120px,calc(100vw - 64px));
  max-height: calc(100vh - var(--header-height) - 28px);
  grid-template-columns: 310px minmax(0,1fr);
  margin-inline: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid rgba(213,222,237,.92);
  border-top: 0;
  border-radius: 0 0 24px 24px;
  background: #fff;
  box-shadow: 0 30px 80px rgba(7,26,61,.18);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-12px);
  transform-origin: top center;
  visibility: hidden;
  transition: opacity 190ms ease,transform 260ms cubic-bezier(.2,.75,.22,1),visibility 190ms;
}
.desktop-nav .nav-item .mega-menu {
  right: 32px;
  left: 32px;
  width: min(1120px,calc(100vw - 64px));
  margin-inline: auto;
  transform: translateY(-12px);
}
.mega-menu.is-open {
  display: grid;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
}
.desktop-nav .nav-item .mega-menu.is-open { transform: translateY(0); }

/* Services mega-menu — wide capability map aligned to the refreshed home page. */
.desktop-nav .nav-item .services-menu-v2 {
  width: min(1240px,calc(100vw - 64px));
  grid-template-columns: 1.05fr 1fr 1fr 1fr;
  gap: 0;
  padding: 36px 40px 34px;
  border: 1px solid #d8e0e8;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(17,24,39,.2);
}
#servicesMenu{width:min(1120px,calc(100vw - 64px));min-height:0;grid-template-columns:.92fr 1.08fr .9fr 1fr;padding:28px 32px 26px}
#servicesMenu .services-menu-v2__intro p{margin-top:18px}
#servicesMenu .services-menu-v2__group>h3{margin-bottom:12px}
#servicesMenu .services-menu-v2__group>a{min-height:40px;padding-block:5px}
#aboutMenu{min-height:0;padding-top:28px;padding-bottom:26px}
.services-menu-v2__intro,
.services-menu-v2__group { min-width: 0; padding: 2px 28px; }
.services-menu-v2__intro { display: flex; flex-direction: column; padding-left: 4px; border-right: 1px solid #e2e7ed; }
.services-menu-v2__intro h2 { color: #111827; font-family: var(--font-display); font-size: 2rem; line-height: 1; letter-spacing: -.055em; }
.services-menu-v2__intro p { max-width: 220px; margin-top: 24px; color: #374151; font-size: .92rem; line-height: 1.55; }
.services-menu-v2__intro > a { display: inline-flex; align-items: center; gap: 14px; align-self: flex-start; margin-top: auto; color: #228b22; font-size: .9rem; font-weight: 800; }
.services-menu-v2__intro > a svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform 180ms ease; }
.services-menu-v2__intro > a:hover svg { transform: translateX(4px); }
.services-menu-v2__group { border-right: 1px solid #e2e7ed; }
.services-menu-v2__group:last-child { padding-right: 0; border-right: 0; }
.services-menu-v2__group h3 { margin-bottom: 15px; color: #111827; font-family: var(--font-display); font-size: 1.07rem; letter-spacing: -.025em; }
.services-menu-v2__group > a { position: relative; display: grid; min-height: 43px; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-items: center; padding: 6px 8px; border: 1px solid transparent; border-radius: 9px; color: #263044; font-size: .78rem; line-height: 1.3; transition: background-color 160ms ease,border-color 160ms ease,color 160ms ease; }
.services-menu-v2__group > a > span { display: grid; width: 25px; height: 25px; place-items: center; color: #1565c0; font-size: .91rem; font-style: normal; font-weight: 800; }
.services-menu-v2__group > a > span svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.services-menu-v2__group > a > i { position: absolute; right: 10px; color: #111827; font-size: 1.25rem; font-style: normal; }
.services-menu-v2__group > a > i svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.services-menu-v2__group > a:is(:hover,:focus-visible),
.services-menu-v2__group > a.active { border-color: #dfe4ea; background: #f2f3f4; color: #111827; outline: 0; }
.services-menu-v2__group > a:focus-visible { box-shadow: 0 0 0 2px #fff,0 0 0 4px #2e8b57; }
@media(max-width:1120px){
  .desktop-nav .nav-item .services-menu-v2{padding:28px 24px;grid-template-columns:.9fr 1fr 1fr 1fr}
  .services-menu-v2__intro,.services-menu-v2__group{padding-inline:18px}
  .services-menu-v2__group>a{font-size:.7rem;gap:7px}
}
.mobile-panel__button { position: relative; }
.mobile-panel__button::after {
  width: 12px;
  height: 12px;
  margin-left: 14px;
  border-right: 1px solid #9eacc2;
  border-bottom: 1px solid #9eacc2;
  content: "";
  transform: rotate(45deg) translateY(-3px);
  transition: transform 220ms ease;
}
.mobile-panel__button[aria-expanded="true"]::after { transform: rotate(225deg) translate(-2px,-2px); }
.mobile-panel__button > span { margin-left: auto; }
.mobile-subnav a.active,
.mobile-subnav a[aria-current="page"] { color: #fff; }

/* Extended motion primitives */
[data-reveal],[data-stagger] > * { opacity: 1; transform: none; }
.js.motion-ready [data-reveal] { opacity: 0; transform: translateY(34px); transition: opacity 720ms cubic-bezier(.2,.75,.22,1),transform 720ms cubic-bezier(.2,.75,.22,1); }
.js.motion-ready [data-reveal].is-visible { opacity: 1; transform: none; }
.js.motion-ready [data-stagger] > * { opacity: 0; transform: translateY(30px); transition: opacity 650ms cubic-bezier(.2,.75,.22,1),transform 650ms cubic-bezier(.2,.75,.22,1); }
.js.motion-ready [data-stagger].is-visible > * { opacity: 1; transform: none; }
.js.motion-ready [data-stagger].is-visible > *:nth-child(2){transition-delay:70ms}.js.motion-ready [data-stagger].is-visible > *:nth-child(3){transition-delay:140ms}.js.motion-ready [data-stagger].is-visible > *:nth-child(4){transition-delay:210ms}.js.motion-ready [data-stagger].is-visible > *:nth-child(5){transition-delay:280ms}.js.motion-ready [data-stagger].is-visible > *:nth-child(6){transition-delay:350ms}

/* Footer */
.site-footer {
  --footer-outer: #02162f;
  --footer-main: #02162f;
  --footer-cta: #062442;
  --footer-bottom: #02142a;
  --footer-border: rgba(120,170,220,.25);
  --footer-separator: rgba(255,255,255,.08);
  --footer-green: #08c96b;
  --footer-green-hover: #0acf73;
  position: relative;
  overflow: hidden;
  padding: 0;
  background: var(--footer-main);
  color: #fff;
}
.footer-container { width:min(calc(100% - 40px),var(--container)); margin-inline:auto; }
.footer-cta-band { padding:18px 0; border-bottom:1px solid var(--footer-separator); background:var(--footer-outer); }
.footer-cta {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: 176px;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 40px;
  align-items: center;
  overflow: hidden;
  padding: 28px 40px;
  border: 1px solid var(--footer-border);
  border-radius: 16px;
  background:var(--footer-cta);
}
.footer-cta__pattern { position:absolute; z-index:-1; inset:0 0 0 50%; overflow:hidden; pointer-events:none; opacity:.72; }
.footer-cta__pattern::before {
  position:absolute;
  inset:30px -12% -170px 0;
  background-image:radial-gradient(circle,rgb(8 201 107 / .42) 1px,transparent 1.5px);
  background-size:11px 11px;
  content:"";
  opacity:.36;
  transform:rotate(-7deg);
  mask-image:radial-gradient(ellipse at 55% 70%,#000 0,transparent 68%);
}
.footer-cta__pattern::after {
  position:absolute;
  top:38px;
  right:-65px;
  width:520px;
  height:260px;
  border:1px solid rgb(8 201 107 / .12);
  border-radius:50%;
  box-shadow:0 18px 0 -17px rgb(8 201 107 / .18),0 36px 0 -35px rgb(8 201 107 / .15),0 54px 0 -53px rgb(8 201 107 / .12);
  content:"";
  transform:rotate(10deg);
}
.footer-cta__copy { position:relative; z-index:1; }
.footer-kicker { display:block; margin-bottom:6px; color:var(--footer-green); font-size:.92rem; font-weight:700; line-height:1.3; }
.footer-cta h2 { max-width:700px; font-size:clamp(2rem,2.6vw,2.75rem); line-height:1.1; letter-spacing:-.04em; }
.footer-cta p { margin-top:7px; color:#eef4ff; font-size:1rem; line-height:1.45; }
.footer-cta__link {
  position:relative;
  z-index:1;
  display:flex;
  min-width:280px;
  min-height:66px;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 24px;
  border-radius:10px;
  background:linear-gradient(100deg,#08c96b,#0acb6e);
  box-shadow:0 14px 30px rgb(8 201 107 / .1);
  color:#fff;
  font-family:var(--font-display);
  font-size:1rem;
  font-weight:750;
  text-align:center;
  transition:transform 220ms ease,box-shadow 220ms ease,background 220ms ease;
}
.footer-cta__link svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.footer-cta__link:is(:hover,:focus-visible) { background:linear-gradient(100deg,var(--footer-green),var(--footer-green-hover)); box-shadow:0 18px 36px rgb(8 201 107 / .16); transform:translateY(-2px); }
.footer-main { display:grid; grid-template-columns:minmax(220px,1.2fr) minmax(180px,1fr) minmax(150px,.75fr) minmax(250px,1.2fr); gap:clamp(28px,4vw,52px); padding:42px 0 22px; }
.brand--footer { display:block; width:min(108px,100%); }
.brand--footer .brand-logo--footer { width:100%; height:auto; }
.footer-brand p { max-width:285px; margin-top:16px; color:#f1f5fc; font-size:1rem; line-height:1.58; }
.footer-socials { display:flex; gap:14px; margin-top:16px; }
.footer-socials a { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(255,255,255,.34); border-radius:50%; color:#fff; transition:border-color 180ms ease,background 180ms ease,transform 180ms ease; }
.footer-socials a:hover { border-color:var(--footer-green); background:rgb(8 201 107 / .1); transform:translateY(-2px); }
.footer-socials svg { width:20px; height:20px; fill:currentColor; }
.footer-col h2 { margin-bottom:20px; color:#fff; font-size:1.25rem; letter-spacing:-.03em; text-transform:none; }
.footer-accordion__trigger { display:block; margin:0 0 20px; padding:0; border:0; background:transparent; color:#fff; font-family:var(--font-display); font-size:1.25rem; font-weight:700; letter-spacing:-.03em; line-height:inherit; text-align:left; }
.footer-accordion__icon,.footer-accordion__chevron { display:none; }
.footer-links ul { display:grid; gap:15px; list-style:none; }
.footer-links a { display:inline-flex; align-items:center; gap:9px; color:#f3f6fb; font-size:1rem; line-height:1.42; transition:color 180ms ease,transform 180ms ease; }
.footer-links a svg { flex:0 0 auto; width:12px; height:12px; fill:none; stroke:var(--footer-green); stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; }
.footer-links a:hover { color:var(--footer-green-hover); transform:translateX(3px); }
.footer-contact { display:flex; flex-direction:column; align-items:flex-start; gap:15px; color:#f2f5fb; font-size:1rem; }
.footer-contact h2 { margin-bottom:1px; }
.footer-contact.footer-accordion { gap:0; }
.footer-contact .footer-accordion__trigger { margin-bottom:1px; }
.footer-contact .footer-accordion__content-inner { display:flex; flex-direction:column; align-items:flex-start; gap:15px; }
@media (min-width:561px) {
  .footer-contact .footer-accordion__trigger { margin-bottom:0; }
  .footer-contact .footer-accordion__content-inner { padding-top:20px; }
  .footer-contact .footer-contact__item,.footer-contact .footer-offices-link { min-height:27px; }
  .footer-offices-link { margin-top:0; }
}
.footer-contact__item { display:flex; align-items:center; gap:11px; min-height:22px; color:#f2f5fb; line-height:1.4; }
a.footer-contact__item { transition:color 180ms ease; }
a.footer-contact__item:hover { color:var(--footer-green-hover); }
.footer-contact__item>svg:not(.footer-teams-icon) { flex:0 0 22px; width:22px; height:22px; fill:none; stroke:var(--footer-green); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.footer-contact__item>.footer-icon--whatsapp { width:24px; height:24px; flex-basis:24px; }
.footer-teams-icon { display:block; flex:0 0 24px; width:24px; height:24px; overflow:visible; }
.footer-offices-link { display:inline-flex; align-items:center; gap:9px; margin-top:1px; padding-left:33px; color:var(--footer-green); font-size:.94rem; transition:gap 180ms ease,color 180ms ease; }
.footer-offices-link svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.footer-offices-link:hover { gap:17px; color:var(--footer-green-hover); }
.footer-bottom { display:block; padding-top:0; border-top:1px solid var(--footer-separator); background:var(--footer-bottom); color:inherit; font-size:inherit; }
.footer-bottom__inner { display:flex; min-height:60px; align-items:center; justify-content:space-between; gap:24px; color:#cdd7e8; font-size:.88rem; }
.footer-investor-relations { white-space:nowrap; }
.footer-investor-relations a { color:#fff; transition:color 180ms ease; }
.footer-investor-relations a:is(:hover,:focus-visible) { color:var(--footer-green-hover); }
.footer-legal { display:flex; align-items:center; gap:24px; color:#fff; }
.footer-legal i { width:1px; height:18px; background:rgba(255,255,255,.4); }
.back-top {
  --scroll-progress: 0deg;
  isolation: isolate;
  width: 56px;
  height: 56px;
  background: conic-gradient(var(--accent) 0deg var(--scroll-progress), rgba(7, 26, 61, .16) var(--scroll-progress) 360deg);
  color: #fff;
}
.back-top::after {
  position: absolute;
  z-index: -1;
  inset: 4px;
  border-radius: 50%;
  background: #06142f;
  content: "";
}
.back-top span { position: relative; z-index: 1; transition: transform 260ms ease; }
.back-top:is(:hover, :focus-visible) span { transform: translateY(-3px); }
.back-top:focus-visible { outline: 3px solid var(--brand-secondary); outline-offset: 4px; }

@media(max-width:1100px){
  .desktop-nav{gap:15px}.header-cta{display:none}
  .footer-cta{grid-template-columns:minmax(0,1fr) auto;padding-inline:32px}.footer-cta__link{min-width:250px}
  .footer-main{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}
}
@media(max-width:820px){
  .site-header{height:70px}.brand-copy strong{font-size:1rem}.brand-copy small{font-size:.51rem}.mobile-navigation{grid-template-columns:minmax(0,.18fr) minmax(300px,.82fr)}
  .footer-container{width:min(calc(100% - 40px),var(--container))}
  .footer-cta{min-height:0;grid-template-columns:1fr;gap:22px;padding:28px 32px}.footer-cta__pattern{inset:28% -20% 0 30%}.footer-cta__link{width:100%;min-width:0;min-height:62px}
  .footer-main{grid-template-columns:1fr 1fr;gap:36px 32px;padding:36px 0 22px}.footer-brand{grid-column:1/-1}
}
@media(max-width:560px){
  .mobile-navigation{grid-template-columns:1fr}.mobile-backdrop{display:none}.mobile-panel{padding:94px 22px 25px}.mobile-panel__meta{flex-direction:column;gap:3px}
  .footer-cta-band{padding:16px 0}.footer-container{width:min(calc(100% - 28px),var(--container))}
  .footer-cta{gap:18px;padding:24px 22px;border-radius:13px}.footer-kicker{margin-bottom:5px;font-size:.88rem}.footer-cta h2{font-size:clamp(1.75rem,8.8vw,2.25rem)}.footer-cta p{margin-top:7px;font-size:.92rem}.footer-cta__link{min-height:58px;padding:13px 18px;border-radius:10px;font-size:.98rem}
  .footer-main{grid-template-columns:1fr;gap:32px;padding:34px 4px 22px}.footer-brand{grid-column:auto}.brand--footer{width:150px}.footer-brand p{margin-top:16px}.footer-socials{margin-top:16px}.footer-col h2{margin-bottom:18px}.footer-links ul{gap:13px}.footer-contact{gap:14px}
  .footer-main{gap:0}.footer-brand{padding-bottom:28px}.footer-accordion{width:100%;border-top:1px solid var(--footer-separator)}.footer-accordion:last-child{border-bottom:1px solid var(--footer-separator)}.footer-accordion__trigger{display:flex;width:100%;min-height:74px;align-items:center;justify-content:space-between;margin:0;padding:0;color:#fff;font-size:1.25rem}.footer-accordion__trigger>span{display:inline-flex;align-items:center;gap:13px}.footer-accordion__icon{display:block;flex:0 0 28px;width:28px;height:28px;fill:none;stroke:var(--footer-green);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.footer-accordion__chevron{display:block;flex:0 0 24px;width:24px;height:24px;fill:none;stroke:var(--footer-green);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform 220ms ease}.footer-accordion__trigger[aria-expanded="true"] .footer-accordion__chevron{transform:rotate(180deg)}.footer-accordion__content{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows 260ms ease,opacity 180ms ease}.footer-accordion__trigger[aria-expanded="true"]+.footer-accordion__content{grid-template-rows:1fr;opacity:1}.footer-accordion__content-inner{min-height:0;overflow:hidden}.footer-accordion__trigger[aria-expanded="true"]+.footer-accordion__content .footer-accordion__content-inner{padding-bottom:25px}.footer-links ul{gap:13px}.footer-contact.footer-accordion{align-items:stretch;gap:0}.footer-contact .footer-accordion__content-inner{display:flex;flex-direction:column;gap:14px}.footer-contact .footer-contact__item{align-items:flex-start}.footer-contact .footer-offices-link{margin-top:1px}
  .footer-brand{display:flex;flex-direction:column;align-items:center;text-align:center}.footer-brand p{text-align:center}.footer-bottom__inner{align-items:center;text-align:center}.footer-bottom__inner>span{max-width:320px}.footer-legal{justify-content:center}
  .footer-bottom__inner{min-height:0;align-items:flex-start;flex-direction:column;gap:16px;padding-block:20px}.footer-investor-relations{white-space:normal}.footer-legal{gap:20px}.back-top{right:16px;bottom:16px;width:50px;height:50px}
  .footer-bottom__inner{align-items:center;text-align:center}.footer-bottom__inner>span{max-width:320px}.footer-legal{justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  .js.motion-ready [data-reveal],.js.motion-ready [data-stagger]>*{opacity:1;transform:none;transition:none}.mega-menu,.mobile-panel,.mobile-backdrop{transition:none}
}

/* Desktop mega menus — compact Apptunix-inspired structure in the BSP hero palette. */
@media(min-width:901px){
  .desktop-nav .nav-item .services-menu-v2{
    right:32px;
    left:32px;
    display:grid;
    max-height:calc(100vh - var(--header-height) - 24px);
    margin-inline:auto;
    padding:0;
    overflow:hidden auto;
    border:1px solid rgba(132,190,227,.2);
    border-top-color:rgba(151,211,238,.12);
    border-radius:0 0 22px 22px;
    background:
      radial-gradient(circle at 88% 12%,rgba(31,151,180,.16),transparent 32%),
      linear-gradient(135deg,rgba(3,15,38,.985),rgba(5,32,65,.98) 58%,rgba(4,42,70,.97));
    box-shadow:0 28px 72px rgba(0,8,28,.38);
    color:#fff;
    backdrop-filter:blur(18px) saturate(.9);
  }
  .desktop-nav .nav-item .services-menu-v2::before{
    position:absolute;
    top:0;
    right:0;
    left:0;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(98,227,224,.7),rgba(132,230,76,.42),transparent);
    content:"";
  }
  #aboutMenu{
    width:min(820px,calc(100vw - 64px));
    grid-template-columns:270px minmax(0,1fr);
  }
  #servicesMenu{
    width:min(1120px,calc(100vw - 64px));
    grid-template-columns:270px minmax(0,1fr);
  }
  .services-menu-v2__intro{
    display:flex;
    min-width:0;
    flex-direction:column;
    padding:30px 28px 28px;
    border-right:1px solid rgba(185,216,239,.14);
    background:linear-gradient(150deg,rgba(255,255,255,.035),rgba(255,255,255,0));
  }
  .services-menu-v2__intro>span{
    color:#77dedc;
    font-size:.71rem;
    font-weight:760;
    letter-spacing:.02em;
  }
  .services-menu-v2__intro h2{
    margin-top:12px;
    color:#fff;
    font-size:2rem;
    line-height:1;
    letter-spacing:-.055em;
  }
  .services-menu-v2__intro p{
    max-width:210px;
    margin-top:16px;
    color:#b8cbe0;
    font-size:.84rem;
    line-height:1.58;
  }
  .services-menu-v2__intro>a{
    display:inline-flex;
    align-items:center;
    gap:10px;
    align-self:flex-start;
    margin-top:auto;
    padding-top:22px;
    color:#91df5c;
    font-size:.79rem;
    font-weight:790;
  }
  .services-menu-v2__intro>a svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .about-menu__links{
    display:grid;
    min-width:0;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-content:start;
    gap:0 26px;
    padding:22px 28px 24px;
  }
  .about-menu__links>a,
  .services-menu-v2__group>a{
    position:relative;
    display:flex;
    min-width:0;
    align-items:center;
    color:#eaf3fb;
    font-weight:680;
    line-height:1.3;
    transition:background-color 160ms ease,color 160ms ease,padding-left 160ms ease;
  }
  .about-menu__links>a{
    min-height:56px;
    padding:10px 30px 10px 2px;
    border-bottom:1px solid rgba(182,215,239,.13);
    font-size:.86rem;
  }
  .about-menu__links>a::after,
  .services-menu-v2__group>a::after{
    position:absolute;
    right:8px;
    color:#72dbd9;
    content:"\2197";
    opacity:0;
    transform:translateX(-5px);
    transition:opacity 160ms ease,transform 160ms ease;
  }
  .about-menu__links>a:is(:hover,:focus-visible,.active),
  .services-menu-v2__group>a:is(:hover,:focus-visible,.active){
    background:rgba(98,227,224,.075);
    color:#fff;
    outline:0;
  }
  .about-menu__links>a:is(:hover,:focus-visible,.active){padding-left:10px}
  .about-menu__links>a:is(:hover,:focus-visible,.active)::after,
  .services-menu-v2__group>a:is(:hover,:focus-visible,.active)::after{opacity:1;transform:none}
  .about-menu__links>a:focus-visible,
  .services-menu-v2__group>a:focus-visible{box-shadow:inset 0 0 0 2px rgba(119,222,220,.72)}
  .services-menu-v2__groups{
    display:grid;
    min-width:0;
    grid-template-columns:1.08fr .94fr 1fr;
  }
  .services-menu-v2__group{
    min-width:0;
    padding:28px 22px 24px;
    border-right:1px solid rgba(185,216,239,.12);
  }
  .services-menu-v2__group:last-child{border-right:0}
  .services-menu-v2__group h3{
    margin:0 0 13px;
    color:#78dfdc;
    font-family:var(--font-body);
    font-size:.75rem;
    font-weight:800;
    letter-spacing:.015em;
  }
  .services-menu-v2__group>a{
    min-height:42px;
    padding:7px 28px 7px 9px;
    border:0;
    border-radius:8px;
    font-size:.78rem;
  }
  @media(max-width:1120px){
    #aboutMenu{width:min(760px,calc(100vw - 40px));grid-template-columns:245px minmax(0,1fr)}
    #servicesMenu{width:min(980px,calc(100vw - 40px));grid-template-columns:235px minmax(0,1fr)}
    .services-menu-v2__intro{padding-inline:22px}
    .services-menu-v2__groups{grid-template-columns:repeat(3,minmax(0,1fr))}
    .services-menu-v2__group{padding-inline:16px}
    .services-menu-v2__group>a{font-size:.71rem}
  }
}

/* About panel stays centered beneath its nav label; Services keeps its current layout and shares the glass surface. */
@media(min-width:821px){
  .desktop-nav .nav-item .services-menu-v2{
    isolation:isolate;
    z-index:calc(var(--z-header) + 4);
    background:transparent;
    backdrop-filter:none;
  }
  .desktop-nav .nav-item .services-menu-v2::before{z-index:1}
  .desktop-nav .nav-item .services-menu-v2::after{
    position:absolute;
    z-index:0;
    inset:0;
    border-radius:inherit;
    background:linear-gradient(135deg,rgba(5,20,45,.97),rgba(7,32,65,.95));
    backdrop-filter:blur(28px) saturate(1.04);
    -webkit-backdrop-filter:blur(28px) saturate(1.04);
    content:"";
    pointer-events:none;
  }
  .desktop-nav .nav-item #aboutMenu{
    position:absolute;
    top:calc(100% + 1px);
    right:auto;
    left:50%;
    width:310px;
    grid-template-columns:1fr;
    margin:0;
    padding:10px;
    overflow:hidden auto;
    border:1px solid rgba(91,190,226,.46);
    border-radius:18px;
    background:transparent;
    box-shadow:0 26px 64px rgba(0,7,25,.46),inset 0 1px 0 rgba(255,255,255,.05);
    transform:translate(-50%,-12px);
  }
  .desktop-nav .nav-item #aboutMenu.is-open{transform:translate(-50%,0)}
  #aboutMenu .about-menu__links{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1fr;
    gap:2px;
    padding:0;
  }
  #aboutMenu .about-menu__links>a,
  #servicesMenu .services-menu-v2__group>a{
    display:grid;
    grid-template-columns:46px minmax(0,1fr);
    align-items:center;
    gap:13px;
    border:1px solid transparent;
    color:#f4f8fc;
  }
  #aboutMenu .about-menu__links>a{
    min-height:64px;
    padding:8px 12px;
    border-bottom:0;
    border-radius:11px;
    background:transparent;
    transition:color 180ms ease;
  }
  #aboutMenu .about-menu__links>a::after,
  #servicesMenu .services-menu-v2__group>a::after{display:none}
  .mega-menu__icon{
    display:grid;
    width:42px;
    height:42px;
    place-items:center;
    border:1px solid rgba(218,248,255,.36);
    border-radius:50%;
    background:linear-gradient(145deg,#168fe8,#0cc8bf);
    color:#fff;
    box-shadow:0 8px 22px rgba(4,151,211,.24),inset 0 1px 0 rgba(255,255,255,.22);
    font-style:normal;
  }
  .mega-menu__icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.75;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .mega-menu__copy{display:block;min-width:0}
  .mega-menu__copy strong,
  .mega-menu__copy small{display:block}
  .mega-menu__copy strong{font-size:.86rem;font-weight:790;line-height:1.24;letter-spacing:-.018em}
  .mega-menu__copy small{margin-top:3px;color:#afc5dd;font-size:.69rem;line-height:1.35}
  #aboutMenu .mega-menu__copy strong::after{
    display:inline-block;
    margin-left:7px;
    color:#8fe7de;
    content:"\2192";
    opacity:0;
    transform:translateX(-5px);
    transition:opacity 170ms ease,transform 170ms ease;
  }
  #aboutMenu .about-menu__links>a:is(:hover,:focus-visible) .mega-menu__copy strong::after{
    opacity:1;
    transform:translateX(0);
  }
  #aboutMenu .about-menu__links>a:is(:hover,:focus-visible){
    border-color:transparent;
    background:transparent;
    color:#fff;
    outline:0;
    box-shadow:none;
  }
  #aboutMenu .about-menu__links>a:focus-visible{outline:1px solid rgba(124,224,220,.58);outline-offset:-1px}
  #aboutMenu .about-menu__links>a:is(:hover,:focus-visible) .mega-menu__icon{
    border-color:rgba(226,252,255,.7);
    box-shadow:0 9px 24px rgba(4,151,211,.34),inset 0 1px 0 rgba(255,255,255,.3);
  }
  #servicesMenu .services-menu-v2__group>a:is(.is-featured,.active,:hover,:focus-visible){
    border-color:rgba(66,195,225,.55);
    background:linear-gradient(100deg,rgba(16,105,183,.76),rgba(6,125,165,.55));
    color:#fff;
    outline:0;
    box-shadow:inset 0 0 20px rgba(30,203,224,.15),0 0 20px rgba(17,140,205,.2);
  }
  #servicesMenu .services-menu-v2__group>a.active~a.is-featured{background:transparent;box-shadow:none}
  .desktop-nav .nav-item #servicesMenu{
    right:32px;
    left:32px;
    width:min(1120px,calc(100vw - 64px));
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    margin-inline:auto;
    padding:0;
  }
  .services-menu-v2__heading{
    position:relative;
    z-index:2;
    display:flex;
    min-height:82px;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    padding:16px 24px;
    border-bottom:1px solid rgba(185,216,239,.14);
  }
  .services-menu-v2__heading h2{margin:0;color:#fff;font-size:1.55rem;line-height:1;letter-spacing:-.045em}
  .services-menu-v2__heading p{margin-top:7px;color:#afc5dd;font-size:.75rem}
  .services-menu-v2__heading>a{display:inline-flex;align-items:center;gap:10px;color:#91df5c;font-size:.78rem;font-weight:790}
  .services-menu-v2__heading>a svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  #servicesMenu .services-menu-v2__groups{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .94fr 1fr;padding:10px}
  #servicesMenu .services-menu-v2__group{padding:8px 10px 10px;border-right:1px solid rgba(185,216,239,.11)}
  #servicesMenu .services-menu-v2__group:last-child{border-right:0}
  #servicesMenu .services-menu-v2__group h3{margin:0 6px 8px;color:#78dfdc;font-size:.73rem;font-weight:800}
  #servicesMenu .services-menu-v2__group>a{
    min-height:61px;
    grid-template-columns:40px minmax(0,1fr);
    gap:11px;
    padding:6px 8px;
    border-radius:10px;
  }
  #servicesMenu .mega-menu__icon{width:38px;height:38px}
  #servicesMenu .mega-menu__icon svg{width:21px;height:21px}
  #servicesMenu .mega-menu__copy strong{font-size:.76rem}
  #servicesMenu .mega-menu__copy small{font-size:.62rem}
  @media(max-width:1120px){
    .desktop-nav .nav-item #aboutMenu{width:250px}
    .desktop-nav .nav-item #servicesMenu{width:min(980px,calc(100vw - 40px))}
    #servicesMenu .services-menu-v2__groups{grid-template-columns:repeat(3,minmax(0,1fr))}
    #servicesMenu .services-menu-v2__group{padding-inline:7px}
    #servicesMenu .services-menu-v2__group>a{grid-template-columns:36px minmax(0,1fr);gap:8px;padding-inline:6px}
    #servicesMenu .mega-menu__icon{width:34px;height:34px}
    #servicesMenu .mega-menu__copy strong{font-size:.7rem}
    #servicesMenu .mega-menu__copy small{font-size:.58rem}
  }
}

/* Services mega menu — focused tab navigation with a two-column service map. */
@media(min-width:821px){
  .desktop-nav .nav-item #servicesMenu{
    top:calc(var(--header-height) + 1px);
    right:32px;
    left:32px;
    width:min(800px,calc(100vw - 64px));
    grid-template-columns:172px minmax(0,1fr);
    grid-template-rows:1fr;
    gap:18px;
    margin-inline:auto;
    padding:14px;
    overflow:hidden auto;
    border:1px solid rgba(112,176,218,.5);
    border-radius:20px;
    box-shadow:0 30px 78px rgba(0,7,25,.5),inset 0 1px 0 rgba(255,255,255,.06);
  }
  .services-mega__nav,
  .services-mega__content{position:relative;z-index:2;min-width:0}
  .services-mega__nav{
    align-self:stretch;
    padding:10px 12px 8px;
    border:1px solid rgba(136,193,229,.12);
    border-radius:14px;
    background:linear-gradient(155deg,rgba(17,49,84,.7),rgba(8,31,62,.76));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  }
  .services-mega__eyebrow{
    display:block;
    padding:0 4px 5px;
    color:#b8cbe1;
    font-size:.61rem;
    font-weight:720;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
  .services-mega__tabs{display:grid}
  .services-mega__tab{
    position:relative;
    display:flex;
    min-height:44px;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0;
    padding:0 4px;
    border:0;
    border-bottom:1px solid rgba(178,211,233,.2);
    border-radius:0;
    background:transparent;
    color:#dbe7f5;
    font:inherit;
    font-size:.78rem;
    font-weight:400;
    text-align:left;
    cursor:pointer;
    transition:color 170ms ease,border-color 170ms ease;
  }
  .services-mega__tab:last-child{border-bottom-color:transparent}
  .services-mega__tab svg{
    flex:0 0 auto;
    width:14px;
    height:14px;
    fill:none;
    stroke:#a8bdd2;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
    transition:transform 170ms ease,stroke 170ms ease;
  }
  .services-mega__tab:is(:hover,:focus-visible){color:#fff;outline:0}
  .services-mega__tab.is-active{
    margin:0;
    border-bottom-color:rgba(178,211,233,.2);
    border-radius:0;
    background:transparent;
    color:#fff;
    font-weight:700;
    box-shadow:none;
  }
  .services-mega__tab.is-active svg{stroke:#fff;transform:translateX(2px)}
  .services-mega__tab:last-child.is-active{border-bottom-color:transparent}
  .services-mega__tab:last-child:is(:hover,.is-active) svg{stroke:#a8bdd2;transform:none}
  .services-mega__content{display:grid}
  .services-mega__panel{
    min-height:0;
    grid-template-rows:auto auto auto;
    align-content:start;
    animation:services-panel-in 180ms ease both;
  }
  .services-mega__panel:not([hidden]){display:grid}
  .services-mega__panel[hidden]{display:none}
  .services-mega__panel>header{padding:1px 0 12px}
  .services-mega__panel>header h2{margin:0;color:#fff;font-size:1.35rem;line-height:1.08;letter-spacing:-.04em}
  .services-mega__panel>header p{max-width:560px;margin-top:4px;color:#bdcce0;font-size:.72rem;line-height:1.4}
  .services-mega__columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    padding:4px 0 10px;
    align-content:start;
  }
  .services-mega__column{min-width:0}
  .services-mega__column-heading{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px}
  .services-mega__column-heading i{
    display:grid;
    width:40px;
    height:40px;
    place-items:center;
    border:1px solid rgba(201,240,255,.36);
    border-radius:50%;
    background:linear-gradient(145deg,#168fe8,#0bbab8);
    color:#fff;
    box-shadow:0 8px 22px rgba(4,151,211,.25),inset 0 1px 0 rgba(255,255,255,.22);
    font-style:normal;
  }
  .services-mega__column-heading svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .services-mega__column-heading h3{
    width:max-content;
    max-width:100%;
    margin:0;
    padding-bottom:4px;
    border-bottom:1px solid rgba(237,247,255,.85);
    color:#fff;
    font-size:.75rem;
    font-weight:760;
    letter-spacing:-.01em;
    text-transform:uppercase;
  }
  .services-mega__column nav{display:grid;gap:0;margin-top:6px;padding-left:53px}
  .services-mega__column nav a{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    min-height:27px;
    align-items:center;
    color:#e4edf7;
    gap:7px;
    font-size:.76rem;
    line-height:1.35;
    transition:color 160ms ease,transform 160ms ease;
  }
  .services-mega__column nav a::after{color:#8fe7de;content:"\2192";opacity:0;transform:translateX(-5px);transition:opacity 170ms ease,transform 170ms ease}
  .services-mega__column nav a:is(:hover,:focus-visible),
  .services-mega__column nav a.active{color:#7de7ef;outline:0;transform:translateX(3px)}
  .services-mega__column nav a:is(:hover,:focus-visible,.active)::after{opacity:1;transform:translateX(0)}
  .services-mega__cta{
    display:flex;
    min-height:46px;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:5px 7px 5px 14px;
    border:1px solid rgba(32,145,255,.8);
    border-radius:999px;
    background:linear-gradient(105deg,rgba(4,87,190,.84),rgba(5,60,145,.76));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  }
  .services-mega__cta>span{display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:.68rem;font-weight:690}
  .services-mega__cta b{color:#7de7ef;font-size:.9rem;font-weight:500}
  .services-mega__cta>a{
    display:inline-flex;
    min-height:34px;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:6px 14px;
    border-radius:999px;
    background:#fff;
    color:#071a37;
    font-size:.67rem;
    font-weight:780;
    transition:transform 160ms ease,box-shadow 160ms ease;
  }
  .services-mega__cta>a:is(:hover,:focus-visible){outline:0;box-shadow:0 8px 22px rgba(0,13,45,.26);transform:translateY(-1px)}
  .services-mega__cta>a svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  @keyframes services-panel-in{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:none}}

  @media(max-width:1120px){
    .desktop-nav .nav-item #servicesMenu{width:min(860px,calc(100vw - 40px));grid-template-columns:172px minmax(0,1fr);gap:18px;padding:14px}
    .services-mega__nav{padding-inline:8px}
    .services-mega__tab{font-size:.74rem}
    .services-mega__panel>header h2{font-size:1.26rem}
    .services-mega__columns{gap:16px}
    .services-mega__column-heading{grid-template-columns:40px minmax(0,1fr);gap:9px}
    .services-mega__column-heading i{width:38px;height:38px}
    .services-mega__column-heading h3{font-size:.71rem}
    .services-mega__column nav{padding-left:49px}
    .services-mega__column nav a{font-size:.73rem}
    .services-mega__cta{padding-left:12px}
    .services-mega__cta>span{font-size:.65rem}
  }
  @media(min-width:821px) and (max-width:900px){
    .desktop-nav .nav-item #aboutMenu{width:292px}
    .desktop-nav .nav-item #servicesMenu{
      right:16px;
      left:16px;
      width:auto;
      max-height:calc(100vh - var(--header-height) - 16px);
      grid-template-columns:158px minmax(0,1fr);
      gap:14px;
      padding:12px;
    }
    .services-mega__nav{padding:8px}
    .services-mega__eyebrow{padding-bottom:4px;font-size:.57rem}
    .services-mega__tab{min-height:40px;font-size:.69rem}
    .services-mega__panel>header{padding-bottom:9px}
    .services-mega__panel>header h2{font-size:1.15rem}
    .services-mega__panel>header p{font-size:.66rem}
    .services-mega__columns{gap:14px;padding-bottom:8px}
    .services-mega__column-heading{grid-template-columns:36px minmax(0,1fr);gap:8px}
    .services-mega__column-heading i{width:34px;height:34px}
    .services-mega__column-heading h3{font-size:.66rem}
    .services-mega__column nav{margin-top:4px;padding-left:44px}
    .services-mega__column nav a{font-size:.68rem}
    .services-mega__cta{min-height:42px;padding:6px 8px 6px 11px}
    .services-mega__cta>span{font-size:.61rem}
    .services-mega__cta>a{min-height:30px;padding-inline:13px;font-size:.63rem}
  }
}

@media(prefers-reduced-motion:reduce){.services-mega__panel{animation:none}}

/* Home header over the full-bleed video hero */
body[data-section="home"]>[data-partial="partials/header.html"]{height:0}
body[data-section="home"] .site-header:not(.is-scrolled){
  border-color:transparent;
  background:transparent;
  color:#fff;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body[data-section="home"] .site-header.is-scrolled{
  border-color:rgba(170,211,242,.06);
  background:linear-gradient(110deg,rgba(2,16,43,.32),rgba(4,29,63,.27));
  color:#fff;
  box-shadow:0 8px 24px rgba(0,10,32,.08),inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter:blur(5px) saturate(1.1) brightness(.78);
  -webkit-backdrop-filter:blur(5px) saturate(1.1) brightness(.78);
}
body[data-section="home"] .site-header:not(.is-scrolled) .brand-copy strong{color:#fff}
body[data-section="home"] .site-header:not(.is-scrolled) .brand-copy small{color:rgba(225,234,247,.68)}
body[data-section="home"] .site-header:not(.is-scrolled) .nav-link,
body[data-section="home"] .site-header:not(.is-scrolled) .nav-button{color:rgba(237,243,252,.82)}
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-link:hover,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-link.active,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-button:hover,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-button.active{color:#fff}
body[data-section="home"] .site-header:not(.is-scrolled) .nav-link::before,
body[data-section="home"] .site-header:not(.is-scrolled) .nav-button::before{background:var(--accent)}
body[data-section="home"] .site-header.is-scrolled .brand-copy strong,
body[data-section="home"] .site-header.is-scrolled .nav-link,
body[data-section="home"] .site-header.is-scrolled .nav-button{color:rgba(245,249,255,.9)}
body[data-section="home"] .site-header.is-scrolled .brand-copy small{color:rgba(215,228,248,.62)}
@media(max-width:1024px){
  body[data-section="home"] .site-header .header-cta{display:none}
}

/* Home video shell: controlled navigation emphasis. */
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-link,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-button{
  transition:color 200ms ease,text-shadow 200ms ease;
}
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-link:hover,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-link.active,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-button:hover,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-button.active,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-button[aria-expanded="true"]{
  text-shadow:0 0 18px rgba(255,255,255,.3);
}
body[data-section="home"] .site-header:not(.is-scrolled) .nav-link.active::before,
body[data-section="home"] .site-header:not(.is-scrolled) .nav-link:hover::before,
body[data-section="home"] .site-header:not(.is-scrolled) .nav-button:hover::before,
body[data-section="home"] .site-header:not(.is-scrolled) .nav-button[aria-expanded="true"]::before,
body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-item:has(.mega-menu:is(:hover,.is-open)) > .nav-button::before{
  box-shadow:0 0 14px rgba(185,244,92,.72);
}
body[data-section="home"] .site-header:not(.is-scrolled) .header-cta{
  transition:transform 220ms ease,box-shadow 220ms ease,filter 220ms ease;
}
@media(prefers-reduced-motion:reduce){
  body[data-section="home"] .site-header:not(.is-scrolled),
  body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-link,
  body[data-section="home"] .site-header:not(.is-scrolled) .desktop-nav .nav-button,
  body[data-section="home"] .site-header:not(.is-scrolled) .header-cta{transition:none}
  body[data-section="home"] .site-header:not(.is-scrolled) .header-cta:hover{transform:none}
}

/* Shared brand assets. */
.brand-logo{display:block;max-width:100%;height:auto;object-fit:contain}
.brand-logo--header{display:block;width:146px}
.brand--footer .brand-logo--footer{width:100%}
@media(max-width:560px){body[data-section="home"] .brand--header .brand-logo--header{width:104px}}

/* Primary header action: the same dark-glass family with a continuous, restrained moving rim. */
body[data-section="home"] .site-header:not(.is-scrolled) .header-cta,body[data-section="home"] .site-header.is-scrolled .header-cta{position:relative;isolation:isolate;overflow:hidden;padding-inline:20px;border:0;background:transparent;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 10px 26px rgba(0,0,0,.14)}
body[data-section="home"] .site-header .header-cta::before{position:absolute;z-index:0;inset:-40%;background:conic-gradient(from 0deg,rgba(48,102,205,.58) 0 39%,rgba(83,143,232,.65) 45%,#d8fbff 49%,#7de7ef 50.5%,#d8fbff 52%,rgba(83,143,232,.65) 57%,rgba(48,102,205,.58) 63% 100%);content:"";animation:header-cta-rim 5.2s linear infinite}
body[data-section="home"] .site-header .header-cta::after{position:absolute;z-index:1;inset:2px;border-radius:inherit;background:rgba(4,16,39,.9);content:""}
body[data-section="home"] .site-header .header-cta span{position:relative;z-index:2}
body[data-section="home"] .site-header:not(.is-scrolled) .header-cta:hover,body[data-section="home"] .site-header.is-scrolled .header-cta:hover{background:rgba(8,28,64,.52);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 14px 30px rgba(0,0,0,.2);filter:brightness(1.03);transform:translateY(-2px)}
@keyframes header-cta-rim{to{transform:rotate(1turn)}}
/* This CTA's moving highlight is intentional feedback, including on systems that reduce other page motion. */
@media(prefers-reduced-motion:reduce){body[data-section="home"] .site-header .header-cta{animation:none}body[data-section="home"] .site-header .header-cta::before{animation:header-cta-rim 5.2s linear infinite!important}}

/* Interior shell: mirrors Home's transparent-to-glass navigation without losing readability. */
body.interior-page>[data-partial="partials/header.html"]{height:0}
body.interior-page .site-header:not(.is-scrolled){border-color:transparent;background:transparent;color:#fff;box-shadow:none;backdrop-filter:none}
body.interior-page .site-header:not(.is-scrolled) .brand--header .brand-logo--header{display:block;width:146px}
body.interior-page .site-header:not(.is-scrolled) .brand--header .brand-mark,
body.interior-page .site-header:not(.is-scrolled) .brand--header .brand-copy{display:none}
body.interior-page .site-header:not(.is-scrolled) .nav-link,
body.interior-page .site-header:not(.is-scrolled) .nav-button{color:rgba(245,249,255,.84)}
body.interior-page .site-header:not(.is-scrolled) .nav-link::before,
body.interior-page .site-header:not(.is-scrolled) .nav-button::before{background:var(--page-accent,#7de7ef)}
body.interior-page .site-header:not(.is-scrolled) .header-cta{position:relative;isolation:isolate;overflow:hidden;padding-inline:20px;border:0;background:transparent;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 10px 26px rgba(0,0,0,.14)}
body.interior-page .site-header:not(.is-scrolled) .header-cta::before{position:absolute;z-index:0;inset:-40%;background:conic-gradient(from 0deg,rgba(48,102,205,.58) 0 39%,rgba(83,143,232,.65) 45%,#d8fbff 49%,var(--page-accent,#7de7ef) 50.5%,#d8fbff 52%,rgba(83,143,232,.65) 57%,rgba(48,102,205,.58) 63% 100%);content:"";animation:header-cta-rim 5.2s linear infinite}
body.interior-page .site-header:not(.is-scrolled) .header-cta::after{position:absolute;z-index:1;inset:2px;border-radius:inherit;background:rgba(4,16,39,.9);content:""}
body.interior-page .site-header:not(.is-scrolled) .header-cta span{position:relative;z-index:2}
body.interior-page .site-header.is-scrolled{border-color:rgba(170,211,242,.03);background:linear-gradient(110deg,rgba(2,16,43,.18),rgba(4,29,63,.12));color:#fff;box-shadow:0 4px 14px rgba(0,10,32,.04),inset 0 1px 0 rgba(255,255,255,.015);backdrop-filter:blur(5px) saturate(1.1) brightness(.78);-webkit-backdrop-filter:blur(5px) saturate(1.1) brightness(.78)}
body.interior-page .site-header.is-scrolled .brand--header .brand-logo--header{display:block;width:146px}
body.interior-page .site-header.is-scrolled .brand-mark,
body.interior-page .site-header.is-scrolled .brand-copy{display:none}
body.interior-page .site-header.is-scrolled .nav-link,
body.interior-page .site-header.is-scrolled .nav-button{color:rgba(245,249,255,.9)}
body.interior-page .site-header.is-scrolled .header-cta{background:#fff;color:#0a2d69;box-shadow:none}
@media(min-width:561px) and (max-width:820px){.brand-logo--header,body.interior-page .site-header:not(.is-scrolled) .brand--header .brand-logo--header,body.interior-page .site-header.is-scrolled .brand--header .brand-logo--header{width:128px}}
@media(max-width:560px){body.interior-page .site-header:not(.is-scrolled) .brand--header .brand-logo--header,body.interior-page .site-header.is-scrolled .brand--header .brand-logo--header{width:104px}body.interior-page .site-header:not(.is-scrolled) .menu-toggle{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.12);color:#fff}}

/* Use the continuous moving rim on every primary header CTA, not only Home. */
body.interior-page .site-header .header-cta{position:relative;isolation:isolate;overflow:hidden;padding-inline:20px;border:0;background:transparent!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 10px 26px rgba(0,0,0,.14)!important}
body.interior-page .site-header .header-cta::before{position:absolute;z-index:0;inset:-40%;display:block;background:conic-gradient(from 0deg,rgba(48,102,205,.58) 0 39%,rgba(83,143,232,.65) 45%,#d8fbff 49%,var(--page-accent,#7de7ef) 50.5%,#d8fbff 52%,rgba(83,143,232,.65) 57%,rgba(48,102,205,.58) 63% 100%);content:"";animation:header-cta-rim 5.2s linear infinite!important}
body.interior-page .site-header .header-cta::after{position:absolute;z-index:1;inset:2px;display:block;border-radius:inherit;background:rgba(4,16,39,.9);content:""}
body.interior-page .site-header .header-cta span{position:relative;z-index:2}

.interior-page[data-section="about"]>[data-partial="partials/header.html"],
.interior-page[data-section="services"]>[data-partial="partials/header.html"],
.interior-page[data-section="contact"]>[data-partial="partials/header.html"],
.interior-page[data-section="training"]>[data-partial="partials/header.html"]{height:var(--header-height)}
.interior-page[data-section="about"] .site-header:not(.is-scrolled),
.interior-page[data-section="services"] .site-header:not(.is-scrolled),
.interior-page[data-section="contact"] .site-header:not(.is-scrolled),
.interior-page[data-section="training"] .site-header:not(.is-scrolled){background:#06142f}

/* Keep the mobile menu control legible across every header surface. */
.site-header .menu-toggle{
  width:46px;
  height:46px;
  border:0;
  background:rgba(255,255,255,.1);
  color:#fff;
  box-shadow:none;
  backdrop-filter:blur(8px);
}
.site-header .menu-toggle span,
.site-header .menu-toggle::before,
.site-header .menu-toggle::after{
  width:19px;
  height:2px;
  margin:4px auto;
  border-radius:0;
  background:currentColor;
}
.site-header .menu-toggle:hover{background:rgba(255,255,255,.16);transform:none}
.site-header .menu-toggle:focus-visible{outline:2px solid #7de7ef;outline-offset:3px}

/* Refined mobile navigation without numeric labels. */
@media(max-width:820px){
  .mobile-panel__group{padding-block:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .mobile-panel__group>a,.mobile-panel__button{
    display:flex;
    width:100%;
    min-height:62px;
    align-items:center;
    justify-content:space-between;
    padding:14px 2px;
    color:#fff;
    font-size:clamp(1.2rem,5vw,1.55rem);
    text-align:left;
  }
  .mobile-panel__group>a::after{color:#7de7ef;content:"\2197";font-family:var(--font-body);font-size:.85rem;font-weight:500}
  .mobile-panel__button::after{margin-left:auto}
  .mobile-subnav{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding:0;
  }
  .mobile-subnav.is-open{max-height:900px;padding:4px 0 16px}
  .mobile-subnav a{
    display:grid;
    min-height:66px;
    grid-template-columns:34px minmax(0,1fr);
    gap:9px;
    align-items:center;
    padding:8px 9px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:13px;
    background:rgba(255,255,255,.045);
    color:#b4c0d3;
    font-size:.7rem;
    font-weight:700;
    line-height:1.3;
    transition:border-color 220ms ease,background-color 220ms ease,color 220ms ease,transform 220ms ease;
  }
  .mobile-subnav a::before{
    display:grid;
    width:34px;
    height:34px;
    place-items:center;
    border:1px solid rgba(125,231,239,.16);
    border-radius:10px;
    background:rgba(125,231,239,.09);
    color:#7de7ef;
    content:attr(data-icon);
    font-size:.58rem;
    font-weight:850;
    letter-spacing:-.03em;
  }
  .mobile-subnav a:is(:hover,:focus-visible),
  .mobile-subnav a.active,
  .mobile-subnav a[aria-current="page"]{border-color:rgba(125,231,239,.35);background:rgba(125,231,239,.1);color:#fff;transform:translateY(-2px)}
  .mobile-panel__button[aria-expanded="true"]{color:#7de7ef}
  .mobile-panel__button:focus-visible,
  .mobile-panel__group>a:focus-visible,
  .mobile-subnav a:focus-visible{outline:2px solid rgba(125,231,239,.42);outline-offset:-2px;border-radius:12px}
}
@media(max-width:380px){
  .mobile-subnav{gap:6px}
  .mobile-subnav a{grid-template-columns:30px minmax(0,1fr);gap:7px;padding:7px;font-size:.66rem}
  .mobile-subnav a::before{width:30px;height:30px}
}

/* Mobile navigation alignment and unified outline icon set. */
@media(max-width:820px){
  .mobile-panel{
    --mobile-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%237de7ef' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
    --mobile-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%239aacc7' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    --mobile-icon:var(--mobile-arrow);
  }
  .mobile-panel__group>a,.mobile-panel__button{min-height:70px;padding:12px 0;font-size:1.28rem}
  .mobile-panel__group>a::after,.mobile-panel__button::after{
    width:36px;
    height:36px;
    flex:0 0 36px;
    margin-left:auto;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    background-color:rgba(255,255,255,.035);
    background-image:var(--mobile-arrow);
    background-position:center;
    background-repeat:no-repeat;
    content:"";
    transform:none;
    transition:border-color 220ms ease,background-color 220ms ease,transform 220ms ease;
  }
  .mobile-panel__button::after{background-image:var(--mobile-chevron)}
  .mobile-panel__button[aria-expanded="true"]::after{border-color:rgba(125,231,239,.3);background-color:rgba(125,231,239,.08);transform:rotate(180deg)}
  .mobile-subnav{grid-auto-rows:72px;gap:10px}
  .mobile-subnav a{
    height:72px;
    min-height:72px;
    grid-template-columns:24px minmax(0,1fr);
    gap:10px;
    padding:10px 12px;
    border-color:rgba(255,255,255,.09);
    border-radius:14px;
    background:rgba(255,255,255,.04);
    font-size:.72rem;
  }
  .mobile-subnav a::before{
    width:20px;
    height:20px;
    border:0;
    border-radius:0;
    background:#7de7ef;
    content:"";
    -webkit-mask:var(--mobile-icon) center/18px 18px no-repeat;
    mask:var(--mobile-icon) center/18px 18px no-repeat;
  }
  .mobile-subnav a[href*="about/index"],.mobile-subnav a[href*="services/index"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 9-8 9 8v10H3z'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="who-we-are"],.mobile-subnav a[href*="our-team"],.mobile-subnav a[href*="board-of-directors"],.mobile-subnav a[href*="onsite-development-team"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='17' cy='9' r='2'/%3E%3Cpath d='M3 20c0-4 2-6 6-6s6 2 6 6M15 15c3 0 5 2 5 5'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="software-development"],.mobile-subnav a[href*="panel-languages"],.mobile-subnav a[href*="panel-backend"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 9-3 3 3 3M16 9l3 3-3 3M14 5l-4 14'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="mobile-development"],.mobile-subnav a[href*="website-to-mobile"],.mobile-subnav a[href*="panel-mobile"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='6' y='2' width='12' height='20' rx='2'/%3E%3Cpath d='M10 18h4'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="web-development"],.mobile-subnav a[href*="panel-frontend"],.mobile-subnav a[href*="panel-design"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3' y='4' width='18' height='14' rx='2'/%3E%3Cpath d='M8 22h8M12 18v4'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="cloud-development"],.mobile-subnav a[href*="panel-cloud"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 19h12a4 4 0 0 0 .5-7.97A7 7 0 0 0 5.2 9.1 5 5 0 0 0 6 19Z'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="software-testing"],.mobile-subnav a[href*="panel-testing"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 7v5c0 5 3.4 8.2 8 9 4.6-.8 8-4 8-9V7z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="panel-data"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cellipse cx='12' cy='5' rx='8' ry='3'/%3E%3Cpath d='M4 5v7c0 1.7 3.6 3 8 3s8-1.3 8-3V5M4 12v7c0 1.7 3.6 3 8 3s8-1.3 8-3v-7'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="game-development"],.mobile-subnav a[href*="panel-game"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M7 7h10l4 8a3 3 0 0 1-5 3l-2-2h-4l-2 2a3 3 0 0 1-5-3z'/%3E%3Cpath d='M8 11v4M6 13h4M16 12h.01M18 14h.01'/%3E%3C/svg%3E")}
  .mobile-subnav a[href*="our-mission"],.mobile-subnav a[href*="why-bsp"],.mobile-subnav a[href*="how-to-get-started"]{--mobile-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1' fill='black'/%3E%3C/svg%3E")}
}
@media(max-width:380px){
  .mobile-subnav{grid-auto-rows:68px;gap:8px}
  .mobile-subnav a{height:68px;min-height:68px;grid-template-columns:20px minmax(0,1fr);gap:8px;padding:9px 10px;font-size:.68rem}
  .mobile-subnav a::before{width:18px;height:18px}
}

/* P2 interior-page presentation system */
.interior-page{--page-accent:#7de7ef;--page-accent-strong:#2357f5;background:#fff}
.interior-page .section{padding-block:clamp(82px,9vw,132px)}
.interior-page .section--soft,.interior-page .section--muted{background:#f5f7fb}
.interior-page .section-head h2,.interior-page .section-heading h2{font-size:clamp(2.55rem,4.8vw,4.9rem);line-height:1.03;letter-spacing:-.055em}

@media(max-width:560px){.interior-page .section{padding-block:72px}}

/* The three dark section headers share the same cyan navigation accent. */
body.interior-page:is([data-section="about"],[data-section="services"],[data-section="contact"],[data-section="training"]){--page-accent:#20d8f2}

/* About + Services mega menu glass */
@media (min-width: 821px) {
  /* Header glass variables */
  body[data-section="home"] .site-header.is-scrolled {
    --header-glass-border: rgba(170,211,242,.06);
    --header-glass-bg: linear-gradient(110deg,rgba(2,16,43,.32),rgba(4,29,63,.27));
    --header-glass-shadow: 0 8px 24px rgba(0,10,32,.08), inset 0 1px 0 rgba(255,255,255,.03);
  }
 
  body.interior-page .site-header.is-scrolled {
    --header-glass-border: rgba(170,211,242,.03);
    --header-glass-bg: linear-gradient(110deg,rgba(2,16,43,.18),rgba(4,29,63,.12));
    --header-glass-shadow: 0 4px 14px rgba(0,10,32,.04), inset 0 1px 0 rgba(255,255,255,.015);
  }
   /* Tan adjust transparent menu */
  /* Mega menu default */
  .desktop-nav .nav-item :is(#aboutMenu,#servicesMenu) {
    border-color: rgba(170,211,242,.06);
    background: linear-gradient(110deg,rgba(2,16,43,.72),rgba(4,29,63,.77));
    box-shadow: 0 8px 24px rgba(0,10,32,.08), inset 0 1px 0 rgba(255,255,255,.03);
    backdrop-filter: blur(5px) saturate(1.1) brightness(.78);
    -webkit-backdrop-filter: blur(8px) saturate(1.1) brightness(.78);
  }
 
  .desktop-nav .nav-item :is(#aboutMenu,#servicesMenu)::after {
    content: none;
  }
 
  /* Khi menu mở: tắt backdrop của header cha */
  .site-header.is-scrolled:has(#aboutMenu.is-open,#servicesMenu.is-open) {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
 
  /* Tạo lại glass riêng cho header */
  .site-header.is-scrolled:has(#aboutMenu.is-open,#servicesMenu.is-open)::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    border-bottom: 1px solid var(--header-glass-border);
    background: var(--header-glass-bg);
    box-shadow: var(--header-glass-shadow);
    backdrop-filter: blur(5px) saturate(1.1) brightness(.78);
    -webkit-backdrop-filter: blur(5px) saturate(1.1) brightness(.78);
    content: "";
    pointer-events: none;
  }
 
  /* Mega menu khi scroll */
  .site-header.is-scrolled :is(#aboutMenu,#servicesMenu).is-open {
    border-color: rgba(170,211,242,.07);
    background: linear-gradient(110deg,rgba(2,16,43,.44),rgba(4,29,63,.38));
    box-shadow: 0 10px 30px rgba(0,10,32,.12), inset 0 1px 0 rgba(255,255,255,.035);
    backdrop-filter: blur(5px) saturate(1.1) brightness(.78);
    -webkit-backdrop-filter: blur(5px) saturate(1.1) brightness(.78);
  }
}
