/* Local interface and accessibility refinements. 2026-10-22. */
:root { --pin-header-offset: 110px; }
[id] { scroll-margin-top: var(--pin-header-offset); }
[hidden] { display: none !important; }
/* The legal pages retain older inline column widths and long URLs. */
.content > .l-row { overflow-wrap: anywhere; }
.content .clearfix > div { max-width: 100%; }
.content > .l-row img { max-width: 100%; height: auto; }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible {
  outline: 3px solid #b77b00;
  outline-offset: 4px;
}
.l-header .header { transition: background-color 250ms ease, padding 250ms ease; }
.l-header .header.is-scrolled { background-color: #004d2d; padding-top: 17px; padding-bottom: 8px; }
.l-header .header.is-scrolled a { color: #fff; }
.l-header .header.is-scrolled a svg path,
.l-header .header.is-scrolled .mobile-nav-show button svg path { fill: #fff !important; }
.l-header .header.is-scrolled nav .items a::after { background-color: #fff; }
.l-header .header .mobile-nav-show button,
.l-header .header button.mobile-nav-hide {
  appearance: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.l-header .header .mobile-nav-show button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  margin: -4px 0;
  padding: 10px;
}
.l-header .header .mobile-nav-show { line-height: 0; vertical-align: top; }
.l-header .header button.mobile-nav-hide { margin-left: auto; }
.mobile-nav-hide[role="button"] { cursor: pointer; }
.mobile-expand-control {
  display: block;
  margin: 0 auto 1em;
  padding: 8px 16px;
  border: 0;
  background: transparent;
  color: #004d2d;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.mobile-expand-control:hover { text-decoration: underline; }
/* The map remains a local address card. Google receives data only after a link is opened. */
.contact .location-content {
  display: block;
  max-width: 1050px;
  margin: 0 auto;
  padding: 25px 20px 5px;
}
.contact .location-header { font-weight: 700; color: #004d2d; }
.contact .maps-info-window--arrow { display: none; }
.contact .nav-map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 1050px;
  margin: 0 auto;
  padding: 5px 20px 25px;
}
.contact .nav-map-actions a { margin: 0; }
@media only screen and (max-width: 480px) {
  .l-header .header.is-scrolled { padding-top: 10px; padding-bottom: 8px; }
  .l-header .header .topnav .mobile-overlay.active { overflow-y: auto; overscroll-behavior: contain; }
  .l-header .header .topnav .mobile-overlay.active .mobile-nav-hide { min-height: 48px; }
  .contact .nav-map-actions a { width: 100%; }
  /* Navigation remains usable when JavaScript is disabled or unavailable. */
  html:not(.site-ready) .l-header .header { position: static; }
  html:not(.site-ready) .l-header .space-reserver { display: none; }
  html:not(.site-ready) .l-header .header .topnav { float: none; display: block; width: 100%; }
  html:not(.site-ready) .l-header .header .topnav .mobile-nav-show { display: none; }
  html:not(.site-ready) .l-header .header .topnav .items { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 0; }
  html:not(.site-ready) .l-header .header .topnav .items a { color: #004d2d; font-size: 14px; padding: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; }
}
