/* ExpertPulse — Image Preview (lightbox). Loaded on single posts when enabled. */
.ep-lb-zoom { cursor: zoom-in; }
.ep-lb-zoom:focus-visible { outline: 3px solid var(--accent, #ff3366); outline-offset: 3px; }
html.ep-lb-open, html.ep-lb-open body { overflow: hidden; }

.ep-lb { position: fixed; inset: 0; z-index: 100000; display: grid; grid-template-columns: 72px minmax(0, 1fr) 72px; grid-template-rows: 64px minmax(0, 1fr); align-items: center; background: #0b0c10; color: #fff; opacity: 0; transition: opacity .2s ease; -webkit-tap-highlight-color: transparent; }
.ep-lb[hidden] { display: none; }
.ep-lb.is-open { opacity: 1; }

.ep-lb__bar { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 12px 0 24px; }
.ep-lb__count { font: 600 13px/1 var(--font-body, system-ui, sans-serif); letter-spacing: 1px; opacity: .75; }

.ep-lb__btn { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .08); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; transition: background .2s, transform .2s; }
.ep-lb__btn:hover { background: rgba(255, 255, 255, .18); }
.ep-lb__btn:focus-visible { outline: 2px solid var(--accent, #ff3366); outline-offset: 2px; }
.ep-lb__btn[hidden] { display: none; }
.ep-lb__nav { justify-self: center; width: 52px; height: 52px; font-size: 30px; }
.ep-lb__prev { grid-column: 1; grid-row: 2; }
.ep-lb__next { grid-column: 3; grid-row: 2; }

.ep-lb__stage { grid-column: 2; grid-row: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; height: 100%; min-height: 0; margin: 0; padding: 0 0 28px; }
.ep-lb__img { display: block; max-width: 100%; max-height: calc(100vh - 150px); width: auto; height: auto; object-fit: contain; border-radius: 0; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); opacity: 0; transform: scale(.985); transition: opacity .25s ease, transform .25s ease; cursor: zoom-out; }
.ep-lb.is-loaded .ep-lb__img { opacity: 1; transform: none; }
.ep-lb__cap { max-width: 760px; margin: 0; color: rgba(255, 255, 255, .82); font: 400 14px/1.55 var(--font-body, system-ui, sans-serif); text-align: center; }
.ep-lb__cap[hidden] { display: none; }

@media (max-width: 767px) {
	.ep-lb { grid-template-columns: 0 minmax(0, 1fr) 0; }
	.ep-lb__bar { padding: 0 8px 0 16px; }
	.ep-lb__stage { padding: 0 12px 84px; }
	.ep-lb__img { max-height: calc(100vh - 210px); }
	.ep-lb__nav { position: fixed; bottom: 20px; width: 48px; height: 48px; }
	.ep-lb__prev { left: calc(50% - 60px); }
	.ep-lb__next { right: calc(50% - 60px); }
}

@media (prefers-reduced-motion: reduce) {
	.ep-lb, .ep-lb__img { transition: none; }
}
@media print { .ep-lb { display: none !important; } }
