.galerie-page {
  overflow: clip;
}

.galerie-page .section--large,
.galerie-page .section {
  position: relative;
}

.galerie-page figure {
  margin: 0;
}

.galerie-hero {
  padding-block: var(--space-11) var(--space-10);
}

.galerie-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  grid-template-areas: "copy image" "note image";
  gap: var(--space-7) var(--space-8);
  align-items: end;
}

.galerie-hero__copy,
.galerie-hero__note,
.galerie-kitchen__copy,
.galerie-materials__copy,
.galerie-materials__legend,
.galerie-card-room__copy,
.galerie-holdem__main,
.galerie-holdem__aside,
.galerie-closing__content {
  min-width: 0;
}

.galerie-hero__copy {
  grid-area: copy;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding-bottom: var(--space-2);
}

.galerie-hero__copy .eyebrow,
.galerie-hero__copy h1,
.galerie-hero__copy p {
  margin: 0;
}

.galerie-hero__copy h1 {
  width: 100%;
  font-size: clamp(3.5rem, 8vw, 7rem);
}

.galerie-hero__copy .lead {
  width: min(100%, 36rem);
}

.galerie-hero__figure {
  grid-area: image;
  min-width: 0;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--color-limestone);
}

.galerie-hero__figure img,
.galerie-kitchen__figure img,
.galerie-social__figure img,
.galerie-materials__figure img,
.galerie-lounge__figure img,
.galerie-card-room__figure img,
.galerie-details__grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.galerie-hero__figure img { object-position: 65% center; }

.galerie-hero__note {
  grid-area: note;
  width: min(100%, 26rem);
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  padding-top: var(--space-5);
  border-top: var(--border-copper);
}

.galerie-hero__note p,
.galerie-materials__item p,
.galerie-materials__closing,
.galerie-lounge__caption p,
.galerie-lounge__note p,
.galerie-details__dining p,
.galerie-details__poker p,
.galerie-details__copy,
.galerie-holdem__aside p {
  margin: 0;
}

.galerie-number,
.galerie-materials__item > span,
.galerie-principle > span {
  color: var(--color-copper);
  font-size: var(--text-utility);
  font-weight: 700;
  letter-spacing: 0.12em;
}

.galerie-text-link,
.galerie-light-link {
  font-size: var(--text-utility);
  font-weight: 700;
  text-decoration-thickness: 1px;
}

.galerie-text-link:hover span,
.galerie-light-link:hover span {
  display: inline-block;
  transform: translateX(2px);
}

.galerie-kitchen {
  background: var(--color-limestone);
}

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

.galerie-kitchen__copy {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.galerie-kitchen__copy .eyebrow,
.galerie-kitchen__copy h2,
.galerie-kitchen__copy p {
  margin: 0;
}

.galerie-kitchen__copy p {
  width: min(100%, 34rem);
}

.galerie-kitchen__figure {
  min-width: 0;
  width: 100%;
}

.galerie-kitchen__figure img {
  aspect-ratio: 4 / 5;
  object-position: center;
}

.galerie-kitchen__figure figcaption {
  width: 100%;
  margin: var(--space-3) 0 0;
}

.galerie-caption-label {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--color-copper);
  font-size: var(--text-label);
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: var(--leading-label);
  text-transform: uppercase;
}

.galerie-social__stage {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  grid-template-areas: "panel image";
  align-items: end;
}

.galerie-social__figure {
  grid-area: image;
  min-width: 0;
  width: 100%;
  aspect-ratio: 3 / 4;
  transform: translateX(0);
}

.galerie-social__figure img { object-position: center; }

.galerie-social__panel {
  grid-area: panel;
  z-index: 1;
  width: calc(100% + var(--space-7));
  min-width: 0;
  margin-right: calc(var(--space-7) * -1);
  padding: var(--space-7);
  background: var(--color-limestone);
  border: var(--border-subtle);
  box-shadow: var(--shadow-soft);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.galerie-social__panel .eyebrow,
.galerie-social__panel h2,
.galerie-social__panel p {
  margin: 0;
}

.galerie-social__panel .lead { width: min(100%, 35rem); }

.galerie-social__notes {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-5);
  border-top: var(--border-subtle);
}

.galerie-social__notes > div {
  min-width: 0;
  width: 100%;
}

.galerie-materials__grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  grid-template-areas: "copy image" "legend image";
  gap: var(--space-6) var(--space-8);
  align-items: start;
}

.galerie-materials__copy {
  grid-area: copy;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.galerie-materials__copy .eyebrow,
.galerie-materials__copy h2,
.galerie-materials__copy p { margin: 0; }
.galerie-materials__copy p { width: min(100%, 34rem); }

.galerie-materials__figure {
  grid-area: image;
  min-width: 0;
  width: 100%;
}

.galerie-materials__figure img {
  aspect-ratio: 3 / 2;
  object-position: right center;
}

.galerie-materials__legend {
  grid-area: legend;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.galerie-materials__item {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  width: 100%;
  min-width: 0;
  padding-bottom: var(--space-3);
  border-bottom: var(--border-subtle);
}

.galerie-materials__closing {
  width: min(100%, 30rem);
}

.galerie-transition {
  overflow: hidden;
  background: var(--color-forest);
  color: var(--color-porcelain);
}

.galerie-transition::before {
  position: absolute;
  top: var(--space-7);
  right: max(4vw, var(--space-5));
  width: 12rem;
  height: 7rem;
  border-top: 1px solid color-mix(in srgb, var(--color-copper) 60%, transparent);
  border-right: 1px solid color-mix(in srgb, var(--color-copper) 60%, transparent);
  content: "";
  opacity: 0.6;
}

.galerie-transition__content {
  position: relative;
  width: min(100% - (var(--container-padding) * 2), var(--container-max));
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.galerie-transition__content .eyebrow,
.galerie-transition__content h2,
.galerie-transition__content p { margin: 0; }
.galerie-transition__content h2 { color: var(--color-porcelain); }
.galerie-transition__content > p { width: min(100%, 43rem); }

.galerie-light-link {
  color: var(--color-porcelain);
  text-decoration-color: var(--color-terracotta);
}

.galerie-light-link:hover { color: var(--color-porcelain); }

.galerie-transition__principles {
  width: min(100%, 43rem);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-3);
}

.galerie-principle {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  width: 100%;
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid color-mix(in srgb, var(--color-copper) 65%, transparent);
}

.galerie-principle > div { min-width: 0; width: 100%; }
.galerie-principle h3,
.galerie-principle p { margin: 0; }
.galerie-principle h3 { color: var(--color-porcelain); margin-bottom: var(--space-2); }

.galerie-lounge h2 { width: min(100%, 52rem); }

.galerie-lounge__figure {
  width: 100%;
  margin-top: var(--space-6);
}

.galerie-lightbox-trigger {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-md);
  background: var(--color-forest);
  text-align: left;
}

.galerie-lounge__figure .galerie-lightbox-trigger { aspect-ratio: 16 / 9; }
.galerie-lounge__figure img { object-position: center; }

.galerie-image-action {
  position: absolute;
  right: var(--space-4);
  bottom: var(--space-4);
  padding: var(--space-2) var(--space-3);
  background: color-mix(in srgb, var(--color-forest) 88%, transparent);
  color: var(--color-porcelain);
  font-size: var(--text-label);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--transition-fast), transform var(--transition-fast);
}

.galerie-lightbox-trigger:hover .galerie-image-action,
.galerie-lightbox-trigger:focus-visible .galerie-image-action { opacity: 1; transform: translateY(0); }

.galerie-lounge__info {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr);
  gap: var(--space-6);
  align-items: start;
  width: 100%;
  margin-top: var(--space-5);
}

.galerie-lounge__caption,
.galerie-lounge__note,
.galerie-lounge__action {
  min-width: 0;
  width: 100%;
}

.galerie-lounge__note {
  padding-left: var(--space-5);
  border-left: var(--border-copper);
}

.galerie-lounge__action {
  display: flex;
  justify-content: flex-end;
}

.galerie-card-room { background: var(--color-limestone); }

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

.galerie-card-room__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  width: 100%;
}

.galerie-card-room__copy .eyebrow,
.galerie-card-room__copy h2,
.galerie-card-room__copy > p { margin: 0; }
.galerie-card-room__copy > p { width: min(100%, 34rem); }

.galerie-card-room__secondary {
  width: min(100%, 28rem);
  padding-top: var(--space-4);
  border-top: var(--border-copper);
}

.galerie-card-room__secondary p { margin: 0; }

.galerie-card-room__figure,
.galerie-card-room__figure .galerie-lightbox-trigger {
  min-width: 0;
  width: 100%;
  aspect-ratio: 4 / 5;
}

.galerie-card-room__figure img { object-position: 60% center; }

.galerie-holdem { background: var(--color-limestone); }

.galerie-holdem__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 1fr) minmax(0, 3fr) minmax(0, 1fr);
  grid-template-areas: "main . aside .";
  gap: var(--space-5);
  align-items: start;
}

.galerie-holdem__main {
  grid-area: main;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  width: 100%;
}

.galerie-holdem__main .eyebrow,
.galerie-holdem__main h2,
.galerie-holdem__main p,
.galerie-holdem__main blockquote { margin: 0; }
.galerie-holdem__main > p { width: min(100%, 43rem); }
.galerie-holdem__main blockquote { width: min(100%, 43rem); }

.galerie-holdem__aside {
  grid-area: aside;
  width: 100%;
  margin-top: var(--space-10);
  padding-top: var(--space-4);
  border-top: var(--border-copper);
}

.galerie-details__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  grid-template-areas: "dining . poker";
  gap: var(--space-5);
  align-items: start;
  margin-top: var(--space-6);
}

.galerie-details__dining,
.galerie-details__poker {
  min-width: 0;
  width: 100%;
}

.galerie-details__dining { grid-area: dining; margin-top: var(--space-6); }
.galerie-details__poker { grid-area: poker; }

.galerie-details__dining figure,
.galerie-details__poker figure { margin: 0 0 var(--space-3); }
.galerie-details__dining .galerie-lightbox-trigger,
.galerie-details__poker .galerie-lightbox-trigger { aspect-ratio: 4 / 5; }
.galerie-details__dining img { object-position: center; }
.galerie-details__poker img { object-position: center; }

.galerie-details__copy {
  width: min(100%, 43rem);
  margin-top: var(--space-7);
}

.galerie-closing {
  position: relative;
  background: var(--color-porcelain);
}

.galerie-closing::after {
  position: absolute;
  top: var(--space-8);
  right: max(var(--container-padding), 8vw);
  width: 5rem;
  height: 5rem;
  border-top: var(--border-copper);
  border-right: var(--border-copper);
  content: "";
}

.galerie-closing__content {
  position: relative;
  z-index: 1;
  width: min(100%, 43rem);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.galerie-closing__content .eyebrow,
.galerie-closing__content h2,
.galerie-closing__content p { margin: 0; }
.galerie-closing__content p { width: min(100%, 33rem); }

.galerie-closing__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  width: 100%;
}

.galerie-closing__actions > a {
  min-width: 0;
  width: auto;
}

.galerie-lightbox[hidden] { display: none; }

.galerie-lightbox {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: var(--space-5);
}

.galerie-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--color-ink) 92%, transparent);
}

.galerie-lightbox__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 72rem);
  max-height: calc(100vh - var(--space-10));
  min-width: 0;
  padding: var(--space-6);
  overflow: auto;
  border: 1px solid color-mix(in srgb, var(--color-copper) 70%, transparent);
  background: var(--color-forest);
  color: var(--color-porcelain);
}

.galerie-lightbox__image {
  width: 100%;
  max-height: min(70vh, 48rem);
  object-fit: contain;
}

.galerie-lightbox__caption {
  margin: var(--space-3) 0 0;
  color: var(--color-porcelain);
  font-size: var(--text-utility);
}

.galerie-lightbox__close {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  z-index: 2;
  width: 3rem;
  min-width: 0;
  min-height: 3rem;
  border: 1px solid var(--color-porcelain);
  border-radius: var(--radius-button);
  background: var(--color-forest);
  color: var(--color-porcelain);
  font-size: 1.75rem;
  line-height: 1;
}

body.galerie-lightbox-open { overflow: hidden; }

@media (max-width: 61.25rem) {
  .galerie-social__stage {
    grid-template-columns: 1fr;
    grid-template-areas: "panel" "image";
    gap: var(--space-6);
  }
  .galerie-social__panel { width: 100%; margin-right: 0; box-shadow: none; }
  .galerie-social__figure { aspect-ratio: 3 / 4; }
}

@media (max-width: 58.75rem) {
  .galerie-hero__grid {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "image" "note";
    gap: var(--space-6);
  }
  .galerie-hero__figure { aspect-ratio: 4 / 5; }
  .galerie-hero__figure img { object-position: 62% center; }
  .galerie-hero__note { width: 100%; }
}

@media (max-width: 56.25rem) {
  .galerie-kitchen__grid,
  .galerie-materials__grid,
  .galerie-card-room__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }
  .galerie-kitchen__figure,
  .galerie-materials__figure,
  .galerie-card-room__figure { order: 2; }
  .galerie-materials__grid { grid-template-areas: "copy" "image" "legend"; }
  .galerie-materials__figure img { aspect-ratio: 4 / 5; object-position: center; }
  .galerie-kitchen__copy p,
  .galerie-materials__copy p,
  .galerie-card-room__copy > p { width: 100%; }
  .galerie-lounge__info { grid-template-columns: 1fr; gap: var(--space-5); }
  .galerie-lounge__note { padding-left: 0; border-left: 0; border-top: var(--border-copper); padding-top: var(--space-4); }
  .galerie-lounge__action { justify-content: flex-start; }
  .galerie-lounge__figure .galerie-lightbox-trigger { aspect-ratio: 4 / 5; }
  .galerie-lounge__figure img { object-position: center; }
}

@media (max-width: 51.25rem) {
  .galerie-holdem__grid {
    grid-template-columns: 1fr;
    grid-template-areas: "main" "aside";
    gap: var(--space-6);
  }
  .galerie-holdem__aside { margin-top: 0; }
}

@media (max-width: 47.5rem) {
  .galerie-transition__principles,
  .galerie-details__grid {
    grid-template-columns: 1fr;
  }
  .galerie-transition__principles { gap: var(--space-5); }
  .galerie-details__grid { grid-template-areas: "dining" "poker"; gap: var(--space-6); }
  .galerie-details__dining { margin-top: 0; }
  .galerie-details__copy { width: 100%; }
}

@media (max-width: 38.75rem) {
  .galerie-closing__actions { flex-direction: column; }
  .galerie-closing__actions > a { width: 100%; }
}

@media (max-width: 35rem) {
  .galerie-hero { padding-block: var(--space-9) var(--space-8); }
  .galerie-hero__copy h1 { font-size: clamp(3rem, 15vw, 4rem); }
  .galerie-social__panel { padding: var(--space-5); }
  .galerie-social__notes { grid-template-columns: 1fr; }
  .galerie-transition::before,
  .galerie-closing::after { display: none; }
  .galerie-lightbox { padding: var(--space-3); }
  .galerie-lightbox__dialog { max-height: calc(100vh - var(--space-6)); padding: var(--space-4); }
  .galerie-image-action { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .galerie-text-link:hover span,
  .galerie-light-link:hover span,
  .galerie-image-action { transform: none; }
}
