.contacts-gallery-shell { position: relative; }
.contacts-gallery #contactsGallerySwiper { width: 100%; overflow: hidden; }
.contacts-gallery .contacts-gallery-grid { display: flex; grid-template-columns: none; gap: 0; height: auto; overflow: visible; scroll-snap-type: none; }
.contacts-gallery .contacts-gallery-item { width: 100%; flex: 0 0 auto; height: auto; margin: 0; }
.contacts-gallery-shell--count-1 { max-width: 760px; margin-inline: auto; }
.contacts-photo-open { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.contacts-photo-open:focus-visible { outline: 3px solid #111; outline-offset: -4px; }
.contacts-gallery .contacts-gallery-controls { position: absolute; inset: 0; z-index: 4; display: block; pointer-events: none; }
.contacts-gallery .contacts-gallery-controls button { position: absolute; top: 50%; display: flex; align-items: center; justify-content: center; width: 48px; min-width: 48px; height: 48px; min-height: 48px; padding: 0; border: 1px solid rgba(0, 0, 0, .12); border-radius: 50%; background: rgba(255, 255, 255, .94); color: #000; box-shadow: 0 3px 14px rgba(0, 0, 0, .24); transform: translateY(-50%); transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease; pointer-events: auto; }
.contacts-gallery .contacts-gallery-controls button:hover { opacity: 1; box-shadow: 0 5px 18px rgba(0, 0, 0, .3); transform: translateY(-50%) scale(1.06); }
.contacts-gallery .contacts-gallery-controls button:disabled,
.contacts-gallery .contacts-gallery-controls button.swiper-button-disabled,
.contacts-gallery .contacts-gallery-controls button.swiper-button-lock { opacity: 0; pointer-events: none; }
.contacts-gallery .contacts-gallery-controls button:first-child { left: 12px; }
.contacts-gallery .contacts-gallery-controls button:last-child { right: 12px; }
.contacts-gallery .contacts-gallery-controls svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.contacts-gallery .contacts-gallery-progress { display: none; }
.contacts-lightbox { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none; margin: 0; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); border: 0; background: #111; color: #fff; overscroll-behavior: contain; }
.contacts-lightbox[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 12px; }
.contacts-lightbox::backdrop { background: #111; }
.contacts-lightbox-toolbar, .contacts-lightbox-navigation { display: flex; align-items: center; gap: 12px; }
.contacts-lightbox-toolbar { justify-content: flex-end; }
.contacts-lightbox-navigation { justify-content: space-between; }
.contacts-lightbox-navigation span { font-size: 12px; text-align: center; color: #ccc; }
.contacts-lightbox button { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex-shrink: 0; border: 1px solid #666; border-radius: 50%; background: #222; color: #fff; font-size: 24px; line-height: 1; }
.contacts-lightbox button:disabled { opacity: .3; }
.contacts-lightbox button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.contacts-lightbox button svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.contacts-lightbox-stage { width: 100%; height: 100%; min-height: 0; }
.contacts-lightbox-stage img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 767.98px) {
  .contacts-gallery.is-stack .contacts-gallery-shell { max-width: 360px; margin-inline: auto; overflow: hidden; }
  .contacts-gallery.is-stack #contactsGallerySwiper { overflow: hidden; }
  .contacts-gallery.is-stack .contacts-gallery-item { width: 100%; flex: 0 0 100%; }
  .contacts-gallery .contacts-gallery-controls button { width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
  .contacts-gallery .contacts-gallery-controls button:first-child { left: 4px; }
  .contacts-gallery .contacts-gallery-controls button:last-child { right: 4px; }
  .contacts-gallery .contacts-gallery-progress { display: block; margin-top: 10px; }
}
@media (prefers-reduced-motion: reduce) { .contacts-gallery-progress-bar { transition: none; } }
