:root {
  color-scheme: dark;
  --hotel-canvas: var(--alpy-ui-color-surface-canvas);
  --hotel-panel: var(--hotel-canvas);
  --hotel-panel-soft: var(--alpy-ui-color-border-neutral-subtle-three);
  --hotel-cream: var(--hotel-canvas);
  --hotel-cream-deep: var(--hotel-canvas);
  --hotel-ink: var(--hotel-canvas);
  --hotel-ink-soft: var(--hotel-panel-soft);
  --hotel-text: var(--alpy-ui-color-text-body);
  --hotel-text-strong: var(--alpy-ui-color-text-heading);
  --hotel-text-muted: var(--alpy-ui-color-text-body);
  --hotel-green: var(--alpy-ui-color-shades-brand-color-two-subtle-two);
  --hotel-green-hover: var(--alpy-ui-color-shades-brand-color-two-subtle-three);
  --hotel-green-deep: var(--alpy-ui-color-shades-brand-color-two-subtle-one);
  --hotel-green-accent: var(--alpy-ui-color-text-brand-color-two-accent);
  --hotel-green-accent-strong: var(--alpy-ui-color-text-brand-color-two-accent-strong);
  --hotel-teal: var(--hotel-green-accent);
  --hotel-gold: var(--alpy-ui-color-text-brand-color-three-accent);
  --hotel-gold-hover: var(--alpy-ui-color-text-brand-color-three-accent-strong);
  --hotel-gold-soft: var(--alpy-ui-color-border-brand-color-three-subtle-three);
  --hotel-yellow: var(--alpy-ui-color-shades-brand-color-three-strong-one);
  --hotel-yellow-hover: var(--alpy-ui-color-shades-brand-color-three-strong-two);
  --hotel-yellow-pressed: var(--alpy-ui-color-text-brand-color-three-accent-subtle);
  --hotel-border: var(--alpy-ui-color-border-neutral-subtle-three);
  --hotel-container: calc(var(--alpy-ui-size-1020) + var(--alpy-ui-size-200));
  --hotel-reading: calc(3 * var(--alpy-ui-size-200));
  --hotel-section-space: calc(var(--alpy-ui-size-128) + var(--alpy-ui-size-32));
  --hotel-gutter: var(--alpy-ui-space-24);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: var(--hotel-canvas);
  scroll-padding-top: var(--alpy-ui-size-96);
}

html[data-menu-open="true"],
html[data-menu-open="true"] body {
  overflow: hidden;
}

body {
  background: var(--hotel-canvas);
  color: var(--hotel-text);
  font-family: var(--alpy-ui-font-body-fontFamily);
  font-size: var(--alpy-ui-font-body-fontSize);
  font-weight: var(--alpy-ui-font-body-fontWeight);
  letter-spacing: var(--alpy-ui-font-body-letterSpacing);
  line-height: var(--alpy-ui-font-body-lineHeight);
  margin: var(--alpy-ui-size-0);
  overflow-x: clip;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
}

button,
input,
select {
  font: inherit;
}

a {
  color: inherit;
}

:focus-visible {
  outline: var(--alpy-ui-border-width-2) solid
    var(--alpy-ui-color-border-interaction-focused);
  outline-offset: var(--alpy-ui-size-4);
}

::selection {
  background: var(--hotel-yellow);
  color: var(--hotel-ink);
}

.skip-link {
  background: var(--hotel-yellow);
  color: var(--hotel-ink);
  left: var(--alpy-ui-space-16);
  padding: var(--alpy-ui-space-12) var(--alpy-ui-space-16);
  position: fixed;
  text-decoration: none;
  top: var(--alpy-ui-space-16);
  transform: translateY(calc(-1 * (var(--alpy-ui-size-100) + var(--alpy-ui-size-24))));
  z-index: 100;
}

.skip-link:focus {
  transform: translateY(var(--alpy-ui-size-0));
}

.content-shell {
  margin-inline: auto;
  max-width: var(--hotel-container);
  padding-inline: var(--hotel-gutter);
  width: 100%;
}

.site-header {
  background: var(--hotel-ink);
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  position: sticky;
  top: var(--alpy-ui-size-0);
  z-index: 40;
}

.site-header::after {
  background: var(--hotel-gold);
  bottom: calc(-1 * var(--alpy-ui-border-width-2));
  content: "";
  height: var(--alpy-ui-border-width-2);
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: var(--alpy-ui-size-80);
}

.site-header__inner {
  align-items: center;
  display: grid;
  gap: var(--alpy-ui-space-24);
  grid-template-columns: auto minmax(var(--alpy-ui-size-0), 1fr) auto;
  margin-inline: auto;
  max-width: var(--hotel-container);
  min-height: var(--alpy-ui-size-88);
  padding: var(--alpy-ui-space-16) var(--hotel-gutter);
  position: relative;
}

.wordmark {
  color: var(--hotel-text-strong);
  display: grid;
  gap: var(--alpy-ui-space-4);
  justify-items: center;
  line-height: var(--alpy-ui-font-body-small-lineHeight);
  min-width: var(--alpy-ui-size-192);
  text-decoration: none;
  text-transform: uppercase;
}

.site-header .wordmark {
  color: var(--alpy-ui-color-text-inverse);
}

.site-header .wordmark__place {
  color: var(--hotel-text-muted);
}

.wordmark__rule {
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-gold);
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-gold);
  display: block;
  height: var(--alpy-ui-size-8);
  position: relative;
  width: var(--alpy-ui-size-48);
}

.wordmark__rule::after {
  background: var(--hotel-ink);
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold);
  content: "";
  height: var(--alpy-ui-size-8);
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: var(--alpy-ui-size-8);
}

.wordmark__name {
  font-family: var(--alpy-ui-font-heading-small-fontFamily);
  font-size: var(--alpy-ui-font-heading-small-fontSize);
  font-weight: var(--alpy-ui-font-weight-bold);
  letter-spacing: var(--alpy-ui-font-heading-small-letterSpacing);
  line-height: var(--alpy-ui-font-heading-small-lineHeight);
  white-space: nowrap;
}

.wordmark__place {
  color: var(--hotel-text-muted);
  font-size: var(--alpy-ui-font-body-xsmall-fontSize);
  font-weight: var(--alpy-ui-font-weight-semiBold);
  letter-spacing: var(--alpy-ui-font-body-xsmall-letterSpacing);
  line-height: var(--alpy-ui-font-body-xsmall-lineHeight);
}

.primary-nav {
  align-items: center;
  display: flex;
  gap: var(--alpy-ui-space-24);
  justify-content: center;
}

.primary-nav a,
.site-footer a {
  text-decoration: none;
}

.primary-nav a {
  color: var(--hotel-text);
  font-size: var(--alpy-ui-font-body-small-fontSize);
  font-weight: var(--alpy-ui-font-weight-medium);
  line-height: var(--alpy-ui-font-body-small-lineHeight);
  padding-block: var(--alpy-ui-space-8);
  white-space: nowrap;
}

.primary-nav a:hover,
.primary-nav a:focus-visible {
  color: var(--alpy-ui-color-shades-brand-color-three-subtle-three);
}

.menu-toggle {
  align-items: center;
  background: var(--hotel-ink);
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-radius: var(--alpy-ui-component-button-size-md-radius);
  color: var(--hotel-gold);
  cursor: pointer;
  display: none;
  gap: var(--alpy-ui-space-8);
  min-height: var(--alpy-ui-component-button-size-md-minHeight);
  padding-inline: var(--alpy-ui-component-button-size-md-paddingX);
}

.menu-toggle__lines {
  display: grid;
  gap: var(--alpy-ui-space-4);
}

.menu-toggle__lines i {
  background: currentColor;
  display: block;
  height: var(--alpy-ui-border-width-1);
  width: var(--alpy-ui-size-20);
}

.hotel-button {
  align-items: center;
  border-style: solid;
  border-width: var(--alpy-ui-component-button-size-md-borderWidth);
  border-radius: var(--alpy-ui-component-button-size-md-radius);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--alpy-ui-component-button-size-md-text-fontFamily);
  font-size: var(--alpy-ui-component-button-size-md-text-fontSize);
  font-weight: var(--alpy-ui-component-button-size-md-text-fontWeight);
  justify-content: center;
  letter-spacing: var(--alpy-ui-component-button-size-md-text-letterSpacing);
  line-height: var(--alpy-ui-component-button-size-md-text-lineHeight);
  min-height: var(--alpy-ui-component-button-size-md-minHeight);
  padding-inline: var(--alpy-ui-component-button-size-md-paddingX);
  text-decoration: none;
}

.hotel-button--primary {
  background: var(--hotel-yellow);
  border-color: var(--hotel-yellow);
  color: var(--hotel-ink);
}

.hotel-button--primary:hover {
  background: var(--hotel-yellow-hover);
  border-color: var(--hotel-yellow-hover);
  color: var(--hotel-ink);
}

.hotel-button--primary:active {
  background: var(--hotel-yellow-pressed);
  border-color: var(--hotel-yellow-pressed);
  color: var(--hotel-ink);
}

.hotel-button--outline {
  background: transparent;
  border-color: var(--hotel-gold);
  color: var(--hotel-gold);
}

.hotel-button--outline:hover {
  background: var(--hotel-yellow);
  border-color: var(--hotel-yellow);
  color: var(--hotel-ink);
}

.hotel-button--inverse {
  background: transparent;
  border-color: var(--hotel-gold);
  color: var(--hotel-gold);
}

.hotel-button--inverse:hover {
  background: var(--hotel-yellow);
  border-color: var(--hotel-yellow);
  color: var(--hotel-ink);
}

.eyebrow,
.footer-label,
.room-card__index {
  color: var(--hotel-gold);
  font-family: var(--alpy-ui-font-body-small-fontFamily);
  font-size: var(--alpy-ui-font-body-small-fontSize);
  font-weight: var(--alpy-ui-font-weight-bold);
  letter-spacing: var(--alpy-ui-font-body-small-letterSpacing);
  line-height: var(--alpy-ui-font-body-small-lineHeight);
  margin: var(--alpy-ui-size-0);
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: var(--alpy-ui-size-0);
}

h1,
h2,
h3 {
  color: var(--hotel-text-strong);
}

h1 {
  font-family: var(--alpy-ui-font-heading-xxlarge-fontFamily);
  font-size: var(--alpy-ui-font-heading-xxlarge-fontSize);
  font-weight: var(--alpy-ui-font-weight-extraBold);
  letter-spacing: var(--alpy-ui-font-heading-xxlarge-letterSpacing);
  line-height: var(--alpy-ui-font-heading-xxlarge-lineHeight);
  margin-bottom: var(--alpy-ui-space-24);
  text-transform: uppercase;
}

h2 {
  font-family: var(--alpy-ui-font-heading-xlarge-fontFamily);
  font-size: var(--alpy-ui-font-heading-xlarge-fontSize);
  font-weight: var(--alpy-ui-font-weight-bold);
  letter-spacing: var(--alpy-ui-font-heading-xlarge-letterSpacing);
  line-height: var(--alpy-ui-font-heading-xlarge-lineHeight);
  margin-bottom: var(--alpy-ui-space-24);
}

h3 {
  font-family: var(--alpy-ui-font-heading-small-fontFamily);
  font-size: var(--alpy-ui-font-heading-small-fontSize);
  font-weight: var(--alpy-ui-font-weight-semiBold);
  letter-spacing: var(--alpy-ui-font-heading-small-letterSpacing);
  line-height: var(--alpy-ui-font-heading-small-lineHeight);
  margin-bottom: var(--alpy-ui-space-8);
}

p {
  margin-bottom: var(--alpy-ui-space-16);
}

.lede {
  color: var(--alpy-ui-color-text-subheading);
  font-family: var(--alpy-ui-font-body-large-fontFamily);
  font-size: var(--alpy-ui-font-body-large-fontSize);
  font-weight: var(--alpy-ui-font-body-large-fontWeight);
  letter-spacing: var(--alpy-ui-font-body-large-letterSpacing);
  line-height: var(--alpy-ui-font-body-large-lineHeight);
}

.section-frame {
  padding-block: var(--hotel-section-space);
  position: relative;
}

.section-frame--cream {
  background: var(--hotel-cream);
}

.section-frame::before {
  background: var(--hotel-canvas);
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  content: "";
  height: var(--alpy-ui-size-12);
  left: 50%;
  position: absolute;
  top: calc(-1 * var(--alpy-ui-size-4));
  transform: translateX(-50%) rotate(45deg);
  width: var(--alpy-ui-size-12);
  z-index: 2;
}

.section-frame::after {
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  content: "";
  height: var(--alpy-ui-size-8);
  left: 50%;
  pointer-events: none;
  position: absolute;
  top: var(--alpy-ui-size-0);
  transform: translateX(-50%);
  width: calc(var(--alpy-ui-size-192) + var(--alpy-ui-size-48));
  z-index: 1;
}

.section-frame--cream::before {
  background: var(--hotel-cream);
}

.hero {
  background-color: var(--hotel-ink);
  background-image: url("./assets/deco-pattern-dark.jpg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  overflow-x: clip;
  padding-top: calc(var(--hotel-section-space) - var(--alpy-ui-size-32));
}

.hero.section-frame::before {
  background: var(--hotel-ink);
}

.hero__copy {
  display: grid;
  isolation: isolate;
  justify-items: center;
  margin-bottom: var(--alpy-ui-size-64);
  position: relative;
  text-align: center;
}

.hero__portal {
  display: grid;
  isolation: isolate;
  justify-items: center;
  margin-top: var(--alpy-ui-size-64);
  padding: var(--alpy-ui-space-16) var(--alpy-ui-space-24)
    var(--alpy-ui-space-12);
  position: relative;
  width: 100%;
}

.hero__portal::before {
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-bottom: var(--alpy-ui-size-0);
  border-radius: 50% 50% var(--alpy-ui-size-0) var(--alpy-ui-size-0);
  content: "";
  height: calc(var(--alpy-ui-size-200) + var(--alpy-ui-size-128));
  left: 50%;
  max-width: calc(5 * var(--alpy-ui-size-200));
  pointer-events: none;
  position: absolute;
  top: calc(-1 * var(--alpy-ui-size-48));
  transform: translateX(-50%);
  width: calc(100% - (2 * var(--hotel-gutter)));
  z-index: -1;
}

.hero__portal::after {
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-bottom: var(--alpy-ui-size-0);
  border-radius: 50% 50% var(--alpy-ui-size-0) var(--alpy-ui-size-0);
  content: "";
  height: calc(var(--alpy-ui-size-200) + var(--alpy-ui-size-100));
  left: 50%;
  max-width: calc(5 * var(--alpy-ui-size-192));
  pointer-events: none;
  position: absolute;
  top: calc(-1 * var(--alpy-ui-size-32));
  transform: translateX(-50%);
  width: calc(100% - (2 * var(--alpy-ui-size-32)));
  z-index: -1;
}

.hero__copy .eyebrow {
  margin-bottom: var(--alpy-ui-space-24);
}

.hero h1 {
  color: var(--alpy-ui-color-text-inverse);
  max-width: calc(5 * var(--alpy-ui-size-200) + var(--alpy-ui-size-80));
}

html[data-mid-width="true"] .hero h1 {
  font-size: var(--alpy-ui-font-heading-xlarge-fontSize);
  line-height: var(--alpy-ui-font-heading-xlarge-lineHeight);
}

.hero__helper {
  color: var(--hotel-text);
  font-family: var(--alpy-ui-font-body-large-fontFamily);
  font-size: var(--alpy-ui-font-body-large-fontSize);
  letter-spacing: var(--alpy-ui-font-body-large-letterSpacing);
  line-height: var(--alpy-ui-font-body-large-lineHeight);
  margin-bottom: var(--alpy-ui-space-32);
  max-width: var(--hotel-reading);
}

.action-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--alpy-ui-space-12);
  justify-content: center;
}

.hero__media {
  margin-bottom: var(--alpy-ui-size-0);
  position: relative;
}

.hero__media::before,
.hero__media::after {
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  content: "";
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

.hero__media::before {
  inset: calc(-1 * var(--alpy-ui-space-12)) var(--alpy-ui-space-12)
    var(--alpy-ui-space-12) calc(-1 * var(--alpy-ui-space-12));
}

.hero__media::after {
  inset: var(--alpy-ui-space-12) calc(-1 * var(--alpy-ui-space-12))
    calc(-1 * var(--alpy-ui-space-12)) var(--alpy-ui-space-12);
}

.hero__media img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  position: relative;
  width: 100%;
  z-index: 2;
}

.hero__media figcaption {
  color: var(--hotel-text-muted);
}

.hero__media figcaption,
.framed-image figcaption,
.gallery-item figcaption,
.neighborhood-map figcaption {
  color: var(--hotel-text-muted);
  font-size: var(--alpy-ui-font-body-small-fontSize);
  line-height: var(--alpy-ui-font-body-small-lineHeight);
  margin-top: var(--alpy-ui-space-12);
}

.booking-panel {
  background: var(--hotel-panel);
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-border);
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-border);
  padding-block: var(--alpy-ui-size-48);
}

.booking-panel__inner {
  display: grid;
  gap: var(--alpy-ui-space-24);
}

.booking-panel__heading {
  align-items: end;
  display: flex;
  gap: var(--alpy-ui-space-24);
  justify-content: space-between;
}

.booking-panel__heading h2 {
  font-size: var(--alpy-ui-font-heading-medium-fontSize);
  line-height: var(--alpy-ui-font-heading-medium-lineHeight);
  margin: var(--alpy-ui-size-0);
}

.booking-form {
  align-items: end;
  display: grid;
  gap: var(--alpy-ui-space-16);
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(100%, calc(var(--alpy-ui-size-200) + var(--alpy-ui-size-24))), 1fr)
  );
}

.hotel-field {
  display: grid;
  gap: var(--alpy-ui-component-text-input-stack-gap-label-to-field);
}

.hotel-field > span {
  color: var(--alpy-ui-component-text-input-styles-label-default);
  font-family: var(--alpy-ui-component-text-input-text-label-fontFamily);
  font-size: var(--alpy-ui-component-text-input-text-label-fontSize);
  font-weight: var(--alpy-ui-component-text-input-text-label-fontWeight);
  letter-spacing: var(--alpy-ui-component-text-input-text-label-letterSpacing);
  line-height: var(--alpy-ui-component-text-input-text-label-lineHeight);
}

.hotel-field small {
  color: var(--hotel-text);
}

.hotel-field input,
.hotel-field select {
  background: var(--alpy-ui-component-text-input-styles-background-default);
  border: var(--alpy-ui-component-text-input-field-border-width) solid
    var(--alpy-ui-component-text-input-styles-border-default);
  border-radius: var(--alpy-ui-component-text-input-field-shape-radius);
  color: var(--alpy-ui-component-text-input-styles-text-default);
  height: var(--alpy-ui-component-text-input-field-size-height);
  min-width: var(--alpy-ui-size-0);
  padding-inline: var(--alpy-ui-component-text-input-field-space-padding-x);
  width: 100%;
}

.hotel-field select {
  font-family: var(--alpy-ui-component-dropdown-text-trigger-fontFamily);
  font-size: var(--alpy-ui-component-dropdown-text-trigger-fontSize);
  font-weight: var(--alpy-ui-component-dropdown-text-trigger-fontWeight);
  letter-spacing: var(--alpy-ui-component-dropdown-text-trigger-letterSpacing);
  line-height: var(--alpy-ui-component-dropdown-text-trigger-lineHeight);
}

.hotel-field input:focus,
.hotel-field select:focus {
  border-color: var(--alpy-ui-component-text-input-styles-border-focused);
  outline: none;
}

.booking-status {
  color: var(--hotel-text-muted);
  font-size: var(--alpy-ui-font-body-small-fontSize);
  line-height: var(--alpy-ui-font-body-small-lineHeight);
  margin: var(--alpy-ui-size-0);
  min-height: var(--alpy-ui-font-body-small-lineHeight);
}

.split-layout,
.signature__grid,
.amenities__grid,
.location__grid {
  align-items: center;
  display: grid;
  gap: calc(var(--alpy-ui-size-64) + var(--alpy-ui-size-16));
  grid-template-columns: repeat(2, minmax(var(--alpy-ui-size-0), 1fr));
}

.section-copy {
  max-width: var(--hotel-reading);
}

.section-copy .eyebrow,
.signature__copy .eyebrow {
  margin-bottom: var(--alpy-ui-space-24);
}

.text-link {
  align-items: center;
  color: var(--hotel-gold);
  display: inline-flex;
  font-weight: var(--alpy-ui-font-weight-semiBold);
  gap: var(--alpy-ui-space-8);
  margin-top: var(--alpy-ui-space-12);
  text-decoration: none;
}

.text-link:hover {
  color: var(--hotel-gold-hover);
}

.framed-image {
  margin: var(--alpy-ui-size-0);
  position: relative;
}

.framed-image::before {
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-radius: var(--alpy-ui-size-192) var(--alpy-ui-size-192)
    var(--alpy-ui-size-0) var(--alpy-ui-size-0);
  content: "";
  inset: var(--alpy-ui-space-16) calc(-1 * var(--alpy-ui-space-16))
    calc(-1 * var(--alpy-ui-space-16)) var(--alpy-ui-space-16);
  pointer-events: none;
  position: absolute;
}

.framed-image img {
  aspect-ratio: 3 / 4;
  border-radius: var(--alpy-ui-size-192) var(--alpy-ui-size-192)
    var(--alpy-ui-size-0) var(--alpy-ui-size-0);
  object-fit: cover;
  position: relative;
}

.section-heading {
  margin-bottom: var(--alpy-ui-size-64);
}

.section-heading--split {
  align-items: end;
  display: grid;
  gap: var(--alpy-ui-space-48);
  grid-template-columns: minmax(var(--alpy-ui-size-0), 2fr)
    minmax(var(--alpy-ui-size-0), 1fr);
}

.section-heading h2 {
  margin: var(--alpy-ui-space-16) var(--alpy-ui-size-0) var(--alpy-ui-size-0);
}

.section-heading > p,
.section-heading > .text-link {
  margin-bottom: var(--alpy-ui-size-0);
}

.room-grid {
  display: grid;
  gap: var(--alpy-ui-space-32);
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(100%, calc(var(--alpy-ui-size-200) + var(--alpy-ui-size-96))), 1fr)
  );
}

.room-card {
  background: var(--hotel-panel);
  border: var(--alpy-ui-component-card-borderWidth) solid
    var(--hotel-border);
  border-radius: var(--alpy-ui-size-0);
  display: grid;
  isolation: isolate;
  position: relative;
}

.room-card::before {
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  content: "";
  inset: calc(-1 * var(--alpy-ui-size-8));
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

.room-card::after {
  background: var(--hotel-cream);
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  content: "";
  height: var(--alpy-ui-size-12);
  left: 50%;
  position: absolute;
  top: calc(-1 * var(--alpy-ui-size-16));
  transform: translateX(-50%) rotate(45deg);
  width: var(--alpy-ui-size-12);
  z-index: 2;
}

.room-card img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  width: 100%;
}

.room-card__body {
  display: grid;
  gap: var(--alpy-ui-component-card-content-gap);
  padding: calc(var(--alpy-ui-component-card-content-padding) + var(--alpy-ui-space-8));
}

.room-card__body > * {
  margin: var(--alpy-ui-size-0);
}

.room-card__meta {
  color: var(--hotel-text-muted);
  font-size: var(--alpy-ui-font-body-small-fontSize);
  line-height: var(--alpy-ui-font-body-small-lineHeight);
}

.room-card__rate {
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-border);
  color: var(--hotel-teal);
  font-weight: var(--alpy-ui-font-weight-semiBold);
  margin-top: var(--alpy-ui-space-8);
  padding-top: var(--alpy-ui-space-16);
}

.rooms__action {
  margin-top: var(--alpy-ui-size-48);
}

.rooms,
.location {
  background-color: var(--hotel-ink);
}

.rooms > .content-shell,
.location > .content-shell {
  position: relative;
  z-index: 1;
}

.signature {
  background: var(--hotel-ink);
  color: var(--alpy-ui-color-text-inverse);
  padding-block: var(--alpy-ui-size-0);
}

.section-anchor {
  left: var(--alpy-ui-size-0);
  position: absolute;
  top: var(--alpy-ui-size-0);
}

.signature::before,
.signature::after {
  display: none;
}

.signature__grid {
  gap: var(--alpy-ui-size-0);
  max-width: none;
  padding-inline: var(--alpy-ui-size-0);
}

.signature__media {
  margin: var(--alpy-ui-size-0);
  min-height: calc(3 * var(--alpy-ui-size-200));
}

.signature__media img {
  height: 100%;
  min-height: calc(3 * var(--alpy-ui-size-200));
  object-fit: cover;
  width: 100%;
}

.signature__copy {
  max-width: var(--hotel-reading);
  padding: calc(var(--alpy-ui-size-80) + var(--alpy-ui-size-16));
}

.signature__copy h2,
.signature__copy .lede {
  color: var(--alpy-ui-color-text-inverse);
}

.signature__copy > p:not(.eyebrow) {
  color: var(--hotel-text);
}

.amenities__grid {
  align-items: start;
}

.amenity-list {
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  list-style: none;
  margin: var(--alpy-ui-size-0);
  padding: var(--alpy-ui-size-0);
}

.amenity-list li {
  align-items: start;
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  display: grid;
  gap: var(--alpy-ui-space-24);
  grid-template-columns: var(--alpy-ui-size-40) 1fr;
  padding-block: var(--alpy-ui-space-20);
}

.amenity-list li > span {
  border-left: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-right: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  color: var(--hotel-gold);
  font-size: var(--alpy-ui-font-body-small-fontSize);
  line-height: var(--alpy-ui-font-body-small-lineHeight);
  padding-block: var(--alpy-ui-space-4);
  text-align: center;
}

.amenity-list h3,
.amenity-list p {
  margin: var(--alpy-ui-size-0);
}

.amenity-list p {
  color: var(--hotel-text);
}

.gallery-grid {
  display: grid;
  gap: var(--alpy-ui-space-24);
  grid-template-columns: repeat(2, minmax(var(--alpy-ui-size-0), 1fr));
}

.gallery-item {
  margin: var(--alpy-ui-size-0);
  position: relative;
}

.gallery-item--wide {
  border-left: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-right: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  grid-column: 1 / -1;
  padding-inline: var(--alpy-ui-space-8);
}

.gallery-item img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
}

.gallery-item--wide img {
  aspect-ratio: 16 / 7;
}

.gallery-item figcaption {
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-border);
  display: flex;
  gap: var(--alpy-ui-space-16);
  justify-content: space-between;
  padding-top: var(--alpy-ui-space-12);
}

.gallery-item figcaption span {
  color: var(--hotel-gold);
}

.location__grid {
  align-items: stretch;
}

.section-copy address,
.site-footer address {
  font-style: normal;
}

.section-copy address {
  color: var(--hotel-text-strong);
  font-family: var(--alpy-ui-font-heading-small-fontFamily);
  font-size: var(--alpy-ui-font-heading-small-fontSize);
  font-weight: var(--alpy-ui-font-weight-semiBold);
  line-height: var(--alpy-ui-font-heading-small-lineHeight);
  margin-bottom: var(--alpy-ui-space-24);
}

.transport-list {
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  margin: var(--alpy-ui-size-32) var(--alpy-ui-size-0);
}

.transport-list div {
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  display: grid;
  gap: var(--alpy-ui-space-16);
  grid-template-columns: var(--alpy-ui-size-88) 1fr;
  padding-block: var(--alpy-ui-space-12);
}

.transport-list dt {
  color: var(--hotel-gold);
  font-weight: var(--alpy-ui-font-weight-semiBold);
}

.transport-list dd {
  margin: var(--alpy-ui-size-0);
}

.neighborhood-map {
  background: var(--hotel-panel);
  border: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  margin: var(--alpy-ui-size-0);
  outline: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  outline-offset: calc(-1 * var(--alpy-ui-size-8));
  padding: var(--alpy-ui-space-24);
}

.neighborhood-map svg {
  color: var(--hotel-text);
  display: block;
  width: 100%;
}

.map-street {
  fill: none;
  stroke: var(--hotel-border);
  stroke-width: var(--alpy-ui-border-width-1);
}

.map-street--major {
  stroke: var(--hotel-gold-soft);
  stroke-width: var(--alpy-ui-border-width-2);
}

.map-park {
  fill: var(--alpy-ui-color-shades-brand-color-two-subtle-one);
  stroke: var(--alpy-ui-color-border-brand-color-two-subtle-three);
  stroke-width: var(--alpy-ui-border-width-1);
}

.map-marker {
  fill: var(--hotel-green);
}

.map-marker__center {
  fill: var(--hotel-canvas);
}

.neighborhood-map text {
  fill: currentColor;
  font-family: var(--alpy-ui-font-body-fontFamily);
  font-size: var(--alpy-ui-font-body-small-fontSize);
  font-weight: var(--alpy-ui-font-weight-semiBold);
}

.final-booking {
  background-color: var(--hotel-ink);
  color: var(--alpy-ui-color-text-inverse);
  padding-block: var(--hotel-section-space);
  text-align: center;
}

.final-booking__inner {
  display: grid;
  justify-items: center;
  padding-block: var(--alpy-ui-size-48);
}

.final-booking h2,
.final-booking p,
.reservation-contact a {
  color: var(--alpy-ui-color-text-inverse);
}

.final-booking h2 {
  margin-top: var(--alpy-ui-space-24);
}

.final-booking__inner > p:not(.eyebrow) {
  max-width: var(--hotel-reading);
}

.reservation-contact {
  display: flex;
  flex-wrap: wrap;
  gap: var(--alpy-ui-space-8);
  justify-content: center;
  margin: var(--alpy-ui-space-24) var(--alpy-ui-size-0) var(--alpy-ui-size-0);
}

.site-footer {
  background: var(--hotel-ink);
  color: var(--alpy-ui-color-text-inverse);
  padding-block: var(--alpy-ui-size-80) var(--alpy-ui-size-32);
}

.site-footer__grid {
  display: grid;
  gap: var(--alpy-ui-space-48);
  grid-template-columns: minmax(var(--alpy-ui-size-0), 2fr)
    repeat(3, minmax(var(--alpy-ui-size-0), 1fr));
}

.wordmark--inverse {
  color: var(--alpy-ui-color-text-inverse);
  justify-items: start;
  width: max-content;
}

.wordmark--inverse .wordmark__place,
.site-footer p,
.site-footer address {
  color: var(--hotel-text);
}

.site-footer__brand > p {
  margin-top: var(--alpy-ui-space-24);
  max-width: calc(var(--alpy-ui-size-200) + var(--alpy-ui-size-100));
}

.site-footer ul {
  display: grid;
  gap: var(--alpy-ui-space-12);
  list-style: none;
  margin: var(--alpy-ui-size-0);
  padding: var(--alpy-ui-size-0);
}

.site-footer a:hover {
  color: var(--hotel-gold-hover);
  text-decoration: underline;
  text-underline-offset: var(--alpy-ui-space-4);
}

.site-footer__legal {
  align-items: center;
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-ink-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--alpy-ui-space-16) var(--alpy-ui-space-32);
  justify-content: space-between;
  margin-top: var(--alpy-ui-size-64);
  padding-top: var(--alpy-ui-space-24);
}

.site-footer__legal p {
  margin: var(--alpy-ui-size-0);
}

.site-footer__legal nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--alpy-ui-space-24);
}

html[data-compact="true"] {
  --hotel-gutter: var(--alpy-ui-space-20);
  --hotel-section-space: calc(var(--alpy-ui-size-80) + var(--alpy-ui-size-16));
}

html[data-compact="true"] .site-header__inner {
  gap: var(--alpy-ui-space-12);
  grid-template-columns: minmax(var(--alpy-ui-size-0), 1fr) auto auto;
  min-height: var(--alpy-ui-size-80);
}

html[data-compact="true"] .wordmark {
  justify-items: start;
  min-width: var(--alpy-ui-size-0);
}

html[data-compact="true"] .wordmark__rule,
html[data-compact="true"] .wordmark__place {
  display: none;
}

html[data-compact="true"] .wordmark__name {
  white-space: normal;
}

html[data-compact="true"] .menu-toggle {
  display: inline-flex;
}

html[data-compact="true"] .primary-nav {
  align-items: stretch;
  background: var(--hotel-ink);
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  display: none;
  gap: var(--alpy-ui-size-0);
  left: var(--alpy-ui-size-0);
  padding: var(--alpy-ui-space-16) var(--hotel-gutter) var(--alpy-ui-space-24);
  position: absolute;
  right: var(--alpy-ui-size-0);
  top: 100%;
}

html[data-compact="true"][data-menu-open="true"] .primary-nav {
  display: grid;
}

html[data-compact="true"] .primary-nav a {
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-ink-soft);
  color: var(--alpy-ui-color-text-inverse);
  min-height: var(--alpy-ui-size-48);
  padding: var(--alpy-ui-space-12) var(--alpy-ui-size-0);
}

html[data-compact="true"] h1 {
  font-size: var(--alpy-ui-font-heading-xlarge-fontSize);
  line-height: var(--alpy-ui-font-heading-xlarge-lineHeight);
}

html[data-compact="true"] .hero__copy > * {
  max-width: 100%;
  min-width: var(--alpy-ui-size-0);
}

html[data-compact="true"] .hero__copy {
  justify-items: start;
  text-align: left;
}

html[data-compact="true"] .hero {
  background-image: none;
}

html[data-compact="true"] .hero__copy .action-row,
html[data-compact="true"] .final-booking .action-row {
  align-items: stretch;
  flex-direction: column;
  width: 100%;
}

html[data-compact="true"] .hero__portal {
  justify-items: start;
  margin-top: var(--alpy-ui-size-32);
  padding-inline: var(--alpy-ui-space-24);
}

html[data-compact="true"] .hero__portal::before,
html[data-compact="true"] .hero__portal::after {
  display: none;
}

html[data-compact="true"] .hero__portal .action-row {
  isolation: isolate;
  position: relative;
}

html[data-compact="true"] .hero__portal .action-row::before,
html[data-compact="true"] .hero__portal .action-row::after {
  border-left: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-right: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  content: "";
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

html[data-compact="true"] .hero__portal .action-row::before {
  inset: calc(-1 * var(--alpy-ui-size-12)) calc(-1 * var(--alpy-ui-size-8));
}

html[data-compact="true"] .hero__portal .action-row::after {
  inset: calc(-1 * var(--alpy-ui-size-4)) var(--alpy-ui-size-0);
}

html[data-compact="true"] .hero__media::before {
  inset: var(--alpy-ui-size-0) var(--alpy-ui-space-12) var(--alpy-ui-space-12);
}

html[data-compact="true"] .hero__media::after {
  inset: var(--alpy-ui-space-12) var(--alpy-ui-space-12) var(--alpy-ui-size-0);
}

html[data-compact="true"] .hero__copy .hotel-button,
html[data-compact="true"] .final-booking .hotel-button {
  width: 100%;
}

html[data-compact="true"] .booking-panel__heading,
html[data-compact="true"] .section-heading--split,
html[data-compact="true"] .split-layout,
html[data-compact="true"] .signature__grid,
html[data-compact="true"] .amenities__grid,
html[data-compact="true"] .location__grid,
html[data-compact="true"] .site-footer__grid {
  grid-template-columns: 1fr;
}

html[data-compact="true"] .booking-panel__heading {
  align-items: start;
  display: grid;
}

html[data-compact="true"] .section-heading--split {
  gap: var(--alpy-ui-space-24);
}

html[data-compact="true"] .section-heading {
  margin-bottom: var(--alpy-ui-size-48);
}

html[data-compact="true"] .split-layout {
  gap: var(--alpy-ui-size-64);
}

html[data-compact="true"] .framed-image img {
  aspect-ratio: 4 / 3;
  border-radius: var(--alpy-ui-size-128) var(--alpy-ui-size-128)
    var(--alpy-ui-size-0) var(--alpy-ui-size-0);
}

html[data-compact="true"] .framed-image::before {
  border-radius: var(--alpy-ui-size-128) var(--alpy-ui-size-128)
    var(--alpy-ui-size-0) var(--alpy-ui-size-0);
}

html[data-compact="true"] .signature__media,
html[data-compact="true"] .signature__media img {
  min-height: calc(var(--alpy-ui-size-200) + var(--alpy-ui-size-128));
}

html[data-compact="true"] .signature__copy {
  background-image: none;
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  padding: var(--alpy-ui-size-64) var(--hotel-gutter);
}

html[data-compact="true"] .gallery-grid {
  grid-template-columns: 1fr;
}

html[data-compact="true"] .gallery-item--wide {
  border-left: var(--alpy-ui-size-0);
  border-right: var(--alpy-ui-size-0);
  grid-column: auto;
  padding-inline: var(--alpy-ui-size-0);
}

html[data-compact="true"] .final-booking {
  border-bottom: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
  border-top: var(--alpy-ui-border-width-1) solid var(--hotel-gold-soft);
}

html[data-compact="true"] .final-booking__inner {
  padding-block: var(--alpy-ui-size-0);
}

html[data-compact="true"] .gallery-item img,
html[data-compact="true"] .gallery-item--wide img {
  aspect-ratio: 4 / 3;
}

html[data-compact="true"] .site-footer__legal {
  align-items: flex-start;
  flex-direction: column;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }
}
