.gallery-open { overflow: hidden; }
.gallery-modal { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: 24px; }
.gallery-modal[hidden] { display: none; }
.gallery-backdrop { position: absolute; inset: 0; background: #101120b8; backdrop-filter: blur(5px); }
.gallery-panel { position: relative; width: min(1060px, 100%); max-height: min(850px, calc(100vh - 48px)); overflow: auto; background: #fff; border-radius: 18px; padding: 46px; box-shadow: 0 24px 70px #09091666; }
.gallery-panel h2 { font: 800 clamp(30px, 4vw, 46px)/1 Montserrat, sans-serif; margin: 0; letter-spacing: -2px; }
.gallery-description { color: var(--muted); max-width: 630px; line-height: 1.5; margin: 15px 0 28px; }
.gallery-close { position: absolute; right: 18px; top: 16px; border: 0; background: #f0eef8; color: #35276f; border-radius: 50%; width: 38px; height: 38px; font-size: 28px; line-height: 1; cursor: pointer; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.gallery-item { margin: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 5px 18px #1b17480d; }
.gallery-item img { display: block; width: 100%; height: 215px; object-fit: contain; background: #f8f8fb; }
.gallery-item p { margin: 0; padding: 12px 13px; font: 700 13px Montserrat, sans-serif; color: #353643; }
.gallery-empty { grid-column: 1 / -1; text-align: center; padding: 46px 20px; background: var(--bg); border-radius: 12px; color: var(--muted); }
.gallery-whatsapp { background: #25d366; color: #fff; margin-top: 28px; }
@media (max-width: 800px) { .gallery-panel { padding: 36px 20px 24px; border-radius: 14px; } .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } .gallery-item img { height: 170px; } }
@media (max-width: 430px) { .gallery-grid { grid-template-columns: 1fr; } .gallery-item img { height: 230px; } }
