/* Header-only refinements. Sticky positioning preserves the hero's layout. */
.header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: #fff;
  box-shadow: 0 1px 0 transparent;
  transition: box-shadow .3s ease, background-color .3s ease;
}
.header.is-scrolled {
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 1px 0 #dce9e980, 0 6px 24px #26454508;
}
.header .brand-caption { display: block; }
.header .brand { transition: opacity .25s ease; }
.header .brand:hover { opacity: .72; }
.header .nav-link { font-weight: 400; transition: color .25s ease; }
.header .nav-link:hover, .header .nav-link:focus-visible { color: var(--turquoise); }
.header .nav-link:focus-visible::after { width: 100%; }
.header .contact-button {
  min-height: 54px;
  font-weight: 400;
  transition: background-color .25s ease, box-shadow .25s ease;
}
.header .contact-button span { transition: transform .25s ease; }
.header .contact-button:hover { background: #ee7d73; transform: none; box-shadow: 0 5px 18px #e6958820; }
.header .contact-button:hover span, .header .contact-button:focus-visible span { transform: translateX(4px); }
@media (min-width: 1001px) and (max-width: 1300px) {
  .header .brand { gap: 15px; }
  .header .brand-caption { font-size: 9px; letter-spacing: 2px; }
  .header nav { gap: 20px; }
  .header .contact-button { padding: 16px 24px; gap: 22px; }
}
@media (max-width: 1000px) {
  .header .brand-caption { display: block; }
  .header .menu-toggle {
    display: flex; flex-direction: column; justify-content: center; gap: 7px;
    border: 1px solid #d6e7e7; border-radius: 50%; background: #fff;
    width: 44px; height: 44px; padding: 12px; flex-shrink: 0;
  }
  .header .menu-toggle > span:not(.sr-only) { height: 1px; width: 18px; background: var(--ink); transition: transform .25s ease; }
  .header .menu-toggle[aria-expanded=true] > span:first-child { transform: translateY(4px) rotate(45deg); }
  .header .menu-toggle[aria-expanded=true] > span:nth-child(2) { transform: translateY(-4px) rotate(-45deg); }
  .header nav {
    display: grid; position: absolute; top: 100%; left: 0; right: 0;
    grid-template-columns: 1fr 1fr; gap: 10px 24px; padding: 22px 6% 30px;
    background: #fff; border-top: 1px solid #edf3f3;
    box-shadow: 0 18px 24px #254b4910;
    max-height: calc(100dvh - 90px); overflow-y: auto;
    visibility: hidden; opacity: 0; transform: translateY(-6px); pointer-events: none;
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
  }
  .header .menu-toggle[aria-expanded=true] + nav { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
  .header .nav-link { padding: 14px 0; font-size: 14px; text-align: left; }
  .header .contact-button { grid-column: 1 / -1; justify-content: space-between; margin-top: 10px; }
}
@media (max-width: 800px) { .header nav { max-height: calc(100dvh - 82px); } }
@media (prefers-reduced-motion: reduce) { .header, .header * { transition: none !important; } }
