html { scroll-padding-top: 95px; }
header nav a { display: inline-flex; align-items: center; min-height: 42px; padding: 8px 10px; border-radius: 24px; transition: background-color .2s; }
header nav a:hover, header nav a[aria-current="page"] { background: #e5e1d5; color: #20221e; }
header > .nav-cta { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; }
@media (min-width: 1151px) { header nav { margin-left: auto; } header > .nav-cta { margin-left: 16px; } }
@media (max-width: 1150px) {
  html { scroll-padding-top: 125px; }
  header { height: auto; min-height: 105px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; padding: 12px 5% 0; }
  header .logo { grid-column: 1; grid-row: 1; width: max-content; }
  header > .nav-cta { grid-column: 2; grid-row: 1; position: static; margin: 0; padding: 10px 14px; font-size: 11px; white-space: nowrap; }
  header nav, header .nav { grid-column: 1 / -1; grid-row: 2; width: 100%; display: flex; align-items: center; gap: 20px; margin: 12px 0 0; padding: 0 0 12px; overflow-x: auto; overflow-y: hidden; white-space: nowrap; font-size: 12px; scrollbar-width: thin; }
  header nav a:not(.nav-cta), header .nav a:not(.nav-cta) { display: inline-block; flex: none; }
}

@media (max-width: 700px) {
  .hero h1, .home-hero h1 { font-size: clamp(40px, 10.5vw, 58px); overflow-wrap: break-word; }
  .hero-image { height: min(100vw, 390px); }
  .image-badge { left: 12px; top: 12px; max-width: calc(100% - 24px); }
  .image-caption { flex-wrap: wrap; }
  .filter { min-height: 44px; }
  .slide-controls button { min-width: 44px; min-height: 44px; }
  .gallery img { max-width: 100%; }
  .contact-links { overflow-wrap: anywhere; }
}

@media (max-width: 360px) {
  header nav, header .nav { gap: 14px; font-size: 11px; }
  header .logo span { padding-left: 11px; }
  .hero h1, .home-hero h1 { font-size: 39px; }
  .text-link { gap: 16px; }
}
