/*
 * Sovereign SLM Labs — shared enterprise presentation layer
 * Keeps every internal page aligned with the homepage without duplicating
 * page-specific styles or altering brand assets, content, metadata, or schema.
 */

:root {
  --enterprise-pearl: #f9fafb;
  --enterprise-gray: #f3f4f6;
  --enterprise-white: #ffffff;
  --enterprise-navy: #0f172a;
  --enterprise-charcoal: #111827;
  --enterprise-copy: #334155;
  --enterprise-blue: #075985;
  --enterprise-blue-dark: #0c4a6e;
  --enterprise-teal: #0f766e;
  --enterprise-border: #e5e7eb;
  --enterprise-footer: #0b1220;
  --enterprise-heading: "Merriweather", Georgia, "Times New Roman", serif;
  --enterprise-body: "Open Sans", Arial, Helvetica, sans-serif;
  --enterprise-mono: "Roboto Mono", "SFMono-Regular", Consolas, monospace;
  --enterprise-section-space: clamp(4.5rem, 6.5vw, 6rem);

  /* Compatibility tokens used by the legacy workflow pages. */
  --bg: var(--enterprise-pearl);
  --surface: var(--enterprise-white);
  --panel: var(--enterprise-white);
  --text: var(--enterprise-charcoal);
  --muted: var(--enterprise-copy);
  --line: var(--enterprise-border);
  --teal: var(--enterprise-teal);
  --blue: var(--enterprise-blue);
  --header: rgba(255, 255, 255, 0.96);
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

html {
  color-scheme: light;
  scroll-padding-top: 92px;
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--enterprise-pearl) !important;
  color: var(--enterprise-charcoal) !important;
  font-family: var(--enterprise-body) !important;
  font-size: 16px;
  line-height: 1.7;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body,
button,
input,
select,
textarea {
  font-family: var(--enterprise-body) !important;
}

img {
  display: block;
  max-width: 100%;
}

:focus-visible {
  outline: 3px solid var(--enterprise-teal) !important;
  outline-offset: 4px !important;
}

main h1,
main h2,
main h3,
.display-title,
.section-title,
.hero-title {
  font-family: var(--enterprise-heading) !important;
  font-weight: 700;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

main p,
main li {
  text-wrap: pretty;
}

main p,
main li,
main dd,
main td {
  color: inherit;
}

.eyebrow,
.section-kicker,
.section-label,
.problem-label,
.step-number,
.overline,
main p[class*="uppercase"],
main span[class*="uppercase"] {
  font-family: var(--enterprise-mono) !important;
  font-weight: 600 !important;
  letter-spacing: 0.11em !important;
}

main h1,
main > section:first-child h1,
.hero h1,
.services-hero h1,
.insights-hero h1 {
  font-size: clamp(3.5rem, 5.25vw, 4.25rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.045em !important;
}

main > section:not(:first-child) h2,
.section-title {
  font-size: clamp(2.5rem, 4vw, 3.625rem) !important;
  line-height: 1.12 !important;
}

.article-prose h2,
article.prose h2 {
  font-size: clamp(2rem, 3vw, 2.5rem) !important;
  line-height: 1.22 !important;
}

.article-prose h3,
article.prose h3 {
  font-size: clamp(1.35rem, 2vw, 1.7rem) !important;
  line-height: 1.3 !important;
}

/* One fixed navigation treatment for all page templates. */
header.fixed,
.site-header {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  z-index: 1000 !important;
  width: 100% !important;
  padding: 12px 20px !important;
  background: transparent !important;
  border: 0 !important;
  pointer-events: none;
}

header.fixed > nav[aria-label="Primary navigation"],
.site-header .site-nav,
.site-header .header-shell {
  width: min(1240px, 100%) !important;
  min-height: 62px !important;
  margin: 0 auto !important;
  padding: 7px 9px 7px 13px !important;
  display: flex !important;
  align-items: center !important;
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid rgba(15, 23, 42, 0.1) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.09) !important;
  pointer-events: auto;
}

header.fixed img,
.site-header .brand img,
.site-header .brand-lockup img {
  width: auto !important;
  height: 46px !important;
  max-height: 46px !important;
  object-fit: contain;
}

header.fixed nav a,
.site-header nav a,
.site-header .nav-link {
  color: var(--enterprise-navy) !important;
  font-family: var(--enterprise-body) !important;
  font-size: 0.79rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
}

header.fixed nav a:hover,
.site-header nav a:hover,
.site-header .nav-link:hover,
.site-header .nav-link[aria-current="page"] {
  color: var(--enterprise-blue) !important;
}

.site-header nav .header-cta,
header.fixed nav .header-cta,
.site-header .btn-primary,
.site-header a[class*="bg-teal"],
header.fixed a[class*="bg-teal"] {
  min-height: 42px;
  padding: 0.68rem 1rem !important;
  color: #ffffff !important;
  background: var(--enterprise-blue) !important;
  border: 1px solid var(--enterprise-blue) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.site-header nav .header-cta:hover,
header.fixed nav .header-cta:hover,
.site-header .btn-primary:hover,
.site-header a[class*="bg-teal"]:hover,
header.fixed a[class*="bg-teal"]:hover {
  color: #ffffff !important;
  background: var(--enterprise-blue-dark) !important;
  border-color: var(--enterprise-blue-dark) !important;
}

#themeToggle,
#theme-toggle,
.theme-toggle {
  display: none !important;
}

#mobile-menu,
.mobile-nav,
.mobile-menu {
  background: rgba(255, 255, 255, 0.99) !important;
  border-color: var(--enterprise-border) !important;
}

header.fixed #mobileMenu,
.site-header .mobile-nav,
.site-header .mobile-menu {
  pointer-events: auto !important;
}

#mobile-menu a,
.mobile-nav a,
.mobile-menu a {
  color: var(--enterprise-navy) !important;
}

/* Predictable enterprise spacing without inflating compact proof strips. */
main > section:not(:first-child):not([class*="py-8"]):not([class*="border-y"]),
main > .section {
  padding-top: var(--enterprise-section-space) !important;
  padding-bottom: var(--enterprise-section-space) !important;
}

main > section[class*="py-8"],
main > section[class*="border-y"] {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

main section[class*="bg-slate-100"],
main section[class*="bg-gray"],
main section.alt,
main .section-alt {
  background: var(--enterprise-gray) !important;
}

/* Protect contrast when legacy dark-mode utility classes remain in templates. */
html:not(.dark) main section:not([class*="bg-slate-9"]):not([class*="bg-black"]):not([class*="bg-ink"]),
html.light main section:not([class*="bg-slate-9"]):not([class*="bg-black"]):not([class*="bg-ink"]),
html[data-theme="light"] main section:not([class*="bg-slate-9"]):not([class*="bg-black"]):not([class*="bg-ink"]) {
  color: var(--enterprise-charcoal);
}

main section[class*="bg-slate-9"],
main section[class*="bg-black"],
main section[class*="bg-ink"],
main .hero,
main .dark-section,
main .final-cta,
main .services-hero,
main .insights-hero {
  color: #e2e8f0;
}

main section[class*="bg-slate-9"] h1,
main section[class*="bg-slate-9"] h2,
main section[class*="bg-slate-9"] h3,
main section[class*="bg-black"] h1,
main section[class*="bg-black"] h2,
main section[class*="bg-black"] h3,
main section[class*="bg-ink"] h1,
main section[class*="bg-ink"] h2,
main section[class*="bg-ink"] h3,
main .hero h1,
main .hero h2,
main .hero h3,
main .dark-section h1,
main .dark-section h2,
main .dark-section h3,
main .final-cta h2,
main .services-hero h1,
main .insights-hero h1 {
  color: #ffffff !important;
}

main section[class*="bg-slate-9"] p,
main section[class*="bg-slate-9"] li,
main section[class*="bg-black"] p,
main section[class*="bg-black"] li,
main section[class*="bg-ink"] p,
main section[class*="bg-ink"] li,
main .hero p,
main .hero li,
main .dark-section p,
main .dark-section li,
main .final-cta p,
main .services-hero p,
main .insights-hero p {
  color: #cbd5e1 !important;
}

html[data-theme="light"] main .hero,
html.light main .hero {
  color: var(--enterprise-charcoal);
}

html[data-theme="light"] main .hero h1,
html[data-theme="light"] main .hero h2,
html[data-theme="light"] main .hero h3,
html.light main .hero h1,
html.light main .hero h2,
html.light main .hero h3 {
  color: var(--enterprise-navy) !important;
}

html[data-theme="light"] main .hero p,
html[data-theme="light"] main .hero li,
html.light main .hero p,
html.light main .hero li {
  color: var(--enterprise-copy) !important;
}

/* Shared surfaces, controls and imagery. */
main article[class*="rounded"],
main div[class*="rounded"][class*="border"],
.card,
.service-card,
.insight-card,
.flow-panel,
.content-card {
  border-color: var(--enterprise-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 26px rgba(15, 23, 42, 0.06) !important;
}

main article[class*="rounded"]:not([class*="bg-slate-900"]),
.card,
.service-card,
.insight-card,
.flow-panel,
.content-card {
  background: var(--enterprise-white) !important;
}

main article[class*="rounded"]:not([class*="bg-slate-900"]) h2,
main article[class*="rounded"]:not([class*="bg-slate-900"]) h3,
main article[class*="rounded"]:not([class*="bg-slate-900"]) strong,
.card h3,
.service-card h3,
.insight-card h3 {
  color: var(--enterprise-navy) !important;
}

main article[class*="rounded"]:not([class*="bg-slate-900"]) p,
main article[class*="rounded"]:not([class*="bg-slate-900"]) li,
.card p,
.service-card p,
.insight-card p {
  color: var(--enterprise-copy) !important;
}

.button-mint,
.btn-primary,
main a[class*="bg-teal"],
main button[class*="bg-teal"] {
  color: #ffffff !important;
  background: var(--enterprise-blue) !important;
  border-color: var(--enterprise-blue) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

main a[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]),
main button[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]) {
  color: #ffffff !important;
  background: var(--enterprise-blue) !important;
  border-color: var(--enterprise-blue) !important;
}

main a[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]):hover,
main button[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]):hover {
  color: #ffffff !important;
  background: var(--enterprise-blue-dark) !important;
}

/* Teal-tinted secondary links are light controls, not primary filled buttons. */
main a[class*="bg-teal-50"] {
  color: #115e59 !important;
  background: #f0fdfa !important;
  border-color: rgba(13, 148, 136, 0.35) !important;
}

main a[class*="bg-teal-50"]:hover {
  color: #134e4a !important;
  background: #ccfbf1 !important;
}

.button-mint:hover,
.btn-primary:hover,
main a[class*="bg-teal"]:hover,
main button[class*="bg-teal"]:hover {
  color: #ffffff !important;
  background: var(--enterprise-blue-dark) !important;
  border-color: var(--enterprise-blue-dark) !important;
}

main img {
  border-radius: 8px;
}

main img[loading="lazy"] {
  content-visibility: auto;
}

main > section:not(:first-child),
main > article:not(:first-child) {
  content-visibility: auto;
  contain-intrinsic-size: auto 720px;
}

.article-prose,
article.prose {
  font-family: var(--enterprise-body) !important;
  color: var(--enterprise-copy) !important;
}

.article-prose a,
article.prose a {
  color: var(--enterprise-blue) !important;
}

/* Bring the former dark-only token-cost article into the shared light system. */
body:has(.article-prose.bg-black\/25) {
  background: var(--enterprise-pearl) !important;
  color: var(--enterprise-charcoal) !important;
}

body:has(.article-prose.bg-black\/25) .article-prose {
  background: var(--enterprise-white) !important;
  border-color: var(--enterprise-border) !important;
  color: var(--enterprise-copy) !important;
  box-shadow: 0 8px 26px rgba(15, 23, 42, 0.06) !important;
}

body:has(.article-prose.bg-black\/25) .article-prose h2,
body:has(.article-prose.bg-black\/25) .article-prose h3,
body:has(.article-prose.bg-black\/25) .article-prose strong,
body:has(.article-prose.bg-black\/25) .article-prose summary {
  color: var(--enterprise-navy) !important;
}

body:has(.article-prose.bg-black\/25) .article-prose p,
body:has(.article-prose.bg-black\/25) .article-prose li,
body:has(.article-prose.bg-black\/25) .article-prose figcaption {
  color: var(--enterprise-copy) !important;
}

body:has(.article-prose.bg-black\/25) .article-prose ul,
body:has(.article-prose.bg-black\/25) .article-prose details,
body:has(.article-prose.bg-black\/25) #references {
  background: var(--enterprise-gray) !important;
  border-color: var(--enterprise-border) !important;
}

body:has(.article-prose.bg-black\/25) main aside .sticky {
  background: var(--enterprise-white) !important;
  border-color: var(--enterprise-border) !important;
}

body:has(.article-prose.bg-black\/25) main aside .sticky h2 {
  color: var(--enterprise-navy) !important;
}

body:has(.article-prose.bg-black\/25) main aside .sticky p {
  color: var(--enterprise-copy) !important;
}

body:has(.article-prose.bg-black\/25) main aside .sticky p:first-child {
  color: var(--enterprise-teal) !important;
}

/* Small enterprise labels need the darker teal, not the legacy bright teal. */
.service-kicker,
.insights-page .eyebrow,
.services-page small {
  color: var(--enterprise-teal) !important;
}

.insights-page .dark-section .text-link,
.insights-page .featured-insight .text-link {
  color: #9ef0cf !important;
}

/* Workflow pages: accessible accent colours on light and dark surfaces. */
html.light .pain-card strong,
html[data-theme="light"] .pain-card strong {
  color: #9a3412 !important;
}

html.light .claim-table th,
html[data-theme="light"] .claim-table th {
  color: #334155 !important;
}

html.light .claim-table .claim-total th,
html[data-theme="light"] .claim-table .claim-total th {
  color: #0f766e !important;
}

/* Footer is intentionally identical across every route. */
.sov-global-footer {
  margin-top: 0 !important;
  padding: 76px 0 24px !important;
  color: rgba(255, 255, 255, 0.76) !important;
  background: var(--enterprise-footer) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  font-family: var(--enterprise-body) !important;
}

.sov-global-footer .sov-footer-shell {
  width: min(1240px, calc(100% - 40px)) !important;
  margin-inline: auto !important;
}

.sov-global-footer .sov-footer-brand h2 {
  color: #ffffff !important;
  font-family: var(--enterprise-body) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

.sov-global-footer h3 {
  color: #ffffff !important;
  font-family: var(--enterprise-mono) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
}

.sov-global-footer a {
  color: rgba(255, 255, 255, 0.74) !important;
}

.sov-global-footer a:hover {
  color: #ffffff !important;
}

.sov-global-footer .sov-footer-contact-card,
.sov-global-footer .sov-footer-presence {
  border-color: rgba(255, 255, 255, 0.13) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.045) !important;
}

@media (max-width: 1100px) {
  main h1,
  main > section:first-child h1,
  .hero h1,
  .services-hero h1,
  .insights-hero h1 {
    font-size: clamp(3.25rem, 6vw, 3.75rem) !important;
  }

  main > section:not(:first-child) h2,
  .section-title {
    font-size: clamp(2.3rem, 4.8vw, 3.2rem) !important;
  }
}

@media (max-width: 767px) {
  html {
    scroll-padding-top: 78px;
  }

  body {
    font-size: 16px;
    line-height: 1.65;
  }

  body,
  main,
  main > *,
  main section,
  main article,
  main div,
  main figure,
  main aside {
    min-width: 0;
  }

  .container,
  .shell,
  main [class*="max-w-"] {
    max-width: 100% !important;
  }

  main h1,
  main h2,
  main h3,
  main p,
  main li,
  main a,
  main button,
  main summary,
  .sov-global-footer a,
  .sov-global-footer p {
    overflow-wrap: anywhere;
  }

  main pre,
  main code,
  main table,
  main .overflow-x-auto {
    max-width: 100%;
  }

  main pre,
  main .overflow-x-auto {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  main table {
    font-size: 0.875rem;
  }

  main th,
  main td {
    padding: 0.7rem 0.75rem !important;
  }

  main iframe,
  main video,
  main canvas {
    width: 100% !important;
    max-width: 100% !important;
    height: auto;
  }

  main figure,
  main picture,
  main img {
    max-inline-size: 100% !important;
  }

  /* Keep stepped workflows inside their card while preserving swipe access. */
  main .flow-wrap,
  main .flow-tabs {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  main .flow-wrap {
    overflow: hidden !important;
  }

  main .flow-tabs {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    contain: inline-size;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  main .flow-tab {
    flex: 0 0 min(150px, calc(100vw - 56px));
  }

  main figure,
  main .problem-visual,
  main .problem-visual-image,
  main .problem-visual-landscape,
  main .media-frame {
    width: 100% !important;
  }

  main figure {
    margin-inline: 0 !important;
  }

  main summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    cursor: pointer;
  }

  main .text-link,
  main a[class*="text-teal"],
  main a[class*="font-bold"]:not(.button):not(.btn),
  main a[class*="font-semibold"]:not(.button):not(.btn) {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    padding-block: 8px;
  }

  header.fixed,
  .site-header {
    padding: max(8px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 8px max(10px, env(safe-area-inset-left)) !important;
  }

  header.fixed > nav[aria-label="Primary navigation"],
  .site-header .site-nav,
  .site-header .header-shell {
    min-height: 60px !important;
    padding: 7px 10px 7px 12px !important;
  }

  header.fixed img,
  .site-header .brand img,
  .site-header .brand-lockup img {
    height: 40px !important;
    max-height: 40px !important;
  }

  header.fixed .brand,
  .site-header .brand,
  .site-header .brand-lockup {
    min-width: 0;
    max-width: calc(100% - 56px);
  }

  header.fixed .brand span,
  .site-header .brand-name,
  .site-header .brand span,
  .site-header .brand-lockup span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #mobile-menu,
  .mobile-nav,
  .mobile-menu {
    max-height: calc(100dvh - 82px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  main h1,
  main > section:first-child h1,
  .hero h1,
  .services-hero h1,
  .insights-hero h1 {
    font-size: clamp(2.35rem, 10vw, 2.5rem) !important;
    line-height: 1.12 !important;
  }

  main > section:not(:first-child) h2,
  .section-title {
    font-size: clamp(2rem, 8vw, 2.375rem) !important;
    line-height: 1.18 !important;
  }

  .article-prose h2,
  article.prose h2 {
    font-size: 1.85rem !important;
  }

  main > section:not(:first-child):not([class*="py-8"]):not([class*="border-y"]),
  main > .section {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
  }

  .sov-global-footer {
    padding-top: 56px !important;
  }

  .sov-global-footer .sov-footer-shell {
    width: min(100% - 28px, 1240px) !important;
  }

  .sov-global-footer .sov-footer-top,
  .sov-global-footer .sov-footer-grid,
  .sov-global-footer .sov-presence-grid,
  .sov-global-footer .sov-footer-bottom {
    min-width: 0;
  }
}

@media (max-width: 479px) {
  :root {
    --enterprise-section-space: 3.25rem;
  }

  header.fixed,
  .site-header {
    padding-inline: 8px !important;
  }

  header.fixed > nav[aria-label="Primary navigation"],
  .site-header .site-nav,
  .site-header .header-shell {
    min-height: 58px !important;
    padding: 6px 8px !important;
  }

  header.fixed img,
  .site-header .brand img,
  .site-header .brand-lockup img {
    height: 38px !important;
    max-height: 38px !important;
  }

  main h1,
  main > section:first-child h1,
  .hero h1,
  .services-hero h1,
  .insights-hero h1 {
    font-size: clamp(2.15rem, 11.5vw, 2.45rem) !important;
    line-height: 1.1 !important;
    letter-spacing: -0.04em !important;
  }

  main > section:not(:first-child) h2,
  .section-title {
    font-size: clamp(1.85rem, 9.4vw, 2.2rem) !important;
  }

  main article[class*="rounded"],
  main div[class*="rounded"][class*="border"],
  .card,
  .service-card,
  .insight-card,
  .flow-panel,
  .content-card {
    border-radius: 8px !important;
  }

  main .hero-actions,
  main .final-actions,
  main .service-actions,
  main .cta-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
  }

  main .hero-actions > a,
  main .hero-actions > button,
  main .final-actions > a,
  main .final-actions > button,
  main .service-actions > a,
  main .service-actions > button,
  main .cta-actions > a,
  main .cta-actions > button {
    width: 100% !important;
    min-height: 46px;
    justify-content: center;
    white-space: normal;
    text-align: center;
  }

  .sov-global-footer .sov-footer-shell {
    width: calc(100% - 24px) !important;
  }
}

/* Careers uses the same established-enterprise visual language as the homepage. */
body.careers-page .page-bg {
  background: var(--enterprise-pearl) !important;
}

body.careers-page main {
  color: var(--enterprise-charcoal);
}

body.careers-page .hero-scrim {
  background: linear-gradient(
    90deg,
    rgba(15, 23, 42, 0.97) 0%,
    rgba(15, 23, 42, 0.86) 38%,
    rgba(15, 23, 42, 0.28) 76%,
    rgba(15, 23, 42, 0.12) 100%
  ) !important;
}

body.careers-page main article[class*="rounded"],
body.careers-page main details,
body.careers-page main div[class*="rounded"][class*="border"] {
  border-radius: 8px !important;
}

body.careers-page main > section:first-child {
  position: relative;
  width: 100%;
  max-width: none !important;
  padding: 0 !important;
  background: var(--enterprise-navy);
}

body.careers-page main > section:first-child > div {
  min-height: 790px !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.careers-page main > section:first-child > div > div:last-child {
  width: min(1240px, calc(100% - 40px));
  min-height: 790px !important;
  margin: 0 auto;
  padding: 168px 0 102px !important;
}

body.careers-page main > section:first-child p[class*="uppercase"] {
  color: #5eead4 !important;
  border-color: rgba(94, 234, 212, 0.45) !important;
  background: rgba(15, 118, 110, 0.2) !important;
}

body.careers-page header.fixed a[aria-current="page"] {
  color: var(--enterprise-navy) !important;
  background: #eaf4f8 !important;
  border-color: transparent !important;
}

body.careers-page main > section:not(:first-child) h2,
body.careers-page main .careers-subsection-title {
  color: var(--enterprise-navy) !important;
  font-family: var(--enterprise-heading) !important;
  font-size: clamp(2.5rem, 4vw, 3.625rem) !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.035em !important;
}

body.careers-page main article h3,
body.careers-page main details h3,
body.careers-page main section:last-child h3 {
  color: var(--enterprise-navy) !important;
  font-family: var(--enterprise-heading) !important;
  font-size: clamp(1.25rem, 1.8vw, 1.5rem) !important;
  line-height: 1.3 !important;
}

body.careers-page main p[class*="uppercase"] {
  color: var(--enterprise-teal) !important;
  font-size: 0.75rem !important;
  line-height: 1.45 !important;
}

body.careers-page #open-roles {
  padding-top: var(--enterprise-section-space) !important;
  padding-bottom: var(--enterprise-section-space) !important;
  background: var(--enterprise-gray) !important;
  border-color: var(--enterprise-border) !important;
}

body.careers-page main details {
  overflow: hidden;
  background: var(--enterprise-white) !important;
  border-color: var(--enterprise-border) !important;
  box-shadow: 0 8px 26px rgba(15, 23, 42, 0.06) !important;
}

body.careers-page main details summary {
  color: var(--enterprise-navy) !important;
}

body.careers-page main details .details-plus {
  color: var(--enterprise-blue) !important;
  background: #e0f2fe !important;
}

body.careers-page main a[class*="text-teal"] {
  color: var(--enterprise-blue) !important;
}

body.careers-page main a[class*="text-teal"]:hover {
  color: var(--enterprise-blue-dark) !important;
}

body.careers-page main > section:last-child > div {
  background: #eaf4f8 !important;
  border-color: #b9d6e4 !important;
}

@media (max-width: 767px) {
  body.careers-page main > section:first-child > div,
  body.careers-page main > section:first-child > div > div:last-child {
    min-height: 680px !important;
  }

  body.careers-page main > section:first-child > div > div:last-child {
    width: min(100% - 32px, 1240px);
    padding: 126px 0 64px !important;
  }

  body.careers-page .hero-scrim {
    background: linear-gradient(
      0deg,
      rgba(15, 23, 42, 0.98) 0%,
      rgba(15, 23, 42, 0.91) 50%,
      rgba(15, 23, 42, 0.38) 100%
    ) !important;
  }

  body.careers-page main > section:not(:first-child) h2,
  body.careers-page main .careers-subsection-title {
    font-size: clamp(2rem, 8vw, 2.375rem) !important;
    line-height: 1.18 !important;
  }
}

/* Homepage mobile narrative order: explanation first, supporting image second. */
@media (max-width: 1080px) {
  body.home-page .problem-block .problem-copy {
    order: 1 !important;
  }

  body.home-page .problem-block .problem-visual {
    order: 2 !important;
  }
}

@media (max-width: 900px) {
  body.home-page .monopoly-grid > :not(.monopoly-visual) {
    order: 1 !important;
  }

  body.home-page .monopoly-grid .monopoly-visual {
    order: 2 !important;
  }
}

@media (max-width: 359px) {
  body {
    font-size: 15px;
  }

  header.fixed .brand span,
  .site-header .brand-name,
  .site-header .brand span,
  .site-header .brand-lockup span {
    font-size: 0.82rem !important;
  }

  main h1,
  main > section:first-child h1,
  .hero h1,
  .services-hero h1,
  .insights-hero h1 {
    font-size: clamp(2rem, 11.25vw, 2.25rem) !important;
  }

  .eyebrow,
  .section-kicker,
  .section-label,
  .problem-label,
  .step-number,
  .overline {
    letter-spacing: 0.075em !important;
  }
}

@media (max-height: 520px) and (orientation: landscape) {
  header.fixed,
  .site-header {
    padding-top: 6px !important;
  }

  main > section:first-child,
  main .hero,
  main .services-hero,
  main .insights-hero {
    min-height: 0 !important;
    padding-top: 96px !important;
    padding-bottom: 44px !important;
  }

  #mobile-menu,
  .mobile-nav,
  .mobile-menu {
    max-height: calc(100dvh - 72px);
  }

  main summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    cursor: pointer;
  }

  main .text-link,
  main a[class*="text-teal"],
  main a[class*="font-bold"]:not(.button):not(.btn),
  main a[class*="font-semibold"]:not(.button):not(.btn) {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    padding-block: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/*
 * 2026-08-21 responsive, accessibility and performance audit hardening.
 * This final layer is intentionally shared by every route and uses
 * !important only where later page-specific styles would otherwise undo a
 * cross-site accessibility guarantee.
 */

img {
  image-rendering: auto;
}

main picture,
main picture > img,
main figure > img {
  max-inline-size: 100% !important;
}

main picture > img,
main figure > img:not([class*="object-cover"]),
main img:not([class*="object-cover"]):not([class*="h-full"]) {
  height: auto;
}

/* Keep the established brand typefaces authoritative across every template. */
body,
main p,
main li,
main a,
main button,
main summary,
.sov-global-footer {
  font-family: var(--enterprise-body) !important;
}

main h1,
main h2,
main h3,
main h4 {
  font-family: var(--enterprise-heading) !important;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

/* Roboto Mono technical microcopy never falls below 12 CSS pixels. */
.eyebrow,
.section-kicker,
.section-label,
.problem-label,
.step-number,
.overline,
.service-kicker,
.card-index span,
.card-index small,
.technology-carousel-tab span,
.llm-labels span,
.technology-principles span,
.technology-index-list span,
.platform-card-head > span:last-child,
.specialist-meta,
.lifecycle-label,
.model-lifecycle li span,
.agent-types span,
.card-number,
.governance-grid-list span,
.framework-steps > li > span,
.technology-logo-rail span,
.about-index a span,
.approach-item > span,
.motion-header,
.motion-core span,
.motion-core small,
.motion-node,
.motion-feed span,
.motion-feed strong,
.industry-ticker,
.fit-card > span,
.context-layer > span,
.context-layer > i,
.context-layer small,
.sov-global-footer h3,
.sov-presence-label {
  font-family: var(--enterprise-mono) !important;
  font-size: 0.75rem !important;
  line-height: 1.45 !important;
}

/* Stronger Trust Blue improves white-on-blue contrast for outdoor viewing. */
.button-primary,
.button-mint,
.btn-primary,
main a[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]),
main button[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]) {
  color: #ffffff !important;
  background-color: var(--enterprise-blue) !important;
  border-color: var(--enterprise-blue) !important;
}

.button-primary:hover,
.button-mint:hover,
.btn-primary:hover,
main a[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]):hover,
main button[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]):hover {
  background-color: var(--enterprise-blue-dark) !important;
  border-color: var(--enterprise-blue-dark) !important;
}

/* Primary actions and navigation meet the 44 x 44 enhanced touch target. */
.button,
.btn,
.btn-primary,
.btn-secondary,
main button,
main summary,
main a[class*="button"],
main a[class*="btn"],
main a[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]),
main a[class*="rounded"][class*="border"]:not(.sr-only),
.site-header .brand,
.site-header .brand-lockup,
header.fixed nav > a:first-child,
.menu-button,
#mobileMenuButton {
  min-height: 44px !important;
}

.menu-button,
#mobileMenuButton,
[data-carousel-prev],
[data-carousel-next] {
  min-width: 44px !important;
}

.mobile-nav a,
#mobileMenu a,
.mobile-menu a {
  display: flex !important;
  min-height: 44px !important;
  align-items: center;
}

header.fixed nav a,
.site-header nav a {
  min-height: 44px !important;
}

header.fixed [aria-label="Main sections"] a,
.site-header .desktop-nav a {
  display: inline-flex;
  align-items: center;
}

@media (max-width: 767px) {
  /* Visual-first stacking keeps asymmetrical desktop sections easy to scan. */
  .problem-block .problem-visual,
  .service-grid .service-visual,
  main > section:not(:first-child) > div[class*="grid"] > figure {
    order: 1 !important;
  }

  .problem-block .problem-copy,
  .service-grid .service-copy,
  main > section:not(:first-child) > div[class*="grid"] > figure + div {
    order: 2 !important;
  }

  .problem-block,
  .service-grid,
  .service-grid-reverse,
  .intro-grid,
  .context-grid,
  .final-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .service-visual,
  .problem-visual,
  main > section:not(:first-child) > div[class*="grid"] > figure {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Footer links are navigation targets, not inline prose links. */
  .sov-footer-links a,
  .sov-footer-legal a {
    display: flex !important;
    min-height: 44px !important;
    align-items: center;
    margin-block: 0 !important;
  }

  .sov-footer-column a + a,
  .sov-footer-legal a + a {
    margin-top: 4px !important;
  }

  main .text-link,
  main a[class*="font-bold"]:not(.sr-only),
  main a[class*="font-semibold"]:not(.sr-only) {
    min-height: 44px !important;
  }
}

@media (max-width: 479px) {
  /* Long editorial titles stay authoritative without becoming six-line walls. */
  main > section:first-child h1[class*="text-4xl"],
  main > section:first-child h1[class*="text-5xl"],
  .technology-hero h1,
  .industries-hero h1,
  .about-hero h1 {
    font-size: clamp(1.95rem, 8.8vw, 2.2rem) !important;
    line-height: 1.14 !important;
    letter-spacing: -0.035em !important;
  }

  .hero-actions,
  .final-actions,
  .service-actions,
  .cta-actions {
    gap: 12px !important;
  }
}

@media (forced-colors: active) {
  .button,
  .btn,
  main a[class*="bg-tealbrand"] {
    border: 2px solid ButtonText !important;
  }
}

/* Higher-specificity guarantees for templates whose styles load afterward. */
body main .specialist-meta,
body main .monopoly-visual figcaption,
body main .monopoly-visual figcaption span,
body main .monopoly-visual figcaption strong,
body main .capability-number,
body main .approach-step-label,
body main .approach-flow,
body main .approach-flow *,
body main .technology-slide-number,
body main .spotlight-number,
body main .industry-nav span,
body main .why-number,
body main p[class*="text-[10px]"] {
  font-size: 0.75rem !important;
  line-height: 1.45 !important;
}

body.industries-page main .motion-header,
body.industries-page main .motion-header strong,
body.industries-page main .industry-ticker span,
body.industries-page main .card-index,
body.industries-page main .card-index *,
body.industries-page main .use-cases h4 {
  font-size: 0.75rem !important;
  line-height: 1.45 !important;
}

@media (max-width: 1100px) {
  .problem-block .problem-visual,
  .service-grid .service-visual,
  main > section:not(:first-child) > div[class*="grid"] > figure,
  .monopoly-grid .monopoly-visual {
    order: 1 !important;
  }

  .problem-block .problem-copy,
  .service-grid .service-copy,
  main > section:not(:first-child) > div[class*="grid"] > div,
  .monopoly-grid > :not(.monopoly-visual) {
    order: 2 !important;
  }
}

@media (max-width: 767px) {
  .sov-footer-links a,
  .sov-footer-legal a {
    min-width: 44px !important;
  }

  main > section:not(:first-child) > div[class*="grid"] > div {
    order: 2 !important;
  }

  .monopoly-grid .monopoly-visual {
    order: 1 !important;
  }

  .monopoly-grid > :not(.monopoly-visual) {
    order: 2 !important;
  }
}

@media (max-width: 479px) {
  main > section:first-child h1[class*="text-4xl"],
  main > section:first-child h1[class*="text-5xl"],
  main h1[class*="text-4xl"],
  main h1[class*="text-5xl"] {
    font-size: clamp(1.82rem, 8.1vw, 2.05rem) !important;
    line-height: 1.16 !important;
  }

  body.technologies-page .technology-hero h1,
  body.industries-page .industries-hero h1,
  body.about-page .about-hero h1 {
    font-size: clamp(1.95rem, 8.8vw, 2.2rem) !important;
    line-height: 1.14 !important;
    letter-spacing: -0.035em !important;
  }
}

/*
 * Cross-site visual contract for every route except the homepage and Services.
 * These routes inherit the homepage palette and type scale while retaining
 * compact editorial headings inside long-form articles.
 */
body:not(.home-page):not(.services-page) {
  --bg-primary: var(--enterprise-pearl);
  --bg-secondary: var(--enterprise-gray);
  --white: var(--enterprise-white);
  --text-primary: var(--enterprise-charcoal);
  --text-heading: var(--enterprise-navy);
  --text-secondary: var(--enterprise-copy);
  --brand-navy: var(--enterprise-navy);
  --brand-teal: var(--enterprise-teal);
  --navy-deep: var(--enterprise-navy);
  --navy-hero: var(--enterprise-navy);
  --footer-bg: var(--enterprise-footer);
  --teal-dark: var(--enterprise-teal);
  --teal-dark-hover: #115e59;
  --mint: #5eead4;
  --cyan: #7dd3fc;
  --border-light: var(--enterprise-border);
  --text-dark-muted: #cbd5e1;
  --shadow-soft: 0 16px 44px rgba(15, 23, 42, 0.08);
  --radius-lg: 10px;
  --radius-md: 8px;
  --max: 1200px;
}

body.about-page {
  --about-navy: var(--enterprise-navy);
  --about-navy-soft: #172033;
  --about-ink: var(--enterprise-navy);
  --about-copy: var(--enterprise-copy);
  --about-muted: #64748b;
  --about-blue: var(--enterprise-blue);
  --about-teal: var(--enterprise-teal);
  --about-mint: #5eead4;
  --about-border: var(--enterprise-border);
  --about-paper: var(--enterprise-white);
  --about-pearl: var(--enterprise-pearl);
}

body.industries-page {
  --industries-ink: var(--enterprise-navy);
  --industries-navy: var(--enterprise-navy);
  --industries-teal: var(--enterprise-teal);
  --industries-mint: #5eead4;
  --industries-paper: var(--enterprise-pearl);
  --industries-soft: var(--enterprise-gray);
  --industries-copy: var(--enterprise-copy);
  --industries-line: var(--enterprise-border);
  --industries-max: 1200px;
}

body.technologies-page {
  --technology-navy: var(--enterprise-navy);
  --technology-navy-2: var(--enterprise-navy);
  --technology-teal: var(--enterprise-teal);
  --technology-mint: #5eead4;
  --technology-cyan: #7dd3fc;
  --technology-ink: var(--enterprise-charcoal);
  --technology-muted: var(--enterprise-copy);
  --technology-border: var(--enterprise-border);
  --technology-surface: var(--enterprise-pearl);
}

body:not(.home-page):not(.services-page) main h1,
body:not(.home-page):not(.services-page) main > section:first-child h1,
body.about-page main .about-hero h1,
body.industries-page main .industries-hero h1,
body.technologies-page main .technology-hero h1 {
  font-size: clamp(3.5rem, 5.25vw, 4.25rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.045em !important;
}

body:not(.home-page):not(.services-page) main .article-prose h2,
body:not(.home-page):not(.services-page) main article.prose h2 {
  font-size: clamp(2rem, 3vw, 2.5rem) !important;
  line-height: 1.22 !important;
  letter-spacing: -0.035em !important;
}

body:not(.home-page):not(.services-page) main .article-prose h3,
body:not(.home-page):not(.services-page) main article.prose h3 {
  font-size: clamp(1.35rem, 2vw, 1.7rem) !important;
  line-height: 1.3 !important;
}

body:not(.home-page):not(.services-page) .button,
body:not(.home-page):not(.services-page) .btn,
body:not(.home-page):not(.services-page) .btn-primary,
body:not(.home-page):not(.services-page) .btn-secondary,
body:not(.home-page):not(.services-page) a[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]),
body:not(.home-page):not(.services-page) button[class*="bg-tealbrand"]:not([class*="bg-tealbrand/"]) {
  font-size: 0.79rem !important;
  font-weight: 700 !important;
}

body.industries-page main > section:not(:first-child) h2 {
  font-size: clamp(2.5rem, 4vw, 3.6rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.04em !important;
}

body:not(.home-page):not(.services-page) main .text-link,
body.insights-page main .insights-hero-aside strong,
body.insights-page main .insights-index span,
body.insights-page main .insights-index button,
body.insights-page main .insight-tag,
body.technologies-page main .technology-index-list span,
body.technologies-page main .platform-card-head > span:last-child,
body.technologies-page main .lifecycle-label,
body.technologies-page main .model-lifecycle li span {
  font-family: var(--enterprise-mono) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
}

/* Long article sidebars remain reachable without unpinning the CTA. */
@media (min-width: 1024px) {
  body:has(.article-prose) main aside > .sticky,
  body:has(article.prose) main aside > .sticky {
    max-height: calc(100vh - 9rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #94a3b8 transparent;
  }

  body:has(.article-prose) main aside > .sticky::-webkit-scrollbar,
  body:has(article.prose) main aside > .sticky::-webkit-scrollbar {
    width: 8px;
  }

  body:has(.article-prose) main aside > .sticky::-webkit-scrollbar-thumb,
  body:has(article.prose) main aside > .sticky::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background: #94a3b8;
    background-clip: padding-box;
  }
}

.back-to-top {
  position: fixed;
  z-index: 950;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 8px;
  background: #075985;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.22);
  color: #ffffff;
  cursor: pointer;
  font-size: 1.25rem;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity 180ms ease, transform 180ms ease, background-color 180ms ease;
}

.back-to-top:hover,
.back-to-top:focus-visible {
  background: #06476a;
}

.back-to-top:focus-visible {
  outline: 3px solid rgba(14, 165, 233, 0.35);
  outline-offset: 3px;
}

.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

@media (max-width: 767px) {
  header.fixed #mobileMenu,
  .site-header .mobile-nav,
  .site-header .mobile-menu {
    max-height: calc(100dvh - 92px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

body.technologies-page main .technology-index-list a {
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
}

body.technologies-page main .capability-tags li,
body:has(.dashboard-metrics) main .dashboard-metric span {
  font-size: 0.75rem !important;
  line-height: 1.45 !important;
}

/* Keep compact accent copy readable on the site's dark and light surfaces. */
body.about-page main .about-section--dark .text-link,
body.insights-page main .insights-featured .text-link,
body.technologies-page main .technology-hero .eyebrow,
body.technologies-page main .control-section .eyebrow,
body.technologies-page main .governance-section .eyebrow,
body.technologies-page main .technology-cta .eyebrow,
body.technologies-page main .nvidia-card .specialist-meta,
body:has(.visual-note) main .visual-note strong {
  color: #5eead4 !important;
}

body.industries-page main .context-layer > span,
body.industries-page main .context-layer > i,
body.industries-page main .context-layer small,
body.technologies-page main .technology-index-list span {
  color: #475569 !important;
}

body:has(.claim-table) main .claim-table th {
  color: #cbd5e1 !important;
}

body:has(.claim-table) main .claim-table .claim-total th {
  color: #5eead4 !important;
}

@media (max-width: 1100px) {
  body:not(.home-page):not(.services-page) main h1,
  body:not(.home-page):not(.services-page) main > section:first-child h1,
  body.about-page main .about-hero h1,
  body.industries-page main .industries-hero h1,
  body.technologies-page main .technology-hero h1 {
    font-size: clamp(3.25rem, 6vw, 3.75rem) !important;
  }

  body.industries-page main > section:not(:first-child) h2 {
    font-size: clamp(2.3rem, 4.8vw, 3.2rem) !important;
  }
}

@media (max-width: 767px) {
  body:not(.home-page):not(.services-page) main h1,
  body:not(.home-page):not(.services-page) main > section:first-child h1,
  body.about-page main .about-hero h1,
  body.industries-page main .industries-hero h1,
  body.technologies-page main .technology-hero h1 {
    font-size: clamp(2.35rem, 10vw, 2.5rem) !important;
    line-height: 1.12 !important;
  }

  body:not(.home-page):not(.services-page) main .article-prose h2,
  body:not(.home-page):not(.services-page) main article.prose h2 {
    font-size: 1.85rem !important;
  }

  body.industries-page main > section:not(:first-child) h2 {
    font-size: clamp(2rem, 8vw, 2.375rem) !important;
    line-height: 1.18 !important;
  }
}

@media (max-width: 479px) {
  body:not(.home-page):not(.services-page) main h1,
  body:not(.home-page):not(.services-page) main > section:first-child h1,
  body.about-page main .about-hero h1,
  body.industries-page main .industries-hero h1,
  body.technologies-page main .technology-hero h1 {
    font-size: clamp(2.15rem, 11.5vw, 2.45rem) !important;
    line-height: 1.1 !important;
  }

  body.industries-page main > section:not(:first-child) h2 {
    font-size: clamp(1.85rem, 9.4vw, 2.2rem) !important;
  }

  body:not(.home-page):not(.services-page) main nav a {
    min-height: 44px !important;
  }
}

/* Site-wide navigation contract: identical content, spacing and behavior. */
header.fixed > nav[aria-label="Primary navigation"],
.site-header .header-shell,
.site-header .site-nav {
  justify-content: space-between !important;
  gap: 18px !important;
}

header.fixed nav > a:first-child,
.site-header .brand,
.site-header .brand-lockup {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  gap: 10px !important;
  color: var(--enterprise-navy) !important;
  text-decoration: none !important;
}

header.fixed nav > a:first-child > span,
.site-header .brand > span,
.site-header .brand-name,
.site-header .brand-lockup > span {
  color: var(--enterprise-navy) !important;
  font-family: var(--enterprise-body) !important;
  font-size: clamp(0.95rem, 1.4vw, 1.18rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
  white-space: nowrap !important;
}

header.fixed [aria-label="Main sections"],
.site-header .desktop-nav {
  display: flex !important;
  flex: 0 1 auto !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  margin-left: auto !important;
}

header.fixed .site-nav-link,
.site-header .site-nav-link {
  display: inline-flex !important;
  min-height: 44px !important;
  align-items: center !important;
  padding: 9px 11px !important;
  border: 0 !important;
  border-radius: 6px !important;
  color: #364a5d !important;
  background: transparent !important;
  font-family: var(--enterprise-body) !important;
  font-size: 0.79rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

header.fixed .site-nav-link:hover,
header.fixed .site-nav-link:focus-visible,
.site-header .site-nav-link:hover,
.site-header .site-nav-link:focus-visible {
  color: var(--enterprise-navy) !important;
  background: var(--enterprise-gray) !important;
}

header.fixed .site-nav-link[aria-current="page"],
.site-header .site-nav-link[aria-current="page"] {
  color: var(--enterprise-navy) !important;
  background: #eaf4f8 !important;
}

header.fixed .site-header-action,
.site-header .site-header-action,
.site-header .header-cta,
.site-header .nav-call {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  min-height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.7rem 1rem !important;
  border: 1px solid var(--enterprise-blue) !important;
  border-radius: 4px !important;
  color: #ffffff !important;
  background: var(--enterprise-blue) !important;
  box-shadow: none !important;
  font-family: var(--enterprise-body) !important;
  font-size: 0.79rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

header.fixed .site-header-action:hover,
header.fixed .site-header-action:focus-visible,
.site-header .site-header-action:hover,
.site-header .site-header-action:focus-visible,
.site-header .header-cta:hover,
.site-header .header-cta:focus-visible,
.site-header .nav-call:hover,
.site-header .nav-call:focus-visible {
  color: #ffffff !important;
  background: var(--enterprise-blue-dark) !important;
  border-color: var(--enterprise-blue-dark) !important;
}

header.fixed #mobileMenuButton,
.site-header #menu-button {
  display: none !important;
  flex: 0 0 44px !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: 1px solid var(--enterprise-border) !important;
  border-radius: 8px !important;
  color: var(--enterprise-navy) !important;
  background: #ffffff !important;
}

header.fixed #mobileMenu,
.site-header .mobile-nav,
.site-header .mobile-menu {
  width: min(1240px, 100%) !important;
  margin: 8px auto 0 !important;
  padding: 10px !important;
  border: 1px solid var(--enterprise-border) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.99) !important;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.1) !important;
  pointer-events: auto !important;
}

.site-header .mobile-nav,
.site-header .mobile-menu,
header.fixed #mobileMenu.hidden {
  display: none !important;
}

.site-header .mobile-nav.is-open,
.site-header .mobile-menu[data-open="true"],
header.fixed #mobileMenu:not(.hidden) {
  display: grid !important;
}

header.fixed .site-mobile-link,
header.fixed .site-mobile-cta,
.site-header .site-mobile-link,
.site-header .site-mobile-cta {
  display: flex !important;
  min-height: 44px !important;
  align-items: center !important;
  padding: 11px 14px !important;
  border-radius: 6px !important;
  color: var(--enterprise-navy) !important;
  font-family: var(--enterprise-body) !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
}

header.fixed .site-mobile-link:hover,
header.fixed .site-mobile-link:focus-visible,
.site-header .site-mobile-link:hover,
.site-header .site-mobile-link:focus-visible,
header.fixed .site-mobile-link[aria-current="page"],
.site-header .site-mobile-link[aria-current="page"] {
  color: var(--enterprise-navy) !important;
  background: #eaf4f8 !important;
}

header.fixed .site-mobile-cta,
.site-header .site-mobile-cta {
  justify-content: center !important;
  margin-top: 6px !important;
  color: #ffffff !important;
  background: var(--enterprise-blue) !important;
}

.site-header > .shell {
  width: min(1240px, 100%) !important;
  margin: 0 auto !important;
}

@media (max-width: 1100px) {
  header.fixed [aria-label="Main sections"],
  .site-header .desktop-nav,
  header.fixed .site-header-action,
  .site-header .header-cta,
  .site-header .nav-call {
    display: none !important;
  }

  header.fixed #mobileMenuButton,
  .site-header #menu-button {
    display: inline-flex !important;
  }

  header.fixed > nav[aria-label="Primary navigation"],
  .site-header .header-shell,
  .site-header .site-nav {
    gap: 10px !important;
  }
}

@media (max-width: 700px) {
  header.fixed,
  .site-header {
    padding: 8px !important;
  }

  header.fixed nav > a:first-child > span,
  .site-header .brand > span,
  .site-header .brand-name,
  .site-header .brand-lockup > span {
    max-width: calc(100vw - 126px) !important;
    overflow: hidden !important;
    font-size: 0.95rem !important;
    text-overflow: ellipsis !important;
  }
}
