@media (max-width: 1100px) {
  .bsg-header-inner {
    gap: 28px;
  }

  .bsg-menu {
    gap: 24px;
  }

  .bsg-header-search {
    width: 260px;
  }

  .bsg-grid-4,
  .bsg-grid-5 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .bsg-home-hero-inner.has-banner {
    grid-template-columns: minmax(0, 1fr) 420px;
  }

  .bsg-detail-hero.has-hours {
    grid-template-columns: minmax(0, 1fr) 340px;
  }

  .bsg-detail-intro.has-photo {
    grid-template-columns: minmax(0, 1fr);
  }

  .bsg-detail-services,
  .bsg-detail-facilities {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bsg-detail-service:nth-child(4n + 1),
  .bsg-detail-facility:nth-child(4n + 1) {
    padding-left: 18px;
    border-left: 1px solid var(--bsg-border);
  }

  .bsg-detail-service:nth-child(2n + 1),
  .bsg-detail-facility:nth-child(2n + 1) {
    padding-left: 4px;
    border-left: 0;
  }

  .bsg-detail-nearby {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .bsg-footer-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .bsg-footer-end {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (max-width: 900px) {
  :root {
    --bsg-header-height: 62px;
  }

  .bsg-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: auto;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: var(--bsg-radius-small);
    background: transparent;
    cursor: pointer;
  }

  .bsg-nav-toggle-bar,
  .bsg-nav-toggle-bar::before,
  .bsg-nav-toggle-bar::after {
    display: block;
    width: 20px;
    height: 2px;
    background: #fff;
  }

  .bsg-nav-toggle-bar {
    position: relative;
  }

  .bsg-nav-toggle-bar::before,
  .bsg-nav-toggle-bar::after {
    content: '';
    position: absolute;
    left: 0;
  }

  .bsg-nav-toggle-bar::before { top: -6px; }
  .bsg-nav-toggle-bar::after { top: 6px; }

  .bsg-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    background: var(--bsg-maroon);
  }

  .bsg-nav.is-open {
    display: flex;
  }

  .bsg-menu {
    flex-direction: column;
    gap: 4px;
  }

  .bsg-header-search {
    width: 100%;
  }

  .bsg-grid-4,
  .bsg-grid-5 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bsg-home-hero-inner.has-banner,
  .bsg-detail-hero.has-hours,
  .bsg-detail-split.has-map {
    grid-template-columns: minmax(0, 1fr);
  }

  .bsg-detail-reviews {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bsg-detail-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  body {
    font-size: 15px;
  }

  .bsg-container {
    padding: 0 16px;
  }

  h1,
  .bsg-detail-title {
    font-size: 1.75rem;
  }

  .bsg-home-hero-title {
    font-size: 1.9rem;
  }

  .bsg-logo-text {
    font-size: 1.35rem;
  }

  .bsg-page-hero.has-image .bsg-page-header-inner {
    min-height: 200px;
  }

  .bsg-grid-4,
  .bsg-grid-5 {
    grid-template-columns: minmax(0, 1fr);
  }

  .bsg-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bsg-section {
    padding: 36px 0;
  }

  .bsg-detail-panel {
    padding: 16px;
  }

  .bsg-detail-heading {
    gap: 10px;
    font-size: 1.2rem;
  }

  .bsg-detail-heading .bsg-icon {
    width: 24px;
    height: 24px;
  }

  .bsg-detail-meta-item {
    padding: 2px 10px;
  }

  .bsg-detail-button {
    width: 100%;
  }

  .bsg-detail-services,
  .bsg-detail-facilities,
  .bsg-detail-reviews {
    grid-template-columns: minmax(0, 1fr);
  }

  .bsg-detail-service,
  .bsg-detail-facility,
  .bsg-detail-service:nth-child(4n + 1),
  .bsg-detail-facility:nth-child(4n + 1) {
    padding-left: 4px;
    border-left: 0;
  }

  .bsg-detail-info-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
  }

  .bsg-detail-nearby {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bsg-footer-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .bsg-footer-brand {
    padding-right: 0;
    border-right: 0;
  }

  .bsg-footer-end {
    flex-direction: column;
    align-items: flex-start;
  }

  .bsg-lightbox {
    padding: 56px 8px;
  }
}

@media (max-width: 600px) {
  .bsg-detail-services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
  }

  .bsg-detail-service {
    gap: 10px;
    padding: 0;
  }

  .bsg-detail-service-icon {
    width: 26px;
    height: 26px;
  }
}

@media (max-width: 900px) {
  .bsg-detail-nearby {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
