.gallery-page { padding-top: 78px; }
.gallery-intro { padding: clamp(5rem, 10vw, 9rem) 6vw 5rem; background: var(--page); }
.gallery-intro h1 { max-width: 980px; }
.gallery-intro > p:not(.product-status) { max-width: 650px; margin: 2rem 0; color: var(--text-soft); font-size: 1.08rem; line-height: 1.7; }
.gallery-shell { padding: 2rem 6vw 8rem; background: var(--surface); }
.gallery-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.gallery-heading h2 { font-size: clamp(2rem, 4vw, 4rem); }
.gallery-heading p { color: var(--text-soft); }
.photo-grid { columns: 3 280px; column-gap: 1rem; }
.photo-card { display: block; width: 100%; margin: 0 0 1rem; padding: 0; overflow: hidden; break-inside: avoid; border: 0; border-radius: 1rem; background: var(--page); cursor: zoom-in; }
.photo-card picture { display: block; width: 100%; }
.photo-card img { display: block; width: 100%; height: auto; transition: transform 350ms ease, filter 350ms ease; }
.photo-card:hover img { transform: scale(1.025); filter: contrast(1.04); }
.gallery-empty { padding: 3rem; color: var(--text-soft); border: 1px dashed var(--line); border-radius: 1rem; text-align: center; }
.photo-dialog { max-width: min(1100px, 92vw); max-height: 92vh; padding: 0; color: var(--white); border: 0; border-radius: 1rem; background: #11101a; box-shadow: 0 30px 100px rgba(0,0,0,.5); }
.photo-dialog::backdrop { background: rgba(10,9,15,.82); backdrop-filter: blur(8px); }
.photo-dialog img { display: block; max-width: 100%; max-height: 82vh; margin: auto; }
.photo-dialog button { position: absolute; z-index: 2; top: .7rem; right: .7rem; width: 2.5rem; height: 2.5rem; color: #11101a; border: 0; border-radius: 50%; background: #fff; font-size: 1.5rem; cursor: pointer; }
.photo-dialog p { margin: 0; padding: .8rem 1rem; color: rgba(255,255,255,.72); font-size: .82rem; }
@media (max-width: 760px) { .gallery-page { padding-top: 68px; }.gallery-intro { padding: 5rem 1.2rem 3rem; }.gallery-shell { padding: 2rem 1.2rem 5rem; }.gallery-heading { display: block; }.photo-grid { columns: 2 140px; } }
