.gallery-page { padding: clamp(2rem,5vw,4.5rem) 0 clamp(5rem,9vw,8rem); }
.gallery-hero { max-width: 820px; margin: 0 auto clamp(2.6rem,6vw,5rem); text-align: center; }
.gallery-eyebrow { margin: 0 0 .5rem; color: #d97b55; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.gallery-hero h1 { margin: 0 0 .8rem; color: var(--blue-deep); font-size: clamp(2.8rem,6.5vw,5.2rem); line-height: .95; }
.gallery-hero > p:last-child { max-width: 650px; margin: 0 auto; color: var(--muted); line-height: 1.7; }
.gallery-grid { columns: 3 260px; column-gap: 1rem; }
.gallery-card { break-inside: avoid; overflow: hidden; margin: 0 0 1rem; border: 1px solid rgba(18,56,102,.12); border-radius: 14px; background: #fffdf8; box-shadow: 0 10px 26px rgba(18,56,102,.05); }
.gallery-card img { display: block; width: 100%; height: auto; background: #f3efe6; }
.gallery-card figcaption { display: grid; gap: .25rem; padding: .8rem .9rem .9rem; }
.gallery-card figcaption p { margin: 0; color: var(--blue-deep); font-family: 'Cormorant Garamond',serif; font-size: 1.05rem; font-weight: 700; line-height: 1.3; }
.gallery-card figcaption span { color: var(--muted); font-size: .67rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.gallery-empty { break-inside: avoid; border: 1px dashed rgba(18,56,102,.22); border-radius: 16px; padding: clamp(2.4rem,6vw,4.8rem); text-align: center; }
.gallery-empty h2 { margin: 0 0 .55rem; color: var(--blue-deep); font-size: clamp(2rem,4vw,3rem); }
.gallery-empty p { max-width: 540px; margin: 0 auto; color: var(--muted); line-height: 1.65; }
.gallery-load-more { display: grid; justify-items: center; gap: .85rem; margin: clamp(1.8rem,4vw,2.8rem) auto 0; text-align: center; }
.gallery-load-more__count { margin: 0; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.gallery-load-more__button { min-height: 48px; border: 1px solid rgba(18,56,102,.28); border-radius: 7px; background: #fffdf8; box-shadow: 0 4px 0 rgba(190,172,145,.72); color: var(--blue-deep); cursor: pointer; font-family: var(--sans); font-size: .72rem; font-weight: 800; letter-spacing: .09em; padding: .8rem 1.35rem; text-transform: uppercase; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.gallery-load-more__button:hover { background: #f7f1e8; transform: translateY(-1px); box-shadow: 0 5px 0 rgba(190,172,145,.72); }
.gallery-load-more__button:focus-visible { outline: 3px solid rgba(217,123,85,.55); outline-offset: 3px; }
.gallery-load-more__button:active { transform: translateY(2px); box-shadow: 0 2px 0 rgba(190,172,145,.72); }
.gallery-load-more.is-complete { margin-top: 1.2rem; }
.gallery-load-more.is-complete .gallery-load-more__count { color: #7a8795; }
.gallery-cta { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-top: clamp(4rem,8vw,7rem); border-top: 1px solid rgba(18,56,102,.15); padding-top: 2rem; }
.gallery-cta h2 { max-width: 720px; margin: 0; color: var(--blue-deep); font-size: clamp(2rem,4.5vw,3.5rem); line-height: 1; }
.gallery-cta__actions { display: flex; flex: 0 0 auto; align-items: center; gap: 1rem; }
.gallery-events-link { color: var(--blue-deep); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-decoration: none; }
@media (max-width: 760px) { .gallery-cta { align-items: flex-start; flex-direction: column; } .gallery-cta__actions { align-items: flex-start; flex-direction: column; } }
@media (max-width: 560px) { .gallery-page { padding-top: 1.2rem; } .gallery-grid { columns: 1; } .gallery-load-more__button { width: min(100%,320px); } }
