.home-page {
  overflow: clip;
}

.home-page::before {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--color-petrol-blue);
  content: "";
}

.home-page .home-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 480ms ease-out, transform 480ms ease-out;
}

.home-page .home-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.home-page .home-hero {
  padding-block: var(--space-8) var(--space-10);
  background: var(--color-pearl-white);
}

.home-page .home-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: var(--grid-gap);
}

.home-page .home-hero__copy,
.home-page .home-hero__media,
.home-page .home-rooms__intro,
.home-page .home-rooms__restaurant,
.home-page .home-rooms__lounge,
.home-page .home-rooms__bridge,
.home-page .home-dining__copy,
.home-page .home-dining__media,
.home-page .home-evening__details > article,
.home-page .home-pathways__intro,
.home-page .home-pathways__lead,
.home-page .home-pathways__item,
.home-page .home-occasion__statement,
.home-page .home-occasion__plan,
.home-page .home-visit__intro,
.home-page .home-visit__access,
.home-page .home-visit__facts,
.home-page .home-closing__copy,
.home-page .home-closing__actions,
.home-page .home-closing__routing {
  min-width: 0;
}

.home-page .home-hero__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding: 4.5rem;
  background: var(--color-petrol-blue);
  color: var(--color-pearl-white);
}

.home-page .home-hero__copy .eyebrow,
.home-page .home-hero__copy h1 {
  margin: 0;
  color: var(--color-pearl-white);
}

.home-page .home-hero__copy h1 {
  max-width: 520px;
  font-size: clamp(3.2rem, 3.3vw, 4.75rem);
}

.home-page .home-hero__lead {
  max-width: 500px;
}

.home-page .home-hero__lead p {
  margin: 0;
}

.home-page .home-hero__lead p + p {
  margin-top: var(--space-4);
}

.home-page .home-hero__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.home-page .home-hero__actions > * {
  min-width: 0;
}

.home-page .home-hero__outline {
  color: var(--color-pearl-white);
}

.home-page .home-hero__micro {
  max-width: 420px;
  margin: 0;
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.home-page .home-hero__media {
  position: relative;
  min-height: 43rem;
  margin: 0 0 -2rem;
  overflow: hidden;
  border-radius: var(--radius-panel);
}

.home-page .home-hero__media img,
.home-page .home-dining__media img,
.home-page .home-evening__band img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  transition: object-position var(--transition-fast);
}

.home-page .home-hero__media img {
  object-position: 62% 50%;
}

.home-page .home-hero__media:hover img {
  object-position: 64% 50%;
}

.home-page .home-hero__caption {
  position: absolute;
  bottom: var(--space-5);
  left: var(--space-5);
  display: flex;
  width: min(100% - 3rem, 18.125rem);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-4);
  background: rgb(18 63 74 / 88%);
  color: var(--color-pearl-white);
}

.home-page .home-hero__caption span {
  font-size: var(--font-size-micro);
  font-weight: 600;
  letter-spacing: var(--tracking-micro);
}

.home-page .home-hero__caption strong {
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.home-page .home-rooms__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--grid-gap);
}

.home-page .home-rooms__intro {
  grid-column: 1 / span 3;
}



.home-page .home-rooms h2,
.home-page .home-rooms h3,
.home-page .home-rooms p:last-child,
.home-page .home-rooms__intro .lead {
  margin-bottom: 0;
}

.home-page .home-rooms__restaurant h3,
.home-page .home-rooms__lounge h3,
.home-page .home-rooms__bridge h3 {
  font-size: var(--font-size-card-heading);
}

.home-page .home-text-link {
  color: var(--color-petrol-blue);
  font-weight: 600;
  text-decoration: none;
  background-image: linear-gradient(var(--color-terracotta), var(--color-terracotta));
  background-repeat: no-repeat;
  background-position: left 100%;
  background-size: 24px 1px;
  transition: background-size var(--transition-fast), color var(--transition-fast);
}

.home-page .home-text-link:hover,
.home-page .home-text-link:focus-visible {
  background-size: 100% 1px;
}

.home-page .home-dining {
  background: var(--color-travertine);
}

.home-page .home-dining__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: start;
  gap: var(--grid-gap);
}

.home-page .home-dining__copy {
  padding: 4rem;
  background: color-mix(in srgb, var(--color-pearl-white) 72%, var(--color-travertine));
}

.home-page .home-dining__copy h2 {
  max-width: 470px;
}

.home-page .home-dining__copy-flow {
  display: flex;
  max-width: 470px;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-page .home-dining__copy-flow > * {
  margin: 0;
}

.home-page .home-dining__copy-flow hr {
  margin: 0;
}

.home-page .home-dining__media {
  min-height: 34rem;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-panel);
}

.home-page .home-dining__media img {
  object-position: 38% 55%;
}

.home-page .home-dining__media:hover img {
  object-position: 41% 55%;
}

.home-page .home-evening__band {
  position: relative;
  min-height: clamp(31.25rem, 40vw, 38.75rem);
  margin: 0;
  overflow: hidden;
}

.home-page .home-evening__band::after {
  position: absolute;
  inset: 0 auto 0 0;
  width: 44%;
  background: rgb(18 63 74 / 78%);
  content: "";
}

.home-page .home-evening__band img {
  position: absolute;
  inset: 0;
  object-position: 50% 50%;
}

.home-page .home-evening__band:hover img {
  object-position: 53% 50%;
}

.home-page .home-evening__overlay {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: max(var(--gutter), calc((100vw - var(--container-max)) / 2));
  display: flex;
  width: min(42%, 620px);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  transform: translateY(-50%);
  color: var(--color-pearl-white);
}

.home-page .home-evening__overlay h2,
.home-page .home-evening__overlay p {
  margin: 0;
  color: var(--color-pearl-white);
}

.home-page .home-evening__overlay h2 {
  max-width: 620px;
}

.home-page .home-evening__overlay p {
  max-width: 500px;
  font-size: var(--font-size-lead);
  line-height: var(--line-height-lead);
}

.home-page .home-evening__details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--grid-gap);
  padding-top: var(--space-8);
  padding-bottom: var(--space-10);
}

.home-page .home-evening__details > article {
  max-width: 340px;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-brushed-aluminium);
}

.home-page .home-evening__details h3 {
  font-size: var(--font-size-card-heading);
}

.home-page .home-evening__details p:last-child,
.home-page .home-evening__details h3 {
  margin-bottom: 0;
}

.home-page .home-pathways__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--grid-gap);
}

.home-page .home-pathways__intro {
  grid-column: 1 / span 6;
}

.home-page .home-pathways__intro h2 {
  max-width: 590px;
  margin-bottom: 0;
}

.home-page .home-pathways__lead {
  grid-column: 8 / span 4;
  align-self: end;
  max-width: 520px;
  margin: 0;
}

.home-page .home-pathways__list {
  display: grid;
  grid-column: 1 / span 11;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--grid-gap);
  margin-top: var(--space-5);
}

.home-page .home-pathways__item {
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-brushed-aluminium);
}

.home-page .home-pathways__item--accent {
  border-top-color: var(--color-terracotta);
}

.home-page .home-pathways__item h3 {
  font-size: var(--font-size-card-heading);
}

.home-page .home-pathways__item p:last-child,
.home-page .home-pathways__item h3 {
  margin-bottom: 0;
}

.home-page .home-occasion {
  background: var(--color-oak-wash);
}

.home-page .home-occasion__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 0;
}

.home-page .home-occasion__statement,
.home-page .home-occasion__plan {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding: 4.5rem;
}

.home-page .home-occasion__statement {
  background: var(--color-petrol-blue);
  color: var(--color-pearl-white);
  border-radius: var(--radius-panel) 0 0 var(--radius-panel);
}

.home-page .home-occasion__statement .eyebrow {
  margin: 0;
  color: var(--color-pearl-white);
}

.home-page .home-occasion__statement > p:last-child {
  max-width: 470px;
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 1.55rem + 1.7vw, 3rem);
  line-height: 1.05;
  letter-spacing: var(--tracking-heading);
}

.home-page .home-occasion__plan {
  background: var(--color-pearl-white);
  border-radius: 0 var(--radius-panel) var(--radius-panel) 0;
}

.home-page .home-occasion__plan .eyebrow,
.home-page .home-occasion__plan h2,
.home-page .home-occasion__plan p {
  margin: 0;
}

.home-page .home-occasion__plan > p:not(.home-occasion__note) {
  max-width: 540px;
}

.home-page .home-occasion__note {
  max-width: 440px;
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.home-page .home-visit__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--grid-gap);
  padding-top: var(--space-7);
  border-top: 1px solid var(--color-petrol-blue);
}

.home-page .home-visit__intro {
  grid-column: 1 / span 6;
  max-width: 600px;
}

.home-page .home-visit__intro h2 {
  margin-bottom: var(--space-5);
}

.home-page .home-visit__intro .lead {
  margin-bottom: 0;
}

.home-page .home-visit__access {
  display: flex;
  grid-column: 8 / span 4;
  flex-direction: column;
  gap: var(--space-4);
}

.home-page .home-visit__access > div {
  min-width: 0;
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-brushed-aluminium);
}

.home-page .home-visit__access h3 {
  margin-bottom: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--font-size-nav);
  font-weight: 600;
  letter-spacing: var(--tracking-nav);
  line-height: 1.2;
  text-transform: uppercase;
}

.home-page .home-visit__access p {
  max-width: 400px;
  margin: 0;
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.home-page .home-visit__facts {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: var(--grid-gap);
  margin-top: var(--space-5);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-brushed-aluminium);
}

.home-page .home-visit__contact address,
.home-page .home-visit__contact p {
  margin-bottom: var(--space-3);
}

.home-page .home-visit__hours dl {
  margin: 0;
}

.home-page .home-visit__hours dl > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  gap: var(--space-4);
  padding-block: var(--space-2);
  border-bottom: 1px solid var(--color-brushed-aluminium);
}

.home-page .home-visit__hours dt,
.home-page .home-visit__hours dd {
  margin: 0;
  font-size: var(--font-size-small);
}

.home-page .home-visit__placeholder {
  grid-column: 1 / -1;
  margin: 0;
  color: color-mix(in srgb, var(--color-ink) 70%, transparent);
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.home-page .home-assurance__panel {
  width: min(100% - (var(--gutter) * 2), 1120px);
  margin-inline: auto;
  padding: 4.5rem;
  border-radius: var(--radius-panel);
  background: var(--color-petrol-blue);
  color: var(--color-pearl-white);
}

.home-page .home-assurance__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-page .home-assurance__copy h2,
.home-page .home-assurance__copy p {
  margin: 0;
  color: var(--color-pearl-white);
}

.home-page .home-assurance__copy h2 {
  font-size: var(--font-size-section-heading);
}

.home-page .home-assurance__button {
  color: var(--color-pearl-white);
}

.home-page .home-assurance__detail {
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.home-page .home-closing__grid {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
}

.home-page .home-closing__copy {
  width: min(100%, 680px);
  margin-inline: auto;
  text-align: center;
}

.home-page .home-closing__copy hr {
  width: 100%;
  margin: 0 0 var(--space-6);
}

.home-page .home-closing__copy h2 {
  margin-bottom: var(--space-5);
}

.home-page .home-closing__copy .lead {
  margin-bottom: 0;
}

.home-page .home-closing__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
}

.home-page .home-closing__actions > * {
  min-width: 0;
}

.home-page .home-closing__routing {
  width: min(100%, 680px);
  margin: 0;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-brushed-aluminium);
  text-align: center;
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

@media (max-width: 65rem) {
  .home-page .home-hero__copy {
    padding: var(--space-7);
  }

  .home-page .home-hero__copy h1 {
    font-size: clamp(3rem, 5vw, 3.5rem);
  }

  .home-page .home-hero__media {
    min-height: 36rem;
    margin-bottom: 0;
  }

  .home-page .home-evening__overlay {
    width: min(48%, 560px);
  }
}

@media (max-width: 63.9375rem) {
  .home-page .home-rooms__grid,
  .home-page .home-pathways__grid,
  .home-page .home-visit__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: var(--grid-gap-tablet);
  }

  .home-page .home-rooms__intro { grid-column: 1 / span 5; }
  .home-page .home-rooms__restaurant { grid-column: 1 / span 4; }
  .home-page .home-rooms__lounge { grid-column: 5 / span 4; margin-top: var(--space-6); }
  .home-page .home-rooms__bridge { grid-column: 1 / span 7; }

  .home-page .home-evening__details {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: var(--grid-gap-tablet);
  }

  .home-page .home-evening__details > article:nth-child(1) { grid-column: 1 / span 4; }
  .home-page .home-evening__details > article:nth-child(2) { grid-column: 5 / span 4; }
  .home-page .home-evening__details > article:nth-child(3) { grid-column: 1 / span 6; }

  .home-page .home-pathways__intro { grid-column: 1 / span 8; }
  .home-page .home-pathways__lead { grid-column: 1 / span 6; margin-top: var(--space-3); }
  .home-page .home-pathways__list { grid-column: 1 / span 8; }

  .home-page .home-visit__intro { grid-column: 1 / span 8; }
  .home-page .home-visit__access { grid-column: 1 / span 8; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-page .home-visit__facts { grid-column: 1 / span 8; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 61.25rem) {
  .home-page .home-pathways__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-page .home-pathways__item:nth-child(3) {
    grid-column: 1 / span 1;
  }
}

@media (max-width: 60rem) {
  .home-page .home-occasion__grid {
    grid-template-columns: 1fr;
  }

  .home-page .home-occasion__statement {
    border-radius: var(--radius-panel) var(--radius-panel) 0 0;
  }

  .home-page .home-occasion__plan {
    border-radius: 0 0 var(--radius-panel) var(--radius-panel);
  }
}

@media (max-width: 56.25rem) {
  .home-page .home-dining__grid {
    grid-template-columns: 1fr;
  }

  .home-page .home-dining__media { order: 1; }
  .home-page .home-dining__copy { order: 2; }
}

@media (max-width: 47.9375rem) {
  .home-page .home-reveal {
    opacity: 1;
    transform: none;
  }

  .home-page .home-hero {
    padding-block: var(--space-7);
  }

  .home-page .home-hero__grid,
  .home-page .home-rooms__grid,
  .home-page .home-dining__grid,
  .home-page .home-pathways__grid,
  .home-page .home-visit__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--grid-gap-mobile);
  }

  .home-page .home-hero__copy,
  .home-page .home-hero__media,
  .home-page .home-rooms__intro,
  .home-page .home-rooms__restaurant,
  .home-page .home-rooms__lounge,
  .home-page .home-rooms__bridge,
  .home-page .home-dining__copy,
  .home-page .home-dining__media,
  .home-page .home-pathways__intro,
  .home-page .home-pathways__lead,
  .home-page .home-pathways__list,
  .home-page .home-visit__intro,
  .home-page .home-visit__access,
  .home-page .home-visit__facts {
    grid-column: 1 / -1;
  }

  .home-page .home-hero__copy {
    padding: var(--space-6);
  }

  .home-page .home-hero__copy h1 {
    font-size: 2.75rem;
  }

  .home-page .home-hero__actions {
    width: 100%;
    flex-direction: column;
  }

  .home-page .home-hero__actions .button {
    width: 100%;
  }

  .home-page .home-hero__media {
    min-height: 28.75rem;
    margin-top: var(--space-4);
  }

  .home-page .home-hero__media img { object-position: 60% 50%; }
  .home-page .home-hero__caption { bottom: var(--space-4); left: var(--space-4); width: min(75%, 18.125rem); }

  .home-page .home-rooms__restaurant,
  .home-page .home-rooms__lounge,
  .home-page .home-rooms__bridge {
    max-width: none;
    margin-top: var(--space-6);
  }

  .home-page .home-rooms__bridge {
    padding-top: var(--space-5);
  }

  .home-page .home-dining__media {
    min-height: 31.25rem;
  }

  .home-page .home-dining__copy {
    padding: var(--space-6);
  }

  .home-page .home-dining__copy-flow {
    max-width: none;
  }

  .home-page .home-dining__copy-flow .button {
    width: 100%;
  }

  .home-page .home-evening__band {
    min-height: 32.5rem;
  }

  .home-page .home-evening__band::after {
    inset: auto 0 0 0;
    width: 100%;
    height: 72%;
    background: rgb(18 63 74 / 80%);
  }

  .home-page .home-evening__band img { object-position: 56% 50%; }

  .home-page .home-evening__overlay {
    top: auto;
    bottom: var(--space-5);
    left: var(--gutter);
    width: calc(100% - (var(--gutter) * 2));
    transform: none;
  }

  .home-page .home-evening__overlay h2 { font-size: 2.75rem; }

  .home-page .home-evening__details {
    grid-template-columns: 1fr;
    gap: var(--space-6);
    padding-top: var(--space-7);
    padding-bottom: var(--space-8);
  }

  .home-page .home-evening__details > article,
  .home-page .home-evening__details > article:nth-child(1),
  .home-page .home-evening__details > article:nth-child(2),
  .home-page .home-evening__details > article:nth-child(3) {
    grid-column: 1;
    max-width: none;
  }

  .home-page .home-pathways__lead {
    margin-top: var(--space-3);
  }

  .home-page .home-pathways__list {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .home-page .home-pathways__item:nth-child(3) {
    grid-column: 1;
  }

  .home-page .home-occasion__statement,
  .home-page .home-occasion__plan {
    padding: var(--space-6);
  }

  .home-page .home-occasion__statement > p:last-child {
    font-size: 2.25rem;
  }

  .home-page .home-occasion__plan .button {
    width: 100%;
  }

  .home-page .home-visit__access,
  .home-page .home-visit__facts {
    grid-template-columns: 1fr;
  }

  .home-page .home-visit__hours dl > div {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .home-page .home-visit__hours dd {
    margin-top: var(--space-1);
  }

  .home-page .home-assurance__panel {
    width: min(100% - (var(--gutter) * 2), var(--container-max));
    padding: var(--space-6);
  }

  .home-page .home-assurance__button {
    width: 100%;
  }

  .home-page .home-closing__grid {
    align-items: stretch;
  }

  .home-page .home-closing__copy {
    text-align: center;
  }

  .home-page .home-closing__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .home-page .home-closing__actions .button {
    width: 100%;
  }

  .home-page .home-closing__routing {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .home-reveal {
    opacity: 1;
    transform: none;
  }
}
