.gallery-page{background:radial-gradient(circle at 86% 5%, #b994581f, transparent 30rem), linear-gradient(180deg, var(--color-charcoal), var(--color-black) 34rem), var(--color-black)}.gallery-page__portfolio{gap:clamp(1.5rem,3vw,2.5rem);display:grid}.gallery-page__toolbar,.service-page__section-head{gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid #f7f3ea1a;align-items:end;display:grid}.gallery-page__toolbar h2,.service-page__section-head h2{font-size:clamp(2.2rem,5vw,4.8rem)}.gallery-page__toolbar p:not(.eyebrow){color:#f7f3eaad;max-width:36rem;line-height:1.7}.gallery-filters{overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:.55rem;width:100%;min-width:0;max-width:100%;padding:.25rem 1.5rem .55rem .15rem;scroll-padding-inline:.15rem 1.5rem;display:flex;overflow-x:auto}.gallery-filters::-webkit-scrollbar{display:none}.gallery-filter{border-radius:var(--radius-pill);color:#f7f3eac7;letter-spacing:.06em;text-transform:uppercase;scroll-snap-align:start;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:2.65rem;transition:border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);background:#f7f3ea09;border:1px solid #f7f3ea1f;flex:none;align-items:center;padding:.65rem .9rem;font-size:.78rem;font-weight:800;text-decoration:none;display:inline-flex}.gallery-filter:focus-visible{border-color:var(--color-gold-light);outline:2px solid var(--color-focus);outline-offset:2px;background:#c6a15b24}.gallery-card a:focus-visible{outline:2px solid var(--color-focus);outline-offset:-3px}.gallery-filter:hover,.gallery-filter.is-active{color:var(--color-gold-light);background:#c6a15b1f;border-color:#e2c98d75;transform:translateY(-1px)}.gallery-grid{grid-auto-flow:dense;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.75rem,1.6vw,1.2rem);display:grid}.gallery-card--landscape{grid-column:span 2}.gallery-card{background:var(--color-charcoal);border-radius:var(--radius-lg);min-height:16rem;box-shadow:0 .8rem 2.2rem #05040329}.gallery-card[hidden]{display:none}.gallery-card a{height:100%;min-height:inherit;border-radius:inherit;color:var(--color-ivory);text-decoration:none;display:block;position:relative;overflow:hidden}.gallery-card img{width:100%;height:100%;min-height:inherit;object-fit:cover;transition:opacity var(--transition-medium), transform var(--transition-medium)}.gallery-card:hover img,.gallery-card:focus-within img{opacity:.9;transform:scale(1.025)}.gallery-card__meta{background:linear-gradient(#0000,#080807c7);gap:.2rem;padding:4rem 1.15rem 1.15rem;display:grid;position:absolute;bottom:0;left:0;right:0}.gallery-lightbox{width:100%;max-width:none;height:100dvh;max-height:none;color:var(--color-ivory);background:0 0;border:0;margin:0;padding:0;overflow:hidden}.gallery-lightbox::backdrop{backdrop-filter:blur(8px);background:#080706eb}.gallery-lightbox__frame{place-items:center;width:100%;min-height:100dvh;padding:clamp(4rem,8vh,5.5rem) clamp(3.5rem,7vw,7rem) clamp(1.25rem,4vh,2.5rem);display:grid;position:relative}.gallery-lightbox__figure{justify-items:center;gap:.75rem;width:fit-content;max-width:min(90vw,78rem);max-height:calc(100dvh - 6.5rem);margin:0;display:grid}.gallery-lightbox__figure img{object-fit:contain;border-radius:var(--radius-sm);width:auto;max-width:min(90vw,78rem);max-height:calc(100dvh - 9rem);box-shadow:0 1.5rem 4rem #00000080}.gallery-lightbox__figure figcaption{color:#f7f3eac2;font-family:var(--font-display);text-align:center;font-size:clamp(1rem,1.6vw,1.3rem);line-height:1.35}.gallery-lightbox button{border-radius:var(--radius-pill);width:3rem;height:3rem;color:var(--color-ivory);cursor:pointer;backdrop-filter:blur(10px);transition:color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);background:#181512e0;border:1px solid #f7f3ea33;place-items:center;font-size:1.5rem;line-height:1;display:grid;box-shadow:0 .7rem 2rem #00000047}.gallery-lightbox button:hover,.gallery-lightbox button:focus-visible{border-color:var(--color-gold-light);background:var(--color-charcoal-soft);color:var(--color-gold-light)}.gallery-lightbox__close{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));position:fixed}.gallery-lightbox__previous,.gallery-lightbox__next{position:fixed;top:50%;transform:translateY(-50%)}.gallery-lightbox__previous{left:max(1rem, env(safe-area-inset-left))}.gallery-lightbox__next{right:max(1rem, env(safe-area-inset-right))}@media (width<=40rem){.gallery-lightbox__frame{padding:4.25rem .75rem 5rem}.gallery-lightbox__figure,.gallery-lightbox__figure img{max-width:calc(100vw - 1.5rem)}.gallery-lightbox__figure img{max-height:calc(100dvh - 10rem)}.gallery-lightbox__previous,.gallery-lightbox__next{top:auto;bottom:max(.75rem, env(safe-area-inset-bottom));transform:none}}@media (width<=47.99rem){.gallery-page__portfolio{gap:1.25rem}.gallery-page__toolbar h2,.service-page__section-head h2{font-size:clamp(1.9rem,8.6vw,2.65rem)}.gallery-grid{gap:.65rem}.gallery-card{border-radius:var(--radius-md);min-height:14.5rem}.gallery-card__meta{padding:3rem .75rem .75rem}}.gallery-card__meta span{color:var(--color-gold-light);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:800}.gallery-card__meta strong{color:var(--color-ivory);font-family:var(--font-display);font-size:clamp(1.35rem,2.4vw,2rem);line-height:1}@media (width<=47.99rem){.gallery-card__meta span{letter-spacing:.08em;font-size:.58rem}.gallery-card__meta strong{font-size:clamp(1.05rem,5vw,1.35rem)}}.gallery-load-more{justify-items:center;gap:var(--space-3);padding-top:clamp(1rem,3vw,2rem);display:grid}.gallery-load-more[hidden]{display:none}.gallery-load-more p{color:#f7f3ea94;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}@media (width>=48rem){.gallery-page__toolbar,.service-page__section-head{grid-template-columns:minmax(0,1fr) minmax(18rem,.55fr)}.gallery-card--landscape{grid-column:span 2}.gallery-filters{flex-wrap:wrap;overflow:visible}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-card--portrait{min-height:30rem}}@media (width>=78rem){.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-card--portrait:nth-child(6n+1),.gallery-card--portrait:nth-child(6n+4){min-height:36rem}}@media (prefers-reduced-motion:reduce){.gallery-card img,.gallery-filter{transition:none}}
