/*
Theme Name:     Mister Padel
Theme URI:
Description:    Hello-elementor child theme.
Author:         madmob
Author URI:
Template:       hello-elementor
Version:        0.1.0
*/

/* =========================================================
   Sticky Add-to-Cart bar (WPC Sticky Add-to-Cart)
   Sport-vibe redesign:
   - hide "before" (struck-through) price
   - sharper typography, diagonal speed-stripe accent
   - slide-up entrance, kinetic shimmer sweep on CTA
   - lift + scale micro-interactions on hover
   ========================================================= */

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Montserrat:wght@400;500;600;700;800&display=swap");

:root {
    /* Brand: primary navy #032139, accent lime #CBFF00, text #111 */
    --mps-atc-cta: #CBFF00;             /* lime CTA (matches main ATC button) */
    --mps-atc-cta-2: #B7E600;           /* deeper lime for gradient end */
    --mps-atc-cta-glow: #E6FF66;        /* light lime for shimmer highlight */
    --mps-atc-ink: #111111;             /* CTA text + ink */
    --mps-atc-blue: #032139;            /* brand primary blue */
    --mps-atc-blue-2: #1d6fb8;          /* electric blue highlight for top stripe */
    --mps-atc-surface: #ffffff;
    --mps-atc-line: rgba(15, 15, 20, 0.08);

    /* Typography system */
    --mps-font-heading: "Montserrat", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --mps-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    --mps-type-h1-size: 42px;
    --mps-type-h1-line: 1.15;
    --mps-type-h2-size: 34px;
    --mps-type-h2-line: 1.2;
    --mps-type-h3-size: 28px;
    --mps-type-h3-line: 1.25;
    --mps-type-h4-size: 22px;
    --mps-type-h4-line: 1.3;
    --mps-type-body-size: 16px;
    --mps-type-body-line: 1.6;
    --mps-type-small-size: 14px;
    --mps-type-small-line: 1.5;
    --mps-type-ui-size: 14px;
    --mps-type-ui-line: 1.2;
}

/* =========================================================
   Global Typography — brand-consistent scale and families
   ========================================================= */
html,
body {
    font-family: var(--mps-font-body);
    font-size: var(--mps-type-body-size);
    line-height: var(--mps-type-body-line);
    letter-spacing: 0;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title,
.woocommerce-loop-product__title,
.product_title,
.wc-block-components-product-name {
    font-family: var(--mps-font-heading);
    color: #111111;
    margin-top: 0;
    margin-bottom: 0.5em;
}

h1,
.elementor-widget-heading h1.elementor-heading-title {
    font-size: var(--mps-type-h1-size);
    line-height: var(--mps-type-h1-line);
    font-weight: 800;
    letter-spacing: -0.02em;
}

h2,
.elementor-widget-heading h2.elementor-heading-title {
    font-size: var(--mps-type-h2-size);
    line-height: var(--mps-type-h2-line);
    font-weight: 700;
    letter-spacing: -0.015em;
}

h3,
.elementor-widget-heading h3.elementor-heading-title {
    font-size: var(--mps-type-h3-size);
    line-height: var(--mps-type-h3-line);
    font-weight: 700;
    letter-spacing: -0.01em;
}

h4,
h5,
h6,
.elementor-widget-heading h4.elementor-heading-title,
.elementor-widget-heading h5.elementor-heading-title,
.elementor-widget-heading h6.elementor-heading-title {
    font-size: var(--mps-type-h4-size);
    line-height: var(--mps-type-h4-line);
    font-weight: 600;
}

p,
li,
dt,
dd,
blockquote,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.woocommerce-tabs .panel,
.woocommerce-product-details__short-description,
.product_meta,
.woocommerce-checkout,
.woocommerce-cart-form {
    font-family: var(--mps-font-body);
    font-size: var(--mps-type-body-size);
    line-height: var(--mps-type-body-line);
    font-weight: 400;
}

small,
.small,
.woocommerce-review-link,
.product .stock,
.elementor-widget-text-editor small {
    font-family: var(--mps-font-body);
    font-size: var(--mps-type-small-size);
    line-height: var(--mps-type-small-line);
}

button,
input,
select,
textarea,
.button,
.elementor-button,
.menu-item a,
.elementor-nav-menu a,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.added_to_cart {
    font-family: var(--mps-font-heading);
    font-size: var(--mps-type-ui-size);
    line-height: var(--mps-type-ui-line);
    font-weight: 600;
}

.price .woocommerce-Price-amount,
.woocommerce-Price-amount {
    font-family: var(--mps-font-heading);
    font-weight: 800;
}

@media (max-width: 1024px) {
    :root {
        --mps-type-h1-size: 36px;
        --mps-type-h2-size: 30px;
        --mps-type-h3-size: 25px;
        --mps-type-h4-size: 21px;
    }
}

@media (max-width: 767px) {
    :root {
        --mps-type-h1-size: 32px;
        --mps-type-h2-size: 28px;
        --mps-type-h3-size: 24px;
        --mps-type-h4-size: 20px;
        --mps-type-body-size: 16px;
        --mps-type-ui-size: 14px;
    }
}

/* Container: surface, depth, diagonal accent stripe */
body .wpcsb-wrapper.wpcsb-wrapper-bottom .wpcsb-container {
    position: relative;
    padding: 14px 24px;
    background: var(--mps-atc-surface);
    border-top: 0;
    box-shadow:
        0 -1px 0 var(--mps-atc-line),
        0 -18px 40px -18px rgba(15, 15, 20, 0.18);
    overflow: hidden;
}

/* Top-edge speed stripe (animated gradient) */
body .wpcsb-wrapper.wpcsb-wrapper-bottom .wpcsb-container::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(
        90deg,
        var(--mps-atc-blue) 0%,
        var(--mps-atc-blue-2) 35%,
        #ffffff 50%,
        var(--mps-atc-blue-2) 65%,
        var(--mps-atc-blue) 100%
    );
    background-size: 200% 100%;
    animation: mps-atc-stripe 4.5s linear infinite;
}

/* Slide-up + fade-in entrance when the bar becomes active */
body .wpcsb-wrapper.wpcsb-wrapper-bottom.wpcsb-active {
    animation: mps-atc-slide-up 480ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

/* Product block */
body .wpcsb-wrapper .wpcsb-product {
    gap: 16px;
    align-items: center;
}

body .wpcsb-wrapper .wpcsb-product-image .wpcsb-image-ori img,
body .wpcsb-wrapper .wpcsb-product-image .wpcsb-image-new img {
    width: 56px;
    height: 56px;
    object-fit: contain;
    border-radius: 10px;
    background: #f6f5fb;
    padding: 4px;
    transition: transform 350ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

body .wpcsb-wrapper .wpcsb-product:hover .wpcsb-image-ori img,
body .wpcsb-wrapper .wpcsb-product:hover .wpcsb-image-new img {
    transform: translateX(-2px) rotate(-3deg) scale(1.05);
}

body .wpcsb-wrapper .wpcsb-product-name {
    font-family: "Montserrat", sans-serif;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--mps-atc-ink);
    line-height: 1.2;
}

/* === Remove "before" (original / crossed-out) price === */
body .wpcsb-wrapper .wpcsb-product-price .wpcsb-price-ori del,
body .wpcsb-wrapper .wpcsb-product-price .wpcsb-price-ori .screen-reader-text {
    display: none !important;
}

body .wpcsb-wrapper .wpcsb-product-price .wpcsb-price-ori ins {
    text-decoration: none;
    background: transparent;
}

/* CTA button: bolder, kinetic, speed-shimmer */
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn,
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.button.alt {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 14px 28px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--mps-atc-cta) 0%, var(--mps-atc-cta-2) 100%);
    color: var(--mps-atc-ink);
    font-family: "Montserrat", sans-serif;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    box-shadow:
        0 8px 22px -10px rgba(120, 160, 0, 0.55),
        inset 0 -2px 0 rgba(0, 0, 0, 0.12);
    cursor: pointer;
    overflow: hidden;
    isolation: isolate;
    transition:
        transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        box-shadow 220ms ease,
        background 220ms ease;
}

/* Diagonal speed-shimmer sweep across the CTA */
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -60%;
    width: 50%;
    height: 100%;
    background: linear-gradient(
        115deg,
        transparent 0%,
        rgba(255, 255, 255, 0.0) 35%,
        rgba(255, 255, 255, 0.75) 50%,
        rgba(255, 255, 255, 0.0) 65%,
        transparent 100%
    );
    transform: skewX(-22deg);
    animation: mps-atc-shimmer 3.6s ease-in-out infinite;
    pointer-events: none;
    z-index: 1;
}

/* Trailing chevron accent (>>) drawn with CSS — sport feel */
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn::after {
    content: "";
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--mps-atc-ink);
    border-top: 2px solid var(--mps-atc-ink);
    transform: rotate(45deg);
    margin-left: 4px;
    transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
    z-index: 2;
}

body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn > span,
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn .wpcsb-product-price {
    position: relative;
    z-index: 2;
}

body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn .wpcsb-product-price {
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 0.04em;
    padding-left: 14px;
    margin-left: 4px;
    border-left: 1px solid rgba(17, 17, 17, 0.25);
}

body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn .woocommerce-Price-amount,
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn .woocommerce-Price-currencySymbol {
    color: var(--mps-atc-ink);
}

/* Hover/active micro-interactions */
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg, var(--mps-atc-cta-glow) 0%, var(--mps-atc-cta) 100%);
    box-shadow:
        0 14px 28px -10px rgba(120, 160, 0, 0.7),
        inset 0 -2px 0 rgba(0, 0, 0, 0.18);
}

body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn:hover::after {
    transform: rotate(45deg) translate(3px, -3px);
}

body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn:active {
    transform: translateY(0);
}

body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

/* === Quantity selector (pill stepper) === */
body .wpcsb-wrapper .wpcsb-add-to-cart {
    gap: 10px;
}

body .wpcsb-wrapper .wpcsb-quantity {
    display: inline-flex;
    align-items: center;
    margin: 0 !important;
}

body .wpcsb-wrapper .wpcsb-quantity .quantity {
    margin: 0;
    display: inline-flex;
    align-items: center;
    background: #f4f4f6;
    border: 1px solid rgba(17, 17, 17, 0.12);
    border-radius: 999px;
    padding: 4px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

body .wpcsb-wrapper .wpcsb-quantity .qty,
body .wpcsb-wrapper .wpcsb-quantity input.wpcsb-qty {
    width: 44px;
    height: 36px;
    padding: 0 6px;
    border: 0;
    background: transparent;
    color: var(--mps-atc-ink);
    font-family: "Montserrat", sans-serif;
    font-weight: 800;
    font-size: 14px;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
    box-shadow: none;
    outline: none;
}

body .wpcsb-wrapper .wpcsb-quantity .qty::-webkit-outer-spin-button,
body .wpcsb-wrapper .wpcsb-quantity .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

body .wpcsb-wrapper .wpcsb-quantity .qty:focus-visible {
    outline: 2px solid var(--mps-atc-blue);
    outline-offset: 2px;
    border-radius: 999px;
}

/* === Quantity stepper buttons (injected by child theme JS) === */
body .wpcsb-wrapper .wpcsb-quantity .mps-qty-btn {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    background: #ffffff;
    color: var(--mps-atc-ink);
    font-family: "Montserrat", sans-serif;
    font-weight: 800;
    font-size: 16px;
    line-height: 1;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(17, 17, 17, 0.08);
    transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
    user-select: none;
}
body .wpcsb-wrapper .wpcsb-quantity .mps-qty-btn:hover {
    background: var(--mps-atc-cta);
    box-shadow: 0 2px 8px rgba(120, 160, 0, 0.35), inset 0 0 0 1px rgba(17, 17, 17, 0.12);
}
body .wpcsb-wrapper .wpcsb-quantity .mps-qty-btn:active {
    transform: scale(0.92);
}
body .wpcsb-wrapper .wpcsb-quantity .mps-qty-btn:focus-visible {
    outline: 2px solid var(--mps-atc-blue);
    outline-offset: 2px;
}
body .wpcsb-wrapper .wpcsb-quantity .mps-qty-minus {
    font-size: 18px;
    padding-bottom: 2px;
}

/* Mobile: shrink everything to ~half the original height */
@media (max-width: 767px) {
    /* plugin defaults to column at <=767px — keep one row */
    body .wpcsb-wrapper .wpcsb-container .wpcsb-product {
        flex-direction: row;
        gap: 8px;
        min-width: 0;
    }
    body .wpcsb-wrapper .wpcsb-container .wpcsb-product-info {
        min-width: 0;
        flex: 1 1 auto;
        overflow: hidden;
    }
    body .wpcsb-wrapper .wpcsb-container .wpcsb-product-data {
        min-width: 0;
        flex: 1 1 auto;
    }
    body .wpcsb-wrapper .wpcsb-container .wpcsb-product-action {
        margin-top: 0;
        flex-shrink: 0;
        max-width: 60%;
    }
    body .wpcsb-wrapper.wpcsb-wrapper-bottom .wpcsb-container {
        padding: 12px 12px;
    }
    /* Keep thumbnail visible on mobile but compact */
    body .wpcsb-wrapper .wpcsb-product-image {
        flex: 0 0 auto;
        width: 44px;
        height: 44px;
        border-radius: 10px;
        overflow: hidden;
    }
    body .wpcsb-wrapper .wpcsb-product-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    body .wpcsb-wrapper .wpcsb-product-name {
        font-size: 11px;
        letter-spacing: 0.02em;
        line-height: 1.2;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart {
        gap: 8px;
        min-width: 0;
        flex-wrap: nowrap;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn,
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.button.alt {
        padding: 11px 18px;
        font-size: 11px;
        letter-spacing: 0.08em;
        gap: 8px;
        min-width: 0;
        flex: 0 1 auto;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn::after {
        width: 8px;
        height: 8px;
        border-width: 2px;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn .wpcsb-product-price {
        font-size: 12px;
        padding-left: 8px;
    }
    body .wpcsb-wrapper .wpcsb-quantity .quantity {
        padding: 3px;
    }
    body .wpcsb-wrapper .wpcsb-quantity .qty,
    body .wpcsb-wrapper .wpcsb-quantity input.wpcsb-qty {
        width: 32px;
        height: 30px;
        font-size: 13px;
    }
    body .wpcsb-wrapper .wpcsb-quantity .mps-qty-btn {
        width: 30px;
        height: 30px;
        font-size: 16px;
    }
    body .wpcsb-wrapper .wpcsb-quantity .mps-qty-minus {
        font-size: 18px;
    }
}

/* Phones: sacrifice the product title to keep the CTA roomy + keep price chip visible */
@media (max-width: 600px) {
    body .wpcsb-wrapper .wpcsb-product-name {
        display: none !important;
    }
    body .wpcsb-wrapper .wpcsb-container .wpcsb-product-action {
        margin-left: 0;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart {
        justify-content: flex-end;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn .wpcsb-product-price {
        display: inline-flex !important;
        font-size: 11px;
        padding-left: 6px;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn,
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.button.alt {
        white-space: nowrap;
        padding: 11px 16px;
        font-size: 11px;
        letter-spacing: 0.06em;
        gap: 6px;
        flex: 0 1 auto;
        justify-content: center;
    }
    body .wpcsb-wrapper .wpcsb-product-image {
        width: 40px;
        height: 40px;
    }
}

/* Very narrow: tighten further but keep CTA tappable */
@media (max-width: 360px) {
    body .wpcsb-wrapper.wpcsb-wrapper-bottom .wpcsb-container {
        padding: 10px 10px;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn,
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.button.alt {
        padding: 11px 16px;
        font-size: 11px;
        letter-spacing: 0.06em;
    }
}

/* Keyframes */
@keyframes mps-atc-slide-up {
    0%   { transform: translateY(110%); opacity: 0; }
    60%  { opacity: 1; }
    100% { transform: translateY(0);    opacity: 1; }
}

@keyframes mps-atc-stripe {
    0%   { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

@keyframes mps-atc-shimmer {
    0%   { left: -60%; }
    55%  { left: 120%; }
    100% { left: 120%; } /* hold, then loop */
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    body .wpcsb-wrapper.wpcsb-wrapper-bottom.wpcsb-active,
    body .wpcsb-wrapper.wpcsb-wrapper-bottom .wpcsb-container::before,
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn::before {
        animation: none !important;
    }
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn,
    body .wpcsb-wrapper .wpcsb-product-image img {
        transition: none !important;
    }
}


/* =========================================================
   Footer redesign � Machmad-inspired clean card aesthetic
   - Brand palette: navy #032139, lime #CBFF00, electric blue #1d6fb8
   - Keeps LTR direction + existing content
   - Adds Trust / Secure Payment badge card
   ========================================================= */

:root {
    --mps-footer-navy: #032139;
    --mps-footer-navy-2: #0a2f4d;
    --mps-footer-lime: #CBFF00;
    --mps-footer-lime-2: #B7E600;
    --mps-footer-blue: #1d6fb8;
    --mps-footer-blue-2: #2e8de0;
    --mps-footer-ink-soft: rgba(255, 255, 255, 0.78);
    --mps-footer-ink-faint: rgba(255, 255, 255, 0.55);
    --mps-footer-card-bg: rgba(255, 255, 255, 0.04);
    --mps-footer-card-border: rgba(255, 255, 255, 0.08);
}

/* Flat brand-navy background on the footer container */
footer.elementor-location-footer > .elementor-element.e-con {
    position: relative;
    background: var(--mps-card-navy, #0a1f3d) !important;
}

/* Top trust strip � tighten + brand accent under each icon */
footer.elementor-location-footer .elementor-widget-icon-list:not(.elementor-list-item-link-full_width) {
    /* no-op selector to scope below */
}

footer.elementor-location-footer .elementor-icon-list-item {
    transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
footer.elementor-location-footer .elementor-icon-list-item:hover {
    transform: translateY(-2px);
}
footer.elementor-location-footer .elementor-icon-list-icon svg {
    transition: fill 200ms ease, transform 220ms ease;
}
footer.elementor-location-footer .elementor-icon-list-item:hover .elementor-icon-list-icon svg {
    fill: var(--mps-footer-lime);
}

/* Section headings: brand uppercase + lime accent underline */
footer.elementor-location-footer h2,
footer.elementor-location-footer h3,
footer.elementor-location-footer h4,
footer.elementor-location-footer h5,
footer.elementor-location-footer h6,
footer.elementor-location-footer .elementor-heading-title {
    position: relative;
    display: inline-block;
    margin-bottom: 14px !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 800 !important;
}
footer.elementor-location-footer .elementor-heading-title::after {
    content: none;
}

/* Link list polish in '� propos' / contact columns */
footer.elementor-location-footer .elementor-icon-list-items {
    gap: 2px;
}
footer.elementor-location-footer .elementor-icon-list-text {
    color: var(--mps-footer-ink-soft);
    transition: color 180ms ease, padding 180ms ease;
    font-size: 14px;
}
footer.elementor-location-footer .elementor-icon-list-item:hover .elementor-icon-list-text {
    color: var(--mps-footer-lime);
    padding-left: 4px;
}

/* Newsletter input + submit polish */
/* Kill the Elementor-injected widget border ("white box") around the newsletter form */
footer.elementor-location-footer .elementor-widget-form {
    border: 0 !important;
    border-radius: 0 !important;
    width: 100% !important;
    max-width: 360px !important;
}
/* Make the fields wrapper the positioning context so the submit can dock inside the email pill */
footer.elementor-location-footer .elementor-form-fields-wrapper {
    position: relative !important;
}
/* Email column takes the full row; submit overlays the right side */
footer.elementor-location-footer .elementor-field-group-email {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-bottom: 0 !important;
}
footer.elementor-location-footer .elementor-field-type-submit {
    position: absolute !important;
    top: 50% !important;
    right: 4px !important;
    transform: translateY(-50%) !important;
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: center !important;
}
footer.elementor-location-footer .elementor-field-group {
    position: relative;
}
footer.elementor-location-footer input[type="email"],
footer.elementor-location-footer input[type="text"] {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 0 !important;
    box-shadow: inset 0 0 0 1px transparent !important;
    color: #fff !important;
    border-radius: 999px !important;
    padding: 12px 76px 12px 18px !important;
    height: 48px !important;
    transition: background 180ms ease, box-shadow 180ms ease;
}
footer.elementor-location-footer input[type="email"]::placeholder,
footer.elementor-location-footer input[type="text"]::placeholder {
    color: var(--mps-footer-ink-faint) !important;
}
footer.elementor-location-footer input[type="email"]:focus,
footer.elementor-location-footer input[type="text"]:focus {
    outline: none !important;
    background: rgba(255, 255, 255, 0.12) !important;
    box-shadow: inset 0 0 0 1px var(--mps-footer-lime), 0 0 0 4px rgba(203, 255, 0, 0.14) !important;
}
footer.elementor-location-footer button[type="submit"],
footer.elementor-location-footer .elementor-button {
    background: linear-gradient(135deg, var(--mps-footer-lime) 0%, var(--mps-footer-lime-2) 100%) !important;
    color: #032139 !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    transition: transform 200ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 200ms ease, filter 200ms ease;
    box-shadow: 0 6px 18px -8px rgba(203, 255, 0, 0.45);
}
/* Newsletter submit button: pill, arrow centered */
footer.elementor-location-footer .elementor-field-type-submit button[type="submit"] {
    width: 64px !important;
    height: 40px !important;
    min-width: 64px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
footer.elementor-location-footer .elementor-field-type-submit .elementor-button-content-wrapper,
footer.elementor-location-footer .elementor-field-type-submit .elementor-button-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
footer.elementor-location-footer .elementor-field-type-submit svg {
    width: 14px !important;
    height: 14px !important;
    fill: #032139 !important;
    display: block !important;
}
footer.elementor-location-footer button[type="submit"]:hover,
footer.elementor-location-footer .elementor-button:hover {
    transform: translateY(-1px);
    filter: brightness(1.05);
    box-shadow: 0 10px 22px -8px rgba(203, 255, 0, 0.6);
}

/* Payment-icons row inside the trust badge � styled by .mps-trust-payment-slot below */

/* =========================================================
   Shipping + Returns trust card (injected by mps_product_shipping_card)
   Two-row layout mirroring machmad-il.com, LTR, brand navy + lime.
   ========================================================= */
.mps-ship-badge {
    direction: ltr;
    text-align: left;
    width: 100%;
    margin: 12px 0 8px;
    align-self: stretch;
}
.mps-ship-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #f6fbe8 0%, #ffffff 100%);
    border: 1px solid rgba(203, 255, 0, 0.45);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(3, 33, 57, 0.06);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.mps-ship-card:hover {
    border-color: rgba(203, 255, 0, 0.7);
    box-shadow: 0 2px 8px rgba(3, 33, 57, 0.08);
}
.mps-ship-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    font-family: inherit;
    color: var(--mps-footer-navy);
}
.mps-ship-row + .mps-ship-row {
    border-top: 1px solid rgba(3, 33, 57, 0.08);
}
.mps-ship-icon {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--mps-footer-navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.mps-ship-icon svg {
    width: 18px;
    height: 18px;
    fill: var(--mps-footer-lime);
}
.mps-ship-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--mps-footer-navy);
    letter-spacing: 0.1px;
}
.mps-ship-spacer {
    flex: 1 1 auto;
}
.mps-ship-value {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--mps-footer-navy);
}
.mps-ship-date {
    white-space: nowrap;
}
.mps-ship-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--mps-footer-lime);
    box-shadow: 0 0 0 2px rgba(203, 255, 0, 0.25);
    flex-shrink: 0;
}
.mps-ship-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--mps-footer-lime);
    flex-shrink: 0;
}
.mps-ship-check svg {
    width: 12px;
    height: 12px;
    fill: var(--mps-footer-navy);
}
@media (max-width: 767px) {
    .mps-ship-row {
        padding: 10px 12px;
        gap: 10px;
    }
    .mps-ship-icon {
        width: 28px;
        height: 28px;
    }
    .mps-ship-icon svg {
        width: 16px;
        height: 16px;
    }
    .mps-ship-label {
        font-size: 13px;
    }
    .mps-ship-value {
        font-size: 12px;
        gap: 6px;
    }
}

/* =========================================================
   Trust badge card (injected by mps_footer_trust_badge)
   Machmad-style single-line pill, LTR, brand lime + blue
   ========================================================= */

@keyframes mpsTrustFadeUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes mpsTrustShimmer {
    0%   { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.mps-trust-badge {
    direction: ltr;
    text-align: left;
    width: 100%;
    max-width: 400px;
    margin: 8px 0 2px;
    padding: 0;
    align-self: flex-start;
    animation: mpsTrustFadeUp 0.5s ease-out both;
}

.mps-trust-card {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0;
    height: 36px;
    background: linear-gradient(135deg, #f5fbe6 0%, #ffffff 55%, #eaf4ff 100%);
    border: 1px solid var(--mps-footer-lime);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(3, 33, 57, 0.18);
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                border-color 0.35s ease,
                box-shadow 0.35s ease;
    cursor: default;
}
.mps-trust-card:hover {
    transform: translateY(-1px);
    border-color: var(--mps-footer-lime-2);
    box-shadow: 0 6px 22px rgba(203, 255, 0, 0.22),
                0 0 0 3px rgba(29, 111, 184, 0.10);
}

/* Shimmer overlay on hover */
.mps-trust-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.55) 50%, transparent 60%);
    transform: translateX(-100%);
    pointer-events: none;
    z-index: 2;
}
.mps-trust-card:hover::after {
    animation: mpsTrustShimmer 0.8s ease-out;
}

/* Icon column � navy/blue stripe with lime lock (LEFT side in LTR) */
.mps-trust-icon-col {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, var(--mps-footer-navy) 0%, var(--mps-footer-blue) 100%);
    padding: 8px 10px;
    flex-shrink: 0;
    position: relative;
}
.mps-trust-icon-col::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0; /* lime accent stripe on the inner edge (LTR) */
    width: 3px;
    background: linear-gradient(180deg, var(--mps-footer-lime) 0%, var(--mps-footer-lime-2) 100%);
}
.mps-trust-icon-col svg {
    width: 16px;
    height: 16px;
    fill: var(--mps-footer-lime);
    transition: transform 0.3s ease;
}
.mps-trust-card:hover .mps-trust-icon-col svg {
    transform: scale(1.08);
}

/* Inline content row */
.mps-trust-content-inline {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 8px;
    flex: 1;
    min-width: 0;
    flex-wrap: nowrap;
}

/* Title text � navy on cream card */
.mps-trust-title-text {
    font-weight: 700;
    font-size: 11px;
    line-height: 1.3;
    color: var(--mps-footer-navy);
    letter-spacing: 0;
    margin: 0;
    white-space: nowrap;
    text-transform: none; /* override the global footer-heading uppercase */
    flex-shrink: 0;
}

/* Vérifié pill � lime gradient with navy text */
.mps-trust-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: linear-gradient(135deg, var(--mps-footer-lime) 0%, var(--mps-footer-lime-2) 100%);
    color: var(--mps-footer-navy);
    font-size: 8px;
    font-weight: 800;
    padding: 1px 5px;
    border-radius: 20px;
    letter-spacing: 0;
    white-space: nowrap;
    line-height: 1.6;
    box-shadow: 0 1px 3px rgba(203, 255, 0, 0.45);
    text-transform: uppercase;
    flex-shrink: 0;
}

/* Payment icons slot � hosts the relocated <ul.elementor-icon-list-items> */
.mps-trust-payment-slot {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin-left: auto;
}
.mps-trust-payment-slot .elementor-icon-list-items {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 2px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
}
.mps-trust-payment-slot .elementor-icon-list-item {
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
}
.mps-trust-payment-slot .elementor-icon-list-item:hover {
    transform: none !important;
}
.mps-trust-payment-slot .elementor-icon-list-item .elementor-icon-list-text {
    display: none !important; /* hide any text labels next to icons */
}
.mps-trust-payment-slot .elementor-icon-list-icon {
    padding: 0 !important;
    margin: 0 !important;
    font-size: 16px !important; /* elementor sizes svg via font-size em */
    line-height: 1 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px !important;
    height: 16px !important;
    overflow: hidden;
}
.mps-trust-payment-slot svg.e-font-icon-svg,
.mps-trust-payment-slot .elementor-icon-list-icon svg {
    width: 100% !important;
    height: 100% !important;
    max-width: 22px !important;
    max-height: 16px !important;
    fill: var(--mps-footer-navy) !important;
    opacity: 0.85;
    transition: opacity 0.2s ease;
    flex-shrink: 0;
}
.mps-trust-card:hover .mps-trust-payment-slot .elementor-icon-list-icon svg {
    opacity: 1;
}

/* Secure inline text � hidden in the compact pill; payment icons + pill convey trust */
.mps-trust-secure-inline {
    display: none;
}

/* =========================================================
   Service client contact card � lime-accent bordered card
   (mirrors machmad-il.com gold-accent treatment, adapted to brand)
   ========================================================= */
footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-items {
    position: relative;
    direction: ltr;
    text-align: left;
    background: linear-gradient(180deg, rgba(203, 255, 0, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid rgba(203, 255, 0, 0.28);
    border-radius: 14px;
    padding: 20px 22px 18px !important;
    margin: 6px 0 0;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 8px 24px -16px rgba(0, 0, 0, 0.55);
    gap: 10px !important;
}
footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-items::before {
    content: "";
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 0;
    width: 2px;
    background: linear-gradient(180deg, transparent, var(--mps-footer-lime) 30%, var(--mps-footer-lime-2) 70%, transparent);
    border-radius: 2px;
}
footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-item,
footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-item a,
footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-text {
    font-size: 13px !important;
    line-height: 1.55 !important;
}
footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-item {
    align-items: flex-start;
    padding: 0;
}
footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-icon {
    margin-top: 2px;
}
footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-icon svg {
    width: 13px;
    height: 13px;
}

/* =========================================================
   Mobile footer: center everything
   ========================================================= */
@media (max-width: 767px) {
    footer.elementor-location-footer .e-con-inner > .e-con,
    footer.elementor-location-footer .e-con-inner > .e-con > .e-con-inner {
        text-align: center !important;
        align-items: center !important;
    }
    footer.elementor-location-footer .elementor-widget-container {
        text-align: center !important;
    }
    footer.elementor-location-footer h1,
    footer.elementor-location-footer h2,
    footer.elementor-location-footer h3,
    footer.elementor-location-footer h4,
    footer.elementor-location-footer h5,
    footer.elementor-location-footer h6,
    footer.elementor-location-footer .elementor-heading-title {
        text-align: center !important;
    }
    footer.elementor-location-footer .elementor-icon-list-items {
        justify-content: center !important;
        align-items: center !important;
    }
    footer.elementor-location-footer .elementor-icon-list-item,
    footer.elementor-location-footer .elementor-icon-list-item a {
        justify-content: center !important;
    }
    /* Service client contact card on mobile: center content + hide left stripe */
    footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-items {
        text-align: center !important;
        align-items: center !important;
    }
    footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-items::before {
        display: none;
    }
    footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-item {
        display: block !important;
        text-align: center !important;
        padding: 0 !important;
    }
    footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-item a {
        display: inline !important;
    }
    footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-text {
        display: inline !important;
        text-align: center !important;
        padding-inline-start: 6px !important;
    }
    footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-icon {
        display: inline-block !important;
        vertical-align: middle;
        margin-top: 0;
    }
    footer.elementor-location-footer .elementor-element-13127c1 .elementor-icon-list-icon svg {
        vertical-align: middle;
    }
    /* Nav menu: anchors are display:flex; force their content to center */
    footer.elementor-location-footer .elementor-nav-menu,
    footer.elementor-location-footer .elementor-nav-menu li,
    footer.elementor-location-footer .elementor-nav-menu li a.elementor-item {
        justify-content: center !important;
        text-align: center !important;
    }
    footer.elementor-location-footer .elementor-social-icons-wrapper,
    footer.elementor-location-footer .elementor-widget-social-icons .elementor-widget-container {
        text-align: center !important;
        justify-content: center !important;
        display: flex !important;
    }
    footer.elementor-location-footer .elementor-widget-image .elementor-widget-container,
    footer.elementor-location-footer .elementor-widget-image img {
        margin-left: auto !important;
        margin-right: auto !important;
    }
    footer.elementor-location-footer .elementor-form,
    footer.elementor-location-footer .elementor-form-fields-wrapper {
        justify-content: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 360px;
    }
    footer.elementor-location-footer .elementor-field-group {
        justify-content: center !important;
    }
    /* Trust badge: center the pill on mobile */
    .mps-trust-badge {
        margin-left: auto !important;
        margin-right: auto !important;
        align-self: center !important;
    }
}

/* Mobile � keep single line, drop SSL label */
@media (max-width: 767px) {
    .mps-trust-badge {
        margin: 10px 0 4px;
        max-width: 400px;
    }
    .mps-trust-icon-col {
        padding: 8px 10px;
    }
    .mps-trust-icon-col svg {
        width: 18px;
        height: 18px;
    }
    .mps-trust-content-inline {
        padding: 6px 10px;
        gap: 8px;
        flex-wrap: nowrap;
        justify-content: flex-start;
    }
    .mps-trust-title-text {
        font-size: 11px;
    }
    .mps-trust-pill {
        font-size: 8px;
        padding: 1px 6px;
    }
    .mps-trust-payment-slot .elementor-icon-list-icon {
        width: 28px !important;
        height: 20px !important;
    }
    .mps-trust-payment-slot .elementor-icon-list-icon svg {
        width: 28px !important;
        height: 20px !important;
        max-width: 28px !important;
        max-height: 20px !important;
    }
    .mps-trust-secure-inline {
        display: none; /* keep one line on small screens */
    }
}

/* Desktop pin � keep the compact pill at the bottom of the last footer column */
@media (min-width: 768px) {
    footer.elementor-location-footer .mps-trust-badge {
        margin: 8px 0 2px;
        max-width: 400px;
    }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .mps-trust-badge,
    .mps-trust-card,
    .mps-trust-card::after,
    .mps-trust-icon-col svg,
    footer.elementor-location-footer .elementor-icon-list-item,
    footer.elementor-location-footer button[type="submit"],
    footer.elementor-location-footer .elementor-button {
        animation: none !important;
        transition: none !important;
    }
    .mps-trust-card:hover {
        transform: none;
    }
}

/* =========================================================
   Product page trust badge — uses the same .mps-trust-card
   shell as the footer (injected by mps_product_trust_badge).
   Scoping additions only: container alignment + variant tweaks.
   ========================================================= */
.mps-trust-badge--product {
    width: 100%;
    max-width: none;
    margin: 10px 0 4px;
    text-align: left;
    direction: ltr;
    align-self: stretch;
}
.mps-trust-badge--product .mps-trust-content-inline {
    flex: 1 1 auto;
    gap: 10px;
}
.mps-trust-badge--product .mps-trust-card {
    /* Light variant to read well on white product page background */
    background: linear-gradient(135deg, #f5fbe6 0%, #ffffff 55%, #eaf4ff 100%);
    height: auto;
    min-height: 44px;
}
.mps-trust-badge--product .mps-trust-icon-col {
    padding: 10px 14px;
}
.mps-trust-badge--product .mps-trust-icon-col svg {
    width: 22px;
    height: 22px;
}
.mps-trust-badge--product .mps-trust-title-text {
    color: var(--mps-footer-navy);
    font-size: 13px;
}

/* =========================================================
   Footer newsletter form — disable scroll-in animation
   The form widget ships with Elementor's fadeInRight entrance,
   which keeps the field hidden (opacity:0) until scrolled into
   view. Force it visible at all times.
   ========================================================= */
.elementor-element-a9bb48e.elementor-invisible,
.elementor-element-a9bb48e.elementor-invisible.animated {
    visibility: visible !important;
    opacity: 1 !important;
    animation: none !important;
}
.elementor-element-a9bb48e.animated {
    animation: none !important;
}

/* =========================================================
   Product page — countdown timer strip
   Brand-coloured port of the Machmad `.timer_wrapper`:
   navy gradient body, lime accent on seconds + ticking dot,
   French copy, LTR direction. Sits directly under the
   shipping/returns card (`.mps-ship-badge`).
   ========================================================= */
@keyframes mpsCountdownTick {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.55; }
}

.mps-countdown {
    direction: ltr;
    text-align: left;
    width: 100%;
    margin: 10px 0 14px;
    padding: 12px 16px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--mps-footer-navy, #032139) 0%, var(--mps-footer-navy-2, #0a2f4d) 100%);
    border: 1px solid rgba(203, 255, 0, 0.28);
    box-shadow: 0 2px 6px rgba(3, 33, 57, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 14px;
    font-family: inherit;
    position: relative;
    overflow: hidden;
}

/* Inline urgency badge */
.mps-countdown__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.78);
    text-transform: none;
}
.mps-countdown__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--mps-footer-lime, #CBFF00);
    box-shadow: 0 0 0 3px rgba(203, 255, 0, 0.18);
    animation: mpsCountdownTick 1.6s ease-in-out infinite;
}

/* Timer row */
.mps-countdown__timer {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}
.mps-countdown__block {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}
.mps-countdown__num {
    font-size: 26px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
    min-width: 1.6ch;
    text-align: center;
    display: inline-block;
}
.mps-countdown__block--seconds .mps-countdown__num {
    color: var(--mps-footer-lime, #CBFF00);
    animation: mpsCountdownTick 1s ease-in-out infinite;
}
.mps-countdown__unit {
    font-size: 9px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.55);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.mps-countdown__sep {
    font-size: 22px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.25);
    line-height: 1;
    padding: 0 2px;
}

/* Stock line */
.mps-countdown__stock {
    flex-basis: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.6);
    letter-spacing: 0.02em;
}
.mps-countdown__stock-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--mps-footer-lime, #CBFF00);
    animation: mpsCountdownTick 1.6s ease-in-out infinite;
}

/* Phrase below */
.mps-countdown__phrase {
    flex-basis: 100%;
    margin: 0;
    text-align: center;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.65);
}

@media (max-width: 767px) {
    .mps-countdown {
        padding: 10px 12px;
        gap: 6px 10px;
    }
    .mps-countdown__num { font-size: 22px; }
    .mps-countdown__sep { font-size: 18px; }
    .mps-countdown__badge { font-size: 10px; }
    .mps-countdown__phrase { font-size: 10px; }
}
.mps-trust-badge--product .mps-trust-pill {
    font-size: 10px;
    padding: 2px 8px;
}
/* Show secure-inline (hidden by default base rule) and style for light bg */
.mps-trust-badge--product .mps-trust-secure-inline {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: rgba(3, 33, 57, 0.78);
    flex-shrink: 0;
}
.mps-trust-badge--product .mps-trust-secure-inline svg {
    width: 14px;
    height: 14px;
    fill: var(--mps-footer-navy);
    flex-shrink: 0;
    opacity: 0.85;
}
.mps-trust-badge--product .mps-trust-secure-text {
    color: var(--mps-footer-navy);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    opacity: 0.85;
}
/* Bigger payment card icons on desktop product page */
.mps-trust-badge--product .mps-trust-payment-slot .elementor-icon-list-icon {
    width: 36px !important;
    height: 24px !important;
}
.mps-trust-badge--product .mps-trust-payment-slot .elementor-icon-list-icon svg {
    width: 36px !important;
    height: 24px !important;
    max-width: 36px !important;
    max-height: 24px !important;
    fill: var(--mps-footer-navy) !important;
}
.mps-trust-badge--product .mps-trust-payment-slot .elementor-icon-list-items {
    gap: 2px !important;
}

/* Mobile: keep secure-inline visible for product variant, smaller icons */
@media (max-width: 767px) {
    .mps-trust-badge--product .mps-trust-secure-inline {
        display: inline-flex;
    }
    .mps-trust-badge--product .mps-trust-secure-text {
        font-size: 9px;
    }
    .mps-trust-badge--product .mps-trust-title-text {
        font-size: 11px;
    }
    .mps-trust-badge--product .mps-trust-payment-slot .elementor-icon-list-icon,
    .mps-trust-badge--product .mps-trust-payment-slot .elementor-icon-list-icon svg {
        width: 28px !important;
        height: 20px !important;
        max-width: 28px !important;
        max-height: 20px !important;
    }
    .mps-trust-badge--product .mps-trust-content-inline {
        gap: 6px;
    }
}

/* ============================================================
   Product page — Machmad-style rating pill (rating + reviews)
   ============================================================ */
.mps-rating-pill-wrap {
    direction: ltr;
    text-align: left;
    margin: 0 0 15px;
    line-height: 1;
}
.mps-rating-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 7px 14px;
    background: #fdf6e7;
    border: 1px solid #ece1c4;
    border-radius: 100px;
    color: var(--mps-footer-navy, #032139);
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    box-shadow: none;
}
.mps-rating-pill__stars {
    display: inline-flex;
    align-items: center;
    gap: 1px;
    color: #f5a623;
}
.mps-rating-pill__stars svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}
.mps-rating-pill__star-half {
    color: #f5a623;
}
.mps-rating-pill__divider {
    width: 1px;
    height: 14px;
    background: #ece1c4;
}
.mps-rating-pill__info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.mps-rating-pill__check {
    display: inline-flex;
    color: #16a34a;
}
.mps-rating-pill__check svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}
.mps-rating-pill__text {
    color: var(--mps-footer-navy, #032139);
    font-weight: 600;
    letter-spacing: 0.1px;
}

/* ============================================================
   Product page — Trustpilot reviews section (Machmad-faithful)
   Scoped to Elementor section .elementor-element-045cd2d
   Card DOM: .elementor-testimonial > __header(__image,__cite(__name,__title),__icon) + __content(__text)
   Note: __name = review title, __title = author (Elementor's naming is backwards)
   ============================================================ */

/* Outer section — open layout, no cream card wrapper */
.elementor-element-045cd2d {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: clamp(28px, 4vw, 56px) clamp(12px, 2vw, 24px) !important;
    margin: clamp(24px, 4vw, 48px) auto !important;
    max-width: 1180px;
}

.elementor-element-045cd2d > .elementor-container {
    align-items: center;
    gap: clamp(16px, 3vw, 40px);
}

/* ---------- LEFT: score panel ---------- */
.elementor-element-045cd2d .elementor-element-dfaea28 > .elementor-widget-wrap {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 8px 12px;
    text-align: center;
}

/* "Excellent" — medium weight, normal case (Machmad style) */
.elementor-element-045cd2d .elementor-element-dc86f5f .elementor-heading-title {
    font-family: inherit;
    font-size: clamp(22px, 2.2vw, 28px) !important;
    font-weight: 600;
    color: #2a3744;
    letter-spacing: normal;
    text-transform: none;
    margin: 0;
    line-height: 1.1;
}

.elementor-element-045cd2d .elementor-element-1fd1884 { text-align: center; }
.elementor-element-045cd2d .elementor-element-1fd1884 img {
    max-width: 200px;
    width: 100%;
    height: auto;
    display: inline-block;
}

.elementor-element-045cd2d .elementor-element-d901e75 .elementor-heading-title {
    font-family: inherit;
    font-size: 13px !important;
    color: #5b6976;
    font-weight: 400;
    line-height: 1.45;
    max-width: 240px;
    margin: 0 auto;
    letter-spacing: normal;
    text-transform: none;
}

.elementor-element-045cd2d .elementor-element-0b25b2b { text-align: center; margin-top: 4px; }
.elementor-element-045cd2d .elementor-element-0b25b2b img {
    max-width: 110px;
    height: auto;
    display: inline-block;
}

/* ---------- RIGHT: heading + carousel ---------- */
.elementor-element-045cd2d .elementor-element-6b4b9b5 > .elementor-widget-wrap {
    position: relative;
    padding: 0 8px;
}

.elementor-element-045cd2d .elementor-element-aba18f1 .elementor-heading-title {
    font-family: inherit;
    font-size: clamp(20px, 2vw, 26px) !important;
    font-weight: 600;
    color: #2a3744;
    text-align: center;
    margin: 0 0 24px;
    letter-spacing: -0.01em;
    line-height: 1.25;
    text-transform: none;
}

/* Swiper container — side padding leaves a gutter for arrows so they don't overlap cards */
.elementor-element-045cd2d .elementor-element-3d1b25f {
    position: relative;
}
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-main-swiper {
    padding: 4px 52px 8px;
}

.elementor-element-045cd2d .elementor-element-3d1b25f .swiper-slide {
    box-sizing: border-box;
    height: auto;
    padding: 0 8px;
}

/* Review card — center-aligned, neutral border, no cream */
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial {
    background: #ffffff;
    border: 1px solid #e7e7e7;
    border-radius: 14px;
    padding: 28px 22px 20px;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
    box-shadow: none;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial:hover {
    box-shadow: 0 8px 24px rgba(3, 33, 57, 0.06);
    border-color: #d8d8d8;
}

/* Dissolve __header and __cite wrappers so grandchildren become flex siblings */
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__header,
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__cite {
    display: contents;
}

/* Hide chevron icon — replaced by author divider below */
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__icon {
    display: none;
}

/* Visual order: image → title → body → divider+author */
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__image {
    order: 1;
    margin: 0;
}
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__image img {
    width: 96px !important;
    height: 96px !important;
    object-fit: cover;
    border-radius: 12px;
    border: none;
    background: transparent;
    padding: 0;
    display: block;
}

/* __name = review title (Elementor backwards naming) */
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__name {
    order: 2;
    display: block;
    font-family: inherit;
    font-size: 15px !important;
    font-weight: 700;
    color: var(--mps-footer-navy, #032139);
    line-height: 1.3;
    letter-spacing: normal;
    text-transform: none;
    font-style: normal;
}

.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__content {
    order: 3;
    margin: 0;
    width: 100%;
}
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__text {
    font-family: inherit;
    font-size: 13.5px !important;
    color: #4a5563;
    line-height: 1.6;
    font-weight: 400;
    margin: 0;
    /* Clamp every review to ~4 lines so card heights match Machmad */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* __title = author (Elementor backwards naming) — with top divider, pinned to bottom */
.elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__title {
    order: 4;
    display: block;
    width: 100%;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid #ececec;
    font-family: inherit;
    font-size: 13px !important;
    font-weight: 700;
    color: #2a3744;
    font-style: normal;
    letter-spacing: normal;
}

/* Arrow buttons — muted gray circular (Machmad style), parked in the swiper gutter */
.elementor-element-045cd2d .elementor-swiper-button,
.elementor-element-045cd2d .swiper-button-next,
.elementor-element-045cd2d .swiper-button-prev {
    width: 40px !important;
    height: 40px !important;
    background: #f4f4f4 !important;
    border: 1px solid #e7e7e7;
    border-radius: 50%;
    box-shadow: none;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    color: #6b7785 !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    top: 50% !important;
    margin-top: -20px !important;
}

.elementor-element-045cd2d .elementor-swiper-button-prev,
.elementor-element-045cd2d .swiper-button-prev {
    left: 4px !important;
    right: auto !important;
}
.elementor-element-045cd2d .elementor-swiper-button-next,
.elementor-element-045cd2d .swiper-button-next {
    right: 4px !important;
    left: auto !important;
}

.elementor-element-045cd2d .elementor-swiper-button:hover,
.elementor-element-045cd2d .swiper-button-next:hover,
.elementor-element-045cd2d .swiper-button-prev:hover {
    background: #ffffff !important;
    color: var(--mps-footer-navy, #032139) !important;
    border-color: #d8d8d8;
}

.elementor-element-045cd2d .elementor-swiper-button svg,
.elementor-element-045cd2d .swiper-button-next svg,
.elementor-element-045cd2d .swiper-button-prev svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.elementor-element-045cd2d .swiper-button-next::after,
.elementor-element-045cd2d .swiper-button-prev::after {
    display: none;
}

/* Pagination dots — small circles, orange active (Machmad style) */
.elementor-element-045cd2d .swiper-pagination {
    position: static;
    margin-top: 20px;
    display: flex;
    gap: 8px;
    justify-content: center;
    width: 100%;
}

.elementor-element-045cd2d .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background: #d4d4d4;
    opacity: 1;
    border-radius: 50%;
    transition: background 0.2s ease;
}

.elementor-element-045cd2d .swiper-pagination-bullet-active {
    background: #f5a623;
    width: 8px;
}

/* Bottom muted label */
.elementor-element-045cd2d .elementor-element-a0e0ded .elementor-heading-title {
    font-family: inherit;
    font-size: 12.5px !important;
    font-weight: 400;
    color: #8a93a0;
    text-align: center;
    margin: 20px 0 0;
    letter-spacing: normal;
    text-transform: none;
}
.elementor-element-045cd2d .elementor-element-a0e0ded .elementor-heading-title b {
    font-weight: 400;
}

/* Mobile */
@media (max-width: 767px) {
    .elementor-element-045cd2d {
        padding: 24px 8px !important;
    }
    /* Override .elementor-reverse-mobile: put stars + Trustpilot logo column on top, reviews below */
    .elementor-element-045cd2d > .elementor-container {
        gap: 16px;
        flex-direction: column;
    }
    .elementor-element-045cd2d > .elementor-container > .elementor-element-dfaea28 { order: 1 !important; }
    .elementor-element-045cd2d > .elementor-container > .elementor-element-6b4b9b5 { order: 2 !important; }
    .elementor-element-045cd2d .elementor-element-dc86f5f .elementor-heading-title {
        font-size: 20px !important;
    }
    .elementor-element-045cd2d .elementor-element-aba18f1 .elementor-heading-title {
        font-size: 19px !important;
        margin-bottom: 18px;
    }
    .elementor-element-045cd2d .elementor-element-1fd1884 img {
        max-width: 180px;
    }
    .elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial {
        padding: 22px 16px 16px;
    }
    .elementor-element-045cd2d .elementor-element-3d1b25f .elementor-testimonial__image img {
        width: 84px !important;
        height: 84px !important;
    }
    .elementor-element-045cd2d .elementor-swiper-button,
    .elementor-element-045cd2d .swiper-button-next,
    .elementor-element-045cd2d .swiper-button-prev {
        width: 34px !important;
        height: 34px !important;
        margin-top: -17px !important;
    }
    .elementor-element-045cd2d .elementor-element-3d1b25f .elementor-main-swiper {
        padding: 4px 40px 8px;
    }
    .elementor-element-045cd2d .elementor-swiper-button-prev,
    .elementor-element-045cd2d .swiper-button-prev { left: 2px !important; }
    .elementor-element-045cd2d .elementor-swiper-button-next,
    .elementor-element-045cd2d .swiper-button-next { right: 2px !important; }
}

/* ============================================================
   Homepage — Trustpilot reviews section (mirror of product page)
   Scoped to Elementor section .elementor-element-10173e6e
   ID map:
     section    045cd2d -> 10173e6e
     left col   dfaea28 -> 35fc99ac
     "Excellent"       dc86f5f  -> 134a41bc
     stars img         1fd1884  -> 525d882
     rating text       d901e75  -> 1dc2c9a2
     trustpilot logo   0b25b2b  -> b256f4d
     right col  6b4b9b5 -> 18783bcf
     heading           aba18f1  -> 14f2283
     reviews widget    3d1b25f  -> a0acb67
   ============================================================ */

.elementor-element-10173e6e {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: clamp(28px, 4vw, 56px) clamp(12px, 2vw, 24px) !important;
    margin: clamp(24px, 4vw, 48px) auto !important;
    max-width: 1180px;
}

.elementor-element-10173e6e > .elementor-container {
    align-items: center;
    gap: clamp(16px, 3vw, 40px);
}

/* LEFT: score panel */
.elementor-element-10173e6e .elementor-element-35fc99ac > .elementor-widget-wrap {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 8px 12px;
    text-align: center;
}

.elementor-element-10173e6e .elementor-element-134a41bc .elementor-heading-title {
    font-family: inherit;
    font-size: clamp(22px, 2.2vw, 28px) !important;
    font-weight: 600;
    color: #2a3744;
    letter-spacing: normal;
    text-transform: none;
    margin: 0;
    line-height: 1.1;
}

.elementor-element-10173e6e .elementor-element-525d882 { text-align: center; }
.elementor-element-10173e6e .elementor-element-525d882 img {
    max-width: 200px;
    width: 100%;
    height: auto;
    display: inline-block;
}

.elementor-element-10173e6e .elementor-element-1dc2c9a2 .elementor-heading-title {
    font-family: inherit;
    font-size: 13px !important;
    color: #5b6976;
    font-weight: 400;
    line-height: 1.45;
    max-width: 240px;
    margin: 0 auto;
    letter-spacing: normal;
    text-transform: none;
}

.elementor-element-10173e6e .elementor-element-b256f4d { text-align: center; margin-top: 4px; }
.elementor-element-10173e6e .elementor-element-b256f4d img {
    max-width: 110px;
    height: auto;
    display: inline-block;
}

/* RIGHT: heading + carousel */
.elementor-element-10173e6e .elementor-element-18783bcf > .elementor-widget-wrap {
    position: relative;
    padding: 0 8px;
}

.elementor-element-10173e6e .elementor-element-14f2283 .elementor-heading-title {
    font-family: inherit;
    font-size: clamp(20px, 2vw, 26px) !important;
    font-weight: 600;
    color: #2a3744;
    text-align: center;
    margin: 0 0 24px;
    letter-spacing: -0.01em;
    line-height: 1.25;
    text-transform: none;
}

.elementor-element-10173e6e .elementor-element-a0acb67 {
    position: relative;
}
.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-main-swiper {
    padding: 4px 52px 8px;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .swiper-slide {
    box-sizing: border-box;
    height: auto;
    padding: 0 8px;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial {
    background: #ffffff;
    border: 1px solid #e7e7e7;
    border-radius: 14px;
    padding: 28px 22px 20px;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
    box-shadow: none;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial:hover {
    box-shadow: 0 8px 24px rgba(3, 33, 57, 0.06);
    border-color: #d8d8d8;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__header,
.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__cite {
    display: contents;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__icon {
    display: none;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__image {
    order: 1;
    margin: 0;
}
.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__image img {
    width: 96px !important;
    height: 96px !important;
    object-fit: cover;
    border-radius: 12px;
    border: none;
    background: transparent;
    padding: 0;
    display: block;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__name {
    order: 2;
    display: block;
    font-family: inherit;
    font-size: 15px !important;
    font-weight: 700;
    color: var(--mps-footer-navy, #032139);
    line-height: 1.3;
    letter-spacing: normal;
    text-transform: none;
    font-style: normal;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__content {
    order: 3;
    margin: 0;
    width: 100%;
}
.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__text {
    font-family: inherit;
    font-size: 13.5px !important;
    color: #4a5563;
    line-height: 1.6;
    font-weight: 400;
    margin: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
    text-overflow: ellipsis;
}

.elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__title {
    order: 4;
    display: block;
    width: 100%;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid #ececec;
    font-family: inherit;
    font-size: 13px !important;
    font-weight: 700;
    color: #2a3744;
    font-style: normal;
    letter-spacing: normal;
}

/* Arrows */
.elementor-element-10173e6e .elementor-swiper-button,
.elementor-element-10173e6e .swiper-button-next,
.elementor-element-10173e6e .swiper-button-prev {
    width: 40px !important;
    height: 40px !important;
    background: #f4f4f4 !important;
    border: 1px solid #e7e7e7;
    border-radius: 50%;
    box-shadow: none;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    color: #6b7785 !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    top: 50% !important;
    margin-top: -20px !important;
}

.elementor-element-10173e6e .elementor-swiper-button-prev,
.elementor-element-10173e6e .swiper-button-prev {
    left: 4px !important;
    right: auto !important;
}
.elementor-element-10173e6e .elementor-swiper-button-next,
.elementor-element-10173e6e .swiper-button-next {
    right: 4px !important;
    left: auto !important;
}

.elementor-element-10173e6e .elementor-swiper-button:hover,
.elementor-element-10173e6e .swiper-button-next:hover,
.elementor-element-10173e6e .swiper-button-prev:hover {
    background: #ffffff !important;
    color: var(--mps-footer-navy, #032139) !important;
    border-color: #d8d8d8;
}

.elementor-element-10173e6e .elementor-swiper-button svg,
.elementor-element-10173e6e .swiper-button-next svg,
.elementor-element-10173e6e .swiper-button-prev svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.elementor-element-10173e6e .swiper-button-next::after,
.elementor-element-10173e6e .swiper-button-prev::after {
    display: none;
}

.elementor-element-10173e6e .swiper-pagination {
    position: static;
    margin-top: 20px;
    display: flex;
    gap: 8px;
    justify-content: center;
    width: 100%;
}

.elementor-element-10173e6e .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background: #d4d4d4;
    opacity: 1;
    border-radius: 50%;
    transition: background 0.2s ease;
}

.elementor-element-10173e6e .swiper-pagination-bullet-active {
    background: #f5a623;
    width: 8px;
}

/* Tablet */
@media (max-width: 1024px) {
    .elementor-element-10173e6e {
        padding: 32px 16px !important;
    }
    .elementor-element-10173e6e > .elementor-container {
        flex-direction: column;
        align-items: stretch;
        gap: 24px;
    }
    .elementor-element-10173e6e > .elementor-container > .elementor-column {
        width: 100% !important;
    }
    .elementor-element-10173e6e .elementor-element-35fc99ac > .elementor-widget-wrap {
        align-items: center;
        text-align: center;
    }
    .elementor-element-10173e6e .elementor-element-134a41bc,
    .elementor-element-10173e6e .elementor-element-525d882,
    .elementor-element-10173e6e .elementor-element-1dc2c9a2,
    .elementor-element-10173e6e .elementor-element-b256f4d {
        text-align: center;
    }
    .elementor-element-10173e6e .elementor-element-14f2283 .elementor-heading-title {
        text-align: center;
    }
    .elementor-element-10173e6e .elementor-element-a0acb67 .elementor-main-swiper {
        padding: 4px 56px 8px;
    }
    .elementor-element-10173e6e .elementor-swiper-button-prev,
    .elementor-element-10173e6e .swiper-button-prev { left: 6px !important; }
    .elementor-element-10173e6e .elementor-swiper-button-next,
    .elementor-element-10173e6e .swiper-button-next { right: 6px !important; }
}

/* Mobile */
@media (max-width: 767px) {
    .elementor-element-10173e6e {
        padding: 24px 8px !important;
    }
    .elementor-element-10173e6e > .elementor-container {
        gap: 16px;
        flex-direction: column;
    }
    .elementor-element-10173e6e > .elementor-container > .elementor-element-35fc99ac { order: 1 !important; }
    .elementor-element-10173e6e > .elementor-container > .elementor-element-18783bcf { order: 2 !important; }
    .elementor-element-10173e6e .elementor-element-134a41bc .elementor-heading-title {
        font-size: 20px !important;
    }
    .elementor-element-10173e6e .elementor-element-14f2283 .elementor-heading-title {
        font-size: 19px !important;
        margin-bottom: 18px;
    }
    .elementor-element-10173e6e .elementor-element-525d882 img {
        max-width: 180px;
    }
    .elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial {
        padding: 22px 16px 16px;
    }
    .elementor-element-10173e6e .elementor-element-a0acb67 .elementor-testimonial__image img {
        width: 84px !important;
        height: 84px !important;
    }
    .elementor-element-10173e6e .elementor-swiper-button,
    .elementor-element-10173e6e .swiper-button-next,
    .elementor-element-10173e6e .swiper-button-prev {
        width: 34px !important;
        height: 34px !important;
        margin-top: -17px !important;
    }
    .elementor-element-10173e6e .elementor-element-a0acb67 .elementor-main-swiper {
        padding: 4px 40px 8px;
    }
    .elementor-element-10173e6e .elementor-swiper-button-prev,
    .elementor-element-10173e6e .swiper-button-prev { left: 2px !important; }
    .elementor-element-10173e6e .elementor-swiper-button-next,
    .elementor-element-10173e6e .swiper-button-next { right: 2px !important; }
}

/* ============================================================
 * HOMEPAGE — Partner logos marquee (Elementor gallery #9ab70bc)
 * Visual reference: machmad-il.com #logo-de-confiance
 * Converts Elementor masonry gallery into a continuous LTR marquee
 * inside a glassy white pill card. JS in functions.php restructures
 * the gallery items into .mps-marquee-track > 2x .mps-marquee-set.
 * ============================================================ */
.elementor-element-9ab70bc {
    max-width: 1232px;
    margin: 0 auto;
    padding: 50px 0 !important;
    background: rgba(255, 255, 255, 0.94);
    border-radius: 34px;
    border: 1px solid rgba(13, 30, 52, 0.08);
    box-shadow: 0 30px 80px rgba(6, 16, 43, 0.08);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    backdrop-filter: saturate(180%) blur(14px);
    overflow: hidden;
}

.elementor-element-9ab70bc .e-gallery-container {
    display: block !important;
    flex-wrap: nowrap !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden;
}

.elementor-element-9ab70bc .mps-marquee-track {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    align-items: center;
    animation: mps-logo-marquee 40s linear infinite;
    will-change: transform;
}

.elementor-element-9ab70bc:hover .mps-marquee-track {
    animation-play-state: paused;
}

.elementor-element-9ab70bc .mps-marquee-set {
    display: flex;
    flex-wrap: nowrap;
    flex: 0 0 auto;
    align-items: center;
}

.elementor-element-9ab70bc .e-gallery-item {
    position: static !important;
    width: auto !important;
    height: 80px !important;
    flex: 0 0 auto;
    padding: 0 40px !important;
    transform: none !important;
    top: auto !important;
    left: auto !important;
    opacity: 1 !important;
}

.elementor-element-9ab70bc .e-gallery-image {
    position: static !important;
    width: 180px;
    height: 80px;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}

/* Neutralize Elementor's masonry overlay/hover effects so logos stay clean */
.elementor-element-9ab70bc .elementor-gallery-item__overlay,
.elementor-element-9ab70bc .elementor-gallery-item__content,
.elementor-element-9ab70bc .elementor-gallery-item__title,
.elementor-element-9ab70bc .elementor-gallery-item__description {
    display: none !important;
}

@keyframes mps-logo-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .elementor-element-9ab70bc .mps-marquee-track {
        animation: none;
    }
}

@media (max-width: 767px) {
    .elementor-element-9ab70bc {
        padding: 28px 0 !important;
        border-radius: 24px;
    }
    .elementor-element-9ab70bc .e-gallery-item {
        height: 56px !important;
        padding: 0 26px !important;
    }
    .elementor-element-9ab70bc .e-gallery-image {
        width: 130px;
        height: 56px;
    }
    .elementor-element-9ab70bc .mps-marquee-track {
        animation-duration: 28s;
    }
}

/* ============================================================
   FAQ section — premium accordion design system
   Applied via `.mps-faq-premium` class injected by mps_faq_premium()
   on both the homepage FAQ (#b22b259) and the single-product FAQ.
   Visual reference: machmad-il.com pfaq design, recoloured with
   Mister Padel brand palette (navy + lime).
   ============================================================ */
.mps-faq-premium {
    position: relative;
    padding: 60px 0 100px !important;
    overflow: hidden;
}
.mps-faq-premium::before {
    content: '';
    position: absolute;
    top: -10%; right: -8%;
    width: 38%; height: 70%;
    background: linear-gradient(160deg, rgba(203, 255, 0, 0.06) 0%, transparent 60%);
    transform: skewX(-12deg);
    pointer-events: none;
    z-index: 0;
}
.mps-faq-premium::after {
    content: '';
    position: absolute;
    bottom: -8%; left: -6%;
    width: 28%; height: 75%;
    background: linear-gradient(200deg, rgba(3, 33, 57, 0.05) 0%, transparent 55%);
    transform: skewX(8deg);
    pointer-events: none;
    z-index: 0;
}
.mps-faq-premium > .elementor-container {
    position: relative;
    z-index: 1;
    gap: 56px;
    align-items: flex-start !important;
}

/* Left column — image as premium card (homepage only; inner IDs harmless on product) */
.mps-faq-premium .elementor-element-d383ef7 {
    position: sticky;
    top: 100px;
}
.mps-faq-premium .elementor-element-128e4bd {
    position: relative;
    border-radius: 34px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 255, 0.96));
    box-shadow: 0 36px 96px rgba(3, 33, 57, 0.18);
}
.mps-faq-premium .elementor-element-128e4bd::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 1.5px solid rgba(203, 255, 0, 0.28);
    border-radius: 34px;
    pointer-events: none;
    z-index: 2;
}
.mps-faq-premium .elementor-element-128e4bd::after {
    content: '';
    position: absolute;
    top: 18px; right: 18px;
    width: 140px; height: 140px;
    background: radial-gradient(circle at top right, rgba(203, 255, 0, 0.22), transparent 60%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 1;
}
.mps-faq-premium .elementor-element-128e4bd img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
}
/* Disable Elementor scroll entrance animation on this image */
.mps-faq-premium .elementor-element-128e4bd.animated,
.mps-faq-premium .elementor-element-128e4bd.elementor-invisible {
    animation: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Count badge — injected by JS (mps_faq_premium hook) above the heading */
.mps-faq-premium .mps-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(3, 33, 57, 0.08);
    border: 1px solid rgba(3, 33, 57, 0.18);
    border-radius: 999px;
    padding: 6px 14px;
    font-family: Montserrat, sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #032139;
    margin-bottom: 16px;
    line-height: 1;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}
.mps-faq-premium .mps-faq-badge svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    flex-shrink: 0;
}
.mps-faq-premium .mps-faq-badge strong {
    color: #032139;
    background: #CBFF00;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(203, 255, 0, 0.35);
}

/* Heading — "Questions fréquentes" + animated underline.
   Targets the first heading widget in the FAQ section so it works
   regardless of Elementor widget ID (home vs product). */
.mps-faq-premium .elementor-widget-heading {
    position: relative;
    margin-bottom: 10px !important;
}
.mps-faq-premium .elementor-widget-heading .elementor-heading-title {
    color: #032139 !important;
    font-family: Montserrat, sans-serif !important;
    font-size: clamp(28px, 3.4vw, 42px) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    margin: 0 0 8px 0 !important;
    letter-spacing: -0.5px;
}
.mps-faq-premium .elementor-widget-heading::after {
    content: '';
    display: block;
    width: 0;
    height: 3px;
    background: #CBFF00;
    border-radius: 2px;
    box-shadow: 0 0 12px rgba(203, 255, 0, 0.55);
    transition: width 0.9s 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.mps-faq-premium.mps-faq-in-view .elementor-widget-heading::after {
    width: 84px;
}

/* Quote / subtitle (homepage only) */
.mps-faq-premium .elementor-element-27c19a7 {
    margin-bottom: 28px !important;
}
.mps-faq-premium .elementor-element-27c19a7 p {
    color: #1a2538;
    font-size: 15px;
    line-height: 1.7;
    margin: 0 0 6px 0;
}
.mps-faq-premium .elementor-element-27c19a7 p:last-child {
    color: #5b6473;
    font-size: 13px;
    font-style: italic;
    margin-top: 4px;
}

/* Accordion container — strip Elementor defaults */
.mps-faq-premium .elementor-accordion {
    border: none !important;
    background: transparent !important;
}

/* Accordion item — clean horizontal rule + left accent bar */
.mps-faq-premium .elementor-accordion-item {
    border: none !important;
    border-bottom: 1px solid rgba(3, 33, 57, 0.1) !important;
    background: transparent !important;
    position: relative;
    margin: 0 !important;
}
.mps-faq-premium .elementor-accordion-item:first-child {
    border-top: 1px solid rgba(3, 33, 57, 0.1) !important;
}
.mps-faq-premium .elementor-accordion-item::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 3px;
    height: 0;
    background: linear-gradient(180deg, #032139 0%, #0a3b66 100%);
    border-radius: 0 2px 2px 0;
    transition: height 0.55s 0.1s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.4s ease;
    z-index: 1;
    pointer-events: none;
}
.mps-faq-premium .elementor-accordion-item:has(.elementor-tab-title.elementor-active)::before {
    height: 100%;
    box-shadow: 0 0 12px rgba(203, 255, 0, 0.5);
}

/* Tab title (question) */
.mps-faq-premium .elementor-tab-title {
    padding: 22px 18px 22px 24px !important;
    background: transparent !important;
    border: none !important;
    display: flex !important;
    align-items: center;
    gap: 16px;
    cursor: pointer;
    transition: background 0.25s ease;
}
.mps-faq-premium .elementor-tab-title:hover {
    background: rgba(3, 33, 57, 0.025) !important;
}
.mps-faq-premium .elementor-tab-title .elementor-accordion-title {
    color: #032139 !important;
    font-family: Montserrat, sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    flex: 1;
    text-align: left;
    text-decoration: none !important;
    transition: color 0.25s ease, transform 0.3s ease;
}
.mps-faq-premium .elementor-tab-title:hover .elementor-accordion-title {
    color: #1d6fb8 !important;
    transform: translateX(2px);
}
.mps-faq-premium .elementor-tab-title.elementor-active .elementor-accordion-title {
    color: #032139 !important;
    font-weight: 700 !important;
}

/* Icon — hide native SVG, restyle wrapper as circular ± */
.mps-faq-premium .elementor-accordion-icon-closed,
.mps-faq-premium .elementor-accordion-icon-opened {
    display: none !important;
}
.mps-faq-premium .elementor-accordion-icon {
    position: relative;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50%;
    border: 2px solid #032139;
    background: transparent;
    color: #032139 !important;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                background 0.35s ease,
                border-color 0.35s ease,
                color 0.35s ease,
                box-shadow 0.4s ease;
}
.mps-faq-premium .elementor-accordion-icon::before,
.mps-faq-premium .elementor-accordion-icon::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    background: currentColor;
    border-radius: 1px;
}
.mps-faq-premium .elementor-accordion-icon::before {
    width: 12px;
    height: 2px;
    transform: translate(-50%, -50%);
}
.mps-faq-premium .elementor-accordion-icon::after {
    width: 2px;
    height: 12px;
    transform: translate(-50%, -50%);
}
.mps-faq-premium .elementor-tab-title:hover .elementor-accordion-icon {
    background: rgba(203, 255, 0, 0.18);
    border-color: #032139;
}
.mps-faq-premium .elementor-tab-title.elementor-active .elementor-accordion-icon {
    transform: rotate(45deg);
    background: #032139;
    border-color: #032139;
    color: #CBFF00 !important;
    box-shadow: 0 6px 18px rgba(3, 33, 57, 0.28),
                0 0 0 4px rgba(203, 255, 0, 0.18);
}

/* Tab content (answer) */
.mps-faq-premium .elementor-tab-content {
    padding: 4px 24px 26px 24px !important;
    border: none !important;
    background: transparent !important;
    color: #1a2538 !important;
    font-family: Montserrat, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.75 !important;
}
.mps-faq-premium .elementor-tab-content p {
    margin: 0 0 12px 0;
    color: inherit;
}
.mps-faq-premium .elementor-tab-content p:last-child {
    margin-bottom: 0;
}
.mps-faq-premium .elementor-tab-content a {
    color: #1d6fb8;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
.mps-faq-premium .elementor-tab-content ul,
.mps-faq-premium .elementor-tab-content ol {
    padding-left: 22px;
    margin: 8px 0;
}
.mps-faq-premium .elementor-tab-content li {
    margin-bottom: 6px;
    line-height: 1.7;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .mps-faq-premium .elementor-widget-heading::after {
        width: 84px !important;
        transition: none !important;
    }
    .mps-faq-premium .elementor-accordion-item::before,
    .mps-faq-premium .elementor-accordion-icon,
    .mps-faq-premium .elementor-element-128e4bd img,
    .mps-faq-premium .elementor-tab-title .elementor-accordion-title {
        transition: none !important;
    }
}

/* Tablet */
@media (max-width: 1024px) {
    .mps-faq-premium > .elementor-container {
        flex-direction: column;
        align-items: stretch;
        gap: 36px;
    }
    .mps-faq-premium > .elementor-container > .elementor-column {
        width: 100% !important;
    }
    .mps-faq-premium .elementor-element-d383ef7 {
        position: relative;
        top: auto;
        max-width: 520px;
        margin: 0 auto;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .mps-faq-premium {
        padding: 40px 0 60px !important;
    }
    .mps-faq-premium > .elementor-container {
        gap: 24px;
    }
    .mps-faq-premium .elementor-element-d383ef7 {
        max-width: 460px;
        margin: 0 auto 8px;
    }
    .mps-faq-premium .elementor-element-128e4bd,
    .mps-faq-premium .elementor-element-128e4bd::before {
        border-radius: 26px;
    }
    .mps-faq-premium .elementor-element-128e4bd::after {
        width: 100px;
        height: 100px;
    }
    .mps-faq-premium .elementor-widget-heading .elementor-heading-title {
        font-size: 26px !important;
    }
    .mps-faq-premium .elementor-tab-title {
        padding: 18px 14px 18px 18px !important;
        gap: 12px;
    }
    .mps-faq-premium .elementor-tab-title .elementor-accordion-title {
        font-size: 14px !important;
        line-height: 1.4 !important;
    }
    .mps-faq-premium .elementor-accordion-icon {
        flex: 0 0 26px;
        width: 26px;
        height: 26px;
    }
    .mps-faq-premium .elementor-accordion-icon::before { width: 10px; }
    .mps-faq-premium .elementor-accordion-icon::after  { height: 10px; }
    .mps-faq-premium .elementor-tab-content {
        padding: 2px 18px 20px 18px !important;
        font-size: 14px !important;
        line-height: 1.7 !important;
    }
}

/* ------------------------------------------------------------
   Single-column FAQ (product page = .elementor-col-100)
   The home FAQ uses col-50 + col-50 (image | content) and stays
   left-aligned. When the section is a single full-width column
   (product page), the wide 1110px accordion looks adrift and the
   heading's center alignment clashes with left-aligned items.
   Fix: constrain inner widget-wrap to a readable max-width and
   center-align badge + heading + underline. Accordion item text
   stays left-aligned within each row.
   ------------------------------------------------------------ */
.mps-faq-premium .elementor-col-100 > .elementor-widget-wrap {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.mps-faq-premium .elementor-col-100 .mps-faq-badge {
    margin-left: auto;
    margin-right: auto;
}
.mps-faq-premium .elementor-col-100 .elementor-widget-heading,
.mps-faq-premium .elementor-col-100 .elementor-widget-heading .elementor-heading-title {
    text-align: center !important;
}
.mps-faq-premium .elementor-col-100 .elementor-widget-heading::after {
    margin-left: auto;
    margin-right: auto;
}
/* Restore left alignment inside accordion rows */
.mps-faq-premium .elementor-col-100 .elementor-accordion,
.mps-faq-premium .elementor-col-100 .elementor-tab-title,
.mps-faq-premium .elementor-col-100 .elementor-tab-content {
    text-align: left;
}

/* Mobile (≤767px): both home and product collapse to single column.
   Center badge + heading + underline; keep accordion rows left-aligned. */
@media (max-width: 767px) {
    .mps-faq-premium > .elementor-container > .elementor-column > .elementor-widget-wrap {
        text-align: center;
        padding-left: 4px;
        padding-right: 4px;
    }
    .mps-faq-premium .mps-faq-badge {
        margin-left: auto;
        margin-right: auto;
    }
    .mps-faq-premium .elementor-widget-heading,
    .mps-faq-premium .elementor-widget-heading .elementor-heading-title {
        text-align: center !important;
    }
    .mps-faq-premium .elementor-widget-heading::after {
        margin-left: auto;
        margin-right: auto;
    }
    .mps-faq-premium .elementor-accordion,
    .mps-faq-premium .elementor-tab-title,
    .mps-faq-premium .elementor-tab-content {
        text-align: left;
    }
}

/* ============================================================
   FOOTER — Trust strip band (above footer)
   Replaces the old 4-icon grid that lived inside the footer
   (.elementor-element-d6b4a7e). Standalone full-bleed band
   inspired by esprit-padel-shop.com text-with-icons section.
   Light variant: icon left, title + subtitle right; mobile = slider.
   ============================================================ */

/* Hide the old in-footer trust items (replaced by the trust strip above the footer).
   - d6b4a7e: mobile 2x2 trust grid
   - 05c5842, 04a4831, c1f544c, 07084c3: per-column icon-list trust widgets inside the 4 footer columns */
.elementor-element-d6b4a7e,
.elementor-element-05c5842,
.elementor-element-04a4831,
.elementor-element-c1f544c,
.elementor-element-07084c3 {
    display: none !important;
}

.mps-trust-strip {
    background: #ffffff;
    color: var(--mps-atc-blue, #032139);
    padding: 36px 24px;
    border-top: 1px solid rgba(3, 33, 57, 0.08);
    border-bottom: 1px solid rgba(3, 33, 57, 0.08);
    font-family: Montserrat, sans-serif;
}
.mps-trust-strip__inner {
    max-width: 1320px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    align-items: center;
}
.mps-trust-strip__item {
    display: flex;
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 14px;
    padding: 4px 6px;
    transition: transform 0.25s ease;
}
.mps-trust-strip__item:hover {
    transform: translateY(-1px);
}
.mps-trust-strip__icon {
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--mps-atc-blue, #032139);
    background: transparent;
    border: none;
    border-radius: 0;
    transition: color 0.25s ease, transform 0.25s ease;
}
.mps-trust-strip__item:hover .mps-trust-strip__icon {
    color: #0a4a85;
    transform: scale(1.04);
}
.mps-trust-strip__icon svg {
    width: 48px;
    height: 48px;
    display: block;
    stroke-width: 1.8;
}
.mps-trust-strip__content {
    min-width: 0;
}
.mps-trust-strip .mps-trust-strip__title {
    margin: 0 0 2px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.1px;
    color: var(--mps-atc-blue, #032139);
    line-height: 1.25;
}
.mps-trust-strip .mps-trust-strip__subtitle {
    margin: 0;
    font-size: 13px;
    font-weight: 400;
    color: #5a6a7a;
    line-height: 1.4;
}

/* Tablet */
@media (max-width: 1024px) {
    .mps-trust-strip {
        padding: 30px 20px;
    }
    .mps-trust-strip__inner {
        gap: 18px;
    }
    .mps-trust-strip__icon {
        width: 48px;
        height: 48px;
    }
    .mps-trust-strip__icon svg {
        width: 42px;
        height: 42px;
    }
    .mps-trust-strip__title {
        font-size: 14px;
    }
    .mps-trust-strip__subtitle {
        font-size: 12px;
    }
}

/* Dots — hidden on desktop/tablet, only shown on mobile */
.mps-trust-strip__dots {
    display: none;
}

/* Mobile — horizontal snap slider with pagination dots */
@media (max-width: 740px) {
    .mps-trust-strip {
        padding: 22px 0 18px;
    }
    .mps-trust-strip__inner {
        display: flex;
        grid-template-columns: none;
        gap: 12px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        padding: 4px 16px 14px;
        scroll-padding-left: 16px;
        scroll-padding-right: 16px;
        scrollbar-width: none;
    }
    .mps-trust-strip__inner::-webkit-scrollbar {
        display: none;
    }
    .mps-trust-strip__item {
        flex: 0 0 82%;
        max-width: 320px;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        background: #f6f8fb;
        border: 1px solid rgba(3, 33, 57, 0.06);
        border-radius: 12px;
        padding: 14px 16px;
        gap: 12px;
    }
    .mps-trust-strip__icon {
        width: 44px;
        height: 44px;
    }
    .mps-trust-strip__icon svg {
        width: 40px;
        height: 40px;
    }
    .mps-trust-strip__title {
        font-size: 14px;
    }
    .mps-trust-strip__subtitle {
        font-size: 12px;
    }

    .mps-trust-strip__dots {
        display: flex;
        justify-content: center;
        gap: 8px;
        margin-top: 14px;
        padding: 0 16px;
    }
    .mps-trust-strip .mps-trust-strip__dot {
        appearance: none;
        -webkit-appearance: none;
        border: 0;
        padding: 0;
        margin: 0;
        width: 8px;
        height: 8px;
        min-width: 0;
        min-height: 0;
        border-radius: 50%;
        background: rgba(3, 33, 57, 0.22);
        box-shadow: none;
        cursor: pointer;
        transition: background 0.2s ease, width 0.2s ease, border-radius 0.2s ease;
    }
    .mps-trust-strip .mps-trust-strip__dot.is-active {
        background: var(--mps-atc-blue, #032139);
        width: 22px;
        border-radius: 4px;
    }
    .mps-trust-strip .mps-trust-strip__dot:hover {
        background: rgba(3, 33, 57, 0.45);
    }
    .mps-trust-strip .mps-trust-strip__dot.is-active:hover {
        background: var(--mps-atc-blue, #032139);
    }
    .mps-trust-strip .mps-trust-strip__dot:focus-visible {
        outline: 2px solid var(--mps-atc-blue, #032139);
        outline-offset: 2px;
    }
}

/* =========================================================================
   Disable Elementor entrance animations for specific sections
   - "Boutique N°1 de Padel en Ligne" intro column (heading + text)
   - FAQ column (heading, quote text, accordion)
   These widgets ship with .animated.fadeInDown / .animated.fadeInUp classes
   plus data-settings={_animation}. Neutralize the animation so content is
   visible immediately on page load (no fade-in flash).
   ========================================================================= */
.elementor-element.elementor-element-a0fbb4d.animated,
.elementor-element.elementor-element-b827fe2.animated,
.elementor-element.elementor-element-98b1cf1.animated,
.elementor-element.elementor-element-27c19a7.animated,
.elementor-element.elementor-element-0350140.animated {
    animation: none !important;
    animation-name: none !important;
    animation-duration: 0s !important;
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
}

/* =========================================================================
   Top categories teaser — redesign of section .elementor-element-a87d02f
   to mirror padel-point.fr style: equal-width image cards, dark bottom
   gradient overlay, large white title bottom-left, circular chevron
   bottom-right. CSS-only, leaves Elementor data untouched.
   ========================================================================= */
.elementor .elementor-element.elementor-element-a87d02f > .e-con-inner {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 1320px;
    margin: 0 auto;
    padding: 8px 24px;
}

/* Flatten the nested container that wraps Chaussures + Balles */
.elementor .elementor-element.elementor-element-a87d02f .elementor-element-1cb1ce5 {
    display: contents !important;
}

/* Card base */
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child {
    position: relative;
    display: block !important;
    width: 100%;
    aspect-ratio: 3 / 4;
    min-height: 0;
    padding: 0 !important;
    border-radius: 14px;
    overflow: hidden;
    background-color: #0a1a2a;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    text-decoration: none;
    isolation: isolate;
    transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}

.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(3, 33, 57, 0.18);
}

/* Subtle zoom on image (apply on ::before background sandwich) */
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: inherit;
    background-color: transparent;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 0;
    transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child:hover::before {
    transform: scale(1.04);
}

/* Hide the actual background-image on the <a> itself — we delegated it to ::before via background:inherit */
/* (No extra rule needed — both layers show the same image; ::before overlays cleanly.) */

/* Dark bottom gradient overlay */
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.55) 100%);
    z-index: 1;
    pointer-events: none;
}

/* Heading widget: lift above overlay, white, bottom-left */
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child .elementor-widget-heading {
    position: absolute;
    left: 22px;
    right: 80px;
    bottom: 22px;
    z-index: 2;
    margin: 0;
    padding: 0;
    background: transparent;
}
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child .elementor-heading-title {
    color: #ffffff !important;
    font-family: Montserrat, sans-serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: 0.2px;
    text-shadow: 0 2px 12px rgba(0,0,0,0.35);
    margin: 0;
}

/* Chevron button bottom-right */
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child > .mps-cat-chevron,
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child::part(chevron) {
    display: none; /* placeholder, real chevron is the next rule */
}
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child .elementor-widget-heading::after {
    content: "";
    position: absolute;
    right: -58px;
    bottom: 4px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.92);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23032139' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 6 15 12 9 18'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18);
    transition: transform .25s ease, background-color .25s ease;
}
.elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child:hover .elementor-widget-heading::after {
    background-color: #ffffff;
    transform: translateX(3px);
}

/* Tablet */
@media (max-width: 1024px) {
    .elementor .elementor-element.elementor-element-a87d02f > .e-con-inner {
        gap: 16px;
        padding: 8px 20px;
    }
    .elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child .elementor-heading-title {
        font-size: 22px;
    }
}

/* Mobile — horizontal scroll-snap carousel, 1.3 cards visible */
@media (max-width: 740px) {
    .elementor .elementor-element.elementor-element-a87d02f > .e-con-inner {
        display: flex !important;
        grid-template-columns: none;
        flex-wrap: nowrap;
        gap: 12px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        scroll-padding-left: 16px;
        scrollbar-width: none;
        padding: 4px 16px 14px;
        max-width: 100%;
    }
    .elementor .elementor-element.elementor-element-a87d02f > .e-con-inner::-webkit-scrollbar {
        display: none;
    }
    .elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child {
        flex: 0 0 76%;
        max-width: 320px;
        aspect-ratio: 3 / 4;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        border-radius: 12px;
    }
    .elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child .elementor-widget-heading {
        left: 16px;
        right: 70px;
        bottom: 16px;
    }
    .elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child .elementor-heading-title {
        font-size: 20px;
    }
    .elementor .elementor-element.elementor-element-a87d02f a.e-con.e-child .elementor-widget-heading::after {
        right: -52px;
        width: 38px;
        height: 38px;
        background-size: 16px 16px;
    }
}

/* =========================================================================
   Main product page — quantity + Add to cart side-by-side pill layout
   Reference: padel-point.fr product page.
   Targets Elementor's `.e-atc-qty-button-holder`. JS in functions.php
   (`mps_main_atc_qty_stepper`) injects − / + buttons inside `.quantity`.
   ========================================================================= */
.elementor-widget-woocommerce-product-add-to-cart .e-atc-qty-button-holder,
.woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart .e-atc-qty-button-holder {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 12px;
    width: 100%;
}

.e-atc-qty-button-holder .quantity {
    display: inline-flex !important;
    align-items: center;
    background: #f4f4f4;
    border-radius: 999px;
    padding: 0 6px;
    height: 56px;
    min-width: 140px;
    width: auto !important;
    flex: 0 0 auto !important;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.04);
}

.e-atc-qty-button-holder .quantity input.qty {
    -moz-appearance: textfield;
    appearance: textfield;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    width: 44px;
    height: 100%;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    color: #111;
    padding: 0;
    outline: none;
}
.e-atc-qty-button-holder .quantity input.qty::-webkit-outer-spin-button,
.e-atc-qty-button-holder .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.e-atc-qty-button-holder .quantity .mps-qty-btn,
.e-atc-qty-button-holder .quantity button.mps-qty-btn {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #111 !important;
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    flex: 0 0 36px !important;
    border-radius: 50% !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    cursor: pointer;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    align-self: center !important;
    margin: 0 !important;
    transition: background-color 0.15s ease, color 0.15s ease;
    padding: 0 !important;
    text-shadow: none !important;
}
.e-atc-qty-button-holder .quantity .mps-qty-btn:hover,
.e-atc-qty-button-holder .quantity button.mps-qty-btn:hover {
    background: rgba(0, 0, 0, 0.08) !important;
    background-color: rgba(0, 0, 0, 0.08) !important;
    color: #111 !important;
}
.e-atc-qty-button-holder .quantity .mps-qty-btn:focus-visible {
    outline: 2px solid var(--mps-atc-blue, #032139);
    outline-offset: 2px;
}

.e-atc-qty-button-holder .single_add_to_cart_button,
.elementor-widget-woocommerce-product-add-to-cart .e-atc-qty-button-holder button.single_add_to_cart_button {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0;
    height: 56px;
    margin: 0 !important;
    padding: 0 28px !important;
    background: linear-gradient(135deg, var(--mps-atc-cta) 0%, var(--mps-atc-cta-2) 100%) !important;
    color: var(--mps-atc-ink, #111) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    box-shadow: 0 6px 18px -8px rgba(120, 160, 0, 0.55), inset 0 -2px 0 rgba(0, 0, 0, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
    cursor: pointer;
}
.e-atc-qty-button-holder .single_add_to_cart_button:hover {
    background: linear-gradient(135deg, var(--mps-atc-cta-glow) 0%, var(--mps-atc-cta) 100%) !important;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px -8px rgba(120, 160, 0, 0.7), inset 0 -2px 0 rgba(0, 0, 0, 0.18);
}
.e-atc-qty-button-holder .single_add_to_cart_button:focus-visible {
    outline: 2px solid var(--mps-atc-ink, #111);
    outline-offset: -4px;
}

@media (max-width: 480px) {
    .e-atc-qty-button-holder .quantity {
        min-width: 124px;
        height: 52px;
    }
    .e-atc-qty-button-holder .quantity .mps-qty-btn {
        width: 32px;
        height: 32px;
        font-size: 17px;
    }
    .e-atc-qty-button-holder .quantity input.qty {
        width: 36px;
        font-size: 15px;
    }
    .e-atc-qty-button-holder .single_add_to_cart_button {
        height: 52px;
        padding: 0 18px !important;
        font-size: 14px;
    }
}


/* =========================================================================
   Related products ? horizontal slider (single product page)
   Mirrors mps_related_products_slider() in functions.php which wraps
   ul.products in .mps-slider__viewport and injects prev/next buttons.
   ========================================================================= */
section.related.products.mps-slider-ready {
    margin-top: 56px;
    padding-top: 8px;
}
section.related.products.mps-slider-ready > h2,
.elementor-widget-woocommerce-products section.related.products.mps-slider-ready > h2 {
    display: block !important;
    font-size: clamp(1.4rem, 1rem + 1.2vw, 2rem);
    font-weight: 700;
    color: var(--mps-atc-blue, #032139);
    margin: 0 0 24px;
    letter-spacing: -0.01em;
}
.mps-slider__viewport {
    position: relative;
    margin: 0 -8px;
}
.mps-slider__track {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0;
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 8px;
    padding: 4px 8px 24px;
    margin: 0 !important;
    list-style: none;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
}
.mps-slider__track::-webkit-scrollbar { display: none; }

/* Override Elementor's .elementor-grid columns-3 forcing 33% width */
.mps-slider__track.products.elementor-grid,
.mps-slider__track.elementor-grid {
    grid-template-columns: none !important;
}
.mps-slider__track > li.product {
    flex: 0 0 calc((100% - 20px * 3) / 4) !important;
    max-width: calc((100% - 20px * 3) / 4) !important;
    width: auto !important;
    margin: 0 20px 0 0 !important;
    scroll-snap-align: start;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 2px 10px -4px rgba(3, 33, 57, .08);
    padding: 14px 14px 18px;
    box-sizing: border-box;
    transition: transform .2s ease, box-shadow .2s ease;
    position: relative;
    overflow: hidden;
}
.mps-slider__track > li.product:last-child {
    margin-right: 0 !important;
}
.mps-slider__track > li.product:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px -10px rgba(3, 33, 57, .22);
}
.mps-slider__track > li.product .woocommerce-loop-product__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}
.mps-slider__track > li.product img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: #f7f7f8;
    border-radius: 10px;
    margin-bottom: 12px;
}
.mps-slider__track > li.product .onsale {
    position: absolute;
    top: 18px;
    left: 18px;
    background: #e63946;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 999px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    z-index: 2;
    min-height: 0;
    min-width: 0;
}
.mps-slider__track > li.product .woocommerce-loop-product__title {
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.35;
    margin: 0 0 8px;
    padding: 0;
    min-height: 38px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.mps-slider__track > li.product .price {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--mps-atc-blue, #032139);
}
.mps-slider__track > li.product .price del {
    color: #999;
    font-weight: 500;
    font-size: 13px;
    margin-right: 6px;
    opacity: 0.8;
}
.mps-slider__track > li.product .price ins {
    text-decoration: none;
    color: #e63946;
}
.mps-slider__track > li.product .star-rating {
    display: none !important;
}
.mps-slider__track > li.product .woocommerce-loop-product__buttons,
.mps-slider__track > li.product .wpced {
    display: none !important;
}

/* Arrow controls */
.mps-slider__arrow {
    position: absolute;
    top: calc(50% - 28px); /* compensate for bottom padding */
    transform: translateY(-50%);
    z-index: 3;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    border-radius: 50% !important;
    background: #fff !important;
    background-color: #fff !important;
    background-image: none !important;
    border: 1px solid rgba(3, 33, 57, .1) !important;
    box-shadow: 0 4px 14px -4px rgba(3, 33, 57, .18) !important;
    color: var(--mps-atc-blue, #032139) !important;
    cursor: pointer;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    transition: background-color .15s ease, color .15s ease, transform .15s ease, opacity .15s ease;
    text-shadow: none !important;
    font-size: 0 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.mps-slider__arrow svg {
    width: 18px !important;
    height: 18px !important;
    display: block;
}
.mps-slider__arrow:hover {
    background: var(--mps-atc-blue, #032139) !important;
    background-color: var(--mps-atc-blue, #032139) !important;
    color: #fff !important;
}
.mps-slider__arrow:focus-visible {
    outline: 2px solid var(--mps-atc-blue, #032139);
    outline-offset: 2px;
}
.mps-slider__arrow--prev { left: -8px; }
.mps-slider__arrow--next { right: -8px; }
.mps-slider__arrow.is-disabled {
    opacity: 0;
    pointer-events: none;
}
.mps-slider--no-overflow .mps-slider__arrow {
    display: none;
}

/* Responsive: 3-up tablet, 2-up small tablet, 1.5-up mobile peek */
@media (max-width: 1024px) {
    .mps-slider__track > li.product {
        flex: 0 0 calc((100% - 20px * 2) / 3) !important;
        max-width: calc((100% - 20px * 2) / 3) !important;
    }
}
@media (max-width: 768px) {
    .mps-slider__track > li.product {
        flex: 0 0 calc((100% - 20px) / 2) !important;
        max-width: calc((100% - 20px) / 2) !important;
    }
    .mps-slider__arrow {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
    }
}
@media (max-width: 520px) {
    .mps-slider__track {
        padding: 4px 16px 20px;
    }
    .mps-slider__track > li.product {
        flex: 0 0 64% !important;
        max-width: 64% !important;
        margin-right: 14px !important;
    }
    .mps-slider__track > li.product:last-child {
        margin-right: 0 !important;
    }
    .mps-slider__arrow--prev { left: 4px; }
    .mps-slider__arrow--next { right: 4px; }
}

/* ============================================================
   Brand logo marquee (homepage)
   Injected by mps_home_brand_marquee() in functions.php right
   after the hero Elementor section. Infinite horizontal scroll,
   text wordmarks now � swap to real SVG logos by changing the
   PHP template <span> to <img> when assets are available.
   ============================================================ */
.mps-brand-marquee {
    position: relative;
    width: 100%;
    padding: 28px 0;
    background: linear-gradient(180deg, #ffffff 0%, #f6f7f9 100%);
    border-top: 1px solid rgba(3, 33, 57, 0.06);
    border-bottom: 1px solid rgba(3, 33, 57, 0.06);
    overflow: hidden;
}

.mps-brand-marquee__viewport {
    position: relative;
    width: 100%;
    overflow: hidden;
    /* Fade the strip into the bg on both ends so logos enter/exit gracefully. */
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0,
        #000 80px,
        #000 calc(100% - 80px),
        transparent 100%
    );
            mask-image: linear-gradient(
        to right,
        transparent 0,
        #000 80px,
        #000 calc(100% - 80px),
        transparent 100%
    );
}

.mps-brand-marquee__track {
    display: flex;
    align-items: center;
    gap: 64px;
    width: max-content;
    will-change: transform;
    animation: mps-brand-marquee-scroll 14s linear infinite;
    transform: translateZ(0);
    backface-visibility: hidden;
}

.mps-brand-marquee:hover .mps-brand-marquee__track {
    animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
    .mps-brand-marquee__track {
        animation: none;
        transform: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
        gap: 40px 64px;
        padding: 0 24px;
    }
}

.mps-brand-marquee__item {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    user-select: none;
}

.mps-brand-marquee .mps-brand-marquee__item img {
    display: block;
    height: 48px;
    width: auto;
    max-width: 160px;
    max-height: 48px;
    object-fit: contain;
    opacity: 1;
    /* Normalize mixed logo assets (PNG/SVG) to brand navy (#032139). */
    filter: brightness(0) saturate(100%) invert(11%) sepia(52%) saturate(1397%) hue-rotate(174deg) brightness(96%) contrast(96%);
    transition: opacity 0.25s ease, filter 0.25s ease, transform 0.25s ease;
    -webkit-user-drag: none;
}

.mps-brand-marquee .mps-brand-marquee__item:hover img {
    opacity: 1;
    filter: brightness(0) saturate(100%) invert(11%) sepia(52%) saturate(1397%) hue-rotate(174deg) brightness(105%) contrast(100%);
    transform: translateY(-1px);
}

/* Per-brand size nudges so visually-tall logos don't overpower the row. */
.mps-brand-marquee .mps-brand-marquee__item[data-brand="head"] img,
.mps-brand-marquee .mps-brand-marquee__item[data-brand="wilson"] img,
.mps-brand-marquee .mps-brand-marquee__item[data-brand="joma"] img {
    max-width: 130px;
}

.mps-brand-marquee .mps-brand-marquee__item[data-brand="nox"] img,
.mps-brand-marquee .mps-brand-marquee__item[data-brand="siux"] img {
    max-width: 110px;
}

@keyframes mps-brand-marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

@media (max-width: 768px) {
    .mps-brand-marquee {
        padding: 20px 0;
    }
    .mps-brand-marquee__track {
        gap: 44px;
        animation-duration: 10s;
    }
    .mps-brand-marquee__item {
        height: 36px;
    }
    .mps-brand-marquee .mps-brand-marquee__item img {
        height: 36px;
        max-height: 36px;
    }
}

/* Hide legacy "Nos marques partenaires" heading + gallery widget (replaced by .mps-brand-marquee). */
.elementor-65 .elementor-element.elementor-element-954383f,
.elementor-65 .elementor-element.elementor-element-9ab70bc {
    display: none !important;
}

/* =============================================================================
   UNIFIED PRODUCT CARDS — racketcentral-style grid, navy + lime palette
   Applies to: Elementor loop items (.e-loop-item.product) AND native
   WooCommerce archives (ul.products li.product) — home, shop, category, single
   related products. JS enhancer (product-card-enhance.js) injects the brand
   label + ADD-TO-CART link if the loop template doesn't already render them.
   ========================================================================== */

:root {
    --mps-card-navy: #0a1f3d;
    --mps-card-navy-soft: #1a3766;
    --mps-card-lime: #c4f000;
    --mps-card-lime-deep: #a8d200;
    --mps-card-ink: #0a1f3d;
    --mps-card-muted: #6b7785;
    --mps-card-border: rgba(10, 31, 61, 0.10);
    --mps-card-bg: #ffffff;
    --mps-card-radius: 14px;
    --mps-card-shadow: 0 1px 2px rgba(10, 31, 61, 0.06);
    --mps-card-shadow-hover: 0 10px 28px -8px rgba(10, 31, 61, 0.22);
    --mps-card-transition: 200ms cubic-bezier(0.2, 0.6, 0.2, 1);
}

/* --- Card container (LOOP CARDS ONLY — exclude PDP body wrapper) -------- */
.product.type-product:not(.elementor-location-single),
.woocommerce ul.products li.product {
    background: var(--mps-card-bg);
    border: 1px solid var(--mps-card-border);
    border-radius: var(--mps-card-radius);
    box-shadow: var(--mps-card-shadow);
    overflow: hidden;
    position: relative;
    transition: transform var(--mps-card-transition),
                box-shadow var(--mps-card-transition),
                border-color var(--mps-card-transition);
    display: flex;
    flex-direction: column;
}

.product.type-product:not(.elementor-location-single):hover,
.woocommerce ul.products li.product:hover {
    transform: translateY(-3px);
    box-shadow: var(--mps-card-shadow-hover);
    border-color: rgba(10, 31, 61, 0.18);
}

/* Elementor loop items wrap everything in nested containers — let the inner
   container hold the spacing so the card border hugs the edges. */
.e-loop-item.product > .elementor-element.e-con {
    border: 0;
    box-shadow: none;
    background: transparent;
    margin: 0;
    height: 100%;
}

.e-loop-item.product .e-con-inner {
    padding: 0 0 16px 0;
    gap: 8px;
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* --- Image area (LOOP CARDS ONLY) ---------------------------------------- */
.product.type-product:not(.elementor-location-single) .elementor-widget-image,
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-image {
    margin: 0 !important;
    background: #ffffff;
    aspect-ratio: 1 / 1;
    display: block;
    overflow: hidden;
    position: relative;
    border-bottom: 1px solid #e6e8ec;
}

.product.type-product:not(.elementor-location-single) .elementor-widget-image img,
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0;
    transition: transform var(--mps-card-transition);
    margin: 0;
}

/* Native WC archives: the first <a> wraps image + title + price, so we can't
   put aspect-ratio on the link itself (it would clip the text). Instead size
   the IMG to a 1:1 box and let the link flow naturally. */
.woocommerce ul.products li.product > a:first-child {
    margin: 0 !important;
    display: block;
    color: inherit;
    text-decoration: none;
}

.woocommerce ul.products li.product > a:first-child > img,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto;
    object-fit: contain;
    background: #ffffff;
    padding: 0;
    margin: 0 !important;
    transition: transform var(--mps-card-transition);
    box-sizing: border-box;
    border-bottom: 1px solid #e6e8ec;
}

.product.type-product:not(.elementor-location-single):hover .elementor-widget-image img,
.product.type-product:not(.elementor-location-single):hover .elementor-widget-woocommerce-product-image img,
.woocommerce ul.products li.product:hover img {
    transform: scale(1.04);
}

/* --- Image wrap (injected by product-card-enhance.js for native WC cards) -
   Wraps the <img> with a positioned container so the absolute-positioned
   add-to-cart button anchors to the IMAGE bounds instead of the whole
   <li class="product"> (which would put it next to the price). */
.mps-card-image-wrap {
    position: relative;
    display: block;
    width: 100%;
}

/* --- Delivery date label (injected by product-card-enhance.js) ---------- */
.mps-delivery-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 10px 16px 0 16px;
    font-size: 12px;
    font-weight: 500;
    color: var(--mps-card-navy, #0a1f3d);
    line-height: 1.2;
}
.mps-delivery-date__icon {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    color: var(--mps-card-navy, #0a1f3d);
}
.mps-delivery-date__icon svg {
    width: 100%;
    height: 100%;
    display: block;
}
.mps-delivery-date__text {
    white-space: nowrap;
}

/* --- Rating stars (injected by product-card-enhance.js) ----------------- */
.mps-rating {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 6px 16px 0 16px;
    font-size: 12px;
    line-height: 1.2;
}
.mps-rating__score {
    font-weight: 600;
    color: var(--mps-card-navy, #0a1f3d);
}
.mps-rating__stars {
    display: inline-flex;
    align-items: center;
    gap: 1px;
}
.mps-rating__star {
    position: relative;
    display: inline-block;
    width: 13px;
    height: 13px;
    overflow: hidden;
}
.mps-rating__star-base,
.mps-rating__star-fill {
    position: absolute;
    inset: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.mps-rating__star-base {
    color: #d9dde3;
}
.mps-rating__star-fill {
    width: var(--mps-star-fill, 0%);
    overflow: hidden;
    /* Trustpilot brand green */
    color: #00B67A;
}
.mps-rating__star-base svg,
.mps-rating__star-fill svg,
.mps-rating__star svg {
    width: 100%;
    height: 100%;
    display: block;
    fill: currentColor;
}
.mps-rating__count {
    color: #6b7280;
}

/* --- Brand label (removed) ---------------------------------------------- */
.mps-card-brand {
    display: none !important;
}

/* --- Title (LOOP CARDS ONLY — exclude PDP body wrapper) ----------------- */
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-title,
.product.type-product:not(.elementor-location-single) .product_title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin: 4px 16px 0 16px !important;
    padding: 0 !important;
}

.product.type-product:not(.elementor-location-single) .product_title,
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-title h1,
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-title h2,
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-title h3,
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-title h4,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: var(--mps-card-ink) !important;
    margin: 0 !important;
    padding: 0 !important;
    /* clamp to 2 lines */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(1.35em * 2);
}

.product.type-product:not(.elementor-location-single) .product_title a,
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-title a,
.woocommerce ul.products li.product .woocommerce-loop-product__title a {
    color: inherit !important;
    text-decoration: none;
}

.product.type-product:not(.elementor-location-single) .product_title a:hover,
.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover {
    color: var(--mps-card-navy-soft) !important;
}

/* --- Price (LOOP CARDS ONLY — exclude PDP body wrapper) ----------------- */
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-price,
.product.type-product:not(.elementor-location-single) .price,
.woocommerce ul.products li.product .price {
    margin: 6px 16px 0 16px !important;
    padding: 0 !important;
    font-size: 15px !important;
    color: var(--mps-card-ink) !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

.product.type-product:not(.elementor-location-single) .price,
.product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-price .price,
.woocommerce ul.products li.product .price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
}

.product.type-product .price del,
.woocommerce ul.products li.product .price del {
    color: var(--mps-card-muted) !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    opacity: 1 !important;
}

.product.type-product .price ins,
.woocommerce ul.products li.product .price ins {
    background: transparent !important;
    color: #e63946 !important;
    text-decoration: none !important;
    font-weight: 700 !important;
}

.product.type-product .price ins .woocommerce-Price-amount,
.product.type-product .price ins .woocommerce-Price-currencySymbol,
.woocommerce ul.products li.product .price ins .woocommerce-Price-amount,
.woocommerce ul.products li.product .price ins .woocommerce-Price-currencySymbol {
    color: #e63946 !important;
}

/* --- PDP body safety net -------------------------------------------------
   The single-product Elementor wrapper carries `.product.type-product`
   classes (same as loop cards). The card rules above are now scoped with
   :not(.elementor-location-single), but a few non-scoped selectors below
   (e.g. .sale::before PROMO ribbon) still need to be neutralized on the
   PDP body. */
.elementor-location-single.product.type-product.sale::before {
    display: none !important;
    content: none !important;
}

/* --- Sale badge (top-left ribbon) ----------------------------------------- */
/* Label localized per <html lang> via :lang() rules below.
   Default content is FR ("PROMO"); locale overrides follow.
   Identical CSS ships to every shop in the portfolio — locale-aware. */
.product.type-product.sale::before,
.woocommerce ul.products li.product.sale::before {
    content: "PROMO";
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 3;
    background: var(--mps-card-lime);
    color: var(--mps-card-navy);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 5px 9px;
    border-radius: 4px;
    line-height: 1;
    box-shadow: 0 1px 2px rgba(10, 31, 61, 0.15);
    pointer-events: none;
}

/* Locale-specific badge text (overrides the FR default above).
   Matches BCP-47 primary subtag via [lang|=...] (e.g. "es" matches "es-ES"). */
:lang(fr) .product.type-product.sale::before,
:lang(fr) .woocommerce ul.products li.product.sale::before { content: "PROMO"; }
:lang(es) .product.type-product.sale::before,
:lang(es) .woocommerce ul.products li.product.sale::before { content: "OFERTA"; }
:lang(it) .product.type-product.sale::before,
:lang(it) .woocommerce ul.products li.product.sale::before { content: "OFFERTA"; }
:lang(pt) .product.type-product.sale::before,
:lang(pt) .woocommerce ul.products li.product.sale::before { content: "PROMOÇÃO"; }
:lang(nl) .product.type-product.sale::before,
:lang(nl) .woocommerce ul.products li.product.sale::before { content: "AANBIEDING"; }
:lang(da) .product.type-product.sale::before,
:lang(da) .woocommerce ul.products li.product.sale::before { content: "TILBUD"; }
:lang(fi) .product.type-product.sale::before,
:lang(fi) .woocommerce ul.products li.product.sale::before { content: "TARJOUS"; }
:lang(de) .product.type-product.sale::before,
:lang(de) .woocommerce ul.products li.product.sale::before { content: "ANGEBOT"; }
:lang(sv) .product.type-product.sale::before,
:lang(sv) .woocommerce ul.products li.product.sale::before { content: "REA"; }
:lang(nb) .product.type-product.sale::before,
:lang(nb) .woocommerce ul.products li.product.sale::before { content: "TILBUD"; }
:lang(no) .product.type-product.sale::before,
:lang(no) .woocommerce ul.products li.product.sale::before { content: "TILBUD"; }
:lang(en) .product.type-product.sale::before,
:lang(en) .woocommerce ul.products li.product.sale::before { content: "SALE"; }

/* Hide WooCommerce's default .onsale flash — we render our own consistent badge. */
.product.type-product .onsale,
.woocommerce ul.products li.product .onsale {
    display: none !important;
}

/* --- CTA: icon-only add-to-cart, overlaid bottom-right of product image --- */
.mps-card-image-host {
    position: relative !important;
}

.mps-card-cta,
.woocommerce ul.products li.product a.button.add_to_cart_button,
.woocommerce ul.products li.product a.button.product_type_simple,
.woocommerce ul.products li.product a.button.product_type_variable,
.woocommerce ul.products li.product a.button.product_type_grouped,
.woocommerce ul.products li.product a.button.product_type_external {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    flex: 0 0 auto !important;
    padding: 0 !important;
    margin: 0 !important;
    /* Overlay at the bottom-right corner of the product image. */
    position: absolute !important;
    right: 10px !important;
    bottom: 10px !important;
    z-index: 3 !important;
    background: var(--mps-card-navy) !important;
    border: 0 !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 6px rgba(10, 31, 61, 0.25);
    cursor: pointer !important;
    text-decoration: none !important;
    /* Hide any visible text label (e.g. native WC "Ajouter au panier"). */
    font-size: 0 !important;
    color: transparent !important;
    line-height: 0 !important;
    letter-spacing: 0 !important;
    text-indent: -9999px;
    overflow: hidden;
    transition: background var(--mps-card-transition),
                transform var(--mps-card-transition),
                box-shadow var(--mps-card-transition);
}

.mps-card-cta::before,
.woocommerce ul.products li.product a.button.add_to_cart_button::before,
.woocommerce ul.products li.product a.button.product_type_simple::before,
.woocommerce ul.products li.product a.button.product_type_variable::before,
.woocommerce ul.products li.product a.button.product_type_grouped::before,
.woocommerce ul.products li.product a.button.product_type_external::before {
    content: '';
    display: block;
    width: 22px;
    height: 22px;
    background-color: #ffffff;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12.12 20.44H5.6V9.56h12.8v3.73c.06.4.4.69.8.7.44 0 .8-.35.8-.8v-4.5a.792.792 0 0 0-.8-.69H17V6.5C16.9 4 14.7 2 12 2S7 4.09 7 6.67V8H4.71c-.4.04-.71.37-.71.78v12.53a.8.8 0 0 0 .8.69h7.43c.38-.06.67-.39.67-.78 0-.43-.35-.78-.78-.78ZM8.66 6.67c0-1.72 1.49-3.11 3.33-3.11s3.33 1.39 3.33 3.11V8H8.65V6.67Z'/><path d='M20 17.25h-2.4v-2.5a.817.817 0 0 0-.8-.7c-.44 0-.8.36-.8.8v2.4h-2.5c-.4.06-.7.4-.7.8 0 .44.36.8.8.8H16v2.5c.06.4.4.7.8.7.44 0 .8-.36.8-.8v-2.4h2.5c.4-.06.69-.4.7-.8 0-.44-.35-.8-.8-.8Z'/></svg>") center / contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12.12 20.44H5.6V9.56h12.8v3.73c.06.4.4.69.8.7.44 0 .8-.35.8-.8v-4.5a.792.792 0 0 0-.8-.69H17V6.5C16.9 4 14.7 2 12 2S7 4.09 7 6.67V8H4.71c-.4.04-.71.37-.71.78v12.53a.8.8 0 0 0 .8.69h7.43c.38-.06.67-.39.67-.78 0-.43-.35-.78-.78-.78ZM8.66 6.67c0-1.72 1.49-3.11 3.33-3.11s3.33 1.39 3.33 3.11V8H8.65V6.67Z'/><path d='M20 17.25h-2.4v-2.5a.817.817 0 0 0-.8-.7c-.44 0-.8.36-.8.8v2.4h-2.5c-.4.06-.7.4-.7.8 0 .44.36.8.8.8H16v2.5c.06.4.4.7.8.7.44 0 .8-.36.8-.8v-2.4h2.5c.4-.06.69-.4.7-.8 0-.44-.35-.8-.8-.8Z'/></svg>") center / contain no-repeat;
    transition: background-color var(--mps-card-transition);
}

.mps-card-cta:hover,
.woocommerce ul.products li.product a.button.add_to_cart_button:hover,
.woocommerce ul.products li.product a.button.product_type_simple:hover,
.woocommerce ul.products li.product a.button.product_type_variable:hover,
.woocommerce ul.products li.product a.button.product_type_grouped:hover,
.woocommerce ul.products li.product a.button.product_type_external:hover {
    background: var(--mps-card-lime) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px -2px rgba(10, 31, 61, 0.30);
}

.mps-card-cta:hover::before,
.woocommerce ul.products li.product a.button.add_to_cart_button:hover::before,
.woocommerce ul.products li.product a.button.product_type_simple:hover::before,
.woocommerce ul.products li.product a.button.product_type_variable:hover::before,
.woocommerce ul.products li.product a.button.product_type_grouped:hover::before,
.woocommerce ul.products li.product a.button.product_type_external:hover::before {
    background-color: var(--mps-card-navy);
}

.mps-card-cta:focus-visible {
    outline: 2px solid var(--mps-card-lime);
    outline-offset: 2px;
}

/* Visually-hidden text inside icon CTA (kept for screen readers). */
.mps-card-cta__sr {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* "Added" / "Loading" affordances on native WC buttons stay subtle. */
.woocommerce ul.products li.product a.button.added::after,
.woocommerce ul.products li.product a.button.loading::after {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1 !important;
    margin: 0 !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

/* --- WooCommerce native archive: align grid items consistently ------------ */
.woocommerce ul.products li.product {
    padding: 0 !important;
    margin-bottom: 24px !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin-top: 12px !important;
}

/* The theme hides the buttons row by default — we want the icon ATC, right-aligned. */
.woocommerce ul.products li.product .woocommerce-loop-product__buttons {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    margin: auto 0 0 0 !important;
    padding: 0 !important;
    width: 100%;
}

/* --- Responsive tightening ------------------------------------------------ */
@media (max-width: 600px) {
    .mps-card-brand {
        font-size: 10px;
        margin: 10px 12px 0 12px;
    }
    .product.type-product:not(.elementor-location-single) .product_title,
    .product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-title h4,
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: 14px !important;
        margin: 4px 12px 0 12px !important;
    }
    .product.type-product:not(.elementor-location-single) .elementor-widget-woocommerce-product-price,
    .product.type-product:not(.elementor-location-single) .price,
    .woocommerce ul.products li.product .price {
        font-size: 14px !important;
        margin: 6px 12px 0 12px !important;
    }
    .mps-card-cta,
    .woocommerce ul.products li.product a.button.add_to_cart_button {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        right: 8px !important;
        bottom: 8px !important;
        margin: 0 !important;
    }
    .mps-card-cta::before,
    .woocommerce ul.products li.product a.button.add_to_cart_button::before {
        width: 20px;
        height: 20px;
    }
}
/* === END unified product cards ============================================ */

/* === Loop carousel — homepage product sliders ============================== */
/*
   JS in assets/js/loop-carousel.js wraps each .elementor-widget-loop-grid's
   .elementor-loop-container.elementor-grid in a .mps-carousel-viewport,
   adds .mps-carousel-track + prev/next arrows, and converts the grid into a
   horizontal scroller. Acts on every Elementor loop-grid on the site.
*/
.mps-loop-carousel {
    position: relative !important;
}

.mps-loop-carousel .mps-carousel-viewport {
    width: 100%;
    overflow: hidden;
}

.mps-loop-carousel .mps-carousel-track.elementor-grid,
.mps-loop-carousel .mps-carousel-track {
    display: flex !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Slight bottom padding so card hover shadow isn't clipped */
    padding-bottom: 8px;
    /* Side padding so the first/last card aren't flush against arrows */
    padding-left: 4px;
    padding-right: 4px;
    margin-left: -4px;
    margin-right: -4px;
}

.mps-loop-carousel .mps-carousel-track::-webkit-scrollbar {
    display: none;
}

/* Card sizing inside the carousel — 4 visible on desktop, 3 on tablet, 2 on mobile */
.mps-loop-carousel .mps-carousel-track > .product.type-product {
    flex: 0 0 calc((100% - 3 * var(--mps-card-gap, 24px)) / 4);
    max-width: calc((100% - 3 * var(--mps-card-gap, 24px)) / 4);
    width: auto !important;
    scroll-snap-align: start;
}

@media (max-width: 1024px) {
    .mps-loop-carousel .mps-carousel-track > .product.type-product {
        flex: 0 0 calc((100% - 2 * var(--mps-card-gap, 20px)) / 3);
        max-width: calc((100% - 2 * var(--mps-card-gap, 20px)) / 3);
    }
}

@media (max-width: 600px) {
    .mps-loop-carousel .mps-carousel-track > .product.type-product {
        flex: 0 0 calc((100% - 1 * var(--mps-card-gap, 16px)) / 2);
        max-width: calc((100% - 1 * var(--mps-card-gap, 16px)) / 2);
    }
}

/* Prev / next arrows — circular navy buttons floating outside the viewport */
.mps-loop-carousel > button.mps-carousel-arrow,
button.mps-carousel-arrow {
    position: absolute !important;
    top: 38% !important;
    transform: translateY(-50%) !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    border-radius: 50% !important;
    border: 1px solid #e7e7e7 !important;
    background: #f4f4f4 !important;
    color: #6b7785 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 5 !important;
    box-shadow: none !important;
    transition: background var(--mps-card-transition, 200ms cubic-bezier(0.2, 0.6, 0.2, 1)),
                color var(--mps-card-transition, 200ms cubic-bezier(0.2, 0.6, 0.2, 1)),
                opacity 200ms ease,
                transform 200ms ease !important;
    padding: 0 !important;
    line-height: 1 !important;
    font-size: 0 !important;
    text-shadow: none !important;
}

.mps-carousel-arrow svg {
    width: 22px !important;
    height: 22px !important;
    display: block !important;
    fill: none !important;
    stroke: currentColor !important;
}

.mps-carousel-arrow--prev { left: -22px; }
.mps-carousel-arrow--next { right: -22px; }

.mps-carousel-arrow:hover:not(.is-disabled) {
    background: #ebebeb !important;
    border-color: #d9d9d9 !important;
    color: var(--mps-card-navy, #0a1f3d) !important;
}

.mps-carousel-arrow:focus-visible {
    outline: 2px solid var(--mps-lime, #c4f000);
    outline-offset: 3px;
}

.mps-carousel-arrow.is-disabled {
    opacity: 0;
    pointer-events: none;
}

.mps-carousel-arrow--prev:disabled {
    opacity: 0;
    pointer-events: none;
}

@media (max-width: 767px) {
    .elementor.elementor-65 > .elementor-section.elementor-top-section:has(+ .elementor-section .elementor-widget-loop-grid)
    .elementor-widget-text-editor,
    .elementor.elementor-65 > .elementor-section.elementor-top-section:has(+ .elementor-section .elementor-widget-loop-grid)
    .elementor-widget-text-editor p {
        text-align: center !important;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 600px) {
    button.mps-carousel-arrow,
    .mps-loop-carousel > button.mps-carousel-arrow {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        min-height: 38px !important;
        max-width: 38px !important;
        max-height: 38px !important;
    }
    .mps-carousel-arrow svg {
        width: 18px !important;
        height: 18px !important;
    }
    .mps-carousel-arrow--prev { left: -4px !important; }
    .mps-carousel-arrow--next { right: -4px !important; }
}

/* PDP: hide static rating summary for no-review products. */
body.single-product.mps-no-reviews-product .elementor-element-b4b766a {
    display: none !important;
}
/* === END loop carousel ===================================================== */

/* =========================================================
   Typography Enforcement (final cascade layer)
   Keeps Elementor/theme/plugin text styling brand-consistent.
   ========================================================= */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-text-editor a,
.woocommerce-product-details__short-description,
.woocommerce-product-details__short-description p,
.woocommerce-product-details__short-description li,
.woocommerce-tabs .panel,
.woocommerce-tabs .panel p,
.woocommerce-tabs .panel li,
.woocommerce-checkout,
.woocommerce-checkout p,
.woocommerce-checkout li,
.woocommerce-cart,
.woocommerce-cart p,
.woocommerce-cart li,
.site-footer,
.site-footer p,
.site-footer li,
.site-footer a {
    font-family: var(--mps-font-body) !important;
    font-size: var(--mps-type-body-size) !important;
    line-height: var(--mps-type-body-line) !important;
    font-weight: 400 !important;
}

.elementor-widget-heading .elementor-heading-title,
.woocommerce-loop-product__title,
.product_title,
.wc-block-components-product-name {
    font-family: var(--mps-font-heading) !important;
}

.elementor-widget-button .elementor-button,
.elementor-widget-button .elementor-button-text,
.elementor-nav-menu a,
.menu-item a,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.added_to_cart {
    font-family: var(--mps-font-heading) !important;
    font-size: var(--mps-type-ui-size) !important;
    line-height: var(--mps-type-ui-line) !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
}

/* Keep all "Ajouter au panier" CTAs bold even with global button resets. */
.woocommerce button.single_add_to_cart_button,
.woocommerce button.single_add_to_cart_button.button.alt,
.woocommerce a.button.add_to_cart_button,
.woocommerce a.button.product_type_simple,
.woocommerce a.button.product_type_variable,
.woocommerce a.button.product_type_grouped,
.woocommerce a.button.product_type_external,
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn,
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.button.alt {
    font-weight: 700 !important;
}

body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn > span {
    font-weight: 700 !important;
}

/* Compact but premium section intro text under homepage category headings. */
.elementor.elementor-65 .elementor-widget-text-editor {
    font-family: var(--mps-font-body) !important;
    font-size: var(--mps-type-body-size) !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;
}

@media (max-width: 767px) {
    .elementor-widget-text-editor,
    .elementor-widget-text-editor p,
    .woocommerce-product-details__short-description,
    .woocommerce-product-details__short-description p,
    .woocommerce-tabs .panel,
    .woocommerce-tabs .panel p {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }
}

/* ------------------------------------------------------------------
 * Post-add-to-cart cleanup
 * ------------------------------------------------------------------
 * After WooCommerce processes an add-to-cart, it appends an
 * `<a class="added_to_cart wc-forward">Voir le panier</a>` link next
 * to the submit button and toggles `.added` (with a ✓ pseudo-element)
 * on the button itself. We open the side-cart drawer instead, so both
 * of those affordances are redundant and visually break the CTA row.
 * Hide them everywhere; also remove the leftover `.added` styling so
 * the "Ajouter au panier" button keeps its normal look after a click.
 */
.woocommerce a.added_to_cart.wc-forward,
.woocommerce-page a.added_to_cart.wc-forward,
.elementor-add-to-cart a.added_to_cart,
.e-atc-qty-button-holder a.added_to_cart {
    display: none !important;
}

.woocommerce button.single_add_to_cart_button.added::after,
.woocommerce a.button.add_to_cart_button.added::after,
.woocommerce button.button.added::after,
.woocommerce a.button.added::after {
    content: none !important;
    display: none !important;
}

/* ------------------------------------------------------------------
 * Product gallery zoom trigger vs. side-cart drawer
 * ------------------------------------------------------------------
 * The WooCommerce gallery magnifier (`.woocommerce-product-gallery__trigger`)
 * ships with `z-index: 99` and `position: absolute`, which makes it
 * punch through the Elementor side-cart drawer overlay on the product
 * page. Hide it whenever the drawer is shown so it cannot overlap the
 * cart UI, and lower its baseline z-index for safety.
 */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
    z-index: 2 !important;
}

body.elementor-menu-cart--shown .woocommerce-product-gallery__trigger,
.elementor-menu-cart--shown .woocommerce-product-gallery__trigger,
body:has(.elementor-menu-cart--shown) .woocommerce-product-gallery__trigger {
    display: none !important;
}

/* ------------------------------------------------------------------
 * Carousel arrows vs. side-cart drawer
 * ------------------------------------------------------------------
 * The product carousel "prev/next" arrows are positioned absolutely
 * with `z-index: 5` and sit slightly outside the carousel viewport.
 * When the Elementor side-cart drawer opens its dark backdrop, these
 * arrows poke through and look like clickable controls on top of the
 * cart UI. Hide them while the drawer is shown.
 *
 * NOTE: Elementor applies `.elementor-menu-cart--shown` to the *cart
 * widget element itself*, not to `<body>`. The arrows live outside
 * that widget, so we need `:has()` on body (or an ancestor) to gate
 * the rule on drawer state. Modern Evergreen browsers support this
 * (Chrome 105+, Safari 15.4+, Firefox 121+).
 */
body:has(.elementor-menu-cart--shown) .mps-carousel-arrow {
    display: none !important;
}

/* =========================================================
   Cart drawer — product list redesign
   Targets Elementor WooCommerce Menu Cart side-drawer items.
   Sport-premium feel: card rows, bigger thumbs, strong typography,
   brand-blue price, lime quantity chip, animated remove button.
   ========================================================= */

.elementor-menu-cart__products.woocommerce-mini-cart {
    padding: 8px 6px 8px 0 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
    scrollbar-width: thin;
    scrollbar-color: var(--mps-atc-blue, #032139) transparent;
}

.elementor-menu-cart__products.woocommerce-mini-cart::-webkit-scrollbar {
    width: 6px;
}
.elementor-menu-cart__products.woocommerce-mini-cart::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--mps-atc-blue, #032139), var(--mps-atc-blue-2, #1d6fb8));
    border-radius: 6px;
}
.elementor-menu-cart__products.woocommerce-mini-cart::-webkit-scrollbar-track {
    background: transparent;
}

/* Row card */
.elementor-menu-cart__products .elementor-menu-cart__product {
    position: relative;
    display: grid !important;
    grid-template-columns: 76px 1fr 28px;
    grid-template-areas:
        "img name remove"
        "img price remove";
    align-items: center;
    column-gap: 14px;
    row-gap: 4px;
    padding: 12px 12px 12px 10px !important;
    margin: 0 !important;
    background: #ffffff;
    border: 1px solid var(--mps-atc-line, rgba(15, 15, 20, 0.08));
    border-radius: 12px;
    box-shadow: 0 1px 0 rgba(15, 15, 20, 0.02);
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.elementor-menu-cart__products .elementor-menu-cart__product::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    bottom: 14px;
    width: 3px;
    background: linear-gradient(180deg, var(--mps-atc-cta, #CBFF00), var(--mps-atc-cta-2, #B7E600));
    border-radius: 0 3px 3px 0;
    opacity: 0;
    transition: opacity 180ms ease;
}

.elementor-menu-cart__products .elementor-menu-cart__product:hover {
    transform: translateY(-1px);
    border-color: rgba(3, 33, 57, 0.18);
    box-shadow: 0 6px 18px -10px rgba(3, 33, 57, 0.35);
}
.elementor-menu-cart__products .elementor-menu-cart__product:hover::before {
    opacity: 1;
}

/* Kill default WC dividers (we use spacing + cards instead) */
.elementor-menu-cart__products .elementor-menu-cart__product + .elementor-menu-cart__product {
    border-top: 1px solid var(--mps-atc-line, rgba(15, 15, 20, 0.08));
}

/* Thumbnail */
.elementor-menu-cart__products .elementor-menu-cart__product-image {
    grid-area: img;
    width: 76px;
    height: 76px;
    margin: 0 !important;
    padding: 0;
    border-radius: 10px;
    overflow: hidden;
    background: linear-gradient(180deg, #f7f8fa 0%, #eef1f5 100%);
    border: 1px solid rgba(3, 33, 57, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 180ms ease;
}
.elementor-menu-cart__products .elementor-menu-cart__product:hover .elementor-menu-cart__product-image {
    border-color: rgba(3, 33, 57, 0.18);
}
.elementor-menu-cart__products .elementor-menu-cart__product-image a {
    display: block;
    width: 100%;
    height: 100%;
}
.elementor-menu-cart__products .elementor-menu-cart__product-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
    mix-blend-mode: multiply;
    transition: transform 280ms ease;
}
.elementor-menu-cart__products .elementor-menu-cart__product:hover .elementor-menu-cart__product-image img {
    transform: scale(1.06);
}

/* Product name */
.elementor-menu-cart__products .elementor-menu-cart__product-name {
    grid-area: name;
    padding: 0 !important;
    margin: 0 !important;
    font-family: var(--mps-font-heading, "Montserrat", sans-serif);
    font-weight: 700;
    font-size: 13px;
    line-height: 1.3;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: var(--mps-atc-ink, #111);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.elementor-menu-cart__products .elementor-menu-cart__product-name a {
    color: inherit;
    text-decoration: none;
    background-image: linear-gradient(var(--mps-atc-cta, #CBFF00), var(--mps-atc-cta, #CBFF00));
    background-repeat: no-repeat;
    background-size: 0% 2px;
    background-position: 0 100%;
    transition: background-size 220ms ease, color 180ms ease;
}
.elementor-menu-cart__products .elementor-menu-cart__product-name a:hover {
    background-size: 100% 2px;
    color: var(--mps-atc-blue, #032139);
}

/* Price row */
.elementor-menu-cart__products .elementor-menu-cart__product-price {
    grid-area: price;
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-family: var(--mps-font-body, "Inter", sans-serif);
}
.elementor-menu-cart__products .elementor-menu-cart__product-price .quantity {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    line-height: 1.2;
    flex-wrap: wrap;
}

/* === Inline stepper inside drawer item === */
.elementor-menu-cart__products .mps-mini-qty-wrap {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.elementor-menu-cart__products .mps-mini-qty {
    display: inline-flex;
    align-items: center;
    gap: 0;
    background: #f4f5f8;
    border: 1px solid rgba(3, 33, 57, 0.12);
    border-radius: 999px;
    padding: 3px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
    transition: opacity 160ms ease;
}
.elementor-menu-cart__products .mps-mini-qty-btn {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    background: #ffffff;
    color: var(--mps-atc-blue, #032139);
    font-family: var(--mps-font-heading, "Montserrat", sans-serif);
    font-weight: 800;
    font-size: 14px;
    line-height: 1;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    box-shadow: 0 1px 2px rgba(3, 33, 57, 0.10), inset 0 0 0 1px rgba(3, 33, 57, 0.08);
    transition: background 160ms ease, color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
    user-select: none;
}
.elementor-menu-cart__products .mps-mini-qty-btn:hover {
    background: var(--mps-atc-blue, #032139);
    color: #fff;
    box-shadow: 0 2px 6px rgba(3, 33, 57, 0.25), inset 0 0 0 1px rgba(3, 33, 57, 0.2);
}
.elementor-menu-cart__products .mps-mini-qty-btn:active {
    transform: scale(0.92);
}
.elementor-menu-cart__products .mps-mini-qty-btn:focus-visible {
    outline: 2px solid var(--mps-atc-blue, #032139);
    outline-offset: 2px;
}
.elementor-menu-cart__products .mps-mini-qty-minus {
    font-size: 16px;
    padding-bottom: 1px;
}
.elementor-menu-cart__products .mps-mini-qty-value {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    padding: 0 6px;
    font-family: var(--mps-font-heading, "Montserrat", sans-serif) !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    line-height: 1 !important;
    letter-spacing: 0.02em !important;
    color: var(--mps-atc-blue, #032139) !important;
    background: transparent !important;
}
.elementor-menu-cart__products .mps-mini-qty-wrap.mps-mini-qty-loading .mps-mini-qty {
    opacity: 0.55;
    pointer-events: none;
}
.elementor-menu-cart__products .mps-mini-line-price .woocommerce-Price-amount,
.elementor-menu-cart__products .elementor-menu-cart__product-price .woocommerce-Price-amount {
    color: var(--mps-atc-blue, #032139);
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 0.01em;
}
.elementor-menu-cart__products .mps-mini-line-price .woocommerce-Price-currencySymbol,
.elementor-menu-cart__products .elementor-menu-cart__product-price .woocommerce-Price-currencySymbol {
    font-weight: 700;
    margin-left: 2px;
}

/* Remove button */
.elementor-menu-cart__products .elementor-menu-cart__product-remove {
    grid-area: remove;
    align-self: start;
    justify-self: end;
    padding: 0 !important;
    margin: 0 !important;
    position: relative;
    width: 26px;
    height: 26px;
}
.elementor-menu-cart__products .elementor-menu-cart__product-remove a {
    position: absolute;
    inset: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    /* No visible chrome here — the parent .product-remove draws the X.
     * This anchor is a transparent click overlay (size + positioning only). */
    font-size: 0;
    line-height: 1;
    text-decoration: none;
    color: transparent;
    background: transparent;
    cursor: pointer;
    z-index: 2;
}
.elementor-menu-cart__products .elementor-menu-cart__product-remove a::before,
.elementor-menu-cart__products .elementor-menu-cart__product-remove a::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 1.5px;
    background: currentColor;
    border-radius: 2px;
    transform-origin: center;
}
.elementor-menu-cart__products .elementor-menu-cart__product-remove a::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.elementor-menu-cart__products .elementor-menu-cart__product-remove a::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
/* Anchor stays transparent on hover — the parent .product-remove handles
 * the hover visual (background + X color invert). */

/* Elementor renders two stacked <a> in the remove cell:
 * - `.elementor_remove_from_cart_button` (Elementor, has its own AJAX binding)
 * - `.remove_from_cart_button` (WooCommerce default)
 * The Elementor one is kept as the clickable transparent overlay (sized by
 * the rule above). The WC duplicate is hidden in the inline <style> emitted
 * from functions.php (`mps-menu-cart-styles`). */

/* Small screens — keep proportional inside the drawer */
@media (max-width: 380px) {
    .elementor-menu-cart__products .elementor-menu-cart__product {
        grid-template-columns: 64px 1fr 26px;
        column-gap: 10px;
        padding: 10px !important;
    }
    .elementor-menu-cart__products .elementor-menu-cart__product-image {
        width: 64px;
        height: 64px;
    }
    .elementor-menu-cart__products .elementor-menu-cart__product-name {
        font-size: 12px;
    }
}

/* =============================================================
 * Hide sticky add-to-cart bar while the Elementor cart drawer is open
 * ============================================================= */
body:has(.elementor-menu-cart--shown) .wpcsb-wrapper {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(8px);
    transition: opacity 160ms ease, visibility 0s linear 160ms, transform 160ms ease;
}
.wpcsb-wrapper {
    transition: opacity 200ms ease, visibility 0s linear 0s, transform 200ms ease;
}

/* =========================================================
   Page Header — refined, editorial entry title (non-Elementor pages)
   Title text stays editable from WP admin (this only styles the wrapper).
   Targets hello-elementor's <div class="page-header"><h1 class="entry-title">.
   ========================================================= */
.page-header {
    position: relative;
    max-width: 1140px;
    margin: 36px auto 28px;
    padding: 0 24px 18px;
    border-bottom: 1px solid rgba(12, 20, 46, 0.08);
}

.page-header .entry-title {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 4px 0 4px 18px;
    color: var(--navy, #0C142E);
    font-family: var(--mps-font-heading);
    font-weight: 800;
    font-size: clamp(26px, 3.4vw, 38px);
    line-height: 1.15;
    letter-spacing: -0.01em;
    text-transform: uppercase;
}

/* Editorial lime "leading mark" — a clean vertical bar to the left of the
   title. No glow, no skew, no gradients; just a confident brand accent. */
.page-header .entry-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 4px;
    background: #CBFF00;
    border-radius: 1px;
}

/* Mobile: center the title, swap the vertical bar for a centered horizontal
   tick above the text. Stays editorial, never gimmicky. */
@media (max-width: 600px) {
    .page-header {
        margin: 22px 0 18px;
        padding: 0 18px 14px;
        text-align: center;
    }
    .page-header .entry-title {
        display: inline-block;
        padding: 14px 0 0;
        font-size: clamp(22px, 6vw, 28px);
    }
    .page-header .entry-title::before {
        left: 50%;
        top: 0;
        bottom: auto;
        width: 28px;
        height: 3px;
        transform: translateX(-50%);
        border-radius: 2px;
    }
}

/* =============================================================
 * Stripe Express Checkout (Apple Pay / Google Pay) — product page
 * Default Stripe markup stacks the two payment buttons because each
 * .StripeElement child takes full container width. Make them share
 * the row whenever space allows, wrap only on very narrow viewports.
 * No hardcoded breakpoints — uses intrinsic min-width to flex-wrap.
 * ============================================================= */
#wc-stripe-express-checkout-element > .StripeElement {
    flex: 1 1 140px;
    min-width: 0;
    /* Match the main "Ajouter au panier" CTA pill shape. Stripe renders the
       button inside an iframe we can't style internally; clipping the wrapper
       reshapes the visible button without touching Stripe internals. */
    border-radius: 999px;
    overflow: hidden;
    /* Subtle shadow to match the CTA elevation language. */
    box-shadow: 0 6px 18px -8px rgba(0, 0, 0, 0.35);
}

/* =============================================================
 * Cart page (/panier/) — brand pass to match checkout vibe
 * Scoped to body.woocommerce-cart so it never bleeds into the
 * mini-cart, checkout, or other Woo surfaces. Uses existing
 * brand tokens (--mps-atc-cta, --mps-font-heading) so a future
 * brand-token change cascades here automatically. No hardcoded
 * breakpoints beyond standard mobile/desktop pivot.
 * ============================================================= */
body.woocommerce-cart .e-cart__container {
    gap: 28px;
    align-items: flex-start;
}

/* ---- Cart items table → card surface ---- */
body.woocommerce-cart .e-shop-table {
    background: #fff;
    border: 1px solid #ECECEF;
    border-radius: 18px;
    padding: 8px 18px;
    box-shadow: 0 2px 10px -6px rgba(15, 20, 40, 0.08);
}
body.woocommerce-cart table.cart {
    border: 0;
    background: transparent;
}
body.woocommerce-cart table.cart thead tr,
body.woocommerce-cart table.cart thead th {
    background: transparent !important;
    border: 0 !important;
    color: #6B6F80;
    font-family: var(--mps-font-heading);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 14px 10px !important;
    border-bottom: 1px solid #ECECEF !important;
}
body.woocommerce-cart table.cart tbody tr.cart_item {
    border: 0;
    transition: background 0.15s ease;
}
body.woocommerce-cart table.cart tbody tr.cart_item:hover {
    background: rgba(203, 255, 0, 0.04);
}
body.woocommerce-cart table.cart tbody td {
    border: 0;
    border-bottom: 1px solid #ECEDF1;
    padding: 14px 10px;
    vertical-align: middle;
    color: #0C142E;
}
body.woocommerce-cart table.cart tbody tr.cart_item:last-of-type td {
    border-bottom: 0;
}

/* Thumbnail: 60x60 inside a soft white card (matches checkout summary). */
body.woocommerce-cart td.product-thumbnail {
    width: 72px;
}
body.woocommerce-cart td.product-thumbnail a {
    display: inline-block;
    width: 72px;
    height: 72px;
    padding: 4px;
    background: #fff;
    border: 1px solid #ECECEF;
    border-radius: 10px;
    box-shadow: 0 1px 3px -2px rgba(15, 20, 40, 0.06);
}
body.woocommerce-cart td.product-thumbnail img {
    width: 60px !important;
    height: 60px !important;
    object-fit: cover;
    border-radius: 8px;
    background: #FAFAFB;
    border: 0;
    display: block;
}

/* Product name: navy heading face, like checkout title */
body.woocommerce-cart td.product-name a {
    font-family: var(--mps-font-heading) !important;
    font-weight: 700 !important;
    font-size: 13.5px !important;
    line-height: 1.35 !important;
    color: #032139;
    text-decoration: none;
    text-transform: none !important;
    letter-spacing: 0 !important;
    transition: color 0.15s;
}
body.woocommerce-cart td.product-name a:hover {
    color: var(--mps-atc-cta-2, #B7E600);
    text-decoration: none;
}

/* Price: smaller + muted (mirrors checkout summary price line) */
body.woocommerce-cart td.product-price,
body.woocommerce-cart td.product-price .woocommerce-Price-amount {
    font-family: var(--mps-font-heading) !important;
    font-weight: 600 !important;
    font-variant-numeric: tabular-nums;
    color: rgba(12, 20, 46, 0.55) !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
}
/* Subtotal: bold navy, the visual anchor on the right */
body.woocommerce-cart td.product-subtotal,
body.woocommerce-cart td.product-subtotal .woocommerce-Price-amount {
    font-family: var(--mps-font-heading) !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums;
    color: #032139 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
}

/* Remove (×) button: subtle pill */
body.woocommerce-cart td.product-remove a.remove {
    width: 28px;
    height: 28px;
    line-height: 26px;
    border-radius: 999px;
    background: #F4F4F6;
    color: #6B6F80 !important;
    font-size: 18px;
    text-align: center;
    transition: background 0.15s, color 0.15s, transform 0.15s;
}
body.woocommerce-cart td.product-remove a.remove:hover {
    background: #032139;
    color: #fff !important;
    transform: rotate(90deg);
}

/* Qty input: pill shape matching checkout's quantity stepper */
body.woocommerce-cart .quantity input.qty {
    width: 60px;
    height: 32px;
    border: 1px solid #E2E4EC;
    border-radius: 999px;
    text-align: center;
    font-family: var(--mps-font-heading);
    font-weight: 700;
    font-size: 13px;
    color: #032139;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
}
body.woocommerce-cart .quantity input.qty:focus {
    outline: 0;
    border-color: var(--mps-atc-cta-2, #B7E600);
    box-shadow: 0 0 0 3px rgba(203, 255, 0, 0.25);
}

/* Estimated delivery row pill (from currently-rendered .wpced) */
body.woocommerce-cart .wpced-cart {
    background: transparent !important;
    padding: 12px 0 !important;
    border: 0 !important;
}
body.woocommerce-cart .wpced {
    /* Minimal text-only delivery note. Truck glyph + muted line, no fill. */
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    width: auto !important;
    max-width: 100%;
    background: transparent !important;
    border: 0 !important;
    color: #6B6F80 !important;
    padding: 4px 0 !important;
    border-radius: 0 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    font-family: var(--mps-font-heading) !important;
    line-height: 1.3 !important;
    letter-spacing: 0.01em;
    text-transform: none;
    box-shadow: none !important;
}
body.woocommerce-cart .wpced::before {
    content: "";
    flex: 0 0 13px;
    width: 13px;
    height: 13px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B6F80' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M1 3h15v13H1z'/><path d='M16 8h4l3 3v5h-7'/><circle cx='5.5' cy='18.5' r='2.5'/><circle cx='18.5' cy='18.5' r='2.5'/></svg>") center/contain no-repeat;
    opacity: 0.9;
}
body.woocommerce-cart .wpced-inner::before,
body.woocommerce-cart .wpced-inner::after {
    content: none !important;
    display: none !important;
    background: none !important;
}
body.woocommerce-cart .wpced-inner {
    display: inline !important;
    font: inherit !important;
    color: inherit !important;
    background: none !important;
    padding: 0 !important;
    white-space: nowrap;
}

/* Update-cart actions row + coupon row */
body.woocommerce-cart table.cart td.actions {
    padding: 6px 0 14px !important;
    border: 0 !important;
}
body.woocommerce-cart .coupon {
    background: #fff;
    border: 1px solid #ECECEF;
    border-radius: 18px;
    padding: 16px;
    margin-top: 14px;
    box-shadow: 0 2px 10px -6px rgba(15, 20, 40, 0.08);
}
body.woocommerce-cart .coupon .form-row.coupon-col {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: stretch;
}
body.woocommerce-cart .coupon .coupon-col-start {
    flex: 1 1 200px;
    min-width: 0;
}
body.woocommerce-cart .coupon input#coupon_code {
    width: 100%;
    height: 48px;
    border: 1px solid #DDDFE6;
    border-radius: 999px;
    padding: 0 18px;
    font-family: var(--mps-font-heading);
    font-size: 14px;
    background: #FAFAFB;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
body.woocommerce-cart .coupon input#coupon_code:focus {
    outline: 0;
    background: #fff;
    border-color: var(--mps-atc-cta-2, #B7E600);
    box-shadow: 0 0 0 3px rgba(203, 255, 0, 0.25);
}
body.woocommerce-cart .coupon .coupon-col-end {
    flex: 0 0 auto;
}
body.woocommerce-cart .coupon button.e-apply-coupon {
    height: 48px;
    padding: 0 22px;
    border-radius: 999px !important;
    border: 0;
    background: #111 !important;
    color: #fff !important;
    font-family: var(--mps-font-heading);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.15s, transform 0.15s;
}
body.woocommerce-cart .coupon button.e-apply-coupon:hover {
    background: var(--mps-atc-cta-2, #B7E600) !important;
    color: #111 !important;
    transform: translateY(-1px);
}

/* ---- Cart totals card ---- */
body.woocommerce-cart .e-cart-totals {
    background: #fff;
    border: 1px solid #ECECEF;
    border-radius: 18px;
    padding: 22px 22px 26px;
    box-shadow: 0 6px 24px -12px rgba(15, 20, 40, 0.18);
    position: relative;
    overflow: hidden;
}
body.woocommerce-cart .e-cart-totals::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--mps-atc-cta, #CBFF00), var(--mps-atc-cta-2, #B7E600));
}
body.woocommerce-cart .cart_totals h2 {
    font-family: var(--mps-font-heading);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #111;
    margin: 4px 0 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid #ECECEF;
}
body.woocommerce-cart .cart_totals table.shop_table {
    border: 0;
    background: transparent;
    margin: 0;
}
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
    border: 0;
    padding: 10px 0;
    background: transparent;
    font-family: var(--mps-font-heading);
    font-size: 14px;
    color: #2C3142;
    vertical-align: top;
}
body.woocommerce-cart .cart_totals table.shop_table th {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6B6F80;
    font-size: 12px;
    padding-top: 14px;
}
body.woocommerce-cart .cart_totals tr.order-total th,
body.woocommerce-cart .cart_totals tr.order-total td {
    border-top: 1px solid #ECECEF;
    padding-top: 16px;
    margin-top: 8px;
    font-size: 16px;
    color: #111;
    text-transform: none;
    letter-spacing: 0;
}
body.woocommerce-cart .cart_totals tr.order-total td strong {
    font-size: 22px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #111;
}
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods {
    list-style: none;
    margin: 0;
    padding: 0;
}
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods li label {
    font-weight: 500;
    color: #2C3142;
}
/* Shipping-destination note — brand-aligned chip with truck glyph.
   Elementor forces font-size/line-height via .elementor-element-4a8012c0
   selectors (higher specificity), so we need !important on type rules. */
body.woocommerce-cart .woocommerce-shipping-destination {
    margin: 12px 0 0 !important;
    padding: 10px 14px 10px 38px !important;
    background: linear-gradient(135deg, rgba(203, 255, 0, 0.10), rgba(203, 255, 0, 0.03)) !important;
    border: 1px solid rgba(203, 255, 0, 0.35) !important;
    border-radius: 12px !important;
    position: relative;
    font-family: var(--mps-font-heading) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    font-weight: 500 !important;
    color: #2C3142 !important;
    text-align: left !important;
}
body.woocommerce-cart .woocommerce-shipping-destination::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 12px;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M1 3h15v13H1z'/><path d='M16 8h4l3 3v5h-7'/><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-size: contain;
    background-position: center;
    opacity: 0.85;
}
body.woocommerce-cart .woocommerce-shipping-destination .e-checkout-message,
body.woocommerce-cart .woocommerce-shipping-destination .e-cart-content,
body.woocommerce-cart .woocommerce-shipping-destination span {
    font-family: var(--mps-font-heading) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    font-weight: 500 !important;
    color: #2C3142 !important;
}

/* ---- Procéder au paiement CTA (matches main brand pill) ---- */
body.woocommerce-cart .wc-proceed-to-checkout {
    padding: 18px 0 0 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
body.woocommerce-cart a.checkout-button {
    /* Flex centering instead of line-height: 56px so the label stays vertically
       centered even when Elementor's accent typography overrides our line-height
       (Elementor selector specificity beats ours on bare line-height). */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
    height: 56px;
    line-height: 1 !important;
    padding: 0 24px !important;
    text-align: center;
    border-radius: 999px !important;
    background: linear-gradient(135deg, var(--mps-atc-cta, #CBFF00) 0%, var(--mps-atc-cta-2, #B7E600) 100%) !important;
    color: var(--mps-atc-ink, #111) !important;
    font-family: var(--mps-font-heading) !important;
    font-weight: 800 !important;
    font-size: 14px !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    border: 0 !important;
    box-shadow: 0 10px 24px -10px rgba(120, 160, 0, 0.55), inset 0 -2px 0 rgba(0, 0, 0, 0.12) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease !important;
}
body.woocommerce-cart a.checkout-button:hover {
    background: linear-gradient(135deg, var(--mps-atc-cta-glow, #E6FF66) 0%, var(--mps-atc-cta, #CBFF00) 100%) !important;
    transform: translateY(-1px);
    box-shadow: 0 14px 28px -10px rgba(120, 160, 0, 0.7), inset 0 -2px 0 rgba(0, 0, 0, 0.18) !important;
    color: #111 !important;
    text-decoration: none !important;
}

/* Breadcrumb on cart: lighter, brand-aligned */
body.woocommerce-cart nav.woocommerce-breadcrumb {
    font-family: var(--mps-font-heading);
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #6B6F80;
    margin-bottom: 18px;
}
body.woocommerce-cart nav.woocommerce-breadcrumb a {
    color: #6B6F80;
    text-decoration: none;
    transition: color 0.15s;
}
body.woocommerce-cart nav.woocommerce-breadcrumb a:hover {
    color: #111;
}

/* --- Quantity stepper — applies on ALL viewports (desktop + mobile) ------
   Elementor's Cart widget styles td.product-quantity with a dark background
   and vertical flex, which breaks the − [n] + layout. Reset that here, then
   render the same pill stepper used on mobile/checkout. */
body.woocommerce-cart table.cart td.product-quantity {
    background: transparent !important;
    text-align: left !important;
    vertical-align: middle !important;
}
body.woocommerce-cart table.cart td.product-quantity .quantity.mps-stepper {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    background: #fff !important;
    border: 1px solid #E2E4EC !important;
    border-radius: 999px !important;
    overflow: hidden !important;
    height: 36px !important;
    width: auto !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    vertical-align: middle;
}
body.woocommerce-cart .mps-stepper .mps-stepper__btn {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #032139 !important;
    font-family: var(--mps-font-heading) !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    line-height: 1 !important;
    cursor: pointer;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.15s;
    box-shadow: none !important;
    border-radius: 0 !important;
}
body.woocommerce-cart .mps-stepper .mps-stepper__btn:hover {
    background: rgba(12, 20, 46, 0.05) !important;
}
body.woocommerce-cart .mps-stepper input.qty {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 34px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    text-align: center !important;
    font-family: var(--mps-font-heading) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    color: #032139 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    -moz-appearance: textfield;
    appearance: textfield;
}
body.woocommerce-cart .mps-stepper input.qty::-webkit-outer-spin-button,
body.woocommerce-cart .mps-stepper input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
body.woocommerce-cart .mps-stepper input.qty:focus {
    outline: 0 !important;
    box-shadow: none !important;
}
/* Fallback while JS hasn't wrapped yet */
body.woocommerce-cart td.product-quantity .quantity:not(.mps-stepper) input.qty {
    width: 64px;
    height: 36px;
    font-size: 14px;
    padding: 0 4px;
    border-radius: 999px;
    border: 1px solid #E2E4EC;
    font-family: var(--mps-font-heading);
    font-weight: 700;
    color: #032139;
    background: #fff;
}
/* Defensive: kill any inherited label inside the stepper that could push
   buttons onto separate rows. */
body.woocommerce-cart .mps-stepper > label.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Mobile: convert each cart row into a clean card. We DON'T fight WooCommerce's
   .shop_table_responsive defaults — we replace its td-block-with-::before-label
   layout entirely with an explicit CSS Grid so the product image, name, price,
   qty and subtotal always have a predictable, premium-looking position. */
@media (max-width: 768px) {
    body.woocommerce-cart .e-cart__container {
        gap: 18px;
    }
    body.woocommerce-cart .e-shop-table {
        padding: 8px 12px;
        border-radius: 14px;
    }

    /* Hide the desktop header on mobile (Woo already does this, repeat for safety) */
    body.woocommerce-cart table.cart thead {
        display: none;
    }

    /* Flatten the table so we can grid-layout the row */
    body.woocommerce-cart table.cart,
    body.woocommerce-cart table.cart tbody {
        display: block;
        width: 100%;
    }

    /* Mirror CheckoutWC mobile summary card:
       3-col × 3-row grid. Image spans all rows on the left, subtotal spans
       all rows on the right, middle column stacks name / price / qty top to
       bottom. Remove (×) is absolutely positioned at the top-right. */
    body.woocommerce-cart table.cart tbody tr.cart_item {
        display: grid;
        grid-template-columns: 72px auto 1fr auto;
        grid-template-rows: auto auto;
        grid-template-areas:
            "img name  name  total"
            "img price qty   total";
        column-gap: 10px;
        row-gap: 6px;
        align-items: center;
        padding: 12px 0;
        border-bottom: 1px solid rgba(12, 20, 46, 0.06);
        position: relative;
    }
    body.woocommerce-cart table.cart tbody tr.cart_item:last-of-type {
        border-bottom: 0;
    }

    /* Reset every td inside a product row */
    body.woocommerce-cart table.cart tbody tr.cart_item > td {
        display: block;
        padding: 0;
        margin: 0;
        border: 0;
        background: transparent !important;
        text-align: left !important;
        min-width: 0;   /* critical — stop intrinsic image width from blowing out the grid */
        width: auto;
    }
    /* Kill the auto-generated "data-title: " labels Woo emits on mobile.
       Apply to every td under the cart table (not just rows with .cart_item)
       so the wpced/actions rows don't get a stray ":" ::before either. */
    body.woocommerce-cart table.cart tbody td::before,
    body.woocommerce-cart table.cart tbody td::after {
        content: none !important;
        display: none !important;
    }

    /* Thumbnail — spans all 3 rows on the left */
    body.woocommerce-cart table.cart .product-thumbnail {
        display: block !important;
        grid-area: img;
        align-self: center;
    }
    body.woocommerce-cart td.product-thumbnail a {
        display: block;
        width: 72px;
        height: 72px;
        padding: 4px;
        background: #fff;
        border: 1px solid #ECECEF;
        border-radius: 10px;
        box-shadow: 0 1px 3px -2px rgba(15, 20, 40, 0.06);
    }
    body.woocommerce-cart td.product-thumbnail img {
        display: block !important;
        width: 60px !important;
        height: 60px !important;
        max-width: 60px !important;
        min-width: 0 !important;
        object-fit: cover;
        border-radius: 8px;
        background: #FAFAFB;
        border: 0;
    }

    /* Middle column stack: name (row 1, spans across) / price + qty inline (row 2) */
    body.woocommerce-cart td.product-name {
        grid-area: name;
        align-self: end;
        min-width: 0;
        overflow: hidden;
        padding-right: 24px; /* keep clear of × */
    }
    body.woocommerce-cart td.product-name a {
        display: block;
        font-family: var(--mps-font-heading) !important;
        font-weight: 700 !important;
        font-size: 13.5px !important;
        line-height: 1.35 !important;
        color: #032139;
        text-decoration: none;
        text-transform: none !important;
        letter-spacing: 0 !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
    }
    body.woocommerce-cart td.product-price {
        grid-area: price;
        align-self: center;
        justify-self: start;
        font-family: var(--mps-font-heading) !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        line-height: 1.3 !important;
        color: rgba(12, 20, 46, 0.55) !important;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }
    body.woocommerce-cart td.product-quantity {
        grid-area: qty;
        align-self: center;
        justify-self: start;
        margin-left: 8px;
    }
    body.woocommerce-cart td.product-quantity .quantity {
        margin: 0;
    }

    /* Subtotal anchor on the right — spans all 3 rows */
    body.woocommerce-cart td.product-subtotal {
        grid-area: total;
        align-self: center;
        justify-self: end;
        text-align: right !important;
        font-family: var(--mps-font-heading) !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        line-height: 1.3 !important;
        color: #032139 !important;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }
    body.woocommerce-cart td.product-subtotal .woocommerce-Price-amount {
        font-size: inherit !important;
        font-weight: inherit !important;
        color: inherit !important;
    }

    /* Remove (×) — absolutely positioned top-right of the row, above subtotal */
    body.woocommerce-cart td.product-remove {
        position: absolute;
        top: 4px;
        right: 0;
        width: auto;
        z-index: 2;
    }
    body.woocommerce-cart td.product-remove a.remove {
        width: 22px;
        height: 22px;
        line-height: 20px;
        font-size: 14px;
    }

    /* Tighten the delivery-estimate pill on mobile (don't let it stretch) */
    body.woocommerce-cart tr:has(> td.wpced-cart) {
        display: block;
    }
    body.woocommerce-cart td.wpced-cart {
        display: flex !important;
        justify-content: center;
        text-align: center !important; /* override Woo's text-align: right !important on shop_table td */
        padding: 10px 4px 4px !important;
    }
    body.woocommerce-cart .wpced {
        max-width: 100%;
        display: inline-flex;
        align-items: center;
        text-align: center !important;
        font-size: 13px !important; /* override Elementor's accent 15px so the line fits without wrapping */
        line-height: 1.3 !important;
    }
    body.woocommerce-cart .wpced-inner {
        white-space: nowrap; /* keep "Livraison estimée : 1. juin - 3. juin" on one line */
    }

    /* Hide the empty disabled "update cart" actions row on mobile (Woo renders a
       0-text submit button when nothing changed — was showing as a stray dot). */
    body.woocommerce-cart table.cart tbody tr:has(> td.actions) {
        display: none;
    }

    body.woocommerce-cart .e-cart__column-end {
        margin-top: 4px;
    }
}

/* ==========================================================================
   Add-to-cart animation — unified smooth loading + success state
   applied to all ATC buttons: loop pill, single-product CTA, sticky bar.
   States toggled by JS: .mps-atc-pending → spinner, .mps-atc-success → check.
   ========================================================================== */

@keyframes mps-atc-spin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes mps-atc-pop {
    0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }
    60%  { transform: translate(-50%, -50%) scale(1.15); opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

@keyframes mps-atc-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(203, 255, 0, 0.45); }
    50%      { box-shadow: 0 0 0 8px rgba(203, 255, 0, 0); }
}

/* ---- Loop card pill (.mps-card-cta) — small square icon button ---------- */
a.mps-card-cta.mps-atc-pending,
a.mps-card-cta.mps-atc-success {
    pointer-events: none;
    background: var(--mps-card-navy) !important;
}
/* Hide the existing bag icon while spinner/check is shown */
a.mps-card-cta.mps-atc-pending::before,
a.mps-card-cta.mps-atc-success::before {
    opacity: 0;
}
a.mps-card-cta.mps-atc-pending::after,
a.mps-card-cta.mps-atc-success::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 18px;
    transform: translate(-50%, -50%);
    box-sizing: border-box;
    z-index: 4;
}
a.mps-card-cta.mps-atc-pending::after {
    border: 2px solid rgba(255, 255, 255, 0.25);
    border-top-color: #fff;
    border-radius: 999px;
    animation: mps-atc-spin 0.7s linear infinite;
}
a.mps-card-cta.mps-atc-success {
    background: var(--mps-atc-cta, #CBFF00) !important;
}
a.mps-card-cta.mps-atc-success::after {
    width: 14px;
    height: 8px;
    border: 0;
    border-left: 2.5px solid var(--mps-card-navy, #0a1f3d);
    border-bottom: 2.5px solid var(--mps-card-navy, #0a1f3d);
    border-radius: 1px;
    transform: translate(-50%, -70%) rotate(-45deg);
    animation: mps-atc-pop 0.32s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

/* ---- Single product full-width pill (.single_add_to_cart_button) -------- */
.woocommerce button.single_add_to_cart_button.mps-atc-pending,
.woocommerce button.single_add_to_cart_button.mps-atc-success,
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.mps-atc-pending,
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.mps-atc-success {
    pointer-events: none !important;
    position: relative !important;
    color: transparent !important;
    text-shadow: none !important;
    transition: color 0.15s ease, background 0.2s ease !important;
}
/* Hide the existing chevron ::after on sticky button while spinner runs */
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.mps-atc-pending::after,
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.mps-atc-success::after {
    border: 0 !important;
    margin-left: 0 !important;
    width: 22px !important;
    height: 22px !important;
    transform: translate(-50%, -50%) !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    box-sizing: border-box !important;
    z-index: 3 !important;
}
/* Sticky: keep the inner text invisible via color:transparent above.
   Add the spinner via ::after (already styled above) for pending state. */
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.mps-atc-pending::after {
    border: 2.5px solid rgba(17, 17, 17, 0.22) !important;
    border-top-color: var(--mps-atc-ink, #111) !important;
    border-radius: 999px !important;
    animation: mps-atc-spin 0.7s linear infinite !important;
}
body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.mps-atc-success::after {
    width: 16px !important;
    height: 10px !important;
    border: 0 !important;
    border-left: 3px solid var(--mps-atc-ink, #111) !important;
    border-bottom: 3px solid var(--mps-atc-ink, #111) !important;
    transform: translate(-50%, -70%) rotate(-45deg) !important;
    animation: mps-atc-pop 0.32s cubic-bezier(0.2, 0.8, 0.2, 1) both !important;
}
/* Single product CTA — spinner / check via ::after */
.woocommerce button.single_add_to_cart_button.mps-atc-pending::after,
.woocommerce button.single_add_to_cart_button.mps-atc-success::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22px;
    height: 22px;
    box-sizing: border-box;
    transform: translate(-50%, -50%);
}
.woocommerce button.single_add_to_cart_button.mps-atc-pending::after {
    border: 2.5px solid rgba(17, 17, 17, 0.22);
    border-top-color: var(--mps-atc-ink, #111);
    border-radius: 999px;
    animation: mps-atc-spin 0.7s linear infinite;
}
.woocommerce button.single_add_to_cart_button.mps-atc-success::after {
    width: 18px;
    height: 11px;
    border: 0;
    border-left: 3px solid var(--mps-atc-ink, #111);
    border-bottom: 3px solid var(--mps-atc-ink, #111);
    transform: translate(-50%, -70%) rotate(-45deg);
    animation: mps-atc-pop 0.32s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
.woocommerce button.single_add_to_cart_button.mps-atc-success {
    animation: mps-atc-pulse 0.6s ease-out;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    a.mps-card-cta.mps-atc-pending::after,
    .woocommerce button.single_add_to_cart_button.mps-atc-pending::after,
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.mps-atc-pending::after,
    a.mps-card-cta.mps-atc-success::after,
    .woocommerce button.single_add_to_cart_button.mps-atc-success::after,
    body .wpcsb-wrapper .wpcsb-add-to-cart .wpcsb-btn.mps-atc-success::after {
        animation: none !important;
    }
}

/* ----------------------------------------------------------------
 * Top-bar promo (header announcement) — 2026-05-30
 * Scope: the text-editor widget that renders the "OFFRE FLASH" link.
 * Inherits the bar's primary (navy) bg and accent text color (gold)
 * from Elementor globals — no hardcoded brand colors.
 * --mps-flash-accent captures the inherited link/text color BEFORE
 * we override `color` on inner elements, so we can paint accent-
 * colored backgrounds with navy text on top.
 * ---------------------------------------------------------------- */
.elementor-widget-text-editor .mps-flash {
    /* Brand off-white (Elementor global "ecbf531") = #F8F8F8 — used by header text */
    --mps-flash-accent: var(--e-global-color-ecbf531, #f8f8f8);
    --mps-flash-on-accent: var(--e-global-color-primary, #032139);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none !important;
    letter-spacing: 0.02em;
    line-height: 1.2;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.elementor-widget-text-editor .mps-flash:hover {
    opacity: 0.95;
    transform: translateY(-1px);
}
.elementor-widget-text-editor .mps-flash-badge {
    position: relative;
    overflow: hidden;
    display: inline-block;
    padding: 3px 9px;
    font-size: 0.72em;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.4;
    text-transform: uppercase;
    background: var(--mps-flash-accent);
    color: var(--mps-flash-on-accent);
    border-radius: 999px;
    isolation: isolate;
}
.elementor-widget-text-editor .mps-flash-badge::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        110deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0) 38%,
        rgba(255, 255, 255, 0.55) 50%,
        rgba(255, 255, 255, 0) 62%,
        rgba(255, 255, 255, 0) 100%
    );
    transform: translateX(-110%);
    animation: mps-flash-shine 6s ease-in-out 2s infinite;
    pointer-events: none;
}
.elementor-widget-text-editor .mps-flash-body {
    font-weight: 500;
}
.elementor-widget-text-editor .mps-flash-code {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 6px;
    font-weight: 700;
    letter-spacing: 0.08em;
    border: 1px dashed var(--mps-flash-accent);
    border-radius: 4px;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.elementor-widget-text-editor .mps-flash:hover .mps-flash-code {
    background: var(--mps-flash-accent);
    color: var(--mps-flash-on-accent);
    border-style: solid;
}

@keyframes mps-flash-shine {
    0%   { transform: translateX(-110%); }
    18%  { transform: translateX(110%); }
    100% { transform: translateX(110%); }
}

/* Mobile + tablet: tight stacked layout — badge centered above, body+code below.
 * Breakpoint matches Elementor's default tablet cutoff (<=1024px) so the bar
 * stays clean across all phones and tablets, only switching to single-row at desktop.
 * !important on font-size needed to beat the global
 * `.elementor-widget-text-editor a { font-size: var(--mps-type-body-size) !important }` rule. */
@media (max-width: 1024px) {
    .elementor-widget-text-editor .mps-flash {
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: center;
        gap: 6px;
        font-size: 11px !important;
        line-height: 1.25;
        letter-spacing: 0.01em;
        text-align: center;
        white-space: nowrap;
    }
    .elementor-widget-text-editor .mps-flash-badge {
        padding: 2px 7px;
        font-size: 9px;
        letter-spacing: 0.1em;
        flex: 0 0 auto;
    }
    .elementor-widget-text-editor .mps-flash-body {
        display: inline;
        white-space: nowrap;
    }
    .elementor-widget-text-editor .mps-flash-code {
        margin-left: 3px;
        padding: 0 5px;
    }
}

@media (max-width: 380px) {
    .elementor-widget-text-editor .mps-flash {
        gap: 5px;
        font-size: 10px !important;
    }
    .elementor-widget-text-editor .mps-flash-badge {
        padding: 2px 6px;
        font-size: 8.5px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .elementor-widget-text-editor .mps-flash,
    .elementor-widget-text-editor .mps-flash-code,
    .elementor-widget-text-editor .mps-flash-badge::after {
        transition: none !important;
        animation: none !important;
    }
}

/* Hide the chevron-left/right icon widgets flanking the flash promo. */
.elementor-22 .elementor-element.elementor-element-bec4b41,
.elementor-22 .elementor-element.elementor-element-e6c25c8 {
    display: none !important;
}

/* Mobile/tablet: with arrows hidden, center the lone text-editor widget
 * inside the header inner container, and let it use the full available
 * width so the nowrap body line doesn't overflow the 280px Elementor
 * mobile width preset. */
@media (max-width: 1024px) {
    .elementor-22 .elementor-element.elementor-element-93fdca8 {
        --justify-content: center;
    }
    .elementor-22 .elementor-element.elementor-element-82c3d17 {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ============================================================================
   Single-product "Outlet" promo section — design overhaul
   Targets the Elementor template (post-28) injected at the bottom of every
   single product page. Brand-aligned: navy primary + off-white accent (gold),
   energetic without being noisy. Fixes: outlined H1 collision, cut-off 3rd card,
   left/right column rhythm, mobile stacking, slider container overflow.
   IDs taken from the Elementor template "Single Product" (post-28).
   ============================================================================ */

/* Outer section — soft off-white framing, generous breathing room */
.elementor-28 .elementor-element.elementor-element-2892b28b {
    background: linear-gradient(180deg, #fafafa 0%, #f3f5f8 100%) !important;
    padding: 64px 0 72px !important;
    margin-top: 56px !important;
    overflow: hidden;
    position: relative;
}
.elementor-28 .elementor-element.elementor-element-2892b28b::before {
    content: none !important;
}

/* Disable on-scroll entrance animations for Outlet + FAQ sections on single
 * product pages — Elementor's fadeInUp/Down + .elementor-invisible cause
 * elements to start hidden until scrolled into view, which feels janky and
 * delays content for users. Force them visible immediately. */
.elementor-28 .elementor-element.elementor-element-2892b28b .animated,
.elementor-28 .elementor-element.elementor-element-84069e8 .animated,
.elementor-28 .elementor-element.elementor-element-2892b28b .elementor-invisible,
.elementor-28 .elementor-element.elementor-element-84069e8 .elementor-invisible {
    animation: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

/* Hide the giant outlined "Outlet" H1 — the inner card already says it,
 * and the stroked text effect read as broken / AI-generated. */
.elementor-28 .elementor-element.elementor-element-26d87790 {
    display: none !important;
}

/* Two-column container: tighten gap, ensure inner padding so the products
 * slider does NOT get clipped at the right edge. */
.elementor-28 .elementor-element.elementor-element-142684e {
    padding-left: 24px !important;
    padding-right: 24px !important;
}
.elementor-28 .elementor-element.elementor-element-142684e > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(260px, 320px) 1fr;
    gap: 32px;
    align-items: stretch;
    max-width: 1280px;
    margin: 0 auto;
}

/* ------- LEFT PANEL: Outlet hero card ------- */
.elementor-28 .elementor-element.elementor-element-c53cb81 {
    position: relative;
    width: 100% !important;
    max-width: 100% !important;
    justify-self: stretch;
    align-self: stretch;
    background:
        linear-gradient(160deg, rgba(3, 33, 57, 0.92) 0%, rgba(3, 33, 57, 0.78) 55%, rgba(3, 33, 57, 0.95) 100%),
        radial-gradient(120% 80% at 100% 0%, rgba(248, 248, 248, 0.18) 0%, transparent 60%) !important;
    background-color: var(--mps-atc-blue, #032139) !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    padding: 28px 24px !important;
    color: #f8f8f8 !important;
    box-shadow:
        0 18px 40px -20px rgba(3, 33, 57, 0.45),
        0 4px 12px -6px rgba(3, 33, 57, 0.18) !important;
    isolation: isolate;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px;
}
/* Subtle diagonal energy stripe behind the content */
.elementor-28 .elementor-element.elementor-element-c53cb81::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -30%;
    width: 80%;
    height: 180%;
    background: linear-gradient(
        110deg,
        transparent 0%,
        transparent 45%,
        rgba(248, 248, 248, 0.05) 50%,
        transparent 55%,
        transparent 100%
    );
    transform: rotate(8deg);
    pointer-events: none;
    z-index: 0;
}

/* Inner text container at top of the card */
.elementor-28 .elementor-element.elementor-element-84182db {
    position: relative;
    z-index: 1;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column;
    gap: 8px;
}

/* "Outlet" eyebrow — restyle the H3 widget as a small gold pill */
.elementor-28 .elementor-element.elementor-element-9370387 .elementor-heading-title {
    display: inline-block !important;
    align-self: flex-start;
    background: var(--e-global-color-ecbf531, #f8f8f8);
    color: var(--mps-atc-blue, #032139) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    padding: 5px 11px !important;
    border-radius: 999px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
}

/* "Meilleur prix garanti" — promote to a real headline */
.elementor-28 .elementor-element.elementor-element-74a248c {
    color: #ffffff !important;
    font-size: clamp(20px, 1.2rem + 0.6vw, 26px) !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.01em !important;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: none !important;
}
.elementor-28 .elementor-element.elementor-element-74a248c .elementor-widget-container {
    color: inherit !important;
    font: inherit !important;
}

/* Image — make it part of the card, not floating */
.elementor-28 .elementor-element.elementor-element-b0c54b1 {
    position: relative;
    z-index: 1;
    margin: 4px 0 !important;
    padding: 0 !important;
    border-radius: 14px;
    overflow: hidden;
    flex: 1 1 auto;
    min-height: 180px;
}
.elementor-28 .elementor-element.elementor-element-b0c54b1 .elementor-widget-container {
    height: 100%;
    border-radius: 14px;
    overflow: hidden;
    position: relative;
}
.elementor-28 .elementor-element.elementor-element-b0c54b1 img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 14px;
    transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.elementor-28 .elementor-element.elementor-element-c53cb81:hover
    .elementor-element-b0c54b1 img {
    transform: scale(1.04);
}
/* Subtle fade at bottom of image so description text below feels connected */
.elementor-28 .elementor-element.elementor-element-b0c54b1 .elementor-widget-container::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 38%;
    background: linear-gradient(180deg, transparent 0%, rgba(3, 33, 57, 0.55) 100%);
    pointer-events: none;
}

/* Description block — tighten + readable on dark bg */
.elementor-28 .elementor-element.elementor-element-53de786 {
    position: relative;
    z-index: 1;
    padding: 0 !important;
    margin: 0 !important;
}
.elementor-28 .elementor-element.elementor-element-7cbe25c,
.elementor-28 .elementor-element.elementor-element-7cbe25c .elementor-widget-container,
.elementor-28 .elementor-element.elementor-element-7cbe25c p {
    color: rgba(248, 248, 248, 0.82) !important;
    font-size: 13.5px !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    font-weight: 400 !important;
}

/* ------- RIGHT PANEL: products slider container ------- */
.elementor-28 .elementor-element.elementor-element-2f4da03 {
    padding: 0 !important;
    min-width: 0; /* let grid child shrink so slider can compute width correctly */
}
.elementor-28 .elementor-element.elementor-element-6067df5 {
    padding: 0 !important;
    min-width: 0;
}
.elementor-28 .elementor-element.elementor-element-6067df5 > .elementor-widget-container {
    overflow: visible;
}

/* Slider section (overrides the generic related-products styles for spacing
 * inside this Outlet block — keeps the same card visual identity). */
.elementor-28 section.related.products.mps-slider-ready {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.elementor-28 section.related.products.mps-slider-ready > h2 {
    position: relative;
    margin: 0 0 22px !important;
    padding-bottom: 12px;
    font-size: clamp(1.25rem, 0.95rem + 0.9vw, 1.7rem) !important;
}
.elementor-28 section.related.products.mps-slider-ready > h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 44px;
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(
        90deg,
        var(--mps-atc-blue, #032139) 0%,
        var(--mps-atc-blue, #032139) 60%,
        var(--e-global-color-ecbf531, #f8f8f8) 60%,
        var(--e-global-color-ecbf531, #f8f8f8) 100%
    );
}

/* Make the slider show 3-up cleanly inside the right column at desktop,
 * and prevent edge-clipping by giving viewport its own padding. */
.elementor-28 .mps-slider__viewport {
    margin: 0 !important;
}
.elementor-28 .mps-slider__track {
    padding: 6px 4px 26px !important;
}
.elementor-28 .mps-slider__track > li.product {
    flex: 0 0 calc((100% - 18px * 2) / 3) !important;
    max-width: calc((100% - 18px * 2) / 3) !important;
    margin: 0 18px 0 0 !important;
}
.elementor-28 .mps-slider__track > li.product:last-child {
    margin-right: 0 !important;
}

/* Arrow controls: pull inside the column edges so they don't get clipped
 * by the section overflow:hidden and don't overlap product imagery. */
.elementor-28 .mps-slider__arrow--prev { left: -6px !important; }
.elementor-28 .mps-slider__arrow--next { right: -6px !important; }

/* Equalize card heights — first card has no rating, second/third do.
 * Reserve a fixed slot for the rating row so all 3 cards align. */
.elementor-28 .mps-slider__track > li.product .mps-rating {
    min-height: 22px;
}
.elementor-28 .mps-slider__track > li.product:not(:has(.mps-rating))
    .woocommerce-loop-product__title {
    margin-top: 22px; /* visual placeholder when no rating exists */
}

/* ------- Responsive ------- */
@media (max-width: 1024px) {
    .elementor-28 .elementor-element.elementor-element-2892b28b {
        padding: 48px 0 56px !important;
        margin-top: 40px !important;
    }
    .elementor-28 .elementor-element.elementor-element-142684e > .e-con-inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    /* Compact horizontal hero on tablet — image on left, text right */
    .elementor-28 .elementor-element.elementor-element-c53cb81 {
        flex-direction: row !important;
        align-items: stretch !important;
        gap: 20px;
        padding: 22px !important;
    }
    .elementor-28 .elementor-element.elementor-element-b0c54b1 {
        flex: 0 0 38%;
        min-height: 0;
        align-self: stretch;
    }
    .elementor-28 .elementor-element.elementor-element-b0c54b1 img {
        height: 100% !important;
        min-height: 160px;
    }
    .elementor-28 .elementor-element.elementor-element-84182db,
    .elementor-28 .elementor-element.elementor-element-53de786 {
        flex: 1 1 auto;
        align-self: center;
    }
    .elementor-28 .mps-slider__track > li.product {
        flex: 0 0 calc((100% - 16px * 2) / 3) !important;
        max-width: calc((100% - 16px * 2) / 3) !important;
        margin-right: 16px !important;
    }
}

@media (max-width: 768px) {
    .elementor-28 .elementor-element.elementor-element-2892b28b {
        padding: 40px 0 48px !important;
    }
    .elementor-28 .elementor-element.elementor-element-142684e {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    /* Stack hero vertically again on small viewports — hide image to keep promo tight */
    .elementor-28 .elementor-element.elementor-element-c53cb81 {
        flex-direction: column !important;
        padding: 22px !important;
    }
    .elementor-28 .elementor-element.elementor-element-b0c54b1 {
        display: none !important;
    }
    .elementor-28 .elementor-element.elementor-element-74a248c {
        font-size: 19px !important;
    }
    .elementor-28 .mps-slider__track > li.product {
        flex: 0 0 calc((100% - 14px) / 2) !important;
        max-width: calc((100% - 14px) / 2) !important;
        margin-right: 14px !important;
    }
}

@media (max-width: 520px) {
    .elementor-28 .elementor-element.elementor-element-2892b28b {
        padding: 32px 0 40px !important;
    }
    .elementor-28 .elementor-element.elementor-element-c53cb81 {
        padding: 20px !important;
        border-radius: 14px !important;
    }
    .elementor-28 .mps-slider__track {
        padding: 6px 16px 22px !important;
    }
    .elementor-28 .mps-slider__track > li.product {
        flex: 0 0 70% !important;
        max-width: 70% !important;
        margin-right: 12px !important;
    }
}

/* === Outlet slider cards — match HOME loop card design exactly ============ */
/* Title: centered, Montserrat 15px / weight 700 / navy */
.elementor-28 .mps-slider__track > li.product .woocommerce-loop-product__title,
.elementor-28 .mps-slider__track > li.product .woocommerce-loop-product__title a {
    text-align: center !important;
    font-family: "Montserrat", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: #0A1F3D !important;
    margin: 4px 0 6px !important;
    min-height: 40px !important;
}

/* Price wrapper: centered, big & loud like home */
.elementor-28 .mps-slider__track > li.product .price {
    text-align: center !important;
    color: #0A1F3D !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    margin: auto 0 0 !important; /* pin to bottom of flex column */
    padding-top: 6px !important;
    display: block !important;
}
.elementor-28 .mps-slider__track > li.product .price del,
.elementor-28 .mps-slider__track > li.product .price del .amount,
.elementor-28 .mps-slider__track > li.product .price del .woocommerce-Price-currencySymbol {
    font-family: "Montserrat", Inter, -apple-system, sans-serif !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    color: #6B7785 !important;
    text-decoration: line-through !important;
    margin-right: 8px !important;
    opacity: 1 !important;
}
.elementor-28 .mps-slider__track > li.product .price ins,
.elementor-28 .mps-slider__track > li.product .price ins .amount,
.elementor-28 .mps-slider__track > li.product .price ins .woocommerce-Price-currencySymbol {
    font-family: "Montserrat", Inter, -apple-system, sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #E63946 !important;
    text-decoration: none !important;
    background: transparent !important;
}
/* Non-sale price (just .amount, no ins/del) */
.elementor-28 .mps-slider__track > li.product .price > .woocommerce-Price-amount.amount,
.elementor-28 .mps-slider__track > li.product .price > bdi {
    font-family: "Montserrat", Inter, -apple-system, sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #0A1F3D !important;
}

/* Hide WC native legacy star-rating block (the .mps-rating block is our display) */
.elementor-28 .mps-slider__track > li.product .star-rating {
    display: none !important;
}

/* Center the small mps-rating row inside slider cards (matches home centered look) */
.elementor-28 .mps-slider__track > li.product .mps-rating,
.elementor-28 .mps-slider__track > li.product .mps-delivery-date {
    justify-content: center !important;
    text-align: center !important;
}

/* Make the link a column flex so price pins to bottom and title sits between
   rating and price like the home card */
.elementor-28 .mps-slider__track > li.product .woocommerce-loop-product__link {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    gap: 4px !important;
}

/* Image: slightly larger like home, with consistent square ratio + soft surface */
.elementor-28 .mps-slider__track > li.product .mps-card-image-wrap,
.elementor-28 .mps-slider__track > li.product img {
    border-radius: 12px !important;
}
.elementor-28 .mps-slider__track > li.product .mps-card-image-wrap {
    position: relative !important;
    display: block !important;
    background: #f7f7f8 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    margin-bottom: 10px !important;
}
.elementor-28 .mps-slider__track > li.product .mps-card-image-wrap img {
    margin: 0 !important;
    background: transparent !important;
}

/* Hide native "Ajouter au panier" text label leaking inside the image-wrap */
.elementor-28 .mps-slider__track > li.product .mps-card-image-wrap > a.button {
    text-indent: -9999px !important;
    overflow: hidden !important;
}

/* Tighter mobile sizing — keep proportion identical to home cards */
@media (max-width: 600px) {
    .elementor-28 .mps-slider__track > li.product .woocommerce-loop-product__title,
    .elementor-28 .mps-slider__track > li.product .woocommerce-loop-product__title a {
        font-size: 14px !important;
        min-height: 36px !important;
    }
    .elementor-28 .mps-slider__track > li.product .price ins,
    .elementor-28 .mps-slider__track > li.product .price ins .amount,
    .elementor-28 .mps-slider__track > li.product .price > .woocommerce-Price-amount.amount {
        font-size: 15px !important;
    }
    .elementor-28 .mps-slider__track > li.product .price del,
    .elementor-28 .mps-slider__track > li.product .price del .amount {
        font-size: 12px !important;
    }
}
/* === END outlet slider cards match home =================================== */

/* ============================================================
   Single product page: typography + promo banner (MPDAYS)
   Mirrors padelnuestro.com layout, adapted to brand colors.
   ============================================================ */

/* Brand display font: Barlow (matches PN product titles).
   Loaded by mps_load_brand_display_fonts() in functions.php.
   Font stack mirrors padelnuestro.com exactly for identical fallback rendering. */
:root {
    --mps-brand-display-font: "Barlow", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* Single product page title — Padel Nuestro family (Barlow), scaled down
   for the narrower MPS product column so it doesn't wrap to 3 lines. */
.elementor-location-single .elementor-widget-woocommerce-product-title .product_title,
.elementor-location-single .elementor-widget-woocommerce-product-title h1.product_title,
.elementor-location-single .elementor-widget-woocommerce-product-title h2.product_title,
.elementor-location-single .elementor-widget-woocommerce-product-title h3.product_title,
.elementor-location-single .elementor-widget-woocommerce-product-title h4.product_title {
    font-family: var(--mps-brand-display-font) !important;
    font-weight: 800 !important;
    font-size: 24px !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    color: #0A1F3D !important;
    text-transform: uppercase !important;
}
@media (max-width: 1024px) {
    .elementor-location-single .elementor-widget-woocommerce-product-title .product_title {
        font-size: 22px !important;
    }
}
@media (max-width: 480px) {
    .elementor-location-single .elementor-widget-woocommerce-product-title .product_title {
        font-size: 20px !important;
    }
}

/* Section headings on the single product page (e.g. "Vous aimez aussi") —
   apply same Barlow display family for typographic consistency.
   Scope tightly to the related-products / outlet section heading wrapper. */
.elementor-28 section.related.products > h2,
.elementor-28 section.related.products > h2 a {
    font-family: var(--mps-brand-display-font) !important;
    font-weight: 800 !important;
    letter-spacing: -0.005em !important;
}

/* ------- Promo banner ----------------------------------------------------- */

.mps-promo-banner {
    display: inline-flex;
    flex-direction: column;
    background: #032139;
    color: #fff;
    border-radius: 10px;
    overflow: hidden;
    margin: 0 0 14px;
    font-family: "Barlow Semi Condensed", "Barlow", Inter, -apple-system, sans-serif;
    box-shadow: 0 8px 24px -16px rgba(3, 33, 57, 0.55);
    border: 1px solid rgba(203, 255, 0, 0.18);
    width: fit-content;
    max-width: 100%;
}

.mps-promo-banner__row {
    display: flex;
    align-items: center;
    width: 100%;
}
.mps-promo-banner__row--top {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Left cell: "15% OFF" */
.mps-promo-banner__discount {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 9px 14px;
    flex: 0 0 auto;
}
.mps-promo-banner__pct {
    font-family: "Barlow Condensed", "Barlow", sans-serif;
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
    color: #fff;
    letter-spacing: -0.01em;
}
.mps-promo-banner__label {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    color: rgba(255, 255, 255, 0.85);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* Vertical separator */
.mps-promo-banner__sep {
    flex: 0 0 1px;
    align-self: stretch;
    margin: 8px 0;
    background: rgba(255, 255, 255, 0.12);
}

/* Marketing pitch — sits between separator and coupon, fills the empty
   space on desktop and reinforces urgency. Hidden on mobile. */
.mps-promo-banner__pitch {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1 1 auto;
    min-width: 0;
    padding: 6px 14px;
    line-height: 1.15;
}
.mps-promo-banner__pitch-eyebrow {
    font-family: "Barlow Condensed", "Barlow", sans-serif;
    font-size: 10px;
    font-weight: 700;
    color: #CBFF00;
    text-transform: uppercase;
    letter-spacing: 0.16em;
}
.mps-promo-banner__pitch-headline {
    font-family: "Barlow Semi Condensed", "Barlow", sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.92);
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Right cell: "Coupon  [MPDAYS]" — no flex-grow so the row hugs its content. */
.mps-promo-banner__coupon {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    flex: 0 0 auto;
    min-width: 0;
}
.mps-promo-banner__coupon-label {
    font-size: 11px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.55);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    line-height: 1.3;
    flex: 0 0 auto;
}
.mps-promo-banner__code {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border: 1.5px dashed #CBFF00;
    border-radius: 6px;
    background: transparent;
    color: #CBFF00;
    font-family: "Barlow Condensed", "Barlow", sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.12s ease;
    text-decoration: none;
}
.mps-promo-banner__code:hover {
    background: rgba(203, 255, 0, 0.12);
}
.mps-promo-banner__code:active {
    transform: scale(0.98);
}
.mps-promo-banner__code:focus-visible {
    outline: 2px solid #CBFF00;
    outline-offset: 2px;
}
.mps-promo-banner__code--copied {
    background: #CBFF00;
    color: #032139;
    border-style: solid;
}
.mps-promo-banner__code--copied .mps-promo-banner__icon {
    color: #032139;
}
.mps-promo-banner__code--copied .mps-promo-banner__code-text::after {
    content: " ✓";
}
.mps-promo-banner__icon {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
    color: #CBFF00;
    transition: color 0.18s ease;
}

/* Bottom row: expiry / validity line */
.mps-promo-banner__expires {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    width: 100%;
    flex-wrap: wrap;
}
.mps-promo-banner__expires-icon {
    flex: 0 0 12px;
    color: #CBFF00;
}
.mps-promo-banner__expires-text {
    font-size: 11px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.55);
    text-transform: uppercase;
    letter-spacing: 0.10em;
}
.mps-promo-banner__expires-date {
    font-family: "Barlow Condensed", "Barlow", sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #CBFF00;
    letter-spacing: 0.06em;
}

/* Mobile tightening */
@media (max-width: 600px) {
    /* Keep pitch inline in the empty middle space; hide the eyebrow label. */
    .mps-promo-banner__pitch {
        padding: 4px 8px;
        min-width: 0;
        flex: 1 1 auto;
    }
    .mps-promo-banner__pitch-eyebrow { display: none; }
    .mps-promo-banner__pitch-headline {
        font-size: 11px;
        line-height: 1.2;
    }
    /* Full-width banner on mobile so it spans the product column. */
    .mps-promo-banner {
        display: flex;
        width: 100%;
        max-width: 100%;
    }
    .mps-promo-banner__row { width: 100%; }
    .mps-promo-banner__discount { padding: 8px 12px; }
    .mps-promo-banner__pct { font-size: 22px; }
    .mps-promo-banner__label { font-size: 12px; }
    /* Coupon hugs the right edge of the top row. */
    .mps-promo-banner__coupon {
        padding: 8px 12px;
        gap: 8px;
        margin-left: auto;
        justify-content: flex-end;
    }
    .mps-promo-banner__coupon-label { font-size: 10px; }
    .mps-promo-banner__code { font-size: 14px; padding: 4px 10px; }
    .mps-promo-banner__expires { padding: 6px 12px; }
}
/* === END single product typography + promo banner ========================= */

/* Promo banner — defeat global theme button reset (Hello Elementor + parent
   theme apply broad button rules that override our class).
   Increase specificity + !important on cosmetic props. */
.mps-promo-banner .mps-promo-banner__code,
.mps-promo-banner button.mps-promo-banner__code {
    font-family: "Barlow Condensed", "Barlow", sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.12em !important;
    color: #CBFF00 !important;
    background: transparent !important;
    border: 1.5px dashed #CBFF00 !important;
    border-radius: 6px !important;
    padding: 5px 12px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    min-width: 0 !important;
}
.mps-promo-banner button.mps-promo-banner__code:hover {
    color: #CBFF00 !important;
    background: rgba(203, 255, 0, 0.12) !important;
    border-color: #CBFF00 !important;
}
.mps-promo-banner button.mps-promo-banner__code--copied,
.mps-promo-banner .mps-promo-banner__code--copied {
    background: #CBFF00 !important;
    color: #032139 !important;
    border-style: solid !important;
}
.mps-promo-banner .mps-promo-banner__code--copied .mps-promo-banner__icon {
    color: #032139 !important;
}
.mps-promo-banner .mps-promo-banner__icon { color: #CBFF00; }
.mps-promo-banner .mps-promo-banner__code-text {
    font: inherit !important;
    color: inherit !important;
    letter-spacing: inherit !important;
}
@media (max-width: 600px) {
    .mps-promo-banner .mps-promo-banner__code,
    .mps-promo-banner button.mps-promo-banner__code {
        font-size: 14px !important;
        padding: 4px 10px !important;
    }
}

/* ============================================================
   Single product: "Limited stock" scarcity pill
   Injected inline next to the sale price, on the same line.
   ============================================================ */
/* Make the price block a flex row so pill sits beside the sale price. */
.elementor-location-single .elementor-widget-woocommerce-product-price .price {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 28px;
}
/* Extra breathing room around the price widget so the CTA/qty selector
   below it isn't visually glued to the pill row. */
.elementor-location-single .elementor-widget-woocommerce-product-price {
    margin-bottom: 8px !important;
}
.elementor-location-single .elementor-widget-woocommerce-product-price p.price {
    margin: 0 0 4px !important;
}
.mps-scarcity {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 12px;
    margin: 0;
    background: linear-gradient(135deg, rgba(230, 57, 70, 0.10), rgba(230, 57, 70, 0.04));
    color: #C81E2C;
    border: 1px solid rgba(230, 57, 70, 0.28);
    border-radius: 999px;
    font-family: "Barlow Semi Condensed", "Montserrat", Inter, -apple-system, sans-serif;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.01em;
    white-space: nowrap;
    max-width: 100%;
    box-shadow: 0 4px 14px -10px rgba(230, 57, 70, 0.55);
    vertical-align: middle;
}
.mps-scarcity__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #E63946;
    box-shadow: 0 0 0 0 rgba(230, 57, 70, 0.55);
    flex: 0 0 8px;
    animation: mps-scarcity-pulse 1.6s ease-out infinite;
}
@keyframes mps-scarcity-pulse {
    0%   { box-shadow: 0 0 0 0   rgba(230, 57, 70, 0.55); }
    70%  { box-shadow: 0 0 0 10px rgba(230, 57, 70, 0); }
    100% { box-shadow: 0 0 0 0   rgba(230, 57, 70, 0); }
}
.mps-scarcity__text {
    color: inherit;
    font: inherit;
}
.mps-scarcity__qty {
    color: #0A1F3D;
    font-weight: 800;
    font-family: "Barlow Condensed", "Barlow", sans-serif;
    font-size: 15px;
    padding: 0 2px;
    letter-spacing: 0.02em;
}
@media (max-width: 600px) {
    .mps-scarcity {
        font-size: 12px;
        padding: 4px 10px;
    }
    .mps-scarcity__qty { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .mps-scarcity__dot { animation: none; box-shadow: none; }
}

/* === Product gallery — Shopify-style square frame + arrows ============== */
.mps-gallery {
    position: relative;
}
.mps-gallery .flex-viewport {
    background: #f7f7f7 !important;
    border-radius: 10px !important;
    aspect-ratio: 1 / 1;
    height: auto !important;
    overflow: hidden;
    position: relative;
}
.mps-gallery .woocommerce-product-gallery__wrapper {
    height: 100%;
}
.mps-gallery .woocommerce-product-gallery__image {
    height: 100% !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: #f7f7f7;
}
.mps-gallery .woocommerce-product-gallery__image > a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 2%;
    box-sizing: border-box;
}
.mps-gallery .woocommerce-product-gallery__image img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    /* Many product photos ship with baked-in white backgrounds.
       multiply makes white pixels show the gray viewport through them
       (white * gray = gray) while leaving the product intact. */
    mix-blend-mode: multiply;
}
/* Hide the WC magnifier emoji button — arrows replace it visually. */
.mps-gallery .woocommerce-product-gallery__trigger {
    display: none !important;
}
/* Safety net: hide any leftover hover-zoom overlay (theme support is removed
   in functions.php, but cached pages may still ship the .zoomImg layer). */
.mps-gallery .zoomImg {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
/* Thumbnail rail: single horizontal row, scroll-snap when overflowing. */
.mps-gallery .flex-control-thumbs {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    margin: 20px 0 0 !important;
    padding: 0;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
}
.mps-gallery .flex-control-thumbs::-webkit-scrollbar { height: 4px; }
.mps-gallery .flex-control-thumbs::-webkit-scrollbar-thumb { background: rgba(10,31,61,0.2); border-radius: 4px; }
.mps-gallery .flex-control-thumbs li {
    flex: 0 0 80px !important;
    width: 80px !important;
    margin: 0 !important;
    list-style: none;
    scroll-snap-align: start;
}
.mps-gallery .flex-control-thumbs li img {
    border-radius: 8px;
    background: #f7f7f7;
    opacity: 0.75;
    transition: opacity 0.15s ease, box-shadow 0.15s ease;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    padding: 2%;
    box-sizing: border-box;
    width: 100% !important;
    height: 100% !important;
    mix-blend-mode: multiply;
}
.mps-gallery .flex-control-thumbs li img:hover,
.mps-gallery .flex-control-thumbs li img.flex-active {
    opacity: 1;
    box-shadow: 0 0 0 2px #0A1F3D;
}

/* Arrows group: bottom-right, inside the main image area. */
.mps-gallery__nav {
    position: absolute;
    right: 10px;
    bottom: 10px;
    display: flex;
    gap: 6px;
    z-index: 5;
    pointer-events: none;
}
.mps-gallery__arrow {
    pointer-events: auto;
    width: 36px !important;
    height: 36px !important;
    min-width: 0 !important;
    border-radius: 999px !important;
    background: #fff !important;
    border: 1px solid rgba(10, 31, 61, 0.12) !important;
    box-shadow: 0 2px 8px rgba(10, 31, 61, 0.12) !important;
    color: #0A1F3D !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    font-size: 0 !important;
    transition: background 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease;
}
.mps-gallery__arrow:hover {
    background: #0A1F3D !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(10, 31, 61, 0.25) !important;
}
.mps-gallery__arrow:active {
    transform: scale(0.95);
}
.mps-gallery__arrow svg {
    width: 18px;
    height: 18px;
    display: block;
}
.mps-gallery__arrow:focus-visible {
    outline: 2px solid #CBFF00;
    outline-offset: 2px;
}
/* Position arrows differently when gallery is positioned inside Elementor cell:
   ensure they anchor to the .flex-viewport's parent (the .images wrapper). */
.mps-gallery .images { position: relative; }

/* Mobile: keep square frame, slightly smaller arrows. */
@media (max-width: 600px) {
    .mps-gallery__arrow {
        width: 32px !important;
        height: 32px !important;
    }
    .mps-gallery__arrow svg {
        width: 16px;
        height: 16px;
    }
    .mps-gallery .flex-control-thumbs li {
        flex: 0 0 72px !important;
        width: 72px !important;
    }
}

/* Mobile: tighten the top padding above the product (gallery starts ~42px below header — too much). */
@media (max-width: 767px) {
    .elementor-location-single > section.elementor-top-section:first-of-type {
        padding-top: 10px !important;
    }
}

/* ============================================================
   PDP description headings — normalize size across all products
   ============================================================
   Scraped product descriptions arrive with inconsistent heading
   tags (h2/h3/h4). Without this, Elementor kit globals stretch
   any h2 in the body copy to 38px, breaking the visual hierarchy
   with the product title above. Scope tightly to the PDP
   description widget + short-description so we don't disturb
   widget/section headings elsewhere.
*/
.elementor-widget-woocommerce-product-content h2,
.elementor-widget-woocommerce-product-content .h2--1,
.woocommerce-product-details__short-description h2 {
    font-size: 22px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    letter-spacing: -0.005em !important;
    text-transform: none !important;
    margin: 1.4em 0 0.5em !important;
    color: var(--e-global-color-primary, #032139) !important;
}
.elementor-widget-woocommerce-product-content h3,
.woocommerce-product-details__short-description h3 {
    font-size: 18px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    text-transform: none !important;
    margin: 1.2em 0 0.4em !important;
    color: var(--e-global-color-primary, #032139) !important;
}
.elementor-widget-woocommerce-product-content h4,
.woocommerce-product-details__short-description h4 {
    font-size: 16px !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
    text-transform: none !important;
    margin: 1em 0 0.35em !important;
    color: var(--e-global-color-primary, #032139) !important;
}
/* First heading at the very top of the description shouldn't push down. */
.elementor-widget-woocommerce-product-content > .value > :is(h2, h3, h4):first-child,
.elementor-widget-woocommerce-product-content > .value > div:first-child > :is(h2, h3, h4):first-child {
    margin-top: 0 !important;
}
@media (max-width: 767px) {
    .elementor-widget-woocommerce-product-content h2,
    .elementor-widget-woocommerce-product-content .h2--1 {
        font-size: 20px !important;
    }
    .elementor-widget-woocommerce-product-content h3 { font-size: 17px !important; }
    .elementor-widget-woocommerce-product-content h4 { font-size: 15px !important; }
}
