/* Fixed Gallery composition; owner text retains its saved wording and case. */
.gallery-detail-main { padding: 0; }
.gallery-detail-main + .brand-footer { margin-top: 0; }
.gallery-detail {
  --gallery-gap: clamp(.75rem, 1.5vw, 2rem);
  --gallery-overlap: 8rem;
  padding: 3rem 0;
  color: var(--color-coffee, #442d1d);
  background: var(--color-sage, #a4a482);
}
.brand-chrome-enabled .gallery-detail {
  padding-top: calc(var(--brand-header-initial-height) + 8px);
}
.gallery-detail__heading {
  width: min(88%, 80rem);
  margin-inline: auto;
  padding: 5.5rem 5% calc(var(--gallery-overlap) + 2.5rem);
  background: var(--color-forest, #404115);
  color: var(--color-ivory, #fcfaf7);
  text-align: center;
  overflow-wrap: anywhere;
}
.gallery-detail__heading h1 {
  margin: 0;
  font: 400 clamp(2rem, 3.6vw, 3.5rem)/1.2 var(--font-display, Georgia, serif);
}
.gallery-detail__description {
  max-width: 42rem;
  margin: 1.5rem auto 0;
  font-size: 1.125rem;
  line-height: 1.6;
}
.gallery-detail__description p { margin: 0 0 .75em; }
.gallery-detail__description p:last-child { margin-bottom: 0; }
.gallery-detail__collection {
  position: relative;
  width: min(78%, 70rem);
  margin: calc(0rem - var(--gallery-overlap)) auto 0;
}
.gallery-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  gap: var(--gallery-gap);
  align-items: start;
  margin: 0;
  padding: 0;
  list-style: none;
}
.gallery-photo-grid.is-justified { display: flex; flex-wrap: wrap; }
.gallery-photo { min-width: 0; flex: none; }
.gallery-photo figure { margin: 0; }
.gallery-photo__link, .gallery-photo picture { display: block; }
.gallery-photo__link { background: var(--color-forest, #404115); }
.gallery-photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 0;
  /* Explicit metadata ratio also reserves space after a failed image request. */
  aspect-ratio: var(--gallery-photo-ratio, auto);
}
.gallery-detail__empty {
  margin: 0;
  padding: 2rem;
  background: var(--color-rice, #f1e8d7);
}
.gallery-photo__link:focus-visible {
  outline: 3px solid var(--color-ivory, #fcfaf7);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--color-coffee, #442d1d);
}
.gallery-viewer {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  box-sizing: border-box;
  overflow: auto;
  background: var(--color-coffee, #442d1d);
  color: var(--color-ivory, #fcfaf7);
}
.gallery-viewer::backdrop { background: var(--color-coffee, #442d1d); }
.gallery-viewer__layout {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  grid-template-rows: auto minmax(64px, 1fr) auto auto;
  gap: .75rem;
  height: 100%;
  min-height: 100%;
  box-sizing: border-box;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
}
.gallery-viewer__controls { display: contents; }
.gallery-viewer__controls button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 2rem;
  background: var(--color-rice, #f1e8d7);
  color: var(--color-coffee, #442d1d);
  font: 28px/1 var(--font-interface, sans-serif);
  cursor: pointer;
}
.gallery-viewer__controls button:disabled { opacity: .55; cursor: default; }
.gallery-viewer__controls button:focus-visible { outline: 3px solid var(--color-ivory, #fcfaf7); outline-offset: 2px; }
.gallery-viewer [data-viewer-previous], .gallery-viewer [data-viewer-next] {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.gallery-viewer [data-viewer-previous] { left: max(12px, env(safe-area-inset-left)); }
.gallery-viewer [data-viewer-next] { right: max(12px, env(safe-area-inset-right)); }
.gallery-viewer [data-viewer-close] { grid-row: 1; grid-column: 3; }
.gallery-viewer [data-viewer-position] {
  grid-row: 1;
  grid-column: 1 / 3;
  align-self: center;
  margin: 0;
  overflow-wrap: anywhere;
}
.gallery-viewer__word { display: none; }
.gallery-viewer__announcement {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.gallery-viewer__photo { grid-row: 2; grid-column: 2; min-width: 0; min-height: 0; }
.gallery-viewer__photo picture, .gallery-viewer__photo img { display: block; width: 100%; height: 100%; }
.gallery-viewer__photo img { object-fit: contain; }
.gallery-viewer__caption {
  grid-row: 3;
  grid-column: 2;
  min-height: 3em;
  max-height: 25vh;
  max-height: 25dvh;
  overflow-y: auto;
  overflow-wrap: anywhere;
  white-space: pre-line;
  width: min(100%, 60rem);
  margin: 0 auto;
  line-height: 1.5;
}
.gallery-viewer__error { grid-row: 4; grid-column: 2; min-width: 0; margin: 0; overflow-wrap: anywhere; text-align: center; }
.gallery-viewer__caption:focus-visible { outline: 2px solid var(--color-ivory, #fcfaf7); outline-offset: 2px; }
@media (max-width: 48rem) {
  .gallery-detail { --gallery-overlap: 4rem; }
  .gallery-detail__heading { width: 94%; padding-top: 2.5rem; }
  .gallery-detail__collection { width: 88%; }
  .gallery-detail__description { font-size: 1rem; }
}
