.home-page {
  background: var(--color-coal-950);
}

.home-page a:focus-visible,
.home-page button:focus-visible {
  box-shadow: var(--focus-ring);
}

.home-hero {
  background: var(--color-coal-900);
  border-bottom: 2px solid var(--color-steel-400);
}

.home-hero__grid {
  display: grid;
  grid-template-columns: 13.125rem minmax(31.25rem, 1fr) 17.8125rem;
  gap: var(--space-5);
  align-items: end;
}

.home-hero__grid > * { min-width: 0; width: 100%; }
.home-hero__status { align-self: stretch; display: flex; flex-direction: column; gap: var(--space-4); }
.home-hero__status-list { display: flex; flex: 1; flex-direction: column; justify-content: center; gap: var(--space-3); }
.home-hero__status-list > * { width: 100%; min-width: 0; min-height: 3rem; }
.home-hero__rail-code, .home-experiences__closure > span, .home-restaurant__strip > span { color: var(--text-secondary); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: 600; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }
.home-hero__central { display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; }
.home-hero__intro { max-width: 43.75rem; }
.home-hero__intro > p { max-width: 38.75rem; font-size: var(--text-md); }
.home-hero__intro .status-marker { margin-bottom: var(--space-4); }
.home-hero__mobile-action { display: none; }
.home-hero__media { width: 100%; aspect-ratio: 16 / 9; margin: 0; }
.home-hero__media figcaption, .home-room__media figcaption, .home-restaurant__media figcaption, .home-gallery figure figcaption { display: flex; justify-content: space-between; gap: var(--space-3); margin: 0; border-top: 2px solid var(--color-coal-950); background: var(--color-coal-900); padding: var(--space-2) var(--space-3); }
.home-hero__booking { display: flex; flex-direction: column; gap: var(--space-4); align-self: center; border-top-color: var(--color-warning-yellow); }
.home-hero__booking > * { margin: 0; }
.home-hero__booking h2 { font-size: var(--text-xl); }
.home-hero__booking p { max-width: 18.125rem; }
.home-hero__booking .button { width: 100%; }
.home-hero__booking-seam { height: 2px; width: 100%; background: var(--color-steel-400); }

.home-principle { background: var(--color-coal-950); }
.home-principle__heading { max-width: 45rem; }
.home-principle__layout { display: grid; grid-template-columns: minmax(0, 58fr) minmax(0, 42fr); gap: var(--space-5); }
.home-principle__layout > * { min-width: 0; width: 100%; }
.home-principle__lead { grid-column: 1; max-width: 43.5rem; }
.home-principle__lead p { max-width: 40rem; }
.home-principle__void { grid-column: 2; display: flex; align-items: flex-end; min-height: 10rem; border-right: 2px solid var(--color-steel-400); border-bottom: 2px solid var(--color-steel-400); padding: var(--space-4); color: var(--color-steel-400); font-family: var(--font-heading); font-size: var(--text-lg); letter-spacing: .09em; text-transform: uppercase; }
.home-principle__lounge, .home-principle__tables { display: flex; flex-direction: column; gap: var(--space-3); }
.home-principle__lounge > *, .home-principle__tables > * { margin: 0; }
.home-principle__lounge p, .home-principle__tables p { max-width: 26.875rem; }
.home-principle__diagram { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); min-height: 2rem; margin-top: auto; }
.home-principle__diagram > span { min-width: 0; border: 1px solid var(--color-steel-400); background: var(--color-coal-900); }
.home-principle__access { grid-column: 1 / -1; display: flex; gap: var(--space-4); align-items: center; border-block: 2px solid var(--color-warning-yellow); background: var(--color-steel-800); padding: var(--space-3) var(--space-4); }
.home-principle__access > * { min-width: 0; margin: 0; }
.home-principle__access strong { flex: 0 1 13rem; font-family: var(--font-heading); letter-spacing: .07em; }
.home-principle__access p { max-width: 43.75rem; }

.home-room { background: var(--color-coal-900); border-block: 2px solid var(--color-steel-400); }
.home-room__heading { max-width: 38.75rem; }
.home-room__split { display: grid; grid-template-columns: minmax(22.5rem, 52fr) minmax(22.5rem, 48fr); gap: var(--space-6); align-items: stretch; }
.home-room__split > * { min-width: 0; width: 100%; }
.home-room__media { aspect-ratio: 4 / 3; margin: 0; }
.home-room__copy { display: flex; flex-direction: column; gap: var(--space-4); }
.home-room__copy > * { margin: 0; }
.home-room__copy p { max-width: 32.5rem; }
.home-room__copy .button { align-self: flex-start; }
.home-room__features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-5); }
.home-room__features > * { min-width: 0; width: 100%; }
.home-room__feature { display: flex; flex-direction: column; gap: var(--space-3); }
.home-room__feature > * { margin: 0; }
.home-room__feature p { max-width: 18.75rem; }
.home-room__feature a { margin-top: auto; }

.home-experiences { background: var(--color-coal-950); }
.home-experiences__heading { max-width: 37.5rem; }
.home-experiences__heading p { max-width: 37.5rem; }
.home-experiences__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.home-experiences__grid > * { min-width: 0; width: 100%; }
.home-experiences__card { display: flex; flex-direction: column; gap: var(--space-4); }
.home-experiences__card > * { margin: 0; }
.home-experiences__card--active { border-top: 3px solid var(--color-warning-yellow); }
.home-experiences__card p { max-width: 18.75rem; }
.home-experiences__card .button { width: 100%; margin-top: auto; }
.home-experiences__closure { grid-column: 1 / -1; display: flex; gap: var(--space-4); align-items: center; border: var(--border-default); border-left: 3px solid var(--color-warning-yellow); background: var(--color-steel-800); padding: var(--space-3) var(--space-4); }
.home-experiences__closure > * { min-width: 0; margin: 0; }
.home-experiences__closure p { max-width: 47.5rem; }
.home-experiences__closure > span { margin-left: auto; }

.home-restaurant { background: var(--color-coal-900); border-block: 2px solid var(--color-steel-400); }
.home-restaurant__heading { max-width: 43rem; }
.home-restaurant__split { display: grid; grid-template-columns: minmax(26.875rem, 60fr) minmax(20rem, 40fr); gap: var(--space-6); align-items: start; }
.home-restaurant__split > * { min-width: 0; width: 100%; }
.home-restaurant__content { display: flex; flex-direction: column; gap: var(--space-5); }
.home-restaurant__content > * { min-width: 0; width: 100%; }
.home-restaurant__copy, .home-restaurant__menu { display: flex; flex-direction: column; gap: var(--space-3); }
.home-restaurant__copy > *, .home-restaurant__menu > * { margin: 0; }
.home-restaurant__copy p { max-width: 30rem; }
.home-restaurant__menu { max-width: 20rem; }
.home-restaurant__menu p { max-width: 20rem; }
.home-restaurant__menu .button { align-self: flex-start; }
.home-restaurant__media { aspect-ratio: 3 / 2; margin: 0; }
.home-restaurant__strip { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-5); border-top: 2px solid var(--color-steel-400); padding-top: var(--space-3); }
.home-restaurant__strip > * { min-width: 0; margin: 0; }
.home-restaurant__strip p { max-width: 42.5rem; }

.home-private { background: var(--color-coal-950); }
.home-private__heading { max-width: 43rem; }
.home-private__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(18.125rem, 1fr); gap: var(--space-5); align-items: stretch; }
.home-private__grid > * { min-width: 0; width: 100%; }
.home-private__lead { grid-row: span 2; display: flex; flex-direction: column; gap: var(--space-3); }
.home-private__lead > * { margin: 0; }
.home-private__lead p { max-width: 35rem; }
.home-private__support, .home-private__action { display: flex; flex-direction: column; gap: var(--space-3); }
.home-private__support > *, .home-private__action > * { margin: 0; }
.home-private__support p, .home-private__action p { max-width: 20.625rem; }
.home-private__action .button { width: 100%; margin-top: auto; }

.home-gallery { background: var(--color-coal-900); border-top: 2px solid var(--color-steel-400); }
.home-gallery__heading { max-width: 38.75rem; }
.home-gallery__heading p { max-width: 38.75rem; }
.home-gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto auto; gap: var(--space-5); }
.home-gallery__grid > * { min-width: 0; width: 100%; }
.home-gallery figure { margin: 0; }
.home-gallery__table { grid-column: 1 / span 4; grid-row: 1 / span 2; aspect-ratio: 4 / 5; }
.home-gallery__room { grid-column: 5 / span 8; grid-row: 1; aspect-ratio: 3 / 2; }
.home-gallery__cards { grid-column: 5 / span 8; grid-row: 2; aspect-ratio: 4 / 3; border-color: var(--color-warning-yellow-deep); }
.home-gallery__reserve { grid-column: 1 / -1; grid-row: 3; display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); }
.home-gallery__reserve > * { min-width: 0; }
.home-gallery__reserve h3 { margin-bottom: var(--space-3); }
.home-gallery__reserve p { max-width: 30rem; margin-bottom: 0; }
.home-gallery__reserve .button { flex: 0 1 18rem; }

@media (max-width: 71rem) {
  .home-hero__grid { grid-template-columns: 11.25rem minmax(31.25rem, 1fr); }
  .home-hero__booking { grid-column: 2; max-width: 22rem; justify-self: end; }
  .home-principle__layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-room__features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-room__feature:last-child { grid-column: 1 / -1; }
  .home-experiences__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-experiences__card:last-of-type { grid-column: 1 / -1; max-width: calc(50% - var(--space-3)); }
  .home-restaurant__split { gap: var(--space-5); }
  .home-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
  .home-gallery__table { grid-column: 1; grid-row: 1 / span 2; align-self: stretch; }
  .home-gallery__room { grid-column: 2; grid-row: 1; }
  .home-gallery__cards { grid-column: 2; grid-row: 2; }
  .home-gallery__reserve { grid-column: 1 / -1; grid-row: 3; }
}

@media (max-width: 59rem) {
  .home-hero__grid { grid-template-columns: minmax(0, 1fr) 17.8125rem; }
  .home-hero__status { grid-column: 1 / -1; min-height: auto; }
  .home-hero__status-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .home-hero__booking { grid-column: 2; }
  .home-principle__lead { max-width: none; }
  .home-principle__void { display: none; }
  .home-principle__lead { grid-column: 1 / -1; }
  .home-restaurant__split { grid-template-columns: minmax(0, 1fr); }
  .home-restaurant__media { max-width: 40rem; }
  .home-private__grid { grid-template-columns: minmax(0, 1fr) minmax(18.125rem, 1fr); }
  .home-private__lead { grid-column: 1 / -1; grid-row: auto; }
}

@media (max-width: 47.9375rem) {
  .home-hero__grid, .home-principle__layout, .home-room__split, .home-room__features, .home-experiences__grid, .home-private__grid, .home-gallery__grid { grid-template-columns: minmax(0, 1fr); }
  .home-hero__grid { gap: var(--space-4); }
  .home-hero__central { display: contents; }
  .home-hero__intro { grid-row: 1; max-width: none; }
  .home-hero__intro h1 { font-size: clamp(2.5rem, 10vw, 3rem); }
  .home-hero__intro > p { max-width: 38.75rem; }
  .home-hero__mobile-action { display: inline-flex; width: 100%; }
  .home-hero__status { grid-column: 1; grid-row: 2; }
  .home-hero__status-list { display: flex; }
  .home-hero__media { grid-row: 3; }
  .home-hero__booking { grid-column: 1; grid-row: 4; max-width: none; justify-self: stretch; }
  .home-hero__booking .button { display: none; }
  .home-principle__lounge, .home-principle__tables, .home-principle__access { grid-column: 1; }
  .home-principle__access { align-items: flex-start; flex-direction: column; gap: var(--space-2); }
  .home-principle__access strong { flex-basis: auto; }
  .home-room__copy { grid-row: 1; }
  .home-room__media { grid-row: 2; }
  .home-room__feature:last-child { grid-column: 1; }
  .home-room__copy .button, .home-restaurant__menu .button { width: 100%; }
  .home-experiences__card:last-of-type { grid-column: 1; max-width: none; }
  .home-experiences__closure { grid-column: 1; align-items: flex-start; flex-direction: column; }
  .home-experiences__closure > span { margin-left: 0; }
  .home-restaurant__menu { max-width: none; }
  .home-restaurant__strip { align-items: flex-start; flex-direction: column; gap: var(--space-2); }
  .home-private__lead, .home-private__support, .home-private__action { grid-column: 1; grid-row: auto; }
  .home-gallery__table, .home-gallery__room, .home-gallery__cards, .home-gallery__reserve { grid-column: 1; grid-row: auto; }
  .home-gallery__reserve { align-items: stretch; flex-direction: column; }
  .home-gallery__reserve .button { width: 100%; flex-basis: auto; }
  .home-hero__media figcaption, .home-room__media figcaption, .home-restaurant__media figcaption, .home-gallery figure figcaption { align-items: flex-start; flex-direction: column; gap: var(--space-1); }
}

@media (max-width: 30rem) {
  .home-hero__status-list { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .home-experiences__card,
  .home-page .button { transition: none; }
}
