/* Theme lightbox (assets/js/lightbox.js). Navy scrim, centered image,
   caption row, round arrow / close hit-targets. */
.sf-lb {
    position: fixed; inset: 0; z-index: 120;
    display: none;
    align-items: center; justify-content: center;
    background: rgba(15, 20, 26, 0.88);
    padding: 24px;
}
.sf-lb.is-open { display: flex; }
.sf-lb__figure {
    margin: 0; max-width: min(1200px, 92vw); max-height: 88vh;
    display: flex; flex-direction: column; align-items: center; gap: 14px;
}
.sf-lb__img {
    max-width: 100%; max-height: calc(88vh - 48px);
    object-fit: contain; display: block;
}
.sf-lb__caption {
    color: rgba(255, 255, 255, 0.85);
    font-size: 15px; line-height: 1.5; text-align: center;
}
.sf-lb__close,
.sf-lb__nav {
    position: absolute; z-index: 2;
    display: flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; border-radius: 9999px;
    border: 0; cursor: pointer;
    background: rgba(255, 255, 255, 0.12); color: #fff;
    transition: background 0.15s ease;
}
.sf-lb__close:hover,
.sf-lb__nav:hover { background: rgba(255, 255, 255, 0.28); }
.sf-lb__close { top: 20px; right: 20px; padding: 0; }
.sf-lb__close svg { display: block; }
.sf-lb__nav { top: 50%; transform: translateY(-50%); font-size: 20px; }
.sf-lb__nav--prev { left: 16px; }
.sf-lb__nav--next { right: 16px; }
.sf-lb__nav[hidden], .sf-lb__caption[hidden] { display: none; }
@media (max-width: 640px) {
    .sf-lb { padding: 12px; }
    .sf-lb__nav { width: 40px; height: 40px; }
    .sf-lb__nav--prev { left: 8px; }
    .sf-lb__nav--next { right: 8px; }
}
