/* Page-specific responsive adjustments will be added as each phase is built. */

@media (min-width: 36rem) {
  .enquiry-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .enquiry-form__field--wide,
  .enquiry-form__submit { grid-column: 1 / -1; }
  .enquiry-form__submit .button { width: auto; }
  .contact-closing__actions { flex-direction: row; flex-wrap: wrap; }
  .about-principles,
  .about-guests__grid,
  .about-details__photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-principles li:nth-child(odd) { padding-right: 1.5rem; }
  .about-principles li:nth-child(even) { padding-left: 1.5rem; border-left: 1px solid rgb(3 13 29 / 14%); }
  .about-guests__grid { gap: 1.5rem; }
  .about-guests__grid article:last-child { grid-column: 1 / -1; border-bottom: 1px solid rgb(192 147 68 / 35%); }
  .gallery-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-mosaic__item--exterior { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
  .hotel-video-tours__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hotel-video-card--featured { grid-column: 1 / -1; }
  .event-overview__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cuisine-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .breakfast-highlight__inner { grid-template-columns: auto 1fr; }
  .facility-mosaic,
  .guest-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .room-detail__actions { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .room-detail__actions .button { width: auto; }
  .every-stay__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facility-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact-preview__actions {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .booking-cta__actions {
    flex-direction: row;
    flex-wrap: wrap;
  }

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

  .site-footer__identity {
    grid-column: 1 / -1;
  }

  .site-footer__group:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 47.99rem) {
  .hero {
    background-position: center, 70% center;
  }
}

@media (min-width: 48rem) {
  .contact-options__inner,
  .contact-location__inner,
  .enquiry-section__inner,
  .contact-closing__inner { width: min(100% - 4rem, var(--content-width)); }
  .contact-options__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .contact-options__list li { padding: 1.75rem; border-right: 1px solid rgb(192 147 68 / 35%); }
  .contact-options__list li:first-child { padding-left: 0; }
  .contact-options__list li:last-child { padding-right: 0; border-right: 0; }
  .about-intro__inner,
  .about-approach__inner,
  .about-guests__inner,
  .about-location__inner,
  .about-details__inner { width: min(100% - 4rem, var(--content-width)); }
  .gallery-intro__inner,
  .gallery-collection__inner,
  .hotel-video-tours__inner,
  .room-video-highlight__inner { width: min(100% - 4rem, var(--content-width)); }
  .events-intro__inner,
  .event-overview__inner,
  .event-feature,
  .event-process__inner { width: min(100% - 4rem, var(--content-width)); }
  .event-process__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dining-page-intro__inner,
  .dining-page-features,
  .breakfast-highlight__inner { width: min(100% - 4rem, var(--content-width)); }
  .facilities-intro__inner,
  .facility-showcase__inner,
  .guest-services__inner { width: min(100% - 4rem, var(--content-width)); }
  .page-hero__inner,
  .rooms-intro__inner,
  .room-detail,
  .every-stay__inner { width: min(100% - 4rem, var(--content-width)); }

  .room-detail__amenities { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hero__content {
    width: min(100% - 4rem, var(--content-width));
  }

  .hero__actions {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .button {
    min-width: 11rem;
  }

  .introduction__inner {
    width: min(100% - 4rem, var(--content-width));
  }

  .introduction__visual {
    min-height: 30rem;
  }

  .introduction__highlights {
    grid-template-columns: repeat(3, 1fr);
  }

  .featured-rooms__inner {
    width: min(100% - 4rem, var(--content-width));
  }

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

  .room-card:last-child {
    grid-column: 1 / -1;
    width: min(100%, calc((100% - 1.5rem) / 2));
    justify-self: center;
  }

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

  .facilities__inner {
    width: min(100% - 4rem, var(--content-width));
  }

  .dining__inner {
    width: min(100% - 4rem, var(--content-width));
  }

  .events-preview__inner {
    width: min(100% - 4rem, var(--content-width));
  }

  .gallery-preview__inner {
    width: min(100% - 4rem, var(--content-width));
  }

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

  .gallery-item--exterior {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 9;
  }

  .contact-preview__inner {
    width: min(100% - 4rem, var(--content-width));
  }

  .contact-preview__actions .button {
    min-width: 11rem;
  }

  .site-footer__inner {
    width: min(100% - 4rem, var(--content-width));
  }
}

@media (min-width: 62rem) {
  .contact-location__inner { grid-template-columns: minmax(20rem, .8fr) minmax(0, 1.2fr); }
  .enquiry-section__inner { grid-template-columns: minmax(18rem, .7fr) minmax(0, 1.3fr); }
  .contact-closing__inner { grid-template-columns: minmax(0, 1fr) auto; }
  .about-intro__inner,
  .about-location__inner { grid-template-columns: minmax(20rem, .82fr) minmax(0, 1.18fr); }
  .about-location__content { grid-column: 1; }
  .about-location .about-photo { grid-row: 1; grid-column: 2; }
  .about-principles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .about-principles li { display: block; padding: 1.75rem; border-right: 1px solid rgb(3 13 29 / 14%); }
  .about-principles li:first-child { padding-left: 0; }
  .about-principles li:last-child { padding-right: 0; border-right: 0; }
  .about-principles li:nth-child(even) { border-left: 0; }
  .about-principles h3 { margin-top: 1rem; }
  .about-guests__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .about-guests__grid article { padding-right: 2rem; border-bottom: 1px solid rgb(192 147 68 / 35%); }
  .about-guests__grid article:last-child { grid-column: auto; }
  .gallery-mosaic {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: minmax(12rem, 16vw);
  }
  .gallery-mosaic__item { aspect-ratio: auto; }
  .gallery-mosaic__item--exterior { grid-column: 1 / span 2; grid-row: span 2; }
  .gallery-mosaic__item--guest-room { grid-row: span 2; }
  .gallery-mosaic__item--tall { grid-row: span 2; }
  .gallery-mosaic__item--dining,
  .gallery-mosaic__item--event { grid-column: span 2; }
  .gallery-mosaic__item--celebration { grid-column: span 2; }
  .hotel-video-tours__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hotel-video-card--featured { grid-row: span 2; }
  .room-video-highlight__inner { grid-template-columns: minmax(0, 1.12fr) minmax(20rem, .88fr); }
  .event-overview__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .event-feature { grid-template-columns: minmax(0, 1.1fr) minmax(22rem, .9fr); }
  .event-feature--reverse .event-feature__media { grid-column: 2; }
  .event-feature--reverse .event-feature__content { grid-row: 1; grid-column: 1; }
  .dining-feature--page { grid-template-columns: minmax(0, 1.12fr) minmax(22rem, .88fr); }
  .bar-feature--page { grid-template-columns: minmax(22rem, .88fr) minmax(0, 1.12fr); }
  .bar-feature--page .dining-media { grid-column: 2; }
  .bar-feature--page .bar-feature__content { grid-row: 1; grid-column: 1; }
  .facility-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facility-feature--wide { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); align-items: stretch; }
  .facility-feature--wide .facility-feature__media { aspect-ratio: 16 / 9; }
  .facility-feature--wide .facility-feature__content { display: flex; flex-direction: column; justify-content: center; }
  .guest-services__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .room-detail { grid-template-columns: minmax(0, 1.12fr) minmax(22rem, .88fr); }
  .room-detail--reverse .room-detail__media { grid-column: 2; }
  .room-detail--reverse .room-detail__content { grid-row: 1; grid-column: 1; }
  .room-detail__amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .every-stay__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .site-footer__group:last-child {
    grid-column: auto;
  }

  .site-header__inner {
    width: min(100% - 3rem, var(--content-width));
    min-height: 6rem;
  }

  .site-brand__logo {
    width: clamp(5rem, 6.2vw, 5.75rem);
  }

  .site-brand {
    width: clamp(5rem, 6.2vw, 5.75rem);
  }

  .site-brand__logo {
    width: clamp(11rem, 13.5vw, 12.5rem);
    transform: translateY(-35%);
  }

  .home-page .hero::before {
    opacity: 0.18;
  }

  .page-hero__accent {
    opacity: 0.18;
  }

  .home-page .hero {
    align-items: center;
  }

  .home-page .hero__content {
    padding-top: clamp(4rem, 12vh, 8rem);
  }

  .menu-toggle {
    display: none;
  }

  .primary-nav,
  .primary-nav.is-open {
    position: static;
    visibility: visible;
    overflow: visible;
    max-height: none;
    border-top: 0;
    opacity: 1;
    transition: none;
  }

  .primary-nav__list {
    flex-direction: row;
    align-items: center;
    gap: clamp(0.3rem, 0.8vw, 1rem);
    padding: 0;
  }

  .primary-nav__link,
  .primary-nav__book {
    min-height: 2.75rem;
    font-size: clamp(0.68rem, 0.8vw, 0.78rem);
  }

  .primary-nav__link {
    position: relative;
    padding-inline: 0.25rem;
  }

  .primary-nav__link::after {
    position: absolute;
    right: 0.25rem;
    bottom: 0.35rem;
    left: 0.25rem;
    height: 1px;
    background: var(--gold);
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 180ms ease;
  }

  .primary-nav__link:hover,
  .primary-nav__link[aria-current="page"] {
    background: transparent;
  }

  .primary-nav__link:hover::after,
  .primary-nav__link[aria-current="page"]::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  .primary-nav__book {
    margin-top: 0;
    margin-left: 0.35rem;
  }

  .primary-nav__book:hover {
    transform: translateY(-1px);
  }

  body.menu-open {
    overflow: auto;
  }

  .hero {
    min-height: clamp(38rem, calc(85svh - 6rem), 54rem);
  }

  .hero__content {
    width: min(100% - 6rem, var(--content-width));
  }

  .introduction__inner {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
    width: min(100% - 6rem, var(--content-width));
  }

  .introduction__visual {
    min-height: 36rem;
  }

  .featured-rooms__inner {
    width: min(100% - 6rem, var(--content-width));
  }

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

  .room-card:last-child {
    grid-column: auto;
    width: auto;
  }

  .facilities__inner {
    width: min(100% - 6rem, var(--content-width));
  }

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

  .dining__inner {
    width: min(100% - 6rem, var(--content-width));
  }

  .dining-feature {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  }

  .bar-feature {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr);
    width: min(82%, 56rem);
    margin-left: auto;
  }

  .events-preview__inner {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    width: min(100% - 6rem, var(--content-width));
  }

  .gallery-preview__inner {
    width: min(100% - 6rem, var(--content-width));
  }

  .gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(3, minmax(10rem, 14vw));
  }

  .gallery-item {
    aspect-ratio: auto;
  }

  .gallery-item--exterior {
    grid-column: 1 / span 2;
    grid-row: 1 / span 2;
  }

  .gallery-item--room {
    grid-column: 3;
    grid-row: 1;
  }

  .gallery-item--dining {
    grid-column: 3;
    grid-row: 2;
  }

  .gallery-item--events {
    grid-column: 2;
    grid-row: 3;
  }

  .gallery-item--bar {
    grid-column: 3;
    grid-row: 3;
  }

  .contact-preview__inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    width: min(100% - 6rem, var(--content-width));
  }

  .location-placeholder {
    min-height: 38rem;
  }

  .site-footer__inner {
    grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 0.8fr)) minmax(0, 1.2fr);
    width: min(100% - 6rem, var(--content-width));
  }

  .site-footer__identity {
    grid-column: auto;
  }
}
