@layer components {
    /*! Vendor replacement (Algolia autocomplete): begin. WP Search with Algolia 2.13.0, autocomplete, used subset.
 * Generated by tools/css-audit/vendor-absorb.mjs from docs/phase-4/effect-*.json. Do not edit by hand:
 * change the generator or the evidence and rerun it. Selectors and values are the plugin's own; only
 * declarations that never had an effect are left out (docs/phase-4/effect-algolia.md).
 *   algolia-autocomplete.css: 29 rules, 4 declarations left out
 * Source files (SHA-256; tools/css-audit/vendor-hash-check.mjs compares them with the installed plugin):
 *   algolia-autocomplete.css 79c4176e40710e4b01aba807fd6a4679e8208db518f4186ff9fc1c1ebbb299bf
 */

    /*! Algolia autocomplete: algolia-autocomplete.css */
    .algolia-autocomplete {
        z-index: 999999 !important;
    }

    .aa-dropdown-menu {
        font-family: sans-serif;
        background-color: #fff;
        border-top: none;
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 0 1px rgba(0, 0, 0, .35);
    }

    .aa-dropdown-menu:after {
        content: " ";
        display: block;
        clear: both;
    }

    .aa-dropdown-menu .aa-input,
    .aa-dropdown-menu .aa-hint {
        width: 100%;
    }

    .aa-dropdown-menu .aa-hint {
        color: #999;
    }

    .aa-dropdown-menu {
        color: #1a1a1a;
        font-size: 12px;
    }

    .aa-dropdown-menu a {
        font-size: 12px;
    }

    .aa-dropdown-menu a:hover {
        text-decoration: none;
    }

    .aa-dropdown-menu .autocomplete-header {
        margin: 0 14px;
        line-height: 3em;
        border-bottom: 1px solid rgba(0, 0, 0, .05);
    }

    .aa-dropdown-menu .autocomplete-header-title,
    .aa-dropdown-menu .autocomplete-header-more {
        letter-spacing: 1px;
        text-transform: uppercase;
        font-weight: bold;
    }

    .aa-dropdown-menu .autocomplete-header-title {
        float: left;
    }

    .aa-dropdown-menu .autocomplete-header-more {
        float: right;
    }

    .aa-dropdown-menu .autocomplete-header-more a {
        color: rgba(0, 0, 0, .3);
        font-weight: bold;
    }

    .aa-dropdown-menu .autocomplete-header-more a:hover {
        color: rgba(0, 0, 0, .4);
    }

    .aa-dropdown-menu .aa-suggestion {
        padding: 5px 0;
    }

    .aa-dropdown-menu .aa-suggestion:after {
        visibility: hidden;
        display: block;
        font-size: 0;
        content: " ";
        clear: both;
        height: 0;
    }

    .aa-dropdown-menu .aa-suggestion em {
        color: #174d8c;
        background: rgba(143, 187, 237, .1);
        font-style: normal;
    }

    .aa-dropdown-menu .aa-suggestion .suggestion-post-title {
        font-weight: bold;
        display: block;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
    }

    .aa-dropdown-menu .aa-suggestion .suggestion-post-content {
        color: #63676d;
        display: block;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
    }

    .aa-dropdown-menu .aa-suggestion .suggestion-post-content em {
        padding: 0 0 1px;
        background: inherit;
        box-shadow: inset 0 -2px 0 0 rgba(69, 142, 225, .8);
        color: inherit;
    }

    .aa-dropdown-menu a.suggestion-link {
        display: block;
        padding: 0 14px;
    }

    .aa-dropdown-menu a.suggestion-link.user-suggestion-link {
        line-height: 32px;
    }

    .aa-dropdown-menu a.suggestion-link svg {
        vertical-align: middle;
        fill: rgba(0, 0, 0, .3);
        float: left;
    }

    .aa-dropdown-menu .suggestion-post-thumbnail {
        margin-right: 5px;
        margin-bottom: 5px;
        border-radius: 3px;
        width: 32px;
        height: 32px;
    }

    .aa-dropdown-menu .suggestion-user-thumbnail {
        float: left;
        margin-right: 5px;
        margin-bottom: 5px;
        border-radius: 16px;
        width: 32px;
        height: 32px;
    }

    .aa-dropdown-menu .autocomplete-footer-branding {
        padding: 15px 14px 0;
        float: right;
        color: rgba(0, 0, 0, .3);
        margin-bottom: 7px;
    }

    .aa-dropdown-menu .clear {
        clear: both;
    }

    .autocomplete-empty {
        clear: both;
        padding: 15px;
    }

    .autocomplete-empty .empty-query {
        font-weight: bold;
    }

    /*! Vendor replacement (Algolia autocomplete): end */

    /*! product-shared.min.css: product.min.css rules that other pages also need (prices, form checkbox, Nice Select, marketplace buttons). Copied byte for byte in Phase 2 of the CSS migration (LOAD-01) so product.min.css can load on product pages only. Loaded on every page, just before product.min.css. Temporary duplicate: Phase 4 consolidates these. */

    .tm-epo-required,
    .tm-quantity-alt,
    .ec-configurator__panel .added_to_cart {
        display: none;
    }

    :is(.radio-tab-ul, .radio-tab3-ul) .tmcp-field-wrap,
    :where(.ec-marketplace) .btn,
    .ec-eip-input-block-radio-item,
    .tm-section-link {
        background: var(--ec-clr-surface-muted, rgba(229, 233, 248, 0.1));
        border-radius: 0.25rem;
        color: var(--ec-clr-primary);

        &:not(.tc-active, .ec-eip-input-block-radio-item-active, .currency-offer__show-modal-btn):hover {
            background: hsl(227.37deg 57.58% 93.53% / 30%);

            span {
                color: var(--ec-clr-primary);
            }
        }

        .ec-eip-input-block-radio-item-active {
            background: var(--ec-clr-text-on-action, #fff);
            color: var(--ec-clr-text-on-light, #0e1b28);

            span {
                color: var(--ec-clr-text-on-light, #0e1b28);
            }

            &:hover {
                background: hsl(227.37deg 57.58% 93.53% / 30%);

                span {
                    color: var(--ec-clr-primary);
                }
            }
        }
    }

    .ec-configurator__panel .tm-label,
    .tc-label-text,
    :is(.radio-tab-ul, .radio-tab3-ul),
    .amount {
        /*! Phase 6.10 (D46): the one copy of this rule (product.min.css had a duplicate, removed). `normal` here and `600` in the next rule, both flagged on purpose: the `600` rule beats this one by order, and removing the flags changes the page (Phase 5 evidence). */
        font-weight: normal !important;
    }

    .ec-configurator__panel .tm-label,
    :is(.radio-tab-ul, .radio-tab3-ul) .tc-label-text,
    :is(.radio-tab-ul, .radio-tab3-ul),
    .amount:not(.tc-original-price) {
        /*! Phase 6.10 (D46): the one copy of this rule (product.min.css had a duplicate, removed). It follows the `normal` rule above and must keep its flag to beat it. */
        font-weight: 600 !important;
    }

    .tc-extra-product-options .tc-epo-style-wrapper.square,
    .tc-extra-product-options .tc-epo-style-wrapper .square,
    .woocommerce-form__input-checkbox {
        height: var(--fs-xl);
        flex-shrink: 0;
        width: var(--fs-xl);
    }

    .tc-label,
    .amount:where(:not(.tc-original-price):not(.woocommerce-price-amount):not(.ec-woocommerce-price-amount-mini-cart)) {
        color: var(--ec-clr-primary);
        font-weight: normal;
    }

    /*! Nice Select adapter (Phase 6.2, D35). The one place the theme styles the Nice Select plugin (js/select/js/jquery.nice-select.js,
   started in js/ec-public-main.js): EPO selects and the event dates dropdown. product.min.css carries no copy; this file loads on every
   page before it. Hover and cursor rules stay in interactions.min.css (Phase 7). */
    .nice-select {
        --__ns-bg: var(--ec-clr-surface-muted, rgba(229, 233, 248, 0.1));
        --__ns-radius: 0.25rem;
        --__ns-padding: 1rem 0.75rem;
        --__ns-arrow-size: 5px;
        --__ns-arrow-clr: var(--ec-white);
        background: var(--__ns-bg);
        border-radius: var(--__ns-radius);
        font-size: var(--fs-s);
        padding: var(--__ns-padding);
        position: relative;
        text-align: left;
        white-space: nowrap;
    }

    .nice-select .list {
        display: none;
    }

    .nice-select:after {
        height: var(--__ns-arrow-size);
        border-bottom: 2px solid var(--__ns-arrow-clr);
        border-right: 2px solid var(--__ns-arrow-clr);
        content: "";
        display: block;
        width: var(--__ns-arrow-size);
        right: 12px;
        top: 50%;
        margin-top: -0.25rem;
        pointer-events: none;
        position: absolute;
        transform: rotate(45deg);
        transform-origin: 66% 66%;
        transition: all var(--ec-duration-xs) ease-in-out;
    }

    .nice-select.open:after {
        transform: rotate(-135deg);
        z-index: 4;
    }

    .option {
        list-style: none;
        padding-inline: 0.75rem;
        transition: all var(--ec-duration-xs);
    }

    .wpwp-slider-double,
    .wpwp-slider-single,
    .noui-handle:before,
    .noui-handle:after,
    .noUi-handle:before,
    .noUi-handle:after,
    .tc-extra-product-options .d-none-div,
    .tm-element-ul-select .tc-price-wrap,
    .list .option[data-value=""],
    .outofstock .ec-configurator__price-box,
    :is(.radio-tab-ul, .radio-tab3-ul) .tc-epo-style-wrapper,
    .cart-item-options .tc-value img,
    .ec-configurator__price-box:has(.price:empty),
    .product-type-ec_event :is(.ec-tm-event-region-block, .ec-tm-event-mode-block, .ec-tm-event-bosses-block, .ec-tm-event-run-type-block, .ec-tm-event-class-spec-block, .ec-tm-event-item-drop-guarantee-block, .ec-tm-event-loot-enable-block, .ec-events-hide-block, .ec-tm-event-reserve-tier-tokens, .ec-tm-event-reserve-weapons, .d-none),
    .ec-show-options .ec-product-options__skeleton,
    .single-product:has(.single-product-summary-container-active) .tf-v1-sidetab-button {
        /*! not judged in Phase 5 (it only applies in states the gate does not capture, such as hover or pages it does not visit); review in Phase 6. */
        display: none !important;
    }

    .game-currency .list .option[data-value=""] {
        /*! Phase 6.10 (D46): the one copy of this rule (product.min.css had a duplicate, removed). It beats the `display: none !important` rule for empty Nice Select options above it; removing the flag changes the page (Phase 5 evidence). */
        display: initial !important;
    }

    /*! Orphan rules (foundation check, 2026-10-02). The original theme loaded product.min.css and the EPO plugin stylesheet on every page.
   Phases 2 and 4 limited them to product, cart, checkout and account pages, which dropped these rules from the mini cart (on every page),
   the thank-you Select2 dropdown and the calendar Nice Select list. Copies of the rules, found by tests/scripts/css-orphans.mjs;
   product.min.css and checkout.min.css keep their own copies, and where both load the later file decides, as before. */


}

@layer pages {
    :is(.open .list, .select2-dropdown) {
        --__p-b: 0.5rem;
        --__p-i: 0;
        background-color: var(--ec-clr-surface-dropdown, hsla(203, 26%, 19%, 1));
        border-radius: var(--bottom-rounded);
        border-block-start: 0;
        box-sizing: content-box;
        color: var(--ec-clr-primary);
        display: flex;
        flex-direction: column;
        inline-size: 100%;
        inset-block-start: 100%;
        inset-inline-start: 0;
        margin: 0;
        max-height: 10rem;
        min-height: calc(3rem - var(--__p-b) * 2);
        overflow: clip auto;
        padding: var(--__p-b) 0;
        position: absolute;
        user-select: none;
        z-index: 4;
    }


}

@layer components {
    .select2-dropdown {
        top: 0;
        outline: 1px solid var(--ec-clr-surface-muted, hsla(227, 58%, 94%, 0.1));
    }

    .open .list {
        background: var(--ec-clr-surface-dropdown, hsla(203, 26%, 19%, 1));
        box-shadow: 0 0.5rem 1.25rem 0 hsla(0, 0%, 0%, 0.25);
    }

    /*! EPO cart metadata: tm-epo.min.css (WooCommerce TM Extra Product Options 7.6), used by the mini cart on every page */

    dl.variation.tc-epo-metadata,
    .woocommerce .wc-item-meta {
        word-break: break-word;
    }

    dl.variation.tc-epo-metadata .tc-name,
    dl.variation.tc-epo-metadata .tc-value,
    .woocommerce .wc-item-meta .tc-name .woocommerce .wc-item-meta .tc-value {
        white-space: pre-wrap;
    }

    dl.variation.tc-epo-metadata .tc-hidden-variation {
        margin: 0;
        padding: 0;
        width: 0;
        visibility: hidden;
    }

    .tc-price-in-cart,
    .tc-quantity-in-cart {
        font-size: smaller;
    }

    /*! Orphan rules (Phase 6.8, 2026-10-04). The "Sort by total" switch on the account orders list (woocommerce/myaccount/orders.php) is styled by these rules,
   which the original theme got from product.min.css on every page. Phase 2 limited that file to product pages and the switch became invisible.
   Copies of the rules, found by the logged-in account tests and tests/scripts/css-orphans-account.mjs; product.min.css keeps its own copies (the EPO
   checkbox toggle shares them), and where both load the later file decides, as before. */

    .toggle-input,
    .ec-toggle {
        appearance: none;
        background-color: var(--ec-bg-secondary);
        height: calc(2rem - 1px);
        border-radius: var(--fs-m);
        cursor: pointer;
        display: block;
        width: calc(3rem + 0.1875rem);
        outline: 1px solid var(--ec-white);
        transform: translateY(0);
        transition: var(--ec-duration-xs);

        &:after {
            /*! not judged in Phase 5 (it only applies in states the gate does not capture, such as hover or pages it does not visit); review in Phase 6. */
            background-color: var(--ec-white) !important;
            height: 1.75rem;
            border-radius: 50%;
            content: '';
            /*! not judged in Phase 5 (it only applies in states the gate does not capture, such as hover or pages it does not visit); review in Phase 6. */
            display: block !important;
            /*! not judged in Phase 5 (it only applies in states the gate does not capture, such as hover or pages it does not visit); review in Phase 6. */
            width: 1.75rem !important;
            left: 1px;
            top: 50%;
            /*! not judged in Phase 5 (it only applies in states the gate does not capture, such as hover or pages it does not visit); review in Phase 6. */
            opacity: 1 !important;
            outline: 1px solid transparent;
            outline-offset: 1px;
            position: absolute;
            transform: translate(0%, -50%);
            transition: transform var(--ec-duration-xs) linear;
        }
    }

    .toggle-input:checked,
    .ec-toggle:checked,
    .toggle-input:checked::after,
    .ec-toggle:checked::after,
    .ec-orders-sort__toggle:is(.is-active) :is(.toggle-input, .toggle-input::after),
    .ec-orders-sort__toggle:is(.is-active) :is(.ec-toggle, .ec-toggle::after) {
        background-color: var(--ec-clr-accent);
        outline: 1px solid var(--ec-clr-accent);

        & .tc-label {
            transform: translate(0%, -50%);
        }
    }

    .toggle-input:checked::after,
    .ec-toggle:checked::after,
    .ec-orders-sort__toggle:is(.is-active) .toggle-input::after,
    .ec-orders-sort__toggle:is(.is-active) .ec-toggle::after {
        left: auto;
        right: 0.875rem;
        transform: translate(50%, -50%);
    }

}

.ec-currency-marketplace__form .toggle-checkbox-ul {
    gap: 0.5rem;
}

.ec-modal--dialog,
.ec-currency-offer__offer-modal {
    background-color: var(--ec-bg-site);
    inline-size: min(64rem, calc(100% - 2rem));
    max-block-size: 100%;
    overflow-y: auto;
    padding: 4rem var(--fs-xl);
    scrollbar-gutter: stable;

}

.ec-currency-offer__offer-modal {
    inline-size: 100%;

    /*! 1024 */
    @media screen and (width > 64rem) {
        border: 1px solid hsla(0, 0%, 100%, 0.15);
        border-radius: var(--rounded-corners);
        inline-size: min(64rem, calc(100% - 2rem));
        max-block-size: 95%;
        padding: 5rem 5rem 2rem;
        padding-block-end: calc(5rem - 1.5rem);
    }
}