/* Swipebox: caption and in-page photo viewer styles (moved from main.css) */
#portfolio_page #swipebox-caption {
    color: var(--portfolios-theme-text-main, #ffffff);
    opacity: 0.9;
    font-size: 0.9rem;
    margin-top: 6px;
    transition: 0.2s linear;
}

/* Photo viewer (in-page fullscreen) */
#photo-viewer {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(0,0,0,0.95);
    align-items: center;
    justify-content: center;
    text-align: center;
}
#photo-viewer.open { display: flex; }
#photo-viewer .pv-stage { position: relative; max-width: 100%; width: 100%; height: 100%; display:flex; align-items:center; justify-content:center; }
#photo-viewer .pv-center { padding: 20px; box-sizing: border-box; width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
#photo-viewer .pv-img { max-width: calc(90% - 40px); max-height: calc(80% - 80px); object-fit: contain; box-shadow: 0 8px 30px rgba(0,0,0,0.6); transition: opacity .3s ease, transform .3s ease; border-radius: var(--portfolios-border-radius-m); }
#photo-viewer .pv-controls { position: absolute; width: 100%; top: 0; left:0; display:flex; justify-content:space-between; pointer-events:none; }
#photo-viewer .pv-prev, #photo-viewer .pv-next { pointer-events:auto; background: transparent; border: none; color: #fff; font-size: 3rem; padding: 12px; cursor:pointer; opacity:0.9; }
#photo-viewer .pv-prev.disabled, #photo-viewer .pv-next.disabled { opacity: 0.35; cursor: default; }
#photo-viewer .pv-top { position: absolute; top: 18px; left:18px; right:18px; color: #fff; text-align:left; }
#photo-viewer .pv-close { position: absolute; top: 18px; right: 18px; background:transparent; border:none; font-size: 1.8rem; color:#fff; padding:8px; cursor:pointer; }
#photo-viewer .pv-caption { position: absolute; bottom: 18px; left: 20px; right:20px; color:#fff; text-align:center; padding: 8px 12px; transition: opacity .3s ease; }
#photo-viewer .pv-title { font-weight: 700; font-size: 1.05rem; margin-bottom:6px; color: var(--portfolios-theme-text-main, #fff); }
#photo-viewer .pv-description { font-size: 0.95rem; opacity:0.95; color: var(--portfolios-theme-text-main, #fff); }
#photo-viewer .pv-caption .pv-description { margin-top: 6px; }
#photo-viewer .pv-counter { position: absolute; bottom: 18px; right: 18px; color: #fff; font-size: 0.9rem; }
@media (max-width:700px){ #photo-viewer .pv-img{ max-width: calc(95% - 24px); max-height: calc(70% - 80px); } #photo-viewer .pv-prev, #photo-viewer .pv-next { font-size: 2.4rem; } #photo-viewer .pv-center { padding: 12px; } }

/* Use theme variables and centralized SVG icons */
#photo-viewer .pv-prev,
#photo-viewer .pv-next,
#photo-viewer .pv-close {
    color: var(--portfolios-theme-text-main, #fff);
    background: transparent;
    border: none;
    padding: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

#photo-viewer .pv-prev svg,
#photo-viewer .pv-next svg,
#photo-viewer .pv-close svg {
    width: 1.6rem;
    height: 1.6rem;
    fill: var(--portfolios-theme-text-main, #fff);
}

#photo-viewer .pv-prev.pv-rotate-left svg { transform: rotate(-90deg); }
#photo-viewer .pv-next.pv-rotate-right svg { transform: rotate(90deg); }

#photo-viewer .pv-close { position: absolute; top: 18px; right: 18px; }
#photo-viewer .pv-prev { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); }
#photo-viewer .pv-next { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); }

/* Keyboard & focus styles */
#photo-viewer .pv-close:focus,
#photo-viewer .pv-prev:focus,
#photo-viewer .pv-next:focus {
    outline: 2px solid var(--portfolios-theme-color-border-custom, rgba(255,255,255,0.2));
    outline-offset: 2px;
}