@media (max-width: 767px) {
  :root { --spacing-gutter: 1.25rem; }
  body { overflow-x: hidden; }
  .site-header { padding-inline: 1.25rem; }
  .site-header__inner { min-height: 4rem; }
  .site-title img, .custom-logo { width: 8.25rem; }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; flex-direction: column; gap: .3rem; padding: .6rem; }
  .menu-toggle span { display: block; width: 1.5rem; height: 1px; background: currentColor; }
  .primary-navigation { display: none; }
  .site-header .primary-navigation.is-open { z-index: 1; display: block; position: absolute; inset: 4rem 0 auto; padding: 1.5rem var(--spacing-gutter); color: var(--color-primary); background: var(--color-cream); box-shadow: 0 .75rem 1.5rem rgba(0, 49, 83, .12); }
  .primary-navigation ul { gap: 1.25rem; flex-direction: column; }
  .site-header .primary-navigation.is-open a, .site-header .primary-navigation.is-open a:visited { display: block; color: var(--color-primary); }
  .header-reservation { display: none; }
  .home-hero { min-height: max(40rem, 100svh); }
  .internal-hero { min-height: max(36rem, 86svh); }
  .internal-hero__inner { width: calc(100% - 2.5rem); padding-bottom: 3rem; }
  .internal-hero__title { font-size: clamp(3.75rem, 17vw, 5.5rem); }
  .internal-hero__title span:last-child { padding-left: .75rem; font-size: min(1.15em, 14.5vw); white-space: nowrap; }
  .site-main--suite-detail .internal-hero__title span:last-child { padding-left: 0; font-size: min(.8em, 5.6vw); white-space: nowrap; }
  .internal-hero__description { max-width: 22rem; font-size: .875rem; }
  .internal-intro { padding-block: 4.5rem; }
  .internal-intro-text { font-size: clamp(1.5rem, 7vw, 2rem); }
  .internal-feature { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 4.5rem; }
  .internal-feature--reverse .internal-feature__image { order: 2; }
  .internal-feature__copy { max-width: none; }
  .internal-feature__image { height: min(115vw, 32rem); }
  .internal-section-title { font-size: clamp(2.75rem, 12vw, 4rem); }
  .internal-gallery { padding-block: 4.5rem; }
  .internal-gallery__header { align-items: flex-start; flex-direction: column; gap: 1.5rem; margin-bottom: 2.5rem; }
  .internal-gallery__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .internal-gallery__grid img { height: min(75vw, 24rem); }
  .internal-gallery__amenities { grid-template-columns: 1fr; gap: 1.25rem; margin-top: 2.5rem; }
  .internal-highlight__inner { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 4.5rem; }
  .internal-highlight__image { height: min(115vw, 36rem); }
  .internal-faq { gap: 2.5rem; padding-block: 4.5rem; }
  .loc-how__inner, .loc-transport { grid-template-columns: 1fr; }
  .loc-transport { gap: 2rem; }
  .loc-table__row { grid-template-columns: 1fr; gap: .5rem; }
  .loc-how__map, .loc-how__map iframe { min-height: 18rem; }
  .suite-detail__inner, .suite-more__grid { grid-template-columns: 1fr; }
  .suite-detail__list { grid-template-columns: 1fr; }
  .suite-detail__aside { padding: 2rem 1.5rem; }
  .suite-gallery { padding-inline: 0; }
  .suite-gallery__grid, .suite-gallery__grid--2, .suite-gallery__grid--3, .suite-gallery__grid--4 { grid-template-columns: 1fr; grid-template-rows: 20rem; border-radius: 0; }
  .suite-gallery__item:not(.suite-gallery__item--large) { display: none; }
  .suite-gallery__item--large { grid-column: auto; grid-row: auto; }
  .suite-tour__grid { grid-template-columns: 1fr; }
  .suite-tour__item:nth-child(3n + 1) { grid-column: auto; }
  .suite-more .suite-card__image { height: 22rem; }
  .reserve__inner { grid-template-columns: 1fr; }
  .reserve-form { grid-template-columns: 1fr; }
  .reserve__aside { padding: 2rem 1.5rem; }
  .bom-summary__row { grid-template-columns: 1fr; gap: .5rem; }
  .experience-block { padding-block: 3rem; }
  .experience-block__inner { grid-template-columns: 1fr; gap: 2rem; }
  .experience-block__image, .experience-block--reverse .experience-block__image { order: 0; max-width: none; justify-self: stretch; }
  .experience-block__text { margin-top: 1.5rem; }
  .internal-comparison { padding-block: 4.5rem; }
  .internal-comparison__header { margin-bottom: 2.5rem; }
  .internal-comparison__table { min-width: 52rem; }
  .home-hero__media img { object-position: 58% center; }
  .home-hero__content { gap: 1.5rem; width: calc(100% - 2.5rem); padding-bottom: 1.5rem; }
  .home-hero .home-hero__eyebrow { margin-bottom: -.75rem; font-size: clamp(3.5rem, 16vw, 4.75rem); line-height: .92; }
  .home-hero__highlight { padding-left: .75rem; font-size: clamp(3rem, 15vw, 4.5rem); white-space: nowrap; }
  .home-hero__footer { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .home-hero__footer > p { font-size: .875rem; }
  .home-hero__place { gap: 1rem; font-size: .625rem; }
  .home-presentation, .home-suites, .home-experiences, .home-social, .home-location, .home-guest { padding-block: 4.5rem; }
  .home-presentation__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .home-presentation__content, .home-presentation__image { width: 100%; justify-self: stretch; }
  .home-presentation__title { margin: 1.5rem 0; font-size: clamp(2rem, 9vw, 4.5rem); }
  .home-presentation__title-highlight { font-size: clamp(4rem, 18vw, 5.25rem); }
  .home-presentation__copy { font-size: 1rem; }
  .home-presentation__stats { gap: 1.5rem 2rem; }
  .home-presentation__stat { flex: 1 1 5rem; }
  .home-presentation__image { height: min(125vw, 40rem); }
  .home-suites__header { align-items: flex-start; flex-direction: column; gap: 2rem; margin-bottom: 3rem; }
  .home-suites__title { font-size: clamp(2.4rem, 11vw, 4.5rem); }
  .home-suites__title span:last-child { padding-left: 1.5rem; font-size: clamp(3rem, 14vw, 5.25rem); }
  .home-suites__page-intro { min-height: 18rem; padding-block: 4.5rem; }
  .home-suites__grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .suite-card__image { height: min(72vw, 27rem); }
  .suite-card__title { font-size: clamp(2rem, 9vw, 2.5rem); }
  .suite-card__header { gap: .75rem; }
  .suite-card__number, .suite-card__amenities, .suite-card__link { letter-spacing: .17em; }
  .suite-card__subtitle { font-size: clamp(1.9rem, 9vw, 2.125rem); }
  .suite-lightbox { padding: 1.25rem; }
  .suite-lightbox__dialog { grid-template-columns: 1fr; width: 100%; }
  .suite-lightbox__figure { max-height: calc(100svh - 5rem); }
  .suite-lightbox__image { max-height: calc(100svh - 8rem); }
  .suite-lightbox__control { position: absolute; z-index: 1; top: calc(50% - 1.5rem); margin: 0; background: rgba(0, 24, 42, .5); }
  .suite-lightbox__control--previous { left: .5rem; }
  .suite-lightbox__control--next { right: .5rem; }
  .suite-lightbox__close { top: -3.5rem; right: 0; }
  .home-experiences__inner { grid-template-columns: 1fr; gap: 3rem; }
  .home-experiences__image { width: 100%; height: auto; aspect-ratio: 1.248 / 1; }
  .home-experiences__content { gap: 2rem; }
  .home-experiences .home-experiences__title { font-size: clamp(2.4rem, 11vw, 4.5rem); }
  .home-experiences__title span:last-child { padding-left: 1.5rem; font-size: clamp(3rem, 14vw, 5.25rem); }
  .home-experiences__list { grid-template-columns: 1fr; }
  .experience-item { min-height: 0; gap: 1rem; padding-block: 1.25rem; }
  .home-experiences .experience-item__title { letter-spacing: .16em; }
  .home-social__inner, .home-location__inner { grid-template-columns: 1fr; }
  .home-social__image { height: min(125vw, 32rem); }
  .home-social__content { gap: 1.25rem; padding-block: 1rem; }
  .home-social .home-social__title { font-size: clamp(3.5rem, 17vw, 5rem); }
  .home-information { padding-block: 4.5rem; }
  .home-information__inner { gap: 2.5rem; }
  .home-information__title { gap: .75rem; font-size: clamp(2.75rem, 13vw, 3.5rem); }
  .home-information__title span:last-child { font-size: clamp(3.5rem, 16vw, 4.5rem); }
  .home-information__grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .home-location__content { gap: 1.5rem; }
  .home-location__title { font-size: clamp(2.4rem, 11vw, 4.5rem); }
  .home-location__title span:last-child { padding-left: 1.25rem; font-size: clamp(3rem, 14vw, 5rem); }
  .home-location__map { min-height: min(80vw, 23.4375rem); }
  .home-guest__inner { gap: 1.75rem; }
  .home-guest__logo { width: 9rem; height: 9rem; }
  .home-guest .home-guest__title { font-size: clamp(2.75rem, 12vw, 3.5rem); }
  .home-guest__title span:last-child { font-size: clamp(3.5rem, 15vw, 4.5rem); }
  .home-guest__description { font-size: .9375rem; }
  .home-guest__actions { width: 100%; }
  .home-guest__button { flex: 1 1 0; width: auto; min-width: 0; padding-inline: .5rem; font-size: .625rem; letter-spacing: .18em; }
  .site-footer__inner { gap: 1.5rem; padding-block: 2rem; }
  .site-footer__bar, .site-footer__credits { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .site-footer__bar img { order: -1; }
  .site-footer__credits { width: 100%; }
}

@media (max-width: 374px) {
  .home-hero__place { gap: .625rem; letter-spacing: .16em; }
  .home-presentation__stats { gap: 1.25rem; }
  .home-guest__actions { gap: .625rem; }
  .home-guest__button { font-size: .5625rem; letter-spacing: .13em; }
}
