:root {
    --cmmme-a11y-blue: #194f82;
    --cmmme-a11y-blue-dark: #0d3154;
    --cmmme-a11y-teal: #17656a;
    --cmmme-a11y-focus: #ffbf47;
}

/* A floating sales badge must never obscure form or product content. */
.cmmme-google-reviews--floating {
    display: none !important;
}

.footer-shape {
    overflow: hidden;
}

.footer-shape img,
.woocommerce-product-gallery img,
.woocommerce-product-gallery__image a {
    max-width: 100% !important;
    height: auto !important;
}

/* Consistent, high-visibility keyboard focus throughout the legacy theme. */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid var(--cmmme-a11y-focus) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px var(--cmmme-a11y-blue-dark) !important;
}

.wf_mobilenav button,
.wf_navbar-user-item > a,
.wf_navbar-cart-item > a,
#wf_uptop,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    min-width: 44px;
    min-height: 44px;
}

.wf_header .widget .title,
.wf_footer .widget .title {
    margin: 0;
    font: inherit;
    font-weight: 700;
}

/* The configured footer widget columns are empty. Do not preserve dead space. */
.wf_footer_middle {
    display: none !important;
}

.cmmme-footer-links {
    padding: 22px 0;
    border-top: 1px solid rgba(19, 36, 58, .12);
    border-bottom: 1px solid rgba(19, 36, 58, .12);
}

.cmmme-footer-links ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cmmme-footer-links a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    color: var(--cmmme-a11y-blue-dark);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* WooCommerce control states must remain legible before a variation is chosen. */
.woocommerce .single_add_to_cart_button.disabled,
.woocommerce .single_add_to_cart_button:disabled,
.woocommerce .single_add_to_cart_button:disabled[disabled] {
    background: #5b6673 !important;
    color: #fff !important;
    opacity: 1 !important;
}

.woocommerce .reset_variations,
.woocommerce .posted_in a {
    color: #164f7a !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

/* Catalogue cards now use a valid h2 beneath the page h1. */
.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
    margin: 14px 0 8px;
    color: #13243a;
    font-size: 18px;
    line-height: 1.35;
}

.woocommerce ul.products li.product .product-img > a {
    display: block;
}

.woocommerce ul.products li.product .product-img img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

/* Echo Knowledge Base's configured turquoise does not meet text contrast. */
#eckb-article-page-container-v2 .epkb-ml-search-title,
#eckb-article-page-container-v2 .epkb-sidebar__heading__inner__cat-name,
#eckb-article-page-container-v2 .eckb-navigation-button a,
#eckb-article-page-container-v2 .eckb-breadcrumb-link span,
#eckb-article-page-container-v2 span[aria-current="page"],
#eckb-article-page-container-v2 .eckb-toolbar-button-text,
#eckb-article-page-container-v2 .eckb-meta-data-feature-text,
#eckb-article-page-container-v2 .eckb-meta-data-feature-value,
#eckb-article-page-container-v2 .entry-date,
#eckb-article-page-container-v2 .eckb-article-toc__title {
    color: var(--cmmme-a11y-teal) !important;
}

#eckb-article-page-container-v2 .epkb-ml-search-box__btn,
#eckb-article-page-container-v2 .epkb-article-navigation-container a,
#eckb-article-page-container-v2 .eckb-article-title--active,
#eckb-article-page-container-v2 .cmmme-current-kb-article,
#eckb-article-page-container-v2 .epkb-ml-search-box__text {
    background-color: var(--cmmme-a11y-teal) !important;
}

#eckb-article-page-container-v2 .epkb-ml-search-box__btn *,
#eckb-article-page-container-v2 .epkb-article-navigation-container a *,
#eckb-article-page-container-v2 .eckb-article-title--active *,
#eckb-article-page-container-v2 .cmmme-current-kb-article *,
#eckb-article-page-container-v2 .epkb-ml-search-box__text {
    color: #fff !important;
}

@media (max-width: 700px) {
    .cmmme-footer-links ul {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
        text-align: center;
    }

    .cmmme-footer-links a {
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
