/* ============================================================
   TRISET — PREMIUM SYSTEM LAYER
   Loads AFTER styles.css. Wins the cascade on shared selectors
   by load order, so nothing below is destructive to the legacy
   file — it can be unhooked by removing one <link> tag.

   Signature idea: a survey/coordinate motif — mono-spaced grid
   references, corner brackets, scan lines — laid over the
   brand's real subject (GIS / LiDAR / aerial mapping) rather
   than generic gradients-and-glow decoration.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Sora:wght@400;500;600;700;800&display=swap');

:root {
  /* refined tokens — same names as legacy file, values are the ones
     that should actually win */
  --brand-primary: #014D9D;
  --brand-primary-deep: #013E7A;
  --brand-primary-dark: #002B55;
  --brand-primary-soft: #4C8BC6;
  --brand-primary-frost: #EEF5FC;
  --brand-signal: #014D9D;
  --brand-signal-soft: #7BADE0;
  --ink: #172536;
  --ink-2: #42566B;
  --muted: #62748A;
  --paper: #FCFCFC;
  --paper-warm: #F5F5F5;
  --surface: #ffffff;
  --surface-2: #F6F6F6;
  --line: rgba(23, 37, 54, 0.12);
  --line-strong: rgba(1, 77, 157, 0.28);
  --shadow-soft: 0 26px 70px rgba(12, 30, 52, 0.1);
  --shadow-brand: 0 28px 90px rgba(1, 77, 157, 0.2);
  --gradient-brand: linear-gradient(135deg, #002B55 0%, #013E7A 52%, #014D9D 100%);
  --gradient-signal: linear-gradient(135deg, #013E7A 0%, #014D9D 100%);
  --gradient-steel: radial-gradient(circle at 18% 12%, rgba(1, 77, 157, .18), transparent 27%), radial-gradient(circle at 82% 8%, rgba(77, 145, 206, .13), transparent 30%), linear-gradient(145deg, #002B55 0%, #013E7A 50%, #014D9D 100%);
  --gradient-light: radial-gradient(circle at 20% 0%, rgba(1, 77, 157, .1), transparent 34%), radial-gradient(circle at 90% 10%, rgba(1, 77, 157, .05), transparent 24%), linear-gradient(180deg, #fff 0%, #F0F6FC 100%);
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 14px;
  --ease: cubic-bezier(.16,.84,.28,1);

  /* new tokens */
  --font-display: 'Sora', 'Segoe UI', sans-serif;
  --font-body: 'Manrope', 'Segoe UI', Roboto, Arial, sans-serif;
  --font-mono: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;

  --space-1: .5rem;
  --space-2: .875rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;
  --space-6: 6.5rem;

  --dur-fast: .22s;
  --dur-med: .5s;
  --dur-slow: .9s;

  --grid-line: rgba(0, 0, 0, 0.06);
}

/* Keep the contact form focused on the three essential details. */
.internal-page .contact-services-section,
.internal-page .contact-editorial,
.internal-page .contact-form-panel .form-group:has(#email),
.internal-page .contact-form-panel .form-group:has(#company),
.internal-page .contact-form-panel .form-group:has(#interest-select),
.internal-page .contact-form-panel .form-two-col:has(#budget),
.internal-page .contact-form-panel .form-group:has(#file-upload) {
  display: none !important;
}

.internal-page .contact-main-wrapper {
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
}

.internal-page .contact-form-panel .form-two-col:has(#email),
.internal-page .contact-form-panel .form-two-col:has(#company) {
  grid-template-columns: 1fr;
}

.contact-whatsapp-cta {
  background: #22c864 !important;
  border-color: #22c864 !important;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(34, 200, 100, .22);
}

.contact-whatsapp-cta:hover,
.contact-whatsapp-cta:focus-visible {
  background: #19ad55 !important;
  border-color: #19ad55 !important;
  color: #fff !important;
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, .brand span, .logo-word {
  font-family: var(--font-display);
  letter-spacing: -0.01em;
}

/* ---------- coordinate / mono label system (signature) ---------- */
.eyebrow,
.explorer-brand .eyebrow,
.service-meta .eyebrow {
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: .5em;
  color: var(--brand-signal);
}
.eyebrow::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 1px;
  background: currentColor;
  display: inline-block;
  transform: rotate(45deg);
}

.geo-tag {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .06em;
  color: rgba(247,251,255,.62);
  display: inline-flex;
  align-items: center;
  gap: .6em;
  white-space: nowrap;
}
.geo-tag::before { content: '\2316'; opacity: .7; }
.geo-tag b { color: rgba(247,251,255,.92); font-weight: 500; }

/* corner-bracket frame — used on the hero visual and imagery panels */
.geo-frame { position: relative; }
.geo-frame::before,
.geo-frame::after,
.geo-frame .gf-tl,
.geo-frame .gf-br { content: ''; position: absolute; width: 22px; height: 22px; z-index: 3; pointer-events: none; }
.geo-frame::before { top: 14px; left: 14px; border-top: 1.5px solid rgba(255,255,255,.55); border-left: 1.5px solid rgba(255,255,255,.55); }
.geo-frame::after { bottom: 14px; right: 14px; border-bottom: 1.5px solid rgba(255,255,255,.55); border-right: 1.5px solid rgba(255,255,255,.55); }

/* ---------- header / nav ---------- */
.site-header {
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  background: linear-gradient(180deg, rgba(255,255,255,0.2), rgba(255,255,255,0.1));
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.site-header.is-scrolled {
  background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.8));
  border-bottom-color: rgba(0, 0, 0,0.06);
  box-shadow: 0 12px 30px rgba(0, 0, 0,.06), inset 0 1px 0 rgba(255,255,255,0.7);
}
:root:not([data-theme='dark']) body:not(.home-page) .site-header {
  background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.site-header .container {
  transform: translateY(-1px);
  padding-top: 0.2rem;
  padding-bottom: 0.14rem;
  gap: 1rem;
}
.home-page .site-header .container {
  width: 100%;
  max-width: none;
  padding-left: 1.5rem;
  padding-right: 1.25rem;
}
.brand span { font-family: var(--font-display); font-weight: 700; letter-spacing: -.01em; }
.brand span small { font-family: var(--font-mono); font-weight: 400; letter-spacing: .04em; opacity: .55; }

.site-nav {
  transform: translateY(-2px);
  margin-left: auto;
  justify-content: flex-end;
}

.site-nav a {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: .92rem;
  position: relative;
  border: 1px solid transparent;
}
.site-nav a:hover,
.site-nav a.active {
  background: rgba(255,255,255,0.32);
  border-color: rgba(1, 77, 157,0.08);
}
.site-nav a:not(.nav-cta)::after {
  content: '';
  position: absolute;
  left: 0; right: 100%;
  bottom: -3px;
  height: 1.5px;
  background: var(--brand-primary);
  transition: right var(--dur-fast) var(--ease);
}
.site-nav a:not(.nav-cta):hover::after,
.site-nav a.active:not(.nav-cta)::after { right: 0; }
.site-nav a.active { color: var(--brand-primary); }

.nav-cta {
  font-family: var(--font-body);
  font-weight: 600;
  background: var(--ink);
  border-radius: 100px;
  padding: .55rem 1.15rem;
  transition: transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.nav-cta:hover { transform: translateY(-1px); background: var(--brand-primary); }

/* ---------- buttons ---------- */
.btn {
  font-family: var(--font-body);
  font-weight: 600;
  border-radius: 100px;
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.btn-primary {
  background: var(--brand-primary);
  box-shadow: 0 14px 32px rgba(1, 77, 157,.28);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(1, 77, 157,.36); }
.btn:not(.btn-primary):hover { transform: translateY(-2px); border-color: var(--brand-primary); }

/* ============================================================
   HOME HERO — flagship rebuild
   ============================================================ */
.home-page .hero {
  background: radial-gradient(1200px 600px at 82% -10%, rgba(1, 77, 157,.30), transparent 55%),
              radial-gradient(900px 500px at 10% 110%, rgba(1, 77, 157,.14), transparent 50%),
              linear-gradient(160deg, #014D9D 0%, #014D9D 62%, #014D9D 100%);
  min-height: clamp(560px, 82vh, 780px);
  padding: 9rem 0 3.6rem;
  isolation: isolate;
}
.home-page .hero::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 60% at 60% 20%, #000 30%, transparent 78%);
  opacity: 1;
  z-index: 0;
}
.home-page .hero-grid { position: relative; z-index: 1; align-items: center; }

.home-page .hero-copy .geo-tag { margin-bottom: var(--space-2); opacity: 0; animation: geoIn .7s var(--ease) .05s forwards; }

.home-page h1 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2.9rem, 4.6vw + .6rem, 5.1rem);
  line-height: .96;
  letter-spacing: -.02em;
  max-width: 760px;
  opacity: 0;
  animation: heroLineIn .8s var(--ease) .12s forwards;
}
.home-page h1 em {
  font-style: normal;
  background: linear-gradient(100deg, #fff 20%, #7FBAF6 55%, #fff 80%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.home-page .hero .lead {
  font-family: var(--font-body);
  font-size: 1.08rem;
  line-height: 1.55;
  max-width: 520px;
  color: rgba(248, 232, 233,.82);
  opacity: 0;
  animation: heroLineIn .8s var(--ease) .26s forwards;
}

.home-page .hero-actions {
  opacity: 0;
  animation: heroLineIn .8s var(--ease) .38s forwards;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-3);
}
.home-page .hero-actions .scroll-hint {
  font-family: var(--font-mono);
  font-size: .7rem;
  letter-spacing: .1em;
  color: rgba(248, 232, 233,.5);
  text-transform: uppercase;
}

.home-page .spatial-visual {
  opacity: 0;
  animation: heroPanelIn 1s var(--ease) .3s forwards;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 40px 90px rgba(0, 0, 0,.55);
}
.home-page .spatial-visual .visual-label {
  font-family: var(--font-body);
}
.home-page .spatial-visual .visual-label strong { font-family: var(--font-display); }

/* ============================================================
   HOME HERO — Full screen image display, complete
   ============================================================ */
.home-page .hero {
  padding: 0 !important;
  min-height: 100vh !important;
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: hidden !important;
  margin: 0 !important;
  width: 100vw !important;
  position: relative !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

@media (max-width: 1200px) {
  .home-page .hero {
    height: 90vh !important;
    max-height: 90vh !important;
  }
}

@media (max-width: 768px) {
  .home-page .hero {
    height: 65vh !important;
    max-height: 65vh !important;
  }
}

@media (max-width: 600px) {
  .home-page .hero {
    height: 60vh !important;
    max-height: 60vh !important;
  }
}

@media (max-width: 480px) {
  .home-page .hero {
    height: 58vh !important;
    max-height: 58vh !important;
  }
}

@media (max-width: 380px) {
  .home-page .hero {
    height: 56vh !important;
    max-height: 56vh !important;
  }
}

.home-page .hero::before {
  display: none !important;
}

.home-page .hero-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative !important;
  gap: 0 !important;
}

@media (max-width: 768px) {
  .home-page .hero-grid {
    height: 100% !important;
  }
}

.home-page .spatial-visual {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
  animation: none !important;
  overflow: hidden !important;
  position: relative !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
}

/* Make image fill the space cleanly */
.home-page .spatial-visual img {
  opacity: 1 !important;
  mix-blend-mode: normal !important;
  filter: none !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
}

/* Mobile optimization */
@media (max-width: 768px) {
  .home-page .spatial-visual img {
    object-position: center top !important;
  }
}

@media (max-width: 480px) {
  .home-page .spatial-visual img {
    object-position: center top !important;
  }
}

/* Hide trust strip and any other overlays */
.home-page .hero .trust-strip,
.home-page .hero > .container {
  display: none !important;
}

/* Ensure nothing overlaps */
.home-page .hero-mesh,
.home-page .home-orbit,
.home-page .home-orbit-a,
.home-page .home-orbit-b,
.home-page .home-capability-stack,
.home-page .visual-label,
.home-page .spatial-visual canvas {
  display: none !important;
}

/* Next section starts properly */
.home-page .section:first-of-type {
  margin-top: 0;
  padding-top: 3.2rem;
}

body {
  overflow-x: clip !important;
}

@keyframes heroLineIn {
  from { opacity: 0; transform: translateY(16px) scale(.99); filter: blur(6px); }
  to   { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes heroPanelIn {
  from { opacity: 0; transform: translateY(20px) scale(.97); clip-path: inset(0 0 8% 0); }
  to   { opacity: 1; transform: translateY(0) scale(1); clip-path: inset(0 0 0 0); }
}
@keyframes geoIn { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: translateX(0); } }

@media (prefers-reduced-motion: reduce) {
  .home-page h1, .home-page .hero .lead, .home-page .hero-actions,
  .home-page .spatial-visual, .home-page .hero-copy .geo-tag {
    opacity: 1 !important; animation: none !important; transform: none !important; filter: none !important; clip-path: none !important;
  }
}

/* trust strip → survey-marks bar */
.trust-strip {
  border-top: 1px solid rgba(255,255,255,.12);
  margin-top: var(--space-4);
  padding-top: var(--space-2);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  position: relative;
  z-index: 1;
}
.trust-strip span {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .05em;
  color: rgba(248, 232, 233,.58);
  display: flex;
  align-items: center;
  gap: .55em;
}
.trust-strip span::before { content: ''; width: 5px; height: 5px; background: var(--brand-signal); border-radius: 50%; flex: none; }

/* ---------- services quick grid (home) ---------- */
.service-quick-grid { position: relative; }
.service-card-link { display: block; }
.service-pill-panel {
  position: relative;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--surface);
  padding: var(--space-3) var(--space-2) var(--space-2);
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
  overflow: hidden;
}
.service-pill-panel::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(1, 77, 157,.05), transparent 60%);
  opacity: 0;
  transition: opacity var(--dur-fast) var(--ease);
}
.service-pill-panel h3 { font-family: var(--font-display); font-size: 1.15rem; margin: .3rem 0 .4rem; }
.service-pill-panel p { color: var(--muted); font-size: .92rem; line-height: 1.5; }
.service-card-link:hover .service-pill-panel {
  transform: translateY(-5px);
  border-color: rgba(1, 77, 157,.32);
  box-shadow: 0 22px 44px rgba(0, 0, 0,.09);
}
.service-card-link:hover .service-pill-panel::before { opacity: 1; }

/* ---------- featured work cards ---------- */
.featured-grid .feature-card { border-radius: var(--radius-sm); overflow: hidden; }
.feature-card img { transition: transform .7s var(--ease); }
.feature-card:hover img { transform: scale(1.06); }
.feature-copy h3 { font-family: var(--font-display); }
.feature-meta { font-family: var(--font-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-primary); }

/* ---------- value mini-grid ---------- */
.mini-value { position: relative; padding-left: var(--space-3); }
.mini-number {
  font-family: var(--font-mono);
  font-size: .78rem;
  color: var(--brand-signal);
  display: block;
  margin-bottom: .5rem;
}
.mini-value h3 { font-family: var(--font-display); font-size: 1.05rem; }

/* ---------- cta band ---------- */
.cta-band h2 { font-family: var(--font-display); letter-spacing: -.01em; }

/* ---------- reveal-on-scroll refinement ---------- */
.reveal { transition: opacity var(--dur-med) var(--ease), transform var(--dur-med) var(--ease), filter var(--dur-med) var(--ease); }
.reveal:not(.is-visible) { opacity: 0; transform: translateY(22px); filter: blur(3px); }
.reveal.is-visible { opacity: 1; transform: translateY(0); filter: blur(0); }

@media (max-width: 980px) {
  .site-header .container {
    min-height: 60px;
  }

  .site-nav {
    gap: .08rem;
  }

  .site-nav a,
  .theme-toggle,
  .menu-toggle {
    font-size: .8rem;
    padding: .5rem .6rem;
  }

  .home-page .hero {
    padding-top: 7.2rem;
  }

  .home-page .hero-grid,
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .home-page .hero-grid {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }

  .home-page .hero-copy {
    text-align: left;
  }

  .home-page .hero-copy .lead {
    max-width: 100%;
  }

  .home-page .hero-actions {
    flex-wrap: wrap;
  }

  .service-quick-grid,
  .value-grid,
  .featured-grid {
    gap: 1rem;
  }

  .cta-band {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .site-header .container {
    min-height: 58px;
  }

  .brand {
    gap: .55rem;
  }

  .brand img {
    width: 32px;
    height: 32px;
  }

  .brand span {
    font-size: .78rem;
  }

  .brand small {
    letter-spacing: .12em;
  }

  .site-nav a,
  .theme-toggle,
  .menu-toggle {
    font-size: .76rem;
    padding: .48rem .56rem;
  }

  .home-page .hero {
    padding-top: 6.5rem;
    min-height: 0;
  }

  .home-page .hero-copy {
    text-align: left;
  }

  .home-page h1 {
    font-size: clamp(2.3rem, 10vw, 3.2rem);
  }

  .home-page .hero .lead {
    font-size: 1rem;
  }

  .home-page .hero-actions {
    flex-direction: column;
    align-items: flex-start;
    gap: .7rem;
  }

  .service-quick-grid,
  .value-grid,
  .featured-grid,
  .footer-grid,
  .trust-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-quick-grid .panel,
  .value-grid .mini-value {
    min-height: 100%;
  }

  .service-pill-panel {
    padding: 1rem .85rem .9rem;
  }

  .service-pill-panel h3 {
    font-size: 1rem;
  }

  .service-pill-panel p {
    font-size: .78rem;
    line-height: 1.45;
  }

  .trust-strip {
    gap: .7rem .9rem;
  }

  .trust-strip span {
    font-size: .66rem;
  }

  .section,
  .compact-section {
    padding: 2.6rem 0;
  }

  .home-page .section-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .home-page .section-header h2 {
    font-size: clamp(1.7rem, 7vw, 2.2rem);
  }

  .cta-band {
    padding: 1.5rem;
  }

  .footer {
    padding: 2.4rem 0 1.5rem;
  }

  .footer-grid {
    gap: 1rem;
  }

  .reveal,
  .reveal:not(.is-visible),
  .home-page .hero-copy .geo-tag,
  .home-page h1,
  .home-page .hero .lead,
  .home-page .hero-actions,
  .home-page .spatial-visual {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }
}

@media (max-width: 430px) {
  .service-quick-grid,
  .value-grid,
  .trust-strip,
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-pill-panel {
    padding: .9rem .75rem .8rem;
  }

  .service-pill-panel h3 {
    font-size: .95rem;
  }

  .service-pill-panel p {
    font-size: .72rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal:not(.is-visible) { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* ---------- focus states ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--brand-primary);
  outline-offset: 2px;
  border-radius: var(--radius-xs);
}

/* ---------- responsive ---------- */
@media (max-width: 900px) {
  .home-page .hero { padding: 7.4rem 0 2.6rem; min-height: 0; }
  .home-page h1 { font-size: clamp(2.4rem, 8vw, 3rem); }
  .trust-strip { gap: var(--space-2); }
}
@media (max-width: 620px) {
  .home-page .hero-actions { flex-direction: column; align-items: flex-start; gap: var(--space-1); }
}

/* ============================================================
   INTERNAL PAGE HERO (careers, projects/work, solutions, about)
   ============================================================ */
.internal-page .hero {
  background: radial-gradient(900px 500px at 85% -10%, rgba(1, 77, 157,.28), transparent 55%),
              linear-gradient(160deg, #014D9D 0%, #014D9D 62%, #014D9D 100%);
}
.internal-page .hero::before {
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 56px 56px;
}
.internal-page .hero h1 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -.02em;
  opacity: 0;
  animation: heroLineIn .75s var(--ease) .08s forwards;
}
.internal-page .hero .eyebrow { opacity: 0; animation: geoIn .6s var(--ease) 0s forwards; }
.internal-page .hero .lead { opacity: 0; animation: heroLineIn .75s var(--ease) .2s forwards; }
.internal-page .hero .hero-actions { opacity: 0; animation: heroLineIn .75s var(--ease) .3s forwards; }
.internal-page .hero .image-panel img,
.internal-page .hero .spatial-visual img { transition: transform .8s var(--ease); }
@media (prefers-reduced-motion: reduce) {
  .internal-page .hero h1, .internal-page .hero .eyebrow, .internal-page .hero .lead, .internal-page .hero .hero-actions {
    opacity: 1 !important; animation: none !important;
  }
}

.internal-page .section-header h2, .compact-header h2 {
  font-family: var(--font-display);
  letter-spacing: -.015em;
}

.panel {
  border-radius: var(--radius-sm);
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.panel:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(0, 0, 0,.08); }
.panel h3 { font-family: var(--font-display); }

/* ============================================================
   SERVICES — kinetic hero + marquee
   ============================================================ */
/* FIX: legacy CSS gates .skh-kicker/.skh-title/.skh-lead/.skh-actions on a
   `.services-kinetic-hero.is-in` class that only the old pill-hero script
   ever added — that script's target element doesn't exist in the current
   markup, so the class never lands and this text stays invisible forever.
   Give it its own entrance, independent of that dead dependency. */
.skh-kicker, .skh-title, .skh-lead, .skh-actions {
  opacity: 1 !important;
  transform: none !important;
}
.skh-kicker {
  font-family: var(--font-mono);
  letter-spacing: .16em;
  animation: geoIn .6s var(--ease) both;
}
.skh-title {
  font-family: var(--font-display);
  font-weight: 700;
  animation: heroLineIn .8s var(--ease) .1s both;
}
.skh-lead {
  font-family: var(--font-body);
  animation: heroLineIn .8s var(--ease) .22s both;
}
.skh-actions { animation: heroLineIn .8s var(--ease) .32s both; }
.skh-meta span {
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
}
@media (prefers-reduced-motion: reduce) {
  .skh-kicker, .skh-title, .skh-lead, .skh-actions { animation: none !important; }
}

/* ============================================================
   SERVICE PILL PILE — gravity + drag capability stack
   ============================================================ */
.pill-pile-section {
  position: relative;
  background: var(--paper);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: var(--space-5) 0;
  overflow: hidden;
}
.pill-pile-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-bottom: var(--space-4);
}
.pill-pile-head h2 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.6rem, 2.6vw, 2.3rem);
  letter-spacing: -.01em;
  margin: .3rem 0 0;
  max-width: 520px;
}
.pill-pile-hint {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .06em;
  color: var(--muted);
  white-space: nowrap;
}

.pill-pile-split {
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  align-items: center;
  gap: var(--space-5);
}

.pill-pile-copy h2 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.6rem, 2.6vw, 2.3rem);
  letter-spacing: -.01em;
  margin: .3rem 0 0;
}
.pill-pile-copy .pill-pile-lead {
  margin: var(--space-3) 0 var(--space-3);
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.6;
  max-width: 46ch;
}
.pill-pile-copy .pill-pile-hint {
  display: inline-block;
}

.pill-pile-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  max-width: 340px;
  border-radius: var(--radius-md);
  background:
    linear-gradient(rgba(0, 0, 0,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0,.035) 1px, transparent 1px);
  background-size: 32px 32px;
  border: 1px solid var(--line);
  overflow: hidden;
  touch-action: none;
}

@media (max-width: 900px) {
  .pill-pile-split {
    grid-template-columns: 1fr;
  }
  .pill-pile-stage {
    max-width: 100%;
  }
}

.pp-pill {
  position: absolute;
  top: 0; left: 0;
  padding: .5rem .85rem;
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(.66rem, .78vw, .8rem);
  color: #fff;
  white-space: nowrap;
  user-select: none;
  cursor: grab;
  will-change: transform;
  box-shadow: 0 10px 22px rgba(0, 0, 0,.16);
  transition: box-shadow .18s var(--ease), filter .18s var(--ease);
}
.pp-pill:hover { filter: brightness(1.06); box-shadow: 0 16px 30px rgba(0, 0, 0,.22); }
.pp-pill.is-dragging { cursor: grabbing; z-index: 40; box-shadow: 0 24px 44px rgba(0, 0, 0,.3); }
.pp-pill:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }

.pp-pill--blue   { background: linear-gradient(135deg, #0B66FF, #2E86FF); }
.pp-pill--coral  { background: linear-gradient(135deg, #8AB1D9, #FFFFFF); }
.pp-pill--mint   { background: linear-gradient(135deg, #0E9E86, #1FC9AA); }
.pp-pill--amber  { background: linear-gradient(135deg, #C9860A, #F5B63D); color: #2a1c00; }
.pp-pill--violet { background: linear-gradient(135deg, #6047C4, #8B7CF0); }

/* static fallback: reduced motion / touch / narrow viewports */
.pill-pile-stage.pp-static {
  height: auto;
  min-height: 0;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: .6rem;
  padding: var(--space-3);
  background-size: 24px 24px;
}
.pill-pile-stage.pp-static .pp-pill {
  position: static;
  cursor: default;
  transform: none !important;
}

@media (max-width: 760px) {
  .pill-pile-head { flex-direction: column; align-items: flex-start; }
  .pill-pile-stage.pp-static {
    gap: .5rem;
    padding: .8rem;
  }
  .pill-pile-stage.pp-static .pp-pill {
    font-size: .7rem;
    padding: .48rem .72rem;
  }
}

.services-hero-highlight { background: var(--paper); }
.highlight-strip span {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.kinetic-category-header span {
  font-family: var(--font-mono);
  letter-spacing: .12em;
  color: var(--brand-signal);
}
.kinetic-category-header h2 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -.02em;
}
.marquee-item {
  font-family: var(--font-display);
  transition: color var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);
}
.marquee-row:hover .marquee-item:hover {
  color: var(--brand-primary) !important;
}

.explorer-item { border-radius: var(--radius-sm); }
.explorer-item .index { font-family: var(--font-mono); }
.explorer-item .meta strong { font-family: var(--font-display); }

.service-card__body h3 { font-family: var(--font-display); }
.service-card__body .eyebrow { margin-bottom: .3rem; }
.icon-link {
  font-family: var(--font-mono);
  font-size: .78rem;
  letter-spacing: .04em;
}

/* ============================================================
   CAREERS
   ============================================================ */
.job-listing { border-radius: var(--radius-sm); }
.job-listing h3 { font-family: var(--font-display); }
.job-meta-row {
  font-family: var(--font-mono);
  font-size: .74rem;
  letter-spacing: .04em;
  color: var(--muted);
  display: flex;
  gap: 1rem;
  margin: .4rem 0 .6rem;
}
.badge {
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 100px;
  padding: .3rem .7rem;
  border: 1px solid var(--line);
}
.job-points { padding-left: 1.1rem; color: var(--muted); font-size: .92rem; line-height: 1.6; }
.job-actions { display: flex; gap: .6rem; margin-top: var(--space-2); flex-wrap: wrap; }
.empty-state { text-align: center; padding: var(--space-4) var(--space-3); }

/* ============================================================
   PROJECTS / WORK — editorial gallery rhythm
   ============================================================ */
.project-list { display: grid; gap: var(--space-4); }
.project-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .95fr);
  gap: var(--space-3);
  align-items: center;
  border-radius: var(--radius-md);
  overflow: hidden;
  padding: 0;
}
.project-card img {
  border-radius: var(--radius-sm);
  transition: transform .8s var(--ease);
  aspect-ratio: 16/11;
  object-fit: cover;
  width: 100%;
}
.project-card:hover img { transform: scale(1.045); }
.project-card h3 { font-family: var(--font-display); font-size: 1.5rem; letter-spacing: -.01em; }
.project-card .eyebrow { margin-bottom: .3rem; }
@media (max-width: 760px) {
  .project-card, .project-card:nth-child(even) { grid-template-columns: 1fr !important; }
  .project-card:nth-child(even) img { order: 0 !important; }
}

/* ============================================================
   SOLUTIONS
   ============================================================ */
.solutions-page .hero h1 { font-family: var(--font-display); font-weight: 600; }
.editorial-card { border-radius: var(--radius-sm); transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.editorial-card:hover { transform: translateY(-4px); box-shadow: 0 22px 46px rgba(0, 0, 0,.08); }
.editorial-card h3 { font-family: var(--font-display); }
.domain-label { font-family: var(--font-mono); letter-spacing: .1em; }
.domain-copy h3 { font-family: var(--font-display); }
.metric span { font-family: var(--font-mono); }
.solutions-cta h2 { font-family: var(--font-display); }

/* ============================================================
   SOLUTIONS — niche orbit + tech stack sweep
   ============================================================ */

/* --- Industry orbit: two counter-rotating rings around a core hub --- */
.orbit-section .niche-orbit-frame {
  position: relative;
  width: 100%;
  max-width: 760px;
  aspect-ratio: 1 / 1;
  margin: var(--space-4) auto 0;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 40px 90px rgba(0, 0, 0, .14);
}

.niche-orbit-bg {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  overflow: hidden;
}
.niche-orbit-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle, rgba(0, 0, 0,.25) 0%, rgba(0, 0, 0,.62) 72%, rgba(0, 0, 0,.82) 100%);
}
.niche-orbit-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: niche-bg-drift 26s ease-in-out infinite alternate;
}
@keyframes niche-bg-drift {
  0%   { transform: scale(1.08) translate(-1.5%, -1%); }
  100% { transform: scale(1.22) translate(1.5%, 1.5%); }
}

.orbit-section .niche-orbit {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}

@media (prefers-reduced-motion: reduce) {
  .niche-orbit-bg img { animation: none; }
}

.niche-orbit-core {
  position: relative;
  z-index: 5;
  width: clamp(104px, 14vw, 140px);
  height: clamp(104px, 14vw, 140px);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: var(--gradient-brand);
  color: #fff;
  box-shadow: 0 30px 60px rgba(1, 77, 157, .35);
}
.niche-orbit-core span {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -.02em;
  font-size: clamp(.82rem, 1.1vw, .98rem);
}
.niche-orbit-core small {
  margin-top: .25rem;
  font-family: var(--font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .85;
}

.niche-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  animation: niche-spin var(--ring-duration, 80s) linear infinite;
  animation-play-state: paused;
}
.niche-orbit.is-spinning .niche-ring { animation-play-state: running; }
.niche-orbit:hover .niche-ring { animation-play-state: paused; }

.niche-ring--b[data-reverse] { animation-direction: reverse; }

.niche-orbit-item {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  transform: rotate(var(--angle)) translateX(var(--radius, 165px)) rotate(calc(-1 * var(--angle)));
}
.niche-ring--b .niche-orbit-item { --radius: 265px; }

.niche-chip {
  display: inline-block;
  transform: translate(-50%, -50%);
  animation: niche-spin var(--ring-duration, 80s) linear infinite reverse;
  animation-play-state: paused;
  padding: .5rem .9rem;
  border-radius: 999px;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .03em;
  white-space: nowrap;
  color: var(--ink);
  box-shadow: 0 12px 26px rgba(0, 0, 0, .1);
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease);
}
.niche-orbit.is-spinning .niche-chip { animation-play-state: running; }
.niche-ring--b[data-reverse] .niche-chip { animation-direction: normal; }
.niche-chip:hover {
  transform: translate(-50%, -50%) scale(1.08);
  border-color: var(--brand-primary);
  box-shadow: 0 16px 34px rgba(1, 77, 157, .22);
  z-index: 6;
}

@keyframes niche-spin { to { transform: rotate(360deg); } }

@media (max-width: 760px) {
  .orbit-section .niche-orbit-frame { max-width: 340px; }
  .niche-orbit-item { --radius: 108px !important; }
  .niche-ring--b .niche-orbit-item { --radius: 168px !important; }
  .niche-chip { font-size: .64rem; padding: .42rem .7rem; }
}

@media (prefers-reduced-motion: reduce) {
  .niche-ring, .niche-chip { animation: none !important; }
}

/* --- Tech stack: grouped chips with scroll reveal + light sweep --- */
.tech-stack-section .tech-grid {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-3);
  padding: clamp(1.4rem, 3vw, 2.4rem);
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
}

.tech-grid::after {
  content: "";
  position: absolute;
  top: -30%;
  left: -40%;
  width: 55%;
  height: 160%;
  background: linear-gradient(100deg, transparent 0%, rgba(255,255,255,.14) 45%, rgba(1, 77, 157,.24) 52%, transparent 100%);
  transform: skewX(-18deg);
  animation: tech-sweep 7s ease-in-out infinite;
  pointer-events: none;
}

@keyframes tech-sweep {
  0%   { left: -45%; opacity: 0; }
  12%  { opacity: 1; }
  55%  { opacity: 1; }
  72%  { left: 120%; opacity: 0; }
  100% { left: 120%; opacity: 0; }
}

.tech-group-label {
  display: block;
  margin-bottom: .55rem;
  font-family: var(--font-mono);
  font-size: .66rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--brand-signal);
}

.tech-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.tech-chip {
  padding: .48rem .9rem;
  border-radius: .5rem;
  font-family: var(--font-mono);
  font-size: .76rem;
  letter-spacing: .01em;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  color: var(--ink);
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .5s var(--ease), transform .5s var(--ease), border-color .18s var(--ease), box-shadow .18s var(--ease);
  transition-delay: calc(var(--i, 0) * 32ms);
}
.tech-grid.is-in .tech-chip {
  opacity: 1;
  transform: translateY(0);
}
.tech-chip:hover {
  border-color: var(--brand-primary);
  box-shadow: 0 10px 22px rgba(1, 77, 157, .18);
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .tech-grid::after { animation: none; display: none; }
  .tech-chip { transition: none; opacity: 1; transform: none; }
}

/* ============================================================
   CTA bands sitewide
   ============================================================ */
.cta-band { border-radius: var(--radius-md); }
/* ============================================================
   ABOUT PAGE — flagship rebuild
   Story: WHO → WHAT WE BELIEVE → WHAT WE DO → WHERE → WHO BUILDS
   IT → WHY → HOW TO START. Reuses the coordinate/mono-label
   motif and .reveal system already established sitewide.
   ============================================================ */

/* ---------- hero ---------- */
.about-hero {
  position: relative;
  isolation: isolate;
  padding: 9rem 0 0.25rem;
  overflow: hidden;
  min-height: 0;
  display: grid;
  align-items: end;
  background:
    radial-gradient(980px 520px at 82% 12%, rgba(1, 77, 157,.3), transparent 58%),
    radial-gradient(720px 460px at 10% 94%, rgba(1, 77, 157,.15), transparent 56%),
    linear-gradient(160deg, #014D9D 0%, #014D9D 52%, #014D9D 100%);
}
.about-hero-grid-bg {
  position: absolute; inset: 0; z-index: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 75% 55% at 50% 10%, #000 30%, transparent 78%);
}
.about-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .96fr) minmax(300px, .8fr);
  gap: clamp(1.5rem, 3.2vw, 3.2rem);
  align-items: center;
  width: min(100% - 2rem, var(--max));
  margin: 0 auto;
  min-height: clamp(380px, 40vw, 520px);
  padding-top: .6rem;
}

.about-page .section,
.about-page [data-ax-connector-root],
.about-page section {
  scroll-margin-top: 110px;
}
.about-hero-copy { max-width: 660px; }
.ah-eyebrow { color: rgba(247,251,255,.7); opacity: 0; animation: geoIn .6s var(--ease) .05s forwards; }
.ah-eyebrow::before { background: var(--brand-signal); }

.ah-heading {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2.9rem, 5.2vw, 5.5rem);
  line-height: .98;
  letter-spacing: -.065em;
  color: #fff;
  margin: .9rem 0 1rem;
  text-shadow: 0 12px 40px rgba(0, 0, 0,.42);
}
.ah-line { display: block; overflow: hidden; }
.ah-line > span {
  display: block;
  transform: translateY(110%);
  animation: ahLineIn .85s var(--ease) forwards;
}
.ah-line:nth-child(1) > span { animation-delay: .12s; }
.ah-line:nth-child(2) > span { animation-delay: .24s; }
.ah-line-accent > span {
  background: linear-gradient(100deg, #ffffff 8%, #75B6F7 48%, #014D9D 82%, #ffffff 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation-delay: .36s;
}
@keyframes ahLineIn { to { transform: translateY(0); } }

.ah-lead {
  font-size: clamp(.98rem, 1.12vw, 1.08rem);
  line-height: 1.48;
  max-width: 520px;
  color: rgba(248, 232, 233,.82);
  opacity: 0;
  animation: heroLineIn .8s var(--ease) .5s forwards;
}
.ah-company-facts {
  display: flex;
  flex-wrap: wrap;
  gap: .48rem;
  margin-top: 1.05rem;
  opacity: 0;
  animation: heroLineIn .8s var(--ease) .62s forwards;
}
.ah-company-facts span {
  min-height: 0;
  padding: .48rem .68rem;
  border: 1px solid rgba(17, 106, 194,.16);
  border-radius: 999px;
  background: rgba(247,251,255,.07);
  color: rgba(248, 232, 233,.78);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: .62rem;
  line-height: 1;
  letter-spacing: .06em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}

.about-hero-visual {
  position: relative;
  margin-top: 0;
  height: clamp(320px, 32vw, 480px);
  border-radius: 22px;
  border: 1px solid rgba(17, 106, 194,.18);
  box-shadow: 0 32px 80px rgba(0, 0, 0,.46);
  opacity: 0;
  animation: heroPanelIn 1s var(--ease) .45s forwards;
  transform: perspective(1200px) rotateY(-8deg) rotateX(2deg);
}
.about-hero-visual img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(1.08) brightness(.82); }
.about-hero-visual::before {
  content: '';
  position: absolute; inset: 10px;
  border: 1px solid rgba(120, 183, 247,.18);
  border-radius: 16px;
  pointer-events: none;
  z-index: 2;
}
.about-hero-visual::after {
  content: ''; position: absolute; inset: 0;
  background:
    linear-gradient(0deg, rgba(0, 0, 0,.82) 0%, rgba(0, 0, 0,.20) 52%, rgba(0, 0, 0,.06) 100%),
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: auto, 42px 42px, 42px 42px;
  opacity: .94;
}
.ah-visual-tag {
  position: absolute; left: var(--space-3); bottom: var(--space-3); z-index: 4;
  background: rgba(0, 0, 0,.55);
  backdrop-filter: blur(6px);
  padding: .44rem .75rem;
  border-radius: 100px;
  border: 1px solid rgba(255,255,255,.16);
}
.ah-trust-strip {
  position: relative;
  z-index: 1;
  margin-top: 0;
  padding-bottom: var(--space-3);
}

@media (prefers-reduced-motion: reduce) {
  .ah-line > span, .ah-lead, .ah-company-facts, .about-hero-visual { animation: none !important; opacity: 1 !important; transform: none !important; }
}
@media (max-width: 980px) {
  .about-hero-inner {
    grid-template-columns: 1fr;
    min-height: 0;
    padding-bottom: 2rem;
  }
  .about-hero-visual {
    height: clamp(260px, 48vw, 390px);
    max-width: 680px;
  }
}
@media (max-width: 760px) {
  .about-hero {
    min-height: auto;
    padding-top: 7.2rem;
  }
  .ah-heading { font-size: clamp(2.35rem, 11vw, 3.5rem); }
  .about-hero-visual { height: 260px; }
}

/* About hero type polish: editorial scale with a calm, premium rhythm. */
.about-page .ah-eyebrow {
  font-family: var(--font-body);
  font-weight: 800;
  letter-spacing: .18em;
}
.about-page .ah-lead {
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: -.012em;
}
.about-page .ah-company-facts span {
  transition: transform .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease);
}
.about-page .ah-company-facts span:hover {
  transform: translateY(-3px);
  border-color: rgba(1, 77, 157, .52);
  background: rgba(1, 77, 157, .2);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .16);
}

/* Keep the About opening confident, but give the copy more breathing room. */
.about-page .ah-heading {
  font-size: clamp(2.45rem, 4.35vw, 4.65rem);
  line-height: .97;
}
.about-page .ah-lead {
  max-width: 500px;
  font-size: clamp(.9rem, 1vw, 1rem);
  line-height: 1.5;
}
.about-page .ah-company-facts span {
  font-size: .57rem;
  padding: .42rem .6rem;
}

@media (max-width: 760px) {
  .about-page .ah-heading { font-size: clamp(2.15rem, 10vw, 3.15rem); }
  .about-page .ah-lead { font-size: .9rem; }
}

.about-page .ax-story,
.about-page .ax-profile,
.about-page .ax-locations,
.about-page .ax-team {
  padding-top: 3.25rem;
}

/* ============================================================
   COHESION PASS — Home / Work / Careers
   Scoped polish that brings older pages into the Services/Solutions
   visual language without touching those benchmark pages.
   ============================================================ */

.home-page .section,
.work-page .section,
.careers-page .section {
  position: relative;
}

.home-page .section-header h2,
.work-page .section-header h2,
.careers-page .section-header h2 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -.025em;
}

.home-page .hero {
  min-height: clamp(600px, 84vh, 820px);
  padding-top: clamp(7rem, 10vw, 9.5rem);
}

.home-page .hero-copy .eyebrow {
  color: rgba(247,251,255,.76);
}

.home-page .hero h1 {
  max-width: 820px;
}

.home-page .spatial-visual {
  border-radius: 0;
  border: 1px solid rgba(17, 106, 194,.18);
  transform: translateZ(0);
}

.home-page .spatial-visual::after,
.work-page .image-panel::after,
.careers-page .image-panel::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 42px 42px;
  mix-blend-mode: screen;
  opacity: .22;
}

.service-quick-grid {
  align-items: stretch;
}

.service-card-link {
  color: inherit;
  text-decoration: none;
}

.service-pill-panel,
.mini-value {
  min-height: 100%;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,250,253,.92)),
    var(--surface);
}

.service-pill-panel {
  border-radius: var(--radius-sm);
  padding: clamp(1.15rem, 2vw, 1.55rem);
}

.service-pill-panel h3,
.mini-value h3 {
  font-family: var(--font-display);
  font-weight: 600;
}

.mini-value {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: clamp(1.2rem, 2.3vw, 1.8rem);
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.mini-value:hover {
  transform: translateY(-4px);
  border-color: rgba(1, 77, 157,.26);
  box-shadow: 0 22px 48px rgba(0, 0, 0,.08);
}

.mini-number {
  font-family: var(--font-mono);
  color: var(--brand-signal);
  letter-spacing: .1em;
  display: inline-block;
  margin-bottom: .8rem;
}

.featured-grid {
  display: grid;
  grid-template-columns: 1.18fr .82fr;
  gap: clamp(1rem, 2vw, 1.5rem);
}

.feature-card {
  position: relative;
  min-height: clamp(300px, 38vw, 520px);
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: #000000;
  color: #fff;
  box-shadow: 0 28px 70px rgba(0, 0, 0,.16);
}

.feature-card:first-child {
  grid-row: span 2;
}

.feature-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(1.02) brightness(.82);
  transition: transform .85s var(--ease), filter .45s var(--ease);
}

.feature-card:hover img {
  transform: scale(1.045);
  filter: saturate(1.05) brightness(.92);
}

.feature-copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: clamp(1.1rem, 2vw, 1.6rem);
  background: linear-gradient(0deg, rgba(0, 0, 0,.9), rgba(0, 0, 0,.38) 68%, transparent);
}

.feature-meta {
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(247,251,255,.72);
}

.feature-copy h3 {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.05;
  margin: .4rem 0 .4rem;
}

.feature-copy p {
  max-width: 38ch;
  color: rgba(248, 232, 233,.82);
  margin: 0;
}

.work-page .hero .image-panel,
.careers-page .hero .image-panel {
  position: relative;
  border-radius: 0;
  border: 1px solid rgba(17, 106, 194,.18);
  overflow: hidden;
}

.work-page .project-list {
  gap: clamp(2.2rem, 5vw, 5rem);
}

.work-page .project-card {
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
}

.work-page .project-card img {
  box-shadow: 0 28px 70px rgba(0, 0, 0,.13);
}

.work-page .project-card h3 {
  font-size: clamp(1.9rem, 3.8vw, 4rem);
  line-height: .96;
}

.work-page .project-card div {
  border-top: 1px solid var(--line);
  padding-top: 1rem;
}

.careers-page .jobs-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.4rem);
}

@media (max-width: 767px) {
  .careers-page .jobs-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.careers-page .grid-3 .panel,
.careers-page .job-listing,
.careers-page .empty-state {
  border-radius: var(--radius-sm);
  border-color: rgba(0, 0, 0,.12);
}

.careers-page .job-listing {
  padding: clamp(1.1rem, 2vw, 1.5rem);
}

.careers-page .job-listing h3 {
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  line-height: 1.05;
}

.footer {
  position: relative;
  overflow: hidden;
}

.footer::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(180deg, #000, transparent 74%);
  opacity: .45;
}

.footer .container {
  position: relative;
  z-index: 1;
}

/* ============================================================
   GLOBAL PREMIUM HEADER SYSTEM
   Two-state design: transparent at top → floating on scroll
   Signature micro-interactions and smooth transitions
   ============================================================ */

/* --------- HEADER ENTRY ANIMATION --------- */
@keyframes headerIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* --------- BRAND / LOGO SYSTEM --------- */
.brand {
  perspective: 1200px;
  transition: all .35s cubic-bezier(0.16, 0.84, 0.28, 1);
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.brand img {
  display: block;
  transition: all .35s cubic-bezier(0.16, 0.84, 0.28, 1);
  filter: drop-shadow(0 2px 8px rgba(1, 77, 157, 0.12));
  transform-style: preserve-3d;
}

/* Logo entrance animation */
.brand img {
  animation: logoFloatIn .6s cubic-bezier(0.16, 0.84, 0.28, 1) 0.08s both;
}

@keyframes logoFloatIn {
  0% {
    opacity: 0;
    transform: translateY(-16px) rotateX(-40deg) rotateZ(170deg) scale(0.96);
  }
  100% {
    opacity: 1;
    transform: translateY(0) rotateX(0deg) rotateZ(0deg) scale(1);
  }
}

/* Logo hover interaction */
.brand:hover img {
  filter: drop-shadow(0 8px 24px rgba(1, 77, 157, 0.28));
  transform: rotateX(6deg) rotateY(-10deg) rotateZ(-2deg) scale(1.06);
}

/* Smooth logo scale on scroll transition */
.site-header.is-scrolled .brand img {
  animation: none;
}

/* Mobile logo hover adjustment */
@media (max-width: 768px) {
  .brand:hover img {
    transform: rotateX(3deg) rotateY(-6deg) rotateZ(-1deg) scale(1.04);
  }
}

/* --------- NAVIGATION ITEMS --------- */
.site-nav a {
  position: relative;
  overflow: hidden;
}

/* Animated active indicator (bottom underline) */
.site-nav a::after {
  content: '';
  position: absolute;
  bottom: 6px;
  left: 0.72rem;
  right: 0.72rem;
  height: 2px;
  background: linear-gradient(90deg, var(--brand-primary), var(--brand-primary-deep));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .32s cubic-bezier(0.16, 0.84, 0.28, 1);
}

.site-nav a.active::after {
  transform: scaleX(1);
}

.site-nav a:hover {
  color: var(--brand-primary-deep);
}

/* Smooth color transition */
.site-nav a {
  transition: all .24s cubic-bezier(0.16, 0.84, 0.28, 1);
}

/* --------- CTA BUTTON --------- */
.site-nav .nav-cta {
  position: relative;
  box-shadow: 0 4px 12px rgba(1, 77, 157, 0.18);
  transition: all .28s cubic-bezier(0.16, 0.84, 0.28, 1);
}

.site-nav .nav-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(1, 77, 157, 0.32);
}

.site-nav .nav-cta:active {
  transform: translateY(0);
  box-shadow: 0 4px 12px rgba(1, 77, 157, 0.2);
}

/* --------- HEADER STATE TRANSITIONS --------- */
/* Smooth material transition when scrolling */
.site-header {
  --header-bg: transparent;
  --header-blur: 0px;
  --header-shadow: 0 0px 0px rgba(7, 16, 24, 0);
  background: var(--header-bg);
  backdrop-filter: blur(var(--header-blur));
}

.site-header.is-scrolled {
  --header-bg: rgba(251, 252, 253, 0.96);
  --header-blur: 12px;
  --header-shadow: 0 2px 12px rgba(0, 0, 0, 0.08), 0 10px 28px rgba(0, 0, 0, 0.06);
}

/* --------- ACCESSIBILITY --------- */
@media (prefers-reduced-motion: reduce) {
  .site-header,
  .site-header.is-scrolled,
  .brand img,
  .brand:hover img,
  .site-nav a,
  .site-nav a::after,
  .site-nav .nav-cta {
    animation: none !important;
    transition: opacity .2s ease !important;
  }
  
  .brand:hover img {
    transform: scale(1.02) !important;
  }
}
    min-height: 300px;
    grid-row: auto;
  }
}

@media (max-width: 640px) {
  .home-page .hero {
    min-height: auto;
    padding-top: 6.4rem;
  }

  .work-page .project-card h3 {
    font-size: clamp(1.75rem, 12vw, 3rem);
  }
}

/* ---------- story ---------- */
.about-story-section .story-grid {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1fr);
  gap: var(--space-5);
  align-items: center;
}
.story-visual { border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-soft); }
.story-visual img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/5; transition: transform .9s var(--ease); }
.story-visual:hover img { transform: scale(1.04); }
.story-statement {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.5rem, 2vw + .8rem, 2.1rem);
  line-height: 1.28;
  letter-spacing: -.01em;
  color: var(--ink);
  margin-bottom: 1.1rem;
}
.story-detail { color: var(--muted); font-size: 1rem; line-height: 1.7; max-width: 560px; }
@media (max-width: 860px) {
  .about-story-section .story-grid { grid-template-columns: 1fr; gap: var(--space-4); }
  .story-visual img { aspect-ratio: 16/10; }
}

/* ---------- values as editorial rows ---------- */
.value-rows { display: flex; flex-direction: column; margin-top: var(--space-4); }
.value-row {
  display: grid;
  grid-template-columns: 90px minmax(0,1fr) minmax(0,1.4fr);
  align-items: baseline;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-top: 1px solid var(--line);
}
.value-row:last-child { border-bottom: 1px solid var(--line); }
.value-row .mini-number { font-size: 1rem; margin-bottom: 0; }
.value-row h3 { font-family: var(--font-display); font-size: 1.3rem; letter-spacing: -.01em; }
.value-row p { color: var(--muted); margin: 0; max-width: 44ch; }
@media (max-width: 700px) {
  .value-row { grid-template-columns: 1fr; gap: .3rem; }
}

/* ---------- locations: Hyderabad ↔ Bapatla ---------- */
.locations-map {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-4);
  padding: var(--space-5) var(--space-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
  background:
    linear-gradient(rgba(0, 0, 0,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0,.035) 1px, transparent 1px),
    var(--paper);
  background-size: 40px 40px, 40px 40px, auto;
}
.location-node { position: relative; text-align: center; }
.location-node .location-marker {
  display: block; width: 12px; height: 12px; margin: 0 auto .9rem;
  border-radius: 50%; background: var(--brand-primary);
  box-shadow: 0 0 0 6px rgba(1, 77, 157,.14);
}
.location-node[data-loc="bapatla"] .location-marker { background: var(--brand-signal); box-shadow: 0 0 0 6px rgba(1, 77, 157,.14); }
.location-code {
  display: block; font-family: var(--font-mono); font-size: .7rem; letter-spacing: .12em;
  color: var(--muted); margin-bottom: .35rem;
}
.location-node h3 { font-family: var(--font-display); font-size: 1.6rem; letter-spacing: -.01em; margin-bottom: .5rem; }
.location-node p { color: var(--muted); font-size: .92rem; line-height: 1.5; margin: 0; }

.location-connector { position: relative; width: clamp(64px, 12vw, 160px); height: 2px; }
.lc-line {
  position: absolute; inset: 0; background: var(--line-strong);
  transform-origin: left center; transform: scaleX(0);
  transition: transform 1.1s var(--ease);
}
.locations-map.is-visible .lc-line { transform: scaleX(1); }
.lc-dot { position: absolute; top: 50%; width: 6px; height: 6px; border-radius: 50%; transform: translate(-50%, -50%); }
.lc-dot-start { left: 0; background: var(--brand-primary); }
.lc-dot-end { left: 100%; background: var(--brand-signal); }

@media (max-width: 760px) {
  .locations-map { grid-template-columns: 1fr; padding: var(--space-3); }
  .location-connector { width: 2px; height: 48px; margin: 0 auto; }
  .lc-line { transform-origin: top center; }
  .lc-dot-end { left: 50%; top: 100%; }
  .lc-dot-start { left: 50%; top: 0; }
}

/* ---------- team ---------- */
.team-grid-premium { margin-top: var(--space-4); gap: 1.5rem; }
.team-grid-premium .team-card {
  border-top: none;
  flex-direction: column;
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: 0;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line);
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.team-grid-premium .team-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 54px rgba(0, 0, 0,.1);
  border-color: rgba(1, 77, 157,.28);
}
.team-grid-premium .team-card .team-avatar {
  width: 100%; height: auto; aspect-ratio: 4/5;
  min-width: 0; min-height: 0;
  border: 0; border-radius: 0;
  object-fit: cover;
  transition: transform .8s var(--ease);
}
.team-grid-premium .team-card:hover .team-avatar { transform: scale(1.05); }
.team-grid-premium .team-card .team-info { padding: 1.1rem 1.25rem 1.4rem; gap: .3rem; }
.team-grid-premium .team-card h3 { font-family: var(--font-display); font-size: 1.15rem; }
@media (max-width: 700px) {
  .team-grid-premium { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 480px) {
  .team-grid-premium { grid-template-columns: 1fr; }
}

/* ---------- final CTA ---------- */
.about-final-cta {
  background: linear-gradient(160deg, #014D9D 0%, #014D9D 62%, #014D9D 100%);
  padding: var(--space-6) 0;
  position: relative;
  overflow: hidden;
}
.about-final-cta-inner { position: relative; z-index: 1; max-width: 760px; }
.about-final-cta .eyebrow { color: rgba(247,251,255,.7); }
.about-final-cta .eyebrow::before { background: var(--brand-signal); }
.about-final-cta h2 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2rem, 3vw + 1rem, 3.4rem);
  line-height: 1.06;
  letter-spacing: -.02em;
  color: #fff;
  margin: 1rem 0 1.1rem;
}
.afc-lead { color: rgba(248, 232, 233,.82); font-size: 1.05rem; line-height: 1.6; max-width: 520px; margin-bottom: var(--space-3); }
.about-final-cta .hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.about-final-cta .btn:not(.btn-primary) { color: rgba(248, 232, 233,.9); border-color: rgba(255,255,255,.24); }
.about-final-cta .btn:not(.btn-primary):hover { border-color: #fff; }

@media (prefers-reduced-motion: reduce) {
  .lc-line { transition: none; transform: scaleX(1); }
}

/* ============================================================
   TECH STACK SECTION — ANIMATED FULL BACKGROUND
   ============================================================ */
.tech-stack-section {
  position: relative;
  background: #ffffff;
  padding: var(--space-6) 0;
  overflow: hidden;
}

.tech-stack-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.015) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0, 0.015) 1px, transparent 1px);
  background-size: 56px 56px;
  opacity: .25;
  pointer-events: none;
  z-index: 0;
}

.tech-stack-section .container {
  position: relative;
  z-index: 1;
  width: min(100%, 1500px);
  padding-inline: .7rem;
}

.tech-header {
  text-align: center;
  margin-bottom: var(--space-4);
}

.tech-header .eyebrow {
  margin-bottom: .5rem;
  color: rgba(0, 0, 0,.62);
}

.tech-header h2 {
  font-size: clamp(2rem, 3vw, 3.2rem);
  letter-spacing: -.05em;
  line-height: 1;
  color: var(--ink);
  margin: 0;
}

.tech-stack-section .lead {
  display: none;
}

.tech-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(110px, 1fr));
  gap: .72rem .8rem;
  margin-top: var(--space-4);
  width: 100%;
}

.tech-card {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 1.2rem;
  padding: .72rem .68rem .85rem;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
  min-width: 0;
  overflow: hidden;
}

.tech-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 32px rgba(0, 0, 0, 0.09);
  border-color: rgba(1, 77, 157, 0.18);
}

.tech-badge {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  font-size: 1.45rem;
  font-weight: 700;
  font-family: var(--font-mono);
  color: #fff;
  background: #000000;
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12);
  margin: 0 auto .7rem;
}

.tech-badge--react { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--node { background: linear-gradient(135deg, #102d22, #1b4639); color: #2dd4bf; }
.tech-badge--js { background: linear-gradient(135deg, #332500, #4d3d00); color: #facc15; }
.tech-badge--next { background: linear-gradient(135deg, #22272f, #374151); color: #f8fafc; }
.tech-badge--ts { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--vue { background: linear-gradient(135deg, #0d2d23, #164e3d); color: #34d399; }
.tech-badge--angular { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--java { background: linear-gradient(135deg, #2a1c0d, #4a2d0f); color: #fbbf24; }
.tech-badge--python { background: linear-gradient(135deg, #273111, #3d4b18); color: #eab308; }
.tech-badge--flutter { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--mongo { background: linear-gradient(135deg, #0d2a1d, #124b34); color: #4ade80; }
.tech-badge--ruby { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--postgres { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--mysql { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--aws { background: linear-gradient(135deg, #3d2a10, #6a3b00); color: #fbbf24; }
.tech-badge--docker { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--shopify { background: linear-gradient(135deg, #0f2d1d, #0f5634); color: #86efac; }
.tech-badge--wp { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--qgis { background: linear-gradient(135deg, #123723, #1d6038); color: #86efac; }
.tech-badge--arcgis { background: linear-gradient(135deg, #A3AEB9, #BBC8D5); color: #fbbf24; }
.tech-badge--adwords { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--meta { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--analytics { background: linear-gradient(135deg, #142b2b, #014D9D); color: #34d399; }
.tech-badge--mailchimp { background: linear-gradient(135deg, #3a2d11, #725014); color: #fbbf24; }
.tech-badge--excel { background: linear-gradient(135deg, #123728, #1e5b3a); color: #86efac; }
.tech-badge--sheets { background: linear-gradient(135deg, #014D9D, #014D9D); color: #fff; }
.tech-badge--powerbi { background: linear-gradient(135deg, #2b1028, #602a4b); color: #f9a8d4; }
.tech-badge--ocr { background: linear-gradient(135deg, #000000, #323f52); color: #F0E2E3; }

.tech-card h3 {
  margin: 0 0 .7rem;
  text-align: center;
  font-size: .9rem;
  line-height: 1.15;
  min-height: 2.3em;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-wrap: anywhere;
  color: var(--ink);
  letter-spacing: -.03em;
  font-weight: 600;
}

.tech-metric {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .4rem;
  margin-bottom: .4rem;
  color: rgba(0, 0, 0,.68);
  font-size: .54rem;
  letter-spacing: .09em;
  font-weight: 700;
  min-width: 0;
}

.tech-metric span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tech-metric strong {
  font-size: .58rem;
  color: var(--ink);
  letter-spacing: .08em;
}

.tech-progress {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

.tech-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.tech-fill--cyan { background: linear-gradient(90deg, #014D9D, #014D9D); }
.tech-fill--green { background: linear-gradient(90deg, #22c55e, #4ade80); }
.tech-fill--gold { background: linear-gradient(90deg, #facc15, #fbbf24); }
.tech-fill--silver { background: linear-gradient(90deg, #0B447E, #F0E2E3); }
.tech-fill--blue { background: linear-gradient(90deg, #014D9D, #014D9D); }
.tech-fill--blue-2 { background: linear-gradient(90deg, #014D9D, #014D9D); }
.tech-fill--blue-3 { background: linear-gradient(90deg, #014D9D, #014D9D); }
.tech-fill--green-2 { background: linear-gradient(90deg, #10b981, #34d399); }
.tech-fill--green-3 { background: linear-gradient(90deg, #22c55e, #86efac); }
.tech-fill--green-4 { background: linear-gradient(90deg, #16a34a, #4ade80); }
.tech-fill--green-5 { background: linear-gradient(90deg, #15803d, #4ade80); }
.tech-fill--red { background: linear-gradient(90deg, #014D9D, #014D9D); }
.tech-fill--orange { background: linear-gradient(90deg, #EBF2F9, #fb923c); }
.tech-fill--orange-2 { background: linear-gradient(90deg, #f59e0b, #fbbf24); }
.tech-fill--orange-3 { background: linear-gradient(90deg, #DAE6F2, #fbbf24); }
.tech-fill--yellow { background: linear-gradient(90deg, #eab308, #facc15); }
.tech-fill--amber { background: linear-gradient(90deg, #d97706, #fbbf24); }
.tech-fill--sky { background: linear-gradient(90deg, #014D9D, #014D9D); }
.tech-fill--google { background: linear-gradient(90deg, #014D9D, #22c55e); }
.tech-fill--meta { background: linear-gradient(90deg, #014D9D, #014D9D); }
.tech-fill--analytics { background: linear-gradient(90deg, #0f766e, #2dd4bf); }
.tech-fill--mailchimp { background: linear-gradient(90deg, #d97706, #fbbf24); }
.tech-fill--excel { background: linear-gradient(90deg, #15803d, #4ade80); }
.tech-fill--sheets { background: linear-gradient(90deg, #014D9D, #014D9D); }
.tech-fill--powerbi { background: linear-gradient(90deg, #a21caf, #f9a8d4); }
.tech-fill--ocr { background: linear-gradient(90deg, #475569, #94a3b8); }
.tech-fill--html { background: linear-gradient(90deg, #014D9D, #fb923c); }
.tech-fill--css { background: linear-gradient(90deg, #014D9D, #014D9D); }

@media (max-width: 1400px) {
  .tech-grid {
    grid-template-columns: repeat(7, minmax(110px, 1fr));
  }
}

@media (max-width: 1200px) {
  .tech-grid {
    grid-template-columns: repeat(6, minmax(110px, 1fr));
  }
}

@media (max-width: 900px) {
  .tech-grid {
    grid-template-columns: repeat(4, minmax(120px, 1fr));
  }
}

@media (max-width: 767px) {
  .tech-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .62rem;
  }

  .tech-card {
    padding: .62rem .42rem .7rem;
  }

  .tech-badge {
    width: 38px;
    height: 38px;
    font-size: 1rem;
  }

  .tech-card h3 {
    font-size: .64rem;
    margin-bottom: .52rem;
  }

  .tech-metric span, .tech-metric strong {
    letter-spacing: .04em;
    font-size: .4rem;
  }
}

@media (max-width: 420px) {
  .tech-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .5rem;
  }

  .tech-card {
    padding: .52rem .35rem .58rem;
  }

  .tech-metric {
    gap: .15rem;
  }
}

/* ============================================================
   MOBILE OPTIMIZATION — Hero & Image Panels
   ============================================================ */
.internal-page .hero .image-panel,
.internal-page .hero .spatial-visual {
  width: 100%;
  height: auto;
  min-height: 280px;
  max-height: 100%;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(0, 0, 0,.12);
}

.internal-page .hero .image-panel img,
.internal-page .hero .spatial-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .8s var(--ease);
}

.internal-page .hero .image-panel:hover img {
  transform: scale(1.02);
}

/* ============================================================
   MOBILE: Tablet & Large Phones (768px - 1024px)
   ============================================================ */
@media (max-width: 1024px) {
  .tech-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-3);
  }

  .tech-group {
    padding: var(--space-3);
  }

  .internal-page .hero .image-panel,
  .internal-page .hero .spatial-visual {
    min-height: 240px;
  }
}

/* ============================================================
   MOBILE: Medium Phones (640px - 767px)
   ============================================================ */
@media (max-width: 767px) {
  .tech-stack-section {
    padding: var(--space-4) 0;
  }

  .tech-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .62rem;
  }

  .tech-group {
    padding: var(--space-3);
  }

  .tech-chips {
    gap: .5rem;
  }

  .tech-chip {
    padding: .4rem .6rem;
    font-size: .78rem;
  }

  .internal-page .hero-grid {
    gap: 1.4rem;
  }

  .internal-page .hero .image-panel,
  .internal-page .hero .spatial-visual {
    min-height: 240px;
    max-height: 300px;
    border-radius: 10px;
  }

  .internal-page .hero-copy {
    text-align: left;
    align-self: start;
  }

  .internal-page h1 {
    font-size: clamp(2rem, 7vw, 2.8rem);
    line-height: .95;
    letter-spacing: -.02em;
  }

  .internal-page .hero .lead {
    font-size: clamp(.95rem, 2.2vw, 1.1rem);
    line-height: 1.45;
  }
}

/* ============================================================
   MOBILE: Small Phones (max 639px)
   ============================================================ */
@media (max-width: 639px) {
  .tech-stack-section {
    padding: var(--space-4) 0;
  }

  .tech-stack-section .section-header {
    text-align: center;
  }

  .tech-stack-section .section-header h2 {
    font-size: clamp(1.5rem, 5vw, 1.8rem);
  }

  .tech-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .5rem;
  }

  .tech-group {
    padding: var(--space-2);
  }

  .tech-group-label {
    font-size: .65rem;
    margin-bottom: var(--space-2);
  }

  .tech-chips {
    gap: .4rem;
  }

  .tech-chip {
    padding: .36rem .52rem;
    font-size: .73rem;
    letter-spacing: -.0025em;
  }

  .internal-page .hero-grid {
    gap: 1rem;
  }

  .internal-page .hero .image-panel,
  .internal-page .hero .spatial-visual {
    min-height: 200px;
    max-height: 260px;
    border-radius: 8px;
  }

  .internal-page h1 {
    font-size: clamp(1.6rem, 6.5vw, 2.3rem);
    line-height: .98;
    letter-spacing: -.015em;
    margin-bottom: .6rem;
  }

  .internal-page .hero .eyebrow {
    margin-bottom: .5rem;
    font-size: .65rem;
  }

  .internal-page .hero .lead {
    font-size: .9rem;
    line-height: 1.48;
    max-width: 100%;
  }
}


/* ============================================================
   PREMIUM VISUAL ECOSYSTEM (TRISET FLAGSHIP SECTION)
   ============================================================ */
.pe-section {
  position: relative;
  padding: 6rem 0 8rem;
  background: var(--surface);
  overflow: hidden;
}

.pe-header {
  text-align: center;
  margin-bottom: 4rem;
  position: relative;
  z-index: 10;
}

.pe-header h2 {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0.5rem 0 1rem;
}

.pe-header .pe-lead {
  font-size: 1.1rem;
  color: var(--muted);
  max-width: 680px;
  margin: 0 auto;
  line-height: 1.6;
}

.pe-canvas {
  position: relative;
  width: 100%;
  max-width: 1600px;
  height: 75vh;
  min-height: 600px;
  max-height: 900px;
  margin: 0 auto;
  background: radial-gradient(circle at center, rgba(1, 77, 157, 0.03) 0%, transparent 60%);
}

/* Base Hover Group Rule: Dim non-hovered elements */
.pe-canvas:hover .pe-zone {
  opacity: 0.35;
  filter: grayscale(40%);
}

.pe-canvas:hover .pe-connections {
  opacity: 0.2;
}

/* --- THE ZONES --- */
.pe-zone {
  position: absolute;
  width: 45%;
  height: 55%;
  transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 2;
  cursor: crosshair;
}

/* Zone Placements */
.pe-zone-geo     { top: 0; left: 5%; }
.pe-zone-digital { top: 0; right: 5%; }
.pe-zone-data    { bottom: 0; left: 10%; width: 40%; height: 50%; }
.pe-zone-creative{ bottom: 0; right: 10%; width: 40%; height: 50%; }

/* Image Masking Magic */
.pe-zone-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.7;
  /* Beautifully blends rectangular images into soft organic blobs */
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 25%, rgba(0,0,0,0) 70%);
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 25%, rgba(0,0,0,0) 70%);
  transition: all 0.6s var(--ease);
  z-index: 1;
}

/* Zone Content */
.pe-zone-content {
  position: relative;
  z-index: 3;
  text-align: center;
  padding: 2rem;
  pointer-events: none; /* Let hover trigger on the whole zone */
  transform: scale(0.95);
  transition: all 0.4s var(--ease);
}

.pe-zone-eyebrow {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: var(--brand-primary);
  text-transform: uppercase;
  background: rgba(255,255,255,0.8);
  padding: 0.3rem 0.8rem;
  border-radius: 100px;
  backdrop-filter: blur(4px);
}

.pe-zone-content h3 {
  font-family: var(--font-display);
  font-size: 1.8rem;
  color: var(--ink);
  margin: 0.5rem 0;
  text-shadow: 0 4px 12px rgba(255,255,255,0.9);
}

.pe-zone-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.9rem;
  color: var(--ink-2);
  font-weight: 500;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.4s var(--ease);
}

.pe-zone-list li { margin-bottom: 0.3rem; }

/* Active Hover State per Zone */
.pe-canvas .pe-zone:hover {
  opacity: 1;
  filter: grayscale(0%);
  z-index: 10;
}

.pe-zone:hover .pe-zone-image {
  opacity: 1;
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 35%, rgba(0,0,0,0) 75%);
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 35%, rgba(0,0,0,0) 75%);
}

.pe-zone:hover .pe-zone-content {
  transform: scale(1);
}

.pe-zone:hover .pe-zone-list {
  opacity: 1;
  transform: translateY(0);
}

/* --- CENTRAL CORE --- */
.pe-core {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 140px;
  height: 140px;
  z-index: 5;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
}

.pe-core-globe {
  width: 60px;
  height: 60px;
  background: var(--surface);
  border: 2px solid var(--brand-primary);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(1, 77, 157, 0.2);
  z-index: 3;
}

.pe-core-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(1, 77, 157, 0.15);
}

.pe-core-ring.r1 {
  width: 120px; height: 120px;
  animation: coreSpin 12s linear infinite;
  border-left-color: var(--brand-primary);
}

.pe-core-ring.r2 {
  width: 160px; height: 160px;
  animation: coreSpin 18s linear infinite reverse;
  border-right-color: var(--brand-signal);
}

.pe-core-label {
  position: absolute;
  bottom: -30px;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--muted);
}

/* --- CONNECTIONS & DATA FLOW --- */
.pe-connections {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  transition: opacity 0.6s var(--ease);
}

.pe-line {
  fill: none;
  stroke: rgba(0, 0, 0, 0.06);
  stroke-width: 0.2;
}

.pe-particle {
  offset-rotate: auto;
  animation: dataFlow 4s linear infinite;
}
.p1 { offset-path: path("M 25 35 Q 50 50 50 50"); animation-delay: 0s; }
.p2 { offset-path: path("M 75 35 Q 50 50 50 50"); animation-delay: 1s; animation-direction: reverse; }
.p3 { offset-path: path("M 30 75 Q 50 50 50 50"); animation-delay: 2s; }
.p4 { offset-path: path("M 70 75 Q 50 50 50 50"); animation-delay: 3s; animation-direction: reverse;}

@keyframes coreSpin {
  100% { transform: rotate(360deg); }
}

@keyframes dataFlow {
  0%   { offset-distance: 0%; opacity: 0; }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { offset-distance: 100%; opacity: 0; }
}

/* --- RESPONSIVE BEHAVIOR --- */
@media (max-width: 1024px) {
  .pe-canvas {
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
  }
  
  .pe-connections, .pe-core { display: none; }
  
  .pe-zone {
    position: relative;
    width: 90%;
    height: 350px;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
  }

  .pe-zone-image {
    -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 40%, rgba(0,0,0,0) 80%);
    mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 40%, rgba(0,0,0,0) 80%);
  }

  .pe-zone-list {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ============================================================
   TRISET RADIAL ECOSYSTEM (REPLACES HDSENSE-STYLE PIE CHART)
   ============================================================ */

.triset-radial-section {
  position: relative;
  padding: 6rem 0 8rem;
  background: radial-gradient(circle at 50% 50%, rgba(1, 77, 157, 0.03) 0%, var(--paper) 70%);
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.radial-header {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 4rem;
  position: relative;
  z-index: 10;
}

.radial-eyebrow {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--brand-signal);
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.radial-header h2 {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 1rem;
}

.radial-lead {
  font-size: 1.1rem;
  color: var(--muted);
  line-height: 1.6;
}

/* --- WORKSPACE & GRID --- */
.radial-workspace {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  min-height: 600px;
}

/* Background SVG connecting lines */
.radial-svg-lines {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

.radial-line {
  fill: none;
  stroke: rgba(1, 77, 157, 0.15);
  stroke-width: 2px;
  stroke-dasharray: 6 6;
  animation: lineFlow 30s linear infinite;
}

.radial-particle {
  fill: var(--brand-primary);
  filter: drop-shadow(0 0 6px rgba(1, 77, 157,0.8));
  offset-rotate: auto;
  animation: particleFlow 4s linear infinite;
}

.p-tl { offset-path: path("M 500 400 L 250 200"); animation-delay: 0s; }
.p-tr { offset-path: path("M 500 400 L 750 200"); animation-delay: 1.5s; }
.p-bl { offset-path: path("M 500 400 L 250 600"); animation-delay: 0.7s; }
.p-br { offset-path: path("M 500 400 L 750 600"); animation-delay: 2.2s; }

/* The 3x3 layout grid for perfect alignment */
.radial-grid {
  display: grid;
  grid-template-columns: 1fr 200px 1fr;
  grid-template-rows: 1fr 200px 1fr;
  gap: 1rem;
  align-items: center;
  position: relative;
  z-index: 5;
  height: 100%;
}

/* --- CENTRAL HUB --- */
.radial-hub {
  grid-column: 2;
  grid-row: 2;
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hub-ring {
  position: absolute;
  border-radius: 50%;
  border: 2px solid transparent;
  pointer-events: none;
}

.ring-outer {
  width: 180px;
  height: 180px;
  border-top-color: var(--brand-primary);
  border-bottom-color: var(--brand-primary);
  opacity: 0.3;
  animation: spinRight 16s linear infinite;
}

.ring-inner {
  width: 140px;
  height: 140px;
  border-left-color: var(--brand-signal);
  border-right-color: var(--brand-signal);
  opacity: 0.4;
  animation: spinLeft 12s linear infinite;
}

.hub-core {
  position: relative;
  width: 110px;
  height: 110px;
  background: linear-gradient(135deg, var(--brand-primary-dark), var(--brand-primary));
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 16px 36px rgba(1, 77, 157, 0.3);
  z-index: 10;
  border: 4px solid var(--surface);
  transition: transform 0.4s var(--ease);
}

.hub-core:hover {
  transform: scale(1.05);
}

.hub-core img {
  width: 32px;
  height: 32px;
  margin-bottom: 4px;
}

.hub-core strong {
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
}

/* --- NODES (The 4 Categories) --- */
.radial-node {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1rem;
  transition: transform 0.3s var(--ease);
}

.radial-node:hover {
  transform: translateY(-4px);
}

.node-tl { grid-column: 1; grid-row: 1; justify-self: end; }
.node-tr { grid-column: 3; grid-row: 1; justify-self: start; }
.node-bl { grid-column: 1; grid-row: 3; justify-self: end; }
.node-br { grid-column: 3; grid-row: 3; justify-self: start; }

.node-icon-wrap {
  position: relative;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--surface);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--line);
  z-index: 5;
  flex-shrink: 0;
}

.node-icon-wrap::before {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid rgba(1, 77, 157, 0.2);
  transition: all 0.3s var(--ease);
}

.radial-node:hover .node-icon-wrap::before {
  inset: -2px;
  border-color: var(--brand-primary);
  background: rgba(1, 77, 157, 0.05);
}

.node-icon {
  font-size: 1.8rem;
}

.node-content {
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(12px);
  padding: 1.5rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.04);
  max-width: 320px;
}

.text-right { text-align: right; }
.text-left { text-align: left; }

.node-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--brand-signal);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}

.node-content h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: var(--ink);
  margin: 0 0 0.5rem;
}

.node-content p {
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

/* --- ANIMATIONS --- */
@keyframes spinRight { 100% { transform: rotate(360deg); } }
@keyframes spinLeft { 100% { transform: rotate(-360deg); } }
@keyframes lineFlow { 100% { stroke-dashoffset: -200; } }
@keyframes particleFlow {
  0%   { offset-distance: 0%; opacity: 0; }
  20%  { opacity: 1; transform: scale(1); }
  80%  { opacity: 1; transform: scale(1.5); }
  100% { offset-distance: 100%; opacity: 0; }
}

/* --- RESPONSIVE MOBILE STACK --- */
@media (max-width: 980px) {
  .radial-svg-lines { display: none; } /* Hide lines on mobile */
  
  .radial-workspace { min-height: auto; }
  
  .radial-grid {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }
  
  /* Bring HUB to the top on mobile */
  .radial-hub {
    order: -1;
    margin-bottom: 2rem;
  }
  
  .radial-node {
    flex-direction: column;
    text-align: center;
    width: 100%;
    gap: 1rem;
  }
  
  /* Reset Desktop Alignments */
  .node-content {
    max-width: 100%;
    text-align: center !important;
  }
  
  /* Put icon on top of card for mobile */
  .radial-node .node-icon-wrap {
    order: -1;
  }
}

/* ---------- site-wide theme compatibility layer ---------- */
:root {
  color-scheme: light;
  --theme-panel: #ffffff;
  --theme-panel-soft: #f4f8fc;
  --theme-panel-glass: rgba(255, 255, 255, 0.86);
  --theme-text: var(--ink);
  --theme-muted: var(--muted);
  --theme-border: rgba(0, 0, 0, 0.12);
  --theme-input: #ffffff;
  --theme-input-text: #000000;
}

:root[data-theme='dark'] {
  color-scheme: dark;
  --ink: #f6f9fc;
  --ink-2: #409CF8;
  --muted: #a9b8c8;
  --paper: #050b12;
  --paper-warm: #09090d;
  --surface: #000000;
  --surface-2: #000000;
  --line: rgba(248, 232, 233, 0.16);
  --grid-line: rgba(248, 232, 233, 0.07);
  --theme-panel: #000000;
  --theme-panel-soft: #000000;
  --theme-panel-glass: rgba(0, 0, 0, 0.88);
  --theme-text: #f6f9fc;
  --theme-muted: #a9b8c8;
  --theme-border: rgba(248, 232, 233, 0.16);
  --theme-input: #000000;
  --theme-input-text: #f6f9fc;
  --careers-bg: #050b12;
  --careers-surface: #000000;
  --careers-surface-soft: #000000;
  --careers-ink: #f6f9fc;
  --careers-muted: #a9b8c8;
  --careers-line: rgba(248, 232, 233, 0.16);
  --gradient-light: radial-gradient(circle at 18% 0%, rgba(1, 77, 157, .18), transparent 34%), radial-gradient(circle at 88% 10%, rgba(1, 77, 157, .08), transparent 24%), linear-gradient(180deg, #050b12 0%, #000000 100%);
}

:root[data-theme='light'] {
  color-scheme: light;
}

:root[data-theme='dark'] body {
  background: var(--paper) !important;
  color: var(--theme-text) !important;
}

:root[data-theme='dark'] body::before {
  opacity: 0.36;
  background-image:
    linear-gradient(rgba(248, 232, 233, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(248, 232, 233, 0.055) 1px, transparent 1px);
}

:root[data-theme='dark'] .site-header {
  background: rgba(5, 11, 18, 0.82) !important;
  border-bottom-color: rgba(248, 232, 233, 0.12) !important;
}

:root[data-theme='dark'] .site-header.is-scrolled,
:root[data-theme='dark'] body.nav-open .site-header {
  background: rgba(5, 11, 18, 0.94) !important;
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.34) !important;
}

:root[data-theme='dark'] .site-nav a,
:root[data-theme='dark'] .theme-toggle,
:root[data-theme='dark'] .menu-toggle {
  color: rgba(246, 249, 252, 0.82) !important;
}

:root[data-theme='dark'] .site-nav a:hover,
:root[data-theme='dark'] .site-nav a.active,
:root[data-theme='dark'] .theme-toggle:hover,
:root[data-theme='dark'] .menu-toggle:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(248, 232, 233, 0.14) !important;
}

.theme-toggle {
  min-width: 92px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-color: var(--theme-border) !important;
  background: color-mix(in srgb, var(--theme-panel) 78%, transparent) !important;
}

.theme-toggle.mobile-theme-toggle {
  display: none !important;
}

.menu-toggle {
  display: none !important;
}

@media (max-width: 980px) {
  .site-nav .theme-toggle {
    display: none !important;
  }

  .theme-toggle.mobile-theme-toggle {
    display: inline-flex !important;
  }
}

:root[data-theme='dark'] .theme-toggle {
  background: rgba(255, 255, 255, 0.06) !important;
}

:root[data-theme='dark'] .section,
:root[data-theme='dark'] .compact-section,
:root[data-theme='dark'] .contact-services-section,
:root[data-theme='dark'] .contact-main-section,
:root[data-theme='dark'] .contact-info-section,
:root[data-theme='dark'] .locations-premium-section,
:root[data-theme='dark'] .project-types-section,
:root[data-theme='dark'] .trust-section,
:root[data-theme='dark'] .careers-main,
:root[data-theme='dark'] .careers-section {
  background: var(--paper) !important;
  color: var(--theme-text) !important;
}

:root[data-theme='dark'] .brand-band,
:root[data-theme='dark'] .process-showcase {
  background:
    linear-gradient(90deg, rgba(248, 232, 233, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(248, 232, 233, 0.04) 1px, transparent 1px),
    var(--paper) !important;
  background-size: 42px 42px !important;
}

:root[data-theme='dark'] .panel,
:root[data-theme='dark'] .metric,
:root[data-theme='dark'] .contact-card,
:root[data-theme='dark'] .service-pill-panel,
:root[data-theme='dark'] .mini-value,
:root[data-theme='dark'] .project-card,
:root[data-theme='dark'] .featured-project,
:root[data-theme='dark'] .info-card,
:root[data-theme='dark'] .location-card-premium,
:root[data-theme='dark'] .project-type-card,
:root[data-theme='dark'] .trust-card,
:root[data-theme='dark'] .service-card,
:root[data-theme='dark'] .contact-form-panel,
:root[data-theme='dark'] .job-card,
:root[data-theme='dark'] .benefit-card,
:root[data-theme='dark'] .culture-card,
:root[data-theme='dark'] .team-card,
:root[data-theme='dark'] .node-content {
  background: var(--theme-panel) !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-text) !important;
  box-shadow: 0 18px 52px rgba(0, 0, 0, 0.26) !important;
}

:root[data-theme='dark'] h1,
:root[data-theme='dark'] h2,
:root[data-theme='dark'] h3,
:root[data-theme='dark'] h4,
:root[data-theme='dark'] label,
:root[data-theme='dark'] .service-card-content h3,
:root[data-theme='dark'] .contact-editorial h2,
:root[data-theme='dark'] .contact-form-panel h3,
:root[data-theme='dark'] .info-card h3,
:root[data-theme='dark'] .location-card-premium h3,
:root[data-theme='dark'] .project-type-card h3,
:root[data-theme='dark'] .trust-card h3,
:root[data-theme='dark'] .process-scroll-step h3 {
  color: var(--theme-text) !important;
}

:root[data-theme='dark'] p,
:root[data-theme='dark'] .lead,
:root[data-theme='dark'] .muted,
:root[data-theme='dark'] .panel p,
:root[data-theme='dark'] .service-pill-panel p,
:root[data-theme='dark'] .mini-value p,
:root[data-theme='dark'] .project-card p,
:root[data-theme='dark'] .contact-editorial p,
:root[data-theme='dark'] .contact-form-panel > p,
:root[data-theme='dark'] .info-card-content,
:root[data-theme='dark'] .detail-value-premium,
:root[data-theme='dark'] .trust-card p,
:root[data-theme='dark'] .process-scroll-step p {
  color: var(--theme-muted) !important;
}

:root[data-theme='dark'] input,
:root[data-theme='dark'] select,
:root[data-theme='dark'] textarea {
  background: var(--theme-input) !important;
  color: var(--theme-input-text) !important;
  border-color: var(--theme-border) !important;
}

:root[data-theme='dark'] input::placeholder,
:root[data-theme='dark'] textarea::placeholder {
  color: rgba(169, 184, 200, 0.62) !important;
}

:root[data-theme='dark'] .form-file-upload {
  background: rgba(255, 255, 255, 0.03) !important;
  border-color: rgba(248, 232, 233, 0.2) !important;
}

:root[data-theme='dark'] .process-schematic {
  background:
    linear-gradient(135deg, rgba(1, 77, 157, 0.96), rgba(1, 77, 157, 0.94)),
    #000000 !important;
  border-color: rgba(248, 232, 233, 0.16) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.34) !important;
}

:root[data-theme='dark'] .process-schematic::before {
  border-color: rgba(248, 232, 233, 0.12) !important;
}

:root[data-theme='dark'] .process-schematic::after {
  opacity: 0.18 !important;
  background-image:
    linear-gradient(rgba(248, 232, 233, 0.18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(248, 232, 233, 0.16) 1px, transparent 1px) !important;
}

:root[data-theme='dark'] .process-chip {
  color: rgba(248, 232, 233, 0.82) !important;
  background: rgba(0, 0, 0, 0.78) !important;
  border-color: rgba(248, 232, 233, 0.18) !important;
}

:root[data-theme='dark'] .process-chip.active {
  color: #ffffff !important;
  background: rgba(1, 77, 157, 0.72) !important;
  border-color: rgba(1, 77, 157, 0.64) !important;
}

:root[data-theme='dark'] .process-scroll-step {
  background: var(--theme-panel-glass) !important;
  border-color: var(--theme-border) !important;
}

:root[data-theme='dark'] .final-cta-section,
:root[data-theme='dark'] .contact-page-hero,
:root[data-theme='dark'] .services-hero,
:root[data-theme='dark'] .band,
:root[data-theme='dark'] .cta-band {
  background: var(--gradient-steel) !important;
  color: #ffffff !important;
}

:root[data-theme='dark'] body.internal-page {
  background:
    radial-gradient(circle at top, rgba(1, 77, 157, 0.18), transparent 28%),
    linear-gradient(180deg, #050b12 0%, #000000 42%, #050b12 100%) !important;
}

:root[data-theme='dark'] .admin-shell,
:root[data-theme='dark'] .admin-section {
  color: var(--theme-text) !important;
}

:root[data-theme='dark'] .admin-panel,
:root[data-theme='dark'] .admin-category-nav,
:root[data-theme='dark'] .selection-row,
:root[data-theme='dark'] .toolbar-controls,
:root[data-theme='dark'] .admin-list,
:root[data-theme='dark'] .content-list,
:root[data-theme='dark'] .inquiry-card,
:root[data-theme='dark'] .job-list-item,
:root[data-theme='dark'] .content-item {
  background: var(--theme-panel) !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-text) !important;
}

:root[data-theme='dark'] .admin-panel h2,
:root[data-theme='dark'] .admin-panel h3,
:root[data-theme='dark'] .panel-header h2,
:root[data-theme='dark'] .panel-header h3,
:root[data-theme='dark'] .admin-topbar h1 {
  color: var(--theme-text) !important;
}

:root[data-theme='dark'] .admin-panel p,
:root[data-theme='dark'] .panel-header p,
:root[data-theme='dark'] .admin-muted,
:root[data-theme='dark'] .content-meta,
:root[data-theme='dark'] .inquiry-meta,
:root[data-theme='dark'] .panel-kicker {
  color: var(--theme-muted) !important;
}

:root[data-theme='dark'] .admin-form input,
:root[data-theme='dark'] .admin-form textarea,
:root[data-theme='dark'] .admin-form select,
:root[data-theme='dark'] .login-form input,
:root[data-theme='dark'] .toolbar-controls input,
:root[data-theme='dark'] .toolbar-controls select,
:root[data-theme='dark'] .selection-row input,
:root[data-theme='dark'] .status-select {
  background: var(--theme-input) !important;
  color: var(--theme-input-text) !important;
  border-color: var(--theme-border) !important;
}

:root[data-theme='dark'] .admin-category-btn {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-muted) !important;
}

:root[data-theme='dark'] .admin-category-btn:hover,
:root[data-theme='dark'] .admin-category-btn.is-active {
  background: rgba(1, 77, 157, 0.22) !important;
  color: var(--theme-text) !important;
  border-color: rgba(1, 77, 157, 0.46) !important;
}

:root[data-theme='dark'] table,
:root[data-theme='dark'] th,
:root[data-theme='dark'] td {
  border-color: var(--theme-border) !important;
  color: var(--theme-text) !important;
}

:root[data-theme='dark'] th {
  background: var(--theme-panel-soft) !important;
}

/* ---------- final unified header: one header system for every page ---------- */
.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  background: color-mix(in srgb, var(--paper) 94%, transparent) !important;
  border-bottom: 1px solid var(--theme-border) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08) !important;
  backdrop-filter: blur(18px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(140%) !important;
}

.site-header.is-scrolled,
body.nav-open .site-header {
  background: color-mix(in srgb, var(--paper) 97%, transparent) !important;
  border-bottom-color: var(--theme-border) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.12) !important;
}

:root[data-theme='dark'] .site-header,
:root[data-theme='dark'] .site-header.is-scrolled,
:root[data-theme='dark'] body.nav-open .site-header {
  background: rgba(5, 11, 18, 0.94) !important;
  border-bottom-color: rgba(248, 232, 233, 0.16) !important;
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.34) !important;
}

.site-header .container,
.site-header-container {
  width: min(100% - 2rem, var(--max)) !important;
  min-height: 76px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
}

.home-page .site-header .container {
  width: min(100% - 2rem, var(--max)) !important;
  max-width: var(--max) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.brand {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  min-width: 132px !important;
}

.brand img,
.site-header.is-scrolled .brand img {
  width: 132px !important;
  height: 52px !important;
  object-fit: contain !important;
  transform: none !important;
  filter: drop-shadow(0 3px 10px rgba(1, 77, 157, 0.12)) !important;
}

.site-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0.35rem !important;
  margin-left: auto !important;
}

.site-nav a,
.theme-toggle,
.menu-toggle {
  min-height: 46px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.68rem 0.9rem !important;
  border-radius: 8px !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: color-mix(in srgb, var(--ink) 78%, var(--muted)) !important;
  font-size: 0.92rem !important;
  font-weight: 650 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.site-nav a::after,
.site-nav .nav-cta::after,
.btn-primary::after {
  display: none !important;
}

.site-nav a:hover,
.site-nav a.active,
.theme-toggle:hover,
.menu-toggle:hover {
  color: var(--brand-primary) !important;
  border-color: var(--theme-border) !important;
  background: var(--theme-panel-soft) !important;
}

.site-nav a.active {
  color: var(--brand-primary) !important;
  background: color-mix(in srgb, var(--brand-primary) 12%, var(--theme-panel)) !important;
  border-color: color-mix(in srgb, var(--brand-primary) 28%, transparent) !important;
}

.theme-toggle,
.site-nav .theme-toggle {
  width: 46px !important;
  min-width: 46px !important;
  color: var(--ink) !important;
  border-color: var(--theme-border) !important;
  background: var(--theme-panel) !important;
  font-size: 1.12rem !important;
  padding: 0 !important;
}

.site-nav .nav-cta,
.nav-cta {
  color: #ffffff !important;
  border-color: transparent !important;
  background: linear-gradient(135deg, var(--brand-primary-deep), var(--brand-primary)) !important;
  box-shadow: 0 8px 20px rgba(1, 77, 157, 0.22) !important;
}

.site-nav .nav-cta:hover,
.nav-cta:hover {
  color: #ffffff !important;
  transform: translateY(-1px) !important;
}

:root[data-theme='dark'] .site-nav a,
:root[data-theme='dark'] .theme-toggle,
:root[data-theme='dark'] .menu-toggle {
  color: rgba(246, 249, 252, 0.84) !important;
}

:root[data-theme='dark'] .site-nav a:hover,
:root[data-theme='dark'] .site-nav a.active,
:root[data-theme='dark'] .theme-toggle:hover,
:root[data-theme='dark'] .menu-toggle:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(248, 232, 233, 0.16) !important;
}

:root[data-theme='dark'] .theme-toggle,
:root[data-theme='dark'] .site-nav .theme-toggle {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.07) !important;
  border-color: rgba(248, 232, 233, 0.18) !important;
}

.theme-toggle.mobile-theme-toggle {
  display: none !important;
}

.menu-toggle {
  display: none !important;
  font-size: 0 !important;
}

.menu-toggle-icon {
  width: 18px;
  height: 14px;
  display: inline-flex;
  flex-direction: column;
  justify-content: space-between;
}

.menu-toggle-icon span {
  display: block;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

@media (max-width: 980px) {
  .site-header .container,
  .site-header-container {
    min-height: 68px !important;
  }

  .brand {
    min-width: 112px !important;
  }

  .brand img,
  .site-header.is-scrolled .brand img {
    width: 112px !important;
    height: 44px !important;
  }

  .menu-toggle {
    display: inline-flex !important;
    margin-left: 0 !important;
  }

  .theme-toggle.mobile-theme-toggle {
    display: inline-flex !important;
    margin-left: auto !important;
  }

  .site-nav {
    display: none !important;
    position: fixed !important;
    top: 76px !important;
    left: 1rem !important;
    right: 1rem !important;
    width: auto !important;
    max-height: calc(100vh - 96px) !important;
    overflow: auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.45rem !important;
    padding: 0.8rem !important;
    border: 1px solid var(--theme-border) !important;
    border-radius: 12px !important;
    background: var(--theme-panel) !important;
    box-shadow: 0 22px 56px rgba(0, 0, 0, 0.18) !important;
  }

  .site-nav.open {
    display: flex !important;
  }

  .site-nav a,
  .site-nav .nav-cta {
    width: 100% !important;
    justify-content: flex-start !important;
    margin: 0 !important;
  }

  .site-nav .theme-toggle {
    display: none !important;
  }

  :root[data-theme='dark'] .site-nav {
    background: var(--theme-panel) !important;
    box-shadow: 0 22px 56px rgba(0, 0, 0, 0.38) !important;
  }
}

@media (max-width: 560px) {
  html,
  body {
    max-width: 100dvw !important;
    overflow-x: hidden !important;
  }

  .site-header {
    width: 100dvw !important;
    overflow: hidden !important;
  }

  .site-header .container,
  .site-header-container {
    width: min(calc(100dvw - 1rem), var(--max)) !important;
    min-width: 0 !important;
  }

  .brand {
    width: 90px !important;
    min-width: 90px !important;
  }

  .brand img,
  .site-header.is-scrolled .brand img {
    width: 90px !important;
    height: 38px !important;
  }

  .menu-toggle {
    width: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
  }
}

/* ---------- Header theme micro-animation ---------- */
:root {
  --theme-progress: 0;
}

:root.is-theme-animating body,
:root.is-theme-animating .section,
:root.is-theme-animating .compact-section,
:root.is-theme-animating .contact-services-section,
:root.is-theme-animating .contact-main-section,
:root.is-theme-animating .contact-info-section,
:root.is-theme-animating .locations-premium-section,
:root.is-theme-animating .project-types-section,
:root.is-theme-animating .trust-section,
:root.is-theme-animating .careers-main,
:root.is-theme-animating .careers-section,
:root.is-theme-animating body.internal-page {
  background: var(--paper) !important;
  color: var(--theme-text) !important;
  transition: background 90ms linear, color 90ms linear !important;
}

:root.is-theme-animating .site-header,
:root.is-theme-animating .site-header.is-scrolled,
:root.is-theme-animating body.nav-open .site-header {
  background: color-mix(in srgb, var(--paper) 95%, transparent) !important;
  border-bottom-color: var(--theme-border) !important;
  box-shadow: 0 14px 34px color-mix(in srgb, var(--ink) 14%, transparent) !important;
}

:root.is-theme-animating .panel,
:root.is-theme-animating .metric,
:root.is-theme-animating .contact-card,
:root.is-theme-animating .service-pill-panel,
:root.is-theme-animating .mini-value,
:root.is-theme-animating .project-card,
:root.is-theme-animating .featured-project,
:root.is-theme-animating .info-card,
:root.is-theme-animating .location-card-premium,
:root.is-theme-animating .project-type-card,
:root.is-theme-animating .trust-card,
:root.is-theme-animating .service-card,
:root.is-theme-animating .contact-form-panel,
:root.is-theme-animating .job-card,
:root.is-theme-animating .benefit-card,
:root.is-theme-animating .culture-card,
:root.is-theme-animating .team-card,
:root.is-theme-animating .node-content {
  background: var(--theme-panel) !important;
  border-color: var(--theme-border) !important;
  color: var(--theme-text) !important;
}

:root.is-theme-animating h1,
:root.is-theme-animating h2,
:root.is-theme-animating h3,
:root.is-theme-animating h4,
:root.is-theme-animating label,
:root.is-theme-animating p,
:root.is-theme-animating .lead,
:root.is-theme-animating .muted {
  transition: color 90ms linear !important;
}

.theme-micro {
  position: relative;
  width: 64px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 64px;
  margin: 0 -0.1rem 0 -0.25rem;
  overflow: visible;
  pointer-events: none;
  isolation: isolate;
  perspective: 120px;
  transform-style: preserve-3d;
}

.theme-micro.mobile-theme-micro {
  display: none;
}

.theme-rigger {
  width: 72px;
  height: 56px;
  display: block;
  overflow: visible;
  background: transparent;
}

.theme-rigger * {
  vector-effect: non-scaling-stroke;
}

.theme-thread {
  transform-box: fill-box;
  transform-origin: 20px 0;
}

.theme-thread-line,
.theme-thread-glint {
  fill: none;
  stroke-linecap: round;
  transform-box: fill-box;
  transform-origin: 50% 0;
}

.theme-thread-line {
  stroke: color-mix(in srgb, var(--brand-primary) 72%, var(--theme-text));
  stroke-width: 1.25;
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--brand-primary) 35%, transparent));
}

.theme-thread-glint {
  stroke: rgba(255, 255, 255, 0.58);
  stroke-width: 0.45;
}

.theme-thread-knot {
  fill: color-mix(in srgb, var(--paper) 72%, transparent);
  stroke: color-mix(in srgb, var(--brand-signal) 72%, #ffffff);
  stroke-width: 1;
  filter: drop-shadow(0 2px 3px rgba(1, 77, 157, 0.22));
}

.theme-person {
  transform-box: fill-box;
  transform-origin: 49px 51px;
  transform: translate3d(0, 0, 0) rotate(-5deg) skewX(-2deg);
}

.theme-person-shadow {
  fill: color-mix(in srgb, var(--ink) 18%, transparent);
  opacity: 0.4;
}

.theme-face,
.theme-neck,
.theme-hand {
  fill: #5C9AD8;
  fill: url("#themeSkin") #5C9AD8;
}

.theme-hair {
  fill: #000000;
}

.theme-brow,
.theme-mouth {
  fill: none;
  stroke: rgba(0, 0, 0, 0.72);
  stroke-width: 0.65;
  stroke-linecap: round;
}

.theme-neck {
  opacity: 0.92;
}

.theme-torso path:first-child {
  fill: #014D9D;
  fill: url("#themeJacket") #014D9D;
}

.theme-shirt {
  fill: rgba(255, 255, 255, 0.88);
}

.theme-jacket-line {
  fill: none;
  stroke: rgba(255, 255, 255, 0.45);
  stroke-width: 0.75;
  stroke-linecap: round;
}

.theme-arm path {
  fill: none;
  stroke: #5C9AD8;
  stroke: url("#themeSkin") #5C9AD8;
  stroke-width: 5;
  stroke-linecap: round;
}

.theme-leg path:first-child {
  fill: none;
  stroke: #000000;
  stroke: url("#themePants") #000000;
  stroke-width: 5.5;
  stroke-linecap: round;
}

.theme-shoe {
  fill: #000000;
}

.theme-head {
  transform-box: fill-box;
  transform-origin: 48px 18px;
  transform: rotate(3deg);
}

.theme-arm,
.theme-leg {
  transform-box: fill-box;
  transform-origin: center top;
}

.theme-arm-left {
  transform-origin: 55px 24px;
}

.theme-arm-right {
  transform-origin: 38px 24px;
  transform: rotate(8deg);
}

.theme-micro * {
  animation: none !important;
  transition: none !important;
}

.theme-leg-back {
  transform: rotate(5deg);
  transform-origin: 42px 35px;
}

.theme-leg-front {
  transform: rotate(-3deg);
  transform-origin: 50px 35px;
}

@media (max-width: 1180px) {
  .theme-micro {
    width: 48px;
    flex-basis: 48px;
    margin-inline: -0.25rem;
    transform: scale(0.9);
  }
}

@media (max-width: 980px) {
  .site-nav .theme-micro {
    display: none !important;
  }

  .theme-micro.mobile-theme-micro {
    display: inline-flex !important;
  }

  .theme-micro {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
    margin-inline: -0.2rem;
    transform: scale(0.78);
  }
}

@media (max-width: 560px) {
  .theme-micro {
    width: 34px;
    height: 40px;
    flex-basis: 34px;
    margin-left: -0.3rem;
    margin-right: -0.15rem;
    transform: scale(0.68);
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-micro {
    opacity: 0.85;
  }

  .theme-micro,
  .theme-micro * {
    animation: none !important;
    transition: none !important;
  }
}

/* ---------- Solutions page contrast fix ---------- */
.solutions-page .editorial-card {
  background: linear-gradient(180deg, #ffffff 0%, #eef3f8 100%) !important;
  border-color: rgba(1, 77, 157, 0.18) !important;
  color: #000000 !important;
}

.solutions-page .editorial-card .eyebrow {
  color: #5d748c !important;
}

.solutions-page .editorial-card h3 {
  color: #000000 !important;
  letter-spacing: 0 !important;
}

.solutions-page .editorial-card .compact-list,
.solutions-page .editorial-card .compact-list li {
  color: #42566b !important;
}

.solutions-page .editorial-card .compact-list li::marker {
  color: var(--brand-signal) !important;
}

:root[data-theme='dark'] .solutions-page .editorial-card {
  background: linear-gradient(180deg, #ffffff 0%, #e8eef5 100%) !important;
  box-shadow: 0 22px 56px rgba(0, 0, 0, 0.24) !important;
}

/* ---------- Tech stack icons + readable card text ---------- */
.tech-stack-section .tech-card {
  background: rgba(255, 255, 255, 0.96) !important;
  color: #000000 !important;
}

.tech-stack-section .tech-card h3 {
  color: #000000 !important;
  letter-spacing: 0 !important;
}

.tech-stack-section .tech-metric,
.tech-stack-section .tech-metric span {
  color: #5b6b7c !important;
}

.tech-stack-section .tech-metric strong {
  color: #000000 !important;
}

.tech-stack-section .tech-badge {
  color: transparent !important;
  font-size: 0 !important;
  background: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08) !important;
}

.tech-stack-section .tech-badge::before {
  content: "";
  width: 32px;
  height: 32px;
  display: block;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.tech-badge--html::before { background-image: url("https://cdn.simpleicons.org/html5/E34F26"); }
.tech-badge--css::before { background-image: url("https://cdn.simpleicons.org/css/1572B6"); }
.tech-badge--react::before { background-image: url("https://cdn.simpleicons.org/react/61DAFB"); }
.tech-badge--node::before { background-image: url("https://cdn.simpleicons.org/nodedotjs/339933"); }
.tech-badge--js::before { background-image: url("https://cdn.simpleicons.org/javascript/F7DF1E"); }
.tech-badge--next::before { background-image: url("https://cdn.simpleicons.org/nextdotjs/000000"); }
.tech-badge--ts::before { background-image: url("https://cdn.simpleicons.org/typescript/3178C6"); }
.tech-badge--vue::before { background-image: url("https://cdn.simpleicons.org/vuedotjs/4FC08D"); }
.tech-badge--angular::before { background-image: url("https://cdn.simpleicons.org/angular/DD0031"); }
.tech-badge--java::before { background-image: url("https://cdn.simpleicons.org/openjdk/ED8B00"); }
.tech-badge--python::before { background-image: url("https://cdn.simpleicons.org/python/3776AB"); }
.tech-badge--flutter::before { background-image: url("https://cdn.simpleicons.org/flutter/02569B"); }
.tech-badge--mongo::before { background-image: url("https://cdn.simpleicons.org/mongodb/47A248"); }
.tech-badge--ruby::before { background-image: url("https://cdn.simpleicons.org/ruby/CC342D"); }
.tech-badge--postgres::before { background-image: url("https://cdn.simpleicons.org/postgresql/4169E1"); }
.tech-badge--mysql::before { background-image: url("https://cdn.simpleicons.org/mysql/4479A1"); }
.tech-badge--aws::before { background-image: url("https://cdn.simpleicons.org/amazonwebservices/232F3E"); }
.tech-badge--docker::before { background-image: url("https://cdn.simpleicons.org/docker/2496ED"); }
.tech-badge--shopify::before { background-image: url("https://cdn.simpleicons.org/shopify/7AB55C"); }
.tech-badge--wp::before { background-image: url("https://cdn.simpleicons.org/wordpress/21759B"); }
.tech-badge--qgis::before { background-image: url("https://cdn.simpleicons.org/qgis/589632"); }
.tech-badge--arcgis::before { background-image: url("https://cdn.simpleicons.org/arcgis/2C7AC3"); }
.tech-badge--adwords::before { background-image: url("https://cdn.simpleicons.org/googleads/4285F4"); }
.tech-badge--meta::before { background-image: url("https://cdn.simpleicons.org/meta/0467DF"); }
.tech-badge--analytics::before { background-image: url("https://cdn.simpleicons.org/googleanalytics/E37400"); }
.tech-badge--mailchimp::before { background-image: url("https://cdn.simpleicons.org/mailchimp/FFE01B"); }
.tech-badge--excel::before { background-image: url("https://cdn.simpleicons.org/microsoftexcel/217346"); }
.tech-badge--sheets::before { background-image: url("https://cdn.simpleicons.org/googlesheets/34A853"); }
.tech-badge--powerbi::before { background-image: url("https://cdn.simpleicons.org/powerbi/F2C811"); }

/* Reliable local fallback when the external icon CDN is unavailable. */
.tech-stack-section .tech-badge--aws::before {
  background-image: none !important;
  display: grid;
  place-items: center;
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: 800;
  line-height: 1;
}

.tech-stack-section .tech-badge--aws::before {
  content: "AWS";
  color: #c76b00;
}

.tech-badge--ocr {
  color: transparent !important;
  font-size: 0 !important;
  font-weight: 800 !important;
}

.tech-stack-section .tech-badge--ocr::before {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%235B5BD6' d='M10 5h20l8 8v30H10z'/%3E%3Cpath fill='%23fff' d='M30 5v10h8z'/%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-width='3' d='M16 23h16M16 30h16M16 37h10'/%3E%3Cpath fill='none' stroke='%23F2C811' stroke-linecap='round' stroke-width='3' d='M34 34l7 7M32 27a7 7 0 1 0 0 14 7 7 0 0 0 0-14Z'/%3E%3C/svg%3E");
}

/* Embedded brand marks keep these two icons visible even when the CDN is blocked. */
.tech-stack-section .tech-badge--excel::before {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23217346' d='M10 4h21l8 8v32H10z'/%3E%3Cpath fill='%2333A852' d='M31 4v10h8z'/%3E%3Cpath fill='%23fff' d='m15 18 5 6-5 6h5l3-4 3 4h5l-5-6 5-6h-5l-3 4-3-4z'/%3E%3C/svg%3E") !important;
}

.tech-stack-section .tech-badge--powerbi::before {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23F2C811' d='M10 35h7V20h-7zm10 0h7V13h-7zm10 0h7V7h-7z'/%3E%3Ccircle cx='35' cy='11' r='4' fill='%23F2C811'/%3E%3Cpath fill='%23D9A900' d='M10 38h27v3H10z'/%3E%3C/svg%3E") !important;
}

:root[data-theme='dark'] .tech-stack-section .tech-card {
  background: rgba(255, 255, 255, 0.96) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
}

/* ---------- transparent top header + single right-side theme character ---------- */
.site-header,
:root[data-theme='dark'] .site-header,
:root.is-theme-animating .site-header {
  background: transparent !important;
  background-color: transparent !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.site-header.is-scrolled,
body.nav-open .site-header,
:root[data-theme='dark'] .site-header.is-scrolled,
:root[data-theme='dark'] body.nav-open .site-header,
:root.is-theme-animating .site-header.is-scrolled,
:root.is-theme-animating body.nav-open .site-header {
  background: rgba(255, 255, 255, 0.94) !important;
  background-color: rgba(255, 255, 255, 0.94) !important;
  border-bottom-color: rgba(0, 0, 0, 0.08) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Home starts transparent over the hero and becomes solid white after scroll. */
.home-page .site-header.is-scrolled {
  background: #ffffff !important;
  background-color: #ffffff !important;
  border-bottom-color: rgba(0, 0, 0, 0.08) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.1) !important;
}

.site-header .site-nav a,
.site-header .theme-toggle,
.site-header .menu-toggle,
:root[data-theme='dark'] .site-header .site-nav a,
:root[data-theme='dark'] .site-header .theme-toggle,
:root[data-theme='dark'] .site-header .menu-toggle,
:root.is-theme-animating .site-header .site-nav a,
:root.is-theme-animating .site-header .theme-toggle,
:root.is-theme-animating .site-header .menu-toggle,
.site-header.is-scrolled .site-nav a,
.site-header.is-scrolled .theme-toggle,
.site-header.is-scrolled .menu-toggle,
body.nav-open .site-nav a,
body.nav-open .theme-toggle,
body.nav-open .menu-toggle,
:root[data-theme='dark'] .site-header.is-scrolled .site-nav a,
:root[data-theme='dark'] .site-header.is-scrolled .theme-toggle,
:root[data-theme='dark'] .site-header.is-scrolled .menu-toggle,
:root[data-theme='dark'] body.nav-open .site-nav a,
:root[data-theme='dark'] body.nav-open .theme-toggle,
:root[data-theme='dark'] body.nav-open .menu-toggle {
  color: #000000 !important;
  transition-property: background, border-color, box-shadow, transform !important;
}

/* Keep the generated mega-menu reachable across the header, including when the
   expand button sits between the Services link and the panel. */
.site-header,
.site-header .site-header-container,
.site-header .site-nav {
  overflow: visible !important;
}

.services-nav-item.is-open .services-mega-menu,
.services-nav-item > a[aria-expanded="true"] ~ .services-mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.site-header .site-nav a:hover,
.site-header .site-nav a.active,
.site-header .theme-toggle:hover,
:root[data-theme='dark'] .site-header .site-nav a:hover,
:root[data-theme='dark'] .site-header .site-nav a.active,
:root[data-theme='dark'] .site-header .theme-toggle:hover,
.site-header.is-scrolled .site-nav a:hover,
.site-header.is-scrolled .site-nav a.active,
.site-header.is-scrolled .theme-toggle:hover,
body.nav-open .site-nav a:hover,
body.nav-open .site-nav a.active,
body.nav-open .theme-toggle:hover,
:root[data-theme='dark'] .site-header.is-scrolled .site-nav a:hover,
:root[data-theme='dark'] .site-header.is-scrolled .site-nav a.active,
:root[data-theme='dark'] .site-header.is-scrolled .theme-toggle:hover,
:root[data-theme='dark'] body.nav-open .site-nav a:hover,
:root[data-theme='dark'] body.nav-open .site-nav a.active,
:root[data-theme='dark'] body.nav-open .theme-toggle:hover {
  color: var(--brand-primary) !important;
  background: rgba(244, 248, 252, 0.72) !important;
  border-color: rgba(0, 0, 0, 0.12) !important;
}

.site-header .theme-toggle,
:root[data-theme='dark'] .site-header .theme-toggle,
.site-header.is-scrolled .theme-toggle,
:root[data-theme='dark'] .site-header.is-scrolled .theme-toggle,
body.nav-open .theme-toggle,
:root[data-theme='dark'] body.nav-open .theme-toggle {
  background: rgba(255, 255, 255, 0.72) !important;
  border-color: rgba(0, 0, 0, 0.12) !important;
}

.site-header .container,
.site-header-container {
  isolation: isolate !important;
}

.theme-micro {
  width: 86px !important;
  height: 60px !important;
  flex: 0 0 86px !important;
  margin-left: 0 !important;
  margin-right: -0.12rem !important;
  align-self: center !important;
  z-index: 5 !important;
  opacity: 1 !important;
  display: inline-flex !important;
}

.theme-rigger {
  width: 86px !important;
  height: 60px !important;
  display: block !important;
  overflow: visible !important;
  background: transparent !important;
  opacity: 1 !important;
  transform: translateY(2px) scale(1.16);
  transform-origin: 58px 52px;
}

.theme-person,
.theme-thread {
  opacity: 1 !important;
  visibility: visible !important;
}

.theme-face,
.theme-neck,
.theme-hand {
  fill: #5C9AD8;
  fill: url("#themeSkin") #5C9AD8;
}

.theme-torso path:first-child {
  fill: #014D9D;
  fill: url("#themeJacket") #014D9D;
}

.theme-leg path:first-child {
  stroke: #000000;
  stroke: url("#themePants") #000000;
}

.theme-thread-line {
  stroke: #014D9D;
}

.theme-thread-knot {
  fill: #ffffff;
}

.site-nav .nav-cta,
.nav-cta {
  position: relative !important;
  z-index: 3 !important;
}

.site-nav .theme-toggle,
.theme-toggle.mobile-theme-toggle {
  position: relative !important;
  z-index: 4 !important;
}

@media (max-width: 1180px) {
  .theme-micro {
    width: 70px !important;
    height: 56px !important;
    flex-basis: 70px !important;
    margin-right: -0.08rem !important;
    transform: none !important;
  }

  .theme-rigger {
    transform: translateY(2px) scale(1);
  }
}

@media (max-width: 980px) {
  .site-header .container,
  .site-header-container {
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .site-nav {
    background: #ffffff !important;
    color: #000000 !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
    box-shadow: 0 22px 56px rgba(0, 0, 0, 0.18) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .theme-micro.mobile-theme-micro {
    width: 44px !important;
    height: 46px !important;
    flex-basis: 44px !important;
    margin-left: -0.38rem !important;
    margin-right: -0.12rem !important;
    transform: none !important;
    overflow: hidden !important;
  }

  .theme-micro.mobile-theme-micro .theme-rigger {
    transform: translateY(2px) scale(0.72);
    transform-origin: 58px 52px;
  }

  .theme-toggle.mobile-theme-toggle {
    width: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
  }
}

@media (max-width: 560px) {
  .site-header {
    overflow: visible !important;
  }

  .theme-micro.mobile-theme-micro {
    width: 32px !important;
    height: 42px !important;
    flex-basis: 32px !important;
    margin-left: -0.45rem !important;
    margin-right: -0.24rem !important;
  }

  .theme-micro.mobile-theme-micro .theme-rigger {
    transform: translateY(2px) scale(0.56);
  }
}

/* Keep the mobile drawer readable when the site is in dark mode. */
@media (max-width: 980px) {
  :root[data-theme='dark'] body.nav-open .site-nav {
    background: #000000 !important;
    border-color: rgba(248, 232, 233, 0.16) !important;
  }

  :root[data-theme='dark'] .site-nav a,
  :root[data-theme='dark'] .site-nav .theme-toggle {
    color: #f6f9fc !important;
  }

  :root[data-theme='dark'] body.nav-open .site-nav a:not(.nav-cta) {
    color: #f6f9fc !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.28);
  }

  :root[data-theme='dark'] .site-nav a:hover,
  :root[data-theme='dark'] .site-nav a.active {
    color: #014D9D !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(248, 232, 233, 0.16) !important;
  }

  :root[data-theme='dark'] .site-nav .nav-cta,
  :root[data-theme='dark'] .site-nav .nav-cta:hover {
    color: #ffffff !important;
    background: linear-gradient(135deg, var(--brand-primary-deep), var(--brand-primary)) !important;
    border-color: transparent !important;
  }
}

/* Keep the mobile theme control and character as one compact header unit. */
@media (max-width: 560px) {
  .theme-toggle.mobile-theme-toggle {
    width: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }

  .theme-micro.mobile-theme-micro {
    width: 44px !important;
    height: 46px !important;
    flex-basis: 44px !important;
    margin-left: -0.38rem !important;
    margin-right: -0.12rem !important;
  }

  .theme-micro.mobile-theme-micro .theme-rigger {
    transform: translateY(2px) scale(0.72) !important;
    transform-origin: 58px 52px;
  }
}

/* Make the light/dark mode control visibly identifiable. */
.theme-toggle .theme-bulb {
  display: inline-flex !important;
  width: 24px !important;
  height: 24px !important;
  align-items: center !important;
  justify-content: center !important;
}

.theme-toggle .theme-bulb svg {
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  overflow: visible !important;
}

.theme-toggle .theme-bulb-glass {
  fill: currentColor !important;
  fill-opacity: 0.18 !important;
  stroke: currentColor !important;
  stroke-width: 1.5 !important;
}

.theme-toggle .theme-bulb-filament,
.theme-toggle .theme-bulb-stem,
.theme-toggle .theme-bulb-ridge {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.7 !important;
  stroke-linecap: round !important;
}

.theme-toggle .theme-bulb-base {
  fill: currentColor !important;
  fill-opacity: 0.85 !important;
}

.theme-toggle .theme-bulb--on {
  color: #f4ad22 !important;
  filter: drop-shadow(0 0 4px rgba(244, 173, 34, 0.42));
}

.theme-toggle .theme-bulb--off {
  color: #014D9D !important;
}

/* ---------- company information marquee ---------- */
:root {
  --company-marquee-height: 34px;
}

.company-marquee {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1001;
  height: var(--company-marquee-height);
  overflow: hidden;
  color: #2B90F5;
  background: #000000;
  border-bottom: 1px solid rgba(1, 77, 157, .2);
  font: 600 11px var(--font-body);
  letter-spacing: .01em;
}

.company-marquee__viewport {
  width: min(100% - 2rem, var(--max));
  height: 100%;
  margin: 0 auto;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}

.company-marquee__track {
  display: flex;
  width: max-content;
  height: 100%;
  animation: companyMarquee 34s linear infinite;
}

.company-marquee__items {
  display: flex;
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  padding-right: clamp(2rem, 5vw, 5rem);
  white-space: nowrap;
}

.company-marquee__item {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}

.company-marquee__brand {
  color: #fff;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.company-marquee__icon {
  color: #014D9D;
  font-size: 14px;
}

.company-marquee a {
  color: inherit;
  text-decoration: none;
}

.company-marquee a:hover,
.company-marquee a:focus-visible {
  color: #fff;
  text-decoration: underline;
}

.company-marquee:hover .company-marquee__track,
.company-marquee:focus-within .company-marquee__track {
  animation-play-state: paused;
}

.site-header {
  top: var(--company-marquee-height) !important;
}

@keyframes companyMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (max-width: 720px) {
  :root { --company-marquee-height: 30px; }
  .company-marquee { font-size: 10px; }
  .company-marquee__viewport { width: 100%; }
  .company-marquee__items { gap: 1.75rem; padding-right: 1.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .company-marquee__track { animation: none; }
  .company-marquee__items[aria-hidden="true"] { display: none; }
}

/* Static contact layout: contacts stay left and social icons stay right. */
.company-marquee {
  mask-image: none;
  -webkit-mask-image: none;
}

.company-marquee__inner {
  width: min(100% - 2rem, var(--max));
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.company-marquee__contact-group,
.company-marquee__socials {
  display: flex;
  align-items: center;
}

.company-marquee__contact-group {
  min-width: 0;
  gap: clamp(.7rem, 2vw, 1.4rem);
}

.company-marquee__divider {
  width: 1px;
  height: 15px;
  flex: 0 0 1px;
  background: rgba(43, 144, 245, .2);
}

.company-marquee__socials {
  flex: 0 0 auto;
  gap: 6px;
}

.company-marquee__social {
  width: 26px;
  height: 26px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  color: #000000;
  background: #fff;
  font: 700 14px Arial, sans-serif;
  line-height: 1;
}

.company-marquee__social--facebook { color: #1877f2; font-size: 18px; }
.company-marquee__social--x { color: #000000; font-size: 12px; }
.company-marquee__social--instagram { color: #FF0000; font-size: 21px; }
.company-marquee__social--linkedin { color: #0a66c2; font-size: 11px; }
.company-marquee__social--whatsapp { color: #18b957; font-size: 19px; }
.company-marquee a.company-marquee__social--instagram { color: #FF0000; }
.company-marquee a.company-marquee__social--facebook { color: #1877f2; }
.company-marquee a.company-marquee__social--x { color: #000000; }
.company-marquee a.company-marquee__social--linkedin { color: #0a66c2; }
.company-marquee a.company-marquee__social--whatsapp { color: #18a957; }
.company-marquee a.company-marquee__social:hover,
.company-marquee a.company-marquee__social:focus-visible { text-decoration: none; color: inherit; }
.company-marquee a.company-marquee__social--instagram:hover,
.company-marquee a.company-marquee__social--instagram:focus-visible { color: #FF0000; }
.company-marquee a.company-marquee__social--facebook:hover,
.company-marquee a.company-marquee__social--facebook:focus-visible { color: #1877f2; }
.company-marquee a.company-marquee__social--x:hover,
.company-marquee a.company-marquee__social--x:focus-visible { color: #000000; }
.company-marquee a.company-marquee__social--linkedin:hover,
.company-marquee a.company-marquee__social--linkedin:focus-visible { color: #0a66c2; }
.company-marquee a.company-marquee__social--whatsapp:hover,
.company-marquee a.company-marquee__social--whatsapp:focus-visible { color: #18a957; }
.company-marquee a.company-marquee__social:focus-visible {
  outline: 2px solid #FF0000;
  outline-offset: 2px;
}

.company-marquee__social svg {
  width: 15px;
  height: 15px;
  display: block;
  fill: currentColor;
}

.company-marquee__social--instagram svg rect,
.company-marquee__social--instagram svg circle:first-of-type {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

.company-marquee__social--instagram svg .social-dot {
  fill: currentColor;
  stroke: none;
}

.company-marquee__social--linkedin svg { width: 16px; height: 16px; }
.company-marquee__social--whatsapp svg { width: 17px; height: 17px; }

@media (max-width: 720px) {
  .company-marquee__inner { width: calc(100% - 1rem); }
  .company-marquee__contact-group { gap: .55rem; }
  .company-marquee__contact-group .company-marquee__item:first-child { display: none; }
  .company-marquee__divider:first-of-type { display: none; }
  .company-marquee__item { font-size: 9px; }
  .company-marquee__socials { gap: 3px; }
  .company-marquee__social { width: 22px; height: 22px; font-size: 11px; }
}

/* Illustrated two-column service cards on the home page. */
.service-quick-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem;
  align-items: stretch;
}

.service-quick-grid .service-card-link {
  min-width: 0;
}

.service-quick-grid .service-pill-panel {
  min-height: 220px;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(130px, .62fr);
  align-items: center;
  gap: 1rem;
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 0;
  border-radius: 10px;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .08);
  overflow: hidden;
}

.service-quick-grid .service-pill-panel::before { display: none; }
.service-card--lavender { background: #72B6FA; }
.service-card--pink { background: #f8ddff; }
.service-card--blue { background: #81BEFA; }
.service-card--mint { background: #dcf9e7; }
.service-card--peach { background: #FFFFFF; }

/* Keep the new illustrations fully opaque and let the cards match the clean
   white reference treatment. */
.service-quick-grid .service-pill-panel,
.service-quick-grid .service-card--lavender,
.service-quick-grid .service-card--pink,
.service-quick-grid .service-card--blue,
.service-quick-grid .service-card--mint,
.service-quick-grid .service-card--peach {
  background: #fff;
}

.service-pill-copy {
  position: relative;
  z-index: 1;
  min-width: 0;
}
.service-pill-copy .eyebrow {
  margin: 0 0 .6rem;
  color: #014D9D;
  font-size: .72rem;
}
.service-pill-copy h3 {
  margin: 0 0 .65rem;
  color: #014D9D;
  font-size: clamp(1.2rem, 2vw, 1.65rem);
  min-width: 0;
  overflow-wrap: anywhere;
}
.service-pill-copy > p:not(.eyebrow) {
  margin: 0;
  color: #014D9D;
  font-size: .9rem;
  line-height: 1.45;
}
.service-learn-more {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-top: 1rem;
  color: #014D9D;
  font-size: .82rem;
  font-weight: 700;
}
.service-learn-more b { font-size: 1.2rem; line-height: .7; }
.service-quick-grid .service-pill-panel > img {
  min-width: 0;
  max-width: 100%;
  width: 100%;
  height: 145px;
  max-height: 145px;
  object-fit: contain;
  object-position: center;
  align-self: center;
  mix-blend-mode: normal;
  transition: transform .35s var(--ease);
}
.service-card-link:hover .service-pill-panel > img { transform: scale(1.06); }

.service-quick-grid .service-pill-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-self: stretch;
}

@media (max-width: 720px) {
  .service-quick-grid { grid-template-columns: 1fr; gap: 1rem; }
  .service-quick-grid .service-pill-panel {
    min-height: 180px;
    grid-template-columns: minmax(0, 1fr) 120px;
    padding: 1.25rem;
  }
  .service-pill-copy h3 { font-size: 1.2rem; }
  .service-pill-copy > p:not(.eyebrow) { font-size: .82rem; }
  .service-quick-grid .service-pill-panel > img {
    height: 125px;
    max-height: 125px;
  }
}

/* Services navigation mega-menu */
.services-nav-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 100%;
}

.services-nav-item > .site-nav a,
.services-nav-item > a {
  position: relative;
}

.services-nav-item > a::after {
  content: '⌄';
  display: inline-block;
  margin-left: .35rem;
  font-size: .9em;
  transform: translateY(-1px);
}

.services-mega-menu {
  isolation: isolate;
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 1100;
  display: grid;
  grid-template-columns: repeat(5, minmax(150px, 1fr));
  gap: 0;
  width: min(1080px, calc(100vw - 2rem));
  padding: 1.45rem 1.1rem 1.35rem;
  border: 1px solid rgba(1, 77, 157, .16);
  border-top: 3px solid #014D9D;
  border-radius: 14px;
  background:
    radial-gradient(circle at 92% 8%, rgba(1, 77, 157, .09), transparent 22%),
    linear-gradient(135deg, rgba(255,255,255,.99), rgba(244,249,255,.98));
  box-shadow: 0 24px 60px rgba(0, 0, 0, .2), 0 5px 15px rgba(1, 77, 157, .08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.services-mega-menu::before {
  content: '';
  position: absolute;
  top: -7px;
  left: 50%;
  width: 14px;
  height: 14px;
  background: #fff;
  border-left: 1px solid rgba(1, 77, 157, .16);
  border-top: 1px solid rgba(1, 77, 157, .16);
  transform: translateX(-50%) rotate(45deg);
}

.services-nav-item:hover .services-mega-menu,
.services-nav-item:focus-within .services-mega-menu,
.services-nav-item > a[aria-expanded="true"] + .services-mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.services-mega-column {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: .32rem;
  min-width: 0;
  padding: 0 1rem;
}

.services-mega-column + .services-mega-column {
  border-left: 1px solid rgba(1, 77, 157, .12);
}

.services-mega-column a {
  min-height: 0 !important;
  padding: .28rem .42rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #000000 !important;
  font-size: .79rem !important;
  font-weight: 600;
  line-height: 1.35;
  justify-content: flex-start !important;
  white-space: normal;
  transition: color .18s ease, background .18s ease, transform .18s ease;
}

.services-mega-column a:hover,
.services-mega-column a:focus-visible {
  color: #014D9D !important;
  background: rgba(1, 77, 157, .08) !important;
  transform: translateX(3px);
}

.services-mega-column .services-mega-title {
  position: relative;
  margin-bottom: .38rem;
  padding-bottom: .48rem !important;
  color: #000000 !important;
  font-size: 1.02rem !important;
  font-weight: 800;
  letter-spacing: -.02em;
}

.services-mega-column .services-mega-title::after {
  content: '';
  position: absolute;
  left: .42rem;
  bottom: 0;
  width: 28px;
  height: 3px;
  border-radius: 99px;
  background: linear-gradient(90deg, #014D9D, #014D9D);
}

.services-mega-column .services-mega-title:hover,
.services-mega-column .services-mega-title:focus-visible {
  color: #014D9D !important;
  background: transparent !important;
}

:root[data-theme='dark'] .services-mega-menu {
  border-color: rgba(248, 232, 233, .16);
  background: rgba(0, 0, 0, .98);
}
:root[data-theme='dark'] .services-mega-menu::before { background: #000000; border-color: rgba(248, 232, 233, .16); }
:root[data-theme='dark'] .services-mega-column a { color: #268EF5 !important; }

@media (max-width: 1050px) and (min-width: 721px) {
  .services-mega-menu { grid-template-columns: repeat(3, minmax(145px, 1fr)); }
}

@media (max-width: 720px) {
  .services-nav-item { display: block; height: auto; }
  .services-mega-menu {
    position: static;
    display: none;
    width: 100%;
    margin: .25rem 0 .5rem;
    padding: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    border-radius: 10px;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
  .services-mega-menu::before { display: none; }
  .services-mega-column { padding: 0; }
  .services-mega-column + .services-mega-column { border-left: 0; }
  .services-nav-item:hover .services-mega-menu,
  .services-nav-item:focus-within .services-mega-menu,
  .services-nav-item > a[aria-expanded="true"] + .services-mega-menu { display: grid; }
}

/* Reference-style services mega-menu with hoverable service categories */
.services-mega-menu {
  grid-template-columns: 235px minmax(0, 1fr);
  width: min(920px, calc(100vw - 2rem));
  min-height: 318px;
  padding: 1.2rem 1rem;
  border: 0;
  border-top: 0;
  border-radius: 8px;
  background:
    radial-gradient(circle at 92% 8%, rgba(1, 77, 157, .28), transparent 28%),
    radial-gradient(circle at 8% 92%, rgba(0, 0, 0, .32), transparent 34%),
    linear-gradient(135deg, #014D9D 0%, #014D9D 58%, #014D9D 100%);
  box-shadow: 0 24px 55px rgba(1, 77, 157, .42), 0 0 0 1px rgba(255,255,255,.2) inset, 0 1px 0 rgba(255,255,255,.35) inset;
  backdrop-filter: blur(18px);
}
.services-mega-menu::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .28;
  pointer-events: none;
  background-image: radial-gradient(rgba(255,255,255,.75) 1px, transparent 1px);
  background-size: 18px 18px;
  mask-image: linear-gradient(135deg, rgba(0,0,0,.8), transparent 70%);
  animation: services-dot-drift 16s linear infinite;
}
.services-mega-menu::before {
  content: '';
  display: block;
  position: absolute;
  top: auto;
  left: auto;
  inset: -45% 28% 35% -18%;
  z-index: -1;
  width: 55%;
  height: 150%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(1, 77, 157,.24), transparent 68%);
  border: 0;
  filter: blur(8px);
  transform: none;
  pointer-events: none;
  animation: services-light-sweep 8s ease-in-out infinite alternate;
}
@keyframes services-dot-drift { to { background-position: 36px 18px; } }
@keyframes services-light-sweep { to { transform: translate(55%, 12%) scale(1.15); opacity: .55; } }

.services-mega-menu::before { display: none; }
.services-mega-sidebar {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding-right: .8rem;
  border-right: 1px solid rgba(255, 255, 255, .42);
  background: linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, .04));
  border-radius: 6px;
}
.services-mega-service {
  display: flex !important;
  align-items: center;
  justify-content: flex-start !important;
  box-sizing: border-box;
  width: 100%;
  gap: .7rem;
  min-height: 47px !important;
  padding: .62rem .7rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #fff !important;
  background: transparent !important;
  font-size: .96rem !important;
  font-weight: 700 !important;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .015em;
  transition: transform .22s ease, background .22s ease, box-shadow .22s ease, letter-spacing .22s ease;
}
.services-mega-service span {
  width: 1rem;
  color: #fff;
  font-size: 1.05rem;
  text-align: center;
}
.services-mega-service svg {
  display: block;
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}
.services-mobile-accordion { display: none; }
.services-mega-service::after {
  content: '';
  width: 5px;
  height: 5px;
  margin-left: auto;
  border-radius: 50%;
  background: rgba(255,255,255,.35);
  box-shadow: 0 0 0 3px rgba(255,255,255,.06);
  opacity: .7;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.services-mega-service:hover,
.services-mega-service:focus-visible,
.services-mega-service.is-active {
  color: #fff !important;
  background: linear-gradient(90deg, rgba(255,255,255,.2), rgba(255,255,255,.06)) !important;
  box-shadow: inset 3px 0 0 #014D9D, 0 8px 18px rgba(0, 0, 0, .16);
  transform: none !important;
}
.services-mega-service:hover::after,
.services-mega-service:focus-visible::after,
.services-mega-service.is-active::after {
  background: #fff;
  box-shadow: 0 0 0 4px rgba(1, 77, 157,.2), 0 0 12px rgba(255,255,255,.8);
  transform: scale(1.25);
}
.services-mega-service:hover,
.services-mega-service:focus-visible,
.services-mega-service.is-active {
  letter-spacing: .035em;
}
.services-mega-content {
  min-width: 0;
  padding-left: 1.1rem;
}
.services-mega-panel {
  display: none;
  grid-template-columns: 1fr;
  gap: 1.3rem;
  height: 100%;
  animation: services-panel-enter .34s cubic-bezier(.2,.8,.2,1) both;
}
.services-mega-panel.is-active { display: grid; }
@keyframes services-panel-enter {
  from { opacity: 0; transform: translateX(14px); }
  to { opacity: 1; transform: translateX(0); }
}
.services-mega-panel-column {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: .12rem .8rem;
  align-items: stretch;
  min-width: 0;
}
.services-mega-panel-column h3 {
  margin: 0 0 .35rem;
  padding: 0 0 .5rem;
  border-bottom: 1px solid rgba(255, 255, 255, .7);
  color: #fff;
  font-size: 1.15rem;
  letter-spacing: .02em;
  line-height: 1.2;
  grid-column: 1 / -1;
  text-shadow: 0 2px 18px rgba(0,0,0,.18);
}
.services-mega-panel-column a {
  min-height: 0 !important;
  padding: .38rem .2rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 600;
  line-height: 1.35;
  justify-content: flex-start !important;
  white-space: normal;
  position: relative;
  border-radius: 7px !important;
  transition: background .2s ease, transform .2s ease, padding-left .2s ease, color .2s ease;
}
.services-mega-panel-column a::before {
  content: '›';
  margin-right: .45rem;
  color: #7EB8F1;
  font-size: 1.1em;
  transition: transform .2s ease;
}
.services-mega-panel-column a:hover,
.services-mega-panel-column a:focus-visible {
  color: #fff !important;
  background: rgba(255, 255, 255, .1) !important;
  transform: translateX(3px);
  padding-left: .5rem !important;
}
.services-mega-panel-column a:hover::before,
.services-mega-panel-column a:focus-visible::before {
  transform: translateX(3px);
}

/* The main site header has a dark-text rule; keep the red mega-menu readable. */
.site-header .site-nav .services-mega-menu .services-mega-service,
.site-header .site-nav .services-mega-menu .services-mega-service span,
.site-header .site-nav .services-mega-menu .services-mega-panel-column h3,
.site-header .site-nav .services-mega-menu .services-mega-panel-column a {
  color: #fff !important;
}
.site-header .site-nav .services-mega-menu .services-mega-service {
  justify-content: flex-start !important;
  box-sizing: border-box;
  width: 100%;
}
.site-header .site-nav .services-mega-menu .services-mega-panel-column a:hover,
.site-header .site-nav .services-mega-menu .services-mega-panel-column a:focus-visible {
  color: #fff !important;
  background: rgba(255,255,255,.14) !important;
}
.site-header .site-nav .services-mega-menu .services-mega-service:hover,
.site-header .site-nav .services-mega-menu .services-mega-service:focus-visible,
.site-header .site-nav .services-mega-menu .services-mega-service.is-active {
  color: #fff !important;
  background: linear-gradient(90deg, rgba(255,255,255,.2), rgba(255,255,255,.06)) !important;
  border-color: transparent !important;
}

/* Keep the five service collections in the same order everywhere. */
.service-subservice-list .service-subservice-row:nth-child(1) { order: 2; }
.service-subservice-list .service-subservice-row:nth-child(2) { order: 3; }
.service-subservice-list .service-subservice-row:nth-child(3) { order: 4; }
.service-subservice-list .service-subservice-row:nth-child(4) { order: 5; }
.service-subservice-list .service-subservice-row:nth-child(5) { order: 1; }
.service-subservice-list { display: flex; flex-direction: column; }
.service-quick-grid .service-card-link[href*="photogrammetry"] { order: 1; }
.service-quick-grid .service-card-link[href*="digital-marketing"] { order: 2; }
.service-quick-grid .service-card-link[href*="web-development"] { order: 3; }
.service-quick-grid .service-card-link[href*="app-development"] { order: 4; }
.service-quick-grid .service-card-link[href*="data-entry"] { order: 5; }
@media (max-width: 720px) {
  .services-mega-menu {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: .8rem;
  }
  .services-mega-sidebar {
    padding: 0 0 .65rem;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .55);
  }
  .services-mega-service { min-height: 38px !important; }
  .services-mega-content { padding: .8rem 0 0; }
  .services-mega-panel { grid-template-columns: 1fr; gap: .7rem; }
  .services-mega-panel-column { grid-template-columns: 1fr; }
}

/* Click-open Industries dropdown */
.industries-nav-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 100%;
}

.industries-nav-item > a::after {
  content: '⌄';
  display: inline-block;
  margin-left: .35rem;
  color: #014D9D;
  font-size: .9em;
  transform: translateY(-1px);
}

.industries-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1100;
  display: flex;
  flex-direction: column;
  width: 250px;
  padding: .9rem 0 1rem;
  border: 1px solid rgba(1, 77, 157, .12);
  border-top: 3px solid #014D9D;
  border-radius: 0 0 3px 3px;
  background: rgba(255, 255, 255, .99);
  box-shadow: 0 20px 45px rgba(0, 0, 0, .18);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-7px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.industries-nav-item:hover .industries-dropdown,
.industries-nav-item.is-open .industries-dropdown,
.industries-nav-item:focus-within .industries-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.industries-dropdown a {
  min-height: 0 !important;
  justify-content: flex-start !important;
  padding: .58rem 1.85rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #1b1f2b !important;
  font-size: .88rem !important;
  font-weight: 650;
  white-space: nowrap;
}

.industries-dropdown a:hover,
.industries-dropdown a:focus-visible {
  color: #014D9D !important;
  background: #FDF0F1 !important;
  transform: translateX(3px);
}

:root[data-theme='dark'] .industries-dropdown {
  background: #000000;
  border-color: rgba(248, 232, 233, .16);
}
:root[data-theme='dark'] .industries-dropdown a { color: #1D89F6 !important; }

@media (max-width: 980px) {
  .industries-nav-item { display: block; height: auto; }
  .industries-dropdown {
    position: static;
    display: none;
    width: 100%;
    margin: .25rem 0 .5rem;
    border-radius: 8px;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
  .industries-nav-item.is-open .industries-dropdown { display: flex; }
}

/* Five-service presentation on the Services page */
.triset-service-studio .pill-pile-section,
.triset-service-studio .exact-radial-section,
.triset-service-studio .diamond-showcase-section,
.triset-service-studio .giant-marquee-section {
  display: none !important;
}

/* Keep the interactive capability pills above the five core service cards. */
.triset-service-studio #main-content {
  display: flex;
  flex-direction: column;
}
.triset-service-studio .services-kinetic-hero { order: 1; }
.triset-service-studio .pill-pile-section {
  display: block !important;
  order: 2;
  padding: clamp(3.5rem, 7vw, 6rem) 0;
  background:
    radial-gradient(circle at 10% 0%, rgba(1, 77, 157,.1), transparent 32%),
    linear-gradient(135deg, #f8fbff, #FDF0F1 56%, #FFF5F6);
  border-top: 1px solid rgba(1, 77, 157,.1);
  border-bottom: 1px solid rgba(1, 77, 157,.12);
}
.triset-service-studio .services-five-section { order: 3; }
.triset-service-studio .service-subservice-section { order: 4; }
.triset-service-studio .services-cta { order: 5; }
.triset-service-studio .pill-pile-head { align-items: center; }
.triset-service-studio .pill-pile-head h2 { color: #000000 !important; }
.triset-service-studio .pill-pile-hint { color: #014D9D !important; }
.triset-service-studio .pill-pile-stage {
  max-width: none;
  min-height: 360px;
  border: 1px solid rgba(1, 77, 157,.14);
  background:
    radial-gradient(circle at 50% 48%, rgba(255,255,255,.9), transparent 46%),
    linear-gradient(rgba(1, 77, 157,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(1, 77, 157,.045) 1px, transparent 1px),
    #fff;
  background-size: auto, 32px 32px, 32px 32px, auto;
  box-shadow: 0 20px 45px rgba(0, 0, 0,.09), inset 0 1px 0 rgba(255,255,255,.9);
}
.triset-service-studio .pill-pile-copy {
  padding: clamp(1.4rem, 3vw, 2.5rem);
  border: 1px solid rgba(1, 77, 157,.12);
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 16px 35px rgba(0, 0, 0,.07);
}
.triset-service-studio .pill-pile-copy .pill-pile-lead { color: #5a6d84 !important; }

/* Single-line animated sub-service streams */
.service-subservice-section {
  position: relative;
  padding: clamp(3.2rem, 6vw, 5rem) 0;
  overflow: hidden;
  background: #000000;
  color: #fff;
}
.service-subservice-section::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 86% 12%, rgba(1, 77, 157,.35), transparent 30%), radial-gradient(circle at 12% 90%, rgba(1, 77, 157,.16), transparent 28%);
}
.service-subservice-heading,
.service-subservice-list { position: relative; z-index: 1; }
.service-subservice-heading { margin-bottom: 1.8rem; }
.service-subservice-heading .eyebrow { color: #014D9D; }
.service-subservice-heading h2 {
  max-width: 700px;
  margin: .35rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3.6vw, 2.8rem);
  line-height: 1.08;
}
.service-subservice-list { display: grid; gap: .65rem; }
.service-subservice-row--amber { order: 1; }
.service-subservice-row--coral { order: 2; }
.service-subservice-row--cyan { order: 3; }
.service-subservice-row--violet { order: 4; }
.service-subservice-row--blue { order: 5; }
.service-subservice-row {
  display: grid;
  grid-template-columns: minmax(155px, 20%) minmax(0, 1fr);
  align-items: center;
  min-height: 58px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 10px;
  background: rgba(255,255,255,.065);
  overflow: hidden;
}
.service-subservice-label {
  display: flex;
  align-items: center;
  gap: .7rem;
  height: 100%;
  padding: .9rem 1rem;
  border-right: 1px solid rgba(255,255,255,.14);
  white-space: nowrap;
}
.service-subservice-label span { color: #014D9D; font: 700 .7rem var(--font-mono); }
.service-subservice-label strong { font-size: .86rem; }
.service-subservice-viewport { min-width: 0; overflow: hidden; }
.service-subservice-track { display: flex; width: max-content; animation: subserviceStream 28s linear infinite; }
.service-subservice-track--reverse { animation-name: subserviceStreamReverse; animation-duration: 32s; }
.service-subservice-items { display: flex; align-items: center; gap: .7rem; padding-right: .7rem; white-space: nowrap; }
.service-subservice-items span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: .35rem .7rem;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: #72B6FA;
  background: rgba(255,255,255,.08);
  font-size: .74rem;
  font-weight: 650;
}
.service-subservice-row--blue .service-subservice-items span { border-color: rgba(1, 77, 157,.45); }
.service-subservice-row--cyan .service-subservice-items span { border-color: rgba(67,220,228,.45); }
.service-subservice-row--violet .service-subservice-items span { border-color: rgba(1, 77, 157,.5); }
.service-subservice-row--amber .service-subservice-items span { border-color: rgba(247,182,61,.5); }
.service-subservice-row--coral .service-subservice-items span { border-color: rgba(1, 77, 157,.5); }
.service-subservice-row:hover .service-subservice-track,
.service-subservice-row:focus-within .service-subservice-track { animation-play-state: paused; }
@keyframes subserviceStream { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes subserviceStreamReverse { from { transform: translateX(-50%); } to { transform: translateX(0); } }

@media (prefers-reduced-motion: reduce) {
  .service-subservice-track { animation: none; }
  .service-subservice-items[aria-hidden="true"] { display: none; }
}

@media (max-width: 900px) {
  .triset-service-studio .pill-pile-stage { min-height: 420px; }
}

@media (max-width: 720px) {
  .triset-service-studio .pill-pile-section { padding: 3rem 0; }
  .triset-service-studio .pill-pile-stage { min-height: 390px; }
  .service-subservice-row { grid-template-columns: 125px minmax(0, 1fr); }
  .service-subservice-label { padding: .75rem .7rem; gap: .4rem; }
  .service-subservice-label strong { font-size: .72rem; }
}

/* Simple reference-style service cards below the pills. */
.services-five-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.services-five-card#photogrammetry { order: 1; }
.services-five-card#digital-marketing { order: 2; }
.services-five-card#web-development { order: 3; }
.services-five-card#app-development { order: 4; }
.services-five-card#data-entry { order: 5; }
.services-five-card,
.services-five-card:last-child {
  grid-column: auto;
  max-width: none;
  min-height: 225px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, .78fr);
  align-items: center;
  gap: .7rem;
  padding: 1.15rem;
  border-top: 2px solid #014D9D;
  border-radius: 8px;
}
.services-five-card-copy { position: relative; z-index: 1; }
.services-five-card .eyebrow { margin: 0 0 .4rem; font-size: .64rem; }
.services-five-card h3 { margin-bottom: .45rem; font-size: clamp(1.05rem, 1.8vw, 1.45rem); }
.services-five-card > p:not(.eyebrow) { font-size: .78rem; line-height: 1.4; }
.services-five-card-copy > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.4; }
.services-five-card img {
  width: 100%;
  max-height: 145px;
  object-fit: contain;
}
.services-five-card .services-five-link { margin-top: .8rem; font-size: .76rem; }

@media (max-width: 720px) {
  .services-five-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .services-five-card,
  .services-five-card:last-child {
    min-height: 205px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    gap: .45rem;
    padding: .8rem;
  }
  .services-five-card img { order: -1; height: 82px; max-height: 82px; }
  .services-five-card h3 { font-size: .96rem; }
  .services-five-card-copy > p:not(.eyebrow) { font-size: .68rem; }
  .services-five-card .services-five-link { font-size: .68rem; }
}

.services-five-section {
  padding: clamp(4rem, 8vw, 7rem) 0;
  background: var(--paper);
}

.services-five-heading {
  max-width: 720px;
  margin: 0 auto 2.5rem;
  text-align: center;
}
.services-five-heading h2 {
  margin: .4rem 0 .8rem;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.05;
}
.services-five-heading > p:last-child { color: var(--muted); font-size: 1.05rem; }

.services-five-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.services-five-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 390px;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  overflow: hidden;
  border: 1px solid var(--theme-border);
  border-top: 3px solid #014D9D;
  border-radius: 14px;
  background: var(--surface);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .07);
  transition: transform .25s ease, box-shadow .25s ease;
}
.services-five-card:last-child { grid-column: 1 / -1; max-width: calc(50% - .625rem); }
.services-five-card:hover { transform: translateY(-5px); box-shadow: 0 25px 55px rgba(0, 0, 0, .13); }
.services-five-number { color: #014D9D; font: 700 .75rem var(--font-mono); letter-spacing: .1em; }
.services-five-card .eyebrow { margin: .9rem 0 .45rem; color: #014D9D; }
.services-five-card h3 { margin: 0 0 .7rem; color: var(--ink); font-family: var(--font-display); font-size: clamp(1.45rem, 2.4vw, 2rem); }
.services-five-card > p:not(.eyebrow) { margin: 0; max-width: 42rem; color: var(--muted); line-height: 1.55; }
.services-five-card ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem 1rem; margin: 1.4rem 0 1.8rem; padding: 0; list-style: none; color: var(--ink); font-size: .88rem; }
.services-five-card li::before { content: '◆'; margin-right: .45rem; color: #014D9D; font-size: .5rem; vertical-align: .15em; }
.services-five-link { margin-top: auto; color: #014D9D; font-weight: 700; text-decoration: none; }
.services-five-link span { margin-left: .35rem; font-size: 1.15rem; }

@media (max-width: 720px) {
  .services-five-grid { grid-template-columns: 1fr; }
  .services-five-card,
  .services-five-card:last-child { grid-column: auto; max-width: none; min-height: 0; }
  .services-five-card ul { grid-template-columns: 1fr; }
}

/* Final Services page layout overrides */
.triset-service-studio .service-subservice-section {
  background: #fff;
  color: #000000;
}
.triset-service-studio .service-subservice-section::before { opacity: 0; }
.triset-service-studio .service-subservice-heading h2 { color: #000000; }
.triset-service-studio .service-subservice-row {
  border-color: rgba(1, 77, 157,.14);
  background: #fff;
  box-shadow: 0 8px 22px rgba(0, 0, 0,.05);
}
.triset-service-studio .service-subservice-label {
  border-right-color: rgba(1, 77, 157,.13);
}
.triset-service-studio .service-subservice-label strong { color: #000000; }
.triset-service-studio .service-subservice-label span { color: #014D9D; }
.triset-service-studio .service-subservice-items span {
  color: #014D9D;
  background: #f7fbff;
}

.triset-service-studio .services-five-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.15rem;
}
.triset-service-studio .services-five-card,
.triset-service-studio .services-five-card:last-child {
  grid-column: auto !important;
  max-width: none !important;
  min-height: 225px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, .78fr);
  align-items: center;
  padding: 1.15rem;
}

@media (max-width: 720px) {
  .triset-service-studio .services-five-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .7rem;
  }
  .triset-service-studio .services-five-card,
  .triset-service-studio .services-five-card:last-child {
    min-height: 205px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: .8rem;
  }
  .triset-service-studio .services-five-card img { order: -1; height: 82px; max-height: 82px; }
}

/* Floating call, email, WhatsApp, and back-to-top controls */
.floating-contact-actions {
  position: fixed;
  right: clamp(14px, 2.5vw, 34px);
  bottom: clamp(18px, 4vw, 42px);
  z-index: 1200;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .55rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(14px);
  transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}
.site-header.is-scrolled ~ .floating-contact-actions {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.floating-contact-action {
  position: relative;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  overflow: visible;
  background: transparent !important;
  box-shadow: none !important;
  transition: transform .2s ease, filter .2s ease;
}
.floating-contact-action::before {
  display: none;
}
.floating-contact-action svg { position: relative; z-index: 1; }
.floating-contact-action:hover,
.floating-contact-action:focus-visible {
  color: #fff;
  transform: translateY(-5px) scale(1.08) rotateX(8deg);
  filter: saturate(1.12) brightness(1.06);
}
.floating-contact-action:active { transform: translateY(2px) scale(.98); }
.floating-contact-action svg { width: 28px; height: 28px; fill: currentColor; }
.floating-contact-action--call { color: #1877f2; }
.floating-contact-action--call { margin-bottom: -.45rem; }
.floating-contact-action--email { color: #FF0000; }
.floating-contact-action--whatsapp { color: #22c864; }
.floating-contact-action--top {
  width: 54px;
  height: 54px;
  margin-top: .35rem;
  color: #014D9D;
}
.floating-contact-action--top svg { width: 30px; height: 30px; }
@media (max-width: 720px) {
  .floating-contact-actions { right: 12px; bottom: 18px; gap: .45rem; }
  .floating-contact-action { width: 42px; height: 42px; }
  .floating-contact-action--top { width: 50px; height: 50px; }
}

/* Mobile service scrollers: service name above, sub-services below. */
@media (max-width: 720px) {
  .triset-service-studio .service-subservice-row {
    display: block;
    min-height: 0;
  }
  .triset-service-studio .service-subservice-label {
    width: 100%;
    height: auto;
    min-height: 42px;
    padding: .7rem .85rem;
    border-right: 0;
    border-bottom: 1px solid rgba(1, 77, 157,.13);
  }
  .triset-service-studio .service-subservice-label strong { font-size: .8rem; }
  .triset-service-studio .service-subservice-viewport { padding: .55rem .75rem; }
  .triset-service-studio .service-subservice-items span { font-size: .68rem; }
}

/* Keep mobile logo, theme control, and menu button on one baseline. */
@media (max-width: 720px) {
  .site-header .site-header-container,
  .site-header .container {
    min-height: 58px !important;
    height: 58px !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: .5rem !important;
  }
  .site-header .brand {
    display: inline-flex !important;
    align-items: center !important;
    height: 100% !important;
    flex: 0 0 auto !important;
  }
  .site-header .brand img,
  .site-header.is-scrolled .brand img {
    display: block !important;
    width: 88px !important;
    height: 38px !important;
    object-fit: contain !important;
  }
  .header-mobile-actions {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .45rem !important;
    height: 100% !important;
    margin-left: auto !important;
  }
  .site-header .theme-toggle.mobile-theme-toggle,
  .site-header .menu-toggle {
    position: static !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transform: none !important;
  }
  .site-header .theme-toggle.mobile-theme-toggle { border-radius: 9px !important; }
  .site-header .menu-toggle { border-radius: 9px !important; }
}

/* Compact mobile contact strip: contacts and social icons stay on one line. */
@media (max-width: 720px) {
  .company-marquee { height: 31px; font-size: 8px; }
  .company-marquee__inner {
    width: calc(100% - .5rem);
    gap: .25rem;
  }
  .company-marquee__contact-group {
    min-width: 0;
    flex: 1 1 auto;
    gap: .3rem;
    overflow: hidden;
  }
  .company-marquee__contact-group .company-marquee__item {
    min-width: 0;
    flex: 0 1 auto;
    gap: .2rem;
    font-size: 8px;
    white-space: nowrap;
  }
  .company-marquee__contact-group .company-marquee__item:last-child,
  .company-marquee__contact-group .company-marquee__item:last-child a {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .company-marquee__icon { font-size: 10px; }
  .company-marquee__divider { height: 12px; }
  .company-marquee__socials { flex: 0 0 auto; gap: 2px; }
  .company-marquee__social { width: 19px; height: 19px; font-size: 9px; }
  .company-marquee__social svg { width: 12px; height: 12px; }
  .company-marquee__social--whatsapp svg { width: 13px; height: 13px; }
}

/* Dedicated service detail pages */
.service-detail-page .service-detail-hero {
  padding: clamp(7rem, 13vw, 10rem) 0 clamp(4rem, 8vw, 7rem);
  background: linear-gradient(135deg, #FDF0F1, #fff 58%, #FFF0F1);
}
.service-detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(260px, .8fr); align-items: center; gap: clamp(2rem, 7vw, 6rem); }
.service-detail-hero h1 { max-width: 720px; margin: .45rem 0 1.1rem; color: #000000; font-family: var(--font-display); font-size: clamp(2.6rem, 6vw, 5.6rem); line-height: .98; letter-spacing: -.05em; }
.service-detail-hero .lead { max-width: 620px; color: #5b6f87; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.6; }
.service-detail-visual { display: grid; place-items: center; min-height: 290px; padding: 1rem; border: 1px solid rgba(1, 77, 157,.12); border-radius: 22px; background: #fff; box-shadow: 0 25px 60px rgba(0, 0, 0,.12); }
.service-detail-visual img { width: 100%; max-height: 330px; object-fit: contain; }
.service-detail-body { padding: clamp(4rem, 8vw, 7rem) 0; background: #fff; }
.service-detail-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.service-detail-panel { display: flex !important; flex-direction: column; align-items: stretch; min-width: 0; padding: clamp(1.5rem, 3vw, 2.6rem); border: 1px solid rgba(1, 77, 157,.12); border-top: 3px solid #014D9D; border-radius: 15px; background: #fbfdff; box-shadow: 0 14px 35px rgba(0, 0, 0,.06); }
.service-detail-panel h2 { margin: .45rem 0 .9rem; color: #000000; font-family: var(--font-display); font-size: clamp(1.5rem, 2.7vw, 2.4rem); }
.service-detail-panel > p:not(.eyebrow) { display: block; color: #61738a; line-height: 1.65; }
.service-detail-panel .eyebrow { color: #014D9D; }
.service-detail-benefits { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.service-detail-benefits span { padding: .45rem .7rem; border: 1px solid rgba(1, 77, 157,.16); border-radius: 999px; color: #014D9D; background: #FDF0F1; font-size: .76rem; font-weight: 700; }
.service-detail-list { display: grid; gap: .7rem; margin: 1.3rem 0 0; padding: 0; list-style: none; color: #014D9D; }
.service-detail-list li::before { content: '◆'; margin-right: .55rem; color: #014D9D; font-size: .5rem; vertical-align: .15em; }
.service-detail-cta { padding: clamp(3.5rem, 7vw, 6rem) 0; color: #fff; text-align: center; background: linear-gradient(135deg, #014D9D, #014D9D); }
.service-detail-cta h2 { margin: 0 0 .6rem; font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3.5rem); }
.service-detail-cta p { margin: 0 auto 1.4rem; color: #73B6F9; }
.service-detail-page .service-detail-layout { align-items: stretch; }
.service-detail-page .service-detail-panel h2 { max-width: 18ch; }
.service-detail-page .service-detail-panel .service-detail-benefits { align-self: flex-start; }
.service-detail-page .service-detail-list { width: 100%; }
@media (max-width: 760px) {
  .service-detail-page .service-detail-hero { padding-top: 6.5rem; }
  .service-detail-hero-grid, .service-detail-layout { grid-template-columns: 1fr; }
  .service-detail-page .service-detail-hero { padding-bottom: 3.5rem; }
  .service-detail-page .service-detail-hero-grid { gap: 2rem; }
  .service-detail-hero h1 { max-width: 12ch; font-size: clamp(2.4rem, 12vw, 4rem); }
  .service-detail-hero .lead { font-size: 1rem; line-height: 1.55; }
  .service-detail-visual { min-height: 220px; padding: .75rem; border-radius: 18px; }
  .service-detail-visual img { max-height: 220px; }
  .service-detail-body { padding: 3rem 0; }
  .service-detail-layout { gap: 1rem; }
  .service-detail-panel { padding: 1.35rem; border-radius: 16px; }
  .service-detail-panel h2 { max-width: none; font-size: clamp(1.65rem, 8vw, 2.3rem); line-height: 1.05; }
  .service-detail-panel > p:not(.eyebrow) { font-size: .95rem; }
  .service-detail-benefits { gap: .45rem; }
  .service-detail-benefits span { font-size: .7rem; }
  .service-detail-list { gap: .55rem; font-size: .9rem; }
  .service-detail-cta { padding: 3.5rem 1rem; }
  .service-detail-cta h2 { font-size: clamp(1.9rem, 9vw, 3rem); }
}

/* ==========================================================================
   Ultra-Premium High-End Enterprise Footer System
   ========================================================================== */
.footer {
  position: relative !important;
  overflow: hidden !important;
  background: #06090e !important;
  color: #94a3b8 !important;
  border-top: 2px solid transparent !important;
  border-image: linear-gradient(90deg, transparent 0%, #014D9D 30%, #FFFFFF 50%, #014D9D 70%, transparent 100%) 1 !important;
  padding: 0 0 2.5rem !important;
  font-family: inherit !important;
  isolation: isolate !important;
}

.footer::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(circle at 15% 0%, rgba(1, 77, 157, 0.16) 0%, transparent 45%),
    radial-gradient(circle at 85% 100%, rgba(1, 77, 157, 0.1) 0%, transparent 40%),
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.015) 0%, transparent 70%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.footer-premium-container {
  position: relative !important;
  z-index: 2 !important;
  max-width: 1220px !important;
  margin: 0 auto !important;
  padding: 0 1.5rem !important;
}

/* 1. Pre-Footer High-Impact Action Banner */
.footer-preaction-banner {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 20px !important;
  padding: clamp(2rem, 3.5vw, 3rem) clamp(1.8rem, 3vw, 2.8rem) !important;
  margin: 3.5rem 0 3.8rem !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2.5rem !important;
}

.footer-preaction-copy {
  max-width: 620px !important;
}

.footer-preaction-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  background: rgba(1, 77, 157, 0.15) !important;
  border: 1px solid rgba(1, 77, 157, 0.35) !important;
  padding: 0.3rem 0.85rem !important;
  border-radius: 999px !important;
  color: #FFFFFF !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  margin-bottom: 0.85rem !important;
}

.footer-pulse-dot {
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  background: #4ade80 !important;
  box-shadow: 0 0 8px #4ade80 !important;
  display: inline-block !important;
}

.footer-preaction-copy h2 {
  font-size: clamp(1.6rem, 2.4vw, 2.15rem) !important;
  color: #ffffff !important;
  margin: 0 0 0.6rem !important;
  line-height: 1.22 !important;
  letter-spacing: -0.02em !important;
  font-family: var(--font-display, inherit) !important;
}

.footer-preaction-copy p {
  color: #cbd5e1 !important;
  font-size: 0.98rem !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

.footer-preaction-actions {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 1rem !important;
  flex-shrink: 0 !important;
}

.footer-btn-primary {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  background: linear-gradient(135deg, #014D9D 0%, #FFFFFF 100%) !important;
  color: #ffffff !important;
  padding: 0.85rem 1.75rem !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  text-decoration: none !important;
  box-shadow: 0 10px 28px rgba(1, 77, 157, 0.38) !important;
  transition: all 0.25s var(--ease) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.footer-btn-primary:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 34px rgba(1, 77, 157, 0.5) !important;
  background: linear-gradient(135deg, #FFFFFF 0%, #FFFFFF 100%) !important;
  color: #ffffff !important;
}

.footer-preaction-contacts {
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
  flex-wrap: wrap !important;
}

.footer-quick-contact {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  color: #cbd5e1 !important;
  font-size: 0.86rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.footer-quick-contact:hover {
  color: #ffffff !important;
}

.footer-quick-contact .quick-icon {
  font-size: 0.95rem !important;
}

/* 2. Main Multi-Column Directory Grid */
.footer-main-columns {
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.95fr) minmax(0, 1.15fr) minmax(0, 1.15fr) !important;
  gap: clamp(2rem, 3.5vw, 3.5rem) !important;
  padding-bottom: 3.5rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.footer-col-brand {
  padding-right: 1rem !important;
}

.footer-brand-link {
  display: inline-block !important;
  background: #ffffff !important;
  padding: 0.45rem 0.85rem !important;
  border-radius: 9px !important;
  margin-bottom: 1.2rem !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4) !important;
  transition: transform 0.2s ease !important;
}

.footer-brand-link:hover {
  transform: translateY(-2px) !important;
}

.footer-logo-img {
  display: block !important;
  width: auto !important;
  height: 40px !important;
  object-fit: contain !important;
}

.footer-brand-mission {
  color: #94a3b8 !important;
  font-size: 0.88rem !important;
  line-height: 1.65 !important;
  margin-bottom: 1.25rem !important;
}

.footer-office-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.55rem !important;
  margin-bottom: 1.4rem !important;
}

.office-line {
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  color: #cbd5e1 !important;
  font-size: 0.84rem !important;
}

.office-pin {
  font-size: 0.95rem !important;
  flex-shrink: 0 !important;
}

/* Social Strip with Frosted Glass Buttons */
.footer-social-strip {
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  margin-bottom: 1.4rem !important;
}

.footer-social-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #cbd5e1 !important;
  text-decoration: none !important;
  transition: all 0.25s var(--ease) !important;
}

.footer-social-btn:hover {
  background: #014D9D !important;
  border-color: #014D9D !important;
  color: #ffffff !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 18px rgba(1, 77, 157, 0.4) !important;
}

/* Trust Badges */
.footer-trust-badges {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.45rem !important;
}

.trust-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  color: #cbd5e1 !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  padding: 0.25rem 0.6rem !important;
  border-radius: 6px !important;
}

/* Column Headings and Links */
.footer-heading {
  color: #ffffff !important;
  font-size: 1.02rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 1.25rem !important;
  position: relative !important;
  display: inline-block !important;
  font-family: var(--font-display, inherit) !important;
}

.footer-heading::after {
  content: "" !important;
  position: absolute !important;
  bottom: -4px !important;
  left: 0 !important;
  width: 20px !important;
  height: 2px !important;
  background: #014D9D !important;
  border-radius: 2px !important;
}

.footer-links-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.58rem !important;
}

.footer-links-list li a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  color: #94a3b8 !important;
  font-size: 0.86rem !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.footer-links-list li a:hover {
  color: #ffffff !important;
  transform: translateX(4px) !important;
}

.footer-links-list li a::before {
  content: "›" !important;
  color: #014D9D !important;
  font-weight: 800 !important;
  font-size: 0.95rem !important;
  line-height: 1 !important;
  opacity: 0.7 !important;
  transition: opacity 0.2s ease, transform 0.2s ease !important;
}

.footer-links-list li a:hover::before {
  opacity: 1 !important;
  transform: translateX(2px) !important;
}

.footer-hiring-pill {
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  color: #4ade80 !important;
  background: rgba(74, 222, 128, 0.14) !important;
  border: 1px solid rgba(74, 222, 128, 0.3) !important;
  padding: 0.1rem 0.45rem !important;
  border-radius: 999px !important;
  margin-left: 0.35rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}

/* Newsletter Card */
.footer-newsletter-card {
  margin-top: 1.8rem !important;
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  border-radius: 14px !important;
  padding: 1.15rem !important;
}

.footer-newsletter-card h4 {
  color: #ffffff !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  margin: 0 0 0.35rem !important;
}

.footer-newsletter-card p {
  color: #94a3b8 !important;
  font-size: 0.78rem !important;
  line-height: 1.45 !important;
  margin: 0 0 0.8rem !important;
}

.footer-newsletter-form {
  display: flex !important;
  align-items: center !important;
  background: rgba(0, 0, 0, 0.4) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: border-color 0.2s ease !important;
}

.footer-newsletter-form:focus-within {
  border-color: #014D9D !important;
}

.footer-newsletter-form input {
  flex: 1 !important;
  background: transparent !important;
  border: none !important;
  padding: 0.55rem 0.75rem !important;
  color: #ffffff !important;
  font-size: 0.82rem !important;
  outline: none !important;
}

.footer-newsletter-form input::placeholder {
  color: #64748b !important;
}

.footer-newsletter-form button {
  background: #014D9D !important;
  color: #ffffff !important;
  border: none !important;
  padding: 0.55rem 0.85rem !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
}

.footer-newsletter-form button:hover {
  background: #FFFFFF !important;
}

.newsletter-safe {
  display: block !important;
  color: #64748b !important;
  font-size: 0.68rem !important;
  margin-top: 0.5rem !important;
}

/* 3. Bottom Legal & Operational Bar */
.footer-bottom-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding-top: 1.8rem !important;
  font-size: 0.8rem !important;
  color: #64748b !important;
  flex-wrap: wrap !important;
  gap: 1rem 1.8rem !important;
}

.footer-bottom-copy {
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  flex-wrap: wrap !important;
}

.footer-separator {
  color: #475569 !important;
}

.status-indicator-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  color: #4ade80 !important;
  background: rgba(74, 222, 128, 0.1) !important;
  border: 1px solid rgba(74, 222, 128, 0.25) !important;
  padding: 0.15rem 0.55rem !important;
  border-radius: 999px !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
}

.status-dot {
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: #4ade80 !important;
  box-shadow: 0 0 6px #4ade80 !important;
}

.footer-legal-links {
  display: flex !important;
  align-items: center !important;
  gap: 1.1rem !important;
  flex-wrap: wrap !important;
}

.footer-legal-links a {
  color: #94a3b8 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
  font-size: 0.8rem !important;
}

.footer-legal-links a:hover {
  color: #ffffff !important;
}

.footer-credit-text {
  color: #475569 !important;
  font-size: 0.76rem !important;
}

/* Responsive Footer Breakpoints */
@media (max-width: 1024px) {
  .footer-preaction-banner {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .footer-preaction-actions {
    align-items: flex-start !important;
    width: 100% !important;
  }
  .footer-main-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .footer-main-columns {
    grid-template-columns: 1fr !important;
  }
  .footer-preaction-contacts {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.6rem !important;
  }
  .footer-bottom-row {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
}

/* Dedicated legal pages: keep content below the fixed marquee and header. */
.legal-page main { padding-top: calc(76px + var(--company-marquee-height)); }
.legal-page .legal-hero { margin-top: 0; padding: clamp(4.5rem, 9vw, 7rem) 0; }
.legal-page .legal-hero h1 { max-width: 920px; }
.legal-page .legal-hero .lead { max-width: 720px; }
.legal-privacy .legal-hero { background: linear-gradient(135deg, #014D9D, #014D9D); }
.legal-terms .legal-hero { background: linear-gradient(135deg, #014D9D, #014D9D); }
.legal-disclaimer .legal-hero { background: linear-gradient(135deg, #123c39, #13806e); }
.legal-page .section { padding-top: clamp(3rem, 7vw, 6rem); }
@media (max-width: 720px) {
  .legal-page main { padding-top: calc(58px + var(--company-marquee-height)); }
  .legal-page .legal-hero { padding: 3.5rem 0 3rem; }
  .legal-page .legal-hero h1 { font-size: clamp(2.4rem, 12vw, 4rem); line-height: 1; }
  .legal-page .legal-hero .lead { font-size: .98rem; line-height: 1.55; }
}

/* Service detail pages: a richer, branded presentation shared by all five services. */
.service-detail-page {
  --service-accent: #014D9D;
  --service-accent-soft: rgba(1, 77, 157, .12);
  background: #f5f9ff;
}
.service-detail-page[data-service-detail="data-entry"] { --service-accent: #014D9D; --service-accent-soft: rgba(1, 77, 157, .13); }
.service-detail-page[data-service-detail="photogrammetry"] { --service-accent: #014D9D; --service-accent-soft: rgba(1, 77, 157, .12); }
.service-detail-page[data-service-detail="web-development"] { --service-accent: #014D9D; --service-accent-soft: rgba(1, 77, 157, .12); }
.service-detail-page[data-service-detail="app-development"] { --service-accent: #014D9D; --service-accent-soft: rgba(1, 77, 157, .13); }
.service-detail-page[data-service-detail="digital-marketing"] { --service-accent: #A7C5E3; --service-accent-soft: rgba(167, 197, 227, .13); }
.service-detail-page .service-detail-hero {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 88% 18%, var(--service-accent-soft), transparent 28%), linear-gradient(135deg, #fff 0%, #f5f9ff 100%);
}
.service-detail-page .service-detail-hero::after {
  content: '';
  position: absolute;
  width: 330px;
  height: 330px;
  right: -110px;
  bottom: -170px;
  border: 1px solid var(--service-accent-soft);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(255,255,255,.7), 0 0 0 68px var(--service-accent-soft);
  pointer-events: none;
}
.service-detail-page .service-detail-hero-grid { position: relative; z-index: 1; }
.service-detail-page .service-detail-hero .eyebrow,
.service-detail-page .service-detail-panel .eyebrow { color: var(--service-accent); }
.service-detail-page .service-detail-visual { border-color: var(--service-accent-soft); box-shadow: 0 25px 60px rgba(0, 0, 0,.12), 0 0 0 8px var(--service-accent-soft); }
.service-detail-page .service-detail-panel { border-top-color: var(--service-accent); transition: transform .2s ease, box-shadow .2s ease; }
.service-detail-page .service-detail-panel:hover { transform: translateY(-5px); box-shadow: 0 20px 42px rgba(0, 0, 0,.11); }
.service-detail-page .service-detail-benefits span { border-color: var(--service-accent-soft); background: var(--service-accent-soft); }
.service-detail-page .service-detail-list li::before { color: var(--service-accent); }
.service-detail-page .service-detail-cta { background: linear-gradient(135deg, #000000, color-mix(in srgb, var(--service-accent) 72%, #000000)); }


/* Mobile navigation expand controls for Services and Industries. */
.nav-expand-toggle { display: none; }
@media (max-width: 980px) {
  .services-nav-item,
  .industries-nav-item {
    width: 100%;
    position: relative;
  }
  .services-nav-item > a,
  .industries-nav-item > a {
    width: calc(100% - 48px) !important;
    justify-content: space-between !important;
  }
  .services-nav-item > a::after,
  .industries-nav-item > a::after {
    display: none !important;
  }
  .nav-expand-toggle {
    position: absolute;
    top: 50%;
    right: .35rem;
    z-index: 3;
    width: 38px;
    height: 38px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(1, 77, 157,.16);
    border-radius: 9px;
    color: #014D9D;
    background: #f4f8ff;
    font: 700 1.35rem/1 Arial, sans-serif;
    cursor: pointer;
    transform: translateY(-50%);
  }
  .nav-expand-toggle:hover,
  .nav-expand-toggle:focus-visible {
    color: #fff;
    background: #014D9D;
    outline: none;
  }
  .services-nav-item.is-open > .nav-expand-toggle,
  .industries-nav-item.is-open > .nav-expand-toggle {
    color: #fff;
    background: #014D9D;
  }
  .triset-service-studio .services-five-grid {
    grid-template-columns: 1fr !important;
  }
  .services-nav-item > a[aria-expanded="true"]::after,
  .industries-nav-item > a[aria-expanded="true"]::after {
    content: '−';
  }
}

@media (max-width: 980px) {
  body.nav-open { overflow: hidden; }
  .site-nav.open {
    left: .75rem !important;
    right: .75rem !important;
    width: calc(100vw - 1.5rem) !important;
    max-width: none !important;
    box-sizing: border-box !important;
    max-height: calc(100dvh - 84px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: .65rem !important;
  }
  .services-nav-item,
  .industries-nav-item {
    flex: 0 0 auto;
  }
  .services-nav-item .services-mega-menu,
  .industries-nav-item .industries-dropdown {
    position: static !important;
    left: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    transform: none !important;
  }
  .services-nav-item:focus-within .services-mega-menu,
  .industries-nav-item:focus-within .industries-dropdown {
    display: none;
  }
  .services-nav-item.is-open:focus-within .services-mega-menu,
  .industries-nav-item.is-open:focus-within .industries-dropdown {
    display: grid;
  }
  .services-mega-column,
  .services-mega-column a,
  .industries-dropdown a {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 980px) {
  .services-nav-item.is-open .services-mega-menu,
  .industries-nav-item.is-open .industries-dropdown {
    display: grid;
  }
  .services-mega-menu {
    grid-template-columns: 1fr;
    margin-top: .35rem;
    padding: .75rem;
    max-height: 55vh;
    overflow-y: auto;
  }
  .services-mega-column {
    padding: .2rem 0 .8rem;
    border-bottom: 1px solid rgba(1, 77, 157,.1);
  }
  .services-mega-column:last-child { border-bottom: 0; }
  .industries-dropdown {
    max-height: 55vh;
    overflow-y: auto;
  }
}

/* Premium two-row mobile company bar: details first, social links second. */
@media (max-width: 720px) {
  :root { --company-marquee-height: 72px; }
  .company-marquee {
    height: var(--company-marquee-height);
    padding: 7px 0;
    background:
      radial-gradient(circle at 12% 0%, rgba(1, 77, 157, .22), transparent 42%),
      linear-gradient(135deg, #014D9D, #014D9D 68%, #014D9D);
    border-bottom: 1px solid rgba(1, 77, 157, .32);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
  }
  .company-marquee__inner {
    width: calc(100% - 1rem);
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 1fr 1fr;
    gap: 5px;
  }
  .company-marquee__contact-group {
    width: 100%;
    grid-column: 1;
    align-self: stretch;
    position: relative;
    display: block;
    min-height: 18px;
    overflow: hidden;
    white-space: nowrap;
  }
  .company-marquee__contact-group .company-marquee__item:first-child { display: inline-flex; }
  .company-marquee__contact-group .company-marquee__item,
  .company-marquee__contact-group .company-marquee__item a {
    min-width: 0;
    font-size: clamp(7px, 2.6vw, 9px);
    line-height: 1.1;
    letter-spacing: .01em;
  }
  .company-marquee__contact-group .company-marquee__item:first-child { font-weight: 800; }
  .company-marquee__contact-group .company-marquee__item:first-child {
    position: absolute;
    top: 50%;
    left: 0;
    z-index: 1;
    transform: translateY(-50%);
    width: 48%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .company-marquee__contact-group .company-marquee__item:last-child {
    position: absolute;
    top: 50%;
    right: 0;
    z-index: 1;
    display: inline-flex;
    transform: translateY(-50%);
    width: 48%;
    max-width: 48%;
    overflow: hidden;
    text-align: right;
    align-items: center;
    justify-content: flex-end;
    gap: .25rem;
  }
  .company-marquee__contact-group .company-marquee__item:last-child .company-marquee__icon {
    flex: 0 0 auto;
  }
  .company-marquee__contact-group .company-marquee__item:last-child a {
    display: inline-block;
    width: auto;
    max-width: calc(100% - 16px);
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
  }
  .company-marquee__icon { font-size: 12px; }
  .company-marquee__divider { display: none; }
  .company-marquee__socials {
    width: 100%;
    grid-column: 1;
    align-self: stretch;
    justify-content: space-evenly;
    gap: 0;
    padding: 0 .35rem;
  }
  .company-marquee__social {
    position: relative;
    width: 26px;
    height: 26px;
    box-shadow: 0 5px 12px rgba(0,0,0,.26), inset 0 1px 1px rgba(255,255,255,.75);
    transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s ease;
  }
  .company-marquee__social:hover,
  .company-marquee__social:focus-visible {
    transform: translateY(-2px) scale(1.08);
    box-shadow: 0 8px 16px rgba(0,0,0,.3), inset 0 1px 1px rgba(255,255,255,.85);
  }
  .company-marquee__social svg { width: 15px; height: 15px; }
  .company-marquee__social--whatsapp svg { width: 14px; height: 14px; }
}

/* Premium motion layer: preserves the existing layout and content. */
:root {
  --premium-ease: cubic-bezier(.16, 1, .3, 1);
  --premium-glow: rgba(1, 77, 157, .34);
}

body {
  background-image:
    radial-gradient(circle at 12% 0%, rgba(1, 77, 157, .07), transparent 30%),
    radial-gradient(circle at 88% 12%, rgba(1, 77, 157, .045), transparent 26%);
}

.site-header {
  isolation: isolate;
  transition: background .5s var(--premium-ease), box-shadow .5s var(--premium-ease), transform .5s var(--premium-ease);
}
.site-header::after {
  display: none;
}
.site-header .brand img {
  transition: transform .55s var(--premium-ease), filter .55s var(--premium-ease);
}
.site-header .brand:hover img,
.site-header .brand:focus-visible img {
  transform: translateY(-2px) scale(1.035);
  filter: drop-shadow(0 9px 16px rgba(1, 77, 157, .18));
}

.reveal {
  transform: translate3d(0, 24px, 0) scale(.985);
  filter: blur(3px);
  transition: opacity .8s var(--premium-ease), transform .8s var(--premium-ease), filter .8s var(--premium-ease);
}
.reveal.is-visible {
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}
.section-header.reveal,
.process-showcase-copy.reveal,
.process-showcase-stage.reveal { transition-delay: .06s; }

.hero,
.services-hero,
.services-kinetic-hero {
  isolation: isolate;
}
.hero::before,
.services-hero::before,
.services-kinetic-hero::before {
  animation: premium-ambient-drift 14s ease-in-out infinite alternate;
  transform-origin: 50% 50%;
}
.hero .image-panel,
.hero .spatial-visual,
.service-detail-visual,
.service-stage,
.image-panel {
  transition: transform .9s var(--premium-ease), box-shadow .9s var(--premium-ease), filter .9s var(--premium-ease);
}
.hero .image-panel:hover,
.hero .spatial-visual:hover,
.service-detail-visual:hover,
.service-stage:hover,
.image-panel:hover {
  transform: translateY(-7px) scale(1.012);
  filter: saturate(1.06) contrast(1.02);
  box-shadow: 0 32px 70px rgba(0, 0, 0, .18);
}

.service-card-link,
.service-card,
.service-pill-panel,
.panel,
.metric,
.team-card,
.contact-card,
.cta-band {
  position: relative;
  transform: translateZ(0);
  transition: transform .6s var(--premium-ease), box-shadow .6s var(--premium-ease), border-color .6s ease, background .6s ease;
}
.service-card-link:hover,
.service-card-link:focus-visible,
.service-card:hover,
.panel:hover,
.metric:hover,
.team-card:hover,
.contact-card:hover,
.cta-band:hover {
  transform: translateY(-7px) scale(1.008);
  box-shadow: 0 26px 58px rgba(1, 77, 157, .14), 0 0 0 1px rgba(1, 77, 157, .12);
}
.service-pill-panel::after,
.panel::after,
.metric::after,
.contact-card::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(115deg, rgba(255,255,255,.2), transparent 28%, transparent 70%, rgba(1, 77, 157,.08));
  opacity: 0;
  transition: opacity .6s ease;
}
.service-pill-panel:hover::after,
.panel:hover::after,
.metric:hover::after,
.contact-card:hover::after { opacity: 1; }

.btn,
.btn-primary,
.nav-cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform .45s var(--premium-ease), box-shadow .45s var(--premium-ease), filter .45s ease;
}
.btn::after,
.nav-cta::after {
  content: '';
  position: absolute;
  top: -35%;
  bottom: -35%;
  left: -75%;
  z-index: -1;
  width: 42%;
  transform: skewX(-22deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent);
  transition: left .75s var(--premium-ease);
}
.btn:hover,
.btn:focus-visible,
.nav-cta:hover,
.nav-cta:focus-visible {
  transform: translateY(-3px);
  filter: saturate(1.08) brightness(1.04);
  box-shadow: 0 16px 34px var(--premium-glow);
}
.btn:hover::after,
.btn:focus-visible::after,
.nav-cta:hover::after,
.nav-cta:focus-visible::after { left: 135%; }

.services-mega-menu {
  transform: translate(-50%, -14px) perspective(900px) rotateX(-4deg) scale(.97);
  transform-origin: 50% 0;
  transition: opacity .32s var(--premium-ease), transform .55s var(--premium-ease), visibility .32s ease;
}
.services-nav-item:hover .services-mega-menu,
.services-nav-item:focus-within .services-mega-menu,
.services-nav-item > a[aria-expanded="true"] + .services-mega-menu {
  transform: translate(-50%, 0) perspective(900px) rotateX(0) scale(1);
}
.services-mega-service:nth-child(1) { transition-delay: .02s; }
.services-mega-service:nth-child(2) { transition-delay: .04s; }
.services-mega-service:nth-child(3) { transition-delay: .06s; }
.services-mega-service:nth-child(4) { transition-delay: .08s; }
.services-mega-service:nth-child(5) { transition-delay: .1s; }

@keyframes premium-line-flow { to { background-position: -220% 0; } }
@keyframes premium-ambient-drift {
  from { transform: translate3d(-1%, -1%, 0) scale(1); }
  to { transform: translate3d(1%, 1%, 0) scale(1.035); }
}

@media (max-width: 720px) {
  .hero .image-panel:hover,
  .hero .spatial-visual:hover,
  .service-detail-visual:hover,
  .service-stage:hover,
  .image-panel:hover { transform: none; }
  .service-card-link:hover,
  .service-card:hover,
  .panel:hover,
  .metric:hover,
  .team-card:hover,
  .contact-card:hover,
  .cta-band:hover { transform: translateY(-3px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .reveal { filter: none; transform: none; }
}

/* Internal pages use a solid header from the first frame; the homepage keeps
   its transparent hero header and changes to white after scrolling. */
body:not(.home-page) .site-header,
body:not(.home-page) .site-header.is-scrolled {
  --header-bg: rgba(255, 255, 255, .98) !important;
  --header-blur: 0px !important;
  --header-shadow: 0 2px 14px rgba(0, 0, 0, .08), 0 10px 28px rgba(0, 0, 0, .05) !important;
  background: #fff !important;
  box-shadow: var(--header-shadow) !important;
}
body:not(.home-page) .site-header .site-nav a:not(.nav-cta),
body:not(.home-page) .site-header .theme-toggle,
body:not(.home-page) .site-header .menu-toggle {
  color: #000000 !important;
}
body:not(.home-page) .site-header .site-nav a:not(.nav-cta):hover,
body:not(.home-page) .site-header .site-nav a:not(.nav-cta).active,
body:not(.home-page) .site-header .theme-toggle:hover {
  color: var(--brand-primary) !important;
  background: rgba(1, 77, 157, .07) !important;
}

/* Fixed headers are removed from normal flow, so reserve their exact height
   on every non-home page to keep the first section below the header. */
body:not(.home-page) > main#main-content {
  margin-top: calc(var(--company-marquee-height) + 16px);
}
@media (max-width: 720px) {
  body:not(.home-page) > main#main-content {
    margin-top: calc(var(--company-marquee-height) + 12px);
  }
}

/* Center only the three policy links; keep copyright and designer credit in place. */
.footer-bottom {
  position: relative;
  justify-content: space-between !important;
  text-align: initial !important;
}
.footer-bottom > span:last-child {
  position: absolute;
  inset: 0;
  display: flex !important;
  align-items: center;
  justify-content: center !important;
  gap: .9rem;
  pointer-events: none;
  text-align: center !important;
}
.footer-bottom > span:last-child > a { pointer-events: auto; }
.footer-bottom .footer-credit {
  position: absolute;
  right: 0;
  pointer-events: auto;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .footer-bottom > span:last-child {
    position: static;
    inset: auto;
    flex-wrap: wrap;
    gap: .55rem .9rem;
    margin-top: .55rem;
  }
  .footer-bottom .footer-credit {
    position: static;
    width: 100%;
  }
}

/* Premium mobile floating controls: compact red glass buttons with subtle motion. */
@media (max-width: 720px) {
  .floating-contact-actions {
    position: fixed;
    gap: .7rem;
    right: 14px;
    bottom: 20px;
    filter: drop-shadow(0 12px 20px rgba(1, 77, 157, .16));
  }
  .floating-contact-actions::before {
    content: '';
    position: absolute;
    inset: -13px -10px;
    z-index: -2;
    border: 1px solid rgba(1, 77, 157, .2);
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(252, 235, 236, .76), rgba(255,255,255,.38));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85), 0 16px 35px rgba(1, 77, 157, .12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  .floating-contact-action,
  .floating-contact-action--top {
    position: relative;
    width: 52px;
    height: 52px;
    margin: 0;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 50%;
    background: linear-gradient(145deg, #014D9D, #014D9D) !important;
    box-shadow: 0 8px 0 rgba(1, 77, 157, .35), 0 14px 24px rgba(1, 77, 157, .3), inset 0 2px 2px rgba(255,255,255,.42), inset 0 -4px 7px rgba(1, 77, 157, .24) !important;
    animation: floating-mobile-drift 4.8s ease-in-out infinite;
  }
  .floating-contact-action--call {
    color: #1877f2 !important;
    background: linear-gradient(145deg, #ffffff, #FCEDEE) !important;
    border-color: rgba(1, 77, 157, .28);
    box-shadow: 0 8px 0 rgba(1, 77, 157, .18), 0 14px 24px rgba(1, 77, 157, .2), inset 0 2px 2px rgba(255,255,255,.95), inset 0 -4px 7px rgba(1, 77, 157, .08) !important;
  }
  .floating-contact-action--call:hover,
  .floating-contact-action--call:focus-visible {
    color: #1877f2 !important;
    background: linear-gradient(145deg, #ffffff, #FCEDEE) !important;
    filter: brightness(1.04) saturate(1.08) drop-shadow(0 0 8px rgba(1, 77, 157,.34));
  }
  .floating-contact-action:nth-child(2) { animation-delay: .18s; }
  .floating-contact-action:nth-child(3) { animation-delay: .36s; }
  .floating-contact-action--top {
    width: 56px;
    height: 56px;
    margin-top: .15rem;
    background: linear-gradient(145deg, #014D9D, #014D9D) !important;
    box-shadow: 0 9px 0 rgba(1, 77, 157, .42), 0 16px 28px rgba(1, 77, 157, .35), inset 0 2px 2px rgba(255,255,255,.5), inset 0 -4px 7px rgba(1, 77, 157, .22) !important;
    animation: floating-top-pulse 2.8s ease-in-out infinite;
  }
  .floating-contact-action::after {
    content: '';
    position: absolute;
    inset: -5px;
    z-index: -1;
    border: 1px solid rgba(1, 77, 157, .3);
    border-radius: inherit;
    opacity: 0;
    transform: scale(.82);
    transition: opacity .25s ease, transform .25s ease;
  }
  .floating-contact-action:hover::after,
  .floating-contact-action:focus-visible::after,
  .floating-contact-action--top::after {
    opacity: 1;
    transform: scale(1);
  }
  .floating-contact-action:hover,
  .floating-contact-action:focus-visible {
    color: #fff !important;
    transform: translateY(-4px) scale(1.08);
    filter: brightness(1.1) saturate(1.12);
  }
  .floating-contact-action:active { transform: translateY(2px) scale(.96); }
  .floating-contact-action svg,
  .floating-contact-action--top svg { width: 22px; height: 22px; fill: currentColor; }
  .floating-contact-action svg { width: 25px; height: 25px; }
  .floating-contact-action--top svg { width: 27px; height: 27px; }
}
@keyframes floating-mobile-drift {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes floating-top-pulse {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.035); }
}

/* Keep every floating icon readable while it pops on hover/focus. */
.floating-contact-action--call:hover,
.floating-contact-action--call:focus-visible {
  color: #1877f2 !important;
  background: linear-gradient(145deg, #ffffff, #FCEDEE) !important;
}
.floating-contact-action--email:hover,
.floating-contact-action--email:focus-visible {
  color: #FF0000 !important;
  background: linear-gradient(145deg, #ffffff, #FFFFFF) !important;
}
.floating-contact-action--whatsapp:hover,
.floating-contact-action--whatsapp:focus-visible {
  color: #16b85a !important;
  background: linear-gradient(145deg, #ffffff, #eafff2) !important;
}
.floating-contact-action--top:hover,
.floating-contact-action--top:focus-visible {
  color: #ffffff !important;
}

/* Mobile controls use the lightweight icon-only treatment. */
@media (max-width: 720px) {
  .floating-contact-actions {
    right: 14px !important;
    bottom: 20px !important;
    gap: .3rem !important;
    align-items: center;
    filter: drop-shadow(0 8px 14px rgba(1, 77, 157, .16)) !important;
  }

  .floating-contact-actions::before,
  .floating-contact-action,
  .floating-contact-action--top {
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #014D9D !important;
    background: transparent !important;
    box-shadow: none !important;
    animation: none !important;
  }

  .floating-contact-actions::before {
    display: none !important;
  }

  .floating-contact-action--call {
    color: #1877f2 !important;
    background: transparent !important;
  }

  .floating-contact-action--email { color: #FF0000 !important; }
  .floating-contact-action--whatsapp { color: #16b85a !important; }

  .floating-contact-action--top {
    width: 48px !important;
    height: 48px !important;
    margin-top: .15rem !important;
    color: #014D9D !important;
  }

  .floating-contact-action svg {
    width: 29px !important;
    height: 29px !important;
    fill: currentColor !important;
  }

  .floating-contact-action--top svg {
    width: 31px !important;
    height: 31px !important;
  }

  .floating-contact-action:hover,
  .floating-contact-action:focus-visible,
  .floating-contact-action--call:hover,
  .floating-contact-action--call:focus-visible,
  .floating-contact-action--email:hover,
  .floating-contact-action--email:focus-visible,
  .floating-contact-action--whatsapp:hover,
  .floating-contact-action--whatsapp:focus-visible {
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
  }
}

/* Services page: make every custom light surface follow dark mode. */
:root[data-theme='dark'] body.triset-service-studio,
:root[data-theme='dark'] body.triset-service-studio #main-content {
  background: #050b12 !important;
  color: var(--theme-text) !important;
}
:root[data-theme='dark'] .triset-service-studio .services-kinetic-hero {
  background:
    linear-gradient(135deg, rgba(0, 0, 0, .94), rgba(0, 0, 0, .9)),
    url('https://images.unsplash.com/photo-1451187580459-43490279c0fa?q=80&w=2000&auto=format&fit=crop') center/cover !important;
  color: #f6f9fc !important;
}
:root[data-theme='dark'] .triset-service-studio .pill-pile-section,
:root[data-theme='dark'] .triset-service-studio .services-five-section {
  background:
    radial-gradient(circle at 10% 0%, rgba(1, 77, 157,.16), transparent 32%),
    linear-gradient(145deg, #000000, #000000 58%, #171522) !important;
  border-color: rgba(1, 77, 157, .16) !important;
  color: var(--theme-text) !important;
}
:root[data-theme='dark'] .triset-service-studio .pill-pile-head h2,
:root[data-theme='dark'] .triset-service-studio .services-five-heading h2,
:root[data-theme='dark'] .triset-service-studio .services-five-heading p,
:root[data-theme='dark'] .triset-service-studio .pill-pile-copy .pill-pile-lead {
  color: var(--theme-text) !important;
}
:root[data-theme='dark'] .triset-service-studio .pill-pile-copy {
  background: rgba(0, 0, 0, .82) !important;
  border-color: rgba(1, 77, 157, .18) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.06) !important;
}
:root[data-theme='dark'] .triset-service-studio .pill-pile-stage {
  background:
    radial-gradient(circle at 50% 48%, rgba(1, 77, 157, .2), transparent 46%),
    linear-gradient(rgba(1, 77, 157,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(1, 77, 157,.07) 1px, transparent 1px),
    #000000 !important;
  border-color: rgba(1, 77, 157, .2) !important;
  box-shadow: 0 20px 45px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
:root[data-theme='dark'] .triset-service-studio .services-five-card {
  background: linear-gradient(145deg, #000000, #000000) !important;
  border-color: rgba(1, 77, 157, .16) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.28) !important;
  color: var(--theme-text) !important;
}
:root[data-theme='dark'] .triset-service-studio .services-five-card h3,
:root[data-theme='dark'] .triset-service-studio .services-five-card p {
  color: var(--theme-text) !important;
}
:root[data-theme='dark'] .triset-service-studio .services-five-card p {
  color: var(--theme-muted) !important;
}
:root[data-theme='dark'] .triset-service-studio .service-subservice-section {
  background: linear-gradient(145deg, #000000, #000000 58%, #000000) !important;
}
:root[data-theme='dark'] .triset-service-studio .service-subservice-row {
  background: rgba(255,255,255,.055) !important;
  border-color: rgba(248, 232, 233,.16) !important;
}
:root[data-theme='dark'] .triset-service-studio .service-subservice-label {
  border-color: rgba(248, 232, 233,.16) !important;
}
:root[data-theme='dark'] .triset-service-studio .service-subservice-label strong {
  color: #f6f9fc !important;
}

/* Cinematic premium treatment for the About hero. */
.about-page .about-hero {
  isolation: isolate;
  background:
    radial-gradient(620px 360px at 78% 18%, rgba(1, 77, 157, .2), transparent 68%),
    radial-gradient(420px 260px at 8% 86%, rgba(1, 77, 157, .12), transparent 70%),
    linear-gradient(145deg, #014D9D 0%, #014D9D 54%, #014D9D 100%);
}
.about-page .about-hero::before,
.about-page .about-hero::after {
  content: '';
  position: absolute;
  pointer-events: none;
  z-index: 0;
}
.about-page .about-hero::before {
  width: 34rem;
  height: 34rem;
  right: -11rem;
  top: 8%;
  border: 1px solid rgba(121, 181, 242, .13);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(1, 77, 157, .035), 0 0 0 70px rgba(1, 77, 157, .022);
  animation: about-orbit 15s linear infinite;
}
.about-page .about-hero::after {
  inset: 0;
  background: linear-gradient(115deg, transparent 22%, rgba(255,255,255,.05) 48%, transparent 63%);
  background-size: 220% 100%;
  animation: about-sheen 10s ease-in-out infinite;
}
.about-page .about-hero-grid-bg {
  opacity: .72;
  animation: about-grid-drift 18s linear infinite;
}
.about-page .about-hero-copy,
.about-page .ah-trust-strip {
  position: relative;
  z-index: 2;
}
.about-page .ah-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  padding: .4rem .72rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 12px 28px rgba(0,0,0,.12);
}
.about-page .ah-heading {
  max-width: 760px;
  text-wrap: balance;
  text-shadow: 0 18px 50px rgba(0,0,0,.32);
}
.about-page .ah-lead {
  padding-left: .95rem;
  border-left: 2px solid rgba(1, 77, 157, .7);
  text-shadow: 0 8px 24px rgba(0,0,0,.2);
}
.about-page .ah-company-facts span {
  background: linear-gradient(135deg, rgba(255,255,255,.1), rgba(1, 77, 157,.08));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 8px 20px rgba(0,0,0,.12);
}
@keyframes about-orbit {
  from { transform: rotate(0deg) translateX(10px); }
  to { transform: rotate(360deg) translateX(10px); }
}
@keyframes about-sheen {
  0%, 72% { background-position: 160% 0; opacity: 0; }
  82% { opacity: .55; }
  100% { background-position: -40% 0; opacity: 0; }
}
@keyframes about-grid-drift {
  from { background-position: 0 0; }
  to { background-position: 64px 64px; }
}
@media (prefers-reduced-motion: reduce) {
  .about-page .about-hero::before,
  .about-page .about-hero::after,
  .about-page .about-hero-grid-bg { animation: none; }
}

/* Premium motion and art direction for the five individual service pages. */
.service-detail-page {
  background:
    radial-gradient(circle at 92% 6%, var(--service-accent-soft), transparent 24%),
    #f5f9ff;
}
.service-detail-page .service-detail-hero {
  min-height: clamp(500px, 68vh, 760px);
  padding-top: clamp(7rem, 12vw, 10rem);
  padding-bottom: clamp(4rem, 8vw, 7rem);
  background:
    radial-gradient(circle at 82% 18%, var(--service-accent-soft), transparent 30%),
    linear-gradient(135deg, #ffffff 0%, #FDF3F4 100%);
}
.service-detail-page .service-detail-hero h1 {
  max-width: 11ch;
  text-wrap: balance;
  animation: service-detail-rise .85s var(--ease) both;
}
.service-detail-page .service-detail-hero .eyebrow {
  animation: service-detail-rise .65s var(--ease) .05s both;
}
.service-detail-page .service-detail-hero .lead {
  animation: service-detail-rise .75s var(--ease) .16s both;
}
.service-detail-page .service-detail-hero .btn {
  animation: service-detail-rise .75s var(--ease) .25s both;
}
.service-detail-page .service-detail-visual {
  position: relative;
  overflow: hidden;
  animation: service-detail-visual-in 1s var(--ease) .14s both;
  background: linear-gradient(145deg, rgba(255,255,255,.96), var(--service-accent-soft));
}
.service-detail-page .service-detail-visual::before {
  content: '';
  position: absolute;
  inset: 12px;
  z-index: 1;
  border: 1px solid color-mix(in srgb, var(--service-accent) 30%, transparent);
  border-radius: 14px;
  pointer-events: none;
}
.service-detail-page .service-detail-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 28%, rgba(255,255,255,.56) 50%, transparent 72%);
  background-size: 220% 100%;
  animation: service-detail-sheen 8s ease-in-out 1.1s infinite;
  pointer-events: none;
}
.service-detail-page .service-detail-visual img {
  position: relative;
  z-index: 0;
  transition: transform .7s var(--ease), filter .7s var(--ease);
}
.service-detail-page .service-detail-visual:hover img {
  transform: scale(1.06) rotate(1deg);
  filter: saturate(1.08) drop-shadow(0 18px 24px rgba(0, 0, 0,.16));
}
.service-detail-page .service-detail-body {
  position: relative;
  background: #f8fbff;
}
.service-detail-page .service-detail-panel {
  animation: service-detail-rise .8s var(--ease) both;
}
.service-detail-page .service-detail-panel:nth-child(2) { animation-delay: .12s; }
.service-detail-page .service-detail-panel h2 { text-wrap: balance; }
.service-detail-page .service-detail-list li {
  transition: transform .25s var(--ease), color .25s var(--ease);
}
.service-detail-page .service-detail-list li:hover {
  color: var(--service-accent);
  transform: translateX(5px);
}
.service-detail-page .service-detail-cta {
  position: relative;
  overflow: hidden;
}
.service-detail-page .service-detail-cta::before {
  content: '';
  position: absolute;
  width: 26rem;
  height: 26rem;
  right: -10rem;
  top: -12rem;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 50%;
  box-shadow: 0 0 0 32px rgba(255,255,255,.04), 0 0 0 68px rgba(255,255,255,.025);
  animation: service-detail-orbit 18s linear infinite;
  pointer-events: none;
}
@keyframes service-detail-rise {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes service-detail-visual-in {
  from { opacity: 0; clip-path: inset(0 0 100% 0 round 22px); transform: translateY(24px) scale(.98); }
  to { opacity: 1; clip-path: inset(0 0 0 0 round 22px); transform: translateY(0) scale(1); }
}
@keyframes service-detail-sheen {
  0%, 70% { background-position: 160% 0; opacity: 0; }
  82% { opacity: .7; }
  100% { background-position: -40% 0; opacity: 0; }
}
@keyframes service-detail-orbit { to { transform: rotate(360deg); } }

/* Individual service pages stay fully themed when dark mode is selected. */
:root[data-theme='dark'] .service-detail-page,
:root[data-theme='dark'] .service-detail-page .service-detail-body {
  background: #050b12 !important;
  color: var(--theme-text) !important;
}
:root[data-theme='dark'] .service-detail-page .service-detail-hero {
  background: radial-gradient(circle at 82% 18%, var(--service-accent-soft), transparent 30%), linear-gradient(145deg, #050b12, #000000) !important;
}
:root[data-theme='dark'] .service-detail-page .service-detail-hero h1,
:root[data-theme='dark'] .service-detail-page .service-detail-panel h2 {
  color: #f6f9fc !important;
}
:root[data-theme='dark'] .service-detail-page .service-detail-hero .lead,
:root[data-theme='dark'] .service-detail-page .service-detail-panel > p:not(.eyebrow),
:root[data-theme='dark'] .service-detail-page .service-detail-list {
  color: #a9b8c8 !important;
}
:root[data-theme='dark'] .service-detail-page .service-detail-visual,
:root[data-theme='dark'] .service-detail-page .service-detail-panel {
  background: #000000 !important;
  border-color: var(--theme-border) !important;
  box-shadow: 0 20px 55px rgba(0,0,0,.3) !important;
}
@media (prefers-reduced-motion: reduce) {
  .service-detail-page .service-detail-hero h1,
  .service-detail-page .service-detail-hero .eyebrow,
  .service-detail-page .service-detail-hero .lead,
  .service-detail-page .service-detail-hero .btn,
  .service-detail-page .service-detail-visual,
  .service-detail-page .service-detail-panel,
  .service-detail-page .service-detail-visual::after,
  .service-detail-page .service-detail-cta::before { animation: none !important; }
}

/* One additional art-directed image per detail page, sourced from Unsplash. */
.service-detail-page .service-detail-body::before {
  content: '';
  display: block;
  width: min(100% - 2rem, 1180px);
  height: clamp(135px, 18vw, 220px);
  margin: 0 auto clamp(2rem, 4vw, 3.5rem);
  border: 1px solid color-mix(in srgb, var(--service-accent) 26%, transparent);
  border-radius: 20px;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  box-shadow: 0 22px 55px rgba(0, 0, 0,.14), inset 0 0 0 1px rgba(255,255,255,.2);
  filter: saturate(.92);
  animation: service-detail-rise .9s var(--ease) .08s both;
}
.service-detail-page .service-detail-body::after {
  content: '';
  position: absolute;
  left: 50%;
  width: min(100% - 2rem, 1180px);
  height: clamp(135px, 18vw, 220px);
  margin-top: calc(clamp(-3.5rem, -4vw, -2rem) - clamp(135px, 18vw, 220px));
  transform: translateX(-50%);
  border-radius: 20px;
  background: linear-gradient(90deg, rgba(0, 0, 0,.54), transparent 48%, rgba(0, 0, 0,.12));
  pointer-events: none;
}
.service-detail-page[data-service-detail="web-development"] .service-detail-body::before {
  background-image: linear-gradient(100deg, rgba(0, 0, 0,.3), rgba(0, 0, 0,.04)), url('https://images.unsplash.com/photo-1498050108023-c5249f4df085?auto=format&fit=crop&w=1600&q=85');
}
.service-detail-page[data-service-detail="app-development"] .service-detail-body::before {
  background-image: linear-gradient(100deg, rgba(0, 0, 0,.26), rgba(0, 0, 0,.04)), url('https://images.unsplash.com/photo-1512941937669-90a1b58e7e9c?auto=format&fit=crop&w=1600&q=85');
}
.service-detail-page[data-service-detail="digital-marketing"] .service-detail-body::before {
  background-image: linear-gradient(100deg, rgba(0, 0, 0,.3), rgba(0, 0, 0,.04)), url('https://images.unsplash.com/photo-1557838923-2985c318be48?auto=format&fit=crop&w=1600&q=85');
}
.service-detail-page[data-service-detail="data-entry"] .service-detail-body::before {
  background-image: linear-gradient(100deg, rgba(0, 0, 0,.3), rgba(0, 0, 0,.04)), url('https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=1600&q=85');
}
.service-detail-page[data-service-detail="photogrammetry"] .service-detail-body::before {
  background-image: linear-gradient(100deg, rgba(0, 0, 0,.2), rgba(0, 0, 0,.02)), url('https://images.unsplash.com/photo-1473968512647-3e447244af8b?auto=format&fit=crop&w=1600&q=85');
}
@media (max-width: 720px) {
  .service-detail-page .service-detail-body::before,
  .service-detail-page .service-detail-body::after { border-radius: 14px; }
}

/* Premium industry directory and individual industry pages. */
.industry-directory-section {
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg, #000000, #000000);
  color: #f6f9fc;
}
.industry-directory-section .section-header { position: relative; z-index: 1; }
.industry-directory-section .section-header h2 { color: #fff; }
.industry-directory-section .section-header .lead { color: rgba(110, 180, 250,.72); }
.industry-directory-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(125, 185, 246,.2);
  border-left: 1px solid rgba(125, 185, 246,.2);
}
.industry-directory-grid a {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.2rem;
  border-right: 1px solid rgba(125, 185, 246,.2);
  border-bottom: 1px solid rgba(125, 185, 246,.2);
  color: #66B1FB;
  font-family: var(--font-display);
  font-weight: 700;
  text-decoration: none;
  transition: color .3s var(--ease), background .3s var(--ease), padding .3s var(--ease);
}
.industry-directory-grid a span { color: #014D9D; transition: transform .3s var(--ease); }
.industry-directory-grid a:hover,
.industry-directory-grid a:focus-visible { color: #fff; background: rgba(1, 77, 157,.15); padding-left: 1.5rem; }
.industry-directory-grid a:hover span,
.industry-directory-grid a:focus-visible span { transform: translate(3px, -3px); }
.industry-detail-page {
  --industry-accent: #014D9D;
  background: #f5f9ff;
}
.industry-detail-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(7rem, 13vw, 10rem) 0 clamp(4rem, 8vw, 7rem);
  background: radial-gradient(circle at 85% 15%, rgba(1, 77, 157,.18), transparent 30%), linear-gradient(145deg, #014D9D, #014D9D);
  color: #fff;
}
.industry-detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .82fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.industry-backlink { display: inline-flex; margin-bottom: 1.2rem; color: #7DB8F3; font-size: .85rem; font-weight: 700; text-decoration: none; }
.industry-detail-hero .eyebrow { color: #014D9D; }
.industry-detail-hero h1 { max-width: 11ch; margin: .55rem 0 1rem; color: #fff; font-family: var(--font-display); font-size: clamp(2.8rem, 6vw, 5.8rem); line-height: .98; letter-spacing: -.065em; }
.industry-detail-hero .lead { max-width: 600px; color: rgba(251, 234, 235,.8); font-size: clamp(1rem, 1.4vw, 1.18rem); line-height: 1.6; }
.industry-detail-visual { min-height: 330px; overflow: hidden; border: 1px solid rgba(119, 182, 245,.3); border-radius: 22px; box-shadow: 0 30px 80px rgba(0,0,0,.35); animation: service-detail-visual-in 1s var(--ease) .15s both; }
.industry-detail-visual img { width: 100%; height: 100%; min-height: 330px; display: block; object-fit: cover; transition: transform .8s var(--ease); }
.industry-detail-visual:hover img { transform: scale(1.06); }
.industry-detail-content { background: #f8fbff; }
.industry-detail-copy { max-width: 720px; margin-bottom: 2rem; }
.industry-detail-copy h2 { margin: .4rem 0 .8rem; font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1; letter-spacing: -.05em; }
.industry-detail-copy > p:not(.eyebrow) { color: var(--muted); font-size: 1.05rem; line-height: 1.7; }
.industry-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.industry-detail-card { padding: 1.5rem; border: 1px solid rgba(1, 77, 157,.14); border-top: 3px solid var(--industry-accent); border-radius: 14px; background: #fff; box-shadow: 0 16px 38px rgba(0, 0, 0,.06); animation: service-detail-rise .7s var(--ease) both; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.industry-detail-card:nth-child(2) { animation-delay: .08s; }.industry-detail-card:nth-child(3) { animation-delay: .16s; }.industry-detail-card:nth-child(4) { animation-delay: .24s; }
.industry-detail-card:hover { transform: translateY(-6px); box-shadow: 0 25px 55px rgba(1, 77, 157,.14); }
.industry-detail-card span { color: var(--industry-accent); font: 700 .7rem var(--font-mono); letter-spacing: .12em; }
.industry-detail-card h3 { margin: .55rem 0 .4rem; font-family: var(--font-display); font-size: 1.15rem; }
.industry-detail-card p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.55; }
.industry-detail-cta { position: relative; overflow: hidden; padding: clamp(4rem, 8vw, 7rem) 0; color: #fff; background: linear-gradient(135deg, #014D9D, #014D9D); }
.industry-detail-cta h2 { max-width: 720px; margin: .4rem 0 .7rem; color: #fff; font-family: var(--font-display); font-size: clamp(2rem, 4.5vw, 4rem); line-height: 1; letter-spacing: -.06em; }
.industry-detail-cta p:not(.eyebrow) { color: #73B6F9; }
@media (max-width: 760px) {
  .industry-directory-grid { grid-template-columns: 1fr; }
  .industry-detail-hero-grid { grid-template-columns: 1fr; }
  .industry-detail-visual, .industry-detail-visual img { min-height: 240px; }
  .industry-detail-grid { grid-template-columns: 1fr; }
}
:root[data-theme='dark'] .industry-detail-page,
:root[data-theme='dark'] .industry-detail-content { background: #050b12 !important; color: var(--theme-text) !important; }
:root[data-theme='dark'] .industry-detail-card { background: #000000; border-color: var(--theme-border); color: var(--theme-text); box-shadow: 0 18px 48px rgba(0,0,0,.3); }
:root[data-theme='dark'] .industry-detail-card p { color: var(--theme-muted); }

/* Industries overview: stronger editorial hero with spatial depth. */
.industries-page .hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(560px, 72vh, 780px);
  padding-top: clamp(8rem, 13vw, 11rem);
  padding-bottom: clamp(4rem, 8vw, 6rem);
  background:
    radial-gradient(720px 420px at 86% 18%, rgba(1, 77, 157,.26), transparent 65%),
    radial-gradient(460px 300px at 8% 90%, rgba(1, 77, 157,.12), transparent 70%),
    linear-gradient(145deg, #014D9D 0%, #014D9D 58%, #014D9D 100%);
}
.industries-page .hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .48;
  background-image: linear-gradient(rgba(118, 181, 244,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(118, 181, 244,.07) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: linear-gradient(90deg, #000 0%, transparent 88%);
  animation: industry-grid-flow 18s linear infinite;
}
.industries-page .hero::after {
  content: 'TRISET / INDUSTRY INTELLIGENCE';
  position: absolute;
  right: clamp(1rem, 5vw, 5rem);
  bottom: 1.5rem;
  color: rgba(125, 187, 249,.46);
  font: 700 .64rem var(--font-mono);
  letter-spacing: .18em;
  pointer-events: none;
}
.industries-page .hero-grid { position: relative; z-index: 1; }
.industries-page .hero-copy { max-width: 700px; }
.industries-page .hero-copy .eyebrow { color: #014D9D; }
.industries-page .hero-copy h1 {
  max-width: 9ch;
  color: #fff;
  font-size: clamp(3.3rem, 7vw, 7rem);
  line-height: .91;
  letter-spacing: -.075em;
  text-wrap: balance;
  text-shadow: 0 18px 55px rgba(0,0,0,.3);
}
.industries-page .hero-copy .lead { max-width: 560px; color: rgba(108, 179, 251,.78); font-size: clamp(1rem, 1.5vw, 1.2rem); }
.industries-page .image-panel {
  position: relative;
  min-height: clamp(330px, 38vw, 500px);
  overflow: hidden;
  border: 1px solid rgba(119, 182, 245,.26);
  border-radius: 24px;
  box-shadow: 0 32px 90px rgba(0,0,0,.4), 0 0 0 10px rgba(1, 77, 157,.05);
  transform: perspective(1200px) rotateY(-7deg) rotateX(2deg);
  animation: industry-hero-in 1s var(--ease) .18s both;
}
.industries-page .image-panel::before {
  content: '';
  position: absolute;
  inset: 14px;
  z-index: 1;
  border: 1px solid rgba(125, 187, 249,.25);
  border-radius: 16px;
  pointer-events: none;
}
.industries-page .image-panel::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.18) 48%, transparent 72%), linear-gradient(0deg, rgba(0, 0, 0,.65), transparent 58%);
  background-size: 220% 100%, 100% 100%;
  animation: industry-image-sheen 9s ease-in-out infinite;
  pointer-events: none;
}
.industries-page .image-panel img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; filter: saturate(1.12) contrast(1.06); transition: transform .8s var(--ease); }
.industries-page .image-panel:hover img { transform: scale(1.07); }
.industries-page .orbit-section { background: #f6faff; }
@keyframes industry-grid-flow { to { background-position: 58px 58px; } }
@keyframes industry-hero-in { from { opacity: 0; transform: perspective(1200px) rotateY(-12deg) translateY(28px); } to { opacity: 1; transform: perspective(1200px) rotateY(-7deg) rotateX(2deg); } }
@keyframes industry-image-sheen { 0%, 72% { background-position: 160% 0, 0 0; opacity: .25; } 84% { opacity: .85; } 100% { background-position: -40% 0, 0 0; opacity: .25; } }
@media (max-width: 760px) {
  .industries-page .hero { min-height: auto; padding-top: 7.5rem; }
  .industries-page .hero-copy h1 { max-width: 10ch; font-size: clamp(2.8rem, 14vw, 4.5rem); }
  .industries-page .image-panel { min-height: 280px; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .industries-page .hero::before,
  .industries-page .image-panel,
  .industries-page .image-panel::after { animation: none; }
}

/* About CTA: one-line headline and centered action row. */
.about-page .ax-cta-inner {
  max-width: min(1180px, calc(100% - 2rem));
  text-align: center;
}
.about-page .ax-cta-heading {
  white-space: nowrap;
  font-size: clamp(1.8rem, 4vw, 3.65rem);
  letter-spacing: -.055em;
}
.about-page .ax-cta-lead {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.about-page .ax-cta .hero-actions {
  justify-content: center;
  align-items: center;
  gap: .8rem;
}
@media (max-width: 760px) {
  .about-page .ax-cta-heading {
    white-space: normal;
    font-size: clamp(1.75rem, 8vw, 2.65rem);
  }
  .about-page .ax-cta .hero-actions { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .industry-detail-visual, .industry-detail-card { animation: none; }
}

/* Consistent premium type hierarchy across every page. */
body,
button,
input,
textarea,
select {
  font-family: var(--font-body);
}

h1, h2, h3, h4, h5, h6,
.btn,
.site-nav a,
.eyebrow,
.brand,
.footer h2,
.footer h3 {
  font-family: var(--font-display);
}

body {
  font-feature-settings: "liga" 1, "kern" 1;
  text-rendering: optimizeLegibility;
}

/* Final responsive safety layer: keep every page inside the viewport. */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
}

@media (max-width: 767px) {
  .container,
  .site-header .container,
  .footer .container {
    width: min(100% - 1.25rem, 1220px);
  }

  .container > *,
  [class*='grid'] > *,
  [class*='layout'] > *,
  .panel,
  .card,
  article,
  section {
    min-width: 0;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  li,
  a,
  button,
  label,
  strong,
  span {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  h1,
  h2,
  h3 {
    text-wrap: balance;
  }

  .btn,
  button,
  input,
  select,
  textarea {
    max-width: 100%;
  }

  .btn {
    white-space: normal;
    text-align: center;
  }

  .site-nav,
  .site-nav ul,
  .header-actions,
  .hero-actions,
  .final-cta-actions {
    max-width: 100%;
  }

  .careers-page .jobs-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
  }

  .careers-page .job-card {
    padding: .9rem .75rem;
    border-radius: 15px;
  }

  .careers-page .job-card__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .careers-page .job-card__meta strong {
    font-size: clamp(.95rem, 4vw, 1.25rem);
  }

  .careers-page .job-card p {
    font-size: .78rem;
    line-height: 1.5;
  }

  .careers-page .job-card__facts {
    font-size: .68rem;
  }

  .careers-page .job-card__actions .btn {
    width: 100%;
    padding: .62rem .7rem;
    font-size: .78rem;
  }

  .job-modal__panel,
  .application-form,
  .application-copy,
  .service-detail-panel,
  .industry-detail-card {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .job-modal__panel {
    width: calc(100% - 1.25rem);
    max-height: calc(100dvh - 1.25rem);
    overflow-y: auto;
  }

  .table-wrap,
  .table-responsive,
  pre,
  code {
    max-width: 100%;
    overflow-x: auto;
  }

  .footer-grid,
  .field-grid,
  .application-shell,
  .service-detail-layout,
  .industry-detail-hero-grid {
    min-width: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }
}

/* Final hero polish for individual service and industry pages. */
.service-detail-page .service-detail-hero,
.industry-detail-page .industry-detail-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: clamp(6rem, 9vw, 8rem);
  padding-bottom: clamp(3rem, 5vw, 4.5rem);
}

.service-detail-page .service-detail-hero::before,
.industry-detail-page .industry-detail-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 84% 18%, rgba(255,255,255,.18), transparent 28%),
    radial-gradient(circle at 12% 88%, rgba(0,0,0,.28), transparent 36%),
    linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size: auto, auto, 44px 44px, 44px 44px;
  mask-image: linear-gradient(135deg, rgba(0,0,0,.95), transparent 78%);
}

.service-detail-page .service-detail-hero-grid,
.industry-detail-page .industry-detail-hero-grid {
  position: relative;
  z-index: 1;
  gap: clamp(2rem, 4.5vw, 4.25rem);
}

.service-detail-page .service-detail-hero h1,
.industry-detail-page .industry-detail-hero h1 {
  text-wrap: balance;
  line-height: 1.02;
  letter-spacing: -.055em;
}

.service-detail-page .service-detail-visual,
.industry-detail-page .industry-detail-visual {
  position: relative;
  border-color: rgba(255,255,255,.28);
  box-shadow: 0 28px 70px rgba(0,0,0,.24), 0 0 0 8px rgba(255,255,255,.06);
  transform: translateZ(0);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}

.service-detail-page .service-detail-visual::after,
.industry-detail-page .industry-detail-visual::after {
  content: '';
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 14px;
  pointer-events: none;
}

.service-detail-page .service-detail-visual:hover,
.industry-detail-page .industry-detail-visual:hover {
  transform: translateY(-5px);
  box-shadow: 0 34px 82px rgba(0,0,0,.3), 0 0 0 8px rgba(255,255,255,.1);
}

.industry-detail-page .industry-detail-hero {
  background:
    radial-gradient(circle at 86% 16%, rgba(255,255,255,.16), transparent 30%),
    linear-gradient(145deg, #FFFFFF 0%, #FFFFFF 52%, #FFFFFF 100%);
}

.industry-detail-page .industry-detail-hero .eyebrow,
.industry-detail-page .industry-detail-hero .industry-backlink {
  color: #FFFFFF !important;
}

.industry-detail-page .industry-detail-hero .btn-primary,
.service-detail-page .service-detail-hero .btn-primary {
  box-shadow: 0 12px 28px rgba(0,0,0,.2);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}

.industry-detail-page .industry-detail-hero .btn-primary:hover,
.service-detail-page .service-detail-hero .btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 35px rgba(0,0,0,.3);
}

@media (max-width: 760px) {
  .service-detail-page .service-detail-hero,
  .industry-detail-page .industry-detail-hero {
    padding-top: 5rem;
    padding-bottom: 2.75rem;
  }

  .service-detail-page .service-detail-hero-grid,
  .industry-detail-page .industry-detail-hero-grid {
    gap: 1.5rem;
  }

  .service-detail-page .service-detail-hero h1,
  .industry-detail-page .industry-detail-hero h1 {
    line-height: 1.06;
  }

  .service-detail-page .service-detail-visual::after,
  .industry-detail-page .industry-detail-visual::after {
    inset: 8px;
    border-radius: 10px;
  }
}

:root[data-theme='dark'] .site-header .site-nav .services-mega-menu .services-mega-service,
:root[data-theme='dark'] .site-header .site-nav .services-mega-menu .services-mega-service span,
:root[data-theme='dark'] .site-header .site-nav .services-mega-menu .services-mega-panel-column h3,
:root[data-theme='dark'] .site-header .site-nav .services-mega-menu .services-mega-panel-column a {
  color: #f6f9fc !important;
}

:root[data-theme='dark'] .site-header .site-nav .services-mega-menu .services-mega-panel-column h3 {
  border-bottom-color: rgba(246, 249, 252, .48);
}

:root[data-theme='dark'] .site-header .site-nav .services-mega-menu .services-mega-panel-column a:hover,
:root[data-theme='dark'] .site-header .site-nav .services-mega-menu .services-mega-panel-column a:focus-visible {
  color: #ffffff !important;
  background: rgba(255, 255, 255, .12) !important;
}

:root[data-theme='dark'] .site-header .site-nav .industries-dropdown a {
  color: #f6f9fc !important;
}

:root[data-theme='dark'] .site-header .site-nav .industries-dropdown a:hover,
:root[data-theme='dark'] .site-header .site-nav .industries-dropdown a:focus-visible {
  color: #ffffff !important;
  background: rgba(255, 255, 255, .1) !important;
}

@media (max-width: 980px) {
  .site-header .menu-toggle-icon span {
    transition: transform .2s ease, opacity .2s ease;
  }

  .site-header .menu-toggle[aria-expanded="true"] .menu-toggle-icon span:first-child {
    transform: translateY(6px) rotate(45deg);
  }

  .site-header .menu-toggle[aria-expanded="true"] .menu-toggle-icon span:nth-child(2) {
    opacity: 0;
  }

  .site-header .menu-toggle[aria-expanded="true"] .menu-toggle-icon span:last-child {
    transform: translateY(-6px) rotate(-45deg);
  }

  .site-nav.open {
    top: calc(var(--company-marquee-height) + 68px) !important;
    left: .65rem !important;
    right: .65rem !important;
    width: auto !important;
    max-height: calc(100dvh - 142px) !important;
    padding: .55rem !important;
    gap: .15rem !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border: 1px solid var(--line) !important;
    border-top: 4px solid var(--brand-primary) !important;
    border-radius: 10px !important;
    background: var(--surface) !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .2) !important;
    transform: none !important;
  }

  .site-nav.open > a:not(.nav-cta),
  .site-nav.open .services-nav-item > a,
  .site-nav.open .industries-nav-item > a {
    min-height: 42px !important;
    padding: .65rem .8rem !important;
    border: 0 !important;
    border-radius: 6px !important;
    color: var(--ink) !important;
    font-size: .85rem !important;
    font-weight: 700 !important;
  }

  .site-nav.open > a:not(.nav-cta):hover,
  .site-nav.open > a.active:not(.nav-cta),
  .site-nav.open .services-nav-item > a:hover,
  .site-nav.open .industries-nav-item > a:hover {
    color: var(--brand-primary) !important;
    background: var(--surface-2) !important;
  }

  .site-nav.open .services-nav-item,
  .site-nav.open .industries-nav-item {
    border-bottom: 1px solid var(--line);
  }

  .site-nav.open .services-nav-item > a,
  .site-nav.open .industries-nav-item > a {
    width: calc(100% - 44px) !important;
  }

  .site-nav.open .nav-expand-toggle {
    right: .25rem;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 8px;
    color: var(--muted);
    background: transparent;
    font-size: 1.05rem;
    transform: translateY(-50%);
  }

  .site-nav.open .services-nav-item > .nav-expand-toggle,
  .site-nav.open .industries-nav-item > .nav-expand-toggle {
    top: 21px;
  }

  .site-nav.open .services-nav-item.is-open > .nav-expand-toggle,
  .site-nav.open .industries-nav-item.is-open > .nav-expand-toggle {
    color: var(--brand-primary);
    background: var(--surface-2);
  }

  .site-nav.open .services-mega-menu {
    position: static !important;
    display: none;
    width: 100% !important;
    min-height: 0;
    max-height: none;
    margin: .15rem 0 .65rem;
    padding: .25rem;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    border: 1px solid var(--line);
    border-top: 3px solid var(--brand-primary);
    border-radius: 8px;
    background: var(--surface) !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none !important;
    backdrop-filter: none;
  }

  .site-nav.open .services-nav-item.is-open .services-mega-menu {
    display: grid;
  }

  .site-nav.open .services-mega-menu::after,
  .site-nav.open .services-mega-menu::before {
    display: none !important;
  }

  .site-nav.open .services-mega-sidebar {
    gap: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .site-nav.open .services-mega-service {
    min-height: 40px !important;
    padding: .55rem .65rem !important;
    border-bottom: 1px solid var(--line) !important;
    border-radius: 0 !important;
    color: var(--muted) !important;
    background: var(--surface) !important;
    font-size: .72rem !important;
    letter-spacing: .025em;
    box-shadow: none !important;
    transform: none !important;
  }

  .site-nav.open .services-mega-service:last-child {
    border-bottom: 0 !important;
  }

  .site-nav.open .services-mega-service span {
    width: 1rem;
    color: var(--brand-primary) !important;
    font-size: .85rem;
  }

  .site-nav.open .services-mega-service::after {
    content: '⌄';
    width: auto;
    height: auto;
    margin-left: auto;
    color: var(--muted);
    background: none;
    box-shadow: none;
    font-size: .95rem;
    line-height: 1;
    opacity: 1;
    transform: none;
  }

  .site-nav.open .services-mega-service.is-active {
    color: var(--ink) !important;
    background: var(--surface-2) !important;
    box-shadow: inset 3px 0 0 var(--brand-primary) !important;
  }

  .site-nav.open .services-mega-service.is-active span {
    color: var(--brand-primary) !important;
  }

  .site-nav.open .services-mega-service.is-active::after {
    color: var(--brand-primary);
    transform: rotate(180deg);
  }

  .site-header .site-nav.open .services-mega-menu .services-mega-service {
    color: var(--muted) !important;
    background: var(--surface) !important;
  }

  .site-header .site-nav.open .services-mega-menu .services-mega-service span {
    color: var(--brand-primary) !important;
  }

  .site-header .site-nav.open .services-mega-menu .services-mega-service.is-active {
    color: var(--ink) !important;
    background: var(--surface-2) !important;
  }

  .site-header .site-nav.open .services-mega-menu .services-mega-service.is-active span,
  .site-header .site-nav.open .services-mega-menu .services-mega-service.is-active::after {
    color: var(--brand-primary) !important;
  }

  .site-nav.open .services-mega-content {
    padding: 0;
  }

  .site-nav.open .services-mega-panel {
    display: none;
    height: auto;
    animation: none;
  }

  .site-nav.open .services-mega-panel.is-active {
    display: grid;
  }

  .site-nav.open .services-mega-panel-column {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: .45rem .7rem .6rem;
    border-radius: 0 0 6px 6px;
    background: var(--gradient-brand);
  }

  .site-nav.open .services-mega-panel-column h3 {
    display: none;
  }

  .site-nav.open .services-mega-panel-column a {
    min-height: 30px !important;
    padding: .32rem .15rem !important;
    color: #fff !important;
    font-size: .78rem !important;
  }

  .site-nav.open .services-mega-panel-column a::before {
    color: rgba(255, 255, 255, .72);
  }

  .site-nav.open .nav-cta {
    min-height: 44px !important;
    justify-content: center !important;
    margin-top: .45rem !important;
    border-radius: 7px !important;
  }

  :root[data-theme='dark'] .site-nav.open > a:not(.nav-cta),
  :root[data-theme='dark'] .site-nav.open .services-nav-item > a,
  :root[data-theme='dark'] .site-nav.open .industries-nav-item > a {
    color: var(--ink) !important;
  }

  :root[data-theme='dark'] .site-nav.open .services-mega-menu,
  :root[data-theme='dark'] .site-nav.open .services-mega-service {
    background: var(--surface) !important;
  }

  :root[data-theme='dark'] .site-nav.open .services-mega-service {
    color: var(--muted) !important;
    border-bottom-color: var(--line) !important;
  }

  :root[data-theme='dark'] .site-nav.open .services-mega-service.is-active {
    color: var(--ink) !important;
    background: var(--surface-2) !important;
  }

  .site-nav.open .services-mega-sidebar,
  .site-nav.open .services-mega-content {
    display: none !important;
  }

  .site-nav.open .services-mobile-accordion {
    display: grid;
    gap: 0;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-top: 3px solid var(--brand-primary);
    border-radius: 8px;
    background: var(--surface);
  }

  .site-nav.open .services-mobile-group + .services-mobile-group {
    border-top: 1px solid var(--line);
  }

  .site-nav.open .services-mobile-heading {
    display: flex;
    align-items: center;
    min-width: 0;
  }

  .site-nav.open .services-mobile-service-link {
    display: grid !important;
    flex: 1 1 auto;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: center;
    justify-content: initial !important;
    column-gap: .7rem;
    min-width: 0;
    min-height: 46px !important;
    padding: .55rem .8rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--ink) !important;
    background: transparent !important;
    font-size: .7rem !important;
    font-weight: 750 !important;
    letter-spacing: .025em;
    line-height: 1.25;
    text-decoration: none;
    transition: color .18s ease, background .18s ease;
  }

  .site-nav.open .services-mobile-service-link span {
    display: grid;
    grid-column: 1;
    grid-row: 1;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    color: var(--brand-primary) !important;
    background: color-mix(in srgb, var(--brand-primary) 10%, var(--surface));
  }

  .site-nav.open .services-mobile-service-link svg {
    display: block;
    width: 15px;
    height: 15px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
  }

  .site-nav.open .services-mobile-service-link::after {
    display: none !important;
  }

  .site-nav.open .services-mobile-service-link:hover,
  .site-nav.open .services-mobile-service-link:focus-visible {
    color: var(--brand-primary) !important;
    background: color-mix(in srgb, var(--brand-primary) 6%, var(--surface)) !important;
  }

  .site-nav.open .services-mobile-service-link:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--brand-primary) 60%, transparent);
    outline-offset: -2px;
  }

  .site-nav.open .services-mobile-toggle {
    display: grid;
    flex: 0 0 38px;
    place-items: center;
    width: 34px;
    height: 34px;
    margin: 0 .35rem;
    padding: 0;
    border: 0;
    border-radius: 8px;
    color: var(--brand-primary);
    background: var(--surface-2);
    font: 600 1.1rem/1 Arial, sans-serif;
    cursor: pointer;
    transition: color .18s ease, background .18s ease, transform .18s ease;
  }

  .site-nav.open .services-mobile-toggle:hover,
  .site-nav.open .services-mobile-toggle:focus-visible {
    color: #fff;
    background: var(--brand-primary);
  }

  .site-nav.open .services-mobile-toggle:focus-visible {
    outline: 2px solid var(--brand-primary);
    outline-offset: 2px;
  }

  .site-nav.open .services-mobile-group.is-open .services-mobile-heading {
    background: color-mix(in srgb, var(--brand-primary) 7%, var(--surface));
    box-shadow: inset 3px 0 0 var(--brand-primary);
  }

  .site-nav.open .services-mobile-group.is-open .services-mobile-service-link {
    color: var(--brand-primary) !important;
  }

  .site-nav.open .services-mobile-group.is-open .services-mobile-service-link span {
    color: #fff !important;
    background: var(--brand-primary);
  }

  .site-nav.open .services-mobile-group.is-open .services-mobile-toggle {
    color: #fff;
    background: var(--brand-primary);
  }

  .site-nav.open .services-mobile-group.is-open .services-mobile-toggle span {
    transform: rotate(180deg);
  }

  .site-nav.open .services-mobile-subservices[hidden] {
    display: none !important;
  }

  .site-nav.open .services-mobile-subservices {
    display: block;
    padding: 0 .5rem .5rem;
    background: var(--surface);
  }

  .site-nav.open .services-mobile-subservices .services-mega-panel-column {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .12rem;
    padding: .5rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 7px;
    background:
      radial-gradient(ellipse at 100% 0%, rgba(1, 77, 157, .2), transparent 48%),
      linear-gradient(145deg, #014D9D 0%, #014D9D 58%, #014D9D 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
  }

  .site-nav.open .services-mobile-subservices .services-mega-panel-column h3 {
    display: none;
  }

  .site-nav.open .services-mobile-subservices .services-mega-panel-column a {
    min-height: 36px !important;
    padding: .45rem .55rem !important;
    border-radius: 5px !important;
    color: #fff !important;
    font-size: .77rem !important;
    font-weight: 600 !important;
    text-shadow: none !important;
    transition: background .18s ease, color .18s ease, padding-left .18s ease;
  }

  .site-nav.open .services-mobile-subservices .services-mega-panel-column a::before {
    color: #014D9D;
    font-size: 1.2em;
  }

  .site-nav.open .services-mobile-subservices .services-mega-panel-column a:hover,
  .site-nav.open .services-mobile-subservices .services-mega-panel-column a:focus-visible {
    color: #fff !important;
    background: rgba(255, 255, 255, .1) !important;
    padding-left: .7rem !important;
  }

  .site-nav.open .services-mobile-subservices .services-mega-panel-column a:focus-visible {
    outline: 2px solid #014D9D;
    outline-offset: 1px;
  }

  :root[data-theme='dark'] .site-nav.open .services-mobile-accordion {
    background: var(--surface);
  }

  :root[data-theme='dark'] .site-nav.open .services-mobile-group.is-open .services-mobile-heading {
    background: var(--surface-2);
  }
}

/* Keep the mobile drawer anchored to the bottom of the fixed header. */
@media (max-width: 980px) {
  .site-header {
    top: var(--company-marquee-height) !important;
    min-height: 68px !important;
  }

  .site-header .site-header-container,
  .site-header .container {
    min-height: 68px !important;
    height: 68px !important;
    transform: none !important;
  }

  .site-nav.open {
    position: absolute !important;
    top: 100% !important;
    left: .65rem !important;
    right: .65rem !important;
    justify-content: flex-start !important;
    max-height: calc(100dvh - var(--company-marquee-height) - 84px) !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important;
  }

  .site-nav.open::-webkit-scrollbar {
    display: none !important;
  }

  .site-nav.open > * {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 720px) {
  .site-header,
  .site-header.is-scrolled {
    min-height: 58px !important;
  }

  .site-header .site-header-container,
  .site-header .container {
    min-height: 58px !important;
    height: 58px !important;
  }

  .site-nav.open {
    top: 100% !important;
    max-height: calc(100dvh - var(--company-marquee-height) - 70px) !important;
  }
}

body:not(.home-page) .site-header,
body:not(.home-page) .site-header.is-scrolled,
body:not(.home-page).nav-open .site-header {
  background: rgba(255, 255, 255, .96) !important;
  background-color: rgba(255, 255, 255, .96) !important;
  border-bottom-color: rgba(0, 0, 0, .08) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .1) !important;
  backdrop-filter: blur(14px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(14px) saturate(140%) !important;
}

:root:not([data-theme='dark']) body:not(.home-page) .site-header,
:root:not([data-theme='dark']) body:not(.home-page) .site-header.is-scrolled,
:root:not([data-theme='dark']) body:not(.home-page).nav-open .site-header {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  border-bottom-color: rgba(0, 0, 0, .08) !important;
  box-shadow: 0 2px 14px rgba(0, 0, 0, .08), 0 10px 28px rgba(0, 0, 0, .05) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

:root[data-theme='dark'] body:not(.home-page) .site-header,
:root[data-theme='dark'] body:not(.home-page) .site-header.is-scrolled,
:root[data-theme='dark'] body:not(.home-page).nav-open .site-header {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  border-bottom-color: rgba(0, 0, 0, .08) !important;
  box-shadow: 0 2px 14px rgba(0, 0, 0, .08), 0 10px 28px rgba(0, 0, 0, .05) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

@media (max-width: 980px) {
  .site-nav.open .services-nav-item:not(.is-open):hover > .services-mega-menu,
  .site-nav.open .services-nav-item:not(.is-open):focus-within > .services-mega-menu {
    display: none !important;
  }

  .site-nav.open .services-nav-item.is-open > .services-mega-menu {
    display: grid !important;
  }

  .site-nav.open .industries-nav-item:not(.is-open):hover > .industries-dropdown,
  .site-nav.open .industries-nav-item:not(.is-open):focus-within > .industries-dropdown {
    display: none !important;
  }

  .site-nav.open .industries-nav-item.is-open > .industries-dropdown {
    display: flex !important;
  }

  .site-header .site-nav.open .services-mega-menu .services-mobile-accordion .services-mobile-subservices .services-mega-panel-column a,
  :root[data-theme='dark'] .site-header .site-nav.open .services-mega-menu .services-mobile-accordion .services-mobile-subservices .services-mega-panel-column a {
    color: #f6f9fc !important;
  }

  .site-header .site-nav.open .services-mega-menu .services-mobile-accordion .services-mobile-subservices .services-mega-panel-column a::before,
  :root[data-theme='dark'] .site-header .site-nav.open .services-mega-menu .services-mobile-accordion .services-mobile-subservices .services-mega-panel-column a::before {
    color: #014D9D !important;
  }
}

/* Premium red finish for the main website. */
:root {
  --premium-glow: rgba(255, 255, 255, .24);
  --grid-line: rgba(255, 255, 255, .05);
}

:root[data-theme='dark'] {
  --grid-line: rgba(255, 255, 255, .07);
}

body {
  background-image:
    radial-gradient(circle at 12% 0%, rgba(1, 77, 157, .045), transparent 30%),
    radial-gradient(circle at 88% 12%, rgba(1, 77, 157, .025), transparent 26%);
}

body::before {
  background-image:
    linear-gradient(rgba(255, 255, 255, .03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .03) 1px, transparent 1px);
}

.home-page .hero,
.internal-page .hero,
.services-hero,
.services-kinetic-hero,
.contact-page-hero,
.final-cta-section,
.about-final-cta,
.band,
.cta-band {
  background:
  radial-gradient(ellipse at 78% 14%, rgba(255, 255, 255, .15), transparent 36%),
  radial-gradient(ellipse at 0% 100%, rgba(255, 255, 255, .24), transparent 42%),
  linear-gradient(122deg, #FFFFFF 0%, #FFFFFF 52%, #014D9D 100%) !important;
}

.home-page .hero::before,
.internal-page .hero::before,
.services-hero::before,
.services-kinetic-hero::before {
  background-color: transparent;
}

.btn-primary,
.nav-cta,
.site-nav .nav-cta {
  color: #fff !important;
  border-color: rgba(255, 255, 255, .2) !important;
  background: linear-gradient(120deg, #FFFFFF 0%, #FFFFFF 58%, #014D9D 100%) !important;
  box-shadow: 0 10px 24px rgba(255, 255, 255, .24), inset 0 1px 0 rgba(255, 255, 255, .22) !important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.nav-cta:hover,
.nav-cta:focus-visible,
.site-nav .nav-cta:hover,
.site-nav .nav-cta:focus-visible {
  box-shadow: 0 14px 30px rgba(255, 255, 255, .32), inset 0 1px 0 rgba(255, 255, 255, .28) !important;
}

.eyebrow,
.feature-meta,
.service-meta .eyebrow,
.explorer-brand .eyebrow {
  color: var(--brand-primary) !important;
}

.site-nav a.active {
  color: var(--brand-primary) !important;
}

.site-nav a.active {
  background: color-mix(in srgb, var(--brand-primary) 7%, #fff) !important;
  border-color: color-mix(in srgb, var(--brand-primary) 18%, transparent) !important;
}

.site-nav a:not(.nav-cta)::after {
  background: linear-gradient(90deg, var(--brand-primary-deep), var(--brand-signal)) !important;
}

.panel,
.service-card,
.service-pill-panel,
.contact-card,
.project-card,
.team-card,
.metric,
.info-card,
.location-card-premium,
.trust-card,
.job-card,
.benefit-card,
.culture-card {
  border-color: color-mix(in srgb, var(--brand-primary) 13%, var(--line)) !important;
}

.panel:hover,
.service-card:hover,
.service-pill-panel:hover,
.contact-card:hover,
.project-card:hover,
.team-card:hover,
.metric:hover,
.info-card:hover,
.location-card-premium:hover,
.trust-card:hover,
.job-card:hover,
.benefit-card:hover,
.culture-card:hover {
  border-color: color-mix(in srgb, var(--brand-primary) 32%, transparent) !important;
  box-shadow: 0 22px 54px rgba(255, 255, 255, .12), 0 0 0 1px rgba(255, 255, 255, .06) !important;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline-color: var(--brand-signal) !important;
}

.company-marquee {
  border-bottom: 1px solid rgba(177, 202, 227, .22);
}

.footer {
  border-top: 1px solid rgba(177, 202, 227, .24);
}

:root:not([data-theme='dark']) .careers-page .section-header h2,
:root:not([data-theme='dark']) .careers-page .story-copy h2,
:root:not([data-theme='dark']) .careers-page .path-role h3,
:root:not([data-theme='dark']) .careers-page .job-card__meta strong {
  color: #111 !important;
}

:root:not([data-theme='dark']) main p:not(.eyebrow):not(.lead-tagline-box p):not([class*="hero"] p):not([class*="cta"] p) {
  color: #000 !important;
}

.footer {
  --footer-accent: #DEE8F2;
  border-image: linear-gradient(90deg, transparent 0%, #DEE8F2 30%, #C2D9F0 50%, #DEE8F2 70%, transparent 100%) 1 !important;
}

.footer::before {
  background:
    radial-gradient(circle at 15% 0%, rgba(222, 232, 242,.16) 0%, transparent 45%),
    radial-gradient(circle at 85% 100%, rgba(222, 232, 242,.1) 0%, transparent 40%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.015) 0%, transparent 70%) !important;
}

.footer-preaction-badge {
  background: rgba(222, 232, 242,.15) !important;
  border-color: rgba(222, 232, 242,.42) !important;
}

.footer-btn-primary {
  background: linear-gradient(135deg, #DEE8F2 0%, #E3EAF1 100%) !important;
  box-shadow: 0 10px 28px rgba(222, 232, 242,.34) !important;
}

.footer-btn-primary:hover {
  background: linear-gradient(135deg, #B6CEE6 0%, #E1E9F1 100%) !important;
  box-shadow: 0 14px 34px rgba(222, 232, 242,.46) !important;
}

.footer-social-btn:hover {
  background: #DEE8F2 !important;
  border-color: #DEE8F2 !important;
  box-shadow: 0 8px 18px rgba(222, 232, 242,.38) !important;
}

.footer-heading::after,
.footer-links-list li a::before {
  background-color: #DEE8F2 !important;
  color: #DEE8F2 !important;
}

.footer-newsletter-form:focus-within {
  border-color: #DEE8F2 !important;
}

.footer-newsletter-form button {
  background: #DEE8F2 !important;
}

.footer-newsletter-form button:hover {
  background: #E1E9F1 !important;
}

.footer-main-columns {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .95fr) minmax(300px, 1fr) !important;
  gap: clamp(2.2rem, 5vw, 5rem) !important;
  padding: 0 0 2.5rem !important;
}

.footer {
  padding-top: 0 !important;
  padding-bottom: 1.5rem !important;
  background-color: #090a0d !important;
}

.footer-premium-container {
  padding-top: clamp(2.5rem, 5vw, 4rem) !important;
}

.footer-heading {
  margin-bottom: 1.5rem !important;
  font-size: 1.08rem !important;
}

.footer-heading::after {
  width: 2rem !important;
  height: 3px !important;
  transition: width .25s ease !important;
}

.footer-col:hover .footer-heading::after {
  width: 3.5rem !important;
}

.footer-links-list {
  gap: .62rem !important;
}

.footer-links-list li a {
  min-height: 1.65rem;
  color: #93a2b7 !important;
  transition: color .2s ease, transform .2s ease !important;
}

.footer-links-list li a::before {
  width: 9px;
  height: 14px;
  margin-right: .1rem;
  border-radius: 1px;
  background: #DEE8F2 !important;
  content: "";
  opacity: .9 !important;
  transition: height .2s ease, opacity .2s ease !important;
}

.footer-links-list li a:hover {
  color: #fff !important;
  transform: translateX(3px) !important;
}

.footer-links-list li a:hover::before {
  height: 18px;
}

.footer-newsletter-card {
  margin-top: 2rem !important;
  padding: 1.2rem !important;
  border-color: rgba(255,255,255,.11) !important;
  background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(222, 232, 242,.045)) !important;
  box-shadow: 0 16px 36px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.035);
  transition: border-color .25s ease, transform .25s ease !important;
}

.footer-newsletter-card:hover {
  border-color: rgba(222, 232, 242,.45) !important;
  transform: translateY(-3px);
}

.footer-newsletter-form button {
  min-width: 2.6rem;
  background: #DEE8F2 !important;
}

.footer-newsletter-form button:hover {
  background: #E1E9F1 !important;
}

.footer-col a:focus-visible,
.footer-newsletter-form button:focus-visible {
  outline: 2px solid #DEE8F2 !important;
  outline-offset: 3px !important;
}

@media (max-width: 1024px) {
  .footer-main-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2.5rem !important;
  }

  .footer-col-brand {
    grid-column: 1 / -1;
    max-width: 42rem;
  }
}

@media (max-width: 640px) {
  .footer {
    padding-top: 0 !important;
  }

  .footer-premium-container {
    padding-top: 2.5rem !important;
  }

  .footer-main-columns {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 2rem !important;
  }

  .footer-col-brand {
    grid-column: auto;
  }

  .footer-newsletter-card {
    max-width: 28rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .footer-heading::after,
  .footer-links-list li a,
  .footer-links-list li a::before,
  .footer-newsletter-card {
    transition: none !important;
  }
}

.footer-service-directory {
  display: grid;
  width: 100%;
  box-sizing: border-box;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 2.5rem);
  margin: 0;
  padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.5rem, 5vw, 5rem);
  border-top: 1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(ellipse at 0 50%, rgba(222, 232, 242,.13), transparent 55%),
    linear-gradient(105deg, #493940 0%, #3f404a 58%, #3b3e49 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}

.footer-service-column {
  min-width: 0;
}

.footer-service-column h2 {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-height: 2rem;
  margin: 0 0 .75rem;
  padding: 0 0 .6rem;
  border-bottom: 1px solid rgba(255,255,255,.13);
  color: #fff;
  font-family: var(--font-display, inherit);
  font-size: clamp(.98rem, 1.25vw, 1.16rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.02em;
}

.footer-service-column h2 a {
  color: inherit;
  text-decoration: none;
  transition: color .2s ease;
}

.footer-service-column h2 a:hover,
.footer-service-column h2 a:focus-visible {
  color: #FFFFFF;
}

.footer-service-column ul {
  display: grid;
  gap: .1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-service-column li a {
  display: inline-flex;
  align-items: baseline;
  gap: .5rem;
  margin: 0 !important;
  padding: .08rem 0;
  color: #d4d6df;
  font-size: .84rem;
  line-height: 1.3;
  text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}

.footer-service-column li a::before {
  color: #fff;
  content: "›";
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1;
  transition: color .2s ease, transform .2s ease;
}

.footer-service-column li a:hover,
.footer-service-column li a:focus-visible {
  color: #fff;
  transform: translateX(3px);
}

.footer-service-column li a:hover::before,
.footer-service-column li a:focus-visible::before {
  color: #FFFFFF;
  transform: translateX(2px);
}

.footer-service-column a:focus-visible {
  outline: 2px solid #DEE8F2;
  outline-offset: 3px;
}

.footer {
  padding: 0 !important;
  border: 0 !important;
  background: #3f404a !important;
}

.footer > .footer-premium-container {
  width: 100%;
  max-width: none !important;
  padding: 0 !important;
}

.footer::before {
  display: none !important;
}

.footer-service-column h2::before {
  display: none !important;
  content: none !important;
  background: none !important;
}

.footer-contact-panel {
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(0, 1.5fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
  padding: 1.35rem clamp(1.5rem, 5vw, 5rem);
  border-top: 1px solid rgba(255,255,255,.1);
  background:
    radial-gradient(ellipse at 12% 100%, rgba(222, 232, 242,.12), transparent 45%),
    linear-gradient(115deg, #151720 0%, #11131a 60%, #14151d 100%);
}

.footer-contact-brand {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: .55rem;
  max-width: 25rem;
}

.footer-contact-brand .footer-brand-link {
  display: inline-flex !important;
  align-items: center;
  margin: 0 !important;
  padding: .25rem .45rem !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.25) !important;
}

.footer-contact-brand .footer-logo-img {
  width: auto !important;
  height: 26px !important;
  object-fit: contain !important;
}

.footer-contact-brand {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: .55rem;
}

.footer-contact-brand p {
  max-width: 20rem;
  margin: 0;
  color: #a8afbd;
  font-size: .78rem;
  line-height: 1.45;
}

.footer-contact-details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  gap: .2rem 1rem;
}

.footer-contact-details h2 {
  grid-column: 1 / -1;
  margin: 0 0 .35rem;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
}

.footer-contact-details p,
.footer-contact-details a {
  display: flex;
  align-items: center;
  gap: .45rem;
  width: fit-content;
  margin: .15rem 0;
  color: #c4c9d3;
  font-size: .78rem;
  line-height: 1.5;
  text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}

.footer-contact-details p span,
.footer-contact-details a span {
  display: inline-flex;
  justify-content: center;
  width: 1.1rem;
  color: #DEE8F2;
  font-size: 1rem;
  font-weight: 700;
}

.footer-contact-details a:hover {
  color: #fff;
  transform: translateX(3px);
}

.footer-legal-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 1.5rem;
  padding: .55rem clamp(1.5rem, 5vw, 5rem);
  border-top: 1px solid rgba(255,255,255,.08);
  background: #0b0d12;
  color: #9299a7;
  font-size: .76rem;
}

.footer-legal-bar nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}

.footer-legal-bar a {
  color: #c4c9d3;
  text-decoration: none;
  transition: color .2s ease;
}

.footer-legal-bar a:hover,
.footer-legal-bar a:focus-visible {
  color: #FFFFFF;
}

.footer-designed-by {
  color: #a7adba;
}

@media (max-width: 1100px) {
  .footer-service-directory {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 2.5rem;
  }
}

@media (max-width: 700px) {
  .footer-service-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem 1.25rem;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }

  .footer-contact-panel {
    grid-template-columns: 1fr;
    gap: 1.1rem;
    padding-top: 1.2rem;
    padding-bottom: 1.2rem;
  }

  .footer-contact-details {
    grid-template-columns: 1fr;
    gap: .1rem;
  }

  .footer-legal-bar {
    align-items: flex-start;
    flex-direction: column;
    gap: .45rem;
  }
}

@media (max-width: 420px) {
  .footer-service-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.15rem .9rem;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }

  .footer-service-column h2 {
    margin-bottom: .5rem;
    font-size: .92rem;
  }

  .footer-contact-brand {
    gap: .45rem;
  }

  .footer-contact-details { grid-template-columns: 1fr; }
}

@media (max-width: 340px) {
  .footer-service-directory {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .footer-service-column h2 a,
  .footer-service-column li a,
  .footer-service-column li a::before,
  .footer-contact-details a,
  .footer-legal-bar a {
    transition: none;
  }
}

.footer-contact-panel {
  position: relative;
  overflow: hidden;
  min-height: 132px;
  border-bottom: 1px solid rgba(255,255,255,.1);
  background:
    radial-gradient(ellipse at 8% 110%, rgba(222, 232, 242,.2), transparent 42%),
    radial-gradient(ellipse at 95% 0, rgba(78,100,145,.15), transparent 38%),
    linear-gradient(115deg, #111722 0%, #171a25 58%, #1c1e29 100%);
}

.footer-contact-panel::after {
  position: absolute;
  top: 0;
  right: clamp(1.5rem, 5vw, 5rem);
  left: clamp(1.5rem, 5vw, 5rem);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(222, 232, 242,.65), rgba(255,255,255,.12), transparent);
  content: "";
  pointer-events: none;
}

.footer-contact-brand .footer-brand-link {
  padding: .4rem .65rem !important;
  border: 1px solid rgba(255,255,255,.65) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.28), 0 0 24px rgba(222, 232, 242,.08) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}

.footer-contact-brand .footer-brand-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,.34), 0 0 28px rgba(222, 232, 242,.18) !important;
}

.footer-contact-brand .footer-logo-img {
  height: 32px !important;
}

.footer-contact-brand p {
  max-width: 22rem;
  color: #bac1cd;
  font-size: .82rem;
}

.footer-contact-details {
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .8fr) minmax(0, 1fr);
  gap: .45rem .7rem;
}

.footer-contact-details h2 {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: .2rem;
  font-size: 1.02rem;
  letter-spacing: -.01em;
}

.footer-contact-details h2::before {
  width: 1.6rem;
  height: 2px;
  border-radius: 2px;
  background: #DEE8F2;
  content: "";
}

.footer-contact-details p,
.footer-contact-details a {
  min-height: 2.45rem;
  box-sizing: border-box;
  padding: .5rem .65rem;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 8px;
  background: rgba(255,255,255,.035);
  color: #d3d7e0;
  font-size: .77rem;
  transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}

.footer-contact-details p span,
.footer-contact-details a span {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 1.25rem;
  align-items: center;
  border-radius: 5px;
  background: rgba(222, 232, 242,.14);
  color: #FFFFFF;
  font-size: .86rem;
}

.footer-contact-details a:hover {
  transform: translateY(-2px);
  border-color: rgba(222, 232, 242,.42);
  background: rgba(222, 232, 242,.08);
  color: #fff;
}

.footer-service-directory {
  position: relative;
  isolation: isolate;
  gap: clamp(.65rem, 1.2vw, 1.1rem);
  padding: clamp(1.5rem, 2.5vw, 2rem) clamp(1.5rem, 5vw, 5rem);
  background:
    radial-gradient(ellipse at 0 100%, rgba(222, 232, 242,.15), transparent 48%),
    radial-gradient(ellipse at 100% 0, rgba(79,101,145,.12), transparent 40%),
    linear-gradient(110deg, #202531 0%, #252a37 55%, #202531 100%);
}

.footer-service-directory::before {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 5%;
  left: 5%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), rgba(222, 232, 242,.6), transparent);
  content: "";
}

.footer-service-column {
  position: relative;
  padding: .75rem clamp(.7rem, 1vw, .95rem) .85rem;
  border: 1px solid rgba(194,205,227,.12);
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(117,137,175,.025));
  transition: border-color .25s ease, background .25s ease, transform .25s ease, box-shadow .25s ease;
  animation: footer-column-enter .55s both;
}

.footer-service-column:nth-child(2) { animation-delay: 70ms; }
.footer-service-column:nth-child(3) { animation-delay: 140ms; }
.footer-service-column:nth-child(4) { animation-delay: 210ms; }
.footer-service-column:nth-child(5) { animation-delay: 280ms; }

.footer-service-column:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255,.48);
  background: linear-gradient(145deg, rgba(222, 232, 242,.12), rgba(110,131,169,.055));
  box-shadow: 0 14px 32px rgba(0,0,0,.23), 0 0 22px rgba(222, 232, 242,.07);
}

.footer-service-column:focus-within {
  border-color: rgba(222, 232, 242,.45);
}

.footer-service-column h2 {
  position: relative;
  min-height: 2.15rem;
  margin-bottom: .55rem;
  padding-bottom: .55rem;
  border-bottom-color: rgba(255,255,255,.1);
  font-size: clamp(.92rem, 1.08vw, 1.04rem);
}

.footer-service-column h2::after {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 1.8rem;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, #FFFFFF, #DEE8F2);
  box-shadow: 0 0 12px rgba(222, 232, 242,.3);
  content: "";
  transition: width .25s ease;
}

.footer-service-column:hover h2::after {
  width: 3.4rem;
}

.footer-service-column h2 a:hover,
.footer-service-column h2 a:focus-visible {
  color: #fff;
}

.footer-service-column ul {
  gap: .08rem;
}

.footer-service-column li a {
  width: 100%;
  box-sizing: border-box;
  border-radius: 4px;
  color: #c8cbd4;
  font-size: .8rem;
  line-height: 1.35;
  transition: color .18s ease, transform .18s ease;
}

.footer-service-column li a::before {
  color: #FFFFFF;
  transition: color .18s ease, transform .18s ease;
}

.footer-service-column li a:hover,
.footer-service-column li a:focus-visible {
  color: #fff;
}

.footer-legal-bar {
  min-height: 48px;
  box-sizing: border-box;
  padding-top: .65rem;
  padding-bottom: .65rem;
  border-top: 1px solid rgba(255,255,255,.09);
  background: linear-gradient(90deg, #10141d 0%, #171a24 50%, #10141d 100%);
  color: #a5abba;
}

.footer-legal-bar > span,
.footer-legal-bar nav {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
}

.footer-legal-bar nav {
  gap: 0;
}

.footer-legal-bar nav a {
  padding: 0 .8rem;
  color: #c2c7d1;
  line-height: 1.2;
}

.footer-legal-bar nav a + a {
  border-left: 1px solid rgba(255,255,255,.16);
}

.footer-legal-bar a:hover,
.footer-legal-bar a:focus-visible {
  color: #FFFFFF;
}

.footer-designed-by {
  color: #c0c5d0;
}

.footer-designed-by::before {
  width: 5px;
  height: 5px;
  margin-right: .5rem;
  border-radius: 50%;
  background: #DEE8F2;
  box-shadow: 0 0 10px rgba(222, 232, 242,.7);
  content: "";
}

@keyframes footer-column-enter {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 700px) {
  .footer-contact-details {
    grid-template-columns: 1fr;
    gap: .35rem;
  }

  .footer-contact-details h2 {
    margin-bottom: .3rem;
  }

  .footer-contact-details p,
  .footer-contact-details a {
    width: 100%;
  }

  .footer-service-column {
    padding: .65rem .6rem .75rem;
  }

  .footer-legal-bar nav a:first-child {
    padding-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .footer-service-column,
  .footer-contact-brand .footer-brand-link,
  .footer-service-column h2::after {
    animation: none !important;
    transition: none !important;
  }
}

.service-quick-grid .service-pill-copy .eyebrow,
.service-quick-grid .service-pill-copy h3,
.service-quick-grid .service-pill-copy > p:not(.eyebrow),
.service-quick-grid .service-pill-copy .service-learn-more,
.service-quick-grid .service-pill-copy .service-learn-more b {
  color: #111 !important;
}

.locations-premium-section .location-number-premium,
.locations-premium-section .detail-label-premium,
.locations-premium-section .detail-value-premium,
.locations-premium-section .detail-value-premium a {
  color: #111 !important;
}

.home-page .cta-band {
  background: var(--gradient-brand) !important;
  color: #fff !important;
}

.home-page .cta-band .eyebrow {
  color: rgba(255, 255, 255, .78) !important;
}

.home-page .cta-band h2 {
  color: #fff !important;
}

.home-page .cta-band .btn-primary {
  color: var(--brand-primary-dark) !important;
  border-color: #fff !important;
  background: #fff !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .18), inset 0 1px 0 rgba(255, 255, 255, .22) !important;
}

.home-page .cta-band .btn-primary:hover,
.home-page .cta-band .btn-primary:focus-visible {
  color: var(--brand-primary-dark) !important;
  background: #EEF5FC !important;
}

.about-page .about-hero {
  background:
    radial-gradient(620px 360px at 78% 18%, rgba(77, 145, 206, .22), transparent 68%),
    radial-gradient(420px 260px at 8% 86%, rgba(1, 77, 157, .2), transparent 70%),
    linear-gradient(145deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
}

.about-page .about-hero .ah-eyebrow {
  color: rgba(255, 255, 255, .84) !important;
}

.about-page .about-hero .ah-eyebrow::before {
  background: #fff !important;
}

.about-page .about-hero .ah-heading {
  color: #fff !important;
}

.about-page .about-hero .ah-line-accent > span {
  background-image: linear-gradient(100deg, #fff 8%, #B9D9F7 52%, #fff 92%);
}

.about-page .about-hero .ah-lead {
  color: rgba(255, 255, 255, .9) !important;
}

.about-page .about-hero .ah-company-facts span,
.about-page .about-hero .ah-trust-strip {
  color: rgba(255, 255, 255, .9) !important;
}

.about-page .about-hero .ah-company-facts span {
  border-color: rgba(255, 255, 255, .28);
}

.about-page .site-nav .nav-cta,
.about-page .ax-cta .btn-primary {
  color: #fff !important;
  border-color: var(--brand-primary) !important;
  background: var(--brand-primary) !important;
  box-shadow: 0 10px 24px rgba(1, 77, 157, .22) !important;
}

.about-page .site-nav .nav-cta:hover,
.about-page .site-nav .nav-cta:focus-visible,
.about-page .ax-cta .btn-primary:hover,
.about-page .ax-cta .btn-primary:focus-visible {
  color: #fff !important;
  background: var(--brand-primary-deep) !important;
}

.triset-service-studio .services-kinetic-hero {
  background:
    radial-gradient(ellipse at 80% 16%, rgba(77, 145, 206, .24), transparent 38%),
    linear-gradient(145deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
}

.triset-service-studio .skh-kicker {
  color: #B9D9F7 !important;
}

.triset-service-studio .skh-title,
.triset-service-studio .skh-title-accent {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: none !important;
}

.triset-service-studio .skh-lead {
  color: rgba(255, 255, 255, .9) !important;
}

.triset-service-studio .pp-pill--blue {
  background: linear-gradient(135deg, #0757B8, #268AEF) !important;
  color: #fff !important;
}

.triset-service-studio .pp-pill--coral {
  background: linear-gradient(135deg, #C43C5A, #ED6A57) !important;
  color: #fff !important;
}

.triset-service-studio .pp-pill--mint {
  background: linear-gradient(135deg, #087F70, #18B89C) !important;
  color: #fff !important;
}

.triset-service-studio .pp-pill--amber {
  background: linear-gradient(135deg, #C9860A, #F5B63D) !important;
  color: #2A1C00 !important;
}

.triset-service-studio .pp-pill--violet {
  background: linear-gradient(135deg, #6047C4, #8B7CF0) !important;
  color: #fff !important;
}

.triset-service-studio .services-cta .cta-band {
  background: var(--gradient-brand) !important;
  color: #fff !important;
}

.triset-service-studio .services-cta .cta-band .eyebrow {
  color: rgba(255, 255, 255, .82) !important;
}

.triset-service-studio .services-cta .cta-band .lead {
  color: rgba(255, 255, 255, .9) !important;
}

.triset-service-studio .services-cta .cta-band .btn-primary {
  color: var(--brand-primary-dark) !important;
  border-color: #fff !important;
  background: #fff !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .18) !important;
}

.triset-service-studio .services-cta .cta-band .btn-primary:hover,
.triset-service-studio .services-cta .cta-band .btn-primary:focus-visible {
  color: var(--brand-primary-dark) !important;
  background: #EEF5FC !important;
}

.triset-service-studio .services-cta .cta-band .btn-quiet {
  color: #fff !important;
  border-color: rgba(255, 255, 255, .55) !important;
  background: rgba(255, 255, 255, .08) !important;
}

.triset-service-studio .services-cta .cta-band .btn-quiet:hover,
.triset-service-studio .services-cta .cta-band .btn-quiet:focus-visible {
  background: rgba(255, 255, 255, .16) !important;
}

.industries-page .hero {
  background:
    radial-gradient(ellipse at 80% 16%, rgba(77, 145, 206, .2), transparent 38%),
    linear-gradient(145deg, #041521 0%, #0a2744 54%, #0d3b63 100%) !important;
}

.industries-page .hero .eyebrow {
  color: rgba(255, 255, 255, .82) !important;
}

.industries-page .hero-copy h1 {
  color: #fff !important;
}

.industries-page .hero .lead {
  color: rgba(235, 243, 250, .9) !important;
}

.industries-page section.band {
  background:
    radial-gradient(ellipse at 80% 12%, rgba(77, 145, 206, .18), transparent 38%),
    linear-gradient(145deg, #041521 0%, #0a2744 54%, #0d3b63 100%) !important;
  color: #fff !important;
}

.industries-page section.band .section-header h2 {
  color: #fff !important;
}

.industries-page section.band .section-header .eyebrow {
  color: rgba(215, 231, 247, .86) !important;
}

.industries-page .solutions-cta {
  background:
    radial-gradient(ellipse at 80% 12%, rgba(77, 145, 206, .18), transparent 38%),
    linear-gradient(145deg, #041521 0%, #0a2744 54%, #0d3b63 100%) !important;
  color: #fff !important;
  box-shadow: 0 24px 52px rgba(4, 18, 30, .2);
}

.industries-page .solutions-cta > div {
  flex-direction: column;
  align-items: flex-start;
  gap: .5rem;
}

.industries-page .solutions-cta .eyebrow {
  color: rgba(215, 231, 247, .82) !important;
}

.industries-page .solutions-cta h2 {
  display: block !important;
  max-width: 720px;
  margin: 0;
  color: #fff !important;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.08;
}

.industries-page .solutions-cta .btn-primary {
  height: auto;
  min-height: 54px;
  border: 1px solid #fff !important;
  background: #fff !important;
  color: #081e34 !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .18) !important;
}

.industries-page .solutions-cta .btn-primary:hover,
.industries-page .solutions-cta .btn-primary:focus-visible {
  background: #edf4fb !important;
  color: #081e34 !important;
}

@media (max-width: 760px) {
  .industries-page .orbit-section .niche-orbit-frame {
    position: relative;
    left: calc(50% + 8px);
    width: min(calc(100vw - 16px), 390px);
    max-width: none;
    aspect-ratio: 1;
    padding: 0;
    border-radius: 50%;
    transform: translateX(-50%);
  }

  .industries-page .niche-orbit-core {
    width: clamp(70px, 21vw, 82px);
    height: clamp(70px, 21vw, 82px);
  }

  .industries-page .niche-orbit-item {
    --radius: clamp(68px, 22vw, 82px) !important;
  }

  .industries-page .niche-ring--b .niche-orbit-item {
    --radius: clamp(116px, calc(50vw - 44px), 145px) !important;
  }

  .industries-page .niche-ring--a .niche-chip {
    width: clamp(32px, 9vw, 35px);
    min-width: 0;
    padding: .28rem .12rem;
    font-size: clamp(.45rem, 1.9vw, .48rem);
  }

  .industries-page .niche-ring--b .niche-chip {
    width: clamp(58px, 17vw, 66px);
    min-width: 0;
    padding: .32rem .16rem;
    font-size: clamp(.45rem, 2.1vw, .52rem);
  }

  .industries-page .niche-chip {
    display: inline-block;
    max-width: none !important;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1;
    text-align: center;
  }

}

@media (max-width: 340px) {
  .industries-page .orbit-section .niche-orbit-frame {
    width: 100vw;
  }

  .industries-page .niche-orbit-item {
    --radius: clamp(60px, 22vw, 75px) !important;
  }

  .industries-page .niche-ring--b .niche-orbit-item {
    --radius: clamp(105px, calc(50vw - 36px), 124px) !important;
  }

}

.service-detail-page[data-service-detail] .service-detail-hero,
.service-detail-page[data-service-detail="data-entry"] .de-hero {
  background: linear-gradient(135deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
  color: #fff !important;
}

:root[data-theme="dark"] .service-detail-page[data-service-detail] .service-detail-hero,
:root[data-theme="dark"] .service-detail-page[data-service-detail="data-entry"] .de-hero {
  background: linear-gradient(135deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
}

body.service-detail-page[data-service-detail] .app-cta-section,
body.service-detail-page[data-service-detail] .web-cta-section,
body.service-detail-page[data-service-detail] .marketing-cta-section,
body.service-detail-page[data-service-detail] .spatial-cta-section,
body.service-detail-page[data-service-detail="data-entry"] .de-cta {
  color: #fff !important;
  background: linear-gradient(135deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
}

body.service-detail-page[data-service-detail] .app-cta-section h2,
body.service-detail-page[data-service-detail] .app-cta-section p,
body.service-detail-page[data-service-detail] .web-cta-section h2,
body.service-detail-page[data-service-detail] .web-cta-section p,
body.service-detail-page[data-service-detail] .marketing-cta-section h2,
body.service-detail-page[data-service-detail] .marketing-cta-section p,
body.service-detail-page[data-service-detail] .spatial-cta-section h2,
body.service-detail-page[data-service-detail] .spatial-cta-section p,
body.service-detail-page[data-service-detail="data-entry"] .de-cta h2,
body.service-detail-page[data-service-detail="data-entry"] .de-cta p {
  color: #fff !important;
}

body.service-detail-page[data-service-detail] .cta-highlight-box {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
  color: #fff !important;
}

body.service-detail-page[data-service-detail] .cta-highlight-box strong,
body.service-detail-page[data-service-detail] .cta-highlight-box span {
  color: #fff !important;
}

body.service-detail-page[data-service-detail] .service-detail-hero .btn-solid-white,
body.service-detail-page[data-service-detail="data-entry"] .de-hero .de-button:not(.de-button-outline) {
  color: #014D9D !important;
  -webkit-text-fill-color: #014D9D !important;
  background: #fff !important;
  border-color: #fff !important;
}

body.service-detail-page[data-service-detail] .service-detail-hero .btn-solid-white:hover,
body.service-detail-page[data-service-detail="data-entry"] .de-hero .de-button:not(.de-button-outline):hover {
  color: #003B78 !important;
  -webkit-text-fill-color: #003B78 !important;
  background: #EEF5FC !important;
  border-color: #EEF5FC !important;
}

body.service-detail-page[data-service-detail] .service-detail-hero .btn-glass-outline,
body.service-detail-page[data-service-detail="data-entry"] .de-hero .de-button-outline {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.7) !important;
}

body.service-detail-page[data-service-detail] .service-detail-hero .btn-glass-outline:hover,
body.service-detail-page[data-service-detail="data-entry"] .de-hero .de-button-outline:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: #fff !important;
}

body.service-detail-page[data-service-detail] .cta-actions .btn-solid-white,
body.service-detail-page[data-service-detail] .app-cta-section .btn-solid-white,
body.service-detail-page[data-service-detail] .web-cta-section .btn-solid-white,
body.service-detail-page[data-service-detail] .marketing-cta-section .btn-solid-white,
body.service-detail-page[data-service-detail] .spatial-cta-section .btn-solid-white {
  color: #014D9D !important;
  -webkit-text-fill-color: #014D9D !important;
  background: #fff !important;
  border-color: #fff !important;
}

body.service-detail-page[data-service-detail] .cta-actions .btn-solid-white:hover,
body.service-detail-page[data-service-detail] .app-cta-section .btn-solid-white:hover,
body.service-detail-page[data-service-detail] .web-cta-section .btn-solid-white:hover,
body.service-detail-page[data-service-detail] .marketing-cta-section .btn-solid-white:hover,
body.service-detail-page[data-service-detail] .spatial-cta-section .btn-solid-white:hover {
  color: #003B78 !important;
  -webkit-text-fill-color: #003B78 !important;
  background: #EEF5FC !important;
  border-color: #EEF5FC !important;
}

body.service-detail-page[data-service-detail] .cta-actions .btn-glass-outline,
body.service-detail-page[data-service-detail] .app-cta-section .btn-glass-outline,
body.service-detail-page[data-service-detail] .web-cta-section .btn-glass-outline,
body.service-detail-page[data-service-detail] .marketing-cta-section .btn-glass-outline,
body.service-detail-page[data-service-detail] .spatial-cta-section .btn-glass-outline {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.7) !important;
}

body.service-detail-page[data-service-detail] .cta-actions .btn-glass-outline:hover,
body.service-detail-page[data-service-detail] .app-cta-section .btn-glass-outline:hover,
body.service-detail-page[data-service-detail] .web-cta-section .btn-glass-outline:hover,
body.service-detail-page[data-service-detail] .marketing-cta-section .btn-glass-outline:hover,
body.service-detail-page[data-service-detail] .spatial-cta-section .btn-glass-outline:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: #fff !important;
}

body.service-detail-page[data-service-detail="data-entry"] .de-cta .de-button {
  color: #014D9D !important;
  -webkit-text-fill-color: #014D9D !important;
  background: #fff !important;
  border-color: #fff !important;
}

body.service-detail-page[data-service-detail="data-entry"] .de-cta .de-button:hover {
  color: #003B78 !important;
  -webkit-text-fill-color: #003B78 !important;
  background: #EEF5FC !important;
  border-color: #EEF5FC !important;
}

.site-header .site-nav .nav-cta,
.site-header .site-nav .nav-cta:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0.7rem 1.05rem !important;
  border: 1px solid #014D9D !important;
  border-radius: 10px !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, #013E7A 0%, #014D9D 100%) !important;
  box-shadow: 0 6px 16px rgba(1, 77, 157, 0.22) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;
}

.site-header .site-nav .nav-cta:hover,
.site-header .site-nav .nav-cta:focus-visible {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, #002B55 0%, #013E7A 100%) !important;
  border-color: #013E7A !important;
  box-shadow: 0 9px 22px rgba(1, 77, 157, 0.3) !important;
  transform: translateY(-1px);
}

:root body.industry-detail-page .industry-detail-hero {
  color: #fff !important;
  background: linear-gradient(135deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
}

:root body.industry-detail-page .industry-detail-hero h1,
:root body.industry-detail-page .industry-detail-hero h1 *,
:root body.industry-detail-page .industry-detail-hero .eyebrow,
:root body.industry-detail-page .industry-detail-hero .industry-backlink,
:root body.industry-detail-page .industry-detail-hero .lead,
:root body.industry-detail-page .industry-detail-hero p {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

:root body.industry-detail-page .industry-detail-hero .hero-accent-text {
  background: none !important;
}

:root body.industry-detail-page .industry-detail-hero .btn-solid-white,
:root body.industry-detail-page .industry-detail-hero .btn-primary {
  color: #014D9D !important;
  -webkit-text-fill-color: #014D9D !important;
  background: #fff !important;
  border: 1px solid #fff !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2) !important;
}

:root body.industry-detail-page .industry-detail-hero .btn-solid-white:hover,
:root body.industry-detail-page .industry-detail-hero .btn-primary:hover {
  color: #003B78 !important;
  -webkit-text-fill-color: #003B78 !important;
  background: #EEF5FC !important;
  border-color: #EEF5FC !important;
}

:root body.industry-detail-page .industry-detail-hero .btn-glass-outline {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.75) !important;
}

:root body.industry-detail-page .industry-detail-hero .btn-glass-outline:hover {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: #fff !important;
}

:root body.industry-detail-page .industry-detail-cta {
  color: #fff !important;
  background: linear-gradient(135deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
}

:root body.industry-detail-page .industry-detail-cta h2,
:root body.industry-detail-page .industry-detail-cta p,
:root body.industry-detail-page .industry-detail-cta .eyebrow,
:root body.industry-detail-page .industry-detail-cta .cta-highlight-box,
:root body.industry-detail-page .industry-detail-cta .cta-highlight-box strong,
:root body.industry-detail-page .industry-detail-cta .cta-highlight-box span {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

:root body.industry-detail-page .industry-detail-cta .cta-highlight-box {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}

:root body.industry-detail-page .industry-detail-cta .btn-solid-white,
:root body.industry-detail-page .industry-detail-cta .btn-primary {
  color: #014D9D !important;
  -webkit-text-fill-color: #014D9D !important;
  background: #fff !important;
  border: 1px solid #fff !important;
}

:root body.industry-detail-page .industry-detail-cta .btn-solid-white:hover,
:root body.industry-detail-page .industry-detail-cta .btn-primary:hover {
  color: #003B78 !important;
  -webkit-text-fill-color: #003B78 !important;
  background: #EEF5FC !important;
  border-color: #EEF5FC !important;
}

:root body.industry-detail-page .industry-detail-cta .btn-glass-outline {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.75) !important;
}

:root body.industry-detail-page .industry-detail-cta .btn-glass-outline:hover {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: #fff !important;
}

:root body.industry-detail-page section[class*="cta"] {
  color: #fff !important;
  background: linear-gradient(135deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
}

:root body.industry-detail-page section[class*="cta"] h2,
:root body.industry-detail-page section[class*="cta"] p,
:root body.industry-detail-page section[class*="cta"] .eyebrow,
:root body.industry-detail-page section[class*="cta"] strong,
:root body.industry-detail-page section[class*="cta"] span {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

:root body.industry-detail-page section[class*="cta"] .btn-solid-white,
:root body.industry-detail-page section[class*="cta"] .btn-primary {
  color: #014D9D !important;
  -webkit-text-fill-color: #014D9D !important;
  background: #fff !important;
  border: 1px solid #fff !important;
}

:root body.industry-detail-page section[class*="cta"] .btn-solid-white:hover,
:root body.industry-detail-page section[class*="cta"] .btn-primary:hover {
  color: #003B78 !important;
  -webkit-text-fill-color: #003B78 !important;
  background: #EEF5FC !important;
  border-color: #EEF5FC !important;
}

:root body.industry-detail-page section[class*="cta"] .btn-glass-outline {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.75) !important;
}

:root body.industry-detail-page section[class*="cta"] .btn-glass-outline:hover {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: #fff !important;
}

body.service-detail-page[data-service-detail] .app-hero-grid,
body.service-detail-page[data-service-detail] .web-hero-grid,
body.service-detail-page[data-service-detail] .marketing-hero-grid,
body.service-detail-page[data-service-detail] .photogrammetry-hero-grid,
body.service-detail-page[data-service-detail="data-entry"] .de-hero-grid,
body.service-detail-page[data-service-detail] .showcase-split-row,
body.service-detail-page[data-service-detail] .marketing-split-row,
body.service-detail-page[data-service-detail] .spatial-split-row,
body.service-detail-page[data-service-detail="data-entry"] .de-workflow-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: clamp(1.75rem, 4vw, 3.5rem) !important;
  align-items: center !important;
}

body.service-detail-page[data-service-detail] .showcase-copy {
  order: 1;
}

body.service-detail-page[data-service-detail] .showcase-visual {
  order: 2;
}

body.service-detail-page[data-service-detail] .showcase-split-row,
body.service-detail-page[data-service-detail] .marketing-split-row,
body.service-detail-page[data-service-detail] .spatial-split-row,
body.service-detail-page[data-service-detail="data-entry"] .de-workflow-grid {
  margin-bottom: 0;
}

body.service-detail-page[data-service-detail] .app-hero-copy > p,
body.service-detail-page[data-service-detail] .web-hero-copy > p,
body.service-detail-page[data-service-detail] .marketing-hero-copy > p,
body.service-detail-page[data-service-detail] .photogrammetry-hero-copy > p,
body.service-detail-page[data-service-detail="data-entry"] .de-hero-copy > p:not(.de-tagline) {
  max-width: 62ch;
  font-size: 1rem;
  line-height: 1.7;
}

body.service-detail-page[data-service-detail] .service-detail-hero h1,
body.service-detail-page[data-service-detail="data-entry"] .de-hero h1 {
  font-size: clamp(2.15rem, 3.4vw, 3.25rem) !important;
  line-height: 1.12 !important;
}

body.service-detail-page[data-service-detail] .hero-mockup-window,
body.service-detail-page[data-service-detail="data-entry"] .de-hero-image {
  width: 100%;
  max-width: 680px;
  justify-self: end;
}

body.service-detail-page[data-service-detail] .hero-image-frame img,
body.service-detail-page[data-service-detail="data-entry"] .de-hero-image img {
  width: 100%;
  aspect-ratio: 16 / 10.5;
  object-fit: cover;
}

body.service-detail-page[data-service-detail] .showcase-visual img,
body.service-detail-page[data-service-detail] .marketing-split-visual img,
body.service-detail-page[data-service-detail] .spatial-split-visual img,
body.service-detail-page[data-service-detail="data-entry"] .de-workflow-image img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

/* Compact, intentional image stacking on phones for service and industry detail pages. */
@media (max-width: 720px) {
  body.industry-detail-page #main-content .industry-detail-hero {
    padding-top: 2.5rem !important;
    padding-bottom: 1.5rem !important;
  }

  body.industry-detail-page #main-content .industry-detail-hero > .container {
    row-gap: .65rem !important;
  }

  body.industry-detail-page #main-content .industry-detail-hero > .container > :first-child > :is(.hero-badge-pill, .eyebrow) {
    margin-bottom: .35rem !important;
  }

  body.industry-detail-page #main-content .industry-detail-hero > .container > :first-child > h1 {
    margin: .35rem 0 .5rem !important;
  }

  body.industry-detail-page #main-content .industry-detail-hero > .container > :first-child > :is(.lead-tagline-box, .lead) {
    margin-bottom: .35rem !important;
  }

  body.industry-detail-page #main-content .industry-detail-hero > .container > :first-child > :last-child {
    margin-top: .4rem !important;
  }

  body.service-detail-page .service-detail-hero-grid,
  body.industry-detail-page .industry-detail-hero-grid {
    gap: 1.65rem !important;
  }

  body.service-detail-page .service-detail-visual,
  body.service-detail-page .hero-mockup-window,
  body.service-detail-page .showcase-visual,
  body.service-detail-page .marketing-split-visual,
  body.service-detail-page .spatial-split-visual,
  body.service-detail-page .de-hero-image,
  body.service-detail-page .de-workflow-image,
  body.industry-detail-page .industry-detail-visual {
    width: 100% !important;
    min-height: 0 !important;
    max-height: 220px !important;
    aspect-ratio: 16 / 8.8 !important;
    margin: .35rem auto .6rem !important;
    overflow: hidden !important;
    border: 1px solid rgba(1, 77, 157, .22) !important;
    border-radius: 18px !important;
    background: linear-gradient(145deg, #ffffff, #eaf3fc) !important;
    box-shadow: 0 14px 30px rgba(1, 45, 85, .16), 0 0 0 5px rgba(1, 77, 157, .06) !important;
    animation: mobile-detail-image-in .65s var(--ease) both;
  }

  body.service-detail-page .service-detail-visual img,
  body.service-detail-page .hero-image-frame img,
  body.service-detail-page .showcase-visual img,
  body.service-detail-page .marketing-split-visual img,
  body.service-detail-page .spatial-split-visual img,
  body.service-detail-page .de-hero-image img,
  body.service-detail-page .de-workflow-image img,
  body.industry-detail-page .industry-detail-visual img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
  }

  body.service-detail-page .service-detail-body,
  body.industry-detail-page .industry-detail-content {
    padding-top: 2.45rem !important;
    padding-bottom: 2.45rem !important;
  }

  body.service-detail-page .service-detail-panel,
  body.industry-detail-page .industry-detail-card {
    border-radius: 16px !important;
  }
}

@media (max-width: 720px) {
  body.service-detail-page :is(.service-detail-hero, .de-hero) > .container > :first-child:has(> .mobile-hero-more),
  body.industry-detail-page .industry-detail-hero > .container > :first-child:has(> .mobile-hero-more) {
    display: contents !important;
  }

  .mobile-hero-more {
    order: 1;
    color: #fff;
  }

  .mobile-hero-more > summary {
    cursor: pointer;
    font-weight: 700;
    padding: .65rem 0;
  }

  body.service-detail-page :is(.service-detail-hero, .de-hero) > .container:has(> :first-child > .mobile-hero-more) > :last-child,
  body.industry-detail-page .industry-detail-hero > .container:has(> :first-child > .mobile-hero-more) > :last-child {
    order: -1;
  }

  body.service-detail-page :is(.service-detail-hero, .de-hero) > .container > :first-child > :last-child,
  body.industry-detail-page .industry-detail-hero > .container > :first-child > :last-child {
    order: -2;
  }

  body.service-detail-page :is(.service-detail-hero, .de-hero) > .container > :first-child > :is(.hero-badge-pill, .eyebrow, .de-badge),
  body.industry-detail-page .industry-detail-hero > .container > :first-child > :is(.hero-badge-pill, .eyebrow) {
    order: -4;
  }

  body.service-detail-page :is(.service-detail-hero, .de-hero) > .container > :first-child > h1,
  body.industry-detail-page .industry-detail-hero > .container > :first-child > h1 {
    order: -3;
  }

  body.service-detail-page :is(.service-detail-hero, .de-hero) > .container > :first-child > :is(.lead-tagline-box, .lead, .de-tagline),
  body.industry-detail-page .industry-detail-hero > .container > :first-child > :is(.lead-tagline-box, .lead) {
    order: -2;
  }

  body.service-detail-page :is(.service-detail-hero, .de-hero) > .container > :first-child > p:not(.eyebrow, .lead, .de-tagline),
  body.industry-detail-page .industry-detail-hero > .container > :first-child > p:not(.eyebrow, .lead) {
    order: 1;
  }
}

@media (min-width: 721px) {
  .mobile-hero-more > summary {
    display: none;
  }
}

@media (max-width: 720px) {
  body.service-detail-page[data-service-detail] .showcase-split-row,
  body.service-detail-page[data-service-detail] .marketing-split-row,
  body.service-detail-page[data-service-detail] .spatial-split-row,
  body.service-detail-page[data-service-detail="data-entry"] .de-workflow-grid {
    gap: 1.7rem !important;
  }
}

@media (max-width: 380px) {
  body.service-detail-page .window-address-bar,
  body.industry-detail-page .window-address-bar {
    display: none !important;
  }

  body.service-detail-page .window-titlebar,
  body.industry-detail-page .window-titlebar {
    gap: .5rem;
    padding: .45rem .6rem;
  }

  body.service-detail-page .window-status-pill,
  body.industry-detail-page .window-status-pill {
    font-size: .58rem !important;
    white-space: nowrap;
  }
}

@keyframes mobile-detail-image-in {
  from { opacity: 0; transform: translateY(12px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 980px) {
  body.service-detail-page[data-service-detail] .app-hero-grid,
  body.service-detail-page[data-service-detail] .web-hero-grid,
  body.service-detail-page[data-service-detail] .marketing-hero-grid,
  body.service-detail-page[data-service-detail] .photogrammetry-hero-grid,
  body.service-detail-page[data-service-detail="data-entry"] .de-hero-grid,
  body.service-detail-page[data-service-detail] .showcase-split-row,
  body.service-detail-page[data-service-detail] .marketing-split-row,
  body.service-detail-page[data-service-detail] .spatial-split-row,
  body.service-detail-page[data-service-detail="data-entry"] .de-workflow-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 2rem !important;
  }

  body.service-detail-page[data-service-detail="data-entry"] .de-copy {
    order: 1;
  }

  body.service-detail-page[data-service-detail="data-entry"] .de-workflow-image {
    order: 2;
  }

  body.service-detail-page[data-service-detail] .hero-mockup-window,
  body.service-detail-page[data-service-detail="data-entry"] .de-hero-image,
  body.service-detail-page[data-service-detail] .showcase-visual,
  body.service-detail-page[data-service-detail] .marketing-split-visual,
  body.service-detail-page[data-service-detail] .spatial-split-visual,
  body.service-detail-page[data-service-detail="data-entry"] .de-workflow-image {
    width: 100%;
    max-width: 680px;
    justify-self: center;
    margin: 0 auto;
  }
}

:root body.internal-page .contact-page-hero {
  color: #fff !important;
  background:
    radial-gradient(circle at 82% 18%, rgba(77, 145, 206, 0.28), transparent 34%),
    linear-gradient(135deg, #002B55 0%, #013E7A 54%, #014D9D 100%) !important;
}

:root body.internal-page .contact-page-hero .eyebrow,
:root body.internal-page .contact-page-hero h1,
:root body.internal-page .contact-page-hero p {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

:root body.internal-page .contact-page-hero .contact-hero-cta .btn-primary {
  color: #014D9D !important;
  -webkit-text-fill-color: #014D9D !important;
  background: #fff !important;
  border: 1px solid #fff !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22) !important;
}

:root body.internal-page .contact-page-hero .contact-hero-cta .btn-primary:hover,
:root body.internal-page .contact-page-hero .contact-hero-cta .btn-primary:focus-visible {
  color: #003B78 !important;
  -webkit-text-fill-color: #003B78 !important;
  background: #EEF5FC !important;
  border-color: #EEF5FC !important;
}

:root body.internal-page .contact-page-hero .contact-whatsapp-cta {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: #168A47 !important;
  border-color: #168A47 !important;
}

:root body.internal-page .contact-page-hero .contact-whatsapp-cta:hover,
:root body.internal-page .contact-page-hero .contact-whatsapp-cta:focus-visible {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: #11763C !important;
  border-color: #11763C !important;
}

:root[data-theme='dark'] body.internal-page .locations-premium-section .location-card-premium {
  background: #0D1724 !important;
  border-color: rgba(143, 170, 196, 0.24) !important;
}

:root[data-theme='dark'] body.internal-page .locations-premium-section .location-number-premium,
:root[data-theme='dark'] body.internal-page .locations-premium-section .detail-label-premium {
  color: #9BB6CF !important;
  -webkit-text-fill-color: #9BB6CF !important;
}

:root[data-theme='dark'] body.internal-page .locations-premium-section .detail-value-premium,
:root[data-theme='dark'] body.internal-page .locations-premium-section .detail-value-premium a {
  color: #D5E2EF !important;
  -webkit-text-fill-color: #D5E2EF !important;
}

:root[data-theme='dark'] body.internal-page .locations-premium-section .detail-value-premium a:hover,
:root[data-theme='dark'] body.internal-page .locations-premium-section .detail-value-premium a:focus-visible {
  color: #8FC4FF !important;
  -webkit-text-fill-color: #8FC4FF !important;
}

.home-page .hero {
  min-height: 100vh !important;
  min-height: 100svh !important;
  height: 100vh !important;
  height: 100svh !important;
  max-height: none !important;
  width: 100vw !important;
  padding: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  display: flex !important;
  align-items: stretch !important;
}

.home-page .hero-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  position: absolute !important;
  inset: 0 !important;
  gap: 0 !important;
}

.home-page .hero-grid::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, .66), rgba(0, 0, 0, .22) 58%, transparent 100%),
    linear-gradient(0deg, rgba(0, 0, 0, .38), transparent 68%) !important;
}

.home-page .hero-copy {
  display: block !important;
  position: absolute !important;
  z-index: 2 !important;
  left: clamp(1.25rem, 8vw, 7rem) !important;
  bottom: clamp(1.5rem, 10vh, 6rem) !important;
  width: min(760px, calc(100% - 2.5rem)) !important;
  max-width: 760px !important;
}

.home-page .hero-copy::before {
  content: none !important;
  display: none !important;
}

.home-page .hero .hero-actions .btn-primary {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: #014D9D !important;
  border: 1px solid #014D9D !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .28) !important;
}

.home-page .spatial-visual {
  position: absolute !important;
  inset: 0 !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  animation: none !important;
  overflow: hidden !important;
}

.home-page .spatial-visual video {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
}

:root[data-theme='dark'] .home-page .service-quick-grid .service-pill-panel {
  background: #0D1724 !important;
  border: 1px solid rgba(143, 170, 196, 0.24) !important;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.32) !important;
}

:root[data-theme='dark'] .home-page .service-quick-grid .service-pill-copy .eyebrow {
  color: #A7C9EB !important;
  -webkit-text-fill-color: #A7C9EB !important;
}

:root[data-theme='dark'] .home-page .service-quick-grid .service-pill-copy h3 {
  color: #F6F9FC !important;
  -webkit-text-fill-color: #F6F9FC !important;
}

:root[data-theme='dark'] .home-page .service-quick-grid .service-pill-copy > p:not(.eyebrow) {
  color: #C3D2E0 !important;
  -webkit-text-fill-color: #C3D2E0 !important;
}

:root[data-theme='dark'] .home-page .service-quick-grid .service-pill-copy .service-learn-more,
:root[data-theme='dark'] .home-page .service-quick-grid .service-pill-copy .service-learn-more b {
  color: #8FC4FF !important;
  -webkit-text-fill-color: #8FC4FF !important;
}

/* Colorful footer finish: stronger separation, accents, and link hierarchy. */
.footer {
  position: relative !important;
  overflow: hidden !important;
  background:
    radial-gradient(circle at 8% 12%, rgba(255, 255, 255, .16), transparent 28%),
    radial-gradient(circle at 92% 84%, rgba(1, 77, 157, .18), transparent 30%),
    linear-gradient(145deg, #5f6872 0%, #737d87 54%, #4d5660 100%) !important;
  border-top: 3px solid #014D9D !important;
  color: #D6E8FA !important;
}
.footer::before {
  background: linear-gradient(90deg, transparent, rgba(90, 190, 255, .18), transparent) !important;
  opacity: 1 !important;
}
.footer::after {
  position: absolute;
  inset: auto -10% 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, #ff3b3b, #62c5ff, transparent);
  content: "";
  opacity: .8;
}
.footer-premium-container,
.footer-service-directory,
.footer-contact-panel,
.footer-legal-bar {
  position: relative;
  z-index: 1;
}
.footer-contact-panel {
  background: linear-gradient(135deg, rgba(1, 77, 157, .72), rgba(58, 69, 81, .78)) !important;
  border-color: rgba(255, 255, 255, .26) !important;
  box-shadow: 0 18px 45px rgba(0, 0, 0, .2) !important;
}
.footer-contact-details h2,
.footer-service-column h2 a {
  color: #ffffff !important;
}
.footer-contact-details h2::before,
.footer-service-column h2::after {
  background: linear-gradient(90deg, #ff3b3b, #62c5ff) !important;
}
.footer-contact-details p,
.footer-contact-details a,
.footer-service-column li a,
.footer-designed-by {
  color: #B9D4ED !important;
}
.footer-contact-details a:hover,
.footer-service-column li a:hover,
.footer-service-column li a:focus-visible,
.footer-service-column h2 a:hover {
  color: #ffffff !important;
  text-shadow: 0 0 16px rgba(98, 197, 255, .45);
}
.footer-service-column {
  border-color: rgba(255, 255, 255, .22) !important;
  background: rgba(255, 255, 255, .1) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05) !important;
}
.footer-service-column:nth-child(1) {
  background: linear-gradient(145deg, rgba(1, 77, 157, .3), rgba(255, 255, 255, .08)) !important;
  border-color: rgba(98, 197, 255, .42) !important;
}
.footer-service-column:nth-child(2) {
  background: linear-gradient(145deg, rgba(117, 77, 255, .24), rgba(255, 255, 255, .08)) !important;
  border-color: rgba(181, 154, 255, .42) !important;
}
.footer-service-column:nth-child(3) {
  background: linear-gradient(145deg, rgba(220, 52, 72, .22), rgba(255, 255, 255, .08)) !important;
  border-color: rgba(255, 126, 137, .42) !important;
}
.footer-service-column:nth-child(4) {
  background: linear-gradient(145deg, rgba(22, 157, 132, .24), rgba(255, 255, 255, .08)) !important;
  border-color: rgba(126, 231, 196, .42) !important;
}
.footer-service-column:nth-child(5) {
  background: linear-gradient(145deg, rgba(215, 151, 20, .24), rgba(255, 255, 255, .08)) !important;
  border-color: rgba(255, 209, 102, .48) !important;
}
.footer-service-column:nth-child(1) h2::after { background: #62c5ff !important; }
.footer-service-column:nth-child(2) h2::after { background: #b59aff !important; }
.footer-service-column:nth-child(3) h2::after { background: #ff7e89 !important; }
.footer-service-column:nth-child(4) h2::after { background: #7ee7c4 !important; }
.footer-service-column:nth-child(5) h2::after { background: #ffd166 !important; }
.footer-service-column:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 16px 32px rgba(16, 27, 42, .22), inset 0 1px 0 rgba(255, 255, 255, .12) !important;
}
.footer-service-column li a::before { color: #62c5ff !important; }
.footer-legal-bar {
  border-top-color: rgba(117, 199, 255, .2) !important;
  color: #8FB0CC !important;
}
.footer-legal-bar a { color: #B9D4ED !important; }
.footer-legal-bar a:hover,
.footer-legal-bar a:focus-visible { color: #ffffff !important; }

/* Preserve each social brand color with one consistent interaction style. */
.footer-social-btn {
  background: rgba(255, 255, 255, .92) !important;
  border-color: rgba(255, 255, 255, .72) !important;
}
.footer-social-btn:nth-child(1) { color: #0A66C2 !important; }
.footer-social-btn:nth-child(2) { color: #111111 !important; }
.footer-social-btn:nth-child(3) { color: #E1306C !important; }
.footer-social-btn:nth-child(4) { color: #1877F2 !important; }
.footer-social-btn:hover,
.footer-social-btn:focus-visible {
  background: #ffffff !important;
  border-color: currentColor !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 18px rgba(15, 31, 48, .24) !important;
}
.footer-social-btn:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 3px !important;
}

/* Clear section-level state for Services and Industries navigation. */
.site-nav .services-nav-item.nav-section-active > a,
.site-nav .industries-nav-item.nav-section-active > a {
  color: #014D9D !important;
  font-weight: 800 !important;
  background: rgba(1, 77, 157, .08) !important;
  border-radius: 8px !important;
}
.site-nav .services-nav-item.nav-section-active > a::after,
.site-nav .industries-nav-item.nav-section-active > a::after {
  color: #014D9D !important;
}
.site-nav .services-nav-item.nav-section-active > .nav-expand-toggle,
.site-nav .industries-nav-item.nav-section-active > .nav-expand-toggle {
  color: #014D9D !important;
}
@media (max-width: 980px) {
  .site-nav .services-nav-item.nav-section-active > a,
  .site-nav .industries-nav-item.nav-section-active > a {
    border-left: 3px solid #014D9D !important;
    border-radius: 0 8px 8px 0 !important;
  }
}

/* Site-wide interaction polish. */
html {
  scroll-behavior: smooth;
}

[id] {
  scroll-margin-top: 7rem;
}

img {
  display: block;
}

:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid rgba(1, 77, 157, .42) !important;
  outline-offset: 3px !important;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* Contact final CTA: keep the full section readable instead of fading into white. */
body.internal-page .final-cta-section {
  background:
    radial-gradient(circle at 85% 12%, rgba(98, 197, 255, .2), transparent 34%),
    linear-gradient(135deg, #002B55 0%, #013E7A 56%, #014D9D 100%) !important;
  border-top: 1px solid rgba(255, 255, 255, .18) !important;
  border-bottom: 3px solid #62C5FF !important;
}
body.internal-page .final-cta-content h2 {
  color: #ffffff !important;
  white-space: normal !important;
  text-wrap: balance;
}
body.internal-page .final-cta-content p {
  color: rgba(255, 255, 255, .82) !important;
}
body.internal-page .final-cta-actions .btn-primary {
  color: #014D9D !important;
  background: #ffffff !important;
  border-color: #ffffff !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .2) !important;
}
body.internal-page .final-cta-actions .btn-primary:hover,
body.internal-page .final-cta-actions .btn-primary:focus-visible {
  color: #003B78 !important;
  background: #EAF4FF !important;
  border-color: #EAF4FF !important;
}
body.internal-page .final-cta-actions .btn-quiet {
  color: #ffffff !important;
  background: rgba(255, 255, 255, .1) !important;
  border-color: rgba(255, 255, 255, .58) !important;
}
body.internal-page .final-cta-actions .btn-quiet:hover,
body.internal-page .final-cta-actions .btn-quiet:focus-visible {
  color: #003B78 !important;
  background: #ffffff !important;
  border-color: #ffffff !important;
}

/* Compact the service directory on small screens without changing desktop cards. */
@media (max-width: 700px) {
  .footer-service-column {
    padding: .5rem .55rem .58rem !important;
  }
  .footer-service-column h2 {
    min-height: 1.75rem !important;
    margin-bottom: .35rem !important;
    padding-bottom: .35rem !important;
    font-size: .88rem !important;
  }
  .footer-service-column ul {
    gap: 0 !important;
  }
  .footer-service-column li a {
    font-size: .76rem !important;
    line-height: 1.25 !important;
  }
}
