.gallery-hero{background:var(--cream);padding:64px 0 56px;border-bottom:1px solid var(--line)}
.gallery-hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:center}
.gallery-hero-copy h1{font-size:clamp(48px,6.4vw,88px);margin:.18em 0}
.gallery-hero-copy>p:not(.eyebrow){font-size:19px;max-width:620px}
.gallery-jump{display:inline-flex;align-items:center;gap:12px;min-height:48px;margin-top:20px;font-weight:900;text-transform:uppercase;text-underline-offset:5px}
.gallery-jump span{font-size:24px;color:var(--coral)}
.gallery-estimate .quick-estimate-card{max-width:620px;margin-left:auto;background:var(--paper)}
.gallery-heading{align-items:end}
.gallery-section{background:var(--paper)}
.moving-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:18px}
.gallery-item{margin:0;min-width:0}
.gallery-item-wide{grid-column:span 2}
.gallery-open{display:block;position:relative;aspect-ratio:4/5;border:0;background:var(--cream);overflow:hidden}
.gallery-item-wide .gallery-open{aspect-ratio:3/2}
.gallery-open::after{content:'View';position:absolute;right:12px;bottom:12px;padding:8px 11px;background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--coral);font-size:12px;font-weight:900;text-transform:uppercase;opacity:0;transform:translateY(6px);transition:.18s ease}
.gallery-open:hover::after,.gallery-open:focus-visible::after{opacity:1;transform:none}
.gallery-open:focus-visible{outline:4px solid var(--coral);outline-offset:4px}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.gallery-open:hover img{transform:scale(1.018)}
.gallery-item figcaption{padding:10px 2px 18px;color:var(--muted);font-size:14px}
.gallery-next .section-head{margin-bottom:0;align-items:center}
.gallery-next h2{max-width:760px}
.gallery-next p{color:white}
.gallery-dialog{width:min(1180px,calc(100% - 32px));max-height:calc(100vh - 32px);padding:58px 70px 30px;border:0;background:#091c1e;color:white;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.gallery-dialog::backdrop{background:rgba(9,28,30,.88)}
.gallery-dialog figure{margin:0;display:grid;place-items:center;gap:12px}
.gallery-dialog img{max-width:100%;max-height:calc(100vh - 150px);width:auto;height:auto}
.gallery-dialog figcaption{text-align:center;color:white}
.gallery-close,.gallery-prev,.gallery-next-button{position:absolute;border:2px solid white;background:#091c1e;color:white;font:900 15px var(--body);cursor:pointer;min-width:44px;min-height:44px}
.gallery-close{right:14px;top:12px;padding:0 16px;text-transform:uppercase}
.gallery-prev,.gallery-next-button{top:50%;transform:translateY(-50%);font-size:25px}
.gallery-prev{left:12px}.gallery-next-button{right:12px}
.gallery-close:focus-visible,.gallery-prev:focus-visible,.gallery-next-button:focus-visible{outline:4px solid var(--mint);outline-offset:3px}
@media(max-width:900px){.gallery-hero-grid{grid-template-columns:1fr;gap:34px}.gallery-estimate .quick-estimate-card{margin:0}.moving-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.gallery-hero{padding:38px 0}.gallery-hero-copy h1{font-size:43px}.gallery-hero-copy>p:not(.eyebrow){font-size:17px}.moving-gallery{gap:10px}.gallery-item-wide{grid-column:span 2}.gallery-item figcaption{font-size:12px;line-height:1.4;padding-bottom:12px}.gallery-dialog{padding:58px 14px 70px}.gallery-prev,.gallery-next-button{top:auto;bottom:12px;transform:none}.gallery-prev{left:calc(50% - 54px)}.gallery-next-button{right:calc(50% - 54px)}}
@media(prefers-reduced-motion:reduce){.gallery-open::after,.gallery-item img{transition:none}}
