/* Shared corrections that do not change the approved website wording. */
html { scroll-padding-top: 24px; }
.topbar { gap: 20px; }
.brand { min-width: 0; }
nav { flex-shrink: 0; }
nav a { display: inline-flex; align-items: center; min-height: 44px; }
/* Retain bright brand fills, using darker ink for small text and controls. */
.button-primary, .button-primary:hover, nav a.button:hover { color: #062821; }
.button-primary:hover { background: var(--accent); filter: brightness(1.08); }
.eyebrow, .work-index, .heading-bubble-speech { color: #94420b; }
.heading-bubble-thought { color: #59417e; }
a:focus-visible {
  outline: 3px solid var(--fg); outline-offset: 4px;
}
.callout a:focus-visible { outline-color: var(--surface); }
/* Let fallback fonts wrap the contact address without widening the fit grid. */
.fit-grid > div { min-width: 0; }
.contact-email-group { white-space: normal; }
.callout a {
  display: inline;
  padding: 0 5px;
  font: inherit;
  white-space: normal;
  overflow-wrap: anywhere;
}
/* Keep links available on touch screens and when zoomed. */
@media (max-width: 900px) {
  .topbar { height: auto; min-height: 72px; flex-wrap: wrap; padding-block: 16px; gap: 12px; }
  nav { width: 100%; flex-wrap: wrap; gap: 8px 20px; }
  nav a:not(.button), nav a:not(.speech-cta) { display: inline-flex; }
  nav .button { margin-left: auto; }
  footer > span { display: block; }
}
@media (max-width: 640px) {
  nav {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 3px;
    font-size: clamp(12px, 3.3vw, 14px);
    letter-spacing: -.02em;
  }
  nav a { white-space: nowrap; }
  nav .button { margin-left: 0; padding-inline: 4px; font-size: inherit; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
