.card-lounge-page {
  background: var(--color-cream-50);
}

.card-lounge-page .eyebrow {
  margin-block-end: var(--space-3);
}

.cl-hero {
  overflow: hidden;
}

.cl-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  min-height: 40rem;
  align-items: center;
}

.cl-hero__copy {
  grid-column: 1 / 2;
  width: 100%;
  max-width: 31.25rem;
  min-width: 0;
  padding-block: var(--space-9);
}

.cl-hero__lead {
  max-width: 32rem;
  font-size: var(--text-body-large);
  line-height: 1.55;
}

.cl-hero__assurance {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 29rem;
  min-width: 0;
  gap: var(--space-3);
  margin-block: var(--space-5);
}

.cl-hero__assurance-rule,
.cl-private__note-rule {
  width: 3rem;
  height: 2px;
  background: var(--color-brass-500);
}

.cl-hero__assurance p,
.cl-private__note p {
  margin: 0;
}

.cl-hero__actions,
.cl-private__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  min-width: 0;
  gap: var(--space-4);
}

.cl-hero__actions > *,
.cl-private__actions > * {
  min-width: 0;
}

.cl-hero__link {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  color: var(--color-cream-50);
  font-weight: 700;
}

.cl-hero__media {
  grid-column: 3 / 4;
  align-self: stretch;
  width: calc(100% + max(0px, (100vw - var(--container-max)) / 2 - var(--container-padding)));
  max-width: none;
  min-width: 0;
  margin: 0;
}

.cl-hero__media img {
  width: 100%;
  height: 100%;
  min-height: 40rem;
  object-fit: cover;
  object-position: 60% center;
}

.cl-format__intro {
  width: 100%;
  max-width: 38.75rem;
  min-width: 0;
}

.cl-format__items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  gap: var(--space-5);
  margin-block-start: var(--space-7);
}

.cl-format__item {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  max-width: 20rem;
  gap: var(--space-3);
  padding-block-start: var(--space-4);
  border-top: 1px solid var(--color-wood-700);
}

.cl-format__item > * {
  min-width: 0;
}

.cl-format__item h3,
.cl-format__item p {
  margin: 0;
}

.cl-format__item--assurance {
  border-top: 2px solid var(--color-brass-500);
}

.cl-format__motif {
  color: var(--color-brass-500);
  font-size: 1.5rem;
  line-height: 1;
}

.cl-room__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  gap: var(--space-5);
  align-items: start;
}

.cl-room__visual {
  grid-column: 1 / span 6;
  width: 100%;
  min-width: 0;
  padding-block-start: var(--space-6);
}

.cl-room__figure {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.cl-room__figure img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: right center;
}

.cl-room__figure figcaption {
  width: 100%;
  max-width: 18.75rem;
}

.cl-room__figure figcaption span {
  display: block;
  margin-block-end: var(--space-1);
  color: var(--color-brass-500);
  font-size: var(--text-overline);
  font-weight: 700;
  letter-spacing: var(--tracking-overline);
  text-transform: uppercase;
}

.cl-room__copy {
  grid-column: 8 / span 5;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 27.5rem;
  min-width: 0;
  gap: var(--space-4);
}

.cl-room__copy > * {
  min-width: 0;
  margin: 0;
}

.cl-room__pull {
  color: var(--color-forest-950);
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-style: italic;
  line-height: 1.25;
}

.cl-room__table-note {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: var(--space-3);
  padding-block-start: var(--space-4);
  border-top: 1px solid var(--color-brass-500);
}

.cl-room__table-note > * {
  margin: 0;
}

.cl-dining__intro {
  width: 100%;
  max-width: 41.875rem;
  min-width: 0;
}

.cl-dining__strands {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  gap: var(--space-5);
  margin-block-start: var(--space-7);
}

.cl-dining__strand {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  gap: var(--space-3);
  padding-block-start: var(--space-4);
  border-top: 1px solid var(--color-wood-700);
}

.cl-dining__strand > * {
  min-width: 0;
  margin: 0;
}

.cl-dining__strand--combined {
  border-bottom: 2px solid var(--color-wood-700);
  padding-block-end: var(--space-4);
}

.cl-dining__label {
  color: var(--color-brass-500);
  font-size: var(--text-overline);
  font-weight: 700;
  letter-spacing: var(--tracking-overline);
  line-height: 1.2;
  text-transform: uppercase;
}

.cl-occasions__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  gap: var(--space-5);
  align-items: start;
}

.cl-occasions__lead {
  grid-column: 1 / span 4;
  width: 100%;
  max-width: 22.5rem;
  min-width: 0;
}

.cl-occasions__cards {
  grid-column: 6 / span 7;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  gap: var(--space-4);
}

.cl-occasion-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  gap: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  background: var(--color-cream-100);
}

.cl-occasion-card::before {
  content: "";
  width: 2.5rem;
  height: 2px;
  background: var(--color-brass-500);
}

.cl-occasion-card > * {
  min-width: 0;
  margin: 0;
}

.cl-occasion-card a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  width: fit-content;
  font-weight: 700;
}

.cl-private {
  overflow: hidden;
}

.cl-private__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  align-items: stretch;
}

.cl-private__media,
.cl-private__panel-wrap {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.cl-private__media img {
  width: 100%;
  height: 100%;
  min-height: 34rem;
  object-fit: cover;
  object-position: center;
}

.cl-private__panel-wrap {
  display: flex;
  align-items: center;
  padding: 4.5rem max(var(--container-padding), calc((100vw - var(--container-max)) / 2));
  background: var(--color-forest-950);
}

.cl-private__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 31.25rem;
  min-width: 0;
  gap: var(--space-4);
  padding: var(--space-7);
  background: var(--color-cream-50);
  color: var(--color-ink-900);
}

.cl-private__panel > * {
  min-width: 0;
  margin: 0;
}

.cl-private__panel h2 {
  color: var(--color-forest-950);
}

.cl-private__note {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 24.375rem;
  min-width: 0;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--color-forest-800);
  color: var(--color-cream-50);
}

.cl-private__actions a:not(.button) {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  font-weight: 700;
}

.cl-faq__intro {
  width: 100%;
  max-width: 40.625rem;
  min-width: 0;
}

.cl-faq__list {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 47.5rem;
  min-width: 0;
  gap: 0;
  margin-block-start: var(--space-6);
  margin-inline-start: calc((100% / 12) + var(--space-3));
}

.cl-faq__item {
  width: 100%;
  min-width: 0;
  border-block-start: 1px solid var(--color-border);
}

.cl-faq__item:last-child {
  border-block-end: 1px solid var(--color-border);
}

.cl-faq__item summary {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 3.5rem;
  padding: var(--space-4) 2.5rem var(--space-4) 0;
  color: var(--color-forest-950);
  cursor: pointer;
  font-size: var(--text-h4);
  font-weight: 700;
  line-height: var(--leading-h4);
  list-style: none;
}

.cl-faq__item summary::-webkit-details-marker {
  display: none;
}

.cl-faq__item summary::after {
  position: absolute;
  right: var(--space-1);
  content: "+";
  color: var(--color-brass-500);
  font-size: 1.625rem;
  font-weight: 400;
}

.cl-faq__item[open] summary::after {
  content: "−";
}

.cl-faq__label {
  display: block;
  margin-block-end: var(--space-1);
  color: var(--color-brass-500);
  font-size: var(--text-overline);
  letter-spacing: var(--tracking-overline);
  line-height: 1.2;
  text-transform: uppercase;
}

.cl-faq__answer {
  width: 100%;
  max-width: 43rem;
  min-width: 0;
  padding-block: 0 var(--space-4);
}

.cl-faq__answer p {
  margin: 0;
}

.cl-booking {
  padding-block: 5rem;
}

.cl-booking__panel {
  display: flex;
  flex-direction: column;
  width: min(100%, 57.5rem);
  min-width: 0;
  gap: var(--space-6);
  margin-inline: auto;
  padding: var(--space-7);
  background: var(--color-cream-50);
  color: var(--color-ink-900);
}

.cl-booking__intro {
  width: 100%;
  max-width: 38.75rem;
  min-width: 0;
}

.cl-booking__intro > :last-child {
  margin-block-end: 0;
}

.cl-booking__form {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  gap: var(--space-5);
}

.cl-form__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(17.5rem, 1fr));
  width: 100%;
  min-width: 0;
  gap: var(--space-5);
}

.cl-form__field {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  gap: var(--space-2);
}

.cl-form__field label,
.cl-form__field p {
  margin: 0;
}

.cl-form__field input,
.cl-form__field select,
.cl-form__field textarea {
  min-width: 0;
}

.cl-form__error {
  min-height: 1.25rem;
  color: var(--color-forest-950);
  font-size: var(--text-small);
  font-weight: 700;
  line-height: var(--leading-small);
}

.cl-form__help {
  color: var(--color-muted-600);
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.cl-booking__submit {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 30rem;
  min-width: 0;
  gap: var(--space-3);
}

.cl-booking__submit > * {
  min-width: 0;
  margin: 0;
}

.cl-booking__safety {
  display: flex;
  align-items: flex-start;
  width: 100%;
  min-width: 0;
  gap: var(--space-3);
  padding: var(--space-4);
  border-left: 2px solid var(--color-brass-500);
  background: var(--color-cream-100);
}

.cl-booking__safety span {
  color: var(--color-brass-500);
  font-size: 1.25rem;
  line-height: 1.2;
}

.cl-booking__safety p {
  margin: 0;
}

.cl-booking__submit button {
  width: fit-content;
}

.cl-booking__status {
  min-height: 1.4rem;
  font-weight: 700;
}

.cl-booking__status--error {
  color: var(--color-forest-950);
}

.cl-booking__status--success {
  color: var(--color-success-700);
}

.cl-booking__expectation {
  color: var(--color-muted-600);
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.cl-closing__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 36.875rem;
  min-width: 0;
  gap: var(--space-4);
  margin-inline: auto;
  text-align: center;
}

.cl-closing__content > * {
  min-width: 0;
  margin: 0;
}

.cl-closing__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  min-width: 0;
  gap: var(--space-4);
  margin-block-start: var(--space-2);
}

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

@media (max-width: 67.5rem) {
  .cl-hero__grid {
    grid-template-columns: minmax(0, 5fr) minmax(0, 3fr);
    min-height: 35rem;
  }

  .cl-hero__copy {
    max-width: 28.75rem;
    padding-block: var(--space-8);
  }

  .cl-hero__media {
    grid-column: 2 / 3;
    width: 100%;
  }

  .cl-hero__media img {
    min-height: 35rem;
  }

  .cl-room__grid,
  .cl-occasions__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .cl-room__visual {
    grid-column: 1 / span 4;
    padding-block-start: 0;
  }

  .cl-room__copy {
    grid-column: 5 / span 4;
  }

  .cl-occasions__lead {
    grid-column: 1 / -1;
    max-width: 37.5rem;
  }

  .cl-occasions__cards {
    grid-column: 1 / -1;
  }
}

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

  .cl-format__item:nth-child(3),
  .cl-dining__strand:nth-child(3) {
    grid-column: 1 / -1;
    max-width: 40rem;
  }

  .cl-private__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cl-private__media img {
    min-height: 0;
    aspect-ratio: 3 / 2;
  }

  .cl-private__panel-wrap {
    padding: var(--space-6) var(--container-padding);
  }

  .cl-private__panel {
    max-width: 100%;
  }

  .cl-faq__list {
    margin-inline-start: 0;
  }
}

@media (max-width: 53.75rem) {
  .cl-form__row {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 48.75rem) {
  .cl-room__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .cl-room__visual,
  .cl-room__copy {
    grid-column: 1 / -1;
    max-width: 100%;
  }

  .cl-room__figure img {
    aspect-ratio: 5 / 6;
  }

  .cl-room__copy {
    gap: var(--space-4);
  }
}

@media (max-width: 47.5rem) {
  .cl-hero__grid {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 0;
  }

  .cl-hero__copy {
    order: 1;
    width: min(100% - (var(--container-padding) * 2), var(--container-max));
    max-width: none;
    padding-block: var(--space-6) var(--space-5);
  }

  .cl-hero__lead {
    max-width: 100%;
  }

  .cl-hero__assurance {
    max-width: 100%;
    margin-block: var(--space-5);
  }

  .cl-hero__actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .cl-hero__actions .button {
    width: 100%;
  }

  .cl-hero__media {
    order: 2;
    width: 100%;
  }

  .cl-hero__media img {
    min-height: 17.5rem;
    height: clamp(17.5rem, 70vw, 22.5rem);
    object-position: 65% center;
  }

  .cl-format__items,
  .cl-dining__strands,
  .cl-occasions__cards {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-4);
  }

  .cl-format__item,
  .cl-dining__strand,
  .cl-format__item:nth-child(3),
  .cl-dining__strand:nth-child(3) {
    grid-column: 1 / -1;
    max-width: 100%;
  }

  .cl-format__items,
  .cl-dining__strands {
    margin-block-start: var(--space-6);
  }

  .cl-occasions__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cl-occasions__lead,
  .cl-occasions__cards {
    grid-column: 1 / -1;
    max-width: 100%;
  }

  .cl-occasion-card {
    padding: var(--space-5);
  }

  .cl-private__panel-wrap {
    padding: 0;
  }

  .cl-private__media img {
    aspect-ratio: 4 / 3;
  }

  .cl-private__panel {
    padding: 1.75rem;
  }

  .cl-private__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .cl-private__actions .button,
  .cl-private__actions a:not(.button) {
    width: 100%;
  }

  .cl-faq__item summary {
    min-height: 2.75rem;
    font-size: 1.125rem;
  }

  .cl-booking {
    padding-block: var(--space-7);
  }

  .cl-booking__panel {
    width: 100%;
    padding: var(--space-5);
    gap: var(--space-5);
  }

  .cl-booking__submit {
    max-width: 100%;
  }

  .cl-booking__submit button {
    width: 100%;
  }

  .cl-closing__actions {
    flex-direction: column;
    align-items: center;
  }

  .cl-closing__actions .button {
    width: min(100%, 22.5rem);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .cl-faq__answer {
    animation: cl-faq-reveal 180ms ease both;
  }

  @keyframes cl-faq-reveal {
    from { opacity: 0; transform: translateY(-0.25rem); }
    to { opacity: 1; transform: translateY(0); }
  }
}