/**
 * Windows High Contrast / forced-colors support
 *
 * High contrast mode disables background images, box-shadow, and many
 * author colors. Non-decorative UI that is drawn with CSS must fall back
 * to system colors so it stays visible.
 */

@media (forced-colors: active) {
    /* ---- Keyboard focus ---- */
    a:focus-visible,
    button:focus-visible,
    [role="button"]:focus-visible,
    [tabindex]:focus-visible,
    .swiper-button-prev:focus-visible,
    .swiper-button-next:focus-visible,
    .wp-element-button:focus-visible,
    .wp-block-falcon-button .wp-element-button:focus,
    .wp-block-falcon-button .wp-element-button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
        outline: 3px solid Highlight !important;
        outline-offset: 3px !important;
        --outline-color: Highlight;
    }

    /* ---- Form controls ---- */
    input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="checkbox"]):not([type="radio"]),
    select,
    textarea {
        border: 1px solid ButtonText !important;
        background-color: Field !important;
        color: FieldText !important;
        outline-color: Highlight;
    }

    input[type="checkbox"],
    input[type="radio"] {
        appearance: auto !important;
        -webkit-appearance: auto !important;
        border: 1px solid ButtonText !important;
        background-color: Field !important;
        outline: 1px solid ButtonText;
        width: 1.15em;
        height: 1.15em;
    }

    input[type="submit"],
    input[type="button"],
    button:not(:disabled) {
        border: 1px solid ButtonText;
        color: ButtonText;
    }

    /* ---- Buttons whose label is CSS-generated (content: attr()) ---- */
    .wp-block-falcon-button .wp-element-button,
    .wp-block-falcon-button .wp-element-button .text,
    .wp-block-falcon-button .wp-element-button .text::before,
    .wp-block-falcon-button .wp-element-button .text::after {
        color: ButtonText !important;
        border-color: ButtonText;
    }

    .wp-block-falcon-button .wp-element-button {
        border: 1px solid ButtonText !important;
        background: ButtonFace !important;
        color: ButtonText !important;
    }

    .wp-block-falcon-button .wp-element-button svg path,
    .wp-block-falcon-button .wp-element-button svg line {
        fill: ButtonText !important;
        stroke: ButtonText !important;
    }

    /* Newsletter footer submit: text is hidden; icon is a CSS background SVG */
    .newsletter .wp-element-button .wp-element-button__inner .text {
        display: inline-flex !important;
        color: ButtonText !important;
    }

    .newsletter .wp-element-button .icon {
        background: none !important;
        width: 8px !important;
        height: 8px !important;
        border-top: 2px solid ButtonText;
        border-right: 2px solid ButtonText;
        transform: rotate(45deg);
    }

    /* Gravity Forms select chevron (CSS background-image) */
    .ginput_container_select::after {
        background-image: none !important;
        background-color: transparent !important;
        width: 8px !important;
        height: 8px !important;
        border: 0;
        border-right: 2px solid ButtonText;
        border-bottom: 2px solid ButtonText;
        transform: translateY(-70%) rotate(45deg);
    }

    .gform_wrapper .gfield .ginput_container input,
    .gform_wrapper .gfield .ginput_container select,
    .gform_wrapper .gfield .ginput_container textarea {
        border: 1px solid ButtonText !important;
        background: Field !important;
        color: FieldText !important;
    }

    .gform_wrapper .gfield .ginput_container input:focus,
    .gform_wrapper .gfield .ginput_container select:focus,
    .gform_wrapper .gfield .ginput_container textarea:focus {
        outline: 3px solid Highlight !important;
        outline-offset: 2px !important;
        border-color: Highlight !important;
    }

    .gform_wrapper .wp-element-button:focus,
    .gform_wrapper .wp-element-button:focus-visible {
        outline: 3px solid Highlight !important;
        outline-offset: 3px !important;
    }

    /* ---- Search: submit control is a CSS background-image icon ---- */
    .wp-block-falcon-menu-search .searchform input[type="text"],
    .wp-block-falcon-menu-search .no-results-search input[type="text"] {
        border: 1px solid ButtonText !important;
        background: Field !important;
        color: FieldText !important;
        outline: none;
    }

    .wp-block-falcon-menu-search .searchform input[type="text"]:focus-visible,
    .wp-block-falcon-menu-search .no-results-search input[type="text"]:focus-visible {
        outline: 3px solid Highlight !important;
        outline-offset: 2px !important;
    }

    .wp-block-falcon-menu-search .searchform input[type="submit"],
    .wp-block-falcon-menu-search .no-results-search button[type="submit"] {
        background-image: none !important;
        text-indent: 0 !important;
        overflow: visible !important;
        width: auto !important;
        height: auto !important;
        font-size: 14px !important;
        line-height: 1.2 !important;
        color: ButtonText !important;
        border: 1px solid ButtonText !important;
        padding: 4px 8px !important;
        background-color: ButtonFace !important;
    }

    .wp-block-falcon-menu-search svg path,
    .wp-block-falcon-menu-search svg line {
        fill: CanvasText !important;
        stroke: CanvasText !important;
    }

    /* ---- Hamburger: bars are background-color only ---- */
    .wp-block-falcon-hamburger-menu .burger .bar {
        background-color: CanvasText !important;
        border: 1px solid CanvasText;
    }

    /* ---- Navigation SVGs (chevrons, logos used as UI) ---- */
    .wp-block-falcon-mega-menu > .link svg path {
        stroke: CanvasText !important;
        fill: none !important;
    }

    /* ---- Video / lightbox controls ---- */
    .wp-block-falcon-video .open-light-box:focus-visible,
    .wp-block-falcon-video .close-lightbox:focus-visible {
        outline: 3px solid Highlight !important;
        outline-offset: 3px !important;
    }

    .wp-block-falcon-video .open-light-box span,
    .wp-block-falcon-video .close-lightbox span {
        border: 1px solid CanvasText;
        background: Canvas !important;
    }

    .wp-block-falcon-video svg path,
    .wp-block-falcon-video svg line {
        stroke: CanvasText !important;
        fill: CanvasText !important;
    }

    /* ---- Informational images stay visible; CSS decorative bg images may hide ---- */
    img {
        forced-color-adjust: none;
    }

    /* Inline UI icons should follow system text color */
    .wp-block-falcon-linked-card .linked-card__icon,
    .wp-block-falcon-linked-card .linked-card__download svg {
        color: CanvasText !important;
        fill: CanvasText;
        stroke: CanvasText;
    }

    /* Archive filter / dropdown boundaries */
    .wp-block-falcon-post-archive .archive-filters .dropdown-toggle,
    .wp-block-falcon-post-archive .archive-filter-tab ul li button {
        border: 1px solid ButtonText !important;
        color: ButtonText !important;
        background: ButtonFace !important;
    }

    .wp-block-falcon-post-archive .archive-filters .dropdown-toggle:focus-visible,
    .wp-block-falcon-post-archive .archive-filter-tab ul li button:focus-visible {
        outline: 3px solid Highlight !important;
        outline-offset: 2px !important;
    }
}
