.gg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px;row-gap:32px}
.gg-item{position:relative;display:flex;flex-direction:column;min-width:0;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.gg-thumb{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:#f1f1f1;border-radius:6px;isolation:isolate}
.gg-thumb img,.gg-thumb .gg-cover{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;object-fit:cover;display:block;margin:0;border-radius:0;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.gg-thumb::after{content:"";position:absolute;inset:0;background-color:rgba(0,0,0,.28);opacity:0;transition:opacity .35s ease;pointer-events:none;z-index:1}
.gg-icon{position:absolute;top:50%;left:50%;z-index:2;width:44px;height:44px;margin:-22px 0 0 -22px;color:#fff;opacity:0;transform:scale(.85);transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.gg-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.gg-item:hover .gg-thumb::after,.gg-item:focus-visible .gg-thumb::after{opacity:1}
.gg-item:hover .gg-icon,.gg-item:focus-visible .gg-icon{opacity:1;transform:none}
.gg-zoom-yes .gg-item:hover .gg-thumb img{transform:scale(1.06)}
.gg-item:focus-visible .gg-thumb{outline:2px solid currentColor;outline-offset:3px}
.gg-meta{display:flex;flex-direction:column;gap:2px;margin-top:12px}
.gg-meta .gg-title{margin:0;padding:0;font-size:1.05em;font-weight:600;line-height:1.3}
.gg-count{font-size:.85em;opacity:.65}
.gg-title-overlay .gg-item{overflow:hidden;border-radius:6px}
.gg-title-overlay .gg-meta{position:absolute;left:0;right:0;bottom:0;z-index:3;margin:0;padding:48px 18px 16px;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.65),rgba(0,0,0,0));pointer-events:none}
.gg-title-overlay .gg-meta .gg-title{color:#fff}
.gg-title-overlay .gg-icon{top:42%}
.gg-title-none .gg-meta{display:none}
.gg-empty{padding:24px;border:1px dashed #c5c5c5;text-align:center;color:#777;font-size:14px}
.gg-lock,.gg-lock body{overflow:hidden!important}
.gg-lb{position:fixed;inset:0;z-index:999999;display:flex;flex-direction:column;background:var(--gg-lb-bg,rgba(10,10,10,.95));color:#fff;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s;font-family:inherit;touch-action:pan-y}
.gg-lb.is-open{opacity:1;visibility:visible;transition:opacity .3s ease}
.gg-lb__bar{display:flex;align-items:center;gap:16px;min-height:64px;padding:12px 14px 12px 24px;box-sizing:border-box;flex:0 0 auto}
.gg-lb__title{flex:1;min-width:0;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gg-lb__counter{font-size:14px;opacity:.7;font-variant-numeric:tabular-nums;white-space:nowrap}
.gg-lb__main{position:relative;flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 84px 28px;box-sizing:border-box}
.gg-lb__figure{display:flex;flex-direction:column;align-items:center;margin:0;max-width:100%;max-height:100%;min-height:0}
.gg-lb__img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);object-fit:contain;opacity:0;transform:scale(.985);transition:opacity .3s ease,transform .3s ease;user-select:none;-webkit-user-drag:none}
.gg-lb__img.is-ready{opacity:1;transform:none}
.gg-lb__caption{margin-top:12px;max-width:820px;font-size:14px;line-height:1.5;text-align:center;opacity:.8}
.gg-lb__caption[hidden]{display:none}
.gg-lb__spinner{position:absolute;top:50%;left:50%;width:36px;height:36px;margin:-32px 0 0 -18px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;opacity:0;transition:opacity .2s ease;animation:gg-spin .8s linear infinite;pointer-events:none}
.gg-lb.is-loading .gg-lb__spinner{opacity:1}
@keyframes gg-spin{to{transform:rotate(360deg)}}
html body .gg-lb button.gg-lb__btn,html body .gg-lb button.gg-lb__btn:hover,html body .gg-lb button.gg-lb__btn:focus,html body .gg-lb button.gg-lb__btn:active{-webkit-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;box-shadow:none;text-decoration:none;line-height:1;cursor:pointer;transition:background-color .2s ease;outline:none}
html body .gg-lb button.gg-lb__btn:hover{background:rgba(255,255,255,.18)}
html body .gg-lb button.gg-lb__btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.gg-lb__btn[hidden]{display:none!important}
.gg-lb__btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
html body .gg-lb button.gg-lb__prev,html body .gg-lb button.gg-lb__next{position:absolute;top:calc(50% - 14px);transform:translateY(-50%);z-index:2}
html body .gg-lb button.gg-lb__prev{left:18px}
html body .gg-lb button.gg-lb__next{right:18px}
@media (max-width:767px){
.gg-lb__bar{padding:10px 10px 10px 18px;min-height:58px}
.gg-lb__main{padding:0 0 20px}
.gg-lb__img{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px)}
.gg-lb__caption{padding:0 18px}
html body .gg-lb button.gg-lb__prev,html body .gg-lb button.gg-lb__next{width:40px;height:40px;background:rgba(0,0,0,.4)}
html body .gg-lb button.gg-lb__prev{left:8px}
html body .gg-lb button.gg-lb__next{right:8px}
}
@media (prefers-reduced-motion:reduce){
.gg-thumb img,.gg-thumb::after,.gg-icon,.gg-lb,.gg-lb__img{transition:none}
}
