/* Site-wide visual system: navy/blue brand, refined type, consistent chrome. */

:root {
  --white: #ffffff;
  --bg: #fafafa;
  --paper: #fafafa;
  --ink: #0e1013;
  --navy: #0b1f3f;
  --blue: #2f6fb0;
  --blue-hover: #275f97;
  --blue-tint: #eaf1f8;
  --muted: #5a6573;
  --line: #e3e6eb;
  --accent: var(--blue);
  --accent-deep: var(--navy);
  --violet: var(--blue);
  --violet-light: #7aa3d4;
  --focus: #2f6fb0;
  --radius: .55rem;
  --radius-sm: .4rem;
  --shadow-sm: 0 1px 0 rgb(11 31 63 / .04);
  --shadow-md: 0 12px 32px rgb(11 31 63 / .08);
  --shadow-lg: 0 24px 56px rgb(11 31 63 / .12);
  --sans: "Manrope", "Segoe UI", sans-serif;
  --display: "Source Serif 4", Georgia, "Times New Roman", serif;
  --network-rgb: 47, 111, 176;
  --chrome-gutter: clamp(1.25rem, 5vw, 5.5rem);
}

html {
  scroll-behavior: smooth;
}

body {
  background:
    radial-gradient(ellipse 80% 50% at 100% -10%, rgb(47 111 176 / .07), transparent 55%),
    radial-gradient(ellipse 60% 40% at -5% 30%, rgb(11 31 63 / .04), transparent 50%),
    var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 500;
  letter-spacing: -.01em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3,
.hero h1,
.section-heading h2,
.section-intro h2,
.final-cta h2,
.form-title,
.footer-cta h2,
.contact-intro h1,
.pilot-intro h1,
.solution-page h1,
.solution-page h2,
.product-showcase h2,
.product-detail h2,
.resource-hero h1 {
  font-family: var(--display);
  font-weight: 400;
  letter-spacing: -.04em;
  color: var(--navy);
}

.eyebrow,
.footer-kicker,
.solution-card > span,
.workflow-list .step-number {
  color: var(--blue) !important;
  font-family: var(--sans);
  font-weight: 700;
}

.button {
  border: 0;
  border-radius: var(--radius-sm);
  background: var(--blue);
  color: var(--white) !important;
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: -.01em;
  box-shadow: 0 8px 20px rgb(47 111 176 / .28);
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.button:hover,
.button:focus-visible {
  background: var(--blue-hover);
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgb(47 111 176 / .34);
}

.button span {
  color: inherit !important;
}

.button-ghost {
  border: 1px solid color-mix(in srgb, var(--navy) 55%, transparent);
  background: transparent;
  color: var(--navy) !important;
  box-shadow: none;
}

.button-ghost:hover,
.button-ghost:focus-visible {
  border-color: var(--navy);
  background: var(--navy);
  color: var(--white) !important;
}

.text-link {
  border-bottom-color: color-mix(in srgb, var(--blue) 55%, transparent);
  color: var(--navy);
  font-weight: 700;
  transition: color .18s ease, border-color .18s ease;
}

.text-link:hover {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

.site-header {
  background: color-mix(in oklab, var(--white) 82%, transparent);
  border-bottom-color: var(--line);
  box-shadow: 0 1px 0 rgb(11 31 63 / .03);
}

.site-header .site-nav > a:not(.button):after,
.site-header .nav-group > button:after {
  background: var(--blue);
}

.site-header .site-nav a.button,
.site-header .site-nav a.button:hover,
.site-header .site-nav a.button span {
  color: var(--white) !important;
}

.mega-menu {
  border-color: var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: var(--shadow-md);
}

.mega-menu > p {
  color: var(--blue) !important;
}

.mega-menu a:hover {
  background: var(--blue-tint);
}

.mega-menu b {
  color: var(--navy);
}

.solution-card,
.industry-feature,
.industry-card,
.solutions-card,
.about-card,
.platform-workspace-grid article,
.product-showcase-grid article,
.solution-grid article,
.glossary-grid article,
.resource-card,
.contact-card,
.pilot-card {
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease, transform .2s ease;
}

.solution-card:hover,
.solutions-card:hover,
.about-card:hover,
.industry-card:hover,
.industry-feature:hover {
  border-color: color-mix(in srgb, var(--blue) 45%, var(--line));
  box-shadow: var(--shadow-md);
  background: color-mix(in srgb, var(--blue-tint) 55%, var(--white));
}

.solution-card a,
.solutions-card-links a,
.industry-feature-links a,
.industry-card span {
  color: var(--blue) !important;
}

.final-cta {
  background:
    linear-gradient(135deg, var(--blue-tint), var(--white) 48%, #eef3f8);
  border-top: 1px solid var(--line);
}

.pilot-form input,
.pilot-form select,
.pilot-form textarea,
.glossary-search input,
.resource-search input {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--white);
  transition: border-color .18s ease, box-shadow .18s ease;
}

.pilot-form input:focus,
.pilot-form select:focus,
.pilot-form textarea:focus,
.glossary-search input:focus,
.resource-search input:focus {
  border-color: var(--blue);
  outline: 2px solid color-mix(in srgb, var(--blue) 28%, transparent);
  outline-offset: 1px;
}

.contact-page {
  background:
    radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--blue) 16%, transparent) 0, transparent 34%),
    var(--paper) !important;
}

.contact-card {
  border-color: var(--line) !important;
  border-radius: var(--radius) !important;
  background: var(--white) !important;
  box-shadow: var(--shadow-md) !important;
}

.contact-card .pilot-form input,
.contact-card .pilot-form select,
.contact-card .pilot-form textarea {
  border-color: var(--line) !important;
  background: var(--white) !important;
}

.contact-route:hover {
  background: color-mix(in srgb, var(--blue-tint) 40%, transparent);
}

.contact-route b,
.contact-route strong {
  color: var(--navy) !important;
}

.site-footer {
  background:
    linear-gradient(180deg, #f3f6fa, var(--bg)) !important;
  border-top: 1px solid var(--line);
}

.site-footer .footer-cta:before {
  background: radial-gradient(circle, rgb(47 111 176 / .22), rgb(47 111 176 / .06) 42%, transparent 70%) !important;
}

.site-footer .footer-cta .button,
.site-footer .footer-cta .button:hover {
  background: var(--blue);
  color: var(--white) !important;
}

.site-footer .footer-links a:hover,
.site-footer .footer-legal a:hover {
  color: var(--blue) !important;
}

.scroll-top {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--white);
  color: var(--navy);
  box-shadow: var(--shadow-sm);
}

.scroll-top:hover {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.platform-strip .eyebrow,
.workflow .eyebrow {
  color: var(--blue) !important;
}

.platform-strip .button-ghost {
  border-color: color-mix(in srgb, #f7f3e9 70%, transparent);
}

.glossary-index button.is-active {
  background: var(--blue-tint) !important;
  color: var(--navy) !important;
}

.resource-grid img,
.solution-hero img,
.product-showcase-hero img,
.product-detail figure img,
.hero-visual img {
  border-radius: var(--radius);
}

@media (prefers-reduced-motion: no-preference) {
  .solution-card:hover,
  .solutions-card:hover,
  .about-card:hover,
  .industry-card:hover {
    transform: translateY(-3px);
  }
}

@media (max-width: 800px) {
  .button {
    box-shadow: 0 6px 16px rgb(47 111 176 / .22);
  }
}

/* Title system: stop oversized / narrow-column headline breaks. */
:root {
  --title-hero: clamp(2.2rem, 2.4vw + 1.1rem, 3.4rem);
  --title-section: clamp(1.85rem, 1.7vw + 1rem, 2.75rem);
  --title-sub: clamp(1.55rem, 1.2vw + .9rem, 2.15rem);
  --title-lh: 1.14;
  --title-track: -.028em;
  --title-max-hero: min(100%, 34rem);
  --title-max-section: min(100%, 38rem);
}

h1,
h2,
h3 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

.hero h1,
.solution-hero h1,
.contact-intro h1,
.pilot-intro h1,
.resource-hero h1,
.company-page .hero h1,
.careers-page .hero h1,
.home-page .hero h1,
.solutions-page .hero h1,
.industries-page .hero h1,
.platform-page .hero h1,
.product-page .hero h1,
.pilot-page .pilot-intro h1 {
  max-width: var(--title-max-hero) !important;
  font-size: var(--title-hero) !important;
  line-height: var(--title-lh) !important;
  letter-spacing: var(--title-track) !important;
}

.section-heading h2,
.section-intro h2,
.final-cta h2,
.footer-cta h2,
.workflow-heading h2,
.industry-banner h2,
.platform-strip .section-intro h2,
.solution-intro h2,
.solution-section-intro h2,
.solution-detail h2,
.solution-case h2,
.solution-faq h2,
.product-showcase h2,
.product-detail h2,
.solutions-page .section-intro h2,
.solutions-evidence h2,
.solutions-cta h2,
.industry-cta h2,
.about-split .section-heading h2,
.about-section-intro h2,
.platform-section-intro h2,
.platform-api h2,
.home-page .section-heading h2,
.home-page .section-intro h2,
.home-page .industry-banner h2,
.home-page .final-cta h2,
.home-page #workflow .workflow-heading h2,
.home-page .platform-strip .section-intro h2 {
  max-width: var(--title-max-section) !important;
  font-size: var(--title-section) !important;
  line-height: var(--title-lh) !important;
  letter-spacing: var(--title-track) !important;
}

.solution-highlight h2,
.product-showcase-grid h3,
.solutions-proof h3,
.glossary-section > h2 {
  max-width: var(--title-max-section) !important;
  font-size: var(--title-sub) !important;
  line-height: 1.18 !important;
}

.resource-hero h1 {
  max-width: min(100%, 28rem) !important;
  font-size: clamp(2.1rem, 2.2vw + 1rem, 3.2rem) !important;
  line-height: 1.12 !important;
}

.site-footer .footer-cta h2 {
  max-width: min(100%, 22rem) !important;
  font-size: clamp(1.9rem, 2vw + .85rem, 2.85rem) !important;
  line-height: 1.12 !important;
}

.trusted-kicker {
  font-size: clamp(1rem, 1.1vw + .75rem, 1.35rem) !important;
}

@media (max-width: 800px) {
  .hero h1,
  .solution-hero h1,
  .contact-intro h1,
  .pilot-intro h1,
  .resource-hero h1,
  .company-page .hero h1,
  .careers-page .hero h1,
  .home-page .hero h1,
  .solutions-page .hero h1,
  .industries-page .hero h1,
  .platform-page .hero h1,
  .product-page .hero h1 {
    max-width: 100% !important;
    font-size: clamp(2rem, 7.5vw, 2.75rem) !important;
  }

  .section-heading h2,
  .section-intro h2,
  .final-cta h2,
  .footer-cta h2,
  .industry-banner h2,
  .home-page .section-heading h2,
  .home-page .industry-banner h2,
  .home-page .final-cta h2 {
    max-width: 100% !important;
    font-size: clamp(1.7rem, 6.2vw, 2.35rem) !important;
  }
}

/* Keep the homepage journey readable on the navy signal deck. */
body.home-page #workflow,
body.home-page #workflow h2,
body.home-page #workflow h3,
body.home-page #workflow p,
body.home-page #workflow .workflow-node-label {
  color: #f4f7fb;
}

body.home-page #workflow .workflow-heading > p,
body.home-page #workflow .workflow-panel p {
  color: #b7c5d6;
}

body.home-page #workflow .eyebrow,
body.home-page #workflow .workflow-panel-meta,
body.home-page #workflow .workflow-panel-tag {
  color: #7aa3d4 !important;
}

body.home-page #workflow .workflow-node {
  color: #9eb0c4;
}

body.home-page #workflow .workflow-node.is-active .workflow-node-label {
  color: #f4f7fb;
}

body.home-page #workflow .workflow-panel-path {
  color: #8093a8;
}

body.home-page .platform-strip .section-intro h2,
body.home-page .platform-strip .section-intro p {
  color: #f3efe6;
}

/* Solution cards: fill colors from the hero network graphic. */
body.home-page #solutions .solution-card--data {
  background: color-mix(in srgb, #5b93cf 16%, var(--paper)) !important;
}

body.home-page #solutions .solution-card--train {
  background: color-mix(in srgb, #c0392b 14%, var(--paper)) !important;
}

body.home-page #solutions .solution-card--validate {
  background: color-mix(in srgb, #f0b429 18%, var(--paper)) !important;
}

body.home-page #solutions .solution-card--test {
  background: color-mix(in srgb, #8bc34a 16%, var(--paper)) !important;
}

body.home-page #solutions .solution-card--data:hover {
  background: color-mix(in srgb, #5b93cf 24%, var(--paper)) !important;
}

body.home-page #solutions .solution-card--train:hover {
  background: color-mix(in srgb, #c0392b 22%, var(--paper)) !important;
}

body.home-page #solutions .solution-card--validate:hover {
  background: color-mix(in srgb, #f0b429 26%, var(--paper)) !important;
}

body.home-page #solutions .solution-card--test:hover {
  background: color-mix(in srgb, #8bc34a 24%, var(--paper)) !important;
}

body.home-page #solutions .solution-card--data > span,
body.home-page #solutions .solution-card--train > span,
body.home-page #solutions .solution-card--validate > span,
body.home-page #solutions .solution-card--test > span,
body.home-page #solutions .solution-card--data a,
body.home-page #solutions .solution-card--train a,
body.home-page #solutions .solution-card--validate a,
body.home-page #solutions .solution-card--test a {
  color: var(--ink) !important;
}
