/* Vitina House — photo galleries. Justified rows keep every photograph uncropped; rows share one height. */
.gal-intro { padding-bottom: clamp(24px, 4vw, 56px); }
.gal-chap { padding: clamp(56px, 8vw, 120px) 0 0; }
.gal-chap__head { max-width: calc(var(--maxw, 1280px) + 2 * var(--gutter, 24px)); margin: 0 auto clamp(28px, 4vw, 56px); padding: 0 var(--gutter, 24px); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(16px, 5vw, 96px); align-items: end; box-sizing: border-box; }
.gal-chap__title { margin: 14px 0 0; font: 400 clamp(1.9rem, 3.8vw, 3.4rem)/1.05 var(--serif); color: var(--olive-deep, var(--olive)); letter-spacing: -.005em; }
.gal-chap__text { margin: 0; max-width: 34rem; font-size: 1.02rem; line-height: 1.7; color: var(--charcoal); }
.gal-chap__text a { color: var(--bronze-ink); }
.gal-rows { display: grid; gap: clamp(8px, 1.1vw, 16px); padding: 0 clamp(10px, 1.4vw, 20px); }
.gal-row { display: flex; gap: clamp(8px, 1.1vw, 16px); }
.gal-row > a { position: relative; display: block; min-width: 0; overflow: hidden; background: var(--greige); cursor: zoom-in; flex: var(--ar) 1 0; }
.gal-row img { display: block; width: 100%; height: auto; transition: transform 1.2s cubic-bezier(.2,.6,.2,1); }
.gal-row > a:hover img, .gal-row > a:focus-visible img { transform: scale(1.025); }
.gal-row > a:focus-visible { outline: 2px solid var(--bronze-ink); outline-offset: 3px; }
@media (max-width: 640px) {
  .gal-chap__head { grid-template-columns: 1fr; align-items: start; }
  .gal-row--trio { flex-wrap: wrap; }
  .gal-row--trio > a:first-child { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) { .gal-row img { transition: none; } .gal-row > a:hover img { transform: none; } }

/* gateway tiles (hub page) */
.gal-tiles { list-style: none; margin: 0; padding: 0 clamp(10px, 1.4vw, 20px); display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(10px, 1.4vw, 20px); }
.gal-tile { position: relative; display: block; overflow: hidden; color: #FAF9F5; text-decoration: none; aspect-ratio: 4/3; background: var(--greige); }
.gal-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.2,.6,.2,1); }
.gal-tile:hover img, .gal-tile:focus-visible img { transform: scale(1.03); }
.gal-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(23,34,28,.62) 0%, rgba(23,34,28,0) 45%); }
.gal-tile__cap { position: absolute; z-index: 1; left: clamp(18px, 2vw, 30px); right: 18px; bottom: clamp(18px, 2vw, 28px); display: grid; gap: 6px; }
.gal-tile__cap b { font: 400 clamp(1.6rem, 2.6vw, 2.4rem)/1.05 var(--serif); }
.gal-tile__cap span { font: 600 .68rem/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; opacity: .9; }
@media (max-width: 760px) { .gal-tiles { grid-template-columns: 1fr; } .gal-tile { aspect-ratio: 3/2; } }

/* lightbox */
.lb { position: fixed; inset: 0; z-index: 1000; display: none; background: rgba(23,34,28,.96); color: #FAF9F5; }
.lb.is-open { display: block; }
.lb__stage { position: absolute; inset: 0 0 64px; display: grid; place-items: center; padding: clamp(12px, 3vw, 48px) clamp(12px, 6vw, 96px) 0; }
.lb__img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; opacity: 0; transition: opacity .35s ease; }
.lb__img.is-ready { opacity: 1; }
.lb__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 clamp(14px, 3vw, 40px); font-size: .9rem; }
.lb__cap { flex: 1; min-width: 0; opacity: .88; line-height: 1.4; }
.lb__count { font: 600 .68rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; opacity: .7; white-space: nowrap; }
.lb__btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 1.6rem; line-height: 1; border-radius: 50%; }
.lb__btn:hover { background: rgba(250,249,245,.12); }
.lb__btn:focus-visible { outline: 2px solid #FAF9F5; outline-offset: 2px; }
.lb__close { top: 12px; right: 12px; }
.lb__prev { left: 8px; top: calc(50% - 56px); }
.lb__next { right: 8px; top: calc(50% - 56px); }
@media (max-width: 640px) { .lb__prev, .lb__next { top: auto; bottom: 8px; } .lb__prev { left: 8px; } .lb__next { right: 8px; } .lb__bar { padding: 0 64px; justify-content: center; text-align: center; } .lb__count { display: none; } }
@media (prefers-reduced-motion: reduce) { .lb__img { transition: none; } }
body.lb-lock { overflow: hidden; }

/* gallery heroes: a firmer veil under the title so text stays legible over busy photographs */
.hero--gal .hero__veil { background: linear-gradient(0deg, rgba(23,34,28,.78) 0%, rgba(23,34,28,.5) 38%, rgba(23,34,28,.12) 70%, rgba(23,34,28,.28) 100%); }
