/* The six existing gallery blocks share the catalog's scroll/mask controller. */
.gallery-page[data-program-transitions] .catalog-chapter-navigation { grid-template-columns: repeat(6,minmax(0,1fr)); }
.gallery-page[data-program-transitions] .catalog-chapter-scene.intro-section { padding-top: calc(var(--header-panel-height) + var(--header-top-height) + 28px); }
.gallery-page[data-program-transitions] .intro-section .page-intro { max-width: 1000px; }
.gallery-page[data-program-transitions] .intro-section h1 { max-width: 850px; }
.gallery-page[data-program-transitions] .photo-scene {
  background: linear-gradient(90deg,#03182ec9,#041a3040 55%,#041a3060),url('night-faq.jpg') center / cover #0b1c2b;
}
.gallery-page[data-program-transitions] #all-photos { position: absolute; top: 0; }
.gallery-page[data-program-transitions] .gallery-group > .container { width: min(1440px,calc(100% - 96px)); }
.gallery-page[data-program-transitions] .gallery-group .section-heading { text-align: center; flex-shrink: 0; }
.gallery-page[data-program-transitions] .gallery-group .section-heading h2 { font-size: clamp(34px,3vw,48px); }
.gallery-page[data-program-transitions] .gallery-group .section-heading p { font-size: 15px; }
.gallery-page[data-program-transitions] .gallery-image > span { min-width: 36px; min-height: 36px; }
@media(min-width:768px) {
  .gallery-page[data-program-transitions] .catalog-chapter-scene.intro-section { align-items: center; }
  .gallery-page[data-program-transitions] .photo-scene { display: flex; align-items: center; height: var(--catalog-viewport); max-height: var(--catalog-viewport); min-height: 0; }
  .gallery-page[data-program-transitions] .photo-scene-layout { grid-template-columns: .9fr 1.1fr; gap: 24px; }
  .gallery-page[data-program-transitions] .photo-scene > .photo-scene-layout { overflow: visible; max-height: none; }
  /* Fit the whole portrait composition; never shorten just its rows. */
  .gallery-page[data-program-transitions] .photo-showcase { width: min(100%,calc((var(--catalog-viewport) - 220px) * 1.12)); justify-self: end; }
  .gallery-page[data-program-transitions] .photo-stack { aspect-ratio: 1.12; grid-template-rows: repeat(2,minmax(0,1fr)); }
  .gallery-page[data-program-transitions] .photo-print img { position: absolute; inset: 0; }
  .gallery-page[data-program-transitions] .photo-scene h2 { font-size: clamp(48px,4.4vw,72px); }
  .gallery-page[data-program-transitions] .photo-controls { margin-top: 12px; }
}
@media(min-width:1200px) and (min-height:700px) and (max-height:820px) {
  .gallery-page[data-program-transitions] .photo-scene h2 { font-size: 48px; }
  .gallery-page[data-program-transitions] .photo-scene .scene-copy > p { font-size: 15px; }
}

/* Gallery groups are horizontal photo pages, with no nested vertical scroll. */
.gallery-page .gallery-group[data-gallery-carousel] > .container { display: flex; flex-direction: column; }
.gallery-page .gallery-group[data-gallery-carousel] .gallery-grid { min-height: 0; grid-template-rows: minmax(0,1fr); overflow: hidden; }
.gallery-page .gallery-group-controls { flex-shrink: 0; margin-top: 18px; }
.gallery-page[data-program-transitions] .gallery-group[data-gallery-carousel] {
  display: flex; height: var(--catalog-viewport); max-height: var(--catalog-viewport); min-height: 0;
  padding-top: 104px; padding-bottom: 70px; overflow: clip;
}
.gallery-page[data-program-transitions] .gallery-group[data-gallery-carousel] > .container { height: 100%; overflow: visible; }
.gallery-page[data-program-transitions] .gallery-group[data-gallery-carousel] .gallery-grid { flex: 1; }
.gallery-page[data-program-transitions] .gallery-group[data-gallery-carousel] .gallery-image { min-height: 0; }
.gallery-page[data-program-transitions] .gallery-group[data-gallery-carousel] .gallery-image img { width: 100%; height: 100%; object-fit: cover; }
.gallery-page[data-program-transitions] .gallery-group[data-gallery-carousel] .gallery-image { background: transparent; }
@media(max-width:767px) {
  .gallery-page[data-program-transitions] .gallery-group[data-gallery-carousel] { padding-top: 100px; padding-bottom: 66px; }
  .gallery-page[data-program-transitions] .gallery-group[data-gallery-carousel] .section-heading { margin-bottom: 16px; }
  .gallery-page .gallery-group-controls { margin-top: 14px; }
  .gallery-page[data-program-transitions] .photo-scene { display: flex; height: var(--catalog-viewport); max-height: var(--catalog-viewport); min-height: 0; padding-top: 96px; padding-bottom: 66px; }
  .gallery-page[data-program-transitions] .photo-scene > .photo-scene-layout { display: flex; flex-direction: column; justify-content: center; gap: 12px; height: 100%; max-height: none; overflow: visible; }
  .gallery-page[data-program-transitions] .photo-scene .scene-copy { width: 100%; }
  .gallery-page[data-program-transitions] .photo-scene .scene-kicker { margin-bottom: 8px; font-size: 10px; }
  .gallery-page[data-program-transitions] .photo-scene h2 { font-size: 34px; }
  .gallery-page[data-program-transitions] .photo-scene h2 em { margin-top: 4px; }
  .gallery-page[data-program-transitions] .photo-scene .scene-copy > p:not(.scene-kicker) { margin-top: 12px; font-size: 12px; line-height: 1.5; }
  .gallery-page[data-program-transitions] .photo-scene .button-link { min-height: 44px; margin-top: 10px; padding-block: 8px; }
  .gallery-page[data-program-transitions] .photo-showcase { width: min(100%,calc((var(--catalog-viewport) - 450px) * 1.12)); }
  .gallery-page[data-program-transitions] .photo-stack { aspect-ratio: 1.12; grid-template-rows: repeat(2,minmax(0,1fr)); padding: 12px; gap: 10px; }
  .gallery-page[data-program-transitions] .photo-print img { position: absolute; inset: 0; }
  .gallery-page[data-program-transitions] .photo-caption { padding: 6px; bottom: 6px; left: 4px; right: 4px; }
  .gallery-page[data-program-transitions] .photo-caption strong { font-size: 15px; }
  .gallery-page[data-program-transitions] .photo-caption small { font-size: 6px; }
  .gallery-page[data-program-transitions] .photo-controls { margin-top: 8px; }
}
@media(max-width:1199px),(max-height:699px) {
  .gallery-page[data-program-transitions] .gallery-group > .container { width: calc(100% - 40px); }
}
@media(max-width:767px) {
  .gallery-page[data-program-transitions] .gallery-group .section-heading h2 { font-size: 35px; }
  .gallery-page[data-program-transitions] .gallery-group .section-heading p { font-size: 14px; }
  .gallery-page[data-program-transitions] .gallery-image > span { min-width: 44px; min-height: 44px; }
}
