.gallery-image { cursor: zoom-in; }
.gallery { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; border: 0; padding: 0; background: rgba(8,12,10,.96); color: #fff; }
.gallery::backdrop { background: rgba(8,12,10,.96); }
.gallery[open] { display: grid; grid-template-columns: 64px 1fr 64px; grid-template-rows: 1fr auto; align-items: center; }
.gallery img { grid-column: 2; max-width: 100%; max-height: calc(100vh - 80px); margin: auto; object-fit: contain; }
.gallery button { position: relative; z-index: 2; border: 0; background: rgba(255,255,255,.12); color: #fff; font-size: 42px; }
.gallery-close { position: absolute !important; right: 18px; top: 18px; width: 50px; height: 50px; }
.gallery-prev { grid-column: 1; grid-row: 1; }
.gallery-next { grid-column: 3; grid-row: 1; }
.gallery p { grid-column: 1/4; text-align: center; margin: 0 20px 20px; }
.map-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 18px; }
.map-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.map-card iframe { width: 100%; height: 240px; border: 0; }
.map-card div { display: grid; gap: 5px; padding: 14px; }
.map-card small { color: var(--muted); }
.toast { position: fixed; left: 50%; bottom: 30px; z-index: 20; width: max-content; max-width: calc(100vw - 32px); transform: translate(-50%,20px); padding: 11px 16px; border-radius: 9px; background: #17241f; color: #fff; text-align: center; opacity: 0; pointer-events: none; transition: .2s; }
.toast.show { opacity: 1; transform: translate(-50%,0); }
.block-card select { width: 100%; border: 1px solid #c9cbc6; border-radius: 9px; padding: 11px 12px; background: #fff; color: var(--ink); font: inherit; }
.share-link.has-thumbnail { display: grid; grid-template-columns: 72px 1fr auto; gap: 14px; padding: 10px; }
.share-link img { width: 72px; height: 56px; object-fit: cover; border-radius: 7px; background: #fff; }

@media (max-width: 760px) {
  .gallery[open] { grid-template-columns: 48px 1fr 48px; }
  .gallery button { font-size: 32px; padding: 8px; }
}
