/* Premium Photo & Video Gallery — front end */
.pmg-wrap{font-family:var(--pmg-font,inherit);color:var(--pmg-text);margin:2.5rem 0;box-sizing:border-box;scroll-margin-top:90px;
	--pmg-card-cols:var(--pmg-card-cols-d);--pmg-item-cols:var(--pmg-item-cols-d)}
.pmg-wrap *,.pmg-wrap *::before,.pmg-wrap *::after,.pmg-lb *,.pmg-lb *::before,.pmg-lb *::after{box-sizing:border-box}
.pmg-wrap [hidden],.pmg-lb [hidden]{display:none!important}
.pmg-wrap button{font-family:inherit}

.pmg-title{font-size:var(--pmg-title-size);color:var(--pmg-heading);margin:0 0 1.5rem;font-weight:700;line-height:1.2;position:relative;padding-bottom:.7rem}
.pmg-title::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:4px;border-radius:4px;background:var(--pmg-primary)}
.pmg-empty{color:var(--pmg-muted);margin:1rem 0}

/* Category cards */
.pmg-cards{display:grid;grid-template-columns:repeat(var(--pmg-card-cols),minmax(0,1fr));gap:var(--pmg-gap)}
.pmg-wrap .pmg-card{appearance:none;-webkit-appearance:none;position:relative;display:flex;flex-direction:column;width:100%;margin:0;padding:0;text-align:left;
	background:var(--pmg-card-bg);color:inherit;font:inherit;border:1px solid var(--pmg-border);border-radius:var(--pmg-radius);overflow:hidden;cursor:pointer;
	box-shadow:var(--pmg-shadow);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.pmg-wrap .pmg-card:hover{transform:translateY(-4px);border-color:var(--pmg-primary)}
.pmg-wrap .pmg-card:focus-visible,.pmg-wrap .pmg-item:focus-visible,.pmg-wrap .pmg-more:focus-visible,.pmg-wrap .pmg-back:focus-visible{outline:3px solid var(--pmg-primary);outline-offset:3px}
.pmg-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--pmg-primary);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.pmg-card:hover::after{transform:scaleX(1)}
.pmg-card-media{display:block;position:relative;aspect-ratio:var(--pmg-card-ratio);background:rgba(var(--pmg-primary-rgb),.06);overflow:hidden}
.pmg-wrap .pmg-card-media img{display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:var(--pmg-card-fit);transition:transform .45s ease;-webkit-touch-callout:none}
.pmg-card:hover .pmg-card-media img{transform:scale(1.04)}
.pmg-card-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(var(--pmg-primary-rgb),.45)}
.pmg-card-ph svg{width:56px;height:56px}
.pmg-card-body{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}
.pmg-card-title{font-size:var(--pmg-card-title-size);font-weight:var(--pmg-card-title-weight);color:var(--pmg-heading);line-height:1.3;min-width:0;overflow-wrap:anywhere}
.pmg-card-count{flex:none;font-size:12.5px;font-weight:600;color:var(--pmg-primary);background:rgba(var(--pmg-primary-rgb),.1);padding:4px 11px;border-radius:999px;white-space:nowrap}

/* Category header */
.pmg-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-bottom:22px}
.pmg-wrap .pmg-back{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;gap:8px;margin:0;padding:9px 18px 9px 14px;border:2px solid var(--pmg-primary);background:transparent;color:var(--pmg-primary);
	border-radius:999px;font-size:15px;font-weight:600;line-height:1.2;cursor:pointer;transition:background .2s,color .2s}
.pmg-back svg{width:18px;height:18px}
.pmg-wrap .pmg-back:hover{background:var(--pmg-primary);color:var(--pmg-btn-text)}
.pmg-cat-name{margin:0!important;font-size:calc(var(--pmg-title-size)*.72);color:var(--pmg-heading);line-height:1.2}
.pmg-cat-count{color:var(--pmg-muted);font-size:14px}

/* Photo masonry (no cropping, natural ratios) */
.pmg-masonry{display:flex;align-items:flex-start;gap:var(--pmg-gap)}
.pmg-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:var(--pmg-gap)}
.pmg-wrap .pmg-photo-item{position:relative;display:block;width:100%;border-radius:var(--pmg-radius);overflow:hidden;background:rgba(var(--pmg-primary-rgb),.06);cursor:zoom-in;line-height:0;text-decoration:none}
.pmg-wrap .pmg-photo-item img{display:block;width:100%;height:auto;max-width:100%;margin:0;-webkit-touch-callout:none}
.pmg-zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(var(--pmg-primary-rgb),.45);color:#fff;opacity:0;transition:opacity .25s}
.pmg-zoom svg{width:36px;height:36px}
.pmg-photo-item:hover .pmg-zoom,.pmg-photo-item:focus-visible .pmg-zoom{opacity:1}

/* Video grid */
.pmg-vgrid{display:grid;grid-template-columns:repeat(var(--pmg-item-cols),minmax(0,1fr));gap:var(--pmg-gap)}
.pmg-wrap .pmg-video-item{display:block;background:var(--pmg-card-bg);border:1px solid var(--pmg-border);border-radius:var(--pmg-radius);overflow:hidden;cursor:pointer;text-decoration:none;box-shadow:var(--pmg-shadow);transition:transform .25s,border-color .25s}
.pmg-wrap .pmg-video-item:hover{transform:translateY(-4px);border-color:var(--pmg-primary)}
.pmg-thumb{display:block;position:relative;aspect-ratio:16/9;background:#0b1220;overflow:hidden}
.pmg-wrap .pmg-thumb img,.pmg-wrap .pmg-thumb video{display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:contain;pointer-events:none;-webkit-touch-callout:none}
.pmg-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;display:flex;align-items:center;justify-content:center;
	background:var(--pmg-primary);color:var(--pmg-btn-text);box-shadow:0 6px 22px rgba(0,0,0,.35);transition:transform .25s}
.pmg-play svg{width:28px;height:28px;margin-left:3px}
.pmg-video-item:hover .pmg-play{transform:scale(1.1)}
.pmg-vtitle{display:block;padding:12px 16px 14px;font-weight:600;color:var(--pmg-heading);font-size:16px;line-height:1.35}

/* Load more + loading */
.pmg-more-wrap{text-align:center;margin-top:30px}
.pmg-wrap .pmg-more{appearance:none;-webkit-appearance:none;position:relative;margin:0;border:0;background:var(--pmg-primary);color:var(--pmg-btn-text);padding:14px 38px;border-radius:999px;font-size:16px;font-weight:600;line-height:1.2;cursor:pointer;
	box-shadow:0 8px 20px rgba(var(--pmg-primary-rgb),.3);transition:filter .2s,transform .2s}
.pmg-wrap .pmg-more:hover{filter:brightness(1.12);transform:translateY(-2px)}
.pmg-wrap .pmg-more:disabled{opacity:.75;cursor:progress;transform:none}
.pmg-more.is-loading{color:transparent}
.pmg-more.is-loading::after{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:3px solid rgba(255,255,255,.4);border-top-color:var(--pmg-btn-text);border-radius:50%;animation:pmg-spin .7s linear infinite}
.pmg-loading{display:flex;justify-content:center;padding:40px 0}
.pmg-spinner{width:38px;height:38px;border:4px solid rgba(var(--pmg-primary-rgb),.2);border-top-color:var(--pmg-primary);border-radius:50%;animation:pmg-spin .8s linear infinite}
@keyframes pmg-spin{to{transform:rotate(360deg)}}

/* Lightbox */
html.pmg-lb-open{overflow:hidden}
.pmg-lb{position:fixed;inset:0;z-index:999999;background:var(--pmg-lb-bg);color:#fff;font-family:var(--pmg-font,inherit);animation:pmg-fade .2s ease}
@keyframes pmg-fade{from{opacity:0}to{opacity:1}}
.pmg-lb-top{position:absolute;top:0;left:0;right:0;height:60px;padding:0 14px 0 20px;display:flex;align-items:center;justify-content:space-between;z-index:3}
.pmg-lb-count{font-size:15px;font-weight:600;opacity:.9}
.pmg-lb-actions{display:flex;gap:8px}
.pmg-lb .pmg-lb-btn,.pmg-lb .pmg-lb-nav{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;text-decoration:none;transition:background .2s,transform .2s}
.pmg-lb .pmg-lb-btn{width:44px;height:44px}
.pmg-lb .pmg-lb-btn:hover,.pmg-lb .pmg-lb-nav:hover{background:var(--pmg-primary)}
.pmg-lb .pmg-lb-btn:focus-visible,.pmg-lb .pmg-lb-nav:focus-visible{outline:3px solid #fff;outline-offset:2px}
.pmg-lb-nav{position:absolute;top:50%;width:52px;height:52px;margin-top:-26px!important;z-index:3}
.pmg-lb-prev{left:14px}.pmg-lb-next{right:14px}
.pmg-lb-stage{position:absolute;inset:60px 78px 58px;display:flex;align-items:center;justify-content:center}
.pmg-lb-img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;opacity:0;transition:opacity .25s;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.pmg-lb-img.is-loaded{opacity:1}
.pmg-lb-spin{position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border:4px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:pmg-spin .8s linear infinite}
.pmg-lb-vid{display:block;width:100%;height:100%;object-fit:contain;background:#000;border-radius:6px}
.pmg-lb-embed{width:min(100%,calc((100vh - 130px)*16/9));aspect-ratio:16/9;max-height:100%;background:#000;border-radius:6px;overflow:hidden}
.pmg-lb-embed iframe{display:block;width:100%;height:100%;border:0}
.pmg-lb-cap{position:absolute;left:0;right:0;bottom:0;min-height:58px;padding:14px 84px;text-align:center;font-size:15px;line-height:1.4;opacity:.92}

/* Responsive */
@media (max-width:1024px){
	.pmg-wrap{--pmg-card-cols:var(--pmg-card-cols-t);--pmg-item-cols:var(--pmg-item-cols-t)}
}
@media (max-width:640px){
	.pmg-wrap{--pmg-card-cols:var(--pmg-card-cols-m);--pmg-item-cols:var(--pmg-item-cols-m);margin:1.75rem 0}
	.pmg-wrap{--pmg-gap:12px}
	.pmg-title{font-size:calc(var(--pmg-title-size)*.8)}
	.pmg-play{width:54px;height:54px;margin:-27px 0 0 -27px}
	.pmg-lb-stage{inset:56px 0 64px}
	.pmg-lb-nav{width:42px;height:42px;margin-top:-21px!important}
	.pmg-lb-prev{left:8px}.pmg-lb-next{right:8px}
	.pmg-lb-cap{padding:12px 16px 14px;font-size:14px}
	.pmg-lb-top{height:56px}
}
@media (prefers-reduced-motion:reduce){
	.pmg-wrap *,.pmg-lb *{transition:none!important;animation-duration:.01ms!important}
}
