/* Public heading scale. Load after page-specific stylesheets. */
body .hero h1, body .guide-hero h1, body .content-hero h1,
body .form-layout h1, body .form-hero h1 {
  font-size: clamp(1.875rem, 3.5vw, 2.375rem);
  line-height: 1.15;
  font-weight: 500;
}
body .section-heading h2, body .agent-band h2, body .final-cta h2,
body .guide-topic-grid h2, body .content-block h2 {
  font-size: clamp(1.5rem, 2.4vw, 1.625rem);
  line-height: 1.25;
  font-weight: 500;
}
body .answer-panel h2 { font-size: 1.3125rem; line-height: 1.3; }

.company-logo { display:block; max-width:140px; height:48px; object-fit:contain; }

/* Public interaction states; use the existing colour palette. */
a, button {
  transition: color 150ms ease, background-color 150ms ease,
              border-color 150ms ease, text-decoration-color 150ms ease;
}
.primary-nav > a:not(.button):hover,
.primary-nav > a:not(.button):focus-visible,
.primary-nav > a:not(.button)[aria-current] {
  color: var(--forest);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}
.primary-nav > a:not(.button)[aria-current] { font-weight: 500; }
.primary-nav > a.button[aria-current] {
  text-decoration: underline;
  text-underline-offset: 4px;
}
body .button:hover { transform: none; }
.text-link:hover, .site-footer a:hover, .guide-card a:hover,
.journey-card a:hover, .content-block a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
a:focus-visible, button:focus-visible {
  outline: 3px solid #1e75ff;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  a, button { transition: none; }
}
