/**
 * Lightbox Accessibility Styles
 * 
 * WCAG 2.2 Level AA compliant styles for Magnific Popup lightbox:
 * - Visible focus indicators (2.4.7 Focus Visible)
 * - High contrast focus styles
 * - Screen reader only content
 */

/* Screen reader only class for live region announcements */
.bfl-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Magnific Popup - Focus indicators for lightbox controls */

/* Close button focus */
.mfp-close:focus,
.mfp-close:focus-visible {
    outline: 3px solid #e57200;
    outline-offset: 2px;
    background-color: rgba(0, 102, 204, 0.1);
}

/* Navigation arrows focus */
.mfp-arrow:focus,
.mfp-arrow:focus-visible,
.mfp-arrow-left:focus,
.mfp-arrow-left:focus-visible,
.mfp-arrow-right:focus,
.mfp-arrow-right:focus-visible {
    outline: 3px solid #e57200;
    outline-offset: 2px;
    background-color: rgba(0, 102, 204, 0.1);
}

/* Lightbox container focus (when first opened) */
.mfp-container:focus {
    outline: none; /* Container itself doesn't need visible focus */
}

/* Image focus within lightbox */
.mfp-img:focus,
.mfp-img:focus-visible {
    outline: 3px solid #e57200;
    outline-offset: 4px;
}

/* Lightbox trigger links focus */
.bfl-lightbox-trigger:focus,
.bfl-lightbox-trigger:focus-visible,
a[href="#lightbox"]:focus,
a[href="#lightbox"]:focus-visible,
[data-magnific]:focus,
[data-magnific]:focus-visible {
    outline: 3px solid #e57200;
    outline-offset: 2px;
}

/* PhotoBlocks gallery link focus */
.pb-link:focus,
.pb-link:focus-visible {
    outline: 3px solid #e57200;
    outline-offset: 2px;
}

/* Hide duplicate PhotoBlocks links from keyboard navigation */
.pb-link[aria-hidden="true"] {
    pointer-events: none;
}

.pb-link[aria-hidden="true"]:focus,
.pb-link[aria-hidden="true"]:focus-visible {
    outline: none;
}

/* PhotoBlocks gallery block focus - match hover effect */
.pb-block:focus-within,
.pb-block:has(.pb-link:focus),
.pb-block:has(.pb-link:focus-visible) {
    box-shadow: 0 0 0 3px #e57200, 0 0 20px rgba(229,114,0, 0.8);
    transform: scale(1.02);
    z-index: 10;
}

/* PhotoBlocks gallery - ensure overlay is visible on focus */
.pb-block:focus-within .pb-overlay,
.pb-block:has(.pb-link:focus) .pb-overlay,
.pb-block:has(.pb-link:focus-visible) .pb-overlay {
    opacity: 1;
}

/* PhotoBlocks specific gallery ID focus styles */
#photoblocks-2 .pb-block:focus-within,
#photoblocks-2 .pb-block:has(.pb-link:focus),
#photoblocks-2 .pb-block:has(.pb-link:focus-visible) {
    box-shadow: 0 0 0 3px #e57200, rgba(229,114,0, 0.8) 0 0 25px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .mfp-close:focus,
    .mfp-close:focus-visible,
    .mfp-arrow:focus,
    .mfp-arrow:focus-visible,
    .mfp-arrow-left:focus,
    .mfp-arrow-left:focus-visible,
    .mfp-arrow-right:focus,
    .mfp-arrow-right:focus-visible,
    .mfp-img:focus,
    .mfp-img:focus-visible,
    .bfl-lightbox-trigger:focus,
    .bfl-lightbox-trigger:focus-visible,
    a[href="#lightbox"]:focus,
    a[href="#lightbox"]:focus-visible,
    [data-magnific]:focus,
    [data-magnific]:focus-visible,
    .pb-link:focus,
    .pb-link:focus-visible {
        outline-width: 4px;
        outline-color: currentColor;
    }

    .pb-block:focus-within,
    .pb-block:has(.pb-link:focus),
    .pb-block:has(.pb-link:focus-visible) {
        box-shadow: 0 0 0 4px currentColor, 0 0 25px currentColor;
    }
}

/* Ensure lightbox controls are keyboard accessible */
.mfp-close,
.mfp-arrow,
.mfp-arrow-left,
.mfp-arrow-right {
    cursor: pointer;
}

/* Improve visibility of navigation arrows */
.mfp-arrow-left,
.mfp-arrow-right {
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

.mfp-arrow-left:hover,
.mfp-arrow-left:focus,
.mfp-arrow-right:hover,
.mfp-arrow-right:focus {
    opacity: 1;
}

/* Ensure lightbox has proper z-index for focus trap */
.mfp-wrap {
    z-index: 1045;
}

.mfp-bg {
    z-index: 1044;
}

/* Improve close button visibility */
.mfp-close {
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

.mfp-close:hover,
.mfp-close:focus {
    opacity: 1;
}

/* Ensure proper color contrast for lightbox controls */
.mfp-close,
.mfp-arrow-left,
.mfp-arrow-right {
    color: #fff;
    background-color: rgba(0, 0, 0, 0.5);
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .mfp-arrow-left,
    .mfp-arrow-right,
    .mfp-close {
        transition: none;
    }

    .pb-block:focus-within,
    .pb-block:has(.pb-link:focus),
    .pb-block:has(.pb-link:focus-visible) {
        transform: none;
        transition: none;
    }
}

/* Fallback for browsers without :has() support */
@supports not selector(:has(*)) {
    /* Use :focus-within as fallback */
    .pb-block:focus-within {
        box-shadow: 0 0 0 3px #e57200, 0 0 20px rgba(229,114,0, 0.8);
        transform: scale(1.02);
        z-index: 10;
    }

    #photoblocks-2 .pb-block:focus-within {
        box-shadow: 0 0 0 3px #e57200, rgba(229,114,0, 0.8) 0 0 25px;
    }
}


.page-id-2228  button.mfp-close {
    width: 2rem !important;
    height: 2rem !important;
    opacity: 1 !important;
    color: #fff !important;
    right: 0 !important;
    top: 40px !important;
    padding: 0 !important;
    display: flex;
    font-size: 20px !important;
    justify-content: center;
    align-items: center;
}
.page-id-2228  button.mfp-close:hover {
    color: #000 !important;
}
.page-id-2228  button.mfp-close:focus {
    background: #e57200 !important;
    color: #000 !important;
}
.page-id-2228 button.mfp-close:before {
    content: '' !important;
}