.gallery-page main { position: relative; isolation: isolate; overflow: hidden; background: #111a17; }
.gallery-page main::before { content: ''; position: absolute; inset: 0 0 auto; z-index: -1; aspect-ratio: 1586 / 992; pointer-events: none; background: url("../img/gallery-technical-background.84c11c4e50f0.webp") center top / 100% auto no-repeat; mask-image: linear-gradient(to bottom, #000 0%, #000 55%, transparent 100%); }
.gallery-page .gallery-heading { padding: 45px 0 16px; background: transparent; }
.gallery-page .gallery-heading h1 { margin: 12px 0 12px; color: #fff; font: 700 40px/1.15 Arial, sans-serif; }
.gallery-page .gallery-heading p { color: #d6e0d8; }
.gallery-page .gallery-heading .eyebrow { color: #eea184; }
.gallery-page .gallery-section { padding: 20px 0 64px; }
.gallery-page .public-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: start; }
.gallery-page .public-gallery figure { min-width: 0; max-width: 100%; padding: 12px; overflow: hidden; border: 1px solid #d96542; border-radius: 8px; background: #fafaf8; transition: box-shadow 180ms ease, border-color 180ms ease; }
@media (hover: hover) { .gallery-page .public-gallery figure:hover { border-color: #b94e30; box-shadow: 0 5px 16px rgba(0,0,0,.18); } }
.gallery-page .public-gallery figure a { position: relative; display: block; overflow: hidden; border-radius: 8px; background: #29332d; }
.gallery-page .public-gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
.gallery-page .public-gallery figcaption { display: grid; justify-items: start; gap: 8px; padding: 12px 2px 3px; color: #25302a; font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.gallery-page .public-gallery figcaption strong { font-size: 15px; }
.gallery-page .public-gallery figcaption span { padding: 3px 9px; border-radius: 8px; background: #f8e2d8; color: #973d24; font-size: 11px; font-weight: 700; }
.gallery-view-icon { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(20,27,23,.8); color: #fff; }
.gallery-view-icon svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.gallery-page .public-gallery a:focus-visible { outline: 3px solid #ed9c7f; outline-offset: -5px; }
.gallery-page .gallery-empty { max-width: 420px; padding: 26px; border: 1px solid #d96542; border-radius: 8px; background: #fafaf8; color: #25302a; }
.gallery-page .gallery-empty span { color: #a7472c; }
.gallery-page .gallery-empty h2 { margin: 12px 0 18px; font-size: 23px; line-height: 1.3; }
.gallery-page .gallery-empty .home-text-link { color: #a7472c; }
.gallery-page .work-dialog__inner > img { object-fit: contain; }
.gallery-page .work-dialog button:focus-visible { outline: 3px solid #ed9c7f; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .gallery-page .public-gallery figure { transition: none; } }
@media (max-width: 800px) { .gallery-page .public-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) {
    .gallery-page main::before { aspect-ratio: auto; height: 650px; background-size: auto 650px; background-position: 40% top; opacity: .65; }
    .gallery-page .gallery-heading { padding: 34px 0 14px; }
    .gallery-page .gallery-heading h1 { font-size: 32px; }
    .gallery-page .gallery-section { padding: 14px 0 44px; }
    .gallery-page .public-gallery { grid-template-columns: 1fr; gap: 14px; }
}
