.zwh-gallery{margin:2rem 0 2.5rem;width:100%}
.zwh-gallery__title{margin:0 0 1rem;color:#65131d;font-size:clamp(1.35rem,2.2vw,1.8rem)}
.zwh-gallery__grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;width:100%}
.zwh-gallery__item{display:block!important;position:relative;overflow:hidden;border-radius:10px;background:#eee;aspect-ratio:4/3!important;text-decoration:none;box-shadow:0 4px 14px rgba(61,19,26,.08)}
.zwh-gallery__item img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;margin:0!important;border:0!important;transition:transform .18s ease,filter .18s ease}
.zwh-gallery__item:hover img{transform:scale(1.025);filter:brightness(.95)}
.zwh-gallery__item:focus-visible{outline:2px solid #8c2230;outline-offset:3px}
.zwh-gallery-error{padding:.8rem 1rem;border:1px solid rgba(101,19,29,.2);border-radius:10px;background:#fff7f8;color:#65131d}

.zwh-gallery-lightbox[hidden]{display:none!important}
.zwh-gallery-lightbox{position:fixed;inset:0;z-index:100000;display:grid;grid-template-columns:minmax(18px,1fr) minmax(0,calc(100vw - 72px)) minmax(18px,1fr);grid-template-rows:64px minmax(0,1fr) auto;background:rgba(16,10,12,.94);color:#fff;cursor:zoom-out}
.zwh-gallery-lightbox__stage{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:8px;cursor:zoom-out}
.zwh-gallery-lightbox__image{display:block;max-width:100%;max-height:calc(100vh - 132px);width:auto;height:auto;object-fit:contain;box-shadow:0 12px 48px rgba(0,0,0,.32);cursor:default}
.zwh-gallery-lightbox__close{position:absolute;top:12px;right:14px;display:inline-flex;align-items:center;gap:.45rem;min-height:42px;padding:.4rem .75rem;border:0;border-radius:999px;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;font:inherit;font-weight:700}
.zwh-gallery-lightbox__close>span[aria-hidden="true"]{font-size:1.8rem;font-weight:400;line-height:.8}
.zwh-gallery-lightbox__close-label{font-size:.88rem}
.zwh-gallery-lightbox__caption{grid-column:2;grid-row:3;margin:0;padding:10px 16px 16px;text-align:center;color:rgba(255,255,255,.88);font-size:.92rem}
.zwh-gallery-lightbox__close:hover{background:rgba(255,255,255,.18)}
.zwh-gallery-lightbox__close:focus-visible{outline:2px solid #fff;outline-offset:2px}
body.zwh-gallery-lightbox-open{overflow:hidden}

@media(max-width:900px){.zwh-gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:640px){
  .zwh-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .zwh-gallery__item{border-radius:8px}
  .zwh-gallery-lightbox{grid-template-columns:10px minmax(0,1fr) 10px;grid-template-rows:58px minmax(0,1fr) auto}
  .zwh-gallery-lightbox__image{max-height:calc(100vh - 116px)}
  .zwh-gallery-lightbox__close{top:8px;right:8px;padding:.35rem .6rem}
  .zwh-gallery-lightbox__close-label{display:none}
}
