/* SELF_HOSTED_FONTS (Gil, 2026-09-09): Barlow and Barlow Condensed served from
   this domain (latin subset, OFL) instead of two Google round trips, so text
   settles before the largest paint on slow connections. */
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/Barlow-400.woff2?v=f1') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/Barlow-500.woff2?v=f1') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/Barlow-600.woff2?v=f1') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/BarlowCondensed-400.woff2?v=f1') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/BarlowCondensed-600.woff2?v=f1') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/BarlowCondensed-700.woff2?v=f1') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 800; font-display: swap; src: url('/assets/fonts/BarlowCondensed-800.woff2?v=f1') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* MOTION_TOKENS (2026-09-08): one motion vocabulary for the site.
   Four easings, five durations. Modules reference these; do not add new
   literal curves or timings. GSAP side: power2.out (enter), power2.in (exit),
   power2.inOut (on-screen), none (scrub). */
:root {
  /* HIG_AUDIT_V39 (2026-09-11): the three curves used to reference themselves, which
     makes the property invalid and resets every transition that used it. Real values
     now, matching the GSAP note above (power2.out, power2.inOut, one overshoot). */
  --tcs-ease-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);   /* entrances, rises, settles */
  --tcs-ease-inout: cubic-bezier(0.455, 0.03, 0.515, 0.955);   /* sweeps, menu, rail */
  --tcs-ease-pop: cubic-bezier(0.34, 1.56, 0.64, 1);    /* badges, checks, one overshoot */
  --tcs-ease-linear: linear;                            /* progress, scrub */
  --tcs-dur-quick: 0.15s;   /* hover, press, colour */
  --tcs-dur-short: 0.25s;   /* icons, small state */
  --tcs-dur-mid: 0.45s;     /* cards, rises */
  --tcs-dur-long: 0.6s;     /* rails, reveals */
  --tcs-dur-slow: 0.9s;     /* dramatic */
}

/* TCS mobile navigation — full-viewport overlay (matches homepage OTP hamburger). */

.tcs-nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  cursor: pointer;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
}

.tcs-nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  border-radius: 2px;
  background-color: #fff;
  transition: transform var(--tcs-dur-short) ease, opacity var(--tcs-dur-short) ease;
}

.tcs-nav-toggle:hover span {
  background-color: #2A8EFF;
}

.tcs-nav-toggle:focus-visible {
  outline: 2px solid #2A8EFF;
  outline-offset: 2px;
}

/* MENU_MOTION_LOCK: same overlay fade + link stagger as the homepage menu. */
.tcs-mobile-menu {
  display: flex;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--tcs-dur-short) ease, visibility 0s linear var(--tcs-dur-short);
  position: fixed;
  inset: 0;
  z-index: 200;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  min-height: 100%;
  background: #0B1829;
  isolation: isolate;
  flex-direction: column;
  align-items: stretch;
  padding: max(12px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.tcs-mobile-menu[hidden] {
  display: none;
}

.tcs-mobile-menu.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity var(--tcs-dur-short) ease, visibility 0s;
}

.tcs-mobile-menu-link,
.tcs-mobile-menu-cta {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity var(--tcs-dur-short) ease, transform var(--tcs-dur-short) ease;
}

/* Legal line fades in place with the CTA (no drift). */
.tcs-mobile-menu-legal {
  opacity: 0;
  transition: opacity var(--tcs-dur-short) ease;
}

.tcs-mobile-menu.open .tcs-mobile-menu-link,
.tcs-mobile-menu.open .tcs-mobile-menu-cta,
.tcs-mobile-menu.open .tcs-mobile-menu-legal {
  opacity: 1;
  transform: none;
  transition: opacity var(--tcs-dur-mid) var(--tcs-ease-out), transform var(--tcs-dur-mid) var(--tcs-ease-out);
}

.tcs-mobile-menu.open .tcs-mobile-menu-link:nth-child(1) { transition-delay: 80ms; }
.tcs-mobile-menu.open .tcs-mobile-menu-link:nth-child(2) { transition-delay: 140ms; }
.tcs-mobile-menu.open .tcs-mobile-menu-link:nth-child(3) { transition-delay: 200ms; }
.tcs-mobile-menu.open .tcs-mobile-menu-link:nth-child(4) { transition-delay: 260ms; }
.tcs-mobile-menu.open .tcs-mobile-menu-link:nth-child(5) { transition-delay: 320ms; }
.tcs-mobile-menu.open .tcs-mobile-menu-cta { transition-delay: 400ms; }
.tcs-mobile-menu.open .tcs-mobile-menu-legal { transition-delay: 400ms; }

/* Scrolled nav state for inner pages (homepage has its own copy). */
nav.tcs-nav-root {
  transition: background var(--tcs-dur-short) ease, backdrop-filter var(--tcs-dur-short) ease;
}

nav.tcs-nav-root.is-scrolled {
  background: rgba(11, 24, 41, 0.96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

@media (prefers-reduced-motion: reduce) {
  .tcs-mobile-menu,
  .tcs-mobile-menu.open,
  .tcs-mobile-menu-link,
  .tcs-mobile-menu-cta,
  .tcs-mobile-menu-legal,
  .tcs-mobile-menu.open .tcs-mobile-menu-link,
  .tcs-mobile-menu.open .tcs-mobile-menu-cta,
  .tcs-mobile-menu.open .tcs-mobile-menu-legal {
    transition: none;
    transform: none;
  }
}

.tcs-mobile-menu-top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 40px;
  margin-bottom: 0;
}

.tcs-mobile-menu-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #fff;
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
}

.tcs-mobile-menu-close:focus-visible {
  outline: 2px solid #2A8EFF;
  outline-offset: 2px;
}

.tcs-mobile-menu-nav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  flex: 1 0 auto; /* grows to fill the overlay, never shrinks; taller lists scroll (MENU_LEGAL_FLOW) */
  justify-content: space-between; /* MENU_BREATHE (Gil, 2026-09-09): rows share the full height */
  min-height: auto;
  padding: 0; /* MENU_FIT_SCREEN (Gil, 2026-09-09): fits one phone screen, Fit Call included */
}

.tcs-mobile-menu-link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
  width: 100%;
  gap: 14px;
  flex: 1 1 0;
  min-height: 44px; /* HIG_AUDIT_V39: 44pt touch floor */
  padding: 4px 0;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(1.15rem, 3.1dvh, 2rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  line-height: 1.15;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.tcs-mobile-menu-link .n {
  display: inline-block;
  font-size: 0.85em;
  font-weight: 600;
  color: #8BA3C1;
  letter-spacing: 0.02em;
  flex: 0 0 1.75em;
  width: 1.75em;
  min-width: 1.75em;
  text-align: left;
  font-variant-numeric: tabular-nums;
}

.tcs-mobile-menu-link:hover,
.tcs-mobile-menu-link:focus-visible {
  color: #2A8EFF;
}

.tcs-mobile-menu-cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 28px;
  padding: 16px 22px !important;
  min-height: 48px;
  border-radius: 999px;
  background: #2A8EFF !important;
  color: #fff !important;
  font-family: 'Barlow', sans-serif;
  font-size: 1.0625rem;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  text-decoration: none;
  text-transform: none;
}

.tcs-mobile-menu-cta:hover {
  background: #1a6fd0 !important;
}

/* MENU_LEGAL_FLOW (Gil, 2026-09-08): the overlay scrolls as one column; the
   list never shrinks, and Terms and Privacy sit after the list, not on it. */
.tcs-mobile-menu > * { flex-shrink: 0; }
.tcs-mobile-menu-legal {
  position: static;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
  padding-top: 4px;
  padding-bottom: 0;
  border-top: 0;
  font-size: 0.8125rem;
  color: #8BA3C1;
}

.tcs-mobile-menu-legal a {
  color: #8BA3C1;
  text-decoration: none;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
}

.tcs-mobile-menu-legal a:hover {
  color: #2A8EFF;
}

.tcs-mobile-menu-legal .sep {
  opacity: 0.5;
}

body.tcs-menu-open {
  overflow: hidden;
}

@media (max-width: 820px) {
  .tcs-nav-host {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
  }

  .tcs-nav-toggle {
    display: flex;
  }

  /* Keep desktop list out of the sticky bar; overlay owns mobile nav */
  .tcs-nav-panel {
    display: none !important;
  }

  .tcs-nav-root.tcs-nav-open .tcs-nav-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .tcs-nav-root.tcs-nav-open .tcs-nav-toggle span:nth-child(2) {
    opacity: 0;
  }

  .tcs-nav-root.tcs-nav-open .tcs-nav-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
}

/* CHAR_SLIDE_LOCK: hover slides each character up; the text-shadow copy
   below takes its place (0.6s, 12ms per-character delay set inline). */
.tcs-chars {
  display: inline-block;
  position: relative;
  overflow: hidden;
  vertical-align: bottom;
  white-space: nowrap;
  line-height: 1.05;
}

/* The sweep fill forces position:relative; the floating Fit Call bar on
   the homepage must stay fixed or it drops into the flow above <main>
   and pushes the whole page down (the blue band above the video). */
.sticky-fit-call.tcs-sweep { position: fixed !important; }

/* A padded link would show the shadow layer in its padding box. */
nav a.tcs-chars, nav .nav-links a.tcs-chars {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.tcs-chars span {
  display: inline-block;
  position: relative;
  text-shadow: 0 1.15em currentColor;
  transform: translateY(0) rotate(0.001deg);
  transition: transform var(--tcs-dur-long) var(--tcs-ease-inout);
}

a:hover .tcs-chars span,
a:focus-visible .tcs-chars span,
a.tcs-chars:hover span,
a.tcs-chars:focus-visible span,
.is-active .tcs-chars span,
[aria-current] .tcs-chars span {
  transform: translateY(-1.15em) rotate(0.001deg);
}

@media (prefers-reduced-motion: reduce) {
  .tcs-chars span {
    transition: none;
  }
}

/* BUTTON_SWEEP_LOCK: directional fill on hover + press scale. */
.tcs-sweep {
  position: relative !important;
  overflow: hidden !important;
  contain: paint;
  isolation: isolate;
  transition: transform var(--tcs-dur-quick) ease, background var(--tcs-dur-short), border-color var(--tcs-dur-short), opacity var(--tcs-dur-short) ease;
}

.tcs-sweep-fill {
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: var(--tcs-sweep, rgba(255, 255, 255, 0.16));
  transform: translateX(-102%);
  opacity: 0; /* never visible at rest, even if a page's own rules defeat the clip */
  transition: transform var(--tcs-dur-mid) var(--tcs-ease-inout), opacity var(--tcs-dur-quick) ease;
  pointer-events: none;
}

.tcs-sweep[data-dir="right"] .tcs-sweep-fill { transform: translateX(102%); }
.tcs-sweep[data-dir="top"] .tcs-sweep-fill { transform: translateY(-102%); }
.tcs-sweep[data-dir="bottom"] .tcs-sweep-fill { transform: translateY(102%); }

.tcs-sweep:hover .tcs-sweep-fill,
.tcs-sweep:focus-visible .tcs-sweep-fill {
  transform: none;
  opacity: 1;
}

.tcs-sweep:active {
  transform: scale(0.97);
}

.btn-ghost.tcs-sweep { --tcs-sweep: rgba(42, 142, 255, 0.14); }
.btn-white.tcs-sweep { --tcs-sweep: rgba(11, 24, 41, 0.08); }

@media (prefers-reduced-motion: reduce) {
  .tcs-sweep-fill { transition: none; }
  .tcs-sweep:active { transform: none; }
}

/* WORDMARK_EVERYWHERE_LOCK: stacked wordmark in every top bar. */
.tcs-wordmark-link {
  display: inline-flex;
  align-items: center;
  line-height: 0;
  text-decoration: none;
}

.tcs-wordmark {
  display: block;
  width: 210px;
  height: 64px;
  overflow: visible;
}

.tcs-wm-l1,
.tcs-wm-l2,
.tcs-wm-l3 {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  font-weight: 800;
  font-size: 26px;
  letter-spacing: 2px;
  fill: #FFFFFF;
}

.tcs-wm-l2 {
  fill: #2A8EFF;
}

.tcs-wm-l3 {
  font-weight: 700;
  font-size: 23px;
  fill: #8CA3BE;
}

@media (max-width: 1024px) {
  .tcs-wordmark {
    width: 176px;
    height: 54px;
  }
}
@media (max-width: 820px) {
  .tcs-wordmark {
    width: 164px;
    height: 50px;
  }
}

/* NAV_MODULES_LOCK: the overlay lists the module pages first, then the
   company links, each under a small group label. */
.tcs-mobile-menu-group,
.mobile-menu-group {
  display: block;
  margin: clamp(8px, 1.4dvh, 16px) 0 2px;
  font-family: 'Barlow', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #2A8EFF;
}
.tcs-mobile-menu-group:first-child,
.mobile-menu-group:first-child { margin-top: 0; }
.tcs-mobile-menu { overflow-y: auto; -webkit-overflow-scrolling: touch; }


/* NAV_BAR_LOCK + NAV_MATCH_HOME (Gil, 2026-09-08): every inner page shows the
   same strip as the homepage: 64px glass bar, five module links at 16px/500
   in the muted blue, the electric Fit Call button. Applied by tcs-nav.js as
   nav.tcs-bar; page stylesheets no longer decide the bar. */
nav.tcs-bar {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  height: 64px !important;
  min-height: 64px !important;
  padding: 0 5% 0 26px !important; /* wordmark at x=26 like the homepage rail */
  margin: 0 !important;
  background: rgba(11, 24, 41, 0.88) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}
nav.tcs-bar > .nav-container,
nav.tcs-bar > .container,
nav.tcs-bar > .nav-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
nav.tcs-bar .nav-logo,
nav.tcs-bar .logo,
nav.tcs-bar .tcs-wordmark-link {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0;
}
nav.tcs-bar .tcs-wordmark { width: 210px; height: 64px; }
@media (max-width: 820px) {
  nav.tcs-bar .tcs-wordmark { width: 164px; height: 50px; }
  nav.tcs-bar .nav-logo, nav.tcs-bar .logo { align-self: center !important; margin-top: 0 !important; }
}
nav.tcs-bar .nav-logo,
nav.tcs-bar .logo { align-self: flex-start !important; margin-top: 2px !important; }
nav.tcs-bar ul.nav-links {
  display: flex;
  align-items: center !important;
  gap: 26px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
nav.tcs-bar ul.nav-links li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
nav.tcs-bar ul.nav-links a {
  font-family: 'Barlow', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.06 !important;
  letter-spacing: 0.3px !important;
  color: rgba(255, 255, 255, 0.86) !important; /* same as the homepage strip links */
  text-decoration: none !important;
  white-space: nowrap !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  opacity: 1 !important;
  transition: color var(--tcs-dur-short) !important;
}
nav.tcs-bar ul.nav-links a:hover {
  color: #FFFFFF !important;
}
nav.tcs-bar ul.nav-links a.tcs-cta {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  line-height: 1.6 !important;
  background: #1F63D6 !important; /* HIG_AUDIT_V39: 5.51:1 with white */
  color: #FFFFFF !important;
  font-weight: 600 !important;
  padding: 10px 20px !important;
  border-radius: 6px !important;
  margin-left: 4px !important;
}
nav.tcs-bar ul.nav-links a.tcs-cta:hover {
  background: #1a6fd0 !important;
  color: #FFFFFF !important;
}
@media (max-width: 1024px) {
  nav.tcs-bar ul.nav-links { gap: 18px !important; }
  nav.tcs-bar ul.nav-links a { font-size: 15px !important; }
  /* HIG_AUDIT_V39: the fifth link is no longer hidden at tablet width; the Solutions menu holds every module. */
}
@media (max-width: 820px) {
  nav.tcs-bar ul.nav-links:not(.active) { display: none !important; }
}

/* CTA_SHADOW (Gil, 2026-09-08): every Fit Call button carries a shadow so it
   sits above the page. Blue buttons throw a blue-tinted shadow, the orange
   hero button an orange one. Ghost buttons stay flat. */
.btn, .nav-cta, .tcs-cta, .cta-button, .tcsf-cta, .footer-cta, .sticky-fit-call,
.tcs-mobile-menu-cta, .mobile-menu-cta, .btn-primary {
  box-shadow: 0 14px 30px -8px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(255, 255, 255, 0.10), 0 8px 26px rgba(42, 142, 255, 0.55) !important;
}
.hero-cta {
  box-shadow: 0 14px 30px -8px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(255, 255, 255, 0.10), 0 8px 26px rgba(242, 100, 25, 0.55) !important;
}
.btn:hover, .nav-cta:hover, .tcs-cta:hover, .cta-button:hover, .tcsf-cta:hover, .footer-cta:hover,
.sticky-fit-call:hover, .tcs-mobile-menu-cta:hover, .mobile-menu-cta:hover, .btn-primary:hover {
  box-shadow: 0 18px 34px -8px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.14), 0 10px 30px rgba(42, 142, 255, 0.65) !important;
}
.hero-cta:hover {
  box-shadow: 0 18px 34px -8px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.14), 0 10px 30px rgba(242, 100, 25, 0.65) !important;
}
.btn-ghost, .btn-ghost:hover { box-shadow: none !important; }

/* MENU_MATCH_HOME: a page's own hamburger and dropdown never show; the TCS
   overlay is the one menu on every page. */
nav.tcs-bar .hamburger, nav.tcs-bar .nav-hamburger, nav.tcs-bar .menu-toggle, nav.tcs-bar .nav-toggle { display: none !important; }
nav.tcs-bar ul.nav-links.active { display: none !important; }

/* MENU_NAV_ELEMENT: belt and braces against page-level element rules. */
.tcs-mobile-menu .tcs-mobile-menu-nav {
  position: static !important;
  top: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 8px 0 24px !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow: visible !important;
  z-index: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
}

/* MENU_FULL_COVER (Gil, 2026-09-08): on phones the browser toolbar changes
   the viewport height while the menu is open, which left a strip of page
   showing under the overlay. A fixed backdrop painted well past every edge
   guarantees full coverage whatever the height computes to. */
.tcs-mobile-menu::before {
  content: "";
  position: fixed;
  top: -60vh;
  bottom: -60vh;
  left: -10vw;
  right: -10vw;
  background: #0B1829;
  z-index: -1;
  pointer-events: none;
}

/* NAV_HOVER_RAIL (Gil, 2026-09-08): menu links get the site's marker on
   hover, from the motion skill's link rule (colour change plus underline,
   enter fast, exit slower): the characters roll up (tcs-chars) while an
   orange rail draws in from the left under the word and the text goes
   white. The Fit Call button lifts a pixel with its glow. */
nav .nav-links a:not(.nav-cta):not(.tcs-cta):not(.cta-button) {
  position: relative;
}
nav .nav-links a:not(.nav-cta):not(.tcs-cta):not(.cta-button)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: #F26419;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--tcs-dur-short, 0.25s) var(--tcs-ease-out);
  pointer-events: none;
}
nav .nav-links a:not(.nav-cta):not(.tcs-cta):not(.cta-button):hover::after,
nav .nav-links a:not(.nav-cta):not(.tcs-cta):not(.cta-button):focus-visible::after,
nav .nav-links a[aria-current="page"]::after {
  transform: scaleX(1);
}
/* leaving: the rail withdraws to the right, a touch slower */
nav .nav-links a:not(.nav-cta):not(.tcs-cta):not(.cta-button):not(:hover):not(:focus-visible)::after {
  transform-origin: right center;
  transition-duration: var(--tcs-dur-mid, 0.45s);
}
nav .nav-links a:not(.nav-cta):not(.tcs-cta):not(.cta-button):hover {
  color: #FFFFFF !important;
}
nav .nav-links a.tcs-cta, nav .nav-links a.nav-cta, nav .nav-links a.cta-button {
  transition: transform var(--tcs-dur-quick, 0.15s) var(--tcs-ease-out), background-color var(--tcs-dur-quick, 0.15s) ease, box-shadow var(--tcs-dur-short, 0.25s) ease !important;
}
nav .nav-links a.tcs-cta:hover, nav .nav-links a.nav-cta:hover, nav .nav-links a.cta-button:hover {
  transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
  nav .nav-links a::after { transition: none !important; }
  nav .nav-links a.tcs-cta:hover, nav .nav-links a.nav-cta:hover { transform: none !important; }
}

/* NAV_SOLUTIONS_DROPDOWN (HIG audit v39, 2026-09-11). One Solutions menu in the
   desktop bar, homepage and inner pages alike. Selectors carry the same weight as
   the tcs-bar rules above so the menu links keep their own padding and color. */
.nav-dropdown { position: relative; }
.nav-dropdown-btn {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 44px; padding: 0 4px; margin: 0;
  background: none; border: 0; cursor: pointer;
  font-family: 'Barlow', sans-serif; font-size: 16px; font-weight: 500; letter-spacing: 0.3px;
  color: var(--muted, rgba(255, 255, 255, 0.86)); white-space: nowrap;
  transition: color var(--tcs-dur-short, 0.25s);
}
.nav-dropdown-btn:hover, .nav-dropdown.open .nav-dropdown-btn, .nav-dropdown:focus-within .nav-dropdown-btn { color: #FFFFFF; }
.nav-dropdown-btn svg { width: 12px; height: 12px; transition: transform var(--tcs-dur-short, 0.25s) var(--tcs-ease-out, ease); }
.nav-dropdown.open .nav-dropdown-btn svg { transform: rotate(180deg); }
nav ul.nav-links .nav-dropdown-menu {
  position: absolute; top: calc(100% + 6px); left: -8px; z-index: 120;
  min-width: 250px; margin: 0 !important; padding: 8px !important; list-style: none !important;
  background: #152236; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px;
  box-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.04);
  display: none;
}
.nav-dropdown.open .nav-dropdown-menu { display: block !important; }
@media (hover: hover) {
  .nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown:focus-within .nav-dropdown-menu { display: block !important; }
}
nav ul.nav-links .nav-dropdown-menu li { margin: 0 !important; padding: 0 !important; }
nav ul.nav-links .nav-dropdown-menu a {
  display: flex !important; align-items: center !important;
  min-height: 44px !important; padding: 0 12px !important; border-radius: 6px !important;
  font-size: 16px !important; line-height: 1.2 !important;
  color: #C3D2E4 !important; text-decoration: none !important; white-space: nowrap !important;
}
nav ul.nav-links .nav-dropdown-menu a:hover, nav ul.nav-links .nav-dropdown-menu a:focus-visible {
  background: rgba(42, 142, 255, 0.12) !important; color: #FFFFFF !important;
}
@media (max-width: 820px) { .nav-dropdown { display: none; } }
