/* Client-facing typography, branding and system dark-mode support. */
body.site-body { background: #fafbfc; }
h1 { font-size: 3.5rem; }
h2 { font-size: 2.25rem; }
h3 { font-size: 1.35rem; }
h1, h2, h3, a, p { overflow-wrap: break-word; }

.site-header { z-index: 300; }
.site-header__inner { max-width: 1320px; }
.site-header__brand { flex-shrink: 0; }
.site-header__logo {
  width: 338.4px;
  max-height: 69.6px;
  object-fit: contain;
  object-position: left center;
}
.site-header__logo--dark { display: none; }
.site-header__nav { gap: 1.5rem; }
.site-header__nav a { white-space: nowrap; }
.site-header__end { margin-left: auto; }
.site-footer { background: #17242c; color: #fff; }
.site-footer__inner { grid-template-columns: 1.15fr 1.15fr .7fr 1.15fr; }
.site-footer__inner > div { min-width: 0; }
.site-footer__logo { height: 57.6px; width: auto; max-width: 100%; object-fit: contain; filter: none; }
.site-footer__inner a, .site-footer__inner p, .site-footer__copy { overflow-wrap: anywhere; }
.site-footer__inner a { color: #e5eaed; font-size: .875rem; }
.site-footer__inner p, .site-footer__tag, .site-footer__copy { color: #b9c5cc; }
.site-footer__heading { color: #f2a76c !important; }
.site-footer__credit-text { color: #b9c5cc; }
.site-footer__bar { border-color: #3b474f; }

.hero {
  min-height: min(620px, calc(100svh - 180px));
  padding: 5rem 1.5rem;
  background-image: linear-gradient(90deg, rgba(8, 22, 32, .8), rgba(8, 22, 32, .25)), var(--hero-image, none);
}
.hero::before, .hero::after { display: none; }
.hero__lockup { max-width: 1132px; }
.hero__title { max-width: 20ch; font-size: 3.5rem; color: #fff; }
.hero__sub { max-width: 48ch; font-size: 1.125rem; color: #f0f3f5; }
.hero .eyebrow { color: #ffc69a; }
.hero .btn--ghost { color: #fff; }
.page-hero--visual {
  min-height: min(500px, calc(100svh - 180px));
  background-image: linear-gradient(90deg, rgba(8, 22, 32, .82), rgba(8, 22, 32, .3)), var(--page-hero-image, none);
}
.page-hero--visual h1 { font-size: 3.5rem; max-width: 22ch; color: #fff; }
.page-hero--visual .eyebrow { color: #ffc69a; }
.page-hero--visual .page-hero__lede, .service-hero .service-detail__summary { color: #f0f3f5; }
.page-hero__trace { display: none; }
.page-hero--visual::before { display: none; }
.service-hero__copy { max-width: 1132px; margin-inline: auto; }
.service-hero .service-detail__actions { justify-content: flex-start; }
.service-hero .btn--ghost { color: #fff; }
.service-detail-shell { padding-top: 3.5rem; }
.service-detail-shell--full { grid-template-columns: minmax(0, 1fr); }
.service-detail__aside { border: 0; border-left: 2px solid var(--theme-brass); border-radius: 0; box-shadow: none; background: none; }
.service-command__checks span { border: 0; border-bottom: 1px solid var(--candour-line); border-radius: 0; background: none; }
.stream-block:nth-of-type(even) { background: #f0f4f6; }
.stat { background: none; box-shadow: none; }
.stat__label { text-transform: none; }
.journey__header h2 { font-size: 2.25rem; }
.journey__step h3 { font-size: 1.35rem; }
.journey__label { font-size: .75rem; }
.story-split h2 { font-size: 2.25rem; }
.blog-feature strong { font-size: 2rem; line-height: 1.2; max-width: 22ch; }
.article-hero h1 { font-size: 3rem; }
.blog-detail .prose ul { display: block; }
.blog-detail .prose li { margin-bottom: 1rem; }
.client-badge img { filter: none; }
.client-badge { background: #fff; }
.client-badge__meta { color: #263f50; }
.btn--brass { background: #b74f06; color: #fff; }
.btn--brass:hover { background: #963e00; }
.eyebrow { color: #a74604; }
.mobile-nav[hidden] { display: none; }
.mobile-nav { padding-top: 8rem; }
:focus-visible { outline: 3px solid #008a96; outline-offset: 4px; }

@media (max-width: 1100px) {
  .site-header__nav, .site-header__cta { display: none; }
  .nav-toggle { display: flex; flex-shrink: 0; }
  .site-header__inner { gap: 1rem; padding-block: .75rem; }
  .site-header__logo { width: min(312px, 74.4vw); max-height: 62.4px; }
  .site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  h1, .hero__title, .page-hero--visual h1, .article-hero h1 { font-size: 2.25rem; }
  h2, .story-split h2, .journey__header h2 { font-size: 1.75rem; }
  .hero, .page-hero--visual { min-height: 0; padding: 3.5rem 1.25rem; }
  .hero__sub { font-size: 1rem; }
  .site-header__inner { padding-inline: 1rem; }
  .site-header__brand { max-width: calc(100% - 56px); }
  .site-header__logo { max-width: 100%; }
  .site-footer__inner { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .blog-feature strong { font-size: 1.75rem; }
  .service-command, .service-detail-shell { grid-template-columns: minmax(0, 1fr); }
  .service-detail__aside { position: static; }
}

@media (prefers-color-scheme: dark) {
  body.site-body {
    color-scheme: dark;
    --theme-ink: #eef1f3;
    --theme-paper: #172127;
    --theme-steel: #b9c5cc;
    --theme-signal: #83c5d8;
    --theme-brass: #f0a36c;
    --candour-line: #3b484f;
    background: #111a20;
  }
  .site-header, .site-header.is-scrolled { background: rgba(17, 26, 32, .96); }
  .site-header__logo--light { display: none; }
  .site-header__logo--dark { display: block; }
  .mobile-nav { background: #111a20; }
  .stream-block:nth-of-type(even) { background: #172127; }
  .eyebrow { color: #f0a36c; }
  .card, .accordion__item, .blog-card, .blog-feature, .service-row, .credential-card,
  .testimonial-card, .journey, .journey__step {
    background: #1c292f;
    border-color: #3b484f;
    box-shadow: none;
  }
  .journey__step.is-active { background: #26373f; }
  .journey__chart { background-color: #172127; }
  .journey__header p, .journey__step p, .journey__step h3 { color: #eef1f3; }
  .contact-form input, .contact-form select, .contact-form textarea {
    background: #172127;
    color: #eef1f3;
    border-color: #536570;
  }
  .contact-form input::placeholder, .contact-form textarea::placeholder { color: #aebdc5; }
  .client-badge { background: #fff; color-scheme: light; }
  .client-badge__name, .client-badge__meta { color: #263f50; }
  .client-badge__meta span { color: #536879; }
  .site-footer { background: #0b1419; }
  .hero, .page-hero--visual { background-color: #172127; }
  .btn--brass { background: #b74f06; color: #fff; }
  .btn--brass:hover { background: #963e00; }
  .form-status[data-state="ok"] { color: #86d7a5; }
  .form-status[data-state="error"] { color: #ffb1a8; }
}
