.gallery-page {
  overflow: hidden;
}

.gallery-page figure,
.gallery-page .panel,
.gallery-page .notice,
.gallery-page .card,
.gallery-page .surface--dark,
.gallery-page .gallery-intro__note,
.gallery-page .gallery-cabins__comparison,
.gallery-page .gallery-dining__takeaway,
.gallery-page .gallery-casino__closing,
.gallery-page .gallery-notes__card,
.gallery-page .gallery-disclosure__panel {
  margin: 0;
}

.gallery-page img {
  width: 100%;
  max-width: 100%;
  filter: saturate(0.97);
}

.gallery-intro__grid,
.gallery-sea__feature,
.gallery-sea__scenic,
.gallery-cabins__cards,
.gallery-dining__mosaic,
.gallery-casino__feature,
.gallery-casino__notices,
.gallery-notes__cards {
  display: grid;
  min-width: 0;
}

.gallery-intro__grid > *,
.gallery-sea__feature > *,
.gallery-sea__scenic > *,
.gallery-cabins__cards > *,
.gallery-dining__mosaic > *,
.gallery-casino__feature > *,
.gallery-casino__notices > *,
.gallery-notes__cards > * {
  min-width: 0;
  width: 100%;
}

.gallery-intro__grid {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: var(--space-6);
}

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

.gallery-intro__copy > * {
  margin: 0;
}

.gallery-intro__title {
  max-width: 28ch;
  font-size: clamp(3.25rem, 5.8vw, 5.5rem);
  line-height: var(--leading-display);
  margin: 0;
}

.gallery-intro__lead {
  max-width: 56ch;
}

.gallery-intro__lead p:last-child {
  margin-bottom: 0;
}

.gallery-intro__note {
  width: 100%;
  max-width: 36ch;
  padding: var(--space-4);
  border: var(--border-standard);
  border-top: 2px solid var(--color-pacific-teal);
  border-radius: var(--radius-card);
  background: var(--color-pearl-grey-strong);
}

.gallery-intro__note h2 {
  margin-bottom: var(--space-2);
  font-size: 1.125rem;
}

.gallery-intro__note ul {
  margin-bottom: 0;
}

.gallery-intro__media {
  width: 100%;
  margin: 0;
}

.gallery-intro__media img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: 72% center;
}

.gallery-intro__media figcaption {
  padding-inline: var(--space-2);
}

.gallery-sea__header {
  max-width: 60ch;
  margin-bottom: var(--space-6);
}

.gallery-sea__header p:last-child,
.gallery-cabins__header p:last-child,
.gallery-dining__header p:last-child,
.gallery-casino__header p:last-child,
.gallery-notes__header p:last-child {
  margin-bottom: 0;
}

.gallery-sea__feature {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: start;
  gap: var(--space-5);
}

.gallery-sea__wide-media img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: 70% center;
}

.gallery-sea__explanation {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.gallery-sea__explanation > * {
  margin: 0;
}

.gallery-sea__explanation p {
  max-width: 48ch;
}

.gallery-sea__scenic {
  grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr);
  align-items: start;
  gap: var(--space-5);
  margin-top: var(--space-6);
}

.gallery-sea__scenic-media {
  grid-column: 1 / span 1;
}

.gallery-sea__scenic-media img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.gallery-sea__practical-note {
  grid-column: 2 / span 1;
  padding-top: var(--space-2);
}

.gallery-sea__practical-note p {
  max-width: 48ch;
}

.gallery-sea__aside {
  max-width: 58ch;
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: var(--border-standard);
}

.gallery-sea__aside h3 {
  margin-bottom: var(--space-2);
  font-size: 1.125rem;
}

.gallery-sea__aside p:last-child {
  margin-bottom: 0;
}

.gallery-cabins__header {
  max-width: 60ch;
  margin-bottom: var(--space-5);
}

.gallery-cabins__facts {
  margin-bottom: var(--space-6);
}

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

.gallery-cabins__card {
  min-height: 100%;
}

.gallery-cabins__card > img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.gallery-cabins__card-body {
  gap: var(--space-3);
}

.gallery-cabins__card-body > * {
  margin: 0;
}

.gallery-cabins__card-body ul {
  padding-left: 1.25rem;
}

.gallery-cabins__comparison {
  max-width: min(100%, 50rem);
  margin-top: var(--space-6);
  margin-inline: auto;
}

.gallery-cabins__comparison h3 {
  margin-bottom: var(--space-2);
}

.gallery-cabins__comparison p:last-child {
  margin-bottom: 0;
}

.gallery-dining__header {
  max-width: 58ch;
  margin-bottom: var(--space-6);
}

.gallery-dining__mosaic {
  grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 5fr);
  align-items: start;
  gap: var(--space-5);
}

.gallery-dining__module {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.gallery-dining__module figure {
  min-width: 0;
}

.gallery-dining__module figure img {
  width: 100%;
  object-fit: cover;
  border-radius: var(--radius-card);
}

.gallery-dining__galley figure img,
.gallery-dining__sushi figure img {
  aspect-ratio: 4 / 3;
}

.gallery-dining__terrace figure img {
  aspect-ratio: 16 / 9;
}

.gallery-dining__caption {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  border: var(--border-standard);
  border-radius: var(--radius-card);
  background: var(--color-white);
}

.gallery-dining__caption > * {
  margin: 0;
}

.gallery-dining__caption p {
  max-width: 42ch;
}

.gallery-dining__terrace-caption {
  margin-top: 0;
}

.gallery-dining__takeaway {
  max-width: 48ch;
  margin-top: var(--space-6);
  padding: var(--space-4);
  border-top: 2px solid var(--color-pacific-teal);
  background: var(--color-pearl-grey-strong);
}

.gallery-dining__takeaway h3 {
  margin-bottom: var(--space-2);
}

.gallery-dining__takeaway p:last-child {
  margin-bottom: 0;
}

.gallery-casino__header {
  max-width: 58ch;
  margin-bottom: var(--space-6);
}

.gallery-casino__feature {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: start;
  gap: var(--space-5);
}

.gallery-casino__media img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.gallery-casino__context {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
}

.gallery-casino__context > * {
  margin: 0;
}

.gallery-casino__context p {
  max-width: 52ch;
}

.gallery-casino__notices {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-5);
  margin-top: var(--space-6);
}

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

.gallery-casino__age-badge {
  display: inline-flex;
  min-width: 2.5rem;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-pill);
  background: var(--color-maritime-coral-amber);
  color: var(--color-white);
  font-family: var(--font-heading);
  font-weight: var(--weight-display);
}

.gallery-casino__age h3,
.gallery-casino__responsible h3 {
  margin-bottom: var(--space-2);
}

.gallery-casino__age p:last-child,
.gallery-casino__responsible p:last-child {
  margin-bottom: 0;
}

.gallery-casino__responsible {
  min-height: 100%;
}

.gallery-casino__closing {
  max-width: 55ch;
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: var(--border-standard);
}

.gallery-casino__closing h3 {
  margin-bottom: var(--space-2);
  font-size: 1.125rem;
}

.gallery-casino__closing p:last-child {
  margin-bottom: 0;
}

.gallery-notes__header {
  max-width: 58ch;
  margin-bottom: var(--space-6);
}

.gallery-notes__cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-5);
}

.gallery-notes__card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
  border: var(--border-standard);
  border-radius: var(--radius-card);
  background: var(--color-white);
}

.gallery-notes__card > * {
  margin: 0;
}

.gallery-notes__card--clues {
  border-top: 2px solid var(--color-pacific-teal);
}

.gallery-notes__card--change {
  background: var(--color-pearl-grey-strong);
}

.gallery-notes__card--independent {
  border-color: var(--color-ocean-slate);
}

.gallery-notes__card ul {
  padding-left: 1.25rem;
}

.gallery-cta {
  padding-top: 0;
}

.gallery-cta__panel {
  padding: var(--space-8) var(--space-5);
  border-radius: var(--radius-feature);
  background: linear-gradient(135deg, var(--color-deep-ocean-slate) 0%, var(--color-ocean-slate) 75%, #123849 100%);
}

.gallery-cta__content {
  display: flex;
  width: min(100%, 48ch);
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  margin-inline: auto;
  text-align: center;
}

.gallery-cta__content > * {
  margin: 0;
}

.gallery-cta__content h2 {
  max-width: 28ch;
  color: var(--color-white);
}

.gallery-cta__content > p:not(.gallery-cta__external) {
  max-width: 48ch;
  color: var(--color-pearl-grey);
}

.gallery-cta__button {
  width: auto;
}

.gallery-cta__external {
  max-width: 56ch;
  color: #cbd5e1;
  font-size: var(--text-meta);
  line-height: var(--leading-meta);
}

.gallery-disclosure {
  padding: 0 0 var(--section-space);
}

.gallery-disclosure__panel {
  width: min(100%, 56.25rem);
  padding: var(--space-4);
  border: var(--border-standard);
  border-radius: var(--radius-card);
  background: var(--color-pearl-grey-strong);
}

.gallery-disclosure__panel h2 {
  margin-bottom: var(--space-2);
  font-size: var(--text-label);
}

.gallery-disclosure__panel p {
  max-width: 65ch;
  margin-bottom: 0;
  color: var(--color-ocean-slate);
  font-size: var(--text-label);
  line-height: 1.5;
}

@media (max-width: 63.99rem) {
  .gallery-intro__grid,
  .gallery-sea__feature,
  .gallery-casino__feature {
    grid-template-columns: 1fr;
  }

  .gallery-intro__media {
    order: -1;
  }

  .gallery-intro__copy {
    align-items: flex-start;
  }

  .gallery-intro__title {
    font-size: clamp(3rem, 7vw, 4.75rem);
  }

  .gallery-sea__explanation p,
  .gallery-casino__context p {
    max-width: 60ch;
  }

  .gallery-sea__scenic {
    grid-template-columns: 1fr;
  }

  .gallery-sea__scenic-media,
  .gallery-sea__practical-note {
    grid-column: auto;
  }

  .gallery-sea__practical-note {
    padding-top: 0;
  }

  .gallery-dining__mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gallery-dining__terrace {
    grid-column: 1 / -1;
  }

  .gallery-notes__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gallery-notes__card--independent {
    grid-column: 1 / -1;
  }
}

@media (max-width: 53.74rem) {
  .gallery-cabins__cards,
  .gallery-casino__notices {
    grid-template-columns: 1fr;
  }

  .gallery-dining__mosaic {
    grid-template-columns: 1fr;
  }

  .gallery-dining__terrace {
    grid-column: auto;
  }
}

@media (max-width: 47.99rem) {
  .gallery-intro__grid,
  .gallery-sea__feature,
  .gallery-sea__scenic,
  .gallery-cabins__cards,
  .gallery-dining__mosaic,
  .gallery-casino__feature,
  .gallery-casino__notices,
  .gallery-notes__cards {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .gallery-intro__media {
    order: -1;
  }

  .gallery-intro__title {
    max-width: 24ch;
    font-size: clamp(2.9rem, 13vw, 3.4rem);
  }

  .gallery-intro__lead,
  .gallery-intro__note,
  .gallery-sea__header,
  .gallery-cabins__header,
  .gallery-dining__header,
  .gallery-casino__header,
  .gallery-notes__header,
  .gallery-sea__aside,
  .gallery-dining__takeaway,
  .gallery-casino__closing,
  .gallery-disclosure__panel {
    max-width: none;
  }

  .gallery-intro__actions {
    width: 100%;
  }

  .gallery-intro__actions .button {
    width: 100%;
  }

  .gallery-sea__scenic-media,
  .gallery-sea__practical-note,
  .gallery-dining__terrace,
  .gallery-notes__card--independent {
    grid-column: auto;
  }

  .gallery-cabins__comparison {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .gallery-notes__card {
    padding: var(--space-4);
  }

  .gallery-cta__panel {
    padding: var(--space-7) var(--space-4);
  }

  .gallery-cta__content {
    width: 100%;
  }

  .gallery-cta__button {
    width: 100%;
  }
}

@media (max-width: 29.99rem) {
  .gallery-cta__content {
    align-items: stretch;
    text-align: left;
  }

  .gallery-cta__content h2,
  .gallery-cta__content > p:not(.gallery-cta__external),
  .gallery-cta__external {
    max-width: none;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .gallery-dining__module figure {
    overflow: hidden;
    border-radius: var(--radius-card);
  }

  .gallery-dining__module figure img {
    transition: transform var(--transition-fast);
  }

  .gallery-dining__module:hover figure img {
    transform: scale(1.02);
  }
}
