@font-face {
	font-weight: normal;
	font-style: normal;
	font-family: "woodmart-font";
	src: url("//memtcg.nl/wp-content/themes/woodmart/fonts/woodmart-font-1-400.woff2?v=8.4.1") format("woff2");
}

@font-face {
	font-family: "star";
	font-weight: 400;
	font-style: normal;
	src: url("//memtcg.nl/wp-content/plugins/woocommerce/assets/fonts/star.eot?#iefix") format("embedded-opentype"), url("//memtcg.nl/wp-content/plugins/woocommerce/assets/fonts/star.woff") format("woff"), url("//memtcg.nl/wp-content/plugins/woocommerce/assets/fonts/star.ttf") format("truetype"), url("//memtcg.nl/wp-content/plugins/woocommerce/assets/fonts/star.svg#star") format("svg");
}

@font-face {
	font-family: "WooCommerce";
	font-weight: 400;
	font-style: normal;
	src: url("//memtcg.nl/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.eot?#iefix") format("embedded-opentype"), url("//memtcg.nl/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff") format("woff"), url("//memtcg.nl/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.ttf") format("truetype"), url("//memtcg.nl/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.svg#WooCommerce") format("svg");
}

:root {
	--wd-text-font: "Roboto", Arial, Helvetica, sans-serif;
	--wd-text-font-weight: 400;
	--wd-text-color: rgb(118,118,118);
	--wd-text-font-size: 16px;
	--wd-title-font: "Poppins", Arial, Helvetica, sans-serif;
	--wd-title-font-weight: 600;
	--wd-title-color: #242424;
	--wd-entities-title-font: "Montserrat", Arial, Helvetica, sans-serif;
	--wd-entities-title-font-weight: 600;
	--wd-entities-title-color: #333333;
	--wd-entities-title-color-hover: rgb(51 51 51 / 65%);
	--wd-alternative-font: "Montserrat", Arial, Helvetica, sans-serif;
	--wd-widget-title-font: "Poppins", Arial, Helvetica, sans-serif;
	--wd-widget-title-font-weight: 600;
	--wd-widget-title-transform: uppercase;
	--wd-widget-title-color: #333;
	--wd-widget-title-font-size: 16px;
	--wd-header-el-font: "Lato", Arial, Helvetica, sans-serif;
	--wd-header-el-font-weight: 700;
	--wd-header-el-transform: uppercase;
	--wd-header-el-font-size: 13px;
	--wd-otl-style: dotted;
	--wd-otl-width: 2px;
	--wd-primary-color: rgb(37,150,190);
	--wd-alternative-color: rgb(116,182,210);
	--btn-default-bgcolor: rgb(23,23,23);
	--btn-default-bgcolor-hover: rgb(25,25,25);
	--btn-accented-bgcolor: rgb(37,150,190);
	--btn-accented-bgcolor-hover: rgb(116,182,210);
	--wd-form-brd-width: 2px;
	--notices-success-bg: #459647;
	--notices-success-color: #fff;
	--notices-warning-bg: #E0B252;
	--notices-warning-color: #fff;
	--wd-link-color: #333333;
	--wd-link-color-hover: #242424;
}
.wd-age-verify-wrap {
	--wd-popup-width: 500px;
}
.wd-popup.wd-promo-popup {
	background-color: #111111;
	background-image: url();
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
}
.wd-promo-popup-wrap {
	--wd-popup-width: 800px;
}
:is(.woodmart-woocommerce-layered-nav, .wd-product-category-filter) .wd-scroll-content {
	max-height: 223px;
}
.wd-page-title .wd-page-title-bg img {
	object-fit: cover;
	object-position: center center;
}
.wd-footer {
	background-color: rgb(0,0,0);
	background-image: none;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center bottom;
}
.page :is(.wd-page-content, .whb-header) {
	background-color: rgb(12,12,12);
	background-image: none;
}
.woodmart-archive-shop:not(.single-product) :is(.wd-page-content, .whb-header) {
	background-color: rgb(12,12,12);
	background-image: none;
}
.single-product :is(.wd-page-content, .whb-header) {
	background-color: rgb(12,12,12);
	background-image: none;
}
.mfp-wrap.wd-popup-quick-view-wrap {
	--wd-popup-width: 920px;
}
:root{
--wd-container-w: 1222px;
--wd-form-brd-radius: 5px;
--btn-default-color: #fff;
--btn-default-color-hover: #fff;
--btn-accented-color: #fff;
--btn-accented-color-hover: #fff;
--btn-default-brd-radius: 5px;
--btn-default-box-shadow: none;
--btn-default-box-shadow-hover: none;
--btn-accented-brd-radius: 5px;
--btn-accented-box-shadow: none;
--btn-accented-box-shadow-hover: none;
--wd-brd-radius: 0px;
}

@media (min-width: 1222px) {
section.elementor-section.wd-section-stretch > .elementor-container {
margin-left: auto;
margin-right: auto;
}
}


.wd-page-title {
background-color: rgb(16,16,16);
}

/* ============================================
   MEMTCG Sitewide CSS — v2.3
   ============================================

   WIJZIGING v2.3 vs v2.2:
   - § 7 (Side-cart drawer) VERPLAATST -> plugin "memtcg-commerce"
     (assets/side-cart.css), sitewide enqueue.
   - § 8 (Woodmart checkout steps) VERPLAATST -> plugin
     "memtcg-commerce" (assets/checkout-steps.css), enqueue op
     cart/checkout/order-received.
   Rest ongewijzigd.

   STRUCTUUR

   TIER 1 — Global tokens & base
   §  1  Design tokens (:root)
   §  2  Typografie (headings, content-scoped)
   §  3  Primary buttons (commerce flow)
   §  4  Secondary buttons
   §  5  Price displays
   §  6  Input fields (WC forms)

   TIER 2 — Sitewide patterns
   §  9  Free shipping progress bar
   § 10  WooCommerce notices (message/info/error)

   TIER 3 — Page-specific
   § 12  Page-title hides
   § 13  Clean WooCommerce AJAX loading overlays

   (§ 7 Side-cart + § 8 Checkout steps leven nu in de
    memtcg-commerce plugin. § 11 Mijn account in memtcg-account.)
   ============================================ */


/* ===========================================================
   § 1  DESIGN TOKENS — :root
   =========================================================== */

:root {
    /* Brand kleuren */
    --c-accent:        #2596BE;
    --c-accent-soft:   #74B6D2;
    --c-accent-glow:   rgba(37, 150, 190, 0.4);
    --c-accent-tint:   rgba(37, 150, 190, 0.12);
    --c-accent-line:   rgba(37, 150, 190, 0.7);

    /* Tekst op donkere achtergrond */
    --c-text:          rgba(255, 255, 255, 0.78);
    --c-text-strong:   #FFFFFF;
    --c-text-muted:    rgba(255, 255, 255, 0.55);
    --c-text-faint:    rgba(255, 255, 255, 0.4);
    --c-text-thumb:    rgba(255, 255, 255, 0.7);

    /* Lijnen / borders */
    --c-line:          rgba(255, 255, 255, 0.08);
    --c-line-soft:     rgba(255, 255, 255, 0.04);
    --c-line-strong:   rgba(255, 255, 255, 0.12);

    /* Status */
    --c-stock:         #6BC76D;
    --c-stock-glow:    rgba(107, 199, 109, 0.6);
    --c-stock-line:    rgba(107, 199, 109, 0.35);
    --c-low:           #F1C969;
    --c-low-glow:      rgba(241, 201, 105, 0.6);
    --c-low-line:      rgba(241, 201, 105, 0.35);
    --c-error:         #F58685;

    /* Surfaces */
    --bg-page:         #0C0C0C;
    --bg-card:         linear-gradient(135deg, #1a1a1a 0%, #232323 100%);
    --bg-card-hero:    radial-gradient(ellipse 70% 50% at 50% 40%,
                          var(--c-accent-tint) 0%, transparent 60%),
                       linear-gradient(135deg, #1a1a1a 0%, #232323 100%);
    --bg-input:        rgba(255, 255, 255, 0.04);
    --bg-chip:         rgba(0, 0, 0, 0.55);
    --bg-chip-lang:    rgba(0, 0, 0, 0.6);

    /* Typografie */
    --font-display:    'Poppins', sans-serif;
    --font-body:       'Roboto', sans-serif;
    --font-mono:       'SF Mono', Menlo, monospace;

    /* Radii */
    --r-sm:  4px;
    --r-md:  8px;
    --r-lg:  12px;
    --r-pill: 50px;

    /* Spacing schaal */
    --gap-2xs: 6px;
    --gap-xs:  14px;
    --gap-sm:  18px;
    --gap-md:  24px;
    --gap-lg:  28px;
    --gap-xl:  32px;
    --gap-2xl: 48px;

    /* Transitions */
    --t-fast: 150ms ease;
    --t-med:  200ms ease;
}


/* ===========================================================
   § 2  TYPOGRAFIE — content-headings scoped
   ===========================================================
   Scope beperkt tot WC content, page content en product cards.
   NIET globaal op alle h1-h6, want dat raakt header/footer/nav.
*/

.woocommerce h1, .woocommerce h2, .woocommerce h3, .woocommerce h4, .woocommerce h5, .woocommerce h6,
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6,
.wd-entities-title,
h1.product_title,
.elementor-widget-woocommerce-product-title h1,
.elementor-widget-woocommerce-product-title h2 {
    font-family: var(--font-display) !important;
}


/* ===========================================================
   § 3  PRIMARY BUTTONS — commerce-flow knoppen
   =========================================================== */

.single_add_to_cart_button,
.checkout-button,
.wc-proceed-to-checkout a.button,
button[name="apply_coupon"],
button[name="woocommerce_checkout_place_order"],
#place_order {
    background: var(--c-accent) !important;
    color: var(--c-text-strong) !important;
    border: 0 !important;
    border-radius: var(--r-md) !important;
    font-family: var(--font-body) !important;
    font-weight: 600 !important;
    letter-spacing: 0.6px !important;
    text-transform: none !important;
    box-shadow: none !important;
    transition: background var(--t-fast), transform var(--t-fast);
}
.single_add_to_cart_button:hover,
.checkout-button:hover,
.wc-proceed-to-checkout a.button:hover,
button[name="apply_coupon"]:hover,
button[name="woocommerce_checkout_place_order"]:hover,
#place_order:hover {
    background: var(--c-accent-soft) !important;
    transform: translateY(-1px);
}


/* ===========================================================
   § 4  SECONDARY BUTTONS — outline-stijl
   =========================================================== */

button[name="update_cart"],
.cart_totals .wc-backward,
form.checkout button.wc-backward {
    background: transparent !important;
    color: var(--c-text) !important;
    border: 1px solid var(--c-line-strong) !important;
    border-radius: var(--r-md) !important;
    font-family: var(--font-body) !important;
    font-weight: 600 !important;
    letter-spacing: 0.4px !important;
    text-transform: none !important;
    box-shadow: none !important;
    transition: border-color var(--t-fast), color var(--t-fast);
}
button[name="update_cart"]:hover,
.cart_totals .wc-backward:hover {
    border-color: var(--c-accent) !important;
    color: var(--c-accent-soft) !important;
}


/* ===========================================================
   § 5  PRICE DISPLAYS — WC price spans
   =========================================================== */

.woocommerce-Price-amount {
    color: var(--c-accent);
    font-weight: 600;
}
del .woocommerce-Price-amount {
    color: var(--c-text-faint);
    text-decoration: line-through;
}


/* ===========================================================
   § 6  INPUT FIELDS — WC forms, donker thema
   =========================================================== */

.woocommerce form input[type="text"],
.woocommerce form input[type="email"],
.woocommerce form input[type="tel"],
.woocommerce form input[type="password"],
.woocommerce form input[type="number"],
.woocommerce form textarea,
.woocommerce form select,
.woocommerce-cart-form input[type="text"],
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"] {
    background: var(--bg-input) !important;
    border: 1px solid var(--c-line-strong) !important;
    border-radius: var(--r-md) !important;
    color: var(--c-text-strong) !important;
    font-family: var(--font-body) !important;
}
.woocommerce form input:focus,
.woocommerce form textarea:focus,
.woocommerce form select:focus,
.woocommerce-cart-form input:focus,
.woocommerce-checkout input:focus {
    border-color: var(--c-accent) !important;
    outline: 0;
    box-shadow: 0 0 0 3px var(--c-accent-tint) !important;
}
.woocommerce form input::placeholder,
.woocommerce form textarea::placeholder,
.woocommerce-cart-form input::placeholder {
    color: var(--c-text-muted) !important;
}


/* ===========================================================
   § 7  SIDE-CART DRAWER
   ===========================================================
   VERPLAATST naar plugin "memtcg-commerce" (assets/side-cart.css).
   Niets meer hier.
*/


/* ===========================================================
   § 8  WOODMART CHECKOUT STEPS — stepper indicator
   ===========================================================
   VERPLAATST naar plugin "memtcg-commerce" (assets/checkout-steps.css).
   Niets meer hier.
*/


/* ===========================================================
   § 9  FREE SHIPPING PROGRESS BAR
   =========================================================== */


/* § 9.1  Reset — Cart page outer wrapper */

.wd-shipping-progress-bar.wd-style-bordered {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 0 24px !important;
}


/* § 9.2  Container */

.wd-free-progress-bar {
    position: relative;
    display: grid;
    grid-template-columns: 32px 1fr;
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 12px;
    padding: 18px 20px !important;
    margin: 0;
    background: var(--bg-card) !important;
    border: 1px solid var(--c-line) !important;
    border-radius: var(--r-md) !important;
    color: var(--c-text) !important;
    font-family: var(--font-body) !important;
    transition: border-color 250ms ease, background 250ms ease;
}


/* § 9.3  Truck icon */

.wd-free-progress-bar::before {
    content: '';
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    justify-self: start;
    width: 32px;
    height: 32px;
    background-color: var(--c-accent-tint);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2374B6D2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='1' y='3' width='15' height='13'/><polygon points='16 8 20 8 23 11 23 16 16 16 16 8'/><circle cx='5.5' cy='18.5' r='2.5'/><circle cx='18.5' cy='18.5' r='2.5'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
    border-radius: var(--r-sm);
    transition: background-color 250ms ease;
}


/* § 9.4  Message */

.wd-free-progress-bar .progress-msg {
    grid-column: 2;
    grid-row: 1;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    color: var(--c-text) !important;
    font-weight: 400 !important;
    text-align: left !important;
}

.wd-free-progress-bar .progress-msg .woocommerce-Price-amount {
    color: var(--c-text-strong) !important;
    font-weight: 600 !important;
}


/* § 9.5  Track */

.wd-free-progress-bar .progress-area {
    grid-column: 2;
    grid-row: 2;
    position: relative;
    height: 8px !important;
    margin: 0 !important;
    background: var(--bg-input) !important;
    border-radius: var(--r-pill) !important;
    overflow: visible !important;
}


/* § 9.6  Fill */

.wd-free-progress-bar .progress-area .progress-bar {
    position: relative;
    height: 8px !important;
    margin: 0 !important;
    background-color: var(--c-accent) !important;
    background-image: none !important;
    border-radius: var(--r-pill) !important;
    overflow: hidden !important;
    box-shadow: 0 0 10px var(--c-accent-glow);
    transition: width 400ms ease,
                background-color 300ms ease,
                box-shadow 300ms ease;
}

.wd-free-progress-bar .progress-area .progress-bar::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 50%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.55) 50%,
        transparent 100%
    );
    transform: translateX(-100%);
    animation: memtcg-shimmer 2.4s linear infinite;
    pointer-events: none;
}

@keyframes memtcg-shimmer {
    0%   { transform: translateX(-100%); }
    100% { transform: translateX(400%); }
}


/* § 9.7  Unlocked state */

.wd-free-progress-bar:has(.progress-bar[style*="100%"]) {
    border-color: var(--c-stock-line) !important;
    background:
        radial-gradient(ellipse 60% 100% at 50% 50%, rgba(107,199,109,0.08) 0%, transparent 70%),
        var(--bg-card) !important;
}

.wd-free-progress-bar:has(.progress-bar[style*="100%"])::before {
    background-color: rgba(107,199,109,0.18);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236BC76D' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
}

.wd-free-progress-bar:has(.progress-bar[style*="100%"]) .progress-area .progress-bar {
    background-color: var(--c-stock) !important;
    box-shadow: 0 0 12px var(--c-stock-glow);
}

.wd-free-progress-bar:has(.progress-bar[style*="100%"]) .progress-area .progress-bar::after {
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(200, 255, 210, 0.6) 50%,
        transparent 100%
    );
}


/* § 9.8  Accessibility — reduced motion */

@media (prefers-reduced-motion: reduce) {
    .wd-free-progress-bar .progress-area .progress-bar::after {
        animation: none !important;
    }
}


/* § 9.9  Responsive */

@media (max-width: 768px) {
    .wd-free-progress-bar {
        grid-template-columns: 28px 1fr;
        column-gap: 12px;
        row-gap: 10px;
        padding: 16px !important;
    }
    .wd-free-progress-bar::before {
        width: 28px;
        height: 28px;
        background-size: 16px 16px;
    }
    .wd-free-progress-bar .progress-msg {
        font-size: 12.5px !important;
    }
}


/* ===========================================================
   § 10  WOOCOMMERCE NOTICES — message / info / error
   =========================================================== */


/* § 10.1  Base */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    position: relative !important;
    list-style: none !important;
    margin: 0 0 24px !important;
    padding: 14px 18px 14px 46px !important;
    background: var(--bg-card) !important;
    background-image: none !important;
    border: 1px solid var(--c-line) !important;
    border-left-width: 3px !important;
    border-radius: var(--r-md) !important;
    color: var(--c-text-strong) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}


/* § 10.2  Icon base */

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    content: '' !important;
    position: absolute !important;
    left: 18px;
    top: 14px;
    width: 20px;
    height: 20px;
    margin: 0 !important;
    padding: 0 !important;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-color: transparent !important;
    border: 0 !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-indent: 0 !important;
}


/* § 10.3  Success */

.woocommerce-message {
    border-left-color: var(--c-stock) !important;
}
.woocommerce-message::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236BC76D' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") !important;
}


/* § 10.4  Info */

.woocommerce-info {
    border-left-color: var(--c-accent) !important;
}
.woocommerce-info::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2374B6D2' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='16' x2='12' y2='12'/><line x1='12' y1='8' x2='12.01' y2='8'/></svg>") !important;
}


/* § 10.5  Error */

.woocommerce-error {
    border-left-color: var(--c-error) !important;
}
.woocommerce-error::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F58685' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='8' x2='12' y2='12'/><line x1='12' y1='16' x2='12.01' y2='16'/></svg>") !important;
}

.woocommerce-error li {
    list-style: none !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
}
.woocommerce-error li:last-child {
    margin-bottom: 0 !important;
}


/* § 10.6  Buttons / links in notices */

.woocommerce-message .button,
.woocommerce-message a.button,
.woocommerce-info .button,
.woocommerce-info a.button {
    display: inline-block !important;
    float: right;
    margin: -2px 0 0 12px !important;
    padding: 6px 14px !important;
    background: transparent !important;
    border: 1px solid var(--c-line-strong) !important;
    border-radius: var(--r-sm) !important;
    color: var(--c-text-strong) !important;
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: border-color var(--t-fast), color var(--t-fast);
}
.woocommerce-message .button:hover,
.woocommerce-message a.button:hover,
.woocommerce-info .button:hover,
.woocommerce-info a.button:hover {
    border-color: var(--c-accent) !important;
    color: var(--c-accent-soft) !important;
}


/* § 10.7  Responsive */

@media (max-width: 768px) {
    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error {
        padding: 12px 16px 12px 40px !important;
        font-size: 13px !important;
        margin: 0 0 18px !important;
    }
    .woocommerce-message::before,
    .woocommerce-info::before,
    .woocommerce-error::before {
        left: 14px;
        top: 12px;
        width: 18px;
        height: 18px;
    }
    .woocommerce-message .button,
    .woocommerce-message a.button,
    .woocommerce-info .button,
    .woocommerce-info a.button {
        float: none;
        display: block !important;
        margin: 10px 0 0 !important;
        text-align: center;
    }
}


/* ===========================================================
   § 11  MIJN ACCOUNT
   ===========================================================
   VERPLAATST naar plugin "memtcg-account" (assets/memtcg-account.css).
   Niets meer hier.
*/


/* ===========================================================
   § 12  PAGE-TITLE HIDES — per page-id
   ===========================================================
   Mijn account (19), Wishlist (25), Wishlist-oud (60, mogelijk stale),
   Contact (30769), Live Stream Shop (31167), Agenda (29906)
*/
body.page-id-19 .wd-page-title.page-title,
body.page-id-25 .wd-page-title.page-title,
body.page-id-60 .wd-page-title.page-title,
body.page-id-30769 .wd-page-title.page-title,
body.page-id-31167 .wd-page-title.page-title,
body.page-id-29906 .wd-page-title.page-title {
    display: none;
}

.wd-page-title.page-title {
    background-color: #0c0c0c !important;
}

/* =========================================================
   § 13 Clean WooCommerce AJAX loading overlays
   Applies to checkout + cart updates
   ========================================================= */

/* Remove ugly WooCommerce / BlockUI black overlay styling */
html body.woocommerce-checkout .blockUI,
html body.woocommerce-checkout .blockOverlay,
html body.woocommerce-checkout .blockMsg,
html body.woocommerce-checkout .blockElement,
html body.woocommerce-cart .blockUI,
html body.woocommerce-cart .blockOverlay,
html body.woocommerce-cart .blockMsg,
html body.woocommerce-cart .blockElement {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* Keep the page areas blocked during AJAX, but make the overlay invisible */
html body.woocommerce-checkout .blockUI.blockOverlay,
html body.woocommerce-checkout .blockOverlay,
html body.woocommerce-cart .blockUI.blockOverlay,
html body.woocommerce-cart .blockOverlay {
  opacity: 1 !important;
}

/* Hide the empty BlockUI message/panel element */
html body.woocommerce-checkout .blockUI.blockMsg,
html body.woocommerce-checkout .blockUI.blockElement:not(.blockOverlay),
html body.woocommerce-cart .blockUI.blockMsg,
html body.woocommerce-cart .blockUI.blockElement:not(.blockOverlay) {
  display: none !important;
}

/* Make sure the spinner positions correctly */
html body.woocommerce-checkout #order_review,
html body.woocommerce-checkout .woocommerce-checkout-review-order,
html body.woocommerce-checkout .woocommerce-checkout-payment,
html body.woocommerce-cart .woocommerce-cart-form,
html body.woocommerce-cart .cart-collaterals,
html body.woocommerce-cart .cart_totals,
html body.woocommerce-cart .woocommerce-shipping-totals,
html body.woocommerce-cart .woocommerce-shipping-calculator {
  position: relative;
}

/* Spinner for checkout + cart AJAX overlays */
html body.woocommerce-checkout #order_review .blockUI.blockOverlay::before,
html body.woocommerce-checkout .woocommerce-checkout-review-order .blockUI.blockOverlay::before,
html body.woocommerce-checkout .woocommerce-checkout-payment .blockUI.blockOverlay::before,
html body.woocommerce-cart .woocommerce-cart-form .blockUI.blockOverlay::before,
html body.woocommerce-cart .cart-collaterals .blockUI.blockOverlay::before,
html body.woocommerce-cart .cart_totals .blockUI.blockOverlay::before,
html body.woocommerce-cart .woocommerce-shipping-totals .blockUI.blockOverlay::before,
html body.woocommerce-cart .woocommerce-shipping-calculator .blockUI.blockOverlay::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border: 3px solid rgba(255, 255, 255, 0.25);
  border-top-color: var(--wd-primary-color, #2aaee8);
  border-radius: 50%;
  background: transparent !important;
  box-shadow: none !important;
  animation: memtcg-ajax-spin 0.75s linear infinite;
  box-sizing: border-box;
  z-index: 10;
}

/* Kill possible WooCommerce / WoodMart processing background panels */
html body.woocommerce-checkout form.checkout.processing::before,
html body.woocommerce-checkout #order_review.processing::before,
html body.woocommerce-checkout .woocommerce-checkout-review-order.processing::before,
html body.woocommerce-checkout .woocommerce-checkout-payment.processing::before,
html body.woocommerce-checkout .woocommerce-checkout-review-order-table.processing::before,
html body.woocommerce-cart .woocommerce-cart-form.processing::before,
html body.woocommerce-cart .cart-collaterals.processing::before,
html body.woocommerce-cart .cart_totals.processing::before,
html body.woocommerce-cart .woocommerce-shipping-totals.processing::before,
html body.woocommerce-cart .woocommerce-shipping-calculator.processing::before {
  display: none !important;
  background: transparent !important;
  background-color: transparent !important;
  opacity: 0 !important;
}

/* Shared spinner animation */
@keyframes memtcg-ajax-spin {
  to {
    transform: rotate(360deg);
  }
}