/* Public Hyperix theme layer. Admin pages deliberately do not load this file. */
:root {
  color-scheme: dark;
  /* Public design tokens. Keep these aligned with the established Inter/Hyperix palette. */
  --hx-font-sans: "Inter", sans-serif;
  --hx-font-mono: ui-monospace, SFMono-Regular, Consolas, monospace;
  --hx-weight-regular: 400;
  --hx-weight-medium: 500;
  --hx-weight-semibold: 600;
  --hx-weight-bold: 700;
  --hx-type-page-title: clamp(2.5rem, 5vw, 4.75rem);
  --hx-type-section-title: clamp(2rem, 3.8vw, 3.75rem);
  --hx-type-subsection: clamp(1.25rem, 2vw, 1.75rem);
  --hx-type-talk-heading: clamp(2.7rem, 5.2vw, 5.25rem);
  --hx-type-body: 1rem;
  --hx-type-caption: .8rem;
  --hx-type-eyebrow: .72rem;
  --hx-type-navigation: .82rem;
  --hx-line-heading: 1.08;
  --hx-line-body: 1.65;
  --hx-letter-eyebrow: .14em;
  --hx-space-section: clamp(4.25rem, 8vw, 7.5rem);
  --hx-space-grid: clamp(1.25rem, 3vw, 2.5rem);
  --hx-space-card: clamp(1.25rem, 2.5vw, 2rem);
  --hx-space-cta-columns: clamp(2.5rem, 7vw, 7rem);
  --hx-content-width: 1240px;
  --hx-radius-control: 4px;
  --hx-color-accent: #1385ff;
  --hx-color-focus: #4da8ff;
  --hx-color-page-bg: #040506;
  --hx-color-page-text: #f4f7fa;
  --hx-color-page-muted: #c2c9d4;
  --hx-color-page-border: #263544;
  --hx-color-light-bg: #f5f7fa;
  --hx-color-light-text: #142b43;
  --hx-color-light-muted: #4a5d70;
  --hx-color-light-border: #d7e0e9;
  --hx-color-dark-surface: #070c12;
  --hx-color-dark-surface-heading: #f6f8fb;
  --hx-color-dark-surface-copy: #cbd6e0;
  --hx-color-dark-surface-muted: #9aa9b8;
  --hx-color-dark-surface-eyebrow: #91d8dc;
  --hx-color-dark-surface-border: #263544;
  --hx-color-primary-button: #0e79bd;
  --hx-color-primary-button-hover: #0b6fae;
  --hx-color-primary-button-text: #ffffff;
  --hx-color-secondary-button-bg: transparent;
  --hx-color-secondary-button-border: #69b7ed;
  --hx-color-secondary-button-text: #f4f7fa;
  --hx-color-secondary-button-hover: #14283a;
}
body { font-family: var(--hx-font-sans); font-size: var(--hx-type-body); }
.hx-eyebrow { font-family: var(--hx-font-sans); font-size: var(--hx-type-eyebrow); font-weight: var(--hx-weight-medium); letter-spacing: var(--hx-letter-eyebrow); text-transform: uppercase; }
html[data-theme="light"] { color-scheme: light; }
html[data-theme="light"], html[data-theme="light"] body {
  --hx-color-page-bg: #f5f7fa;
  --hx-color-page-text: #142b43;
  --hx-color-page-muted: #4a5d70;
  --hx-color-page-border: #d7e0e9;
  --hx-color-accent: #075fae;
  --hx-color-focus: #075fae;
  --hx-bg: #f5f7fa;
  --hx-surface: #ffffff;
  --hx-ink: #142b43;
  --hx-muted: #4a5d70;
  --hx-blue: #075fae;
  --hx-brand: #087bd4;
  --hx-action: #075fae;
  --hx-line: #d7e0e9;
  background: #f5f7fa;
  color: #142b43;
}
html[data-theme="light"] :is(.hx-home, .hx-service-site) {
  --hx-bg: #f5f7fa;
  --hx-surface: #ffffff;
  --hx-ink: #142b43;
  --hx-muted: #4a5d70;
  --hx-blue: #075fae;
  --hx-brand: #087bd4;
  --hx-action: #075fae;
  --hx-line: #d7e0e9;
  background: var(--hx-bg);
  color: var(--hx-ink);
  color-scheme: light;
}
html[data-theme="light"] :is(.hx-home, .hx-service-site) :is(h1, h2, h3, h4) { color: #142b43; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) p { color: var(--hx-muted); }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-lead { color: #40566c; }

/* Dark components keep their own text contrast even inside the public light theme. */
.hx-dark-surface {
  --hx-surface-heading: var(--hx-color-dark-surface-heading);
  --hx-surface-copy: var(--hx-color-dark-surface-copy);
}
html[data-theme="light"] .hx-dark-surface :is(h1, h2, h3, h4, h5, h6) { color: var(--hx-surface-heading); }
html[data-theme="light"] .hx-dark-surface p { color: var(--hx-surface-copy); }

/* The photo-led home hero and service image captions retain a dark overlay for contrast. */
html[data-theme="light"] .hx-home .hx-hero { color: #f5f8fc; }
html[data-theme="light"] .hx-home .hx-hero :is(h1, h2, h3, p, .hx-eyebrow, .hx-lead, .hx-hero-meta, .hx-hero-signoff) { color: #f5f8fc; }
html[data-theme="light"] .hx-home .hx-hero .hx-hero-accent { color: #8fc5ff; }
html[data-theme="light"] .hx-home .hx-hero-media::after {
  background: linear-gradient(90deg, #07111ceF 0%, #07111cD8 28%, #07111c88 52%, #07111c12 82%),
    linear-gradient(0deg, #07111c 0%, #07111c20 28%, #07111c00 65%);
}

/* Shared navigation, menus and footer. */
html[data-theme="light"] :is(.hx-home, .hx-service-site) .site-header,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .site-footer { background: var(--hx-bg); }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .desktop-nav > a,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .nav-disclosure > button,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .site-footer nav a { color: #334b62; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .desktop-nav > a:hover,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .nav-disclosure:hover > button,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .desktop-nav .is-active,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .site-footer nav a:hover { color: #075fae; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .header-cta { color: #075fae; border-color: #a9bfd3; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) :is(.nav-menu, .mobile-nav nav) {
  background: #ffffff;
  border-color: var(--hx-line);
  box-shadow: 0 14px 32px #18345120;
}
html[data-theme="light"] :is(.hx-home, .hx-service-site) .nav-menu li a,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .mobile-nav nav a { color: #142b43; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .site-footer nav h2 { color: #5b6d80; }

.hx-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-width: 42px;
  min-height: 42px;
  padding: .45rem .65rem;
  border: 1px solid currentColor;
  border-color: color-mix(in srgb, var(--hx-ink, #eef4fa), transparent 70%);
  border-radius: 999px;
  background: transparent;
  color: var(--hx-ink, #eef4fa);
  font: inherit;
  font-size: .8rem;
  cursor: pointer;
}
.hx-theme-toggle:hover { border-color: var(--hx-blue, #69b1ff); color: var(--hx-blue, #69b1ff); }
.hx-theme-toggle-icon { width: 1.15rem; font-size: 1.15rem; line-height: 1; text-align: center; }
.hx-theme-toggle-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.desktop-nav .hx-theme-toggle { margin-left: .1rem; }
.mobile-nav nav .hx-theme-toggle { margin-top: .8rem; }

/* Light surfaces across home, company, services, contact and legal content. */
html[data-theme="light"] :is(.hx-home, .hx-service-site) :is(.hx-services, .hx-insights, .sv-delivery, .ed-about-work, .ed-about-principles, .ed-about-team, .ed-about-industries, .ed-about-people-tech, .ed-about-close) {
  background-color: #ffffff;
  border-color: var(--hx-line);
}
html[data-theme="light"] .hx-home .hx-services { background: #ffffff; }
html[data-theme="light"] .hx-home .hx-approach {
  background: radial-gradient(ellipse at 95% 5%, #e3f1ff 0%, #f4f8fc 48%, #f7f9fb 100%);
}
html[data-theme="light"] .hx-home .hx-insights { background: #edf3f8; }
html[data-theme="light"] .hx-home .hx-home-one { color: #f5f8fc; }
html[data-theme="light"] .hx-home .hx-home-one :is(h2, p, a) { color: inherit; }
html[data-theme="light"] .hx-home .hx-home-one .hx-home-one-cta { color: #fff; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-service-benefit,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-benefits h3,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-process-heading h3,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .sv-accordion-trigger,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .sv-story li { color: #20384e; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-capabilities { color: #42617c; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-process-marker { background: #fff; box-shadow: 0 0 0 5px #f5f7fa; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .sv-contact {
  background: radial-gradient(ellipse at 82% 42%, #dceeff, transparent 52%), #edf4fa;
  border-color: #c7dced;
}
html[data-theme="light"] :is(.hx-home, .hx-service-site) .sv-hero-media figcaption { color: #f4f8fc; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .sv-hero-media::after { background: linear-gradient(transparent, #06111cd9); }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .sv-accordion-panel p { color: #43586b; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) input,
html[data-theme="light"] :is(.hx-home, .hx-service-site) textarea,
html[data-theme="light"] :is(.hx-home, .hx-service-site) select {
  background: #ffffff;
  color: #142b43;
  border-color: #b8c7d6;
}
html[data-theme="light"] :is(.hx-home, .hx-service-site) input::placeholder,
html[data-theme="light"] :is(.hx-home, .hx-service-site) textarea::placeholder { color: #687b8d; }

/* About page foundations and its editorial team cards. */
html[data-theme="light"] .ed-about-page { background: var(--hx-bg); }
html[data-theme="light"] .ed-about-pillars,
html[data-theme="light"] .ed-about-principle-list,
html[data-theme="light"] .ed-about-pillars article + article,
html[data-theme="light"] .ed-about-principle-list article + article,
html[data-theme="light"] .ed-about-industry-grid article,
html[data-theme="light"] .ed-about-people-tech-grid article { border-color: var(--hx-line); }
html[data-theme="light"] .ed-about-page .ed-about-close { background: radial-gradient(ellipse at 85% 50%, #d8f0f1, transparent 52%), #ffffff; }
html[data-theme="light"] .ed-about-page .ed-about-close .hx-eyebrow { color: #075f9e; }
html[data-theme="light"] .ed-about-work .ed-about-pillars .ed-about-number { color: #075f9e; }
html[data-theme="light"] .ed-about-work .ed-about-pillars .ed-about-pillar-lead { color: #40566c; }

/* Contact keeps its atmospheric hero and map as dark visual anchors. */
html[data-theme="light"] .ct-hero { background: #050709; }
html[data-theme="light"] .ct-hero :is(h1, p, .hx-eyebrow, .hx-lead, .ct-hero-footnote) { color: #f3f7fb; }
html[data-theme="light"] .ct-hero h1 span { color: #8bc9ff; }
html[data-theme="light"] .ct-information h2 span,
html[data-theme="light"] .ct-closing h2 span { color: #075f9e; }
html[data-theme="light"] .ct-option-label,
html[data-theme="light"] .ct-option-value,
html[data-theme="light"] .ct-option-detail { color: #334b62; }
html[data-theme="light"] .ct-contact-option:is(:hover, :focus-visible) .ct-option-value { color: #075fae; }
html[data-theme="light"] .ct-availability a,
html[data-theme="light"] .ct-privacy a { color: #075b8c; }
html[data-theme="light"] .ct-location { background: #edf3f8; }
html[data-theme="light"] .ct-location-card {
  background: #ffffff;
  border-color: #d2dde7;
}
html[data-theme="light"] .ct-location-card.is-active { background: #f3f9fc; border-color: #6aaacb; }
html[data-theme="light"] .ct-location-city { color: #142b43; }
html[data-theme="light"] .ct-location-state,
html[data-theme="light"] .ct-location-address,
html[data-theme="light"] .ct-virtual-label { color: #4a5d70; }
html[data-theme="light"] .ct-location-index,
html[data-theme="light"] .ct-location-map-link { color: #075fae; }
html[data-theme="light"] .ct-map-pin { color: #142b43; }
html[data-theme="light"] .ct-map-pin .ct-pin-label { color: #142b43; text-shadow: 0 1px 4px #fff; }
html[data-theme="light"] .ct-nearest-button { color: #075fae; border-color: #a9c4d8; background: #fff; }
html[data-theme="light"] .ct-location-status { color: #42576b; }
html[data-theme="light"] .ct-closing { background: radial-gradient(ellipse at 50% 100%, #dceeff, transparent 70%), var(--hx-bg); }

/* Hyperix One keeps its photo hero; the product story panels use the light palette. */
html[data-theme="light"] .hx-one {
  --one-ink: #142b43;
  --one-muted: #4a5d70;
  --one-teal: #087b91;
  background: #f5f7fa;
  color: #142b43;
}
html[data-theme="light"] .hx-one :is(h1, h2, h3) { color: #142b43; }
html[data-theme="light"] .hx-one .one-hero :is(h1, h2, h3, p, .one-eyebrow, .hx-text-link) { color: #f5f8fc; }
html[data-theme="light"] .hx-one .one-hero::after { background: linear-gradient(90deg, #010305ed 0%, #010305bb 46%, #01030528 100%); }
html[data-theme="light"] .hx-one .one-hero-rule { background: #ffffff60; }
html[data-theme="light"] .hx-one .one-vision-band { background: linear-gradient(110deg, #e8f3fc, #f4f8fb 55%, #e4f3f4); }
html[data-theme="light"] .hx-one .one-vision-band .one-eyebrow,
html[data-theme="light"] .hx-one .one-vision-band h3 { color: #142b43; }
html[data-theme="light"] .hx-one .one-vision-number { color: #8baec3; }
html[data-theme="light"] .hx-one .one-organisation { background: #ffffff; }
html[data-theme="light"] .hx-one .one-pillars article { border-color: #087b91; }

/* The industries story uses image-led scenes; its text stays legible over them. */
html[data-theme="light"] .industries-page { background: #f5f7fa; color: #142b43; }
html[data-theme="light"] .industries-hero { background: #f5f7fa; }
html[data-theme="light"] .industries-hero h1 { color: #142b43; }
html[data-theme="light"] .industries-hero > div { color: #4a5d70; }
html[data-theme="light"] .industry-scenes { background: #f5f7fa; }
html[data-theme="light"] .industries-close { background: #ffffff; color: #142b43; }
html[data-theme="light"] .industries-close > div { color: #4a5d70; }
html[data-theme="light"] .not-found-page { background: #f5f7fa; color: #142b43; }
html[data-theme="light"] .not-found-page p { color: #4a5d70; }
html[data-theme="light"] .jump-to-top { background: #ffffffed; border-color: #9fb0c0; color: #142b43; }

/* Insights index and article pages share the same theme tokens. */
html[data-theme="light"] .pub-hub-filter a { color: #41586d; }
html[data-theme="light"] .pub-hub-filter a:hover,
html[data-theme="light"] .pub-hub-filter a[aria-current="page"] { color: #075b8c; background: #e5f3f7; border-color: #a8d2dc; }
html[data-theme="light"] .blog-search label,
html[data-theme="light"] .blog-card-meta,
html[data-theme="light"] .blog-card-meta time,
html[data-theme="light"] .blog-pagination { color: #4a5d70; }
html[data-theme="light"] .blog-search input { background: #fff; border-color: #b8c7d6; color: #142b43; }
html[data-theme="light"] .pub-article-header .hx-lead { color: #40566c; }
html[data-theme="light"] .pub-hub-feature-copy .pub-category,
html[data-theme="light"] .pub-hub-card-copy .pub-category { color: #075f9e; }
html[data-theme="light"] .pub-hub-feature-copy h2,
html[data-theme="light"] .pub-hub-card-copy h3,
html[data-theme="light"] .pub-related article h3 a { color: #142b43; }
html[data-theme="light"] .pub-hub-feature-copy > p:not(.pub-category),
html[data-theme="light"] .pub-hub-card-copy > p:not(.pub-category),
html[data-theme="light"] .pub-related article > p:not(.pub-category) { color: #4a5d70; }
html[data-theme="light"] .pub-hub-feature { border-color: #d4dee8; }
html[data-theme="light"] .pub-hub-card { background: #fff; border-color: #d4dee8; }
html[data-theme="light"] .pub-hub-card-image { background-color: #e5edf4; }
html[data-theme="light"] .pub-reading aside { background: #fff; border-color: #d4dee8; }
html[data-theme="light"] .pub-reading aside nav .pub-toc-list a { color: #40566c; }
html[data-theme="light"] .pub-reading aside nav .pub-toc-list a:hover,
html[data-theme="light"] .pub-reading aside nav .pub-toc-list a[aria-current="location"] { color: #075b8c; }
html[data-theme="light"] .pub-related article { border-color: #d4dee8; }

/* About team profiles use the shared editorial grid and theme tokens. */
.ed-about-team .ed-about-section-heading > p:not(.hx-eyebrow) { max-width: 66ch; }
.ed-about-team .ed-about-people {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 1.75rem 1.25rem;
  margin-top: 2.25rem;
}
.ed-about-team .ed-about-people > .ed-about-person {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--hx-line, var(--hx-color-page-border));
  border-radius: 6px;
  background: color-mix(in srgb, var(--hx-surface, #0b1118), transparent 4%);
}
.ed-about-team .ed-about-portrait {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  color: var(--hx-color-accent);
  background: linear-gradient(145deg, var(--hx-surface, #0b1118), color-mix(in srgb, var(--hx-color-accent), var(--hx-surface, #0b1118) 88%));
}
.ed-about-team .ed-about-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.ed-about-team .ed-about-portrait--placeholder span {
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  font-weight: 500;
  letter-spacing: .12em;
}
.ed-about-team .ed-about-person-copy { min-width: 0; padding: 1.2rem 1.25rem 1.35rem; }
.ed-about-team .ed-about-person-copy .hx-eyebrow { margin: 0 0 .55rem; color: var(--hx-color-accent); font-size: .66rem; }
.ed-about-team .ed-about-person-copy h3 { margin: 0; font-size: clamp(1.12rem, 1.45vw, 1.35rem); line-height: 1.25; letter-spacing: -.02em; }
.ed-about-team .ed-about-person-title,
.ed-about-team .ed-about-person-bio { margin: .55rem 0 0; color: var(--hx-color-page-muted); font-size: .9rem; line-height: 1.55; }
html[data-theme="light"] .ed-about-team .ed-about-person-copy .hx-eyebrow { color: #075fae; }
html[data-theme="light"] .ed-about-team .ed-about-person-title,
html[data-theme="light"] .ed-about-team .ed-about-person-bio { color: #4a5d70; }
@media (max-width: 900px) {
  .ed-about-team .ed-about-people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
}
@media (max-width: 560px) {
  .ed-about-team .ed-about-people { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .ed-about-team .ed-about-portrait { aspect-ratio: 4 / 5; }
}
html[data-theme="light"] .ed-about-industries { background: #edf3f8; }
html[data-theme="light"] .hx-service-site .ed-about-people-tech { background: #edf3f8; border-color: var(--hx-line); }
html[data-theme="light"] .ed-about-industries .ed-about-section-heading > p,
html[data-theme="light"] .ed-about-people-tech .ed-about-section-heading > p,
html[data-theme="light"] .ed-about-industry-grid p,
html[data-theme="light"] .ed-about-people-tech-grid p { color: #4a5d70; }
html[data-theme="light"] .ed-about-industry-grid h3,
html[data-theme="light"] .ed-about-people-tech-grid h3 { color: #142b43; }

@media (max-width: 1000px) {
  .desktop-nav .hx-theme-toggle { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .hx-theme-toggle { transition: none !important; }
}

/* Light-mode process cards. Dark mode continues using the original timeline. */
html[data-theme="light"] .hx-process {
  --hx-process-gap: 1rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--hx-process-gap);
  margin-top: 1.6rem;
}
html[data-theme="light"] .hx-process::before { display: none; }
html[data-theme="light"] .hx-process li {
  display: flex;
  flex-direction: column;
  min-height: 224px;
  padding: 1.25rem;
  border: 1px solid #d4e0eb;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 7px 22px #1834510b;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
html[data-theme="light"] .hx-process-marker {
  box-sizing: border-box;
  width: 34px;
  height: 34px;
  border: 1px solid #a8c9e5;
  border-radius: 50%;
  background: #eef6fd;
  color: #075fae;
  box-shadow: none;
  font-size: .72rem;
}
html[data-theme="light"] .hx-process li > div { padding-top: .9rem; }
html[data-theme="light"] .hx-process h4 {
  margin: 0 0 .5rem;
  color: #142b43;
  font-size: 1.12rem;
  line-height: 1.25;
}
html[data-theme="light"] .hx-process p {
  max-width: 30ch;
  color: #4a5d70;
  font-size: .9rem;
  line-height: 1.6;
}
html[data-theme="light"] .hx-process li:not(:last-child)::after {
  display: block;
  top: 50%;
  right: -1rem;
  left: auto;
  width: var(--hx-process-gap);
  height: 1px;
  background: #8eb8dc;
  transform: translateY(-50%);
}
html[data-theme="light"] .hx-process[data-reveal="playing"] .hx-process-marker {
  animation-name: hx-process-marker-light;
}
html[data-theme="light"] .hx-process-heading h3 { color: #334b62; }
@keyframes hx-process-marker-light {
  from { border-color: #a8c9e5; box-shadow: none; }
  to { border-color: #75a9d5; box-shadow: 0 0 0 3px #e8f3fc; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  html[data-theme="light"] .hx-process li:hover {
    border-color: #a9c8e2;
    box-shadow: 0 12px 28px #18345114;
    transform: translateY(-2px);
  }
}
@media (max-width: 1100px) {
  html[data-theme="light"] .hx-process {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
  html[data-theme="light"] .hx-process li:nth-child(even)::after { display: none; }
}
@media (max-width: 600px) {
  html[data-theme="light"] .hx-process {
    grid-template-columns: minmax(0, 1fr);
    gap: .85rem;
  }
  html[data-theme="light"] .hx-process li { min-height: 0; padding: 1.1rem; }
  html[data-theme="light"] .hx-process li:not(:last-child)::after { display: none; }
}
.ct-nearest-button { min-height: 44px; margin-top: 1rem; padding: .65rem .9rem; border: 1px solid #375674; border-radius: 4px; background: #101d2a; color: #d8edff; font: inherit; font-size: .9rem; cursor: pointer; }
.ct-nearest-button:hover { border-color: var(--hx-blue); color: #fff; }
.ct-nearest-button:focus-visible { outline: 2px solid var(--hx-blue); outline-offset: 3px; }
.ct-location-status { max-width: 52ch; margin: .7rem 0 0; color: #b4c2cf; font-size: .82rem; line-height: 1.6; }
.ct-location-card.is-active { border-color: #55c2e568; }
.ct-config-notice { margin-block: 1rem; padding: .9rem 1rem; border: 1px solid #9b6b2d; color: #8a4a00; background: #fff8ec; font-size: .9rem; line-height: 1.55; }
html:not([data-theme="light"]) .ct-config-notice { color: #ffe2b5; background: #241a0d; border-color: #795825; }
.legal-draft-notice { max-width: 78ch; margin: 1rem auto 2rem; padding: 1rem 1.2rem; border: 1px solid #b9853b; border-radius: 4px; color: #71440a; background: #fff7e8; font-size: .92rem; line-height: 1.6; }
html:not([data-theme="light"]) .legal-draft-notice { color: #ffe4ba; background: #241b10; border-color: #785b31; }
@media (prefers-reduced-motion: reduce) {
  html[data-theme="light"] .hx-process li { transition: none; }
  html[data-theme="light"] .hx-process[data-reveal="playing"] .hx-process-marker { animation: none; }
}

/* Mobile Services disclosure shared by static pages and the CMS public shell. */
.mobile-nav-services { display: grid; gap: .4rem; }
.mobile-nav-services-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 48px;
  padding: .65rem 0;
  border-bottom: 1px solid var(--hx-line, #293746);
  background: transparent;
  color: var(--hx-ink, #eef4fa);
  text-align: left;
  cursor: pointer;
}
.mobile-nav-services-toggle:focus-visible { outline: 2px solid var(--hx-blue, #1385ff); outline-offset: 3px; }
.mobile-nav-chevron {
  flex: 0 0 .55rem;
  width: .55rem;
  height: .55rem;
  margin: 0 .35rem .2rem .8rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform .16s ease;
}
.mobile-nav-services-toggle[aria-expanded="true"] .mobile-nav-chevron { transform: rotate(225deg); margin-bottom: -.2rem; }
.mobile-nav-submenu { display: grid; padding-left: .8rem; border-left: 1px solid var(--hx-line, #293746); }
.mobile-nav nav .mobile-nav-submenu a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .55rem .7rem;
  border-bottom: 1px solid var(--hx-line, #293746);
  color: var(--hx-muted, #c2c9d4);
  font-size: .92em;
  line-height: 1.4;
}
.mobile-nav nav .mobile-nav-submenu a:last-child { border-bottom: 0; }
.mobile-nav nav :is(a, summary):focus-visible { outline: 2px solid var(--hx-blue, #1385ff); outline-offset: 3px; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .mobile-nav-services-toggle { color: #142b43; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .mobile-nav nav .mobile-nav-submenu a { color: #40566c; }
.mobile-nav-services-toggle:is([aria-expanded="true"], .is-active) { color: var(--hx-blue, #1385ff); }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .mobile-nav-services-toggle:is([aria-expanded="true"], .is-active) { color: #075fae; }
@media (prefers-reduced-motion: reduce) { .mobile-nav-chevron { transition: none; } }
.hx-tech-toggle-icon { display: inline-grid; place-items: center; width: 1rem !important; height: 1rem; }
.hx-tech-toggle-icon svg { grid-area: 1 / 1; width: .8rem; height: .8rem; fill: currentColor; }
.hx-tech-toggle[aria-pressed="false"] .hx-tech-pause,
.hx-tech-toggle[aria-pressed="true"] .hx-tech-play { display: none; }

/* Keep long public article content inside the viewport on narrow devices. */
@media (max-width: 767px) {
  .pub-reading, .pub-reading > *, .pub-body { min-width: 0; }
  .pub-body { overflow-wrap: anywhere; }
  .pub-body :is(table, pre, .wp-block-table) { display: block; max-width: 100%; overflow-x: auto; }
  .pub-body img, .pub-body video, .pub-body iframe { max-width: 100%; }
  .pub-body iframe { width: 100%; }
  .ct-fields { grid-template-columns: minmax(0, 1fr); }
  .ct-fields .ct-wide { grid-column: 1; }
  .ct-form .ct-submit { min-height: 48px; }
}

/* Shared thin-line arrows replace font-dependent Unicode glyphs in public UI. */
.hx-ui-arrow {
  display: inline-block !important;
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -.14em;
}
.hx-button > .hx-ui-arrow,
.hx-text-link > .hx-ui-arrow,
.header-cta > .hx-ui-arrow { transition: transform .22s ease; }
.hx-button:hover > .hx-ui-arrow,
.hx-text-link:hover > .hx-ui-arrow,
.header-cta:hover > .hx-ui-arrow { transform: translate(2px, -2px); }
.hx-service-arrow > .hx-ui-arrow { width: 1em; height: 1em; }
@media (prefers-reduced-motion: reduce) {
  .hx-ui-arrow, .hx-button > .hx-ui-arrow, .hx-text-link > .hx-ui-arrow,
  .header-cta > .hx-ui-arrow { transition: none; }
}

/* Tighten small-screen composition without changing approved desktop layouts. */
@media (max-width: 600px) {
  :is(.hx-home, .hx-service-site) { --hx-nav-offset: 4.75rem; }
  :is(.hx-home, .hx-service-site) .site-header {
    min-height: 68px;
    padding: .55rem 1rem;
    gap: .75rem;
  }
  :is(.hx-home, .hx-service-site) .header-logo { width: 136px; flex-basis: 136px; }
  :is(.hx-home, .hx-service-site) .mobile-nav summary { display: flex; align-items: center; min-height: 44px; padding: .5rem .15rem; list-style: none; }
  :is(.hx-home, .hx-service-site) .mobile-nav summary::-webkit-details-marker { display: none; }
  :is(.hx-home, .hx-service-site) .mobile-nav nav { padding: .75rem 1.25rem; }

  /* Keep the full mobile hero on the dark photographic canvas. */
  .hx-home .hx-hero { min-height: 0; overflow: hidden; background: #07111c; }
  .hx-home .hx-hero-media { position: absolute; inset: 0; height: 100%; }
  .hx-home .hx-hero-media img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 62% center; }
  .hx-home .hx-hero-media::after {
    background: linear-gradient(180deg, #07111c55 0%, #07111c99 38%, #07111cf2 100%),
      linear-gradient(90deg, #07111c88 0%, transparent 100%);
  }
  .hx-home .hx-hero-layout {
    min-height: clamp(560px, calc(100svh - 68px), 700px);
    justify-content: flex-end;
    padding-top: 7rem;
    padding-bottom: 1.5rem;
  }
  .hx-home .hx-hero-copy { max-width: 38rem; padding: 0 0 1.5rem; }
  .hx-home .hx-hero .hx-eyebrow { margin-bottom: .8rem; font-size: .64rem; }
  .hx-home .hx-hero h1 {
    max-width: 13ch;
    margin-bottom: 1rem;
    font-size: clamp(1.95rem, 8.2vw, 2.7rem);
    line-height: 1.04;
    letter-spacing: -.045em;
    text-wrap: balance;
  }
  .hx-home .hx-hero-line { display: block; }
  .hx-home .hx-hero .hx-lead { max-width: 39ch; font-size: .98rem; line-height: 1.55; color: #e1e8ef; }
  .hx-home .hx-hero .hx-actions { gap: .55rem 1rem; margin-top: 1.25rem; }
  .hx-home .hx-hero .hx-button { min-height: 48px; padding: .8rem 1rem; gap: 1.1rem; }
  .hx-home .hx-hero .hx-text-link { min-height: 44px; font-size: .82rem; }
  .hx-home .hx-hero-meta { display: none; }

  /* Service page titles, imagery and feature lists share one mobile scale. */
  .hx-service-site .hx-container { width: calc(100% - 2.5rem); }
  .hx-service-site .hx-section { padding-block: clamp(2.75rem, 9vw, 3.5rem); }
  .hx-service-site .sv-breadcrumb { padding-block: 1rem .75rem; }
  .hx-service-site .sv-hero-grid { gap: 1.35rem; }
  .hx-service-site .sv-hero-copy { padding-block: .4rem 0; }
  .hx-service-site .sv-hero h1 { max-width: 16ch; margin-bottom: .85rem; font-size: clamp(1.95rem, 7.2vw, 2.75rem); line-height: 1.08; }
  .hx-service-site .sv-hero .hx-lead { font-size: .98rem; line-height: 1.58; }
  .hx-service-site .sv-hero .hx-actions { margin-top: 1rem; }
  .hx-service-site .sv-hero-media img { width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 10; object-fit: cover; }
  .hx-service-site .sv-hero-media figcaption { bottom: .8rem; left: .9rem; right: .9rem; }
  .hx-service-site .sv-intro { gap: .8rem; margin-top: 1.5rem; padding-block: 1.5rem 2rem; }
  .hx-service-site .sv-section-heading { margin-bottom: 1.5rem; }
  .hx-service-site .sv-section-heading h2,
  .hx-service-site .sv-questions h2 { font-size: clamp(1.5rem, 6.4vw, 2rem); line-height: 1.16; }
  .hx-service-site .sv-feature { gap: 1.3rem; }
  .hx-service-site .sv-feature > picture > img { aspect-ratio: 16 / 10; }
  .hx-service-site .sv-story h3 { margin-bottom: .8rem; font-size: clamp(1.3rem, 5.6vw, 1.65rem); line-height: 1.2; }
  .hx-service-site .sv-story > p:not(.hx-eyebrow),
  .hx-service-site .sv-intro > p:last-child,
  .hx-service-site .sv-questions > p { font-size: .96rem; line-height: 1.65; }
  .hx-service-site .sv-story ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .7rem;
    padding-top: 1rem;
    margin-top: 1rem;
  }
  .hx-service-site .sv-story li { position: relative; padding-left: 1rem; font-size: .88rem; line-height: 1.5; }
  .hx-service-site .sv-story li::before { content: ""; position: absolute; left: 0; top: .58em; width: 5px; height: 5px; margin: 0; border-radius: 50%; background: currentColor; }
  .hx-service-site .sv-conversation { padding-left: 1rem; }
  .hx-service-site .sv-conversation > p:nth-child(2) { font-size: clamp(1.75rem, 7.5vw, 2.35rem); }
  .hx-service-site .sv-contact { padding-block: 2.5rem; }
  .hx-service-site .sv-contact > div { gap: 1.25rem; }
  .hx-service-site .sv-contact h2 { font-size: clamp(1.7rem, 7vw, 2.3rem); }

  /* Compact, legible footer. Company and service links retain their destinations. */
  :is(.hx-home, .hx-service-site) .site-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.2rem;
    row-gap: 1.15rem;
    padding: 2rem 1.25rem 1.25rem;
  }
  :is(.hx-home, .hx-service-site) .footer-logo { width: 136px; }
  :is(.hx-home, .hx-service-site) .footer-description { max-width: 34ch; margin-bottom: .2rem; font-size: .88rem; }
  :is(.hx-home, .hx-service-site) .site-footer nav { grid-row: auto; min-width: 0; }
  :is(.hx-home, .hx-service-site) .footer-services { grid-column: 1; grid-row: 3; }
  :is(.hx-home, .hx-service-site) .footer-company { grid-column: 2; grid-row: 3; }
  :is(.hx-home, .hx-service-site) .footer-connect { grid-column: 1 / -1; grid-row: 4; }
  :is(.hx-home, .hx-service-site) .site-footer nav a { min-height: 40px; padding-block: .55rem; overflow-wrap: anywhere; }
  :is(.hx-home, .hx-service-site) .footer-established { grid-column: 1 / -1; grid-row: 5; margin-top: .35rem; padding-top: .85rem; }
  .jump-to-top { right: 14px; bottom: calc(env(safe-area-inset-bottom, 0px) + 14px); width: 46px; height: 46px; }
}

/* Lists use a drawn dot instead of a font-dependent punctuation glyph. */
.hx-service-site .sv-story li { position: relative; padding-left: 1rem; }
.hx-service-site .sv-story li::before {
  position: absolute;
  left: 0;
  top: .58em;
  width: 5px;
  height: 5px;
  margin: 0;
  border-radius: 50%;
  background: var(--sv-accent);
  content: "";
}
@media (max-width: 600px) {
  .hx-service-site .sv-network-media img { aspect-ratio: 16 / 10; object-position: center 40%; }
  .hx-service-site .sv-story-pair, .hx-service-site .sv-desktop-stories { gap: 1.75rem; }
  .hx-service-site .site-footer .footer-connect { grid-column: 1 / -1; grid-row: 4; }
}


/* Cybersecurity is presented as a cross-service capability on the homepage. */
.hx-home .hx-services-security {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: start;
  gap: clamp(1.5rem, 4vw, 4rem);
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
  border-top: 1px solid var(--hx-line);
}
.hx-services-security-heading,
.hx-services-security-copy { min-width: 0; }
.hx-home .hx-services-security-heading .hx-eyebrow { margin-bottom: .7rem; color: var(--hx-blue); }
.hx-home .hx-services-security-heading h3 {
  max-width: 20ch;
  color: var(--hx-ink);
  font-size: clamp(1.45rem, 2.3vw, 2rem);
  font-weight: var(--hx-weight-medium);
  letter-spacing: -.025em;
  line-height: 1.25;
}
.hx-home .hx-services-security-copy p { max-width: 70ch; color: var(--hx-muted); line-height: var(--hx-line-body); }
.hx-home .hx-services-security-copy p + p { margin-top: .75rem; }
.hx-services-security-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.1rem; }
.hx-home .hx-services-security-links .hx-text-link { color: var(--hx-blue); font-size: .88rem; }
@media (max-width: 800px) {
  .hx-home .hx-services-security { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}

/* Shared public form tokens. The admin stylesheet does not load this layer. */
:root {
  --hx-form-label: #edf3fa;
  --hx-form-muted: #b7c3d0;
  --hx-form-text: #f3f6fa;
  --hx-form-placeholder: #aebbc8;
  --hx-form-bg: #0a1017;
  --hx-form-border: #687787;
  --hx-form-focus: #4da8ff;
  --hx-form-error: #ffb4ad;
  --hx-form-success: #8ce0b1;
}
html[data-theme="light"] {
  --hx-form-label: #19334b;
  --hx-form-muted: #4a5d70;
  --hx-form-text: #142b43;
  --hx-form-placeholder: #63778a;
  --hx-form-bg: #fff;
  --hx-form-border: #788b9d;
  --hx-form-focus: #075fae;
  --hx-form-error: #a32620;
  --hx-form-success: #17653b;
}
.ct-form .ct-field label { color: var(--hx-form-label); }
.ct-form .ct-field label span { color: var(--hx-form-muted); }
.ct-form .ct-field :is(input, textarea, select) {
  color: var(--hx-form-text);
  background-color: var(--hx-form-bg);
  border-color: var(--hx-form-border);
  color-scheme: inherit;
}
.ct-form .ct-field :is(input, textarea, select)::placeholder {
  color: var(--hx-form-placeholder);
  opacity: 1;
}
.ct-form .ct-field select option {
  color: var(--hx-form-text);
  background: var(--hx-form-bg);
}
.ct-form .ct-field :is(input, textarea, select):focus-visible {
  outline: 3px solid var(--hx-form-focus);
  outline-offset: 2px;
  border-color: var(--hx-form-focus);
}
.ct-form .ct-field [aria-invalid="true"] { border-color: var(--hx-form-error); }
.ct-form .ct-error { color: var(--hx-form-error); }
.ct-form .ct-status { color: var(--hx-form-muted); }
.ct-form .ct-status[data-status="error"] { color: var(--hx-form-error); }
.ct-form .ct-status[data-status="success"] { color: var(--hx-form-success); }
.ct-form .ct-privacy { color: var(--hx-form-muted); }
.ct-form .ct-privacy a { color: var(--hx-form-focus); text-decoration-thickness: 1px; text-underline-offset: .2em; }
.ct-form .ct-submit { color: #fff; }
.ct-form :is(input, textarea, select):-webkit-autofill,
.ct-form :is(input, textarea, select):-webkit-autofill:hover,
.ct-form :is(input, textarea, select):-webkit-autofill:focus {
  -webkit-text-fill-color: var(--hx-form-text);
  box-shadow: 0 0 0 1000px var(--hx-form-bg) inset;
  caret-color: var(--hx-form-text);
}
.ct-form .ct-submit:disabled { color: #fff; opacity: .72; }
html[data-theme="light"] .ct-form .ct-form-intro,
html[data-theme="light"] .ct-form .ct-privacy { color: #4a5d70; }
html[data-theme="light"] .ct-form .ct-submit { background: #075fae; color: #fff; }
html[data-theme="light"] .ct-form .ct-submit:hover { background: #064f91; }
html[data-theme="light"] .ct-form .ct-submit:focus-visible { outline: 3px solid #075fae; outline-offset: 3px; }

/* Other public inputs, filters and selectors use the same readable theme states. */
:is(.hx-home, .hx-service-site) :is(input, textarea, select, .pub-hub-filter button, .pub-hub-filter a) { color-scheme: inherit; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) :is(input, textarea, select) {
  border-color: #788b9d;
}
html[data-theme="light"] :is(.hx-home, .hx-service-site) :is(input, textarea, select):focus-visible {
  outline: 3px solid #075fae;
  outline-offset: 2px;
  border-color: #075fae;
}

/* Shared public conversation CTA. */
.hx-talk-cta {
  --hx-cta-heading: var(--hx-surface-heading);
  --hx-cta-copy: var(--hx-surface-copy);
  --hx-cta-eyebrow: var(--hx-color-dark-surface-eyebrow);
  --hx-cta-button: var(--hx-color-primary-button);
  --hx-cta-button-hover: var(--hx-color-primary-button-hover);
  --hx-cta-button-text: var(--hx-color-primary-button-text);
  position: relative;
  isolation: isolate;
  padding-block: var(--hx-space-section);
  border-block: 1px solid color-mix(in srgb, #6ac9d5, transparent 78%);
  background: radial-gradient(ellipse at 86% 48%, color-mix(in srgb, #31b9c9, transparent 83%), transparent 44%), linear-gradient(115deg, #09121b 0%, #0b1721 58%, #0c1b22 100%);
  color: var(--hx-cta-heading);
  font-family: var(--hx-font-sans);
}
.hx-talk-cta-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr); align-items: end; gap: var(--hx-space-cta-columns); }
.hx-talk-cta .hx-talk-cta-grid > div > .hx-eyebrow { margin: 0 0 1.2rem; color: var(--hx-cta-eyebrow); font-size: var(--hx-type-eyebrow); font-weight: var(--hx-weight-semibold); letter-spacing: .16em; text-transform: uppercase; }
.hx-talk-cta .hx-talk-cta-grid > div > h2 { max-width: 18ch; margin: 0; color: var(--hx-cta-heading); font-size: var(--hx-type-talk-heading); font-weight: var(--hx-weight-medium); letter-spacing: -.045em; line-height: 1.04; }
.hx-talk-cta-action { max-width: 34rem; }
.hx-talk-cta .hx-talk-cta-grid .hx-talk-cta-action > p { max-width: 42ch; margin: 0 0 1.7rem; color: var(--hx-cta-copy); font-size: clamp(.98rem, 1.2vw, 1.08rem); line-height: 1.75; }
.hx-talk-cta .hx-button { display: inline-flex; align-items: center; gap: 1rem; min-height: 52px; padding: .9rem 1.25rem; border: 1px solid var(--hx-color-secondary-button-border); border-radius: var(--hx-radius-control); background: var(--hx-cta-button); color: var(--hx-cta-button-text); font-family: var(--hx-font-sans); font-size: var(--hx-type-navigation); font-weight: var(--hx-weight-semibold); }
.hx-talk-cta .hx-button:hover { background: var(--hx-cta-button-hover); border-color: #8bd6eb; }
.hx-talk-cta .hx-button:focus-visible { outline: 3px solid #9de7ef; outline-offset: 3px; }
.hx-talk-cta .hx-ui-arrow { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.7; }

/* Shared footer: reset the legacy absolute-positioned footer children locally. */
.site-footer.hx-universal-footer {
  --hx-footer-border: var(--hx-color-dark-surface-border);
  display: grid;
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  min-height: 0;
  max-width: none;
  grid-template-columns: minmax(280px, 1.5fr) repeat(3, minmax(145px, .72fr));
  align-items: start;
  gap: clamp(1.5rem, 3vw, 3rem);
  overflow: hidden;
  padding: 3.5rem max(1.5rem, calc((100vw - var(--hx-content-width)) / 2)) 2rem;
  border-top: 1px solid var(--hx-footer-border);
  background: var(--hx-color-dark-surface);
  color: var(--hx-color-dark-surface-heading);
  font-family: var(--hx-font-sans);
}
.site-footer.hx-universal-footer .footer-brand,
.site-footer.hx-universal-footer nav {
  position: static;
  inset: auto;
  z-index: 1;
  float: none;
  transform: none;
  box-sizing: border-box;
  width: auto;
  height: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  align-self: start;
}
.site-footer.hx-universal-footer .footer-brand { grid-column: 1; grid-row: 1; max-width: 38ch; }
.site-footer.hx-universal-footer .footer-services { grid-column: 2; grid-row: 1; }
.site-footer.hx-universal-footer .footer-company { grid-column: 3; grid-row: 1; }
.site-footer.hx-universal-footer .footer-connect { grid-column: 4; grid-row: 1; }
.site-footer.hx-universal-footer .footer-logo {
  position: static;
  inset: auto;
  display: block;
  box-sizing: border-box;
  width: min(100%, 168px);
  height: auto;
  margin: 0 0 1.1rem;
  transform: none;
}
.site-footer.hx-universal-footer .footer-logo img { display: block; width: 100%; height: auto; object-fit: contain; }
.site-footer.hx-universal-footer .footer-description,
.site-footer.hx-universal-footer .footer-slogan,
.site-footer.hx-universal-footer .footer-established {
  position: static;
  inset: auto;
  box-sizing: border-box;
  width: auto;
  height: auto;
  transform: none;
  white-space: normal;
}
.site-footer.hx-universal-footer .footer-description { max-width: 38ch; margin: 0 0 .9rem; color: var(--hx-color-dark-surface-copy); font-size: var(--hx-type-caption); line-height: var(--hx-line-body); overflow-wrap: normal; }
.site-footer.hx-universal-footer .footer-slogan { max-width: 38ch; margin: 0 0 .55rem; color: var(--hx-color-dark-surface-heading); font-size: .88rem; font-weight: var(--hx-weight-semibold); line-height: 1.5; }
.site-footer.hx-universal-footer .footer-established { margin: 0; color: var(--hx-color-dark-surface-muted); font-size: var(--hx-type-caption); }
.site-footer.hx-universal-footer nav { display: flex; flex-direction: column; align-items: flex-start; gap: .12rem; }
.site-footer.hx-universal-footer nav h2 { position: static; width: auto; height: auto; margin: .1rem 0 .8rem; color: var(--hx-color-dark-surface-muted); font-size: var(--hx-type-eyebrow); font-weight: var(--hx-weight-semibold); letter-spacing: var(--hx-letter-eyebrow); line-height: 1.4; text-transform: uppercase; }
.site-footer.hx-universal-footer nav a { display: block; box-sizing: border-box; width: auto; height: auto; min-height: 36px; padding: .42rem 0; color: #d3dbe3; font-size: .86rem; line-height: 1.45; text-decoration: none; white-space: normal; overflow-wrap: normal; }
.site-footer.hx-universal-footer nav a:hover { color: #8bc9ff; }
.site-footer.hx-universal-footer nav a:focus-visible { outline: 2px solid #72bfff; outline-offset: 3px; border-radius: 2px; }
.site-footer.hx-universal-footer .footer-watermark { position: absolute; z-index: 0; inset: auto 3% -26% auto; width: min(50%, 560px); height: auto; opacity: .045; pointer-events: none; }

@media (max-width: 1050px) {
  .site-footer.hx-universal-footer { grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); }
  .site-footer.hx-universal-footer .footer-brand { grid-column: 1 / -1; grid-row: 1; max-width: 58ch; }
  .site-footer.hx-universal-footer .footer-services { grid-column: 1; grid-row: 2; }
  .site-footer.hx-universal-footer .footer-company { grid-column: 2; grid-row: 2; }
  .site-footer.hx-universal-footer .footer-connect { grid-column: 3; grid-row: 2; }
}
@media (max-width: 600px) {
  .site-footer.hx-universal-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; padding: 2rem 1.25rem 1.5rem; }
  .site-footer.hx-universal-footer .footer-brand { grid-column: 1 / -1; grid-row: 1; }
  .site-footer.hx-universal-footer .footer-logo { width: min(100%, 150px); }
  .site-footer.hx-universal-footer .footer-services { grid-column: 1; grid-row: 2; }
  .site-footer.hx-universal-footer .footer-company { grid-column: 2; grid-row: 2; }
  .site-footer.hx-universal-footer .footer-connect { grid-column: 1 / -1; grid-row: 3; }
  .site-footer.hx-universal-footer nav a { min-height: 40px; }
}

/* Keep shared dropdowns above page content and out of the legacy clipped header. */
.site-header.hx-header { z-index: 90; overflow: visible; }
.desktop-nav { overflow: visible; }
.desktop-nav .nav-disclosure { position: relative; z-index: 1; }
.desktop-nav .nav-disclosure.is-open { z-index: 1001; }
.desktop-nav .nav-disclosure::before {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  width: min(560px, calc(100vw - 2rem));
  height: .45rem;
  content: "";
  transform: translateX(calc(-50% + var(--nav-x-shift, 0px)));
}
.desktop-nav .nav-disclosure--insights::before { width: min(390px, calc(100vw - 2rem)); }
.desktop-nav .nav-disclosure.is-fallback.nav-disclosure--services::before { width: min(340px, calc(100vw - 2rem)); }
.desktop-nav .nav-disclosure.is-fallback.nav-disclosure--insights::before { width: min(280px, calc(100vw - 2rem)); }
.desktop-nav .nav-disclosure.is-open::before { display: block; }
.desktop-nav .nav-disclosure > button { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: 0; color: var(--hx-ink); background: transparent; font: inherit; cursor: pointer; }
.desktop-nav .nav-disclosure > button::after { content: ""; width: .42rem; height: .42rem; margin-top: -.22rem; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); transition: transform .18s ease; }
.desktop-nav .nav-disclosure > button[aria-expanded="true"]::after { margin-top: .18rem; transform: rotate(225deg); }
.desktop-nav .nav-disclosure:is(.is-open, .is-active) > button { color: var(--hx-blue); }
.desktop-nav .nav-disclosure > button:focus-visible { outline: 2px solid var(--hx-blue); outline-offset: 4px; border-radius: 2px; }
.desktop-nav .nav-menu.nav-mega-menu {
  position: absolute;
  z-index: 1000;
  top: calc(100% + .4rem);
  right: auto;
  bottom: auto;
  left: 50%;
  box-sizing: border-box;
  width: min(720px, calc(100vw - 2rem));
  min-width: 0;
  max-width: calc(100vw - 2rem);
  height: auto;
  min-height: 0;
  max-height: calc(100vh - 7rem);
  margin: 0;
  padding: 1rem;
  overflow: auto;
  overscroll-behavior: contain;
  clip: auto;
  transform: translateX(calc(-50% + var(--nav-x-shift, 0px)));
  border: 1px solid #26384a;
  border-radius: 14px;
  background: #09131e;
  box-shadow: 0 16px 38px #0006;
  animation: none;
  font-family: var(--hx-font-sans);
}
.desktop-nav .nav-menu.nav-mega-menu::before { display: none; content: none; }
.desktop-nav .nav-menu.nav-mega-menu[hidden] { display: none !important; }
.desktop-nav .nav-menu.nav-mega-menu--services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: .6rem .75rem; width: min(560px, calc(100vw - 2rem)); padding: .75rem; }
.desktop-nav .nav-menu.nav-mega-menu--services .nav-mega-overview { grid-column: 1 / -1; width: fit-content; min-height: 0; padding: .42rem .55rem; color: #82c4ff; font-size: .78rem; font-weight: 600; }
.desktop-nav .nav-menu.nav-mega-menu--services > .nav-mega-group { position: static; display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: .12rem; min-width: 0; width: auto; height: auto; margin: 0; padding: 0; }
.desktop-nav .nav-menu.nav-mega-menu--services > .nav-mega-group:nth-of-type(2) { border-left: 1px solid #26384a; padding-left: .65rem; }
.desktop-nav .nav-menu.nav-mega-menu--services.nav-mega-menu--fallback { grid-template-columns: 1fr; width: min(340px, calc(100vw - 2rem)); }
.desktop-nav .nav-menu.nav-mega-menu--insights.nav-mega-menu--fallback { width: min(280px, calc(100vw - 2rem)); }
.desktop-nav .nav-menu.nav-mega-menu .nav-mega-group-title { margin: .15rem .5rem .3rem; color: #91a6ba; font-size: .66rem; font-weight: 600; letter-spacing: .09em; line-height: 1.4; text-transform: uppercase; }
.desktop-nav .nav-menu.nav-mega-menu .nav-mega-link {
  position: static;
  display: flex;
  box-sizing: border-box;
  align-items: flex-start;
  gap: .7rem;
  width: 100%;
  height: auto;
  min-width: 0;
  min-height: 40px;
  margin: 0;
  padding: .55rem .6rem;
  border-radius: 9px;
  color: #f3f7fb;
  text-decoration: none;
  white-space: normal;
  transition: background-color .16s ease, color .16s ease;
}
.desktop-nav .nav-menu.nav-mega-menu--services .nav-mega-link { align-items: center; min-height: 40px; padding: .48rem .55rem; font-size: .84rem; font-weight: 550; line-height: 1.4; }
.desktop-nav .nav-menu.nav-mega-menu .nav-mega-link:hover,
.desktop-nav .nav-menu.nav-mega-menu .nav-mega-link:focus-visible,
.desktop-nav .nav-menu.nav-mega-menu .nav-insights-categories a:hover,
.desktop-nav .nav-menu.nav-mega-menu .nav-insights-categories a:focus-visible { outline: none; background: #14283a; }
.desktop-nav .nav-menu.nav-mega-menu--services .nav-mega-link:hover,
.desktop-nav .nav-menu.nav-mega-menu--services .nav-mega-link:focus-visible { color: #81c4ff; }
.desktop-nav .nav-menu.nav-mega-menu :is(.nav-mega-link, .nav-insights-all, .nav-insights-categories a)[aria-current="page"] { background: #14283a; color: #81c4ff; }
.desktop-nav .nav-menu.nav-mega-menu .nav-mega-icon { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border: 1px solid #29435a; border-radius: 9px; background: #102235; color: #81c4ff; }
.desktop-nav .nav-menu.nav-mega-menu .nav-icon { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.desktop-nav .nav-menu.nav-mega-menu .nav-mega-copy { display: grid; gap: .18rem; min-width: 0; }
.desktop-nav .nav-menu.nav-mega-menu .nav-mega-copy strong { color: #f3f7fb; font-size: .84rem; font-weight: 600; line-height: 1.35; }
.desktop-nav .nav-menu.nav-mega-menu .nav-mega-copy > span { color: #b5c2cf; font-size: .72rem; line-height: 1.45; }
.desktop-nav .nav-menu.nav-mega-menu--insights { display: block; width: min(390px, calc(100vw - 2rem)); padding: .8rem; }
.desktop-nav .nav-menu.nav-mega-menu .nav-insights-all { display: flex; align-items: center; gap: .6rem; min-height: 42px; padding: .55rem .6rem; border-radius: 8px; color: #f3f7fb; font-size: .88rem; font-weight: 600; text-decoration: none; }
.desktop-nav .nav-menu.nav-mega-menu .nav-insights-all .nav-icon { color: #82c4ff; }
.desktop-nav .nav-menu.nav-mega-menu .nav-insights-heading { margin: .55rem .6rem .35rem; padding-top: .7rem; border-top: 1px solid #26384a; color: #91a6ba; font-size: 11px; font-weight: 600; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
.desktop-nav .nav-menu.nav-mega-menu .nav-insights-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .1rem; }
.desktop-nav .nav-menu.nav-mega-menu .nav-insights-categories a { display: block; min-width: 0; padding: .52rem .6rem; border-radius: 7px; color: #c7d3de; font-size: .8rem; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
.desktop-nav .nav-menu.nav-mega-menu a:focus-visible { outline: 2px solid #147fce; outline-offset: 2px; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu { border-color: #d7e1eb; background: #fff; box-shadow: 0 18px 44px #102c4726; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-mega-group-title,
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-insights-heading { color: #566b80; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-mega-link,
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-insights-all { color: #142b43; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-mega-copy strong { color: #142b43; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-mega-copy > span { color: #4b6074; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-mega-icon { border-color: #cfe0ef; background: #f0f7fc; color: #075fae; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-mega-link:hover,
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-mega-link:focus-visible,
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-insights-categories a:hover,
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-insights-categories a:focus-visible { background: #eff6fb; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu--services .nav-mega-link:hover,
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu--services .nav-mega-link:focus-visible { color: #075fae; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-insights-categories a { color: #344e66; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu .nav-insights-all .nav-icon { color: #075fae; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu--services .nav-mega-overview { color: #075fae; }
.desktop-nav .nav-menu.nav-mega-menu :is(.nav-mega-link, .nav-insights-all, .nav-insights-categories a):focus-visible { outline: 2px solid #147fce; outline-offset: 2px; }
html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu :is(.nav-mega-link, .nav-insights-all, .nav-insights-categories a)[aria-current="page"] { background: #e5f2fb; color: #075fae; }

.mobile-nav-insights { display: grid; gap: .4rem; }
.mobile-nav-insights .mobile-nav-services-toggle { width: 100%; }
.mobile-nav-insights .mobile-nav-submenu a { overflow-wrap: anywhere; }
html[data-theme="light"] .mobile-nav { color: #142b43; }
html[data-theme="light"] .mobile-nav nav { border-color: #d7e0e9; background: #fff; }
html[data-theme="light"] .mobile-nav summary,
html[data-theme="light"] .mobile-nav .mobile-nav-services-toggle,
html[data-theme="light"] .mobile-nav nav .mobile-nav-submenu a { color: #263f57; }
@media (max-width: 1100px) {
  .site-footer.hx-universal-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
  .site-footer.hx-universal-footer .footer-brand { grid-column: 1 / -1; grid-row: 1; }
  .site-footer.hx-universal-footer .footer-services { grid-column: 1; grid-row: 2; }
  .site-footer.hx-universal-footer .footer-company { grid-column: 2; grid-row: 2; }
  .site-footer.hx-universal-footer .footer-connect { grid-column: 1 / -1; grid-row: 3; }
}
@media (max-width: 900px) {
  .hx-talk-cta-grid { grid-template-columns: 1fr; align-items: start; gap: 1.75rem; }
  .hx-talk-cta { --hx-type-talk-heading: clamp(2.25rem, 7vw, 3.65rem); }
}
@media (max-width: 767px) {
  .desktop-nav .nav-menu.nav-mega-menu { left: auto; right: -1rem; width: min(340px, calc(100vw - 2rem)); transform: translateX(var(--nav-x-shift, 0px)); }
  .desktop-nav .nav-menu.nav-mega-menu--services { grid-template-columns: 1fr; max-height: calc(100vh - 6rem); overflow-y: auto; }
}
@media (max-width: 600px) {
  .hx-talk-cta { padding-block: 3.5rem; }
  .hx-talk-cta-grid { gap: 1.35rem; }
  .hx-talk-cta { --hx-type-talk-heading: clamp(2.05rem, 9vw, 2.8rem); }
  .hx-talk-cta h2 br { display: none; }
  .hx-talk-cta .hx-talk-cta-grid .hx-talk-cta-action > p { margin-bottom: 1.25rem; font-size: .96rem; }
  .site-footer.hx-universal-footer { gap: 1.65rem 1rem; padding: 2.5rem 1.25rem 1.75rem; }
  .site-footer.hx-universal-footer .footer-logo { width: 145px; }
  .site-footer.hx-universal-footer .footer-brand { grid-column: 1 / -1; grid-row: 1; }
  .site-footer.hx-universal-footer .footer-services { grid-column: 1; grid-row: 2; }
  .site-footer.hx-universal-footer .footer-company { grid-column: 2; grid-row: 2; }
  .site-footer.hx-universal-footer .footer-connect { grid-column: 1 / -1; grid-row: 3; }
  .site-footer.hx-universal-footer nav a { min-height: 40px; padding-block: .55rem; overflow-wrap: anywhere; }
  .site-footer.hx-universal-footer .footer-established { grid-column: 1 / -1; grid-row: 4; margin-top: .35rem; padding-top: .85rem; }
  .site-footer.hx-universal-footer .footer-watermark { width: 88%; right: -24%; bottom: -13%; }
}
@media (prefers-reduced-motion: reduce) {
  .hx-talk-cta *, .desktop-nav .nav-disclosure > button::after,
  .desktop-nav .nav-menu.nav-mega-menu .nav-mega-link { transition: none; }
  .desktop-nav .nav-menu.nav-mega-menu:not([hidden]) { animation: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .desktop-nav .nav-menu.nav-mega-menu[data-state="open"] { animation: hx-nav-panel-in .15s ease-out both; }
  .desktop-nav .nav-menu.nav-mega-menu[data-state="closing"] { animation: hx-nav-panel-out .12s ease-in both; pointer-events: none; }
  @keyframes hx-nav-panel-in { from { opacity: 0; translate: 0 -4px; } to { opacity: 1; translate: 0 0; } }
  @keyframes hx-nav-panel-out { from { opacity: 1; translate: 0 0; } to { opacity: 0; translate: 0 -3px; } }
}

/* Contact page submission feedback, reCAPTCHA spacing and location contrast. */
.ed-site .ct-captcha {
  width: 100%;
  max-width: none;
  overflow: visible;
  margin-block: 1.25rem;
  padding: 0;
}
.ed-site .ct-captcha .g-recaptcha {
  width: 304px;
  max-width: none;
}
.ed-site .ct-confirmation {
  display: flex;
  align-items: stretch;
  min-width: 0;
}
.ed-site .ct-confirmation-panel {
  display: flex;
  width: 100%;
  min-height: 23rem;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 1rem;
  padding-block: clamp(2rem, 5vw, 3.5rem);
}
.ed-site .ct-confirmation-icon {
  width: 3rem;
  height: 3rem;
  margin-bottom: .35rem;
  fill: none;
  stroke: var(--hx-blue, #1385ff);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.ed-site .ct-confirmation .hx-eyebrow { margin: 0; color: var(--hx-blue, #1385ff); }
.ed-site .ct-confirmation h2 { max-width: 18ch; margin: 0; color: var(--hx-color-page-text, #f3f6f8); }
.ed-site .ct-confirmation-panel > p:not(.hx-eyebrow) { max-width: 48ch; margin: 0; color: var(--hx-color-page-muted, #c2c9d4); line-height: 1.7; }
.ed-site .ct-another-enquiry {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-top: .35rem;
  color: var(--hx-blue, #1385ff);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}
.ed-site .ct-another-enquiry:focus-visible { outline: 3px solid var(--hx-blue, #1385ff); outline-offset: 3px; }
.ed-site .ct-location-card.is-active {
  border-color: color-mix(in srgb, var(--hx-blue, #1385ff) 52%, transparent);
  box-shadow: inset -2px 0 0 color-mix(in srgb, var(--hx-blue, #1385ff) 62%, transparent);
}
.ed-site .ct-map-pin .ct-pin-label {
  z-index: 1;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #f3f6f8;
  text-shadow: 0 1px 3px #05090d, 0 0 5px #05090d;
  box-shadow: none;
}
.ed-site .ct-map-pin.is-active .ct-pin-dot {
  width: .72rem;
  height: .72rem;
  border-color: #fff;
  box-shadow: 0 0 0 4px rgb(19 133 255 / 28%);
}
.ed-site .ct-map-pin.is-active { z-index: 2; }
html[data-theme="light"] .ed-site .ct-location-card {
  background: #f8fafc;
  border: 1px solid #d2dde7;
  border-radius: 4px;
  padding-inline: 1rem;
}
html[data-theme="light"] .ed-site .ct-location-card + .ct-location-card { margin-top: .65rem; }
html[data-theme="light"] .ed-site .ct-location-card.is-active {
  background: #f2f8fc;
  border-color: #75aeca;
  box-shadow: inset -2px 0 0 #1685c5;
}
html[data-theme="light"] .ed-site .ct-location-card .ct-location-city { color: #142b43; }
html[data-theme="light"] .ed-site .ct-location-card .ct-location-state,
html[data-theme="light"] .ed-site .ct-location-card .ct-location-address,
html[data-theme="light"] .ed-site .ct-location-card .ct-virtual-label { color: #40566c; }
html[data-theme="light"] .ed-site .ct-location-card .ct-location-map-link { color: #075b8c; }
html[data-theme="light"] .ed-site .ct-location-card .ct-location-map-link:hover { color: #064b73; }
html[data-theme="light"] .ed-site .ct-map-pin .ct-pin-label {
  color: #142b43;
  text-shadow: 0 1px 3px #fff, 0 0 5px #fff;
}
html[data-theme="light"] .ed-site .ct-map-pin.is-active .ct-pin-label {
  color: #142b43;
}
html[data-theme="light"] .ed-site .ct-location-status { color: #40566c; }
@media (max-width: 600px) {
  .ed-site .ct-confirmation-panel { min-height: 18rem; padding-block: 1.75rem; }
  .ed-site .ct-captcha { margin-block: 1.25rem; }
}
@media (max-width: 340px) {
  .ed-site .ct-captcha { margin-inline-start: -0.25rem; }
}

/* Keep Contact hero links readable over the dark hero in both appearance themes. */
.ct-hero a.hx-text-link,
.ct-hero a.hx-text-link > span { color: #dbeaff; }
.ct-hero a.hx-text-link:hover,
.ct-hero a.hx-text-link:focus-visible { color: #ffffff; text-decoration: underline; text-underline-offset: .2em; }
.ct-hero a.hx-text-link:active { color: #9ed2ff; }
.ct-hero a.hx-text-link:focus-visible { outline: 3px solid #9de7ef; outline-offset: 4px; }

/* First-party cookie notice and preference panel. */
.hx-cookie-consent,
.hx-cookie-consent * { box-sizing: border-box; }
.hx-cookie-consent[hidden],
.hx-cookie-consent__details[hidden] { display: none !important; }
.hx-cookie-consent {
  position: fixed;
  z-index: 1100;
  inset: auto 1.25rem calc(env(safe-area-inset-bottom, 0px) + 1.25rem) auto;
  width: min(28rem, calc(100vw - 2.5rem));
  max-height: min(78dvh, 42rem);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 1.2rem;
  border: 1px solid #30445a;
  border-radius: 1rem;
  background: #081321;
  color: #f4f7fb;
  color-scheme: dark;
  box-shadow: 0 18px 55px #0009, 0 2px 12px #0005;
  font: 400 .9rem/1.5 Inter, sans-serif;
}
.hx-cookie-consent__topline { display: flex; align-items: center; gap: .65rem; margin-bottom: .7rem; color: #9eb2c6; font-size: .68rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.hx-cookie-consent__mark { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; border: 1px solid #2389e6; border-radius: .45rem; color: #8bc9ff; font-size: .8rem; letter-spacing: 0; }
.hx-cookie-consent h2 { margin: 0; color: #fff; font-size: 1.25rem; font-weight: 600; letter-spacing: -.025em; line-height: 1.25; }
.hx-cookie-consent > p { margin: .55rem 0 1rem; color: #d1dae4; font-size: .84rem; line-height: 1.55; }
.hx-cookie-consent__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.hx-cookie-consent button { min-height: 2.75rem; padding: .65rem .8rem; border: 1px solid #62768a; border-radius: .55rem; background: #0b1826; color: #f4f7fb; font: inherit; font-size: .82rem; font-weight: 600; line-height: 1.25; cursor: pointer; }
.hx-cookie-consent button:hover { border-color: #8bc9ff; background: #10243a; }
.hx-cookie-consent button:focus-visible,
.hx-cookie-consent a:focus-visible { outline: 3px solid #83caff; outline-offset: 3px; }
.hx-cookie-consent .hx-cookie-consent__accept { grid-column: 1 / -1; border-color: #1884e8; background: #0877d7; color: #fff; }
.hx-cookie-consent .hx-cookie-consent__accept:hover { border-color: #6ebcff; background: #0b8af2; }
.hx-cookie-consent .hx-cookie-consent__preferences-toggle { color: #b8dcff; }
.hx-cookie-consent__links { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin-top: .85rem; }
.hx-cookie-consent a { color: #a8d4ff; font-size: .78rem; text-decoration: underline; text-underline-offset: .18em; }
.hx-cookie-consent a:hover { color: #fff; }
.hx-cookie-consent__details { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid #30445a; }
.hx-cookie-consent__details h3 { margin: 0 0 .75rem; color: #fff; font-size: 1rem; font-weight: 600; }
.hx-cookie-consent__details p { margin: .6rem 0; color: #d1dae4; font-size: .8rem; line-height: 1.5; }
.hx-cookie-consent__details strong { color: #fff; }
.hx-cookie-consent__details .hx-cookie-consent__third-party { padding-left: .7rem; border-left: 2px solid #1884e8; color: #b8c6d4; font-size: .74rem; }
.hx-cookie-consent__detail-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .85rem; }
.hx-cookie-consent__detail-actions .hx-cookie-consent__accept { grid-column: auto; }
.site-footer .footer-connect [data-cookie-preferences] { cursor: pointer; }
@media (min-width: 768px) {
  body.hx-cookie-consent-open .jump-to-top { bottom: calc(var(--hx-cookie-banner-offset, 0px) + 1.25rem); }
}
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-cookie-consent h2,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-cookie-consent h3,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-cookie-consent strong { color: #ffffff; }
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-cookie-consent > p,
html[data-theme="light"] :is(.hx-home, .hx-service-site) .hx-cookie-consent__details p { color: #d1dae4; }
@media (max-width: 767px) {
  .hx-cookie-consent { position: relative; inset: auto; width: calc(100% - 24px); max-height: none; margin: 12px auto 0; padding: 1rem; border-radius: .85rem; }
  .hx-cookie-consent__actions { gap: .5rem; }
  .hx-cookie-consent button { min-height: 2.7rem; padding-inline: .55rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hx-cookie-consent *, .hx-cookie-consent *::before, .hx-cookie-consent *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Approved service categories: retain the existing row treatment. */
.hx-service-group + .hx-service-group { margin-top: clamp(2.8rem, 5vw, 4.5rem); }
.hx-service-group-heading { display: flex; align-items: baseline; gap: 1.3rem; padding-bottom: 1rem; border-bottom: 1px solid var(--hx-line); }
.hx-service-group-heading .hx-number { color: var(--hx-blue); font-size: .78rem; font-variant-numeric: tabular-nums; }
:is(.hx-home,.hx-service-site) .hx-service-group-heading h3 { color: var(--hx-ink); font-size: clamp(1.3rem, 2vw, 1.8rem); font-weight: 500; letter-spacing: -.025em; }
.hx-service-group .hx-service-row:first-child { border-top: 0; }
:is(.hx-home,.hx-service-site) .hx-service-row h4 { align-self: start; color: var(--hx-ink); font-size: clamp(2.2rem, 3.3vw, 3rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.08; transition: color .28s ease; }
:is(.hx-home,.hx-service-site) .hx-service-row:hover h4,
:is(.hx-home,.hx-service-site) .hx-service-row:focus-visible h4 { color: #8be3df; }
.hx-services-overview-link { margin-top: 2.5rem; }
.sv-overview-hero { padding-block: clamp(3rem, 6vw, 6rem); }
.sv-overview-hero .sv-breadcrumb { margin-bottom: clamp(2rem, 4vw, 4rem); }
.sv-overview-hero h1 { max-width: 18ch; font-size: clamp(2.6rem, 5vw, 5rem); line-height: 1.08; }
.sv-overview-hero .hx-lead { max-width: 60ch; margin-top: 1.5rem; }
.sv-artificial-intelligence .sv-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.sv-ai-second-row { margin-top: clamp(2rem, 5vw, 4rem); }
.sv-artificial-intelligence .sv-questions .hx-text-link { display: inline-flex; margin-top: 1.25rem; }
.mobile-nav-submenu[hidden] { display: none !important; }
.mobile-service-group { padding-block: .4rem; border-top: 1px solid var(--hx-line); }
.mobile-service-group-title { margin: .5rem .7rem .15rem; color: var(--hx-blue); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.mobile-nav nav .mobile-nav-submenu .mobile-services-overview { color: var(--hx-blue); font-weight: 600; }
.mobile-nav .mobile-nav-submenu { max-height: min(65vh, 620px); overflow-y: auto; }
.hx-home-one h2 { max-width: 21ch; }
.hx-one .one-hero h1 { max-width: 17ch; font-size: clamp(2.5rem, 5.5vw, 5.4rem); overflow-wrap: normal; }
@media (max-width: 1000px) {
  .hx-service-row { grid-template-columns: 1.5rem minmax(0,1fr) 1.75rem; }
  .hx-service-row h4 { grid-column: 2; }
  .hx-service-row > div { grid-column: 2; }
  .hx-service-row .hx-service-arrow { grid-column: 3; grid-row: 1; }
}
@media (max-width: 600px) {
  :is(.hx-home,.hx-service-site) .hx-service-row h4 { font-size: clamp(1.6rem, 6.5vw, 2rem); }
  .hx-service-group-heading { gap: .85rem; }
  .sv-overview-hero { padding-block: 2.5rem 3rem; }
  .hx-one .one-hero h1 { font-size: clamp(2.1rem, 8vw, 3rem); }
}

html[data-theme="light"] .desktop-nav .nav-menu.nav-mega-menu--services > .nav-mega-group:nth-of-type(2) { border-color: #dbe5ee; }
:is(.hx-home,.hx-service-site) .hx-service-group-heading :is(h2,h3) { color: var(--hx-ink); font-size: clamp(1.3rem, 2vw, 1.8rem); font-weight: 500; letter-spacing: -.025em; }

/* Keep the carousel logo link boxless and the supplied white Partner mark legible in light mode. */
.hx-tech-logo-link { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
html[data-theme="light"] .hx-tech-partner-logo { filter: invert(1); }
