/* Gallery page styles — scoped to .gallery-page */
.gallery-page {
  overflow-x: hidden;
}

/* Hero */
.gallery-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  background-color: var(--color-ivory-soft);
}

.gallery-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.gallery-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 65%;
  display: block;
}

.gallery-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(30, 28, 24, 0.08) 0%, rgba(30, 28, 24, 0.35) 55%, rgba(30, 28, 24, 0.72) 100%);
}

.gallery-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 560px;
  padding: 0 24px 48px;
  color: var(--color-canvas-white);
  text-align: left;
}

.gallery-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2.25rem, 6vw, 4.5rem);
  line-height: 1.1;
  font-weight: 300;
  letter-spacing: -0.02em;
  color: var(--color-canvas-white);
  margin-block-end: var(--space-md);
  text-shadow: 0 1px 8px rgba(30, 28, 24, 0.35);
}

.gallery-hero__text {
  font-size: var(--text-body-large-size);
  line-height: 1.65;
  font-weight: 400;
  color: var(--color-canvas-white);
  margin-block-end: var(--space-xl);
  text-shadow: 0 1px 4px rgba(30, 28, 24, 0.35);
  max-width: 48ch;
}

.gallery-hero__cta {
  display: inline-flex;
}

/* Introduction */
.gallery-intro {
  background-color: var(--color-canvas-white);
}

.gallery-intro__container {
  text-align: center;
}

.gallery-intro__title {
  margin-block-end: var(--space-lg);
}

.gallery-intro__lead {
  font-size: var(--text-body-large-size);
  line-height: 1.65;
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: var(--space-lg);
}

.gallery-intro__container p:not(.gallery-intro__lead) {
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: var(--space-md);
}

.gallery-intro__container p:last-child {
  margin-block-end: 0;
}

/* Gallery Grid */
.gallery-grid-section {
  background-color: var(--color-canvas-white);
}

.gallery-grid-section__container {
  max-width: var(--container-primary-max);
  margin-inline: auto;
  padding-inline: var(--container-primary-padding);
}

.gallery-grid-section__title {
  margin-block-end: var(--space-sm);
}

.gallery-grid-section__intro {
  max-width: 68ch;
  margin-block-end: var(--space-2xl);
  color: var(--color-ink-secondary);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--grid-gutter-desktop);
  align-items: start;
}

.gallery-grid__item {
  margin: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.gallery-grid__image {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-image-in-card);
}

.gallery-grid__item--dining .gallery-grid__image {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.gallery-grid__item--bar .gallery-grid__image {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.gallery-grid__item--poker .gallery-grid__image {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.gallery-grid__caption {
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line-height);
  font-weight: var(--text-caption-weight);
  letter-spacing: var(--text-caption-letter-spacing);
  text-transform: uppercase;
  color: var(--color-ink-secondary);
  max-width: 48ch;
  margin-block-start: var(--space-xs);
}

/* Design Philosophy */
.design-philosophy {
  background-color: var(--color-ivory-soft);
}

.design-philosophy__container {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-2xl);
  align-items: start;
  max-width: var(--container-primary-max);
  margin-inline: auto;
  padding-inline: var(--container-primary-padding);
}

.design-philosophy__text {
  min-width: 0;
}

.design-philosophy__title {
  margin-block-end: var(--space-lg);
}

.design-philosophy__text p {
  max-width: 68ch;
  margin-block-end: var(--space-md);
}

.design-philosophy__text p:last-child {
  margin-block-end: 0;
}

.design-philosophy__quote {
  border-inline-start: 2px solid var(--color-champagne-gold);
  padding-inline-start: var(--space-lg);
  font-family: var(--font-heading);
  font-style: italic;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  line-height: 1.3;
  color: var(--color-ink-primary);
  margin: 0;
  max-width: 40ch;
}

.design-philosophy__quote p {
  margin: 0;
}

/* Experiences */
.experiences {
  background-color: var(--color-canvas-white);
}

.experiences__container {
  max-width: var(--container-primary-max);
  margin-inline: auto;
  padding-inline: var(--container-primary-padding);
  display: flex;
  flex-direction: column;
  gap: var(--space-3xl);
}

.experiences__title {
  margin-block-end: var(--space-sm);
}

.experiences__block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2xl);
  align-items: center;
}

.experiences__block--poker {
  direction: rtl;
}

.experiences__block--poker > * {
  direction: ltr;
}

.experiences__media {
  min-width: 0;
}

.experiences__image {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-image-in-card);
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.experiences__block--poker .experiences__image {
  aspect-ratio: 3 / 2;
}

.experiences__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.experiences__heading {
  margin-block-end: 0;
}

.experiences__badge {
  align-self: flex-start;
}

.experiences__content p {
  max-width: 48ch;
  margin-block-end: 0;
}

/* Reservation CTA */
.reservation-cta {
  background-color: var(--color-ivory-soft);
}

.reservation-cta__container {
  max-width: 560px;
  margin-inline: auto;
  padding-inline: var(--container-primary-padding);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
}

.reservation-cta__title {
  margin-block-end: 0;
}

.reservation-cta__text {
  max-width: 48ch;
  margin-block-end: 0;
}

.reservation-cta__button {
  display: inline-flex;
}

/* Responsible Gaming */
.responsible-gaming {
  background-color: var(--color-ivory-soft);
  border-block-start: var(--border-hairline);
}

.responsible-gaming__container {
  max-width: 760px;
  margin-inline: auto;
  padding-inline: var(--container-primary-padding);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
}

.responsible-gaming__badge {
  display: inline-flex;
}

.responsible-gaming__text {
  max-width: 68ch;
  margin-block-end: 0;
  color: var(--color-ink-secondary);
  font-size: var(--text-small-size);
  line-height: var(--text-small-line-height);
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
  .gallery-hero__content {
    padding-inline: 48px;
    padding-block-end: 64px;
  }

  .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--grid-gutter-mobile);
  }

  .gallery-grid__item--poker {
    grid-column: span 2;
  }

  .design-philosophy__container {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .design-philosophy__quote {
    max-width: 100%;
  }

  .experiences__block {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .experiences__block--poker {
    direction: ltr;
  }

  .experiences__block--poker > * {
    direction: ltr;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .gallery-hero {
    min-height: 100svh;
  }

  .gallery-hero__content {
    padding: 0 24px 40px;
    max-width: 100%;
  }

  .gallery-hero__title {
    font-size: clamp(2.25rem, 10vw, 3rem);
  }

  .gallery-hero__text {
    font-size: 1rem;
    line-height: 1.6;
  }

  .gallery-intro__container {
    padding-inline: 24px;
  }

  .gallery-grid-section__container {
    padding-inline: 24px;
  }

  .gallery-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: var(--space-md);
    padding-inline: 24px;
    margin-inline: -24px;
    scroll-padding-inline: 24px;
    -webkit-overflow-scrolling: touch;
  }

  .gallery-grid__item {
    flex: 0 0 80%;
    scroll-snap-align: start;
  }

  .gallery-grid__image {
    aspect-ratio: 4 / 5;
  }

  .design-philosophy__container {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
    padding-inline: 24px;
  }

  .design-philosophy__quote {
    max-width: 100%;
  }

  .experiences__container {
    padding-inline: 24px;
    gap: var(--space-2xl);
  }

  .experiences__block {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .experiences__block--poker {
    direction: ltr;
  }

  .experiences__block--poker > * {
    direction: ltr;
  }

  .reservation-cta__container {
    padding-inline: 24px;
  }

  .responsible-gaming__container {
    padding-inline: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-hero,
  .gallery-grid,
  .experiences__block,
  .design-philosophy__container {
    scroll-behavior: auto;
  }
}
