.gallery-page { overflow: clip; }
.gallery-page .section { padding-block: var(--section-space); }
.gallery-page .section--compact { padding-block: var(--section-space-compact); }
.gallery-page .eyebrow { margin-block-end: var(--space-3); }

.gallery-hero { padding-block-start: clamp(3rem, 6vw, 6rem); }
.gallery-hero__grid { display: grid; grid-template-columns: minmax(0, 44fr) minmax(500px, 56fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.gallery-hero__content { min-width: 0; max-width: 38.125rem; }
.gallery-hero__content .lead { max-width: 38rem; }
.gallery-hero__actions { display: flex; min-width: 0; margin-top: var(--space-6); }
.gallery-hero__media { position: relative; width: 100%; min-width: 0; min-height: 38.75rem; margin: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-large); box-shadow: var(--inset-amber), var(--shadow-subtle); }
.gallery-hero__media::after, .gallery-photo::after { position: absolute; inset: 0; pointer-events: none; content: ""; background-image: radial-gradient(rgb(247 244 237 / 4%) .6px, transparent .8px); background-size: 4px 4px; opacity: .45; }
.gallery-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }

.gallery-map__panel { position: relative; padding: clamp(1.5rem, 4vw, 3.5rem); overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-default); background: var(--color-slate-850); box-shadow: var(--inset-amber); }
.gallery-map__panel::before { position: absolute; top: 0; right: 0; width: 12rem; height: 10rem; border-left: 1px solid rgb(201 150 62 / 25%); border-bottom: 1px solid rgb(201 150 62 / 25%); background: linear-gradient(90deg, transparent 49%, rgb(201 150 62 / 14%) 50%, transparent 51%), linear-gradient(transparent 49%, rgb(201 150 62 / 14%) 50%, transparent 51%); background-size: 2.25rem 2.25rem; content: ""; }
.gallery-map__intro { position: relative; min-width: 0; max-width: 38.75rem; }
.gallery-map__cards { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.gallery-map__card { min-width: 0; padding: var(--space-5); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-default); background: var(--color-obsidian-900); }
.gallery-map__card > :last-child { margin-block-end: 0; }
.gallery-map__number { display: block; margin-bottom: var(--space-4); color: var(--color-amber-light); font-family: var(--font-heading); font-size: 2rem; line-height: 1; }

.gallery-interior__grid { display: grid; grid-template-columns: minmax(420px, 42fr) minmax(0, 58fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.gallery-interior__content { min-width: 0; max-width: 36.25rem; }
.gallery-interior__details { display: flex; min-width: 0; flex-direction: column; gap: 0; margin-top: var(--space-6); border-top: 1px solid rgb(201 150 62 / 45%); }
.gallery-interior__details p { display: grid; grid-template-columns: minmax(9rem, .72fr) minmax(0, 1.28fr); gap: var(--space-4); margin: 0; padding-block: var(--space-4); border-bottom: 1px solid rgb(201 150 62 / 28%); font-size: var(--text-xs); line-height: var(--leading-meta); }
.gallery-interior__details strong { min-width: 0; }
.gallery-interior__details span { min-width: 0; color: var(--color-mist); }

.gallery-photo { position: relative; width: 100%; min-width: 0; margin: 0; }
.gallery-photo__trigger { display: block; width: 100%; min-width: 0; padding: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-large); background: var(--color-obsidian-900); }
.gallery-photo__trigger img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-fast); }
.gallery-photo__trigger:hover img { transform: scale(1.02); }
.gallery-photo figcaption { display: flex; min-width: 0; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-3); color: var(--color-mist); font-size: var(--text-xs); line-height: var(--leading-meta); }
.gallery-photo figcaption span { min-width: 0; max-width: 75%; }
.gallery-text-trigger { min-width: 0; padding: 0; border: 0; background: transparent; color: var(--color-amber-light); font: inherit; line-height: inherit; text-align: right; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25rem; }
.gallery-interior__photo .gallery-photo__trigger { aspect-ratio: 4 / 3; }
.gallery-interior__photo img { object-position: center center; }

.gallery-taste { border-top: 1px solid rgb(201 150 62 / 35%); }
.gallery-taste__intro { min-width: 0; max-width: 42.5rem; }
.gallery-taste__media-grid { display: grid; grid-template-columns: minmax(0, 64fr) minmax(0, 36fr); align-items: end; gap: var(--space-5); margin-top: var(--space-7); }
.gallery-taste__dish, .gallery-taste__drink { min-width: 0; }
.gallery-taste__dish .gallery-photo__trigger { aspect-ratio: 3 / 2; }
.gallery-taste__drink .gallery-photo__trigger { aspect-ratio: 4 / 5; }
.gallery-taste__dish img { object-position: center; }
.gallery-taste__drink img { object-position: center; }
.gallery-taste__notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.gallery-taste__notes article { min-width: 0; padding-top: var(--space-5); border-top: 1px solid rgb(201 150 62 / 45%); }
.gallery-taste__notes article > :last-child { margin-block-end: 0; }
.gallery-taste__notes h3 { font-size: var(--text-lg); }
.gallery-taste__label, .gallery-details__label { margin-bottom: var(--space-2); color: var(--color-amber-light); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; }
.gallery-inline-link { display: inline-flex; min-height: 2.75rem; align-items: center; margin-top: var(--space-6); color: var(--color-amber-light); font-size: var(--text-xs); font-weight: 700; }

.gallery-play__grid { display: grid; grid-template-columns: minmax(400px, 40fr) minmax(520px, 60fr); align-items: start; gap: clamp(2rem, 5vw, 5rem); }
.gallery-play__content { min-width: 0; max-width: 35rem; }
.gallery-play__content .badge { margin-bottom: var(--space-4); }
.gallery-play__visuals { min-width: 0; }
.gallery-play__photo .gallery-photo__trigger { aspect-ratio: 16 / 10; }
.gallery-play__photo img { object-position: center; }
.gallery-play__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-5); }
.gallery-play__facts article { min-width: 0; padding: var(--space-5); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-default); background: var(--color-slate-850); box-shadow: var(--inset-amber); }
.gallery-play__facts article > :last-child { margin-block-end: 0; }
.gallery-play__facts h3 { font-size: var(--text-lg); }

.gallery-details { position: relative; }
.gallery-details::before { position: absolute; top: 18%; left: calc(50% - 38.75rem); width: 1px; height: 11rem; background: linear-gradient(transparent, var(--color-amber-gold), transparent); content: ""; }
.gallery-details__intro { min-width: 0; max-width: 40rem; padding-left: var(--space-5); border-left: 1px solid var(--color-amber-gold); }
.gallery-details__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); }
.gallery-details__grid article { min-width: 0; padding-top: var(--space-5); border-top: 1px solid var(--color-border-subtle); }
.gallery-details__grid article > :last-child { margin-block-end: 0; }
.gallery-details__grid h3 { font-size: var(--text-lg); }

.gallery-summary__panel { padding: clamp(1.5rem, 4vw, 3.5rem); border: 1px solid var(--color-border); border-radius: var(--radius-default); background: var(--color-slate-850); box-shadow: var(--inset-amber), var(--shadow-subtle); }
.gallery-summary__heading { min-width: 0; max-width: 35rem; }
.gallery-summary__heading h2::after { display: block; width: 5rem; height: 1px; margin-top: var(--space-4); background: var(--color-amber-gold); content: ""; }
.gallery-summary__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-7); margin-top: var(--space-7); }
.gallery-summary__facts article { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-4); min-width: 0; padding-block: var(--space-5); border-top: 1px solid var(--color-border-subtle); }
.gallery-summary__facts span { color: var(--color-amber-light); font-family: var(--font-heading); font-size: 1.75rem; line-height: 1; }
.gallery-summary__facts div { min-width: 0; }
.gallery-summary__facts h3 { font-size: var(--text-lg); }
.gallery-summary__facts p { margin-block-end: 0; }
.gallery-summary__links { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-5); margin-top: var(--space-6); }
.gallery-summary__links a { display: inline-flex; min-height: 2.75rem; align-items: center; color: var(--color-amber-light); font-size: var(--text-xs); font-weight: 700; }

.gallery-invitation__panel { padding: clamp(2rem, 6vw, 6rem); border: 1px solid var(--color-border); border-radius: var(--radius-large); background: var(--color-felt-green); box-shadow: var(--inset-amber), var(--shadow-panel); }
.gallery-invitation__content { display: flex; width: 100%; min-width: 0; max-width: 38.75rem; flex-direction: column; align-items: center; gap: var(--space-5); margin-inline: auto; text-align: center; }
.gallery-invitation__content .eyebrow, .gallery-invitation__content h2, .gallery-invitation__content p { margin: 0; }
.gallery-invitation__content p { color: var(--color-white-warm); font-size: var(--text-md); line-height: var(--leading-lead); }
.gallery-invitation__actions { display: flex; width: 100%; min-width: 0; flex-direction: column; align-items: center; gap: var(--space-4); }
.gallery-invitation__actions .button { width: auto; min-width: 12rem; background: var(--color-obsidian-900); }
.gallery-invitation__actions .button:hover { background: var(--color-slate-800); }
.gallery-invitation__link { display: inline-flex; min-height: 2.75rem; align-items: center; color: var(--color-white-warm); font-size: var(--text-xs); font-weight: 700; }

.gallery-age { padding-top: 0 !important; }
.gallery-age__panel { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-5); align-items: start; padding: var(--space-5); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-default); background: var(--color-obsidian-900); }
.gallery-age__label { display: inline-flex; min-height: 2rem; align-items: center; padding-inline: var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-pill); color: var(--color-amber-light); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--tracking-label); }
.gallery-age__panel p { min-width: 0; max-width: 47.5rem; margin: 0; }

.gallery-lightbox { width: min(100% - 3rem, 75rem); max-width: none; max-height: calc(100vh - 3rem); padding: 0; overflow: visible; border: 1px solid var(--color-border); border-radius: var(--radius-large); background: var(--color-obsidian-900); color: var(--color-text); box-shadow: var(--shadow-panel); }
.gallery-lightbox::backdrop { background: rgb(0 0 0 / 78%); }
.gallery-lightbox__frame { position: relative; display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding: var(--space-3); }
.gallery-lightbox__image { width: 100%; max-height: calc(100vh - 9rem); object-fit: contain; }
.gallery-lightbox__caption { margin: 0; padding-inline: var(--space-2); color: var(--color-mist); font-size: var(--text-xs); }
.gallery-lightbox__close { position: absolute; z-index: 1; top: var(--space-4); right: var(--space-4); display: inline-flex; width: 2.75rem; min-width: 2.75rem; min-height: 2.75rem; align-items: center; justify-content: center; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-obsidian-900); color: var(--color-white-warm); font-size: 1.75rem; line-height: 1; }
.gallery-lightbox__close:hover { border-color: var(--color-amber-light); color: var(--color-amber-light); }

@media (max-width: 67.5rem) {
  .gallery-hero__grid { grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); gap: var(--space-6); }
  .gallery-hero__media { min-height: 35rem; }
  .gallery-interior__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .gallery-interior__content { max-width: 36.25rem; }
  .gallery-play__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .gallery-play__content { max-width: 35rem; }
  .gallery-play__visuals { width: 100%; }
}

@media (max-width: 62.5rem) {
  .gallery-taste__media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-taste__dish .gallery-photo__trigger, .gallery-taste__drink .gallery-photo__trigger { aspect-ratio: 4 / 3; }
  .gallery-taste__notes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-taste__notes article:nth-child(3) { grid-column: 1 / -1; }
}

@media (max-width: 58.75rem) {
  .gallery-map__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-map__card:nth-child(3) { grid-column: 1 / -1; }
  .gallery-details__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-details__grid article:nth-child(3) { grid-column: 1 / -1; }
}

@media (max-width: 51.25rem) {
  .gallery-summary__facts { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 47.4375rem) {
  .gallery-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .gallery-hero__content { max-width: 34rem; }
  .gallery-hero__content h1 { font-size: clamp(2.625rem, 12vw, 3.625rem); }
  .gallery-hero__content .lead { max-width: 34rem; font-size: var(--text-sm); }
  .gallery-hero__media { min-height: 20rem; aspect-ratio: 4 / 5; }
  .gallery-map__panel::before, .gallery-details::before { display: none; }
  .gallery-map__cards, .gallery-taste__notes, .gallery-details__grid { grid-template-columns: minmax(0, 1fr); }
  .gallery-map__card:nth-child(3), .gallery-taste__notes article:nth-child(3), .gallery-details__grid article:nth-child(3) { grid-column: auto; }
  .gallery-map__card { padding: var(--space-5); }
  .gallery-interior__details p { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .gallery-interior__photo .gallery-photo__trigger { min-height: 21.25rem; aspect-ratio: 4 / 5; }
  .gallery-photo figcaption { flex-direction: column; align-items: flex-start; }
  .gallery-photo figcaption span { max-width: 100%; }
  .gallery-text-trigger { min-height: 2.75rem; text-align: left; }
  .gallery-taste__media-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .gallery-taste__dish .gallery-photo__trigger { min-height: 18.75rem; aspect-ratio: 4 / 3; }
  .gallery-taste__drink .gallery-photo__trigger { min-height: 21.25rem; aspect-ratio: 4 / 5; }
  .gallery-play__photo .gallery-photo__trigger { min-height: 18.75rem; aspect-ratio: 4 / 3; }
  .gallery-play__facts { grid-template-columns: minmax(0, 1fr); }
  .gallery-details__intro { padding-left: var(--space-4); }
  .gallery-summary__panel { padding: var(--space-5); }
  .gallery-summary__links { flex-direction: column; gap: var(--space-2); }
  .gallery-summary__links a { width: 100%; }
  .gallery-invitation__panel { padding: var(--space-6) var(--space-5); }
  .gallery-invitation__content { align-items: stretch; }
  .gallery-invitation__content h2 { font-size: clamp(2.25rem, 10vw, 2.625rem); }
  .gallery-invitation__actions .button { width: 100%; }
  .gallery-age__panel { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .gallery-age__label { width: fit-content; }
  .gallery-lightbox { width: calc(100% - 2rem); max-height: calc(100vh - 2rem); }
  .gallery-lightbox__image { max-height: calc(100vh - 10rem); }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-photo__trigger img { transition: none; }
  .gallery-photo__trigger:hover img { transform: none; }
}
