.home-page {
  overflow: clip;
}

.home-page .button > span,
.home-page .home-text-link > span {
  transition: transform var(--duration-fast) var(--ease-out);
}

.home-page .button:hover > span,
.home-page .button:focus-visible > span,
.home-page .home-text-link:hover > span,
.home-page .home-text-link:focus-visible > span {
  transform: translateX(3px);
}

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

.home-hero__layout,
.home-culinary__layout,
.home-space__layout,
.home-final-cta__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-7);
}

.home-hero__copy,
.home-hero__media,
.home-culinary__copy,
.home-culinary__media,
.home-space__copy,
.home-space__media,
.home-final-cta__action,
.home-final-cta__conditions {
  min-width: 0;
  width: 100%;
}

.home-hero__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-hero__copy > * {
  margin: 0;
}

.home-hero__eyebrow::before,
.home-hero__eyebrow {
  display: block;
}

.home-hero__eyebrow::before {
  width: 2.5rem;
  height: 1px;
  margin-bottom: var(--space-3);
  background: var(--color-champagne-500);
  content: "";
}

.home-hero__copy h1 {
  max-width: 35rem;
}

.home-hero__lead {
  max-width: 35rem;
  color: var(--text-secondary);
  font-size: var(--text-lg);
  line-height: var(--leading-lg);
}

.home-hero__actions,
.home-final-cta__controls {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.home-hero__booking {
  min-height: 3.25rem;
}

.home-hero__actions small,
.home-final-cta__controls small {
  color: var(--text-secondary);
}

.home-hero__media,
.home-culinary__media,
.home-space__media,
.home-gallery-preview__item {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border: var(--border-sand);
  border-radius: var(--radius-md);
}

.home-hero__media {
  aspect-ratio: 4 / 3;
}

.home-hero__media img,
.home-culinary__media img,
.home-space__media img,
.home-gallery-preview__item img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.home-rhythms__intro,
.home-casino__intro,
.home-evening__intro,
.home-visit-info__intro,
.home-gallery-preview__intro,
.home-faq__intro {
  width: 100%;
  min-width: 0;
}

.home-rhythms__intro {
  max-width: 38.75rem;
}

.home-rhythms__grid,
.home-casino__facts,
.home-evening__steps,
.home-visit-info__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  min-width: 0;
  margin-top: var(--space-7);
}

.home-rhythm-card,
.home-casino-fact,
.home-evening-step,
.home-info-card {
  width: 100%;
  min-width: 0;
}

.home-rhythm-card {
  padding-block: var(--space-6);
  border-top: var(--border-sand);
}

.home-rhythm-card:last-child {
  border-bottom: var(--border-sand);
}

.home-rhythm-card__number,
.home-casino-fact__number,
.home-evening-step__number {
  margin-bottom: var(--space-4);
  color: var(--color-champagne-dark);
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1;
}

.home-text-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  color: var(--text-primary);
  font-size: var(--text-nav);
  font-weight: 700;
}

.home-culinary {
  background: var(--surface-gradient);
}

.home-culinary__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-culinary__copy > * {
  margin: 0;
}

.home-culinary__lead {
  max-width: 38.75rem;
  color: var(--text-secondary);
  font-size: var(--text-lg);
  line-height: var(--leading-lg);
}

.home-culinary__features,
.home-space__values {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
}

.home-culinary-feature,
.home-space-value {
  width: 100%;
  min-width: 0;
}

.home-culinary-feature {
  padding: var(--space-5);
  border-left: 2px solid var(--color-sand-300);
  background: rgba(255, 255, 255, 0.48);
}

.home-culinary-feature > *:last-child,
.home-space-value > *:last-child {
  margin-bottom: 0;
}

.home-culinary-feature--muted {
  border-left-color: var(--color-champagne-500);
  background: var(--surface-muted);
}

.home-culinary-feature--statement {
  border-left-color: var(--color-champagne-dark);
  background: var(--color-white-0);
}

.home-culinary__media {
  aspect-ratio: 4 / 3;
}

.home-casino {
  background: var(--surface-dark);
}

.home-casino .eyebrow {
  color: var(--color-sand-300);
}

.home-casino__intro {
  max-width: 38.75rem;
}

.home-casino__intro h2,
.home-casino__facts h3 {
  color: var(--text-inverse);
}

.home-casino__intro p {
  color: rgba(255, 255, 255, 0.78);
}

.home-casino__facts {
  gap: 0;
}

.home-casino-fact {
  padding-block: var(--space-6);
  border-top: 1px solid rgba(216, 201, 179, 0.48);
}

.home-casino-fact:last-child {
  border-bottom: 1px solid rgba(216, 201, 179, 0.48);
}

.home-casino-fact p:not(.home-casino-fact__number) {
  color: rgba(255, 255, 255, 0.78);
}

.home-casino-fact--accent {
  border-left: 2px solid var(--color-champagne-500);
  padding-left: var(--space-5);
}

.home-text-link--inverse {
  margin-top: var(--space-6);
  color: var(--color-white-0);
}

.home-text-link--inverse:hover {
  color: var(--color-champagne-500);
}

.home-evening__intro {
  max-width: 40rem;
}

.home-evening__steps {
  gap: 0;
}

.home-evening-step {
  position: relative;
  padding: var(--space-6) 0 var(--space-6) var(--space-5);
  border-left: 1px solid var(--color-sand-300);
}

.home-evening-step__number {
  font-size: 2.75rem;
}

.home-evening-step--accent {
  border-left: 2px solid var(--color-champagne-500);
}

.home-evening > .container > .button {
  margin-top: var(--space-6);
  min-height: 3.25rem;
}

.home-space {
  background: var(--surface-gradient);
}

.home-space__media {
  aspect-ratio: 4 / 3;
}

.home-space__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-space__copy > * {
  margin: 0;
}

.home-space__lead {
  max-width: 35rem;
  color: var(--text-secondary);
  font-size: var(--text-lg);
  line-height: var(--leading-lg);
}

.home-space-value {
  padding-top: var(--space-5);
  border-top: var(--border-sand);
}

.home-visit-info {
  background: var(--surface-muted);
}

.home-visit-info__intro {
  max-width: 35.625rem;
}

.home-visit-info__grid {
  gap: var(--space-4);
}

.home-info-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  border: var(--border-subtle);
  border-radius: var(--radius-md);
  background: var(--surface-card);
  padding: var(--space-5);
}

.home-info-card > * {
  margin: 0;
}

.home-info-card .home-text-link {
  margin-top: auto;
}

.home-gallery-preview__intro {
  max-width: 35rem;
}

.home-gallery-preview__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  width: 100%;
  min-width: 0;
  margin-top: var(--space-7);
}

.home-gallery-preview__item {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  background: var(--surface-card);
  padding: var(--space-2);
}

.home-gallery-preview__item--food,
.home-gallery-preview__item--interior {
  aspect-ratio: auto;
}

.home-gallery-preview__item img {
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-sm);
}

.home-gallery-preview__item figcaption {
  margin: 0;
  padding: var(--space-2);
}

.home-gallery-preview > .container > .button {
  margin-top: var(--space-6);
}

.home-faq {
  background: var(--color-white-0);
}

.home-faq__intro {
  max-width: 38.75rem;
}

.home-faq__list {
  display: flex;
  width: 100%;
  max-width: 51.25rem;
  min-width: 0;
  flex-direction: column;
  margin-top: var(--space-7);
  border-top: var(--border-sand);
}

.home-faq-item {
  width: 100%;
  min-width: 0;
  border-bottom: var(--border-sand);
}

.home-faq-item h3 {
  margin: 0;
}

.home-faq-item__trigger {
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 3.5rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  border-radius: 0;
  padding: var(--space-4) 0;
  color: var(--text-primary);
  font-family: var(--font-heading);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.15;
  text-align: left;
}

.home-faq-item__trigger > span {
  flex: 0 0 auto;
  color: var(--color-champagne-dark);
  font-family: var(--font-body);
  font-size: 1.5rem;
  line-height: 1;
  transition: transform var(--duration-base) var(--ease-out);
}

.home-faq-item__trigger[aria-expanded="true"] > span {
  transform: rotate(45deg);
}

.home-faq-item__panel {
  max-width: 42.5rem;
  padding-bottom: var(--space-5);
}

.home-faq-item__panel p {
  color: var(--text-secondary);
}

.home-faq > .container > .home-text-link {
  margin-top: var(--space-5);
}

.home-final-cta {
  background: var(--surface-dark);
}

.home-final-cta__panel {
  gap: var(--space-7);
  border-top: 1px solid var(--color-champagne-500);
  padding-top: var(--space-7);
}

.home-final-cta .eyebrow {
  color: var(--color-sand-300);
}

.home-final-cta__action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-final-cta__action > * {
  margin: 0;
}

.home-final-cta__action h2 {
  color: var(--text-inverse);
}

.home-final-cta__action > p:not(.eyebrow) {
  max-width: 37.5rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: var(--text-lg);
  line-height: var(--leading-lg);
}

.home-final-cta__button {
  min-height: 3.25rem;
  border-color: var(--color-champagne-500);
  background: var(--color-white-0);
  color: var(--color-graphite-900);
}

.home-final-cta__button:hover {
  border-color: var(--color-champagne-500);
  background: var(--color-champagne-500);
  color: var(--color-graphite-900);
}

.home-final-cta__controls small {
  color: rgba(255, 255, 255, 0.72);
}

.home-final-cta__conditions {
  display: flex;
  flex-direction: column;
}

.home-final-cta__conditions p {
  display: grid;
  grid-template-columns: minmax(3.75rem, auto) minmax(0, 1fr);
  gap: var(--space-4);
  margin: 0;
  padding-block: var(--space-5);
  border-top: 1px solid rgba(216, 201, 179, 0.48);
  color: rgba(255, 255, 255, 0.82);
}

.home-final-cta__conditions p:last-child {
  border-bottom: 1px solid rgba(216, 201, 179, 0.48);
}

.home-final-cta__conditions strong {
  color: var(--color-champagne-500);
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.1;
}

@media (min-width: 48rem) {
  .home-hero {
    padding-block: var(--space-10);
  }

  .home-rhythms__grid,
  .home-casino__facts,
  .home-evening__steps,
  .home-visit-info__grid {
    gap: var(--space-5);
  }
}

@media (min-width: 50rem) {
  .home-gallery-preview__grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    align-items: stretch;
  }

  .home-gallery-preview__item--food img {
    aspect-ratio: 16 / 10;
  }

  .home-gallery-preview__item--interior img {
    aspect-ratio: 4 / 5;
  }
}

@media (min-width: 51.25rem) {
  .home-final-cta__panel {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
    gap: var(--space-8);
  }
}

@media (min-width: 53.75rem) {
  .home-visit-info__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 55rem) {
  .home-casino__facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }

  .home-casino-fact {
    min-height: 100%;
    padding: var(--space-6);
    border-top: 1px solid rgba(216, 201, 179, 0.48);
    border-bottom: 1px solid rgba(216, 201, 179, 0.48);
    border-left: 1px solid rgba(216, 201, 179, 0.48);
  }

  .home-casino-fact:first-child {
    border-left: 0;
  }

  .home-casino-fact--accent {
    padding-left: var(--space-6);
    border-left: 2px solid var(--color-champagne-500);
  }
}

@media (min-width: 56.25rem) {
  .home-rhythms__grid,
  .home-evening__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }

  .home-rhythm-card {
    padding: 0 var(--space-5);
    border-top: 0;
    border-left: var(--border-sand);
  }

  .home-rhythm-card:first-child {
    padding-left: 0;
    border-left: 0;
  }

  .home-rhythm-card:last-child {
    border-bottom: 0;
  }

  .home-evening-step {
    padding: 0 var(--space-5);
    border-top: 0;
    border-left: var(--border-sand);
  }

  .home-evening-step:first-child {
    padding-left: 0;
    border-left: 0;
  }

  .home-evening-step--accent {
    border-left: 2px solid var(--color-champagne-500);
  }
}

@media (min-width: 60rem) {
  .home-hero__layout,
  .home-culinary__layout {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    align-items: center;
    gap: var(--space-8);
  }

  .home-space__layout {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: center;
    gap: var(--space-8);
  }

  .home-hero__media,
  .home-culinary__media {
    aspect-ratio: 4 / 5;
  }

  .home-space__media {
    aspect-ratio: 5 / 4;
  }
}

@media (min-width: 80rem) {
  .home-hero__layout,
  .home-culinary__layout,
  .home-space__layout {
    gap: var(--space-9);
  }
}

@media (max-width: 29.9375rem) {
  .home-hero__booking,
  .home-evening > .container > .button,
  .home-gallery-preview > .container > .button,
  .home-final-cta__button {
    width: 100%;
  }

  .home-final-cta__button {
    min-height: 3.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .button > span,
  .home-page .home-text-link > span,
  .home-faq-item__trigger > span {
    transition: none;
  }
}
