:root {
  --brand-forest: #173f32;
  --brand-hover: #2a5646;
  --brand-wash: #dae5d9;
  --brand-on-dark: #b9d4be;
  --brand-cream: #f7f5f0;
}

@media screen {
  .site-header, .site-footer, main#main, .catalog-footer {
    --link-ink: var(--brand-forest);
    --link-hover: var(--brand-hover);
    --focus-ring: var(--brand-forest);
  }

  /* The final invitation on secondary pages uses paper, even with the band-navy class. */
  .work-stage, .research-overview, .band-navy:not(:last-child) {
    --link-ink: var(--brand-on-dark);
    --link-hover: var(--brand-cream);
    --focus-ring: var(--brand-on-dark);
  }

  .nav .nav-cta, .catalog-page .nav .nav-cta,
  .btn:not(.btn-ghost, .btn-outline-light, .btn-light),
  .page-hero .btn-light, main > section.band-navy:last-child .btn-light, .closing-inner .btn-light,
  .catalog-primary, .request-page .preorder-form .btn {
    background-color: var(--brand-forest);
    border-color: var(--brand-forest);
    color: var(--brand-cream);
  }

  .nav .nav-cta:hover, .catalog-page .nav .nav-cta:hover,
  .btn:not(.btn-ghost, .btn-outline-light, .btn-light, :disabled):hover,
  .page-hero .btn-light:hover, main > section.band-navy:last-child .btn-light:hover, .closing-inner .btn-light:hover,
  .catalog-primary:hover, .request-page .preorder-form .btn:not(:disabled):hover {
    background-color: var(--brand-hover);
    border-color: var(--brand-hover);
    color: var(--brand-cream);
  }

  .request-page .nav .nav-cta {
    margin: 0;
    padding: 12px 16px;
    border: 0;
  }

  .btn-ghost, .btn-outline-light {
    background-color: transparent;
    border-color: currentColor;
    color: var(--link-ink);
  }
  .btn-ghost:not(:disabled):hover, .btn-outline-light:hover,
  main > section.band-navy:last-child .btn-outline-light:hover {
    background-color: var(--brand-wash);
    color: var(--brand-forest);
  }

  .text-link, .footer-contact, .catalog-page .catalog-text-link {
    color: var(--link-ink);
  }
  .catalog-request-link, .request-back {
    --catalog-sage: var(--link-ink);
  }
  .text-link:hover, .footer-contact:hover, .catalog-page .catalog-text-link:hover {
    --catalog-sage: var(--link-hover);
    color: var(--link-hover);
  }

  /* Running-text links remain distinguishable when their color is unavailable. */
  :where(main#main p, main#main dd, .legal-copy li, .error-page .stack,
         .government-page td, .footer-legal) a:not([class]) {
    color: var(--link-ink);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .18em;
  }
  :where(main#main p, main#main dd, .legal-copy li, .error-page .stack,
         .government-page td, .footer-legal) a:not([class]):hover {
    color: var(--link-hover);
    text-decoration-thickness: 2px;
  }

  .nav > a:not(.nav-cta):is(:hover, [aria-current="page"]),
  .section-nav a:hover, .nav-toggle[aria-expanded="true"] {
    color: var(--brand-forest);
  }
  .catalog-page .nav > a[aria-current="page"]:not(.nav-cta)::after {
    background-color: var(--brand-forest);
  }
  .capability-row:hover {
    background-color: var(--brand-wash);
  }
  .engineering-step::after {
    background-color: var(--brand-forest);
  }
  .engineering-step:hover, .engineering-step[aria-current="true"] > span,
  .engineering-pause:hover {
    color: var(--brand-forest);
  }

  .work-tabs button[aria-selected="true"] {
    background-color: #293a32;
    color: var(--brand-on-dark);
    border-bottom-color: var(--brand-on-dark);
  }
  .work-tabs button:not([aria-selected="true"]):hover {
    background-color: #303b34;
    color: var(--brand-cream);
  }
  .research-film-actions a, .research-film .film-toggle {
    color: var(--brand-on-dark);
  }
  .research-film .film-toggle:hover {
    background-color: #293a32;
    color: var(--brand-cream);
  }

  .request-page .preorder-consent input {
    accent-color: var(--brand-forest);
  }
  .request-page .preorder-form .btn:disabled,
  .request-page .preorder-form .btn:disabled:hover {
    background-color: #e3e2dc;
    border-color: #bcbcb3;
    color: #53564e;
    opacity: 1;
  }

  :is(.site-header, .site-footer, main#main, .catalog-footer)
  :is(a, button, summary, input, select, textarea):focus-visible {
    outline: 2px solid var(--focus-ring);
    outline-offset: 4px;
  }
  :is(.nav-cta, .btn, .catalog-primary):focus-visible {
    box-shadow: 0 0 0 2px var(--brand-cream);
  }
}

@media print {
  .text-link, .footer-contact, .catalog-text-link, main#main p a:not([class]) {
    color: #000;
  }
}

/* Required fields retain native semantics; the legend explains the visual marker. */
.required-marker{color:#a32622;font-weight:700}.required-note{font-size:14px;color:#55594f}.commerce label.check:has(input[required])::after{content:" *";color:#a32622;font-weight:700}
