:root {
    --mesa-navy: #0F2A43;
    --mesa-blue: #2563EB;
    --mesa-blue-dark: #1D4ED8;
    --mesa-white: #FFFFFF;
    --mesa-grey: #F5F7FA;
    --mesa-border: #E2E8F0;
    --mesa-text: #111827;
    --mesa-muted: #64748B;
    --mesa-green: #15803D;
    --mesa-radius: 14px;
    --mesa-shadow: 0 8px 30px rgba(15, 42, 67, .08);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--mesa-white);
    color: var(--mesa-text);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
    height: auto;
}

.mesa-container {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.skip-link {
    position: absolute;
    left: -9999px;
}

.skip-link:focus {
    left: 16px;
    top: 16px;
    z-index: 9999;
    background: #fff;
    color: var(--mesa-navy);
    padding: 10px 14px;
    border-radius: 8px;
    box-shadow: var(--mesa-shadow);
}

/* HEADER */

.mesa-header {
    position: relative;
    z-index: 100;
    background: #fff;
    border-bottom: 1px solid var(--mesa-border);
}

.mesa-topbar {
    background: var(--mesa-navy);
    color: #D9E5EF;
    font-size: 12px;
}

.mesa-topbar .mesa-container {
    min-height: 34px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.mesa-topbar a {
    color: #fff;
    font-weight: 700;
}

.mesa-header-main {
    background: #fff;
}

.mesa-header-row {
    min-height: 86px;
    display: grid;
    grid-template-columns: 220px minmax(280px, 1fr) auto;
    align-items: center;
    gap: 28px;
}

.mesa-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--mesa-navy);
}

.mesa-logo-mark {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--mesa-blue);
    color: #fff;
    font-weight: 900;
    font-size: 24px;
}

.mesa-logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.mesa-logo-text strong {
    font-size: 23px;
    letter-spacing: .04em;
}

.mesa-logo-text small {
    margin-top: 5px;
    color: var(--mesa-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
}

.mesa-search {
    display: flex;
    border: 1px solid #CBD5E1;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.mesa-search:focus-within {
    border-color: var(--mesa-blue);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .10);
}

.mesa-search input[type="search"] {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    padding: 13px 14px;
    font: inherit;
}

.mesa-search button {
    border: 0;
    background: var(--mesa-blue);
    color: #fff;
    padding: 0 18px;
    font-weight: 800;
    cursor: pointer;
}

.mesa-search button:hover {
    background: var(--mesa-blue-dark);
}

.mesa-header-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.mesa-header-actions a:hover {
    color: var(--mesa-blue);
}

.mesa-cart-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.mesa-cart-count {
    min-width: 23px;
    height: 23px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--mesa-blue);
    color: #fff;
    display: inline-grid;
    place-items: center;
    font-size: 11px;
}

.mesa-mobile-menu-button {
    display: none;
    border: 1px solid var(--mesa-border);
    background: #fff;
    color: var(--mesa-navy);
    border-radius: 9px;
    padding: 9px 11px;
    font-weight: 800;
}

.mesa-main-nav {
    border-top: 1px solid #EEF2F6;
    background: #fff;
}

.mesa-main-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 30px;
}

.mesa-main-nav li {
    margin: 0;
}

.mesa-main-nav a {
    display: block;
    padding: 15px 0;
    color: #334155;
    font-size: 13px;
    font-weight: 750;
    border-bottom: 2px solid transparent;
}

.mesa-main-nav a:hover,
.mesa-main-nav .current-menu-item > a {
    color: var(--mesa-blue);
    border-bottom-color: var(--mesa-blue);
}

/* CONTENU */

#main-content {
    min-height: 55vh;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    border-radius: 10px !important;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    background: var(--mesa-blue) !important;
    color: #fff !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: var(--mesa-blue-dark) !important;
}

/* FOOTER */

.mesa-footer {
    margin-top: 70px;
    background: #071A2C;
    color: #C7D5E3;
}

.mesa-footer-grid {
    display: grid;
    grid-template-columns: 1.5fr repeat(4, 1fr);
    gap: 36px;
    padding-top: 54px;
    padding-bottom: 44px;
}

.mesa-footer h2 {
    margin: 0 0 14px;
    color: #fff;
    font-size: 13px;
}

.mesa-footer p {
nano wordpress/wp-content/themes/mesa-bureautique/assets/css/main.css    margin: 12px 0 0;
    color: #AFC0D1;
    font-size: 12px;
    line-height: 1.65;
}

.mesa-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mesa-footer li {
    margin: 7px 0;
}

.mesa-footer li a,
.mesa-footer-consulting {
    color: #B8C8D8;
    font-size: 12px;
}

.mesa-footer li a:hover,
.mesa-footer-consulting:hover {
    color: #fff;
}

.mesa-logo-footer .mesa-logo-text strong {
    color: #fff;
}

.mesa-logo-footer .mesa-logo-text small {
    color: #9FB3C7;
}

.mesa-footer-consulting {
    display: inline-block;
    margin-top: 12px;
    padding: 9px 11px;
    border: 1px solid #35516C;
    border-radius: 9px;
    font-weight: 800;
}

.mesa-footer-bottom {
    border-top: 1px solid #1D354B;
    color: #8299AE;
    font-size: 11px;
}

.mesa-footer-bottom .mesa-container {
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

/* MOBILE */

@media (max-width: 900px) {

    .mesa-topbar .mesa-container {
        justify-content: center;
        text-align: center;
    }

    .mesa-topbar span {
        display: none;
    }

    .mesa-header-row {
        min-height: 72px;
        grid-template-columns: 1fr auto;
        gap: 12px;
    }

    .mesa-search {
        grid-column: 1 / -1;
        grid-row: 2;
        margin-bottom: 12px;
    }

    .mesa-header-actions > a:first-child {
        display: none;
    }

    .mesa-mobile-menu-button {
        display: inline-block;
    }

    .mesa-main-nav {
        display: none;
    }

    .mesa-main-nav.is-open {
        display: block;
    }

    .mesa-main-nav ul {
        display: block;
        padding: 8px 0 14px;
    }

    .mesa-main-nav a {
        padding: 11px 0;
        border-bottom: 1px solid #EEF2F6;
    }

    .mesa-footer-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {

    .mesa-container {
        width: min(100% - 24px, 1180px);
    }

    .mesa-logo-mark {
        width: 39px;
        height: 39px;
        font-size: 21px;
    }

    .mesa-logo-text strong {
        font-size: 19px;
    }

    .mesa-header-actions {
        gap: 8px;
    }

    .mesa-cart-link {
        font-size: 0;
    }

    .mesa-cart-count {
        font-size: 11px;
    }

    .mesa-search button {
        padding: 0 13px;
        font-size: 11px;
    }

    .mesa-footer-grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .mesa-footer-bottom .mesa-container {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        padding: 14px 0;
    }
}
/* =====================
   FINITION HEADER MOBILE
===================== */

@media (max-width: 900px) {

    /* Bandeau MESA Consulting */
    .mesa-topbar {
        min-height: 32px;
    }

    .mesa-topbar .mesa-container {
        min-height: 32px;
        justify-content: center;
        padding-left: 12px;
        padding-right: 12px;
    }

    .mesa-topbar a {
        font-size: 11px;
        font-weight: 700;
        line-height: 1;
    }

    /* Zone principale */
    .mesa-header-main {
        padding: 0;
    }

    .mesa-header-row {
        min-height: auto;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
        padding-top: 8px;
        padding-bottom: 8px;
        align-items: center;
    }

    /* Logo */
    .mesa-logo {
        min-width: 0;
        width: 100%;
    }

    .mesa-logo .custom-logo-link {
        display: block;
        width: 100%;
        max-width: 220px;
    }

    .mesa-logo .custom-logo {
        display: block;
        width: 100%;
        height: auto;
        max-height: 58px;
        object-fit: contain;
    }

    /* Panier + Menu */
    .mesa-header-actions {
        gap: 8px;
        align-items: center;
        white-space: nowrap;
    }

    .mesa-cart-link {
        gap: 0;
        font-size: 0;
    }

    .mesa-cart-count {
        min-width: 24px;
        height: 24px;
        padding: 0 6px;
        font-size: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .mesa-mobile-menu-button {
        min-height: 42px;
        padding: 0 13px;
        border-radius: 11px;
        font-size: 13px;
        font-weight: 700;
        white-space: nowrap;
    }

    /* Recherche sur sa propre ligne */
    .mesa-search {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        margin: 2px 0 0;
    }

    .mesa-search input[type="search"] {
        min-width: 0;
        height: 46px;
        padding: 0 14px;
        font-size: 14px;
    }

    .mesa-search button {
        min-height: 46px;
        padding: 0 15px;
        font-size: 12px;
        font-weight: 700;
        white-space: nowrap;
    }
}
/* =====================
   FINITIONS NAVIGATION MOBILE
===================== */

@media (max-width: 900px) {

    /* Panier identifiable */
    .mesa-cart-link {
        position: relative;
        width: 42px;
        height: 42px;
        padding: 0;
        border: 1px solid var(--mesa-border);
        border-radius: 11px;
        background: #fff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: var(--mesa-navy);
        font-size: 0;
    }

    /* Icône panier */
    .mesa-cart-link::before {
        content: "";
        width: 20px;
        height: 20px;
        display: block;
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F2A43' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='19' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.4a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.6L21 8H6'/%3E%3C/svg%3E");
    }

    /* Badge compteur */
    .mesa-cart-count {
        position: absolute;
        top: -6px;
        right: -6px;
        min-width: 19px;
        height: 19px;
        padding: 0 5px;
        border: 2px solid #fff;
        border-radius: 999px;
        background: var(--mesa-blue);
        color: #fff;
        font-size: 10px;
        font-weight: 800;
        line-height: 15px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        z-index: 2;
    }

    /* Bouton Menu + hamburger */
    .mesa-mobile-menu-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
    }

    .mesa-mobile-menu-button::before {
        content: "";
        width: 16px;
        height: 2px;
        border-radius: 2px;
        background: var(--mesa-navy);
        box-shadow:
            0 -5px 0 var(--mesa-navy),
            0 5px 0 var(--mesa-navy);
    }

    /* Effet tactile */
    .mesa-cart-link,
    .mesa-mobile-menu-button,
    .mesa-search button {
        transition:
            transform 0.15s ease,
            background-color 0.15s ease,
            border-color 0.15s ease,
            box-shadow 0.15s ease;
    }

    .mesa-cart-link:active,
    .mesa-mobile-menu-button:active,
    .mesa-search button:active {
        transform: scale(0.97);
    }

    /* Accessibilité clavier */
    .mesa-cart-link:focus-visible,
    .mesa-mobile-menu-button:focus-visible,
    .mesa-search button:focus-visible,
    .mesa-search input[type="search"]:focus-visible {
        outline: 3px solid rgba(37, 99, 235, 0.22);
        outline-offset: 2px;
    }

    /* Séparation légère sous le header */
    .mesa-header {
        box-shadow: 0 2px 10px rgba(15, 42, 67, 0.06);
    }

    }
/* État actif du menu mobile */
@media (max-width: 900px) {

    .mesa-main-nav .current-menu-item > a {
        position: relative;
        padding-left: 14px;
        color: var(--mesa-blue);
        font-weight: 800;
        border-bottom-color: #EEF2F6;
    }

    .mesa-main-nav .current-menu-item > a::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 3px;
        height: 18px;
        border-radius: 999px;
        background: var(--mesa-blue);
        transform: translateY(-50%);
    }
}
/* =========================
   PAGE D'ACCUEIL
========================= */

.mesa-home-hero {
    padding: 72px 0;
    background: var(--mesa-grey);
}

.mesa-home-hero-grid {
    display: grid;
    grid-template-columns: 1.35fr .85fr;
    gap: 48px;
    align-items: center;
}

.mesa-eyebrow {
    display: inline-block;
    margin-bottom: 12px;
    color: var(--mesa-blue);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.mesa-home-hero h1 {
    max-width: 760px;
    margin: 0 0 20px;
    color: var(--mesa-navy);
    font-size: clamp(38px, 5vw, 64px);
    line-height: 1.05;
}

.mesa-home-lead {
    max-width: 700px;
    margin: 0 0 28px;
    color: var(--mesa-muted);
    font-size: 19px;
}

.mesa-home-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
}

.mesa-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border-radius: 10px;
    font-weight: 700;
}

.mesa-btn-primary {
    background: var(--mesa-blue);
    color: #fff;
}

.mesa-btn-secondary {
    background: #fff;
    color: var(--mesa-navy);
    border: 1px solid var(--mesa-border);
}.mesa-home-reassurance {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    color: var(--mesa-text);
    font-size: 14px;
    font-weight: 600;
}

.mesa-home-hero-card {
    background: #fff;
    border: 1px solid var(--mesa-border);
    border-radius: 18px;
    padding: 30px;
    box-shadow: var(--mesa-shadow);
}

.mesa-home-hero-card-label {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--mesa-green);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
}

.mesa-home-hero-card h2 {
    margin: 0 0 18px;
    color: var(--mesa-navy);
    font-size: 26px;
}

.mesa-home-hero-card ul {
    margin: 0 0 20px;
    padding-left: 20px;
    color: var(--mesa-muted);
}

.mesa-home-hero-card a {
    color: var(--mesa-blue);
    font-weight: 700;
}

.mesa-home-needs,
.mesa-home-categories,
.mesa-home-products,
.mesa-home-why,
.mesa-home-consulting {
    padding: 72px 0;
}

.mesa-section-heading {
    margin-bottom: 32px;
}

.mesa-section-heading h2 {
    margin: 0;
    color: var(--mesa-navy);
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.15;
}
.mesa-home-needs-grid,
.mesa-category-grid,
.mesa-why-grid {
    display: grid;
    gap: 20px;
}

.mesa-home-needs-grid {
    grid-template-columns: repeat(3, 1fr);
}

.mesa-category-grid {
    grid-template-columns: repeat(3, 1fr);
}

.mesa-why-grid {
    grid-template-columns: repeat(4, 1fr);
}

.mesa-need-card,
.mesa-category-card,
.mesa-why-card {
    display: block;
    background: #fff;
    border: 1px solid var(--mesa-border);
    border-radius: 16px;
    padding: 24px;
    box-shadow: var(--mesa-shadow);
}

.mesa-need-card h3,
.mesa-category-card h3,
.mesa-why-card h3 {
    margin: 10px 0 8px;
    color: var(--mesa-navy);
}

.mesa-need-card p,
.mesa-category-card p,
.mesa-why-card p {
    margin: 0 0 14px;
    color: var(--mesa-muted);
}

.mesa-need-icon {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--mesa-grey);
    color: var(--mesa-blue);
    font-weight: 800;
}

.mesa-category-card span {
    color: var(--mesa-blue);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
}

.mesa-home-categories,
.mesa-home-why {
    background: var(--mesa-grey);
}
.mesa-section-heading-row {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
}

.mesa-section-heading-row > a {
    color: var(--mesa-blue);
    font-weight: 700;
}

.mesa-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.mesa-product-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--mesa-border);
    border-radius: 16px;
    box-shadow: var(--mesa-shadow);
}

.mesa-product-image {
    display: block;
    aspect-ratio: 4 / 3;
    background: var(--mesa-grey);
    overflow: hidden;
}

.mesa-product-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.mesa-product-card-body {
    padding: 20px;
}

.mesa-product-state {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--mesa-blue);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.mesa-product-card h3 {
    margin: 0 0 10px;
    color: var(--mesa-navy);
    font-size: 20px;
    line-height: 1.25;
}
.mesa-product-stock {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    color: var(--mesa-green);
    font-size: 14px;
    font-weight: 700;
}

.mesa-stock-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--mesa-green);
}

.mesa-product-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.mesa-product-price {
    color: var(--mesa-navy);
    font-size: 22px;
}

.mesa-product-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 16px;
    border-radius: 9px;
    background: var(--mesa-blue);
    color: #fff;
    font-weight: 700;
}

.mesa-why-card > strong {
    color: var(--mesa-blue);
    font-size: 13px;
}

.mesa-consulting-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 40px;
    border-radius: 20px;
    background: var(--mesa-navy);
    color: #fff;
}

.mesa-consulting-box h2 {
    margin: 0 0 12px;
    color: #fff;
    font-size: clamp(28px, 4vw, 40px);
}

.mesa-consulting-box p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.78);
}

.mesa-btn-light {
    flex-shrink: 0;
    background: #fff;
    color: var(--mesa-navy);
}
@media (max-width: 980px) {

    .mesa-home-hero-grid {
        grid-template-columns: 1fr;
    }

    .mesa-home-needs-grid,
    .mesa-category-grid {
        grid-template-columns: 1fr 1fr;
    }

    .mesa-why-grid {
        grid-template-columns: 1fr 1fr;
    }

    .mesa-product-grid {
        grid-template-columns: 1fr 1fr;
    }

    .mesa-consulting-box {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 640px) {

    .mesa-home-hero,
    .mesa-home-needs,
    .mesa-home-categories,
    .mesa-home-products,
    .mesa-home-why,
    .mesa-home-consulting {
        padding: 48px 0;
    }

    .mesa-home-needs-grid,
    .mesa-category-grid,
    .mesa-why-grid,
    .mesa-product-grid {
        grid-template-columns: 1fr;
    }

    .mesa-section-heading-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .mesa-home-actions {
        flex-direction: column;
    }

    .mesa-btn {
        width: 100%;
    }

    .mesa-consulting-box {
        padding: 28px 22px;
    }
}
/* Logo officiel MESA Bureautique */
.mesa-custom-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 10px 14px;
    background: var(--mesa-navy);
    border-radius: 10px;
}

.mesa-custom-logo .custom-logo-link {
    display: flex;
    align-items: center;
}

.mesa-custom-logo .custom-logo {
    display: block;
    width: auto;
    max-width: 190px;
    max-height: 52px;
}
/* =========================
   BOUTIQUE WOOCOMMERCE
========================= */

.woocommerce-shop main {
    background: var(--mesa-grey);
}

.woocommerce-shop .site-main,
.woocommerce-shop main {
    padding-bottom: 70px;
}

.woocommerce .woocommerce-breadcrumb {
    width: min(1180px, calc(100% - 32px));
    margin: 28px auto 12px;
    color: var(--mesa-muted);
    font-size: 14px;
}

.woocommerce .woocommerce-breadcrumb a {
    color: var(--mesa-blue);
}

.woocommerce-shop .woocommerce-products-header,
.woocommerce-shop .page-title {
    width: min(1180px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
}

.woocommerce-shop .page-title {
    margin-top: 20px;
    margin-bottom: 28px;
    color: var(--mesa-navy);
    font-size: clamp(34px, 5vw, 48px);
    line-height: 1.1;
}

.woocommerce-shop .woocommerce-result-count,
.woocommerce-shop .woocommerce-ordering {
    margin-bottom: 28px;
}

.woocommerce-shop .woocommerce-result-count {
    color: var(--mesa-muted);
    font-size: 14px;
}

.woocommerce-shop .woocommerce-ordering select {
    min-height: 44px;
    padding: 0 42px 0 14px;
    background: #fff;
    border: 1px solid var(--mesa-border);
    border-radius: 10px;
    color: var(--mesa-text);
    font-family: inherit;
}
.woocommerce ul.products {
    width: min(1180px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none;
}

.woocommerce ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    padding: 0 0 18px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--mesa-border);
    border-radius: 16px;
    box-shadow: var(--mesa-shadow);
}

.woocommerce ul.products li.product a img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    margin: 0;
    background: var(--mesa-grey);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: 74px;
    padding: 18px 18px 8px;
    color: var(--mesa-navy);
    font-size: 18px;
    line-height: 1.3;
}

.woocommerce ul.products li.product .price {
    display: block;
    padding: 0 18px;
    color: var(--mesa-navy);
    font-size: 20px;
    font-weight: 700;
}
.woocommerce ul.products li.product .button {
    margin: 14px 18px 0;
    min-height: 42px;
    padding: 0 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--mesa-blue);
    color: #fff;
    border-radius: 9px;
    font-weight: 700;
}

.woocommerce ul.products li.product .button:hover {
    background: var(--mesa-blue-dark);
    color: #fff;
}

.woocommerce-shop .woocommerce-result-count,
.woocommerce-shop .woocommerce-ordering {
    width: auto;
}

.woocommerce-shop .woocommerce-result-count {
    margin-left: max(16px, calc((100% - 1180px) / 2));
}

.woocommerce-shop .woocommerce-ordering {
    margin-right: max(16px, calc((100% - 1180px) / 2));
}

@media (max-width: 980px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
}
    .woocommerce ul.products li.product .button {
    white-space: nowrap;
    font-size: 13px;
    padding-left: 12px;
    padding-right: 12px;
}

    .woocommerce-shop .woocommerce-result-count,
    .woocommerce-shop .woocommerce-ordering {
        float: none;
        margin-left: 16px;
        margin-right: 16px;
    }

    .woocommerce-shop .woocommerce-ordering {
        margin-top: 10px;
    }
}
/* Alignement des boutons des cartes produits */
.woocommerce ul.products li.product {
    display: flex;
    flex-direction: column;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.woocommerce ul.products li.product .price {
    margin-top: auto;
}

.woocommerce ul.products li.product .button {
    align-self: flex-start;
}

/* Finition catalogue mobile */
@media (max-width: 640px) {

    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: 15px;
        line-height: 1.3;
        padding: 14px 14px 6px;
        min-height: calc(1.3em * 3);
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .woocommerce ul.products li.product .price {
        margin-top: 10px !important;
        padding: 10px 14px 0;
        width: 100%;
        box-sizing: border-box;
        border-top: 1px solid #edf1f5;
        font-size: 18px;
        line-height: 1.2;
        font-weight: 800;
    }

    .woocommerce ul.products li.product .button {
        width: calc(100% - 28px);
        margin: 12px 14px 14px;
        padding: 11px 8px;
        box-sizing: border-box;
        text-align: center;
        justify-content: center;
        white-space: nowrap;
        font-size: 13px;
    }
}
/* Finition catalogue mobile - version finale */
@media (max-width: 640px) {

    .woocommerce ul.products li.product {
        display: flex;
        flex-direction: column;
        height: 100%;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__link,
    .woocommerce ul.products li.product .woocommerce-LoopProduct-link {
        display: flex;
        flex-direction: column;
        flex: 1;
    }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 14px !important;
    line-height: 1.35 !important;
    padding: 12px 12px 0 !important;
    margin: 0 !important;

    height: calc(3 * 1.35em) !important;
    min-height: calc(3 * 1.35em) !important;
    max-height: calc(3 * 1.35em) !important;
    box-sizing: content-box !important;

    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden !important;
}

    .woocommerce ul.products li.product .price {
        margin: 10px 12px 0 !important;
        padding: 9px 0 0 !important;
        width: auto !important;

        border-top: 1px solid #edf1f5;

        font-size: 17px !important;
        line-height: 1.2;
        font-weight: 800;
    }

    .woocommerce ul.products li.product .button {
        width: calc(100% - 24px) !important;
        margin: 12px !important;
        margin-top: auto !important;

        padding: 11px 6px !important;

        display: inline-flex !important;
        align-items: center;
        justify-content: center;

        white-space: nowrap;
        text-align: center;
        font-size: 13px !important;
    }
}
/* =========================
   FICHE PRODUIT
========================= */

.single-product div.product .summary {
    padding: 12px 0 30px;
}

.single-product div.product .product_title {
    margin: 0 0 18px;
    color: var(--mesa-navy);
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.15;
}

.single-product div.product p.price,
.single-product div.product span.price {
    margin: 0 0 22px;
    color: var(--mesa-navy);
    font-size: 28px;
    font-weight: 800;
}

.single-product .woocommerce-product-details__short-description {
    margin-bottom: 20px;
    color: var(--mesa-muted);
    font-size: 16px;
    line-height: 1.65;
}

.single-product div.product .stock {
    margin: 0 0 16px;
    color: var(--mesa-green);
    font-weight: 700;
}

.single-product div.product form.cart {
    margin-bottom: 26px;
}

.single-product div.product form.cart .button {
    min-height: 48px;
    padding: 0 22px;
    background: var(--mesa-blue);
    color: #fff;
    border-radius: 10px;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
}

.single-product div.product form.cart .button:hover {
    background: var(--mesa-blue-dark);
    color: #fff;
}

.single-product div.product .product_meta {
    padding-top: 18px;
    border-top: 1px solid var(--mesa-border);
    color: var(--mesa-muted);
    font-size: 14px;
}

.single-product div.product .product_meta a {
    color: var(--mesa-blue);
    font-weight: 600;
}
.single-product div.product {
    width: min(1180px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
}

.single-product .woocommerce-product-gallery {
    margin-bottom: 30px;
}

.single-product .woocommerce-product-gallery__wrapper {
    overflow: hidden;
    border: 1px solid var(--mesa-border);
    border-radius: 16px;
    background: #fff;
}

.single-product .woocommerce-product-gallery__image img {
    width: 100%;
    object-fit: contain;
}

.single-product .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-top: 12px !important;
}

.single-product .flex-control-thumbs li {
    width: auto !important;
    margin: 0 !important;
}

.single-product .flex-control-thumbs img {
    border: 1px solid var(--mesa-border);
    border-radius: 10px;
    background: #fff;
}

.single-product .woocommerce-product-gallery__trigger {
    top: 16px !important;
    right: 16px !important;
}
.single-product .woocommerce-tabs {
    width: min(1180px, calc(100% - 32px));
    margin: 40px auto 0;
}

.single-product .woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px !important;
    padding: 0 !important;
    border: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after {
    display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 1px solid var(--mesa-border) !important;
    border-radius: 10px !important;
}

.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
    display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li a {
    padding: 11px 16px !important;
    color: var(--mesa-muted) !important;
    font-weight: 700 !important;
}

.single-product .woocommerce-tabs ul.tabs li.active {
    background: var(--mesa-navy) !important;
    border-color: var(--mesa-navy) !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
    color: #fff !important;
}

.single-product .woocommerce-Tabs-panel {
    padding: 28px;
    background: #fff;
    border: 1px solid var(--mesa-border);
    border-radius: 16px;
}

.single-product .woocommerce-Tabs-panel h2 {
    margin-top: 0;
    color: var(--mesa-navy);
}
/* Produits similaires */
.single-product .related.products {
    width: min(1180px, calc(100% - 32px));
    margin: 42px auto 0;
}

.single-product .related.products > h2 {
    margin: 0 0 26px;
    color: var(--mesa-navy);
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.2;
}

.single-product .related.products ul.products {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

.single-product .related.products ul.products li.product {
    display: flex;
    flex-direction: column;
}

.single-product .related.products ul.products li.product .woocommerce-LoopProduct-link {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.single-product .related.products ul.products li.product .price {
    margin-top: auto;
}

.single-product .related.products ul.products li.product .button {
    align-self: flex-start;
}
/* Cartes - Produits similaires */
.single-product .related.products ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.single-product .related.products ul.products::before,
.single-product .related.products ul.products::after {
    display: none;
}

.single-product .related.products ul.products li.product {
    float: none;
    width: 100%;
    margin: 0;
    padding: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 5px 18px rgba(15, 42, 67, 0.07);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.single-product .related.products ul.products li.product:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(15, 42, 67, 0.12);
}

.single-product .related.products ul.products li.product img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    margin: 0 0 14px;
    padding: 8px;
    background: #f5f7fa;
    border-radius: 12px;
}

.single-product .related.products ul.products li.product .woocommerce-loop-product__title {
    padding: 0;
    margin: 0;
    color: var(--mesa-navy);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
}

.single-product .related.products ul.products li.product .price {
    display: block;
    margin: 12px 0 14px;
    color: var(--mesa-navy);
    font-size: 18px;
    font-weight: 800;
}

.single-product .related.products ul.products li.product .button {
    margin: 0;
    padding: 10px 15px;
    background: var(--mesa-blue);
    color: #fff;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
}

.single-product .related.products ul.products li.product .button:hover {
    filter: brightness(0.92);
}
/* Responsive - Produits similaires */
@media (max-width: 1024px) {
    .single-product .related.products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .single-product .related.products {
        width: 100%;
        margin-top: 32px;
    }

    .single-product .related.products > h2 {
        font-size: 26px;
        margin-bottom: 20px;
    }

    .single-product .related.products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .single-product .related.products ul.products li.product {
        padding: 14px;
    }
.single-product .related.products ul.products li.product .button {
    white-space: nowrap;
    font-size: 13px;
    padding: 10px 12px;
}

}

/* ============================
   FINITION FICHE PRODUIT MOBILE
============================ */

@media (max-width: 640px) {

    /* Fil d'Ariane plus discret */
    .single-product .woocommerce-breadcrumb {
        margin-bottom: 14px;
        font-size: 12px;
        line-height: 1.5;
    }

    /* Stock plus lisible */
    .single-product div.product .stock {
        display: inline-flex;
        align-items: center;
        width: fit-content;
        margin: 14px 0 12px;
        padding: 6px 10px;
        border-radius: 999px;
        background: #f0fdf4;
        color: var(--mesa-green);
        font-size: 13px;
        font-weight: 800;
        line-height: 1;
    }

    /* Zone quantité + Ajouter au panier */
    .single-product div.product form.cart {
        display: flex;
        align-items: stretch;
        gap: 10px;
        width: 100%;
        margin-bottom: 22px;
    }

    .single-product div.product form.cart .quantity {
        float: none;
        margin: 0;
        flex: 0 0 58px;
    }

    .single-product div.product form.cart .quantity input.qty {
        width: 58px;
        height: 48px;
        margin: 0;
        padding: 0 6px;
        border: 1px solid var(--mesa-border);
        border-radius: 10px;
        background: #fff;
        color: var(--mesa-navy);
        font-size: 15px;
        font-weight: 700;
        text-align: center;
        box-sizing: border-box;
    }

    .single-product div.product form.cart .button {
        float: none;
        flex: 1;
        min-width: 0;
        min-height: 48px;
        margin: 0;
        padding: 0 14px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
        font-size: 14px;
        border-radius: 10px;
    }

    /* Métadonnées */
    .single-product div.product .product_meta {
        margin-top: 0;
        padding-top: 14px;
        font-size: 12px;
        line-height: 1.6;
    }

    /* UGS inutile pour le client sur mobile */
    .single-product div.product .product_meta .sku_wrapper {
        display: none;
    }

    .single-product div.product .product_meta .posted_in {
        display: block;
    }

    /* Onglets sur une ligne */
    .single-product .woocommerce-tabs {
        width: 100%;
        margin-top: 30px;
    }

    .single-product .woocommerce-tabs ul.tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px;
        width: 100%;
        margin: 0 0 16px !important;
        padding: 0 0 4px !important;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .single-product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
        display: none;
    }

    .single-product .woocommerce-tabs ul.tabs li {
        flex: 0 0 auto;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
    }

    .single-product .woocommerce-tabs ul.tabs li a {
        display: flex !important;
        align-items: center;
        min-height: 42px;
        padding: 0 14px !important;
        border: 1px solid var(--mesa-border);
        border-radius: 10px;
        background: #fff;
        color: var(--mesa-muted);
        font-size: 13px;
        font-weight: 700;
        white-space: nowrap;
    }

    .single-product .woocommerce-tabs ul.tabs li.active a {
        background: var(--mesa-navy);
        border-color: var(--mesa-navy);
        color: #fff;
    }

    /* Contenu des onglets */
    .single-product .woocommerce-tabs-panel {
        padding: 18px !important;
        border: 1px solid var(--mesa-border);
        border-radius: 14px;
        background: #fff;
        font-size: 14px;
        line-height: 1.65;
    }

    .single-product .woocommerce-tabs-panel h2 {
        margin: 0 0 12px;
        font-size: 20px;
        line-height: 1.2;
    }

    .single-product .woocommerce-tabs-panel p:last-child {
        margin-bottom: 0;
    }
}
/* Onglets fiche produit mobile - toujours visibles */
@media (max-width: 640px) {

    .single-product .woocommerce-tabs ul.tabs {
        display: grid !important;
        grid-template-columns: 1fr 1fr 0.8fr;
        gap: 6px;
        overflow: visible;
        padding-bottom: 4px !important;
    }

    .single-product .woocommerce-tabs ul.tabs li {
        min-width: 0;
        width: 100%;
    }

    .single-product .woocommerce-tabs ul.tabs li a {
        width: 100%;
        min-height: 42px;
        padding: 0 7px !important;
        justify-content: center;
        box-sizing: border-box;
        font-size: 12px;
        text-align: center;
    }

    /* Libellé raccourci uniquement sur mobile */
    .single-product .woocommerce-tabs ul.tabs li.additional_information_tab a {
        font-size: 0 !important;
    }

    .single-product .woocommerce-tabs ul.tabs li.additional_information_tab a::after {
        content: "Infos";
        font-size: 12px;
        font-weight: 700;
    }
}
/* ==========================================
   CONFIGURATEUR - TROUVER MON PC
========================================== */

.mesa-pc-finder {
    background: var(--mesa-grey);
}

.mesa-pc-finder-hero {
    padding: 48px 0 24px;
}

.mesa-pc-finder-hero h1 {
    margin: 10px 0 14px;
    color: var(--mesa-navy);
    font-size: clamp(32px, 5vw, 48px);
    line-height: 1.08;
}

.mesa-pc-finder-intro {
    max-width: 680px;
    margin: 0;
    color: var(--mesa-muted);
    font-size: 18px;
    line-height: 1.65;
}

.mesa-pc-finder-content {
    padding: 0 0 72px;
}

/* Carte principale */
.mesa-finder-card {
    width: min(100%, 900px);
    margin: 0 auto;
    padding: 34px;
    background: #fff;
    border: 1px solid var(--mesa-border);
    border-radius: 22px;
    box-shadow: 0 18px 45px rgba(15, 42, 67, 0.08);
}

/* Progression */
.mesa-finder-progress {
    margin-bottom: 34px;
}

.mesa-finder-progress-text {
    display: block;
    margin-bottom: 10px;
    color: var(--mesa-blue);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mesa-finder-progress-bar {
    width: 100%;
    height: 8px;
    overflow: hidden;
    background: #e8eef5;
    border-radius: 999px;
}

.mesa-finder-progress-bar span {
    display: block;
    height: 100%;
    background: var(--mesa-blue);
    border-radius: inherit;
    transition: width 0.35s ease;
}

/* Étapes */
.mesa-finder-step .mesa-finder-step-label {
    display: none;
}

.mesa-finder-step h2,
.mesa-finder-results h2 {
    margin: 0 0 10px;
    color: var(--mesa-navy);
    font-size: clamp(24px, 4vw, 32px);
    line-height: 1.2;
}

.mesa-finder-step-intro,
.mesa-finder-results > p {
    margin: 0 0 26px;
    color: var(--mesa-muted);
    font-size: 16px;
    line-height: 1.6;
}

/* Grille des choix */
.mesa-finder-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

/* Carte de choix */
.mesa-finder-option {
    position: relative;
    width: 100%;
    min-height: 104px;
    padding: 16px 48px 16px 16px;
    border: 1px solid #dbe3ec;
    border-radius: 16px;
    background: #fff;
    color: var(--mesa-navy);
    font: inherit;
    text-align: left;
    cursor: pointer;

    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    align-items: center;

    box-shadow: 0 3px 12px rgba(15, 42, 67, 0.035);

    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        background-color 0.18s ease,
        box-shadow 0.18s ease;
}

/* Cercle de sélection */
.mesa-finder-option::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16px;
    width: 22px;
    height: 22px;
    border: 2px solid #cbd5e1;
    border-radius: 50%;
    background: #fff;
    transform: translateY(-50%);
    box-sizing: border-box;
}

/* Icône */
.mesa-finder-option-icon {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 13px;
    background: #eff6ff;

    font-size: 22px;
    line-height: 1;
}

/* Texte */
.mesa-finder-option-content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.mesa-finder-option strong {
    display: block;
    color: var(--mesa-navy);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
}

.mesa-finder-option small {
    display: block;
    color: var(--mesa-muted);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 400;
}

/* Survol */
.mesa-finder-option:hover {
    transform: translateY(-2px);
    border-color: #9eb8da;
    box-shadow: 0 10px 24px rgba(15, 42, 67, 0.09);
}

/* Sélection validée */
.mesa-finder-option.is-selected {
    border-color: #22a559;
    background: #f2fbf5;
    box-shadow: 0 0 0 3px rgba(34, 165, 89, 0.08);
}

.mesa-finder-option.is-selected::after {
    content: "✓";
    display: flex;
    align-items: center;
    justify-content: center;

    border-color: #22a559;
    background: #22a559;
    color: #fff;

    font-size: 13px;
    font-weight: 900;
}

/* Accessibilité clavier */
.mesa-finder-option:focus-visible,
.mesa-finder-back:focus-visible,
.mesa-finder-restart:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.22);
    outline-offset: 3px;
}

/* Choix courts - budget / taille / performances */
.mesa-finder-options-compact .mesa-finder-option {
    min-height: 82px;
}

.mesa-finder-options-compact .mesa-finder-option:not(:has(small)) {
    display: flex;
    align-items: center;
    padding-left: 18px;
}


/* Continuer après la sélection multiple des usages */
.mesa-finder-continue {
    margin-top: 24px;
    min-height: 46px;
    padding: 0 20px;

    border: 1px solid #2563EB;
    border-radius: 11px;

    background: #2563EB;
    color: #FFFFFF;

    font-size: 14px;
    font-weight: 800;

    cursor: pointer;
}

.mesa-finder-continue:hover:not(:disabled) {
    background: #1D4ED8;
    border-color: #1D4ED8;
}

.mesa-finder-continue:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.mesa-finder-continue:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .22);
    outline-offset: 3px;
}

@media (max-width: 640px) {
    .mesa-finder-continue {
        width: 100%;
        margin-top: 18px;
    }
}


/* Retour */
.mesa-finder-back,
.mesa-finder-restart {
    margin-top: 24px;
    min-height: 44px;
    padding: 0 16px;

    border: 1px solid var(--mesa-border);
    border-radius: 11px;
    background: #fff;

    color: var(--mesa-navy);
    font-size: 14px;
    font-weight: 750;

    cursor: pointer;

    transition:
        background-color 0.18s ease,
        border-color 0.18s ease;
}

.mesa-finder-back:hover,
.mesa-finder-restart:hover {
    background: #f7f9fc;
    border-color: #b9c7d7;
}

/* Résultats */
.mesa-finder-results .mesa-finder-step-label {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--mesa-blue);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

#mesa-finder-products {
    margin-top: 26px;
}


/* ==========================================
   CONFIGURATEUR MOBILE
========================================== */

@media (max-width: 640px) {

    .mesa-pc-finder-hero {
        padding: 28px 0 18px;
    }

    .mesa-pc-finder-hero h1 {
        margin: 8px 0 10px;
        font-size: 30px;
        line-height: 1.12;
    }

    .mesa-pc-finder-intro {
        font-size: 15px;
        line-height: 1.6;
    }

    .mesa-pc-finder-content {
        padding-bottom: 42px;
    }

    .mesa-finder-card {
        padding: 20px 14px 24px;
        border-radius: 18px;
        box-shadow: 0 10px 28px rgba(15, 42, 67, 0.07);
    }

    .mesa-finder-progress {
        margin-bottom: 26px;
    }

    .mesa-finder-progress-text {
        margin-bottom: 8px;
        font-size: 11px;
    }

    .mesa-finder-progress-bar {
        height: 7px;
    }

    .mesa-finder-step h2,
    .mesa-finder-results h2 {
        margin-bottom: 8px;
        font-size: 23px;
        line-height: 1.22;
    }

    .mesa-finder-step-intro,
    .mesa-finder-results > p {
        margin-bottom: 20px;
        font-size: 14px;
    }

    /* Une seule colonne sur téléphone */
    .mesa-finder-options {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .mesa-finder-option {
        min-height: 88px;
        padding: 13px 42px 13px 13px;

        grid-template-columns: 42px minmax(0, 1fr);
        gap: 12px;

        border-radius: 14px;
    }

    .mesa-finder-option-icon {
        width: 42px;
        height: 42px;
        border-radius: 12px;
        font-size: 20px;
    }

    .mesa-finder-option strong {
        font-size: 14px;
    }

    .mesa-finder-option small {
        margin-top: 2px;
        font-size: 12px;
        line-height: 1.4;
    }

    .mesa-finder-option::after {
        right: 13px;
        width: 20px;
        height: 20px;
    }

    .mesa-finder-options-compact .mesa-finder-option {
        min-height: 70px;
    }

    .mesa-finder-back,
    .mesa-finder-restart {
        width: 100%;
        margin-top: 18px;
    }
}
/* ==========================================
   FINITION CONFIGURATEUR - ETAPES 2 A 4
========================================== */

/* Cartes sans icône : texte sur toute la largeur */
.mesa-finder-options-compact .mesa-finder-option {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    min-height: 82px;
    padding: 15px 48px 15px 18px;

    gap: 5px;
}

.mesa-finder-options-compact .mesa-finder-option strong {
    width: 100%;
    margin: 0;

    color: var(--mesa-navy);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
}

.mesa-finder-options-compact .mesa-finder-option small {
    width: 100%;
    margin: 0;

    color: var(--mesa-muted);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.45;
}

/* Budgets : cartes légèrement plus compactes */
.mesa-finder-step[data-step="2"]
.mesa-finder-option {
    min-height: 70px;
}

/* Retour plus discret */
.mesa-finder-back {
    position: relative;

    min-height: 46px;

    background: #f8fafc;
    border-color: #dbe3ec;

    color: var(--mesa-navy);
    font-weight: 750;
}

.mesa-finder-back:hover {
    background: #f1f5f9;
}


/* ==========================================
   ECRAN FINAL
========================================== */

.mesa-finder-results {
    position: relative;
}

.mesa-finder-results > .mesa-finder-step-label {
    margin-bottom: 12px;
}

.mesa-finder-results h2 {
    max-width: 620px;
}

/* Message de confirmation */
.mesa-finder-result-message {
    position: relative;

    margin-top: 24px;
    padding: 22px 22px 22px 66px;

    border: 1px solid #bfdbfe;
    border-radius: 16px;

    background: #f4f8ff;

    color: var(--mesa-navy);
}

.mesa-finder-result-message::before {
    content: "✓";

    position: absolute;
    left: 20px;
    top: 22px;

    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--mesa-blue);
    color: #fff;

    font-size: 16px;
    font-weight: 900;
}

.mesa-finder-result-message strong {
    display: block;

    margin-bottom: 7px;

    font-size: 16px;
    font-weight: 800;
}

.mesa-finder-result-message p {
    margin: 0;

    color: var(--mesa-muted);
    font-size: 14px;
    line-height: 1.6;
}

/* Recommencer */
.mesa-finder-results .mesa-finder-restart {
    min-height: 46px;

    background: #fff;
    border-color: #dbe3ec;

    font-weight: 750;
}


/* ==========================================
   MOBILE
========================================== */

@media (max-width: 640px) {

    /* Questions */
    .mesa-finder-step[data-step="2"] h2,
    .mesa-finder-step[data-step="3"] h2,
    .mesa-finder-step[data-step="4"] h2 {
        font-size: 22px;
        line-height: 1.22;
    }

    /* Cartes */
    .mesa-finder-options-compact .mesa-finder-option {
        min-height: 76px;

        padding:
            13px
            44px
            13px
            15px;

        border-radius: 14px;
    }

    .mesa-finder-options-compact
    .mesa-finder-option strong {
        font-size: 14px;
        line-height: 1.3;
    }

    .mesa-finder-options-compact
    .mesa-finder-option small {
        margin-top: 1px;

        font-size: 12px;
        line-height: 1.4;
    }

    /* Budget */
    .mesa-finder-step[data-step="2"]
    .mesa-finder-option {
        min-height: 66px;
    }

    /* Bouton retour */
    .mesa-finder-back {
        margin-top: 16px;
    }

    /* Résultat */
    .mesa-finder-result-message {
        margin-top: 20px;

        padding:
            18px
            16px
            18px
            56px;

        border-radius: 14px;
    }

    .mesa-finder-result-message::before {
        left: 16px;
        top: 18px;

        width: 28px;
        height: 28px;

        font-size: 14px;
    }

    .mesa-finder-result-message strong {
        font-size: 15px;
    }

    .mesa-finder-result-message p {
        font-size: 13px;
    }

    .mesa-finder-results
    .mesa-finder-restart {
        width: 100%;
    }
}
/* ==========================================
   CONFIGURATEUR - RESULTATS / RECOMMANDATIONS
========================================== */

/* Résumé des critères */
.mesa-finder-profile {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;

    margin: 26px 0 32px;
}

.mesa-finder-profile span {
    min-width: 0;
    padding: 14px;

    border: 1px solid #dbe3ec;
    border-radius: 13px;

    background: #f8fafc;

    color: var(--mesa-navy);
    font-size: 13px;
    line-height: 1.4;
}

.mesa-finder-profile strong {
    display: block;

    margin-bottom: 5px;

    color: var(--mesa-blue);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}


/* Zone recommandations */
.mesa-finder-recommendations {
    margin-top: 8px;
}

.mesa-finder-recommendations h3 {
    margin: 0 0 8px;

    color: var(--mesa-navy);
    font-size: 24px;
    line-height: 1.2;
}

.mesa-finder-recommendations-intro {
    max-width: 680px;

    margin: 0 0 22px;

    color: var(--mesa-muted);
    font-size: 14px;
    line-height: 1.55;
}


/* Grille produits */
.mesa-finder-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}


/* Carte produit */
.mesa-finder-product {
    position: relative;
    overflow: hidden;

    display: flex;
    flex-direction: column;

    min-width: 0;

    border: 1px solid #dbe3ec;
    border-radius: 17px;

    background: #fff;

    box-shadow: 0 5px 18px rgba(15, 42, 67, 0.06);

    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}

.mesa-finder-product:hover {
    transform: translateY(-3px);

    border-color: #b8c8db;

    box-shadow: 0 12px 28px rgba(15, 42, 67, 0.11);
}


/* Badge meilleur choix */
.mesa-finder-best-match {
    position: absolute;
    z-index: 2;

    top: 12px;
    left: 12px;

    padding: 6px 9px;

    border-radius: 999px;

    background: var(--mesa-blue);
    color: #fff;

    font-size: 11px;
    font-weight: 800;
    line-height: 1;

    box-shadow: 0 3px 10px rgba(37, 99, 235, 0.22);
}


/* Photo */
.mesa-finder-product-image {
    display: flex;
    align-items: center;
    justify-content: center;

    aspect-ratio: 4 / 3;

    padding: 12px;

    background: #f6f8fb;

    text-decoration: none;
}

.mesa-finder-product-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;

    border-radius: 10px;
}


/* Corps de carte */
.mesa-finder-product-body {
    display: flex;
    flex-direction: column;
    flex: 1;

    padding: 16px;
}

.mesa-finder-product h4 {
    margin: 0 0 12px;

    font-size: 16px;
    line-height: 1.35;
}

.mesa-finder-product h4 a {
    color: var(--mesa-navy);
    text-decoration: none;
}

.mesa-finder-product h4 a:hover {
    color: var(--mesa-blue);
}


/* Caractéristiques */
.mesa-finder-product-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;

    margin-bottom: 16px;
}

.mesa-finder-product-specs span {
    display: inline-flex;
    align-items: center;

    min-height: 26px;
    padding: 4px 8px;

    border-radius: 999px;

    background: #f1f5f9;

    color: #475569;

    font-size: 11px;
    font-weight: 650;
    line-height: 1.2;
}


/* Prix + bouton */
.mesa-finder-product-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;

    margin-top: auto;
    padding-top: 14px;

    border-top: 1px solid #edf1f5;
}

.mesa-finder-product-price {
    color: var(--mesa-navy);

    font-size: 19px;
    font-weight: 850;
    line-height: 1.1;
}

.mesa-finder-product-price .woocommerce-Price-amount {
    color: inherit;
    font: inherit;
}

.mesa-finder-product-button {
    min-height: 40px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 13px;

    border-radius: 10px;

    background: var(--mesa-blue);
    color: #fff;

    font-size: 12px;
    font-weight: 800;
    text-decoration: none;

    white-space: nowrap;

    transition:
        background-color 0.18s ease,
        transform 0.18s ease;
}

.mesa-finder-product-button:hover {
    background: var(--mesa-blue-dark);
    color: #fff;
}

.mesa-finder-product-button:active {
    transform: scale(0.97);
}


/* ==========================================
   TABLETTE
========================================== */

@media (max-width: 900px) {

    .mesa-finder-profile {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mesa-finder-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* ==========================================
   MOBILE
========================================== */

@media (max-width: 640px) {

    /* Critères sous forme de 2 x 2 */
    .mesa-finder-profile {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;

        margin: 22px 0 28px;
    }

    .mesa-finder-profile span {
        padding: 11px;

        border-radius: 11px;

        font-size: 12px;
    }

    .mesa-finder-profile strong {
        margin-bottom: 4px;
        font-size: 10px;
    }

    /* Recommandations */
    .mesa-finder-recommendations h3 {
        font-size: 21px;
    }

    .mesa-finder-recommendations-intro {
        margin-bottom: 16px;
        font-size: 13px;
    }

    /* Une vraie carte par ligne */
    .mesa-finder-product-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .mesa-finder-product {
        border-radius: 15px;
    }

    /* Photo plus compacte */
    .mesa-finder-product-image {
        aspect-ratio: 16 / 10;
        padding: 10px;
    }

    .mesa-finder-product-body {
        padding: 14px;
    }

    .mesa-finder-product h4 {
        margin-bottom: 10px;

        font-size: 15px;
        line-height: 1.35;
    }

    .mesa-finder-product-specs {
        margin-bottom: 13px;
    }

    .mesa-finder-product-specs span {
        min-height: 24px;
        padding: 4px 7px;

        font-size: 10px;
    }

    .mesa-finder-product-price {
        font-size: 18px;
    }

    .mesa-finder-product-button {
        min-height: 40px;

        padding: 0 14px;

        font-size: 12px;
    }

    .mesa-finder-best-match {
        top: 10px;
        left: 10px;

        font-size: 10px;
    }
}
/* ==========================================================
   MESA FOOTER V2
   Logo plus visible + CTA MESA Consulting
   ========================================================== */


/* ----------------------------------------------------------
   BLOC MARQUE MESA BUREAUTIQUE
   ---------------------------------------------------------- */

.mesa-footer-brand .mesa-logo-footer {
    width: max-content;
    margin-bottom: 20px;

    /*
     * Agrandit tout le logo existant sans modifier
     * sa structure ni le logo du header.
     */
    transform: scale(1.28);
    transform-origin: left center;
}

.mesa-footer-brand > p {
    max-width: 260px;
    margin-top: 4px;
    line-height: 1.6;
}


/* ----------------------------------------------------------
   BLOC MESA CONSULTING
   ---------------------------------------------------------- */

.mesa-footer-grid > div:last-child {
    min-width: 190px;
}

.mesa-footer-grid > div:last-child h2 {
    margin-bottom: 10px;
}

.mesa-footer-grid > div:last-child p {
    max-width: 230px;
    margin-bottom: 0;
    line-height: 1.6;
}


/* ----------------------------------------------------------
   CTA MESA CONSULTING
   ---------------------------------------------------------- */

.mesa-footer-consulting {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    margin-top: 16px;
    padding: 11px 16px;

    background: #2563EB;
    border: 1px solid #2563EB;
    border-radius: 9px;

    color: #ffffff !important;
    font-weight: 650;
    font-size: 12px;
    line-height: 1.2;
    text-decoration: none;

    box-shadow:
        0 4px 12px
        rgba(0, 0, 0, 0.14);

    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease,
        box-shadow 0.18s ease;
}


/* Flèche sans toucher au HTML */

.mesa-footer-consulting::after {
    content: "→";
    display: inline-block;
    font-size: 16px;
    line-height: 1;

    transition:
        transform 0.18s ease;
}


.mesa-footer-consulting:hover,
.mesa-footer-consulting:focus {
    background: #1D4ED8;
    border-color: #1D4ED8;
    color: #ffffff !important;

    transform: translateY(-1px);

    box-shadow:
        0 6px 16px
        rgba(0, 0, 0, 0.18);
}


.mesa-footer-consulting:hover::after,
.mesa-footer-consulting:focus::after {
    transform: translateX(3px);
}


/* ----------------------------------------------------------
   TABLETTE
   ---------------------------------------------------------- */

@media (max-width: 980px) {

    .mesa-footer-brand .mesa-logo-footer {
        transform: scale(1.20);
    }

}


/* ----------------------------------------------------------
   MOBILE
   ---------------------------------------------------------- */

@media (max-width: 640px) {

    .mesa-footer-brand .mesa-logo-footer {
        transform: scale(1.15);
        margin-bottom: 17px;
    }

    .mesa-footer-brand > p {
        max-width: 300px;
    }

    .mesa-footer-grid > div:last-child {
        min-width: 0;
    }

    .mesa-footer-grid > div:last-child p {
        max-width: 300px;
    }

    .mesa-footer-consulting {
        width: auto;
        max-width: 100%;
        padding: 11px 15px;
    }

}

/* === MESA HOME VISUAL TILES V1 START === */

/*
 * Accueil MESA
 * Plus de relief, moins de blanc et tuiles visuelles.
 */

/* Largeur légèrement supérieure sur grand écran */
.mesa-home-hero .mesa-container,
.mesa-home-needs .mesa-container,
.mesa-home-categories .mesa-container,
.mesa-home-products .mesa-container,
.mesa-home-why .mesa-container,
.mesa-home-consulting .mesa-container {
    max-width: 1180px;
}

/* Alternance douce des fonds */
.mesa-home-hero {
    background: #eef3f8;
}

.mesa-home-needs {
    background: #fbfcfe;
}

.mesa-home-categories {
    background: #f1f5f9;
}

.mesa-home-products {
    background: #f8fafc;
}

.mesa-home-why {
    background: #edf2f7;
}

.mesa-home-consulting {
    background: #f8fafc;
}


/* ---------------------------------------------------------
   TUILES VISUELLES
--------------------------------------------------------- */

.mesa-need-card::before,
.mesa-category-card::before,
.mesa-why-card::before {
    content: "";
    display: block;
    width: 100%;
    border: 1px solid #dbe7f5;
    border-radius: 12px;
    background-color: #eef4ff;
    background-repeat: no-repeat;
    background-position: center;
    transition:
        transform .18s ease,
        background-color .18s ease,
        border-color .18s ease;
}

.mesa-need-card::before,
.mesa-category-card::before {
    height: 94px;
    margin-bottom: 18px;
    background-size: 40px 40px;
}

.mesa-why-card::before {
    height: 72px;
    margin-bottom: 16px;
    background-size: 34px 34px;
}

/* On remplace les anciennes petites icônes des cartes Besoin */
.mesa-need-icon {
    display: none;
}


/* ---------------------------------------------------------
   COMMENT POUVONS-NOUS VOUS AIDER ?
--------------------------------------------------------- */

/* Trouver mon PC */
.mesa-need-card:nth-child(1)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m14.5 14.5 5 5'/%3E%3Cpath d='M7.5 10h5M10 7.5v5'/%3E%3C/svg%3E");
}

/* Voir les PC disponibles */
.mesa-need-card:nth-child(2)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M2 20h20M8 20h8'/%3E%3C/svg%3E");
}

/* Conseil */
.mesa-need-card:nth-child(3)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H9l-5 3v-4a4 4 0 0 1-2-3V7a4 4 0 0 1 4-4h11a4 4 0 0 1 4 4z'/%3E%3Cpath d='M8 9h8M8 13h5'/%3E%3C/svg%3E");
}


/* ---------------------------------------------------------
   CATEGORIES
--------------------------------------------------------- */

/* Portable */
.mesa-category-card:nth-child(1)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='11' rx='2'/%3E%3Cpath d='M2 19h20M8 19h8'/%3E%3C/svg%3E");
}

/* PC fixe */
.mesa-category-card:nth-child(2)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='14' height='11' rx='2'/%3E%3Cpath d='M9 14v4M5 18h8'/%3E%3Crect x='18' y='5' width='4' height='13' rx='1'/%3E%3Ccircle cx='20' cy='15.5' r='.5' fill='%232563EB'/%3E%3C/svg%3E");
}

/* Serveurs */
.mesa-category-card:nth-child(3)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='5' rx='1'/%3E%3Crect x='4' y='10' width='16' height='5' rx='1'/%3E%3Crect x='4' y='17' width='16' height='4' rx='1'/%3E%3Cpath d='M7 5.5h.01M7 12.5h.01M7 19h.01'/%3E%3C/svg%3E");
}


/* ---------------------------------------------------------
   POURQUOI MESA ?
--------------------------------------------------------- */

/* Matériel contrôlé */
.mesa-why-card:nth-child(1)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 20 6v6c0 5-3.4 8-8 9-4.6-1-8-4-8-9V6z'/%3E%3Cpath d='m8.5 12 2.2 2.2 4.8-5'/%3E%3C/svg%3E");
}

/* Prêt à travailler */
.mesa-why-card:nth-child(2)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 2.5 2.5L16 9'/%3E%3C/svg%3E");
}

/* Conseil humain */
.mesa-why-card:nth-child(3)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 19c.5-4 2.5-6 6-6s5.5 2 6 6'/%3E%3Cpath d='M16 7h5v5h-3l-2 2z'/%3E%3C/svg%3E");
}

/* SAV */
.mesa-why-card:nth-child(4)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13v-2a8 8 0 0 1 16 0v2'/%3E%3Cpath d='M4 13h3v6H5a2 2 0 0 1-2-2v-2a2 2 0 0 1 1-2zM20 13h-3v6h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-1-2z'/%3E%3Cpath d='M17 19c-1 2-3 2-5 2'/%3E%3C/svg%3E");
}


/* Relief des cartes */
.mesa-need-card,
.mesa-category-card,
.mesa-why-card {
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

@media (hover: hover) {
    .mesa-need-card:hover,
    .mesa-category-card:hover {
        transform: translateY(-3px);
        border-color: #c8d8ed;
        box-shadow: 0 14px 30px rgba(15, 42, 67, .09);
    }

    .mesa-need-card:hover::before,
    .mesa-category-card:hover::before {
        background-color: #e7f0ff;
        border-color: #c8d8ed;
    }
}


/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */

@media (max-width: 640px) {
    .mesa-need-card::before,
    .mesa-category-card::before {
        height: 78px;
        background-size: 34px 34px;
    }

    .mesa-why-card::before {
        height: 64px;
        background-size: 30px 30px;
    }
}

/* === MESA HOME VISUAL TILES V1 END === */

/* === MESA HOME TILES PERMANENT V2 START === */

/* Les cartes doivent ressembler à des tuiles même sans survol */
.mesa-need-card,
.mesa-category-card,
.mesa-why-card {
    background: #ffffff;
    border: 1px solid #d6e1ec;
    box-shadow:
        0 8px 22px rgba(15, 42, 67, .08),
        0 2px 6px rgba(15, 42, 67, .04);
}

/* La zone illustrée reste clairement visible en permanence */
.mesa-need-card::before,
.mesa-category-card::before,
.mesa-why-card::before {
    background-color: #eaf2ff;
    border-color: #cfdff3;
}

/* Survol = simple accentuation */
@media (hover: hover) {
    .mesa-need-card:hover,
    .mesa-category-card:hover,
    .mesa-why-card:hover {
        transform: translateY(-2px);
        border-color: #b9cce4;
        box-shadow:
            0 12px 28px rgba(15, 42, 67, .12),
            0 3px 8px rgba(15, 42, 67, .05);
    }

    .mesa-need-card:hover::before,
    .mesa-category-card:hover::before,
    .mesa-why-card:hover::before {
        background-color: #e3eeff;
        border-color: #bfd3ed;
    }
}

/* === MESA HOME TILES PERMANENT V2 END === */

/* === MESA HOME DESKTOP TILES V3 START === */

@media (min-width: 981px) {

    /*
     * Relief permanent plus visible sur desktop.
     * Le mobile reste inchangé.
     */
    .mesa-need-card,
    .mesa-category-card,
    .mesa-why-card {
        background: #ffffff;
        border: 1px solid #c7d5e5;

        box-shadow:
            0 10px 26px rgba(15, 42, 67, .11),
            0 3px 8px rgba(15, 42, 67, .055);
    }

    /*
     * Tuile graphique intérieure légèrement plus affirmée.
     */
    .mesa-need-card::before,
    .mesa-category-card::before,
    .mesa-why-card::before {
        background-color: #e3edfc;
        border-color: #c4d5eb;
    }

    /*
     * Survol volontairement léger.
     */
    .mesa-need-card:hover,
    .mesa-category-card:hover,
    .mesa-why-card:hover {
        transform: translateY(-3px);
        border-color: #aebfd5;

        box-shadow:
            0 16px 34px rgba(15, 42, 67, .15),
            0 4px 10px rgba(15, 42, 67, .07);
    }

    .mesa-need-card:hover::before,
    .mesa-category-card:hover::before,
    .mesa-why-card:hover::before {
        background-color: #dae8fb;
        border-color: #b5cae5;
    }
}

/* === MESA HOME DESKTOP TILES V3 END === */

/* === MESA HOME DESKTOP TILES V4 START === */

@media (min-width: 981px) {

    .mesa-need-card,
    .mesa-category-card,
    .mesa-why-card {
        border-color: #b7c9dc;

        box-shadow:
            0 14px 34px rgba(15, 42, 67, .15),
            0 4px 10px rgba(15, 42, 67, .07);
    }

    .mesa-need-card::before,
    .mesa-category-card::before,
    .mesa-why-card::before {
        background-color: #dce9fb;
        border-color: #b9cee9;
    }

    .mesa-need-card:hover,
    .mesa-category-card:hover,
    .mesa-why-card:hover {
        transform: translateY(-4px);
        border-color: #9fb6d0;

        box-shadow:
            0 20px 42px rgba(15, 42, 67, .19),
            0 6px 14px rgba(15, 42, 67, .08);
    }

    .mesa-need-card:hover::before,
    .mesa-category-card:hover::before,
    .mesa-why-card:hover::before {
        background-color: #d3e3f9;
        border-color: #a9c1df;
    }
}

/* === MESA HOME DESKTOP TILES V4 END === */

/* === MESA HERO SECONDARY BUTTON V1 START === */

.mesa-home-hero .mesa-btn-secondary {
    background: #ffffff;
    color: #0F2A43;
    border: 1px solid #b8c7d8;
    box-shadow: 0 2px 6px rgba(15, 42, 67, .05);
}

.mesa-home-hero .mesa-btn-secondary:hover {
    background: #f4f7fb;
    border-color: #8fa7c1;
    color: #0F2A43;
}

/* === MESA HERO SECONDARY BUTTON V1 END === */

/* === MESA HOME CONTRAST V5 START === */

/* ---------------------------------------------------------
   BOUTON DEPANNAGE
--------------------------------------------------------- */

.mesa-home-hero .mesa-btn-secondary {
    background: #ffffff;
    color: #2563EB;
    border: 1px solid #2563EB;

    box-shadow:
        0 7px 18px rgba(15, 42, 67, .11),
        0 2px 5px rgba(15, 42, 67, .06);
}

.mesa-home-hero .mesa-btn-secondary:hover {
    background: #eef4ff;
    color: #1d4ed8;
    border-color: #1d4ed8;

    transform: translateY(-2px);

    box-shadow:
        0 11px 24px rgba(37, 99, 235, .16),
        0 3px 7px rgba(15, 42, 67, .07);
}


/* ---------------------------------------------------------
   FONDS DE SECTIONS PLUS PRESENTS
--------------------------------------------------------- */

/* Introduction */
.mesa-home-hero {
    background: #eaf1f8;
}

/* Orientation */
.mesa-home-needs {
    background: #f4f7fb;
}

/* Catégories */
.mesa-home-categories {
    background: #eaf1f8;
}

/* Produits */
.mesa-home-products {
    background: #f3f7fb;
}

/* Pourquoi MESA */
.mesa-home-why {
    background: #e7eff7;
}

/* Bloc Consulting */
.mesa-home-consulting {
    background: #f1f5f9;
}


/* Séparations très légères entre zones */
.mesa-home-needs,
.mesa-home-categories,
.mesa-home-products,
.mesa-home-why,
.mesa-home-consulting {
    border-top: 1px solid rgba(15, 42, 67, .035);
}


/* Le gros bloc Consulting gagne un peu plus de relief */
.mesa-consulting-box {
    box-shadow:
        0 16px 36px rgba(15, 42, 67, .15),
        0 4px 10px rgba(15, 42, 67, .06);
}

/* === MESA HOME CONTRAST V5 END === */

/* === MESA HOME ECOMMERCE V6 START === */


/* =========================================================
   1. CTA PRINCIPAUX
   ========================================================= */

/*
 * Bouton principal :
 * bleu MESA, relief visible même sans survol.
 */
.mesa-home-hero .mesa-btn-primary {
    background: #2563EB;
    color: #ffffff;
    border: 1px solid #2563EB;

    box-shadow:
        0 10px 24px rgba(37, 99, 235, .24),
        0 3px 8px rgba(15, 42, 67, .10);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background-color .18s ease,
        border-color .18s ease;
}

.mesa-home-hero .mesa-btn-primary:hover {
    background: #1d4ed8;
    border-color: #1d4ed8;

    transform: translateY(-2px);

    box-shadow:
        0 15px 32px rgba(37, 99, 235, .30),
        0 5px 12px rgba(15, 42, 67, .11);
}

/*
 * Bouton secondaire :
 * effet miroir blanc / bleu.
 */
.mesa-home-hero .mesa-btn-secondary {
    background: #ffffff;
    color: #2563EB;
    border: 1px solid #2563EB;

    box-shadow:
        0 9px 22px rgba(15, 42, 67, .13),
        0 3px 7px rgba(15, 42, 67, .07);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}

.mesa-home-hero .mesa-btn-secondary:hover {
    background: #edf4ff;
    color: #1d4ed8;

    transform: translateY(-2px);

    box-shadow:
        0 14px 30px rgba(37, 99, 235, .18),
        0 4px 10px rgba(15, 42, 67, .09);
}


/* =========================================================
   2. BARRE DE REASSURANCE
   ========================================================= */

.mesa-home-reassurance {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;

    margin-top: 18px;
}

.mesa-home-reassurance span {
    display: inline-flex;
    align-items: center;

    min-height: 36px;
    padding: 8px 12px;

    background: rgba(255, 255, 255, .92);
    color: #0F2A43;

    border: 1px solid #cbd9e8;
    border-radius: 10px;

    font-size: 13px;
    font-weight: 650;
    line-height: 1.2;

    box-shadow:
        0 5px 14px rgba(15, 42, 67, .09),
        0 1px 4px rgba(15, 42, 67, .04);
}


/* =========================================================
   3. FONDS DE SECTIONS
   ========================================================= */

/*
 * Hero légèrement plus riche qu'un simple gris.
 */
.mesa-home-hero {
    background:
        linear-gradient(
            135deg,
            #e4edf6 0%,
            #eef4f9 52%,
            #e7eff7 100%
        );
}

/* Orientation */
.mesa-home-needs {
    background: #eef3f8;
}

/* Catégories */
.mesa-home-categories {
    background: #e4edf6;
}

/* Produits */
.mesa-home-products {
    background: #edf3f8;
}

/* Pourquoi MESA */
.mesa-home-why {
    background: #dfe9f3;
}

/* Zone Consulting */
.mesa-home-consulting {
    background: #e9f0f7;
}


/* =========================================================
   4. SEPARATION DES GRANDES ZONES
   ========================================================= */

.mesa-home-needs,
.mesa-home-categories,
.mesa-home-products,
.mesa-home-why,
.mesa-home-consulting {
    border-top: 1px solid rgba(15, 42, 67, .06);
}


/* =========================================================
   5. CONSULTING
   ========================================================= */

.mesa-consulting-box {
    box-shadow:
        0 18px 42px rgba(15, 42, 67, .18),
        0 5px 12px rgba(15, 42, 67, .07);
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {

    /*
     * Les réassurances passent proprement sur plusieurs lignes.
     * On conserve les proportions appréciées sur mobile.
     */
    .mesa-home-reassurance {
        gap: 7px;
    }

    .mesa-home-reassurance span {
        min-height: 32px;
        padding: 7px 10px;
        font-size: 12px;
    }

    /*
     * Ombres légèrement moins fortes sur petit écran.
     */
    .mesa-home-hero .mesa-btn-primary,
    .mesa-home-hero .mesa-btn-secondary {
        box-shadow:
            0 7px 18px rgba(15, 42, 67, .13),
            0 2px 5px rgba(15, 42, 67, .06);
    }
}


/* === MESA HOME ECOMMERCE V6 END === */

/* === MESA HERO PREPARATION TILE V7 START === */

/*
 * Tuile visuelle de la carte
 * "Un PC préparé avant son expédition"
 */
.mesa-home-hero-card::before {
    content: "";
    display: block;

    width: 100%;
    height: 88px;

    margin-bottom: 18px;

    border: 1px solid #b9cee9;
    border-radius: 12px;

    background-color: #dce9fb;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='14' height='10' rx='2'/%3E%3Cpath d='M10 14v3M6 17h8'/%3E%3Ccircle cx='18' cy='16' r='4' fill='%23dce9fb'/%3E%3Cpath d='m16.5 16 1 1 2-2'/%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-position: center;
    background-size: 42px 42px;
}

/*
 * Relief cohérent avec les autres tuiles MESA
 */
.mesa-home-hero-card {
    border: 1px solid #b7c9dc;

    box-shadow:
        0 14px 34px rgba(15, 42, 67, .15),
        0 4px 10px rgba(15, 42, 67, .07);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

@media (hover: hover) {
    .mesa-home-hero-card:hover {
        transform: translateY(-3px);
        border-color: #9fb6d0;

        box-shadow:
            0 20px 42px rgba(15, 42, 67, .18),
            0 6px 14px rgba(15, 42, 67, .08);
    }

    .mesa-home-hero-card:hover::before {
        background-color: #d3e3f9;
        border-color: #a9c1df;
    }
}

/* Mobile : tuile un peu plus compacte */
@media (max-width: 640px) {
    .mesa-home-hero-card::before {
        height: 70px;
        margin-bottom: 15px;
        background-size: 36px 36px;
    }
}

/* === MESA HERO PREPARATION TILE V7 END === */


/* === ACCUEIL - 4 PRODUITS DESKTOP === */
@media (min-width: 981px) {
    .mesa-home-products .mesa-product-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}
/* === END ACCUEIL - 4 PRODUITS DESKTOP === */

/* === MESA PRODUCT CARDS V8 START === */

/* ---------------------------------------------------------
   CARTE PRODUIT
--------------------------------------------------------- */

.mesa-product-card {
    display: flex;
    flex-direction: column;

    background: #ffffff;

    border: 1px solid #b7c9dc;
    border-radius: 16px;

    box-shadow:
        0 14px 34px rgba(15, 42, 67, .13),
        0 4px 10px rgba(15, 42, 67, .06);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

/* ---------------------------------------------------------
   IMAGE
--------------------------------------------------------- */

.mesa-product-image {
    background: #f5f7fa;
    border-bottom: 1px solid #dbe4ee;
}

.mesa-product-image img {
    transition: transform .25s ease;
}


/* ---------------------------------------------------------
   CONTENU
--------------------------------------------------------- */

.mesa-product-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 18px 18px 16px;
}


/* Badge reconditionné */
.mesa-product-state {
    align-self: flex-start;

    display: inline-flex;
    align-items: center;

    margin-bottom: 10px;
    padding: 5px 8px;

    border: 1px solid #c4d5eb;
    border-radius: 7px;

    background: #e8f1ff;
    color: #2563EB;

    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .035em;
}


/* ---------------------------------------------------------
   TITRE
--------------------------------------------------------- */

.mesa-product-card h3 {
    margin: 0;

    color: #0F2A43;

    font-size: 19px;
    font-weight: 750;
    line-height: 1.25;

    /*
     * On garde une hauteur cohérente entre les cartes.
     * Maximum trois lignes avant coupure.
     */
    min-height: 71px;

    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mesa-product-card h3 a {
    color: inherit;
    text-decoration: none;
}


/* ---------------------------------------------------------
   STOCK
--------------------------------------------------------- */

.mesa-product-stock {
    margin-top: 12px;
    margin-bottom: 18px;

    font-size: 13px;
    font-weight: 700;
}

.mesa-stock-dot {
    width: 8px;
    height: 8px;
}


/* ---------------------------------------------------------
   PRIX + CTA
--------------------------------------------------------- */

.mesa-product-card-footer {
    margin-top: auto;
    padding-top: 15px;

    border-top: 1px solid #e4ebf2;

    align-items: center;
}

.mesa-product-price {
    color: #0F2A43;

    font-size: 25px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.02em;
}


/* Bouton Voir */
.mesa-product-link {
    min-height: 42px;
    padding: 0 17px;

    border: 1px solid #2563EB;
    border-radius: 10px;

    background: #2563EB;
    color: #ffffff;

    font-size: 13px;
    font-weight: 750;

    box-shadow:
        0 7px 16px rgba(37, 99, 235, .22),
        0 2px 5px rgba(15, 42, 67, .08);

    transition:
        transform .18s ease,
        background-color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}


/* ---------------------------------------------------------
   SURVOL DESKTOP
--------------------------------------------------------- */

@media (hover: hover) {

    .mesa-product-card:hover {
        transform: translateY(-4px);

        border-color: #9fb6d0;

        box-shadow:
            0 20px 42px rgba(15, 42, 67, .17),
            0 6px 14px rgba(15, 42, 67, .07);
    }

    .mesa-product-card:hover .mesa-product-image img {
        transform: scale(1.025);
    }

    .mesa-product-card h3 a:hover {
        color: #2563EB;
    }

    .mesa-product-link:hover {
        transform: translateY(-2px);

        background: #1d4ed8;
        border-color: #1d4ed8;

        box-shadow:
            0 11px 22px rgba(37, 99, 235, .28),
            0 3px 7px rgba(15, 42, 67, .09);
    }
}


/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 640px) {

    .mesa-product-card-body {
        padding: 15px;
    }

    .mesa-product-card h3 {
        min-height: auto;
        font-size: 17px;
    }

    .mesa-product-price {
        font-size: 22px;
    }

    .mesa-product-link {
        min-height: 40px;
        padding: 0 15px;
    }
}

/* === MESA PRODUCT CARDS V8 END === */

/* === MESA PRODUCT HIERARCHY V9 START === */


/* Modèle du PC */
.mesa-product-card h3 {
    min-height: auto;
    margin: 0;

    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.015em;
}


/* Caractéristiques techniques sous le modèle */
.mesa-product-specs {
    margin-top: 7px;

    min-height: 42px;

    color: #52677c;

    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
}


/* Stock mieux détaché des caractéristiques */
.mesa-product-stock {
    margin-top: 13px;
    margin-bottom: 17px;
}


/* CTA légèrement plus explicite */
.mesa-product-link {
    min-width: 92px;
}


/* Mobile : texte plus compact */
.mesa-product-link-mobile {
    display: none;
}


@media (max-width: 640px) {

    .mesa-product-card h3 {
        font-size: 18px;
    }

    .mesa-product-specs {
        min-height: auto;
        font-size: 12.5px;
    }

    .mesa-product-link {
        min-width: auto;
    }

    .mesa-product-link-desktop {
        display: none;
    }

    .mesa-product-link-mobile {
        display: inline;
    }
}


/* === MESA PRODUCT HIERARCHY V9 END === */

/* === MESA PRODUCT TYPOGRAPHY V10 START === */

/*
 * Typographie produit plus fine et plus lisible.
 */
.mesa-product-card h3 {
    margin: 0;

    min-height: auto;

    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.mesa-product-card h3 a {
    font-weight: inherit;
}


/* Caractéristiques secondaires */
.mesa-product-specs {
    margin-top: 5px;
    min-height: 35px;

    color: #5f7184;

    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: 0;
}


/* Badge reconditionné légèrement plus discret */
.mesa-product-state {
    margin-bottom: 8px;

    font-size: 9px;
    font-weight: 700;
}


/* Stock */
.mesa-product-stock {
    margin-top: 9px;
    margin-bottom: 14px;

    font-size: 12px;
}


/* Prix : on conserve une vraie hiérarchie */
.mesa-product-price {
    font-size: 23px;
    font-weight: 800;
}


/* Mobile */
@media (max-width: 640px) {

    .mesa-product-card h3 {
        font-size: 16px;
        line-height: 1.3;
    }

    .mesa-product-specs {
        font-size: 12px;
        line-height: 1.4;
    }

    .mesa-product-price {
        font-size: 21px;
    }
}

/* === MESA PRODUCT TYPOGRAPHY V10 END === */

/* === MESA PRODUCT PRICE V11 START === */

.mesa-product-price {
    color: #0F2A43;

    font-size: 19px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

@media (max-width: 640px) {
    .mesa-product-price {
        font-size: 18px;
        font-weight: 700;
    }
}

/* === MESA PRODUCT PRICE V11 END === */

/* === MESA CATALOGUE PREMIUM V1 START === */


/* =========================================================
   PAGE
   ========================================================= */

.mesa-catalog-page {
    background: #e9f0f7;
    color: #0F2A43;
}


/* =========================================================
   HERO
   ========================================================= */

.mesa-catalog-hero {
    padding: 34px 0 38px;

    background:
        linear-gradient(
            135deg,
            #e4edf6 0%,
            #eef4f9 52%,
            #e5eef7 100%
        );

    border-bottom: 1px solid rgba(15, 42, 67, .07);
}

.mesa-catalog-hero .mesa-container,
.mesa-catalog-content .mesa-container {
    max-width: 1180px;
}

.mesa-catalog-breadcrumb {
    margin-bottom: 23px;

    font-size: 12px;
    color: #64798e;
}

.mesa-catalog-breadcrumb nav {
    display: flex;
    align-items: center;
    gap: 7px;
}

.mesa-catalog-breadcrumb a {
    color: #2563EB;
    text-decoration: none;
}

.mesa-catalog-breadcrumb span {
    margin: 0 4px;
    opacity: .55;
}


.mesa-catalog-hero-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.mesa-catalog-hero h1 {
    margin: 4px 0 8px;

    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.05;
    letter-spacing: -.025em;

    color: #0F2A43;
}

.mesa-catalog-hero p {
    max-width: 650px;

    margin: 0;

    color: #61758a;
    font-size: 15px;
    line-height: 1.6;
}


.mesa-catalog-advisor {
    min-width: 245px;
    padding: 18px 20px;

    display: flex;
    flex-direction: column;
    gap: 4px;

    text-decoration: none;

    background: #ffffff;
    border: 1px solid #b7c9dc;
    border-radius: 14px;

    box-shadow:
        0 12px 30px rgba(15, 42, 67, .12),
        0 3px 8px rgba(15, 42, 67, .05);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.mesa-catalog-advisor span {
    color: #65798d;
    font-size: 12px;
}

.mesa-catalog-advisor strong {
    color: #2563EB;
    font-size: 14px;
}


.mesa-catalog-reassurance {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;

    margin-top: 24px;
}

.mesa-catalog-reassurance span {
    display: inline-flex;
    align-items: center;

    padding: 8px 11px;

    background: rgba(255, 255, 255, .9);

    border: 1px solid #c9d7e6;
    border-radius: 9px;

    color: #0F2A43;

    font-size: 12px;
    font-weight: 650;

    box-shadow:
        0 4px 11px rgba(15, 42, 67, .07);
}


/* =========================================================
   CONTENU
   ========================================================= */

.mesa-catalog-content {
    padding: 36px 0 72px;
}

.mesa-catalog-layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 28px;

    align-items: start;
}


/* =========================================================
   FILTRES DESKTOP
   ========================================================= */

.mesa-filter-panel {
    position: sticky;
    top: 110px;

    padding: 20px;

    background: #ffffff;

    border: 1px solid #b8c9db;
    border-radius: 16px;

    box-shadow:
        0 14px 34px rgba(15, 42, 67, .12),
        0 4px 10px rgba(15, 42, 67, .05);
}

.mesa-filter-title {
    margin-bottom: 6px;
}

.mesa-filter-title div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.mesa-filter-title span {
    color: #2563EB;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
}

.mesa-filter-title strong {
    color: #0F2A43;

    font-size: 18px;
    line-height: 1.2;
}


.mesa-filter-form {
    margin: 0;
}

.mesa-filter-group {
    margin: 0;
    padding: 18px 0;

    border: 0;
    border-bottom: 1px solid #e1e8f0;
}

.mesa-filter-group:last-of-type {
    border-bottom: 0;
}

.mesa-filter-group legend {
    width: 100%;

    margin-bottom: 10px;

    color: #0F2A43;

    font-size: 13px;
    font-weight: 750;
}


.mesa-filter-option {
    display: flex;
    align-items: center;
    gap: 9px;

    padding: 6px 7px;

    border-radius: 7px;

    color: #53687c;

    cursor: pointer;

    font-size: 12.5px;

    transition:
        background-color .15s ease,
        color .15s ease;
}

.mesa-filter-option input {
    margin: 0;
    accent-color: #2563EB;
}

.mesa-filter-option:hover {
    background: #edf4ff;
    color: #0F2A43;
}


.mesa-filter-actions {
    display: grid;
    gap: 9px;

    padding-top: 17px;
}

.mesa-filter-submit,
.mesa-filter-reset {
    min-height: 42px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 9px;

    font-size: 12px;
    font-weight: 750;

    text-decoration: none;
}

.mesa-filter-submit {
    border: 1px solid #2563EB;

    background: #2563EB;
    color: #ffffff;

    cursor: pointer;

    box-shadow:
        0 7px 17px rgba(37, 99, 235, .22);
}

.mesa-filter-reset {
    border: 1px solid #cad6e3;

    background: #ffffff;
    color: #2563EB;
}


/* =========================================================
   FILTRES MOBILE
   ========================================================= */

.mesa-mobile-filters {
    display: none;

    margin-bottom: 18px;

    background: #ffffff;

    border: 1px solid #b8c9db;
    border-radius: 13px;

    box-shadow:
        0 8px 22px rgba(15, 42, 67, .09);
}

.mesa-mobile-filters summary {
    padding: 15px 17px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    cursor: pointer;
    list-style: none;
}

.mesa-mobile-filters summary::-webkit-details-marker {
    display: none;
}

.mesa-mobile-filters summary span {
    color: #2563EB;

    font-size: 11px;
    font-weight: 800;
}

.mesa-mobile-filters summary strong {
    color: #0F2A43;

    font-size: 13px;
}

.mesa-mobile-filter-body {
    padding: 0 17px 17px;

    border-top: 1px solid #e1e8f0;
}


/* =========================================================
   TOOLBAR
   ========================================================= */

.mesa-catalog-toolbar {
    min-height: 50px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 15px;
}

.mesa-result-count {
    color: #64798d;

    font-size: 13px;
}

.mesa-result-count strong {
    color: #0F2A43;
    font-size: 20px;
}


.mesa-sort-form {
    margin: 0;
}

.mesa-sort-form label {
    display: flex;
    align-items: center;
    gap: 10px;
}

.mesa-sort-form label > span {
    color: #63778b;
    font-size: 12px;
}

.mesa-sort-form select {
    min-width: 190px;
    min-height: 40px;

    padding: 0 34px 0 12px;

    background: #ffffff;
    color: #0F2A43;

    border: 1px solid #c6d4e3;
    border-radius: 9px;

    font-size: 12px;
}


/* =========================================================
   FILTRES ACTIFS
   ========================================================= */

.mesa-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;

    margin-bottom: 18px;
}

.mesa-active-filters a {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 7px 10px;

    border-radius: 999px;

    background: #dfeafe;
    border: 1px solid #bfd2ed;

    color: #1d4ed8;

    text-decoration: none;

    font-size: 11.5px;
    font-weight: 650;
}

.mesa-active-filters a span {
    font-size: 15px;
    line-height: 1;
}

.mesa-active-filters .mesa-clear-filters {
    background: transparent;
    border-color: transparent;

    color: #677b8f;
}


/* =========================================================
   GRILLE PRODUITS
   ========================================================= */

.mesa-catalog-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}


/* =========================================================
   CARTE PRODUIT
   ========================================================= */

.mesa-catalog-card {
    min-width: 0;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background: #ffffff;

    border: 1px solid #b7c9dc;
    border-radius: 15px;

    box-shadow:
        0 12px 28px rgba(15, 42, 67, .12),
        0 3px 8px rgba(15, 42, 67, .05);

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}


/* Image */

.mesa-catalog-card-image {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    aspect-ratio: 4 / 3;

    padding: 6px;

    overflow: hidden;

    background: #f3f6f9;

    border-bottom: 1px solid #dce5ee;
}

.mesa-catalog-card-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: contain;

    transition: transform .25s ease;
}


/* Badges */

.mesa-catalog-badge,
.mesa-catalog-condition {
    position: absolute;
    z-index: 2;

    top: 10px;

    padding: 5px 7px;

    border-radius: 7px;

    font-size: 9px;
    font-weight: 750;
    line-height: 1;
}

.mesa-catalog-badge {
    left: 10px;

    background: #e5efff;
    border: 1px solid #bfd1ec;

    color: #2563EB;

    text-transform: uppercase;
    letter-spacing: .035em;
}

.mesa-catalog-condition {
    right: 10px;

    background: rgba(255, 255, 255, .94);
    border: 1px solid #d2dce7;

    color: #50667b;
}


/* Corps */

.mesa-catalog-card-body {
    flex: 1;

    display: flex;
    flex-direction: column;

    padding: 16px;
}

.mesa-catalog-card h2 {
    margin: 0;

    font-size: 16px;
    font-weight: 700;
    line-height: 1.28;
    letter-spacing: 0;
}

.mesa-catalog-card h2 a {
    color: #0F2A43;
    text-decoration: none;
}

.mesa-catalog-specs {
    min-height: 37px;

    margin-top: 5px;

    color: #5f7184;

    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
}


/* Stock */

.mesa-catalog-stock {
    display: flex;
    align-items: center;
    gap: 7px;

    margin: 11px 0 14px;

    font-size: 12px;
    font-weight: 650;
}

.mesa-catalog-stock span {
    width: 7px;
    height: 7px;

    display: block;

    border-radius: 50%;
}

.mesa-catalog-stock.is-in-stock {
    color: #15803D;
}

.mesa-catalog-stock.is-in-stock span {
    background: #15803D;
}

.mesa-catalog-stock.is-out-stock {
    color: #9b2c2c;
}

.mesa-catalog-stock.is-out-stock span {
    background: #b91c1c;
}


/* Footer carte */

.mesa-catalog-card-footer {
    margin-top: auto;
    padding-top: 13px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    border-top: 1px solid #e2e9f0;
}

.mesa-catalog-price {
    color: #0F2A43;

    font-size: 19px;
    font-weight: 700;
    line-height: 1.15;
}

.mesa-catalog-price del {
    display: block;

    color: #8393a3;

    font-size: 11px;
    font-weight: 500;
}

.mesa-catalog-price ins {
    text-decoration: none;
}


.mesa-catalog-view {
    min-height: 40px;
    padding: 0 13px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    white-space: nowrap;

    border: 1px solid #2563EB;
    border-radius: 9px;

    background: #2563EB;
    color: #ffffff;

    text-decoration: none;

    font-size: 11.5px;
    font-weight: 750;

    box-shadow:
        0 7px 16px rgba(37, 99, 235, .20);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}


/* =========================================================
   PAGINATION
   ========================================================= */

.mesa-catalog-pagination {
    margin-top: 34px;

    display: flex;
    justify-content: center;
}

.mesa-catalog-pagination .page-numbers {
    min-width: 40px;
    height: 40px;

    margin: 0 3px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    background: #ffffff;
    color: #0F2A43;

    border: 1px solid #c3d1df;
    border-radius: 9px;

    text-decoration: none;

    font-size: 12px;
    font-weight: 700;

    box-shadow:
        0 4px 10px rgba(15, 42, 67, .06);
}

.mesa-catalog-pagination .page-numbers.current {
    background: #2563EB;
    border-color: #2563EB;

    color: #ffffff;
}


/* =========================================================
   AUCUN RESULTAT
   ========================================================= */

.mesa-catalog-empty {
    padding: 55px 25px;

    text-align: center;

    background: #ffffff;

    border: 1px solid #b8c9db;
    border-radius: 16px;

    box-shadow:
        0 12px 30px rgba(15, 42, 67, .10);
}

.mesa-catalog-empty-icon {
    width: 54px;
    height: 54px;

    margin: 0 auto 16px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 14px;

    background: #e1ecff;
    color: #2563EB;

    font-size: 24px;
    font-weight: 800;
}

.mesa-catalog-empty h2 {
    margin: 0 0 8px;

    color: #0F2A43;
}

.mesa-catalog-empty p {
    max-width: 470px;

    margin: 0 auto 22px;

    color: #63778b;
    line-height: 1.6;
}

.mesa-catalog-empty > div:last-child {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 9px;
}

.mesa-empty-reset,
.mesa-empty-advisor {
    min-height: 42px;
    padding: 0 15px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 9px;

    font-size: 12px;
    font-weight: 700;

    text-decoration: none;
}

.mesa-empty-reset {
    background: #ffffff;
    border: 1px solid #2563EB;
    color: #2563EB;
}

.mesa-empty-advisor {
    background: #2563EB;
    border: 1px solid #2563EB;
    color: #ffffff;
}


/* =========================================================
   HOVER DESKTOP
   ========================================================= */

@media (hover: hover) {

    .mesa-catalog-advisor:hover {
        transform: translateY(-2px);

        border-color: #9fb6d0;

        box-shadow:
            0 17px 36px rgba(15, 42, 67, .16);
    }

    .mesa-filter-submit:hover,
    .mesa-catalog-view:hover {
        background: #1d4ed8;

        transform: translateY(-2px);

        box-shadow:
            0 11px 23px rgba(37, 99, 235, .27);
    }

    .mesa-catalog-card:hover {
        transform: translateY(-4px);

        border-color: #9fb6d0;

        box-shadow:
            0 19px 40px rgba(15, 42, 67, .17),
            0 5px 12px rgba(15, 42, 67, .07);
    }

    .mesa-catalog-card:hover
    .mesa-catalog-card-image img {
        transform: scale(1.025);
    }

    .mesa-catalog-card h2 a:hover {
        color: #2563EB;
    }
}


/* =========================================================
   TABLETTE
   ========================================================= */

@media (max-width: 980px) {

    .mesa-catalog-layout {
        grid-template-columns: 1fr;
    }

    .mesa-catalog-sidebar {
        display: none;
    }

    .mesa-mobile-filters {
        display: block;
    }

    .mesa-catalog-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {

    .mesa-catalog-hero {
        padding: 25px 0 28px;
    }

    .mesa-catalog-hero-row {
        align-items: stretch;
        flex-direction: column;

        gap: 20px;
    }

    .mesa-catalog-hero h1 {
        font-size: 34px;
    }

    .mesa-catalog-advisor {
        min-width: 0;
        width: 100%;
    }

    .mesa-catalog-reassurance {
        gap: 6px;
    }

    .mesa-catalog-reassurance span {
        font-size: 11px;
        padding: 7px 9px;
    }


    .mesa-catalog-content {
        padding: 24px 0 50px;
    }


    .mesa-catalog-toolbar {
        align-items: stretch;
        flex-direction: column;

        gap: 11px;
    }

    .mesa-sort-form label {
        justify-content: space-between;
    }

    .mesa-sort-form select {
        min-width: 0;
        flex: 1;
    }


    .mesa-catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }


    .mesa-catalog-card-image {
        aspect-ratio: 16 / 10;
    }

    .mesa-catalog-card-body {
        padding: 15px;
    }

    .mesa-catalog-card h2 {
        font-size: 16px;
    }

    .mesa-catalog-specs {
        min-height: auto;
    }

    .mesa-catalog-price {
        font-size: 18px;
    }

    .mesa-catalog-view {
        min-height: 39px;
    }
}


/* === MESA CATALOGUE PREMIUM V1 END === */

/* === MESA CATALOGUE FINITIONS V2 START === */


/* =========================================================
   TUILE TROUVER MON PC
   ========================================================= */

.mesa-catalog-advisor {
    min-width: 300px;

    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 15px;
    row-gap: 3px;

    align-items: center;

    padding: 16px 18px;

    background:
        linear-gradient(
            135deg,
            #0F2A43 0%,
            #153B5C 100%
        );

    border: 1px solid #0F2A43;

    box-shadow:
        0 16px 36px rgba(15, 42, 67, .22),
        0 5px 12px rgba(15, 42, 67, .09);
}


/*
 * Tuile graphique intégrée.
 */
.mesa-catalog-advisor::before {
    content: "";

    grid-column: 1;
    grid-row: 1 / span 2;

    width: 58px;
    height: 58px;

    border-radius: 12px;

    background-color: #DCE9FB;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='13' height='9' rx='2'/%3E%3Cpath d='M9.5 13v3M6 16h7'/%3E%3Ccircle cx='17' cy='15' r='4'/%3E%3Cpath d='m20 18 2 2'/%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-position: center;
    background-size: 34px 34px;

    border: 1px solid #B9CEE9;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .8);
}


.mesa-catalog-advisor span {
    grid-column: 2;
    grid-row: 1;

    color: rgba(255, 255, 255, .74);

    font-size: 12px;
    font-weight: 500;
}


.mesa-catalog-advisor strong {
    grid-column: 2;
    grid-row: 2;

    color: #ffffff;

    font-size: 15px;
    font-weight: 750;
}


/* Survol du CTA */
@media (hover: hover) {

    .mesa-catalog-advisor:hover {
        transform: translateY(-3px);

        border-color: #19496f;

        box-shadow:
            0 21px 44px rgba(15, 42, 67, .28),
            0 7px 15px rgba(15, 42, 67, .11);
    }

    .mesa-catalog-advisor:hover::before {
        background-color: #E7F0FF;
        border-color: #AFC7E5;
    }
}


/* =========================================================
   BADGES PRODUITS
   ========================================================= */

.mesa-catalog-badge,
.mesa-catalog-condition {
    padding: 6px 8px;

    border-radius: 8px;

    font-size: 10px;
    font-weight: 750;
}


/* =========================================================
   FILTRE ETAT
   ========================================================= */

.mesa-filter-group legend {
    margin-bottom: 11px;
}

/*
 * Les cases à cocher restent suffisamment faciles
 * à sélectionner.
 */
.mesa-filter-option input[type="checkbox"] {
    width: 14px;
    height: 14px;
}


/* =========================================================
   ESPACE BAS DE PAGE
   ========================================================= */

.mesa-catalog-content {
    padding-bottom: 40px;
}

.mesa-catalog-pagination {
    margin-top: 27px;
    margin-bottom: 0;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {

    .mesa-catalog-advisor {
        min-width: 0;
        width: 100%;

        grid-template-columns:
            52px minmax(0, 1fr);

        padding: 14px 15px;
    }

    .mesa-catalog-advisor::before {
        width: 52px;
        height: 52px;

        background-size: 30px 30px;
    }

    .mesa-catalog-advisor strong {
        font-size: 14px;
    }

    .mesa-catalog-content {
        padding-bottom: 32px;
    }

}


/* === MESA CATALOGUE FINITIONS V2 END === */

/* === MESA CATALOGUE FINITIONS V3 START === */


/* =========================================================
   BAS DU CATALOGUE
   ========================================================= */

/*
 * On supprime le grand espace inutile entre
 * la pagination et le footer.
 */
.mesa-catalog-content {
    padding-bottom: 16px !important;
}

.mesa-catalog-main {
    padding-bottom: 0;
}

.mesa-catalog-pagination {
    margin-top: 26px;
    margin-bottom: 0;
}


/* =========================================================
   FILTRES STICKY DESKTOP
   ========================================================= */

/*
 * Si la colonne dépasse la hauteur de l'écran,
 * elle devient scrollable sans déplacer tout le site.
 */
@media (min-width: 981px) {

    .mesa-filter-panel {
        top: 105px;

        max-height: calc(100vh - 125px);

        overflow-y: auto;
        overscroll-behavior: contain;

        scrollbar-width: thin;
        scrollbar-color: #b8c9db transparent;
    }

    .mesa-filter-panel::-webkit-scrollbar {
        width: 6px;
    }

    .mesa-filter-panel::-webkit-scrollbar-track {
        background: transparent;
    }

    .mesa-filter-panel::-webkit-scrollbar-thumb {
        background: #b8c9db;
        border-radius: 999px;
    }
}


/* =========================================================
   TABLETTE / MOBILE
   ========================================================= */

@media (max-width: 980px) {

    .mesa-catalog-content {
        padding-bottom: 22px !important;
    }

    /*
     * Aucun comportement sticky/scroll interne
     * pour les filtres mobiles.
     */
    .mesa-filter-panel {
        position: static;

        max-height: none;
        overflow: visible;
    }
}


/* === MESA CATALOGUE FINITIONS V3 END === */

/* === MESA PRODUCT PREMIUM V1 START === */

body.single-product #primary,
body.single-product main.site-main {
    background: #e9f0f7;
}

body.single-product .woocommerce-breadcrumb {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    padding-top: 22px;
    color: #6b7f92;
    font-size: 12px;
}

body.single-product .woocommerce-breadcrumb a {
    color: #2563EB;
}

body.single-product div.product {
    max-width: 1180px;
    margin: 0 auto;
    padding: 10px 0 55px;

    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: 28px;
    align-items: start;
}

body.single-product div.product .woocommerce-product-gallery,
body.single-product div.product .summary {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

body.single-product .woocommerce-product-gallery {
    padding: 14px;
    background: #ffffff;
    border: 1px solid #b7c9dc;
    border-radius: 17px;

    box-shadow:
        0 16px 38px rgba(15, 42, 67, .13),
        0 4px 10px rgba(15, 42, 67, .05);
}

body.single-product .woocommerce-product-gallery__image {
    overflow: hidden;
    background: #f3f6f9;
    border-radius: 12px;
}

body.single-product .woocommerce-product-gallery__image img {
    display: block;
    width: 100%;
    object-fit: contain;
}

body.single-product .flex-control-thumbs {
    margin-top: 10px !important;

    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

body.single-product .flex-control-thumbs li {
    width: auto !important;
    margin: 0 !important;

    overflow: hidden;

    background: #f5f7fa;
    border: 1px solid #d3deea;
    border-radius: 10px;
}


body.single-product div.product .summary {
    padding: 27px;

    background: #ffffff;

    border: 1px solid #b7c9dc;
    border-radius: 17px;

    box-shadow:
        0 16px 38px rgba(15, 42, 67, .13),
        0 4px 10px rgba(15, 42, 67, .05);
}

.mesa-pdp-kicker {
    display: inline-flex;

    margin-bottom: 9px;

    color: #2563EB;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .055em;
}

body.single-product .summary .product_title {
    margin: 0;

    color: #0F2A43;

    font-size: clamp(28px, 3vw, 38px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.02em;
}

.mesa-pdp-heading-specs {
    margin-top: 9px;

    color: #60758a;

    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

body.single-product .summary .price {
    margin: 19px 0 17px !important;

    color: #0F2A43 !important;

    font-size: 25px !important;
    font-weight: 700 !important;
    line-height: 1.1;
}

.mesa-pdp-overview {
    margin: 4px 0 19px;
}

.mesa-pdp-prepared {
    margin: 0 0 13px;

    color: #5e7286;

    font-size: 13px;
    line-height: 1.55;
}

.mesa-pdp-trust-grid {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 8px;
}

.mesa-pdp-trust-item {
    min-width: 0;

    padding: 11px 12px;

    display: flex;
    flex-direction: column;

    gap: 3px;

    background: #edf4ff;

    border: 1px solid #c8d9ee;
    border-radius: 10px;
}

.mesa-pdp-trust-item span {
    color: #2563EB;

    font-size: 9px;
    font-weight: 800;
    letter-spacing: .055em;
}

.mesa-pdp-trust-item strong {
    color: #0F2A43;

    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
}


.mesa-pdp-delivery {
    margin: 0 0 15px;
    padding: 12px 13px;

    display: flex;
    align-items: center;
    gap: 11px;

    background: #f5f8fc;

    border: 1px solid #d1dce8;
    border-radius: 11px;
}

.mesa-pdp-delivery-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #dce9fb;
    color: #2563EB;

    border-radius: 9px;

    font-size: 17px;
    font-weight: 800;
}

.mesa-pdp-delivery > div:last-child {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mesa-pdp-delivery strong {
    color: #0F2A43;
    font-size: 12px;
}

.mesa-pdp-delivery span {
    color: #687c90;
    font-size: 10.5px;
    line-height: 1.4;
}

body.single-product .summary .stock {
    display: inline-flex;

    margin: 0 0 10px !important;
    padding: 6px 10px;

    background: #e9f7ee;
    color: #15803D !important;

    border: 1px solid #c6e8d1;
    border-radius: 999px;

    font-size: 12px;
    font-weight: 700;
}

body.single-product .summary form.cart {
    display: flex;
    align-items: stretch;
    gap: 9px;

    margin: 0 0 15px !important;
}

body.single-product .summary .quantity {
    margin: 0 !important;
}

body.single-product .summary .quantity input {
    width: 64px;
    height: 46px;

    border: 1px solid #c5d2df;
    border-radius: 9px;

    background: #ffffff;
    color: #0F2A43;

    font-weight: 700;
}

body.single-product .summary .single_add_to_cart_button {
    min-height: 46px;
    flex: 1;

    border-radius: 9px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    font-size: 13px !important;
    font-weight: 700 !important;

    box-shadow:
        0 9px 20px rgba(37, 99, 235, .23);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}

body.single-product .summary .single_add_to_cart_button:hover {
    transform: translateY(-2px);

    background: #1d4ed8 !important;

    box-shadow:
        0 13px 27px rgba(37, 99, 235, .29);
}

body.single-product .product_meta {
    display: none !important;
}


body.single-product div.product .woocommerce-tabs {
    grid-column: 1 / -1;
    margin-top: 10px;
}

body.single-product .woocommerce-tabs ul.tabs {
    margin: 0 0 12px !important;
    padding: 0 !important;

    display: flex;
    gap: 8px;

    border: 0 !important;
    background: transparent !important;
}

body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after {
    display: none !important;
}

body.single-product .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
    padding: 0 !important;

    background: #ffffff !important;

    border: 1px solid #c5d3e1 !important;
    border-radius: 10px !important;

    box-shadow:
        0 4px 11px rgba(15, 42, 67, .06);
}

body.single-product .woocommerce-tabs ul.tabs li a {
    padding: 11px 16px !important;

    color: #50667b !important;

    font-size: 12px !important;
    font-weight: 700 !important;
}

body.single-product .woocommerce-tabs ul.tabs li.active {
    background: #0F2A43 !important;
    border-color: #0F2A43 !important;
}

body.single-product .woocommerce-tabs ul.tabs li.active a {
    color: #ffffff !important;
}

body.single-product .woocommerce-tabs .panel {
    margin: 0 !important;
    padding: 28px !important;

    background: #ffffff;

    border: 1px solid #b8c9db;
    border-radius: 16px;

    box-shadow:
        0 13px 32px rgba(15, 42, 67, .10);
}


.mesa-pdp-description {
    color: #0F2A43;
}

.mesa-pdp-description-head {
    max-width: 760px;
    margin-bottom: 30px;
}

.mesa-pdp-description-head h2 {
    margin: 5px 0 10px;

    color: #0F2A43;

    font-size: 30px;
    line-height: 1.15;
    letter-spacing: -.02em;
}

.mesa-pdp-description-head p {
    margin: 0;

    color: #60758a;

    font-size: 14px;
    line-height: 1.65;
}

.mesa-pdp-section {
    margin-top: 28px;
}

.mesa-pdp-section-title {
    margin-bottom: 14px;
}

.mesa-pdp-section-title > span {
    color: #2563EB;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .055em;
}

.mesa-pdp-section-title h3 {
    margin: 4px 0 0;

    color: #0F2A43;

    font-size: 21px;
    line-height: 1.2;
}

.mesa-pdp-spec-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 10px;
}

.mesa-pdp-spec-card {
    padding: 17px;

    display: flex;
    flex-direction: column;

    gap: 6px;

    background: #edf4ff;

    border: 1px solid #c7d8ed;
    border-radius: 12px;
}

.mesa-pdp-spec-card span {
    color: #2563EB;

    font-size: 10px;
    font-weight: 700;
}

.mesa-pdp-spec-card strong {
    color: #0F2A43;

    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}


.mesa-pdp-preparation-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 10px;
}

.mesa-pdp-preparation-grid > div {
    min-height: 145px;

    padding: 16px;

    display: flex;
    flex-direction: column;

    background: #f7f9fc;

    border: 1px solid #d4dfea;
    border-radius: 12px;
}

.mesa-pdp-preparation-grid b {
    margin-bottom: 18px;

    color: #2563EB;

    font-size: 10px;
}

.mesa-pdp-preparation-grid strong {
    margin-bottom: 7px;

    color: #0F2A43;

    font-size: 13px;
}

.mesa-pdp-preparation-grid span {
    color: #687c90;

    font-size: 11.5px;
    line-height: 1.5;
}

.mesa-pdp-description-copy {
    padding: 22px;

    background: #f7f9fc;

    border: 1px solid #d4dfea;
    border-radius: 13px;
}

.mesa-pdp-copy {
    max-width: 850px;

    color: #556b80;

    font-size: 13.5px;
    line-height: 1.75;
}

.mesa-pdp-copy p:last-child {
    margin-bottom: 0;
}


body.single-product div.product .related {
    grid-column: 1 / -1;
    margin-top: 18px;
}

body.single-product .related > h2 {
    margin: 0 0 17px;

    color: #0F2A43;

    font-size: 28px;
    letter-spacing: -.02em;
}

body.single-product .related ul.products {
    display: grid !important;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 17px;
}

body.single-product .related ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    padding: 0 0 15px !important;

    overflow: hidden;

    background: #ffffff;

    border: 1px solid #b7c9dc;
    border-radius: 14px;

    box-shadow:
        0 11px 27px rgba(15, 42, 67, .11);

    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

body.single-product .related li.product img {
    width: 100% !important;

    aspect-ratio: 4 / 3;

    margin: 0 0 13px !important;

    object-fit: contain;

    background: #f3f6f9;

    border-bottom: 1px solid #dce5ee;
}

body.single-product
.related
.woocommerce-loop-product__title {
    min-height: 44px;

    margin: 0 !important;
    padding: 0 14px !important;

    color: #0F2A43 !important;

    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

body.single-product .related .price {
    margin: 10px 14px 8px !important;

    color: #0F2A43 !important;

    font-size: 18px !important;
    font-weight: 700 !important;
}

body.single-product .related .button {
    margin: 2px 14px 0 !important;

    min-height: 38px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 13px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border-radius: 8px !important;

    font-size: 11.5px !important;
    font-weight: 700 !important;

    box-shadow:
        0 6px 15px rgba(37, 99, 235, .20);
}

@media (hover: hover) {
    body.single-product
    .related
    ul.products
    li.product:hover {
        transform: translateY(-3px);

        box-shadow:
            0 17px 36px rgba(15, 42, 67, .16);
    }
}


@media (max-width: 980px) {

    body.single-product div.product {
        padding-left: 20px;
        padding-right: 20px;

        grid-template-columns: 1fr;
    }

    body.single-product div.product .woocommerce-tabs,
    body.single-product div.product .related {
        grid-column: 1;
    }

    .mesa-pdp-spec-grid,
    .mesa-pdp-preparation-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


@media (max-width: 640px) {

    body.single-product .woocommerce-breadcrumb {
        padding:
            14px 12px 0;
    }

    body.single-product div.product {
        gap: 14px;

        padding:
            5px 10px 35px;
    }

    body.single-product .woocommerce-product-gallery {
        padding: 8px;

        border-radius: 13px;

        box-shadow:
            0 8px 22px rgba(15, 42, 67, .10);
    }

    body.single-product div.product .summary {
        padding: 18px;

        border-radius: 13px;

        box-shadow:
            0 8px 22px rgba(15, 42, 67, .10);
    }

    body.single-product .summary .product_title {
        font-size: 27px;
        line-height: 1.08;
    }

    .mesa-pdp-heading-specs {
        font-size: 13px;
    }

    body.single-product .summary .price {
        font-size: 23px !important;
    }

    .mesa-pdp-trust-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    body.single-product .summary form.cart {
        gap: 7px;
    }

    body.single-product .woocommerce-tabs ul.tabs {
        overflow-x: auto;

        padding-bottom: 2px !important;

        scrollbar-width: none;
    }

    body.single-product
    .woocommerce-tabs
    ul.tabs::-webkit-scrollbar {
        display: none;
    }

    body.single-product .woocommerce-tabs ul.tabs li {
        flex: 0 0 auto;
    }

    body.single-product .woocommerce-tabs .panel {
        padding: 18px !important;

        border-radius: 13px;
    }

    .mesa-pdp-description-head {
        margin-bottom: 22px;
    }

    .mesa-pdp-description-head h2 {
        font-size: 24px;
    }

    .mesa-pdp-spec-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .mesa-pdp-spec-card {
        padding: 13px;
    }

    .mesa-pdp-preparation-grid {
        grid-template-columns: 1fr;
    }

    .mesa-pdp-preparation-grid > div {
        min-height: 0;
    }

    .mesa-pdp-preparation-grid b {
        margin-bottom: 10px;
    }

    .mesa-pdp-description-copy {
        padding: 16px;
    }

    body.single-product .related > h2 {
        font-size: 24px;
    }

    body.single-product .related ul.products {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 10px;
    }

    body.single-product
    .related
    .woocommerce-loop-product__title {
        min-height: 54px;

        padding: 0 10px !important;

        font-size: 12.5px !important;
    }

    body.single-product .related .price {
        margin: 8px 10px 7px !important;

        font-size: 16px !important;
    }

    body.single-product .related .button {
        margin: 2px 10px 0 !important;
    }
}

/* === MESA PRODUCT PREMIUM V1 END === */

/* === MESA PRODUCT MOBILE FIX V2 START === */

@media (max-width: 640px) {

    /*
     * Empêche toute ancienne largeur desktop
     * de forcer un débordement horizontal.
     */
    body.single-product,
    body.single-product #page,
    body.single-product #content,
    body.single-product #primary,
    body.single-product main.site-main {
        max-width: 100%;
        overflow-x: hidden;
    }

    body.single-product div.product {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin-left: 0 !important;
        margin-right: 0 !important;

        padding-left: 10px !important;
        padding-right: 10px !important;

        box-sizing: border-box;

        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    /*
     * Galerie et carte achat réellement limitées
     * à la largeur du téléphone.
     */
    body.single-product
    div.product
    .woocommerce-product-gallery,

    body.single-product
    div.product
    .summary {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        box-sizing: border-box !important;

        float: none !important;
    }

    /*
     * Aucun contenu interne ne doit agrandir
     * artificiellement la carte.
     */
    body.single-product .summary > *,
    .mesa-pdp-heading,
    .mesa-pdp-overview,
    .mesa-pdp-trust-grid,
    .mesa-pdp-trust-item,
    .mesa-pdp-delivery {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /*
     * Les tuiles restent bien en 2 colonnes,
     * sans dépasser.
     */
    .mesa-pdp-trust-grid {
        width: 100%;
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

    .mesa-pdp-trust-item {
        overflow-wrap: anywhere;
    }

    /*
     * Textes longs.
     */
    .mesa-pdp-prepared,
    .mesa-pdp-delivery span,
    .mesa-pdp-heading-specs {
        overflow-wrap: anywhere;
    }

    /*
     * Quantité + bouton panier.
     */
    body.single-product
    .summary
    form.cart {
        width: 100%;
        max-width: 100%;

        display: grid !important;
        grid-template-columns: 58px minmax(0, 1fr) !important;

        box-sizing: border-box;
    }

    body.single-product
    .summary
    .quantity {
        width: 58px !important;
        min-width: 0 !important;
    }

    body.single-product
    .summary
    .quantity input {
        width: 58px !important;
        max-width: 58px !important;
    }

    body.single-product
    .summary
    .single_add_to_cart_button {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    /*
     * Boutons Stripe / PayPal / wallets.
     * On évite qu'un iframe ou conteneur impose
     * une largeur desktop.
     */
    body.single-product .summary iframe,
    body.single-product .summary button,
    body.single-product .summary [class*="stripe"],
    body.single-product .summary [class*="paypal"],
    body.single-product .summary [class*="payment"],
    body.single-product .summary [class*="express"] {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

}

/* === MESA PRODUCT MOBILE FIX V2 END === */

/* === MESA PRODUCT MOBILE CART FIX V3 START === */

@media (max-width: 640px) {

    body.single-product
    div.product
    .summary
    form.cart {
        width: 100% !important;
        max-width: 100% !important;

        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;

        gap: 8px !important;

        box-sizing: border-box !important;
    }

    body.single-product
    div.product
    .summary
    form.cart > .quantity {
        flex: 0 0 58px !important;

        width: 58px !important;
        min-width: 58px !important;
        max-width: 58px !important;

        margin: 0 !important;
        float: none !important;
    }

    body.single-product
    div.product
    .summary
    form.cart > .quantity input {
        width: 58px !important;
        min-width: 58px !important;
        max-width: 58px !important;

        margin: 0 !important;
    }

    body.single-product
    div.product
    .summary
    form.cart >
    button.single_add_to_cart_button {
        flex: 1 1 auto !important;

        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;

        margin: 0 !important;
        float: none !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        white-space: nowrap;
    }
}

/* === MESA PRODUCT MOBILE CART FIX V3 END === */

/* === MESA PDP MOBILE PREPARATION 2X2 START === */

@media (max-width: 640px) {

    .mesa-pdp-preparation-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 8px !important;
    }

    .mesa-pdp-preparation-grid > div {
        min-height: 0 !important;

        padding: 12px !important;

        border-radius: 10px;
    }

    .mesa-pdp-preparation-grid b {
        margin-bottom: 8px !important;

        font-size: 9px;
    }

    .mesa-pdp-preparation-grid strong {
        margin-bottom: 5px;

        font-size: 12px;
        line-height: 1.25;
    }

    .mesa-pdp-preparation-grid span {
        font-size: 10.5px;
        line-height: 1.4;
    }
}

/* === MESA PDP MOBILE PREPARATION 2X2 END === */

/* === MESA RELATED PRODUCTS PREMIUM V2 START === */

body.single-product .related ul.products li.product {
    position: relative;
}

body.single-product
.related
li.product
.woocommerce-LoopProduct-link {
    position: relative;
    display: block;
}

/* Badge Reconditionné */
.mesa-related-badge,
.mesa-related-condition {
    position: absolute;
    z-index: 5;
    top: 8px;

    padding: 5px 7px;

    border-radius: 7px;

    font-size: 8px;
    font-weight: 750;
    line-height: 1;

    box-shadow:
        0 2px 6px rgba(15, 42, 67, .08);
}

.mesa-related-badge {
    left: 8px;

    background: #e5efff;
    color: #2563EB;

    border: 1px solid #bfd1ec;

    text-transform: uppercase;
    letter-spacing: .03em;
}

.mesa-related-condition {
    right: 8px;

    background: rgba(255, 255, 255, .96);
    color: #50667b;

    border: 1px solid #d0dbe6;
}


/* Modèle */
body.single-product
.related
.woocommerce-loop-product__title {
    min-height: auto !important;

    margin: 0 !important;
    padding: 0 14px !important;

    color: #0F2A43 !important;

    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}


/* Caractéristiques */
.mesa-related-specs {
    min-height: 35px;

    margin-top: 5px;
    padding: 0 14px;

    color: #617489;

    font-size: 11px;
    font-weight: 500;
    line-height: 1.4;
}


/* Stock */
.mesa-related-stock {
    margin: 8px 14px 0;

    display: flex;
    align-items: center;
    gap: 6px;

    font-size: 10.5px;
    font-weight: 650;
}

.mesa-related-stock > span {
    width: 6px;
    height: 6px;

    flex: 0 0 6px;

    border-radius: 50%;
}

.mesa-related-stock.is-in-stock {
    color: #15803D;
}

.mesa-related-stock.is-in-stock > span {
    background: #15803D;
}

.mesa-related-stock.is-out-stock {
    color: #b91c1c;
}

.mesa-related-stock.is-out-stock > span {
    background: #b91c1c;
}


/* Prix */
body.single-product .related .price {
    margin: 9px 14px 8px !important;

    color: #0F2A43 !important;

    font-size: 17px !important;
    font-weight: 700 !important;
}


/* Bouton */
body.single-product .related .mesa-related-view {
    min-height: 38px;

    margin: 2px 14px 0 !important;
    padding: 0 13px !important;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    background: #2563EB !important;
    color: #ffffff !important;

    border-radius: 8px !important;

    font-size: 11px !important;
    font-weight: 700 !important;

    box-shadow:
        0 6px 15px rgba(37, 99, 235, .20);
}


/* Mobile */
@media (max-width: 640px) {

    body.single-product
    .related
    .woocommerce-loop-product__title {
        padding: 0 10px !important;

        font-size: 12.5px !important;
    }

    .mesa-related-specs {
        min-height: 34px;

        padding: 0 10px;

        font-size: 10px;
        line-height: 1.35;
    }

    .mesa-related-stock {
        margin: 7px 10px 0;

        font-size: 10px;
    }

    body.single-product .related .price {
        margin: 8px 10px 7px !important;

        font-size: 16px !important;
    }

    body.single-product
    .related
    .mesa-related-view {
        width: calc(100% - 20px);

        margin: 2px 10px 0 !important;

        box-sizing: border-box;
    }

    .mesa-related-badge,
    .mesa-related-condition {
        top: 6px;

        padding: 4px 5px;

        font-size: 7px;
    }

    .mesa-related-badge {
        left: 6px;
    }

    .mesa-related-condition {
        right: 6px;
    }
}

/* === MESA RELATED PRODUCTS PREMIUM V2 END === */

/* === MESA MOBILE FOOTER ACCORDION V1 START === */

@media (max-width: 640px) {

    .mesa-footer {
        padding-top: 30px;
    }

    .mesa-footer-grid {
        display: block !important;
        padding-bottom: 18px;
    }

    /* Logo et présentation MESA toujours visibles */
    .mesa-footer-brand {
        margin-bottom: 22px;
    }

    /* Rubriques accordéon */
    .mesa-footer-grid > div:not(.mesa-footer-brand) {
        width: 100%;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 !important;

        border-top: 1px solid rgba(255, 255, 255, .12);
    }

    .mesa-footer-mobile-toggle {
        position: relative;

        margin: 0 !important;
        padding: 15px 36px 15px 0 !important;

        color: #ffffff !important;

        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.2;

        cursor: pointer;
        user-select: none;
    }

    /* + à droite */
    .mesa-footer-mobile-toggle::after {
        content: "+";

        position: absolute;
        right: 3px;
        top: 50%;

        transform: translateY(-50%);

        color: #8fb6ff;

        font-size: 21px;
        font-weight: 400;
        line-height: 1;
    }

    /* − lorsque la rubrique est ouverte */
    .mesa-footer-grid > div.is-open
    > .mesa-footer-mobile-toggle::after {
        content: "−";
    }

    /* Fermé par défaut */
    .mesa-footer-mobile-content {
        display: none !important;
    }

    /* Affichage de la rubrique ouverte */
    .mesa-footer-grid > div.is-open
    > .mesa-footer-mobile-content {
        display: block !important;
    }

    /* Contenu de l'accordéon */
    .mesa-footer-grid > div.is-open > ul {
        padding-bottom: 13px;
    }

    .mesa-footer-grid > div.is-open > p {
        margin: 0 0 12px !important;
        padding: 0 !important;
    }

    .mesa-footer-grid > div.is-open
    > .mesa-footer-consulting {
        margin: 0 0 15px !important;
    }

    .mesa-footer li {
        margin: 0 !important;
        padding: 5px 0;
    }

    .mesa-footer li a {
        font-size: 12px;
    }

    /* Bas du footer plus compact */
    .mesa-footer-bottom {
        min-height: 0;
    }

    .mesa-footer-bottom .mesa-container {
        padding-top: 14px;
        padding-bottom: 14px;

        flex-direction: column;
        align-items: flex-start;

        gap: 7px;
    }
}

/* === MESA MOBILE FOOTER ACCORDION V1 END === */

/* === MESA FINDER PREMIUM V2 START === */

/* Fond général cohérent avec le catalogue */
.mesa-pc-finder {
    background:
        linear-gradient(
            135deg,
            #e4edf6 0%,
            #eef4f9 50%,
            #e5eef7 100%
        );
}

/* Introduction légèrement plus présente */
.mesa-pc-finder-hero {
    padding-top: 42px;
    padding-bottom: 26px;
}

.mesa-pc-finder-hero h1 {
    color: #0F2A43;
    letter-spacing: -.025em;
}

.mesa-pc-finder-intro {
    max-width: 680px;
    color: #61758a;
}

/* Zone principale */
.mesa-pc-finder-content {
    padding-top: 6px;
    padding-bottom: 72px;
}

/* Carte centrale plus large et plus premium */
.mesa-finder-card {
    width: min(820px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;

    padding: 34px;

    background: #ffffff;

    border: 1px solid #b7c9dc;
    border-radius: 18px;

    box-shadow:
        0 18px 42px rgba(15, 42, 67, .14),
        0 5px 12px rgba(15, 42, 67, .05);
}

/* Titres des étapes */
.mesa-finder-step h2,
.mesa-finder-results h2 {
    color: #0F2A43;

    font-size: 25px;
    line-height: 1.18;
    letter-spacing: -.015em;
}

.mesa-finder-step-intro,
.mesa-finder-results > p {
    color: #65798d;
}

/* === FIN BLOC 4 FINDER V2 === */

/* === MESA FINDER TILES V2 START === */

/* Toutes les réponses deviennent de vraies tuiles */
.mesa-finder-option {
    min-height: 82px;

    padding: 14px 46px 14px 14px;

    background: #ffffff;

    border: 1px solid #b8c9dc;
    border-radius: 13px;

    box-shadow:
        0 9px 22px rgba(15, 42, 67, .10),
        0 2px 6px rgba(15, 42, 67, .04);

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}

/* Icône plus présente */
.mesa-finder-option-icon {
    width: 46px;
    height: 46px;

    flex: 0 0 46px;

    border-radius: 12px;

    background: #e5efff;
    color: #2563EB;

    font-size: 22px;
}

/* Titre */
.mesa-finder-option strong {
    color: #0F2A43;

    font-size: 14px;
    font-weight: 700;
}

/* Description */
.mesa-finder-option small {
    margin-top: 3px;

    color: #65798d;

    font-size: 11.5px;
    line-height: 1.4;
}

/* Cercle de sélection */
.mesa-finder-option::after {
    width: 22px;
    height: 22px;

    right: 15px;

    border: 2px solid #b6c7d9;

    background: #ffffff;

    box-shadow: 0 2px 5px rgba(15, 42, 67, .06);
}


/* =========================================================
   CHOIX SELECTIONNE
   ========================================================= */

.mesa-finder-option.is-selected {
    background: #eaf2ff !important;

    border-color: #2563EB !important;

    box-shadow:
        0 12px 28px rgba(37, 99, 235, .17),
        0 3px 8px rgba(15, 42, 67, .06);
}

/* Petit cercle bleu avec coche */
.mesa-finder-option.is-selected::after {
    content: "✓";

    display: flex;
    align-items: center;
    justify-content: center;

    background: #2563EB;
    border-color: #2563EB;

    color: #ffffff;

    font-size: 13px;
    font-weight: 800;

    transform: translateY(-50%);
}

/* Icône sélectionnée */
.mesa-finder-option.is-selected
.mesa-finder-option-icon {
    background: #d6e6ff;
    color: #1d4ed8;
}


/* =========================================================
   SURVOL DESKTOP
   ========================================================= */

@media (hover: hover) {

    .mesa-finder-option:hover {
        transform: translateY(-3px);

        border-color: #9fb6d0;

        box-shadow:
            0 14px 30px rgba(15, 42, 67, .14),
            0 4px 9px rgba(15, 42, 67, .06);
    }

    .mesa-finder-option.is-selected:hover {
        border-color: #1d4ed8;

        box-shadow:
            0 16px 34px rgba(37, 99, 235, .21);
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {

    .mesa-finder-option {
        min-height: 76px;

        padding:
            12px 42px 12px 12px;
    }

    .mesa-finder-option-icon {
        width: 42px;
        height: 42px;

        flex-basis: 42px;

        font-size: 20px;
    }

    .mesa-finder-option strong {
        font-size: 13px;
    }

    .mesa-finder-option small {
        font-size: 11px;
    }
}

/* === MESA FINDER TILES V2 END === */

/* === MESA FINDER PROGRESS V2 START === */

.mesa-finder-progress-labels {
    position: relative;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    gap: 8px;

    margin-top: 12px;
}

.mesa-finder-progress-labels span {
    position: relative;

    padding-top: 14px;

    color: #8a9bad;

    font-size: 10px;
    font-weight: 700;

    text-align: center;

    transition:
        color .18s ease,
        font-weight .18s ease;
}

/* Petit repère rond */
.mesa-finder-progress-labels span::before {
    content: "";

    position: absolute;

    top: 0;
    left: 50%;

    width: 7px;
    height: 7px;

    transform: translateX(-50%);

    border-radius: 50%;

    background: #c8d5e3;

    box-shadow:
        0 0 0 3px #ffffff;
}

/* Étape 1 */
.mesa-finder-card:has(
    .mesa-finder-step[data-step="1"].is-active
)
.mesa-finder-progress-labels
span:nth-child(1),

/* Étape 2 */
.mesa-finder-card:has(
    .mesa-finder-step[data-step="2"].is-active
)
.mesa-finder-progress-labels
span:nth-child(2),

/* Étape 3 */
.mesa-finder-card:has(
    .mesa-finder-step[data-step="3"].is-active
)
.mesa-finder-progress-labels
span:nth-child(3),

/* Étape 4 */
.mesa-finder-card:has(
    .mesa-finder-step[data-step="4"].is-active
)
.mesa-finder-progress-labels
span:nth-child(4) {
    color: #2563EB;
    font-weight: 800;
}

.mesa-finder-card:has(
    .mesa-finder-step[data-step="1"].is-active
)
.mesa-finder-progress-labels
span:nth-child(1)::before,

.mesa-finder-card:has(
    .mesa-finder-step[data-step="2"].is-active
)
.mesa-finder-progress-labels
span:nth-child(2)::before,

.mesa-finder-card:has(
    .mesa-finder-step[data-step="3"].is-active
)
.mesa-finder-progress-labels
span:nth-child(3)::before,

.mesa-finder-card:has(
    .mesa-finder-step[data-step="4"].is-active
)
.mesa-finder-progress-labels
span:nth-child(4)::before {
    background: #2563EB;

    box-shadow:
        0 0 0 4px #dce9fb;
}


/* Mobile : on conserve les noms mais plus compacts */
@media (max-width: 640px) {

    .mesa-finder-progress-labels {
        gap: 2px;
        margin-top: 10px;
    }

    .mesa-finder-progress-labels span {
        padding-top: 12px;

        font-size: 8.5px;
    }

    .mesa-finder-progress-labels span::before {
        width: 6px;
        height: 6px;
    }
}

/* === MESA FINDER PROGRESS V2 END === */

/* === MESA FINDER STEPS 2-4 V2 START === */

/* Choix compacts des étapes Budget / Taille / Performance */
.mesa-finder-options-compact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.mesa-finder-options-compact .mesa-finder-option {
    min-height: 62px;

    padding:
        13px 44px 13px 16px;

    display: flex;
    align-items: center;

    text-align: left;
}

.mesa-finder-options-compact
.mesa-finder-option strong {
    width: 100%;

    margin: 0;

    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}

/* Les choix texte seuls restent bien centrés verticalement */
.mesa-finder-options-compact
.mesa-finder-option:not(:has(small)) {
    align-items: center;
}


/* =========================================================
   BOUTON RETOUR
   ========================================================= */

.mesa-finder-back {
    min-height: 40px;

    margin-top: 18px;
    padding: 0 15px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    background: #ffffff;
    color: #2563EB;

    border: 1px solid #b8c9dc;
    border-radius: 9px;

    font-size: 12px;
    font-weight: 700;

    box-shadow:
        0 5px 13px rgba(15, 42, 67, .07);

    transition:
        transform .18s ease,
        background-color .18s ease,
        border-color .18s ease;
}

@media (hover: hover) {

    .mesa-finder-back:hover {
        transform: translateY(-1px);

        background: #edf4ff;
        border-color: #9fb6d0;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {

    .mesa-finder-card {
        width: calc(100% - 20px);

        padding: 20px 14px;
    }

    .mesa-finder-options-compact {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .mesa-finder-options-compact
    .mesa-finder-option {
        min-height: 56px;

        padding:
            11px 42px 11px 13px;
    }

    .mesa-finder-back {
        width: 100%;
        margin-top: 14px;
    }
}

/* === MESA FINDER STEPS 2-4 V2 END === */

/* === MESA FINDER REASSURANCE V2 START === */

/*
 * Message discret sous l'étape active.
 */
.mesa-finder-step::after {
    content: "✓ Vos réponses servent uniquement à vous proposer les PC les plus adaptés.";

    display: flex;
    align-items: center;

    margin-top: 20px;
    padding: 11px 13px;

    background: #f5f8fc;

    border: 1px solid #d2deea;
    border-radius: 10px;

    color: #65798d;

    font-size: 11px;
    font-weight: 500;
    line-height: 1.4;
}

/*
 * La coche reste en bleu MESA grâce à la couleur générale
 * du message suffisamment neutre.
 */
.mesa-finder-step.is-active::after {
    box-shadow:
        0 4px 12px rgba(15, 42, 67, .05);
}


/* Mobile */
@media (max-width: 640px) {

    .mesa-finder-step::after {
        margin-top: 15px;
        padding: 10px 11px;

        font-size: 10px;
    }
}

/* === MESA FINDER REASSURANCE V2 END === */

/* === MESA FINDER RESULTS PREMIUM V3 START === */

/* =========================================================
   RESUME DE LA SELECTION
   ========================================================= */

.mesa-pc-finder .mesa-finder-profile {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

    gap: 10px !important;
    margin: 18px 0 26px !important;
}

.mesa-pc-finder .mesa-finder-profile > div,
.mesa-pc-finder .mesa-finder-profile > span {
    min-width: 0 !important;

    padding: 13px 14px !important;

    background:
        linear-gradient(
            135deg,
            #F4F8FF 0%,
            #EDF4FF 100%
        ) !important;

    border: 1px solid #C6D8ED !important;
    border-radius: 11px !important;

    box-shadow:
        0 4px 11px rgba(15, 42, 67, .055) !important;
}

.mesa-pc-finder .mesa-finder-profile strong {
    display: block !important;

    margin-bottom: 4px !important;

    color: #2563EB !important;

    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .035em !important;

    text-transform: uppercase !important;
}


/* =========================================================
   ZONE RECOMMANDATIONS
   ========================================================= */

.mesa-pc-finder .mesa-finder-recommendations {
    margin-top: 24px !important;
}

.mesa-pc-finder .mesa-finder-recommendations h3 {
    margin: 0 0 5px !important;

    color: #0F2A43 !important;

    font-size: 23px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: -.015em !important;
}

.mesa-pc-finder .mesa-finder-recommendations-intro {
    margin: 0 0 16px !important;

    color: #53687C !important;

    font-size: 13.5px !important;
    line-height: 1.5 !important;
}


/* =========================================================
   MESSAGE LORSQU'IL Y A DES ALTERNATIVES
   ========================================================= */

.mesa-pc-finder .mesa-finder-match-notice {
    display: grid !important;

    grid-template-columns: auto 1fr !important;

    gap: 4px 12px !important;

    margin: 0 0 16px !important;
    padding: 12px 14px !important;

    background: #F8FAFC !important;

    border: 1px solid #D5E1ED !important;
    border-left: 4px solid #2563EB !important;
    border-radius: 10px !important;
}

.mesa-pc-finder .mesa-finder-match-notice::before {
    content: "i";

    display: inline-flex !important;

    grid-row: 1 / span 2;

    align-items: center !important;
    justify-content: center !important;

    width: 23px !important;
    height: 23px !important;

    background: #E5EFFF !important;

    border-radius: 50% !important;

    color: #2563EB !important;

    font-size: 12px !important;
    font-weight: 800 !important;
}

.mesa-pc-finder .mesa-finder-match-notice strong {
    color: #0F2A43 !important;

    font-size: 12.5px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

.mesa-pc-finder .mesa-finder-match-notice span {
    color: #53687C !important;

    font-size: 11.5px !important;
    line-height: 1.45 !important;
}


/* =========================================================
   GRILLE DES 3 RECOMMANDATIONS
   ========================================================= */

.mesa-pc-finder .mesa-finder-product-grid {
    display: grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr)) !important;

    align-items: stretch !important;

    gap: 15px !important;
    margin-top: 17px !important;
}


/* =========================================================
   CARTE PRODUIT
   ========================================================= */

.mesa-pc-finder .mesa-finder-product {
    position: relative !important;

    display: flex !important;
    flex-direction: column !important;

    min-width: 0 !important;

    overflow: hidden !important;

    background: #FFFFFF !important;

    border: 1px solid #C7D7E7 !important;
    border-radius: 15px !important;

    box-shadow:
        0 7px 18px rgba(15, 42, 67, .075),
        0 2px 5px rgba(15, 42, 67, .035) !important;

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease !important;
}


/* Meilleur choix exact */

.mesa-pc-finder
.mesa-finder-product.is-best-match:not(.is-alternative) {
    border: 2px solid #2563EB !important;

    box-shadow:
        0 10px 25px rgba(37, 99, 235, .14),
        0 3px 8px rgba(15, 42, 67, .04) !important;
}


/* Alternatives */

.mesa-pc-finder
.mesa-finder-product.is-alternative {
    border-color: #D3DEE9 !important;
}


/* =========================================================
   IMAGE
   ========================================================= */

.mesa-pc-finder .mesa-finder-product-image {
    position: relative !important;

    display: block !important;

    padding: 9px !important;

    background:
        linear-gradient(
            180deg,
            #F8FAFC 0%,
            #F2F6FA 100%
        ) !important;

    border-bottom: 1px solid #DFE7EF !important;

    overflow: hidden !important;
}

.mesa-pc-finder .mesa-finder-product-image img {
    display: block !important;

    width: 100% !important;
    height: auto !important;

    aspect-ratio: 4 / 3 !important;

    object-fit: contain !important;

    background: #F5F7FA !important;

    border-radius: 9px !important;

    transition: transform .22s ease !important;
}


/* =========================================================
   BADGES
   ========================================================= */

.mesa-pc-finder .mesa-finder-best-match,
.mesa-pc-finder .mesa-finder-alternative-badge {
    position: absolute !important;

    z-index: 4 !important;

    top: 9px !important;
    left: 9px !important;

    display: inline-flex !important;

    align-items: center !important;

    max-width: calc(100% - 18px) !important;

    padding: 6px 8px !important;

    border-radius: 7px !important;

    font-size: 9px !important;
    font-weight: 800 !important;
    line-height: 1 !important;

    white-space: nowrap !important;
}


/* Meilleur choix */

.mesa-pc-finder .mesa-finder-best-match {
    background: #2563EB !important;

    border: 1px solid #2563EB !important;

    color: #FFFFFF !important;

    box-shadow:
        0 4px 10px rgba(37, 99, 235, .24) !important;
}


/* Badge alternatif */

.mesa-pc-finder .mesa-finder-alternative-badge,
.mesa-pc-finder
.mesa-finder-product.is-alternative
.mesa-finder-best-match {
    background: rgba(255, 255, 255, .96) !important;

    border: 1px solid #BACBDB !important;

    color: #52677B !important;

    box-shadow:
        0 3px 8px rgba(15, 42, 67, .09) !important;
}


/* =========================================================
   CORPS DE CARTE
   ========================================================= */

.mesa-pc-finder .mesa-finder-product-body {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;

    padding: 14px !important;
}

.mesa-pc-finder .mesa-finder-product h4 {
    margin: 0 0 9px !important;

    min-height: 39px !important;

    color: #0F2A43 !important;

    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
}


/* =========================================================
   CARACTERISTIQUES
   ========================================================= */

.mesa-pc-finder .mesa-finder-product-specs {
    display: flex !important;

    flex-wrap: wrap !important;

    align-content: flex-start !important;

    gap: 5px !important;

    min-height: 58px !important;

    margin: 0 0 13px !important;
}

.mesa-pc-finder .mesa-finder-product-specs span {
    display: inline-flex !important;

    align-items: center !important;

    min-height: 25px !important;

    padding: 4px 7px !important;

    background: #EDF4FF !important;

    border: 1px solid #D4E0ED !important;
    border-radius: 7px !important;

    color: #435A70 !important;

    font-size: 10px !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
}

/* =========================================================
   PRIX ET CTA
   ========================================================= */

.mesa-pc-finder .mesa-finder-product-bottom {
    display: flex !important;

    align-items: center !important;
    justify-content: space-between !important;

    gap: 8px !important;

    margin-top: auto !important;
    padding-top: 5px !important;
}

.mesa-pc-finder .mesa-finder-product-price {
    color: #0F2A43 !important;

    font-size: 19px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

.mesa-pc-finder .mesa-finder-product-button {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    min-height: 39px !important;

    padding: 8px 13px !important;

    background: #2563EB !important;

    border: 1px solid #2563EB !important;
    border-radius: 8px !important;

    color: #FFFFFF !important;

    font-size: 11px !important;
    font-weight: 800 !important;

    text-decoration: none !important;

    box-shadow:
        0 5px 13px rgba(37, 99, 235, .18) !important;
}


/* =========================================================
   SURVOL PC
   ========================================================= */

@media (hover: hover) {

    .mesa-pc-finder .mesa-finder-product:hover {
        transform: translateY(-3px) !important;

        border-color: #9FB7D0 !important;

        box-shadow:
            0 14px 30px rgba(15, 42, 67, .13) !important;
    }

    .mesa-pc-finder
    .mesa-finder-product.is-best-match:not(.is-alternative):hover {
        border-color: #1D4ED8 !important;

        box-shadow:
            0 15px 32px rgba(37, 99, 235, .18) !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:hover
    .mesa-finder-product-image img {
        transform: scale(1.018) !important;
    }

    .mesa-pc-finder
    .mesa-finder-product-button:hover {
        background: #1D4ED8 !important;
        border-color: #1D4ED8 !important;
    }
}


/* =========================================================
   MOBILE
   1 MEILLEUR CHOIX + 2 ALTERNATIVES COMPACTES
   ========================================================= */

@media (max-width: 980px) {

    .mesa-pc-finder .mesa-finder-profile {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 7px !important;

        margin: 13px 0 19px !important;
    }

    .mesa-pc-finder .mesa-finder-profile > div,
    .mesa-pc-finder .mesa-finder-profile > span {
        padding: 9px 10px !important;

        border-radius: 9px !important;
    }

    .mesa-pc-finder .mesa-finder-profile strong {
        margin-bottom: 3px !important;

        font-size: 9px !important;
    }


    .mesa-pc-finder
    .mesa-finder-recommendations {
        margin-top: 18px !important;
    }

    .mesa-pc-finder
    .mesa-finder-recommendations h3 {
        font-size: 19px !important;
    }

    .mesa-pc-finder
    .mesa-finder-recommendations-intro {
        margin-bottom: 12px !important;

        font-size: 12.5px !important;
    }


    /* Message alternatives */

    .mesa-pc-finder
    .mesa-finder-match-notice {
        display: grid !important;

        grid-template-columns: 22px 1fr !important;

        gap: 3px 8px !important;

        padding: 10px !important;

        margin-bottom: 12px !important;
    }

    .mesa-pc-finder
    .mesa-finder-match-notice::before {
        width: 22px !important;
        height: 22px !important;
    }

    .mesa-pc-finder
    .mesa-finder-match-notice strong {
        font-size: 11px !important;
    }

    .mesa-pc-finder
    .mesa-finder-match-notice span {
        font-size: 10px !important;
    }


    /* Grille 1 + 2 */

    .mesa-pc-finder
    .mesa-finder-product-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 9px !important;

        margin-top: 12px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child {
        grid-column: 1 / -1 !important;
    }


    /* =====================================================
       PREMIER CHOIX
       ===================================================== */

    .mesa-pc-finder
    .mesa-finder-product:first-child {
        border-radius: 13px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child
    .mesa-finder-product-image {
        padding: 8px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child
    .mesa-finder-product-image img {
        max-height: 165px !important;

        aspect-ratio: 16 / 10 !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child
    .mesa-finder-product-body {
        padding: 12px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child h4 {
        min-height: 0 !important;

        margin-bottom: 7px !important;

        font-size: 14px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child
    .mesa-finder-product-specs {
        min-height: 0 !important;

        margin-bottom: 11px !important;
    }


    /* =====================================================
       ALTERNATIVES 2 ET 3
       ===================================================== */

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2) {
        border-radius: 11px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-image {
        padding: 5px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-image img {
        width: 100% !important;

        max-height: 92px !important;

        aspect-ratio: 4 / 3 !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-body {
        padding: 8px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2) h4 {
        min-height: 34px !important;

        margin-bottom: 6px !important;

        font-size: 11.5px !important;
        line-height: 1.3 !important;
    }


    /* Trois caractéristiques suffisent sur les petites cartes */

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-specs {
        min-height: 0 !important;

        gap: 3px !important;

        margin-bottom: 8px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-specs span {
        min-height: 21px !important;

        padding: 3px 5px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-specs
    span:nth-child(n+4) {
        display: none !important;
    }


    /* Prix + bouton petites cartes */

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-bottom {
        display: grid !important;

        grid-template-columns: 1fr !important;

        gap: 7px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-price {
        font-size: 16px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-button {
        width: 100% !important;

        min-height: 34px !important;

        padding: 6px !important;

        font-size: 9.5px !important;
    }


    /* Badges mobile */

    .mesa-pc-finder .mesa-finder-best-match,
    .mesa-pc-finder .mesa-finder-alternative-badge {
        top: 7px !important;
        left: 7px !important;

        padding: 5px 6px !important;

        font-size: 8px !important;
    }
}

/* === MESA FINDER RESULTS PREMIUM V3 END === */

/* === MESA FINDER RESTART PREMIUM V2 START === */

.mesa-finder-restart {
    min-height: 42px;

    padding: 0 18px;

    background: #ffffff !important;
    color: #2563EB !important;

    border: 1px solid #9fb8d6 !important;
    border-radius: 9px;

    font-size: 12px;
    font-weight: 750;

    box-shadow:
        0 8px 18px rgba(15, 42, 67, .12),
        0 2px 6px rgba(15, 42, 67, .05);

    transition:
        transform .18s ease,
        border-color .18s ease,
        background-color .18s ease,
        box-shadow .18s ease;
}

@media (hover: hover) {

    .mesa-finder-restart:hover {
        transform: translateY(-2px);

        background: #edf4ff !important;
        border-color: #2563EB !important;

        box-shadow:
            0 12px 24px rgba(15, 42, 67, .16),
            0 4px 8px rgba(37, 99, 235, .08);
    }
}

@media (max-width: 640px) {

    .mesa-finder-restart {
        width: 100%;

        min-height: 44px;

        font-size: 13px;
    }
}

/* === MESA FINDER RESTART PREMIUM V2 END === */

/* === MESA FINDER ACCESSIBILITY V1 START === */

/* Textes secondaires principaux */
.mesa-pc-finder-intro,
.mesa-finder-step-intro,
.mesa-finder-results > p,
.mesa-finder-recommendations-intro {
    color: #4F6478 !important;

    font-weight: 500;
    line-height: 1.55;
}


/* Descriptions dans les choix */
.mesa-finder-option small {
    color: #53687C !important;

    font-weight: 500;
    line-height: 1.45;
}


/* Petites caractéristiques des recommandations */
.mesa-finder-product-specs span {
    color: #435A70 !important;

    font-weight: 600;
}


/* Résumé de sélection */
.mesa-finder-profile span,
.mesa-finder-profile div {
    color: #41586E;
}


/* Message de réassurance */
.mesa-finder-step::after {
    color: #4F6478 !important;

    font-weight: 500;
}


/* Étapes non actives */
.mesa-finder-progress-labels span {
    color: #687D91;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {

    .mesa-pc-finder-intro,
    .mesa-finder-step-intro,
    .mesa-finder-results > p,
    .mesa-finder-recommendations-intro {
        font-size: 13px !important;
    }

    .mesa-finder-option small {
        font-size: 11.5px !important;
    }

    .mesa-finder-product-specs span {
        font-size: 10.5px !important;
    }

    .mesa-finder-step::after {
        font-size: 11px !important;
    }

    .mesa-finder-progress-labels span {
        font-size: 9px;
        font-weight: 650;
    }
}

/* === MESA FINDER ACCESSIBILITY V1 END === */

/* === MESA FINDER MOBILE PROGRESS ACCESSIBILITY V1 START === */

@media (max-width: 640px) {

    .mesa-finder-progress-labels span {
        color: #53687C !important;

        font-size: 10px !important;
        font-weight: 650 !important;
        line-height: 1.2;
    }

    /* Étape active */
    .mesa-finder-card:has(
        .mesa-finder-step[data-step="1"].is-active
    )
    .mesa-finder-progress-labels
    span:nth-child(1),

    .mesa-finder-card:has(
        .mesa-finder-step[data-step="2"].is-active
    )
    .mesa-finder-progress-labels
    span:nth-child(2),

    .mesa-finder-card:has(
        .mesa-finder-step[data-step="3"].is-active
    )
    .mesa-finder-progress-labels
    span:nth-child(3),

    .mesa-finder-card:has(
        .mesa-finder-step[data-step="4"].is-active
    )
    .mesa-finder-progress-labels
    span:nth-child(4) {
        color: #2563EB !important;
        font-weight: 800 !important;
    }
}

/* === MESA FINDER MOBILE PROGRESS ACCESSIBILITY V1 END === */

/* === MESA ACCOUNT PREMIUM V1 START === */

/* Fond général */
body.woocommerce-account main.site-main,
body.woocommerce-account #primary {
    background: #e9f0f7;
}

/* Zone WooCommerce */
body.woocommerce-account .woocommerce {
    max-width: 1180px;
    margin: 0 auto;
    padding: 48px 20px 70px;

    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

body.woocommerce-account
.woocommerce-notices-wrapper {
    grid-column: 1 / -1;
}

/* Navigation gauche */
body.woocommerce-account
.woocommerce-MyAccount-navigation {
    width: 100% !important;
    float: none !important;

    padding: 12px;

    background: #ffffff;

    border: 1px solid #b7c9dc;
    border-radius: 16px;

    box-shadow:
        0 12px 28px rgba(15,42,67,.11);
}

body.woocommerce-account
.woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 0;

    list-style: none;
}

body.woocommerce-account
.woocommerce-MyAccount-navigation li {
    margin: 0;
}

body.woocommerce-account
.woocommerce-MyAccount-navigation a {
    display: block;

    padding: 12px 13px;

    color: #435a70;

    border-radius: 9px;

    font-size: 13px;
    font-weight: 650;

    text-decoration: none;

    transition:
        background-color .18s ease,
        color .18s ease,
        transform .18s ease;
}

body.woocommerce-account
.woocommerce-MyAccount-navigation
li.is-active a {
    background: #2563EB;
    color: #ffffff;

    box-shadow:
        0 7px 16px rgba(37,99,235,.22);
}

@media (hover: hover) {
    body.woocommerce-account
    .woocommerce-MyAccount-navigation
    li:not(.is-active) a:hover {
        background: #edf4ff;
        color: #2563EB;

        transform: translateX(2px);
    }
}

/* Contenu principal */
body.woocommerce-account
.woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;

    min-width: 0;

    padding: 28px;

    background: #ffffff;

    border: 1px solid #b7c9dc;
    border-radius: 16px;

    box-shadow:
        0 14px 34px rgba(15,42,67,.11);
}

/* En-tête dashboard */
.mesa-account-dashboard-head {
    margin-bottom: 25px;
}

.mesa-account-eyebrow {
    display: block;

    margin-bottom: 7px;

    color: #2563EB;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .055em;
}

.mesa-account-dashboard-head h1 {
    margin: 0 0 8px;

    color: #0F2A43;

    font-size: 31px;
    line-height: 1.1;
    letter-spacing: -.02em;
}

.mesa-account-dashboard-head p {
    max-width: 650px;

    margin: 0;

    color: #4F6478;

    font-size: 14px;
    font-weight: 500;
    line-height: 1.6;
}

/* Tuiles dashboard */
.mesa-account-dashboard-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 14px;
}

.mesa-account-dashboard-card {
    min-height: 170px;

    padding: 19px;

    display: flex;
    gap: 15px;

    background: #f7f9fc;

    border: 1px solid #c6d5e4;
    border-radius: 13px;

    color: inherit;
    text-decoration: none;

    box-shadow:
        0 7px 18px rgba(15,42,67,.07);

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.mesa-account-card-icon {
    width: 46px;
    height: 46px;

    flex: 0 0 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #e4efff;

    border-radius: 11px;

    font-size: 21px;
}

.mesa-account-card-label {
    display: block;

    margin-bottom: 5px;

    color: #2563EB;

    font-size: 9px;
    font-weight: 800;
    letter-spacing: .05em;
}

.mesa-account-dashboard-card h2 {
    margin: 0 0 7px;

    color: #0F2A43;

    font-size: 17px;
    line-height: 1.2;
}

.mesa-account-dashboard-card p {
    margin: 0 0 13px;

    color: #53687C;

    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
}

.mesa-account-dashboard-card strong {
    color: #2563EB;

    font-size: 11.5px;
    font-weight: 750;
}

.mesa-account-dashboard-card-sav {
    background: #edf4ff;
    border-color: #9fbce0;
}

@media (hover: hover) {
    .mesa-account-dashboard-card:hover {
        transform: translateY(-3px);

        border-color: #2563EB;

        box-shadow:
            0 14px 30px rgba(15,42,67,.13);
    }
}

/* === FIN BLOC 4A ACCOUNT === */

/* === MESA ACCOUNT LAYOUT FIX V1 START === */

/*
 * WooCommerce utilise historiquement des largeurs / floats
 * sur Mon compte. Flexbox est plus robuste ici que CSS Grid.
 */
body.woocommerce-account
main.site-main > .woocommerce,

body.woocommerce-account
#primary > .woocommerce {

    width: 100% !important;
    max-width: 1180px !important;

    margin: 0 auto !important;
    padding: 48px 20px 70px !important;

    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;

    gap: 24px !important;

    box-sizing: border-box !important;
}


/* Messages WooCommerce éventuels */
body.woocommerce-account
.woocommerce-notices-wrapper {
    flex: 0 0 100% !important;
    width: 100% !important;
}


/* Menu gauche */
body.woocommerce-account
.woocommerce-MyAccount-navigation {

    order: 1 !important;

    flex: 0 0 250px !important;

    width: 250px !important;
    max-width: 250px !important;
    min-width: 250px !important;

    float: none !important;

    box-sizing: border-box !important;
}


/* Contenu principal */
body.woocommerce-account
.woocommerce-MyAccount-content {

    order: 2 !important;

    flex: 1 1 0 !important;

    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;

    float: none !important;

    box-sizing: border-box !important;
}


/* Le dashboard exploite toute sa colonne */
.mesa-account-dashboard {
    width: 100%;
    min-width: 0;
}

.mesa-account-dashboard-grid {
    width: 100%;

    grid-template-columns:
        repeat(2, minmax(0, 1fr)) !important;
}


/* Tablette / mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    main.site-main > .woocommerce,

    body.woocommerce-account
    #primary > .woocommerce {

        display: block !important;

        padding:
            24px 12px 45px !important;
    }

    body.woocommerce-account
    .woocommerce-MyAccount-navigation {

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin-bottom: 14px !important;
    }

    body.woocommerce-account
    .woocommerce-MyAccount-content {

        width: 100% !important;
        max-width: 100% !important;

        padding: 18px !important;
    }

    .mesa-account-dashboard-grid {
        grid-template-columns: 1fr !important;
    }
}

/* === MESA ACCOUNT LAYOUT FIX V1 END === */

/* === MESA ACCOUNT LOGIN V1 START === */

/*
 * La page de connexion ne doit PAS utiliser
 * la disposition menu + contenu du compte connecté.
 */
body.woocommerce-account:not(.logged-in)
main.site-main > .woocommerce,

body.woocommerce-account:not(.logged-in)
#primary > .woocommerce {

    display: block !important;

    width: 100% !important;
    max-width: 620px !important;

    margin: 0 auto !important;
    padding: 55px 20px 70px !important;

    box-sizing: border-box !important;
}


/* Fond */
body.woocommerce-account:not(.logged-in)
main.site-main,

body.woocommerce-account:not(.logged-in)
#primary {
    background: #e9f0f7;
}


/* Titre */
body.woocommerce-account:not(.logged-in)
.woocommerce > h2 {

    margin: 0 0 18px !important;

    color: #0F2A43;

    font-size: 30px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.02em;
}


/* Carte connexion */
body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login {

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 26px !important;

    background: #ffffff !important;

    border: 1px solid #b7c9dc !important;
    border-radius: 16px !important;

    box-shadow:
        0 14px 34px rgba(15, 42, 67, .12);

    box-sizing: border-box !important;
}


/* Paragraphes du formulaire */
body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login p {

    width: 100% !important;
    max-width: 100% !important;

    margin-bottom: 16px;

    box-sizing: border-box;
}


/* Labels */
body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login label {

    display: block;

    margin-bottom: 7px;

    color: #0F2A43;

    font-size: 13px;
    font-weight: 700;
}


/* Champs */
body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login input[type="text"],

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login input[type="email"],

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login input[type="password"] {

    width: 100% !important;
    max-width: 100% !important;

    min-height: 48px;

    padding: 0 13px !important;

    background: #ffffff;

    border: 1.5px solid #adc1d5;
    border-radius: 9px;

    color: #0F2A43;

    box-sizing: border-box !important;
}


/* Conteneur du mot de passe WooCommerce */
body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login
.password-input {

    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
}


/* Focus accessible */
body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login input:focus {

    border-color: #2563EB;

    outline: 3px solid rgba(37, 99, 235, .14);
    outline-offset: 1px;
}


/* Se souvenir de moi */
body.woocommerce-account:not(.logged-in)
.woocommerce-form-login__rememberme {

    display: flex !important;
    align-items: center;

    gap: 8px;

    color: #4F6478;
}


/* Bouton connexion */
body.woocommerce-account:not(.logged-in)
.woocommerce-form-login__submit {

    width: 100% !important;
    min-height: 48px;

    margin: 5px 0 0 !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 9px !important;

    font-size: 13px !important;
    font-weight: 700 !important;

    box-shadow:
        0 9px 20px rgba(37, 99, 235, .23);
}


/* Mot de passe perdu */
body.woocommerce-account:not(.logged-in)
.woocommerce-LostPassword {

    margin: 17px 0 0 !important;

    text-align: center;
}

body.woocommerce-account:not(.logged-in)
.woocommerce-LostPassword a {

    color: #2563EB;

    font-size: 12.5px;
    font-weight: 650;
}


/* Mobile */
@media (max-width: 640px) {

    body.woocommerce-account:not(.logged-in)
    main.site-main > .woocommerce,

    body.woocommerce-account:not(.logged-in)
    #primary > .woocommerce {

        width: 100% !important;
        max-width: 100% !important;

        padding:
            34px 10px 50px !important;
    }

    body.woocommerce-account:not(.logged-in)
    .woocommerce > h2 {

        margin-left: 2px !important;

        font-size: 25px;
    }

    body.woocommerce-account:not(.logged-in)
    form.woocommerce-form-login {

        padding: 18px !important;

        border-radius: 13px !important;
    }

    body.woocommerce-account:not(.logged-in)
    form.woocommerce-form-login input[type="text"],

    body.woocommerce-account:not(.logged-in)
    form.woocommerce-form-login input[type="email"],

    body.woocommerce-account:not(.logged-in)
    form.woocommerce-form-login input[type="password"] {

        min-height: 48px;

        font-size: 16px;
    }

}

/* === MESA ACCOUNT LOGIN V1 END === */

/* === MESA ACCOUNT LOGIN V1 START === */

body.woocommerce-account:not(.logged-in)
main.site-main > .woocommerce,
body.woocommerce-account:not(.logged-in)
#primary > .woocommerce {
    display: block !important;
    width: 100% !important;
    max-width: 620px !important;
    margin: 0 auto !important;
    padding: 55px 20px 70px !important;
    box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in)
main.site-main,
body.woocommerce-account:not(.logged-in)
#primary {
    background: #e9f0f7;
}

body.woocommerce-account:not(.logged-in)
.woocommerce > h2 {
    margin: 0 0 18px !important;
    color: #0F2A43;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.15;
}

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 26px !important;
    background: #ffffff !important;
    border: 1px solid #b7c9dc !important;
    border-radius: 16px !important;
    box-shadow: 0 14px 34px rgba(15,42,67,.12);
    box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login p {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 16px;
    box-sizing: border-box;
}

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login label {
    display: block;
    margin-bottom: 7px;
    color: #0F2A43;
    font-size: 13px;
    font-weight: 700;
}

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login input[type="text"],
body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login input[type="email"],
body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login input[type="password"] {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px;
    padding: 0 13px !important;
    background: #ffffff;
    border: 1.5px solid #adc1d5;
    border-radius: 9px;
    color: #0F2A43;
    box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login .password-input {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login input:focus {
    border-color: #2563EB;
    outline: 3px solid rgba(37,99,235,.14);
    outline-offset: 1px;
}

body.woocommerce-account:not(.logged-in)
.woocommerce-form-login__rememberme {
    display: flex !important;
    align-items: center;
    gap: 8px;
    color: #4F6478;
}

body.woocommerce-account:not(.logged-in)
.woocommerce-form-login__submit {
    width: 100% !important;
    min-height: 48px;
    margin: 5px 0 0 !important;
    background: #2563EB !important;
    color: #ffffff !important;
    border: 0 !important;
    border-radius: 9px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    box-shadow: 0 9px 20px rgba(37,99,235,.23);
}

body.woocommerce-account:not(.logged-in)
.woocommerce-LostPassword {
    margin: 17px 0 0 !important;
    text-align: center;
}

body.woocommerce-account:not(.logged-in)
.woocommerce-LostPassword a {
    color: #2563EB;
    font-size: 12.5px;
    font-weight: 650;
}

@media (max-width: 640px) {

    body.woocommerce-account:not(.logged-in)
    main.site-main > .woocommerce,
    body.woocommerce-account:not(.logged-in)
    #primary > .woocommerce {
        width: 100% !important;
        max-width: 100% !important;
        padding: 34px 10px 50px !important;
    }

    body.woocommerce-account:not(.logged-in)
    .woocommerce > h2 {
        margin-left: 2px !important;
        font-size: 25px;
    }

    body.woocommerce-account:not(.logged-in)
    form.woocommerce-form-login {
        padding: 18px !important;
        border-radius: 13px !important;
    }

    body.woocommerce-account:not(.logged-in)
    form.woocommerce-form-login input[type="text"],
    body.woocommerce-account:not(.logged-in)
    form.woocommerce-form-login input[type="email"],
    body.woocommerce-account:not(.logged-in)
    form.woocommerce-form-login input[type="password"] {
        min-height: 48px;
        font-size: 16px;
    }
}

/* === MESA ACCOUNT LOGIN V1 END === */

/* === MESA ACCOUNT LOGIN LAYOUT FIX V2 START === */

body.woocommerce-account:not(.logged-in) .woocommerce {
    display: block !important;

    width: 100% !important;
    max-width: 620px !important;

    margin: 0 auto !important;
    padding: 48px 20px 65px !important;

    box-sizing: border-box !important;
}

body.woocommerce-account:not(.logged-in)
.woocommerce > h2 {
    width: 100% !important;

    margin: 0 0 18px !important;

    color: #0F2A43;
    font-size: 30px;
    font-weight: 700;
}

body.woocommerce-account:not(.logged-in)
form.woocommerce-form-login {
    width: 100% !important;
    max-width: none !important;

    float: none !important;
    clear: both !important;
}

@media (max-width: 640px) {

    body.woocommerce-account:not(.logged-in) .woocommerce {
        max-width: 100% !important;

        padding: 32px 12px 48px !important;
    }

    body.woocommerce-account:not(.logged-in)
    .woocommerce > h2 {
        font-size: 25px;
    }
}

/* === MESA ACCOUNT LOGIN LAYOUT FIX V2 END === */

/* === MESA ACCOUNT MOBILE LAYOUT FIX V2 START === */

@media (max-width: 800px) {

    body.woocommerce-account.logged-in .woocommerce {
        display: block !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 28px 12px 48px !important;

        box-sizing: border-box !important;
        overflow: hidden;
    }

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin: 0 0 14px !important;

        float: none !important;

        box-sizing: border-box !important;
    }

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 18px !important;

        float: none !important;

        box-sizing: border-box !important;
    }

    body.woocommerce-account.logged-in
    .mesa-account-dashboard {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body.woocommerce-account.logged-in
    .mesa-account-dashboard-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;

        width: 100% !important;
        max-width: 100% !important;

        gap: 10px !important;
    }

    body.woocommerce-account.logged-in
    .mesa-account-dashboard-card {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;

        box-sizing: border-box !important;
    }
}

/* === MESA ACCOUNT MOBILE LAYOUT FIX V2 END === */

/* === MESA ACCOUNT MOBILE NAV COMPACT V1 START === */

@media (max-width: 800px) {

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation {
        padding: 10px !important;
    }

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation ul {
        display: grid !important;
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 7px !important;
    }

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation li {
        min-width: 0;
    }

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation a {
        min-height: 42px;

        padding: 9px 10px !important;

        display: flex !important;
        align-items: center !important;

        background: #f5f8fc;

        border: 1px solid #d2deea;
        border-radius: 8px;

        color: #435a70;

        font-size: 11.5px;
        font-weight: 700;
        line-height: 1.25;

        box-sizing: border-box;
    }

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation
    li.is-active a {
        background: #2563EB !important;
        color: #ffffff !important;

        border-color: #2563EB;

        box-shadow:
            0 6px 14px rgba(37,99,235,.20);
    }

    /* Tableau de bord et déconnexion sur toute la largeur */
    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation
    li:first-child,

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation
    li:last-child {
        grid-column: 1 / -1;
    }

    /* Déconnexion plus discrète */
    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation
    li:last-child a {
        min-height: 38px;

        justify-content: center !important;

        background: #ffffff;
        color: #60758a;

        font-size: 11px;
    }
}

/* === MESA ACCOUNT MOBILE NAV COMPACT V1 END === */

/* === MESA ACCOUNT HEADER + NAV RELIEF V2 START === */

.mesa-account-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    color: #0F2A43;
    font-weight: 700;
    text-decoration: none;
}

.mesa-account-link-icon {
    display: none;
}


/* Mobile */
@media (max-width: 800px) {

    /* Tuiles du menu espace client */
    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation a {
        background: #edf4fb !important;

        border: 1px solid #b4c8de !important;

        box-shadow:
            0 4px 11px rgba(15,42,67,.08);

        color: #354f67 !important;
    }

    body.woocommerce-account.logged-in
    .woocommerce-MyAccount-navigation
    li.is-active a {
        background: #2563EB !important;
        color: #ffffff !important;

        border-color: #2563EB !important;

        box-shadow:
            0 7px 16px rgba(37,99,235,.22);
    }

    /* Bouton utilisateur du header */
    .mesa-account-link {
        width: 42px;
        height: 42px;

        flex: 0 0 42px;

        padding: 0 !important;

        background: #ffffff;

        border: 1px solid #d0dbe6;
        border-radius: 10px;

        color: #0F2A43;

        box-sizing: border-box;

        box-shadow:
            0 3px 8px rgba(15,42,67,.06);
    }

    .mesa-account-link-icon {
        display: flex;
        align-items: center;
        justify-content: center;

        font-size: 18px;
        line-height: 1;
    }

    .mesa-account-link-text {
        display: none;
    }
}

/* === MESA ACCOUNT HEADER + NAV RELIEF V2 END === */

/* === MESA MOBILE ACCOUNT BUTTON FIX V1 START === */

@media (max-width: 800px) {

    .mesa-header-actions > a.mesa-account-link:first-child {
        display: inline-flex !important;
    }

}

/* === MESA MOBILE ACCOUNT BUTTON FIX V1 END === */

/* === MESA MOBILE LOGO FIX V2 START === */

@media (max-width: 800px) {

    .mesa-header-row {
        grid-template-columns:
            minmax(0, 1fr) auto !important;

        gap: 8px !important;
    }

    .mesa-custom-logo {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 190px !important;

        overflow: visible !important;
    }

    .mesa-custom-logo a {
        display: flex !important;
        align-items: center;

        width: 100% !important;
        max-width: 100% !important;

        overflow: visible !important;
    }

    .mesa-custom-logo img,
    .mesa-logo-custom-logo {
        display: block !important;

        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 58px !important;

        object-fit: contain !important;
        object-position: left center !important;
    }
}

@media (max-width: 400px) {

    .mesa-custom-logo {
        max-width: 175px !important;
    }
}

/* === MESA MOBILE LOGO FIX V2 END === */

/* === MESA ACCOUNT ORDERS V1 START === */

/* Zone commandes */
body.woocommerce-account
.woocommerce-MyAccount-content {
    color: #0F2A43;
}

/* Messages WooCommerce de la page commandes */
body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-info {
    position: relative;

    margin: 0 0 16px !important;
    padding: 18px 190px 18px 52px !important;

    min-height: 70px;

    display: flex;
    align-items: center;

    background: #f2f7fd !important;

    border: 1px solid #b9cee4 !important;
    border-radius: 12px;

    color: #435a70 !important;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;

    box-shadow:
        0 7px 18px rgba(15,42,67,.07);

    box-sizing: border-box;
}

/* Icône information */
body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-info::before {
    content: "i";

    position: absolute;
    left: 17px;
    top: 50%;

    width: 24px;
    height: 24px;

    transform: translateY(-50%);

    display: flex;
    align-items: center;
    justify-content: center;

    background: #dceaff;
    color: #2563EB;

    border-radius: 7px;

    font-size: 13px;
    font-weight: 800;
}

/* === FIN BLOC 1 ORDERS === */

/* === MESA ACCOUNT ORDERS BUTTONS V1 START === */

body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-info
.button {
    position: absolute;

    right: 16px;
    top: 50%;

    transform: translateY(-50%);

    min-height: 40px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 15px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 8px !important;

    font-size: 11.5px !important;
    font-weight: 700 !important;

    box-shadow:
        0 7px 16px rgba(37,99,235,.20);
}

@media (hover: hover) {

    body.woocommerce-account
    .woocommerce-MyAccount-content
    .woocommerce-info
    .button:hover {
        background: #1d4ed8 !important;
    }
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    .woocommerce-MyAccount-content
    .woocommerce-info {
        min-height: 0;

        padding: 16px 14px 14px 48px !important;

        display: block;
    }

    body.woocommerce-account
    .woocommerce-MyAccount-content
    .woocommerce-info::before {
        top: 18px;

        transform: none;
    }

    body.woocommerce-account
    .woocommerce-MyAccount-content
    .woocommerce-info
    .button {
        position: static;

        width: 100%;

        margin-top: 13px !important;

        transform: none;

        min-height: 42px;
    }
}

/* === MESA ACCOUNT ORDERS BUTTONS V1 END === */

/* === MESA ACCOUNT ORDERS TABLE V1 START === */

.mesa-account-section-head {
    margin-bottom: 22px;
}

.mesa-account-section-head h1 {
    margin: 4px 0 8px;

    color: #0F2A43;

    font-size: 28px;
    line-height: 1.15;
}

.mesa-account-section-head p {
    margin: 0;

    color: #4F6478;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.55;
}


/* Tableau commandes */
body.woocommerce-account
table.woocommerce-orders-table {
    width: 100%;

    margin: 0 !important;

    border: 1px solid #bfd0e1 !important;
    border-radius: 12px;

    border-collapse: separate !important;
    border-spacing: 0;

    overflow: hidden;

    background: #ffffff;

    box-shadow:
        0 8px 22px rgba(15,42,67,.08);
}


/* En-têtes */
body.woocommerce-account
.woocommerce-orders-table thead th {
    padding: 13px 14px !important;

    background: #edf4fb;

    color: #0F2A43;

    border: 0 !important;
    border-bottom: 1px solid #bfd0e1 !important;

    font-size: 11px;
    font-weight: 750;
}


/* Cellules */
body.woocommerce-account
.woocommerce-orders-table tbody td {
    padding: 15px 14px !important;

    color: #435a70;

    border: 0 !important;
    border-bottom: 1px solid #e0e8f0 !important;

    font-size: 12px;
    font-weight: 500;

    vertical-align: middle;
}

body.woocommerce-account
.woocommerce-orders-table tbody tr:last-child td {
    border-bottom: 0 !important;
}


/* Numéro de commande */
body.woocommerce-account
.woocommerce-orders-table__cell-order-number a {
    color: #2563EB;

    font-weight: 750;
    text-decoration: none;
}


/* Actions */
body.woocommerce-account
.woocommerce-orders-table__cell-order-actions .button {
    min-height: 36px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 12px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border-radius: 7px !important;

    font-size: 10.5px !important;
    font-weight: 700 !important;

    box-shadow:
        0 5px 12px rgba(37,99,235,.18);
}

/* === MESA ACCOUNT ORDERS TABLE V1 END === */

/* === MESA ACCOUNT ORDERS MOBILE CARDS V1 START === */

@media (max-width: 800px) {

    body.woocommerce-account
    table.woocommerce-orders-table {
        border: 0 !important;
        box-shadow: none;
        background: transparent;
    }

    body.woocommerce-account
    .woocommerce-orders-table thead {
        display: none;
    }

    body.woocommerce-account
    .woocommerce-orders-table tbody,
    body.woocommerce-account
    .woocommerce-orders-table tr,
    body.woocommerce-account
    .woocommerce-orders-table td {
        display: block;
        width: 100%;
    }

    body.woocommerce-account
    .woocommerce-orders-table tr {
        margin-bottom: 12px;

        padding: 14px;

        background: #ffffff;

        border: 1px solid #b9cee4;
        border-radius: 12px;

        box-shadow:
            0 7px 18px rgba(15,42,67,.08);

        box-sizing: border-box;
    }

    body.woocommerce-account
    .woocommerce-orders-table td {
        position: relative;

        min-height: 32px;

        padding: 8px 0 8px 46% !important;

        border-bottom: 1px solid #e4ebf2 !important;

        text-align: right !important;

        box-sizing: border-box;
    }

    body.woocommerce-account
    .woocommerce-orders-table td:last-child {
        padding-left: 0 !important;
        padding-top: 12px !important;

        border-bottom: 0 !important;
    }

    body.woocommerce-account
    .woocommerce-orders-table td::before {
        content: attr(data-title);

        position: absolute;
        left: 0;
        top: 8px;

        width: 42%;

        color: #0F2A43;

        font-size: 11px;
        font-weight: 750;

        text-align: left;
    }

    body.woocommerce-account
    .woocommerce-orders-table__cell-order-actions::before {
        display: none;
    }

    body.woocommerce-account
    .woocommerce-orders-table__cell-order-actions .button {
        width: 100%;

        min-height: 42px;

        margin: 0 !important;
    }

}

/* === MESA ACCOUNT ORDERS MOBILE CARDS V1 END === */

/* === MESA ACCOUNT ADDRESSES V1 START === */

/* Texte d'introduction */
body.woocommerce-account
.woocommerce-MyAccount-content
> p:first-child {
    margin: 0 0 22px;

    color: #4F6478;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.55;
}


/* Grille des deux adresses */
body.woocommerce-account
.woocommerce-Addresses {
    display: grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 16px;

    margin-top: 10px;
}


/* Chaque adresse devient une tuile */
body.woocommerce-account
.woocommerce-Address {
    width: 100% !important;
    max-width: 100% !important;

    float: none !important;

    margin: 0 !important;
    padding: 20px !important;

    background: #f7f9fc;

    border: 1px solid #bfd0e1;
    border-radius: 13px;

    box-shadow:
        0 8px 22px rgba(15,42,67,.08);

    box-sizing: border-box;
}


/* Titre */
body.woocommerce-account
.woocommerce-Address-title {
    position: relative;

    margin-bottom: 16px;
    padding-bottom: 14px;

    border-bottom: 1px solid #d7e2ec;
}

body.woocommerce-account
.woocommerce-Address-title h2,
body.woocommerce-account
.woocommerce-Address-title h3 {
    margin: 0 !important;

    color: #0F2A43;

    font-size: 19px;
    line-height: 1.2;
}


/* Adresse */
body.woocommerce-account
.woocommerce-Address address {
    margin: 0;

    color: #435a70;

    font-size: 13px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.7;
}


/* Bouton Modifier */
body.woocommerce-account
.woocommerce-Address-title a.edit {
    position: static !important;
    float: none !important;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 38px;

    margin-top: 13px;
    padding: 0 13px;

    background: #2563EB;
    color: #ffffff !important;

    border-radius: 8px;

    font-size: 11px;
    font-weight: 700;
    text-decoration: none;

    box-shadow:
        0 6px 14px rgba(37,99,235,.20);
}

/* === FIN BLOC ADDRESSES 1 === */

/* === MESA ACCOUNT ADDRESSES ALIGN FIX V1 START === */

body.woocommerce-account
.woocommerce-Addresses {
    display: grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr)) !important;

    align-items: stretch !important;

    gap: 16px !important;
}

body.woocommerce-account
.woocommerce-Addresses
.woocommerce-Address {
    grid-column: auto !important;
    grid-row: auto !important;

    position: static !important;

    float: none !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
}

/* Facturation à gauche */
body.woocommerce-account
.woocommerce-Addresses
.u-column1 {
    order: 1;
}

/* Livraison à droite */
body.woocommerce-account
.woocommerce-Addresses
.u-column2 {
    order: 2;
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    .woocommerce-Addresses {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    body.woocommerce-account
    .woocommerce-Address {
        padding: 16px !important;
    }

    body.woocommerce-account
    .woocommerce-Address-title a.edit {
        width: 100%;

        min-height: 42px;

        box-sizing: border-box;
    }
}

/* === MESA ACCOUNT ADDRESSES ALIGN FIX V1 END === */

/* === MESA ACCOUNT EDIT ADDRESS V1 START === */

body.woocommerce-account
.woocommerce-address-fields__field-wrapper {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px;
}


/* Chaque champ devient une tuile */
body.woocommerce-account
.woocommerce-address-fields
.form-row {
    width: 100% !important;

    margin: 0 !important;
    padding: 12px 13px !important;

    float: none !important;

    background: #f4f8fd;

    border: 1px solid #c8d8e8;
    border-radius: 11px;

    box-shadow:
        0 5px 14px rgba(15,42,67,.06);

    box-sizing: border-box;
}


/* Champs pleine largeur */
body.woocommerce-account
.woocommerce-address-fields
.form-row-wide {
    grid-column: 1 / -1;
}


/* Labels */
body.woocommerce-account
.woocommerce-address-fields
.form-row label {
    display: block;

    margin-bottom: 7px;

    color: #0F2A43;

    font-size: 12px;
    font-weight: 750;
}


/* Champs de saisie */
body.woocommerce-account
.woocommerce-address-fields
input.input-text,
body.woocommerce-account
.woocommerce-address-fields
select {
    width: 100% !important;

    min-height: 44px;

    padding: 0 12px !important;

    background: #ffffff !important;

    border: 1.5px solid #adc1d5 !important;
    border-radius: 8px !important;

    color: #0F2A43;

    box-sizing: border-box;
}

/* === FIN BLOC EDIT ADDRESS 3A === */

/* === MESA ACCOUNT EDIT ADDRESS V1 FINISH START === */

/* Focus clair */
body.woocommerce-account
.woocommerce-address-fields
input.input-text:focus,
body.woocommerce-account
.woocommerce-address-fields
select:focus {
    border-color: #2563EB !important;

    outline: 3px solid rgba(37,99,235,.14) !important;
    outline-offset: 1px;

    box-shadow:
        0 0 0 1px rgba(37,99,235,.06);
}


/* Bouton Enregistrer */
body.woocommerce-account
.woocommerce-address-fields
button.button {
    min-height: 46px;

    margin-top: 16px !important;
    padding: 0 18px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 9px !important;

    font-size: 12px !important;
    font-weight: 700 !important;

    box-shadow:
        0 8px 18px rgba(37,99,235,.22);
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    .woocommerce-address-fields__field-wrapper {
        grid-template-columns: 1fr !important;

        gap: 9px !important;
    }

    body.woocommerce-account
    .woocommerce-address-fields
    .form-row {
        grid-column: 1 !important;

        padding: 11px !important;
    }

    body.woocommerce-account
    .woocommerce-address-fields
    input.input-text,
    body.woocommerce-account
    .woocommerce-address-fields
    select {
        min-height: 47px;

        font-size: 16px;
    }

    body.woocommerce-account
    .woocommerce-address-fields
    button.button {
        width: 100%;

        min-height: 48px;

        margin-top: 12px !important;
    }
}

/* === MESA ACCOUNT EDIT ADDRESS V1 FINISH END === */

/* === MESA ACCOUNT PAYMENT METHODS V1 START === */

/* Message "aucun moyen sauvegardé" */
body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-Message,
body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-message {
    margin: 0 0 16px !important;
    padding: 17px 18px !important;

    background: #f2f7fd !important;

    border: 1px solid #b9cee4 !important;
    border-radius: 11px;

    color: #435a70 !important;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;

    box-shadow:
        0 7px 18px rgba(15,42,67,.07);
}


/* Bouton Ajouter un moyen de paiement */
body.woocommerce-account
.woocommerce-MyAccount-content
a.button[href*="add-payment-method"] {
    min-height: 44px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 17px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 9px !important;

    font-size: 12px !important;
    font-weight: 700 !important;

    box-shadow:
        0 8px 18px rgba(37,99,235,.22);

    text-decoration: none;
}


/* Tableau des moyens enregistrés */
body.woocommerce-account
table.woocommerce-MyAccount-paymentMethods {
    width: 100%;

    margin: 0 0 18px !important;

    background: #ffffff;

    border: 1px solid #bfd0e1 !important;
    border-radius: 12px;

    border-collapse: separate !important;
    border-spacing: 0;

    overflow: hidden;

    box-shadow:
        0 8px 22px rgba(15,42,67,.08);
}

body.woocommerce-account
.woocommerce-MyAccount-paymentMethods th {
    padding: 13px 14px !important;

    background: #edf4fb;

    color: #0F2A43;

    border: 0 !important;
    border-bottom: 1px solid #bfd0e1 !important;

    font-size: 11px;
    font-weight: 750;
}

body.woocommerce-account
.woocommerce-MyAccount-paymentMethods td {
    padding: 14px !important;

    color: #435a70;

    border: 0 !important;
    border-bottom: 1px solid #e0e8f0 !important;

    font-size: 12px;
    font-weight: 500;
}


/* Actions sur une carte enregistrée */
body.woocommerce-account
.woocommerce-MyAccount-paymentMethods
.button {
    min-height: 36px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 11px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border-radius: 7px !important;

    font-size: 10.5px !important;
    font-weight: 700 !important;
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    .woocommerce-MyAccount-content
    a.button[href*="add-payment-method"] {
        width: 100%;

        min-height: 46px;

        box-sizing: border-box;
    }

}

/* === MESA ACCOUNT PAYMENT METHODS V1 END === */

/* === MESA ACCOUNT EDIT FORM V1 START === */

body.woocommerce-account
.woocommerce-EditAccountForm {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px;
}


/* Chaque champ devient une tuile */
body.woocommerce-account
.woocommerce-EditAccountForm
.form-row {
    width: 100% !important;

    margin: 0 !important;
    padding: 12px 13px !important;

    float: none !important;

    background: #f4f8fd;

    border: 1px solid #c8d8e8;
    border-radius: 11px;

    box-shadow:
        0 5px 14px rgba(15,42,67,.06);

    box-sizing: border-box;
}


/* Champs pleine largeur */
body.woocommerce-account
.woocommerce-EditAccountForm
.form-row-wide {
    grid-column: 1 / -1;
}


/* Labels */
body.woocommerce-account
.woocommerce-EditAccountForm
.form-row label {
    display: block;

    margin-bottom: 7px;

    color: #0F2A43;

    font-size: 12px;
    font-weight: 750;
}


/* Inputs */
body.woocommerce-account
.woocommerce-EditAccountForm
input.input-text {
    width: 100% !important;

    min-height: 44px;

    padding: 0 12px !important;

    background: #ffffff !important;

    border: 1.5px solid #adc1d5 !important;
    border-radius: 8px !important;

    color: #0F2A43;

    box-sizing: border-box;
}


/* Texte d'aide du nom affiché */
body.woocommerce-account
.woocommerce-EditAccountForm
.form-row span em {
    display: block;

    margin-top: 7px;

    color: #53687C;

    font-size: 11px;
    font-weight: 500;
    line-height: 1.45;
}

/* === FIN BLOC INFORMATIONS 2A === */

/* === MESA ACCOUNT EDIT SECURITY V1 START === */

/* Zone changement de mot de passe */
body.woocommerce-account
.woocommerce-EditAccountForm fieldset {
    grid-column: 1 / -1;

    margin: 4px 0 0 !important;
    padding: 18px !important;

    background: #edf4fb;

    border: 1px solid #b9cee4 !important;
    border-radius: 12px;

    box-shadow:
        0 7px 18px rgba(15,42,67,.07);
}

body.woocommerce-account
.woocommerce-EditAccountForm fieldset legend {
    padding: 0 8px;

    color: #0F2A43;

    font-size: 16px;
    font-weight: 750;
}


/* Champs mot de passe */
body.woocommerce-account
.woocommerce-EditAccountForm fieldset .form-row {
    margin-bottom: 10px !important;

    background: #ffffff;
}

body.woocommerce-account
.woocommerce-EditAccountForm
.password-input {
    display: block !important;

    width: 100% !important;
}


/* Focus accessible */
body.woocommerce-account
.woocommerce-EditAccountForm
input.input-text:focus {
    border-color: #2563EB !important;

    outline: 3px solid rgba(37,99,235,.14) !important;
    outline-offset: 1px;
}


/* Bouton Enregistrer */
body.woocommerce-account
.woocommerce-EditAccountForm
button.button {
    grid-column: 1 / -1;

    min-height: 46px;

    margin-top: 4px !important;
    padding: 0 18px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 9px !important;

    font-size: 12px !important;
    font-weight: 700 !important;

    box-shadow:
        0 8px 18px rgba(37,99,235,.22);
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    .woocommerce-EditAccountForm {
        grid-template-columns: 1fr !important;

        gap: 9px !important;
    }

    body.woocommerce-account
    .woocommerce-EditAccountForm
    .form-row,
    body.woocommerce-account
    .woocommerce-EditAccountForm fieldset {
        grid-column: 1 !important;
    }

    body.woocommerce-account
    .woocommerce-EditAccountForm
    input.input-text {
        min-height: 47px;

        font-size: 16px;
    }

    body.woocommerce-account
    .woocommerce-EditAccountForm fieldset {
        padding: 14px !important;
    }

    body.woocommerce-account
    .woocommerce-EditAccountForm
    button.button {
        width: 100%;

        min-height: 48px;
    }
}

/* === MESA ACCOUNT EDIT SECURITY V1 END === */

/* === MESA ACCOUNT EDIT LAYOUT V2 START === */

/* Les séparateurs WooCommerce perturbent la grille */
body.woocommerce-account
.woocommerce-EditAccountForm > .clear {
    display: none !important;
}


/* Nom affiché + e-mail sur la même ligne */
body.woocommerce-account
.woocommerce-EditAccountForm > .form-row-wide {
    grid-column: auto !important;
}


/* Sécurité toujours pleine largeur */
body.woocommerce-account
.woocommerce-EditAccountForm > fieldset {
    grid-column: 1 / -1 !important;

    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px 12px;
}


/* On évite les grosses cartes imbriquées */
body.woocommerce-account
.woocommerce-EditAccountForm fieldset .form-row {
    grid-column: auto !important;

    margin: 0 !important;

    background: #ffffff;

    box-shadow: none;
}


/* Mot de passe actuel sur toute la largeur */
body.woocommerce-account
.woocommerce-EditAccountForm
fieldset .form-row:first-of-type {
    grid-column: 1 / -1 !important;
}


/* Nouveau + confirmation côte à côte */
body.woocommerce-account
.woocommerce-EditAccountForm
fieldset .form-row:nth-of-type(2),
body.woocommerce-account
.woocommerce-EditAccountForm
fieldset .form-row:nth-of-type(3) {
    grid-column: auto !important;
}


/* Ligne contenant le bouton */
body.woocommerce-account
.woocommerce-EditAccountForm > p:last-child {
    grid-column: 1 / -1 !important;

    width: 100%;

    margin: 2px 0 0 !important;

    display: flex;
    justify-content: flex-end;
}


/* Bouton mieux positionné */
body.woocommerce-account
.woocommerce-EditAccountForm > p:last-child
button.button {
    width: auto !important;

    min-width: 210px;
    margin: 0 !important;
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    .woocommerce-EditAccountForm > .form-row-wide {
        grid-column: 1 !important;
    }

    body.woocommerce-account
    .woocommerce-EditAccountForm > fieldset {
        grid-template-columns: 1fr !important;
    }

    body.woocommerce-account
    .woocommerce-EditAccountForm
    fieldset .form-row {
        grid-column: 1 !important;
    }

    body.woocommerce-account
    .woocommerce-EditAccountForm > p:last-child
    button.button {
        width: 100% !important;
        min-width: 0;
    }
}

/* === MESA ACCOUNT EDIT LAYOUT V2 END === */

/* === MESA EDIT ADDRESS COMPACT V2 START === */

@media (min-width: 801px) {

    body.woocommerce-account
    .woocommerce-address-fields__field-wrapper {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 10px 12px !important;
    }

    /* Prénom | Nom */
    #billing_first_name_field,
    #shipping_first_name_field {
        grid-column: 1 !important;
    }

    #billing_last_name_field,
    #shipping_last_name_field {
        grid-column: 2 !important;
    }

    /* E-mail | Téléphone */
    #billing_email_field {
        grid-column: 1 !important;
    }

    #billing_phone_field {
        grid-column: 2 !important;
    }

    /* Adresse principale */
    #billing_address_1_field,
    #shipping_address_1_field {
        grid-column: 1 / -1 !important;
    }

    /* Complément d'adresse */
    #billing_address_2_field,
    #shipping_address_2_field {
        grid-column: 1 / -1 !important;
    }

    /* Code postal | Ville */
    #billing_postcode_field,
    #shipping_postcode_field {
        grid-column: 1 !important;
    }

    #billing_city_field,
    #shipping_city_field {
        grid-column: 2 !important;
    }

    /* Pays */
    #billing_country_field,
    #shipping_country_field {
        grid-column: 1 / -1 !important;
    }

    /* Tuiles un peu moins hautes */
    body.woocommerce-account
    .woocommerce-address-fields
    .form-row {
        padding: 10px 11px !important;
    }

    body.woocommerce-account
    .woocommerce-address-fields
    input.input-text,
    body.woocommerce-account
    .woocommerce-address-fields
    select {
        min-height: 42px;
    }
}

/* === MESA EDIT ADDRESS COMPACT V2 END === */

/* === MESA ADD PAYMENT COMPACT V2 START === */

body.woocommerce-account
form#add_payment_method {
    max-width: 760px;
    margin: 0 auto !important;
}

/* Carte principale */
body.woocommerce-account
#add_payment_method
.woocommerce-PaymentMethods {
    margin: 0 !important;
    padding: 0 !important;

    list-style: none;
}

body.woocommerce-account
#add_payment_method
.woocommerce-PaymentMethod {
    padding: 16px !important;

    background: #f4f8fd;

    border: 1px solid #bfd0e1;
    border-radius: 12px;

    box-shadow:
        0 7px 18px rgba(15,42,67,.07);
}

/* Zone Stripe */
body.woocommerce-account
#add_payment_method
.payment_box {
    margin: 12px 0 0 !important;
    padding: 16px !important;

    background: #ffffff !important;

    border: 1px solid #d0ddea;
    border-radius: 10px;
}

/* Champs Stripe */
body.woocommerce-account
#add_payment_method
fieldset.wc-payment-form {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px 12px;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
}

body.woocommerce-account
#add_payment_method
fieldset.wc-payment-form
.form-row {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    float: none !important;
}

body.woocommerce-account
#add_payment_method
fieldset.wc-payment-form
.form-row-wide {
    grid-column: 1 / -1;
}

/* Bouton */
body.woocommerce-account
#add_payment_method
button.button {
    min-width: 220px;
    min-height: 46px;

    float: right;

    margin-top: 16px !important;

    background: #2563EB !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 9px !important;

    font-size: 12px !important;
    font-weight: 700 !important;

    box-shadow:
        0 8px 18px rgba(37,99,235,.22);
}

/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    form#add_payment_method {
        max-width: 100%;
    }

    body.woocommerce-account
    #add_payment_method
    .woocommerce-PaymentMethod {
        padding: 12px !important;
    }

    body.woocommerce-account
    #add_payment_method
    .payment_box {
        padding: 12px !important;
    }

    body.woocommerce-account
    #add_payment_method
    fieldset.wc-payment-form {
        grid-template-columns: 1fr;
    }

    body.woocommerce-account
    #add_payment_method
    fieldset.wc-payment-form
    .form-row {
        grid-column: 1 !important;
    }

    body.woocommerce-account
    #add_payment_method
    button.button {
        width: 100%;
        min-width: 0;

        float: none;
    }
}

/* === MESA ADD PAYMENT COMPACT V2 END === */

/* === MESA STRIPE UPE WIDTH FIX V1 START === */

/*
 * Stripe UPE gère lui-même l'agencement de ses champs.
 * On neutralise la grille ajoutée précédemment.
 */
body.woocommerce-account
#add_payment_method
fieldset.wc-payment-form:has(.wc-stripe-upe-element) {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* Composant Stripe sur toute la largeur */
body.woocommerce-account
#add_payment_method
.wc-stripe-upe-element {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;

    box-sizing: border-box !important;
}


/* On laisse également toute la largeur à son conteneur */
body.woocommerce-account
#add_payment_method
.payment_box {
    width: 100% !important;
    max-width: 100% !important;

    box-sizing: border-box !important;
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-account
    #add_payment_method
    .wc-stripe-upe-element {
        width: 100% !important;
    }
}

/* === MESA STRIPE UPE WIDTH FIX V1 END === */

/* === MESA SAV V1 START === */

.mesa-account-sav {
    width: 100%;
}

.mesa-sav-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 12px;

    margin: 22px 0 26px;
}

.mesa-sav-quick-card {
    min-height: 150px;

    padding: 17px;

    background: #f4f8fd;

    border: 1px solid #bfd0e1;
    border-radius: 12px;

    box-shadow:
        0 7px 18px rgba(15,42,67,.07);
}

.mesa-sav-quick-icon {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 12px;

    background: #e3efff;

    border-radius: 10px;

    font-size: 20px;
}

.mesa-sav-quick-card h2 {
    margin: 0 0 7px;

    color: #0F2A43;

    font-size: 15px;
    line-height: 1.25;
}

.mesa-sav-quick-card p {
    margin: 0;

    color: #53687C;

    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.5;
}

@media (hover: hover) {

    .mesa-sav-quick-card {
        transition:
            transform .18s ease,
            border-color .18s ease,
            box-shadow .18s ease;
    }

    .mesa-sav-quick-card:hover {
        transform: translateY(-2px);

        border-color: #9db9d8;

        box-shadow:
            0 12px 25px rgba(15,42,67,.11);
    }
}

/* === FIN BLOC SAV 3A === */

/* === MESA SAV ORDERS + MOBILE V1 START === */

.mesa-sav-orders {
    margin-top: 6px;
}

.mesa-sav-orders > h2 {
    margin: 0 0 12px;

    color: #0F2A43;

    font-size: 18px;
    line-height: 1.2;
}

.mesa-sav-orders-empty {
    margin: 0;

    padding: 15px 16px;

    background: #f4f8fd;

    border: 1px solid #c5d6e7;
    border-radius: 10px;

    color: #4F6478;

    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
}

.mesa-sav-orders-list {
    display: grid;
    gap: 9px;
}

.mesa-sav-order {
    min-height: 60px;

    padding: 12px 14px;

    display: grid;
    grid-template-columns:
        minmax(0, 1fr) auto auto;

    gap: 12px;
    align-items: center;

    background: #ffffff;

    border: 1px solid #c5d6e7;
    border-radius: 10px;

    color: #0F2A43;
    text-decoration: none;

    box-shadow:
        0 5px 13px rgba(15,42,67,.06);

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.mesa-sav-order > span {
    font-size: 12.5px;
    font-weight: 750;
}

.mesa-sav-order > small {
    color: #53687C;

    font-size: 11px;
    font-weight: 500;
}

.mesa-sav-order > strong {
    padding: 5px 8px;

    background: #edf4ff;
    color: #2563EB;

    border-radius: 7px;

    font-size: 10px;
    font-weight: 750;
}

@media (hover: hover) {

    .mesa-sav-order:hover {
        transform: translateY(-1px);

        border-color: #9fb9d5;

        box-shadow:
            0 9px 20px rgba(15,42,67,.10);
    }
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-sav-quick-grid {
        grid-template-columns: 1fr;

        gap: 9px;

        margin: 18px 0 22px;
    }

    .mesa-sav-quick-card {
        min-height: 0;

        padding: 14px;

        display: grid;
        grid-template-columns: 42px minmax(0, 1fr);
        column-gap: 12px;

        align-items: start;
    }

    .mesa-sav-quick-icon {
        grid-row: 1 / span 2;

        margin: 0;
    }

    .mesa-sav-quick-card h2 {
        margin-top: 2px;

        font-size: 14px;
    }

    .mesa-sav-quick-card p {
        font-size: 11.5px;
    }

    .mesa-sav-order {
        grid-template-columns: 1fr;

        gap: 5px;

        padding: 12px;
    }

    .mesa-sav-order > strong {
        width: fit-content;
    }
}

/* === MESA SAV ORDERS + MOBILE V1 END === */

/* === MESA SAV FORM DESIGN V1 START === */

.mesa-sav-form-card {
    margin-top: 26px;
    padding: 22px;

    background: #ffffff;

    border: 1px solid #b9cee4;
    border-radius: 14px;

    box-shadow:
        0 10px 26px rgba(15,42,67,.09);
}

.mesa-sav-form-head {
    margin-bottom: 18px;
}

.mesa-sav-form-head h2 {
    margin: 4px 0 7px;

    color: #0F2A43;

    font-size: 22px;
    line-height: 1.2;
}

.mesa-sav-form-head p {
    max-width: 650px;

    margin: 0;

    color: #4F6478;

    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.55;
}


/* Client connecté */
.mesa-sav-customer {
    margin-bottom: 16px;
    padding: 12px 14px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    background: #edf4ff;

    border: 1px solid #c3d6ec;
    border-radius: 10px;
}

.mesa-sav-customer strong {
    color: #0F2A43;

    font-size: 11.5px;
}

.mesa-sav-customer span {
    color: #4F6478;

    font-size: 11.5px;
    font-weight: 500;
}


/* Formulaire */
.mesa-sav-form {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 11px 12px;
}

.mesa-sav-field {
    padding: 11px 12px;

    background: #f4f8fd;

    border: 1px solid #c8d8e8;
    border-radius: 11px;

    box-shadow:
        0 5px 13px rgba(15,42,67,.05);

    box-sizing: border-box;
}

.mesa-sav-field-wide {
    grid-column: 1 / -1;
}

.mesa-sav-field label {
    display: block;

    margin-bottom: 7px;

    color: #0F2A43;

    font-size: 11.5px;
    font-weight: 750;
}

.mesa-sav-field input,
.mesa-sav-field select,
.mesa-sav-field textarea {
    width: 100%;

    background: #ffffff;

    border: 1.5px solid #adc1d5;
    border-radius: 8px;

    color: #0F2A43;

    box-sizing: border-box;
}

.mesa-sav-field input,
.mesa-sav-field select {
    min-height: 44px;

    padding: 0 11px;
}

.mesa-sav-field textarea {
    min-height: 145px;

    padding: 11px;

    resize: vertical;

    line-height: 1.5;
}

.mesa-sav-field input:focus,
.mesa-sav-field select:focus,
.mesa-sav-field textarea:focus {
    border-color: #2563EB;

    outline: 3px solid rgba(37,99,235,.14);
    outline-offset: 1px;
}

/* === FIN BLOC SAV 4D-1 === */

/* === MESA SAV FORM DESIGN V1 FINISH START === */

/* Messages succès / erreur */
.mesa-sav-notice {
    margin-bottom: 16px;
    padding: 12px 14px;

    border-radius: 9px;

    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
}

.mesa-sav-notice-success {
    background: #edf9f1;
    color: #166534;

    border: 1px solid #b9dec5;
}

.mesa-sav-notice-error {
    background: #fff3f3;
    color: #991b1b;

    border: 1px solid #efc4c4;
}


/* Bouton */
.mesa-sav-submit {
    grid-column: 1 / -1;

    display: flex;
    justify-content: flex-end;

    margin-top: 3px;
}

.mesa-sav-submit button {
    min-width: 220px;
    min-height: 46px;

    padding: 0 18px;

    background: #2563EB;
    color: #ffffff;

    border: 0;
    border-radius: 9px;

    font-size: 12px;
    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 8px 18px rgba(37,99,235,.22);

    transition:
        transform .18s ease,
        background-color .18s ease,
        box-shadow .18s ease;
}

@media (hover: hover) {

    .mesa-sav-submit button:hover {
        transform: translateY(-2px);

        background: #1d4ed8;

        box-shadow:
            0 12px 24px rgba(37,99,235,.28);
    }
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-sav-form-card {
        margin-top: 20px;

        padding: 15px;

        border-radius: 12px;
    }

    .mesa-sav-form-head h2 {
        font-size: 20px;
    }

    .mesa-sav-customer {
        display: block;

        padding: 11px 12px;
    }

    .mesa-sav-customer strong,
    .mesa-sav-customer span {
        display: block;
    }

    .mesa-sav-customer span {
        margin-top: 4px;
    }

    .mesa-sav-form {
        grid-template-columns: 1fr;

        gap: 9px;
    }

    .mesa-sav-field,
    .mesa-sav-field-wide {
        grid-column: 1 !important;
    }

    .mesa-sav-field {
        padding: 10px;
    }

    .mesa-sav-field input,
    .mesa-sav-field select {
        min-height: 47px;

        font-size: 16px;
    }

    .mesa-sav-field textarea {
        min-height: 160px;

        font-size: 16px;
    }

    .mesa-sav-submit {
        grid-column: 1;

        display: block;
    }

    .mesa-sav-submit button {
        width: 100%;
        min-width: 0;
        min-height: 48px;
    }
}

/* === MESA SAV FORM DESIGN V1 FINISH END === */

/* === MESA SAV QUICK CHOICE DESIGN V1 START === */

.mesa-sav-quick-card {
    cursor: pointer;
}

.mesa-sav-quick-card:focus-visible {
    outline: 3px solid rgba(37,99,235,.22);
    outline-offset: 3px;

    border-color: #2563EB;
}

/* Tuile sélectionnée */
.mesa-sav-quick-card.is-selected {
    background: #edf4ff;

    border-color: #2563EB;

    box-shadow:
        0 10px 24px rgba(37,99,235,.16);
}

/* Icône de la tuile sélectionnée */
.mesa-sav-quick-card.is-selected
.mesa-sav-quick-icon {
    background: #dbeafe;
}

/* Titre */
.mesa-sav-quick-card.is-selected h2 {
    color: #1d4ed8;
}

/* Mobile : retour tactile plus net */
@media (max-width: 800px) {

    .mesa-sav-quick-card:active {
        transform: scale(.99);
    }
}

/* === MESA SAV QUICK CHOICE DESIGN V1 END === */

/* ========================================================
   MESA FOOTER LOGOS V3
   ======================================================== */

/* Logo officiel MESA Bureautique */

.mesa-footer-brand-logo {
    display: inline-flex;
    align-items: center;

    max-width: 220px;

    margin-bottom: 14px;

    text-decoration: none;
}

.mesa-footer-brand-logo-img {
    display: block;

    width: 100%;
    max-width: 220px;
    height: auto;
    max-height: 62px;

    object-fit: contain;
    object-position: left center;
}


/* Logo officiel MESA Consulting */

.mesa-footer-consulting-logo {
    display: block;

    width: 100%;
    max-width: 190px;

    margin: 0 0 13px;

    text-decoration: none;
}

.mesa-footer-consulting-logo-img {
    display: block;

    width: 100%;
    height: auto;

    border-radius: 7px;

    object-fit: contain;
}


/*
 * Sur PC le logo remplace visuellement le titre.
 * Le H2 reste dans le HTML pour l'accessibilité
 * et pour l'accordéon mobile.
 */

@media (min-width: 801px) {

    .mesa-footer-consulting-section > h2 {
        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 */

@media (max-width: 800px) {

    .mesa-footer-brand-logo {
        max-width: 205px;

        margin-bottom: 14px;
    }

    .mesa-footer-brand-logo-img {
        max-width: 205px;
        max-height: 58px;
    }

    .mesa-footer-consulting-logo {
        max-width: 220px;

        margin-top: 12px;
        margin-bottom: 14px;
    }
}

/* ========================================================
   END MESA FOOTER LOGOS V3
   ======================================================== */

/* ========================================================
   MESA FOOTER LOGOS V3.1 - FINITIONS
   ======================================================== */

@media (min-width: 801px) {

    /* Plus de place pour les deux marques */
    .mesa-footer-grid {
        grid-template-columns:
            1.35fr
            .85fr
            .85fr
            1fr
            1.35fr !important;

        column-gap: 32px !important;
        align-items: start;
    }

    /* MESA Bureautique */
    .mesa-footer-brand-logo {
        width: 100%;
        max-width: 255px !important;

        margin-bottom: 16px;
    }

    .mesa-footer-brand-logo-img {
        width: 100% !important;
        max-width: 255px !important;
        max-height: 72px !important;
    }

    /* MESA Consulting */
    .mesa-footer-consulting-logo {
        width: 100%;
        max-width: 255px !important;

        margin-bottom: 15px !important;
    }

    .mesa-footer-consulting-logo-img {
        width: 100% !important;
        max-width: 255px !important;
        height: auto !important;
    }

    .mesa-footer-consulting-section {
        min-width: 0;
    }
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-footer-brand-logo,
    .mesa-footer-brand-logo-img {
        max-width: 230px !important;
    }

    .mesa-footer-consulting-logo,
    .mesa-footer-consulting-logo-img {
        max-width: 245px !important;
    }
}

/* ========================================================
   END MESA FOOTER LOGOS V3.1
   ======================================================== */

/* ========================================================
   MESA CONSULTING TOPBAR LOGO V1
   ======================================================== */

.mesa-topbar .mesa-topbar-consulting {
    position: relative;

    width: 158px;
    height: 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-left: auto;

    overflow: hidden;

    border-radius: 5px;

    text-decoration: none;

    transition:
        opacity .18s ease,
        transform .18s ease;
}

.mesa-topbar .mesa-topbar-consulting-logo {
    display: block;

    width: 158px !important;
    height: 28px !important;

    max-width: none !important;

    object-fit: cover;
    object-position: center;

    border: 0;
}


/* Petit accent bleu */
.mesa-topbar .mesa-topbar-consulting::after {
    content: "";

    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 1px;

    height: 2px;

    background: #2563EB;

    opacity: 0;

    transform: scaleX(.65);

    transition:
        opacity .18s ease,
        transform .18s ease;
}


@media (hover: hover) {

    .mesa-topbar .mesa-topbar-consulting:hover {
        opacity: .94;

        transform: translateY(-1px);
    }

    .mesa-topbar .mesa-topbar-consulting:hover::after {
        opacity: 1;

        transform: scaleX(1);
    }
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-topbar .mesa-topbar-consulting {
        width: 145px;
        height: 26px;

        margin-left: auto;
        margin-right: auto;
    }

    .mesa-topbar .mesa-topbar-consulting-logo {
        width: 145px !important;
        height: 26px !important;
    }
}

/* ========================================================
   END MESA CONSULTING TOPBAR LOGO V1
   ======================================================== */

/* ========================================================
   MESA CONSULTING HOME LOGO V1
   ======================================================== */

.mesa-home-consulting-logo {
    display: block;

    width: 220px;
    max-width: 100%;

    margin: 0 0 16px;

    text-decoration: none;

    transition:
        opacity .18s ease,
        transform .18s ease;
}

.mesa-home-consulting-logo-img {
    display: block;

    width: 100% !important;
    max-width: 220px !important;
    height: auto !important;

    object-fit: contain;
    object-position: left center;

    border: 0;
}


/* Léger effet au survol */
@media (hover: hover) {

    .mesa-home-consulting-logo:hover {
        opacity: .92;
        transform: translateY(-1px);
    }
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-home-consulting-logo {
        width: 190px;

        margin-bottom: 14px;
    }

    .mesa-home-consulting-logo-img {
        max-width: 190px !important;
    }
}

/* ========================================================
   END MESA CONSULTING HOME LOGO V1
   ======================================================== */

/* ========================================================
   MESA CONSULTING HOME LOGO V1.1
   Recadrage visuel du logo
   ======================================================== */

.mesa-home-consulting-logo {
    width: 260px !important;
    height: 72px !important;
    max-width: 100%;

    margin: 0 0 16px !important;

    display: block;
    overflow: hidden;

    border-radius: 6px;
}

.mesa-home-consulting-logo-img {
    display: block;

    width: 260px !important;
    height: 72px !important;
    max-width: none !important;

    object-fit: cover !important;
    object-position: center center !important;
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-home-consulting-logo {
        width: 225px !important;
        height: 62px !important;

        margin-bottom: 14px !important;
    }

    .mesa-home-consulting-logo-img {
        width: 225px !important;
        height: 62px !important;
    }
}

/* ========================================================
   END MESA CONSULTING HOME LOGO V1.1
   ======================================================== */

/* ========================================================
   MESA PRODUCT PAYMENT COMPACT V1
   ======================================================== */

/*
 * Les wallets Express restent disponibles au panier /
 * checkout mais ne prennent plus toute la fiche produit.
 */
body.single-product
div.product
.summary iframe,

body.single-product
div.product
.summary [class*="paypal"],

body.single-product
div.product
.summary [class*="ppcp"],

body.single-product
div.product
.summary [class*="stripe"],

body.single-product
div.product
.summary [class*="express"],

body.single-product
div.product
.summary [id*="express"],

body.single-product
div.product
.summary [id*="payment-request"] {
    display: none !important;
}


/* Ligne de paiement compacte */
.mesa-product-payment-note {
    margin-top: 12px;

    padding: 11px 13px;

    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: 7px 14px;

    background: #f4f8fd;

    border: 1px solid #c8d8e8;
    border-radius: 9px;

    color: #53687C;

    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
}

.mesa-product-payment-note span {
    white-space: nowrap;
}

.mesa-product-payment-secure {
    color: #0F2A43 !important;

    font-weight: 750 !important;
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-product-payment-note {
        justify-content: center;

        gap: 6px 11px;

        text-align: center;
    }
}

/* ========================================================
   END MESA PRODUCT PAYMENT COMPACT V1
   ======================================================== */

/* ========================================================
   MESA PDP SPECS V1
   ======================================================== */

.mesa-pdp-spec-grid {
    grid-template-columns:
        repeat(2, minmax(0, 1fr)) !important;

    gap: 8px !important;
}

.mesa-pdp-spec-grid
.mesa-pdp-trust-item {
    min-height: 56px;

    padding: 9px 11px;
}

.mesa-pdp-spec-grid
.mesa-pdp-trust-item span {
    display: block;

    margin-bottom: 3px;

    color: #2563EB;

    font-size: 9px;
    font-weight: 800;
    letter-spacing: .25px;
}

.mesa-pdp-spec-grid
.mesa-pdp-trust-item strong {
    display: block;

    color: #0F2A43;

    font-size: 11px;
    line-height: 1.3;
}


/* Logiciels et préparation */
.mesa-pdp-included {
    margin-top: 9px;

    padding: 9px 11px;

    display: flex;
    flex-wrap: wrap;

    gap: 6px 14px;

    background: #f7f9fc;

    border: 1px solid #d1ddea;
    border-radius: 8px;

    color: #53687C;

    font-size: 9.5px;
    font-weight: 650;
    line-height: 1.35;
}

.mesa-pdp-included span {
    white-space: nowrap;
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-pdp-spec-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

    .mesa-pdp-spec-grid
    .mesa-pdp-trust-item {
        min-height: 58px;
    }

    .mesa-pdp-included {
        gap: 6px 10px;
    }
}

/* Très petits écrans */
@media (max-width: 380px) {

    .mesa-pdp-spec-grid {
        grid-template-columns: 1fr !important;
    }

    .mesa-pdp-included span {
        white-space: normal;
    }
}

/* ========================================================
   END MESA PDP SPECS V1
   ======================================================== */

/* ========================================================
   MESA PDP PREPARATION V2
   ======================================================== */

.mesa-pdp-preparation-grid {
    gap: 10px !important;
}

.mesa-pdp-preparation-grid > div {
    min-height: 0 !important;
    padding: 15px !important;

    background: #f7f9fc !important;

    border: 1px solid #d5e0eb !important;
    border-radius: 11px !important;

    box-shadow: none !important;
}

/* Masque les numéros 01 / 02 / 03 / 04 */
.mesa-pdp-preparation-grid > div > b:first-child {
    display: none !important;
}

.mesa-pdp-preparation-grid strong {
    display: block;

    margin-bottom: 6px;

    color: #0F2A43;

    font-size: 13px;
    line-height: 1.3;
}

.mesa-pdp-preparation-grid strong::before {
    content: "✓";

    margin-right: 6px;

    color: #2563EB;
    font-weight: 900;
}

.mesa-pdp-preparation-grid span {
    color: #60758A;

    font-size: 11px;
    line-height: 1.45;
}

@media (max-width: 800px) {

    .mesa-pdp-preparation-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

    .mesa-pdp-preparation-grid > div {
        padding: 13px !important;
    }
}

/* ========================================================
   END MESA PDP PREPARATION V2
   ======================================================== */

/* ========================================================
   MESA PDP PREPARATION TILES V3
   ======================================================== */

.mesa-pdp-preparation-grid {
    display: grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr)) !important;

    gap: 12px !important;

    margin-top: 12px;
}

.mesa-pdp-preparation-grid > div {
    position: relative;

    min-height: 118px !important;

    padding: 18px 18px 16px 68px !important;

    background: #f4f8fd !important;

    border: 1px solid #c6d7e8 !important;
    border-radius: 13px !important;

    box-shadow:
        0 7px 18px rgba(15,42,67,.06) !important;

    box-sizing: border-box;

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}


/* Icône */
.mesa-pdp-preparation-grid > div::before {
    position: absolute;

    left: 16px;
    top: 18px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #e2efff;
    color: #2563EB;

    border-radius: 10px;

    font-size: 18px;
    font-weight: 800;
}


/* Icônes par tuile */
.mesa-pdp-preparation-grid > div:nth-child(1)::before {
    content: "✓";
}

.mesa-pdp-preparation-grid > div:nth-child(2)::before {
    content: "✦";
}

.mesa-pdp-preparation-grid > div:nth-child(3)::before {
    content: "→";
}

.mesa-pdp-preparation-grid > div:nth-child(4)::before {
    content: "✓";
}


/* Numéros 01 / 02 / 03 / 04 */
.mesa-pdp-preparation-grid > div > b:first-child {
    display: none !important;
}


.mesa-pdp-preparation-grid strong {
    display: block !important;

    margin: 2px 0 7px !important;

    color: #0F2A43 !important;

    font-size: 14px !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
}


/* On retire l'ancien ✓ ajouté devant le titre */
.mesa-pdp-preparation-grid strong::before {
    display: none !important;
}


.mesa-pdp-preparation-grid span {
    display: block;

    color: #5B7084 !important;

    font-size: 11.5px !important;
    line-height: 1.5 !important;
}


/* Survol desktop */
@media (hover: hover) {

    .mesa-pdp-preparation-grid > div:hover {
        transform: translateY(-2px);

        border-color: #9ebbd8 !important;

        box-shadow:
            0 12px 25px rgba(15,42,67,.10) !important;
    }
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-pdp-preparation-grid {
        grid-template-columns: 1fr !important;

        gap: 9px !important;
    }

    .mesa-pdp-preparation-grid > div {
        min-height: 0 !important;

        padding:
            15px
            14px
            15px
            62px !important;
    }

    .mesa-pdp-preparation-grid > div::before {
        left: 14px;
        top: 15px;

        width: 36px;
        height: 36px;
    }
}

/* ========================================================
   END MESA PDP PREPARATION TILES V3
   ======================================================== */

/* ========================================================
   MESA PDP PREPARATION TILES V3.1 - COMPACT
   ======================================================== */

.mesa-pdp-preparation-grid {
    gap: 8px !important;
    margin-top: 9px !important;
}

.mesa-pdp-preparation-grid > div {
    min-height: 78px !important;

    padding:
        12px
        12px
        11px
        50px !important;

    border-radius: 10px !important;

    box-shadow:
        0 4px 10px rgba(15,42,67,.04) !important;
}


/* Icône plus petite */
.mesa-pdp-preparation-grid > div::before {
    left: 11px !important;
    top: 12px !important;

    width: 29px !important;
    height: 29px !important;

    border-radius: 8px !important;

    font-size: 14px !important;
}


/* Titres */
.mesa-pdp-preparation-grid strong {
    margin: 0 0 4px !important;

    font-size: 12px !important;
    line-height: 1.25 !important;
}


/* Description */
.mesa-pdp-preparation-grid span {
    font-size: 10px !important;
    line-height: 1.35 !important;
}


/* Survol plus discret */
@media (hover: hover) {

    .mesa-pdp-preparation-grid > div:hover {
        transform: translateY(-1px);

        box-shadow:
            0 7px 14px rgba(15,42,67,.07) !important;
    }
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-pdp-preparation-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 7px !important;
    }

    .mesa-pdp-preparation-grid > div {
        min-height: 82px !important;

        padding:
            11px
            9px
            10px
            43px !important;
    }

    .mesa-pdp-preparation-grid > div::before {
        left: 9px !important;
        top: 11px !important;

        width: 26px !important;
        height: 26px !important;

        font-size: 12px !important;
    }

    .mesa-pdp-preparation-grid strong {
        font-size: 11px !important;
    }

    .mesa-pdp-preparation-grid span {
        font-size: 9.5px !important;
    }
}

/* ========================================================
   END MESA PDP PREPARATION TILES V3.1
   ======================================================== */

/* ========================================================
   MESA PRODUCT TECH SHEET V1
   ======================================================== */

body.single-product
.woocommerce-Tabs-panel--additional_information {
    padding: 26px !important;
}


/* Titre */
body.single-product
.woocommerce-Tabs-panel--additional_information > h2 {
    margin: 0 0 18px !important;

    color: #0F2A43 !important;

    font-size: 22px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}


/* Tableau WooCommerce transformé en grille */
body.single-product
.woocommerce-product-attributes {
    width: 100% !important;

    margin: 0 !important;

    border: 0 !important;
    border-collapse: separate !important;
}


/* tbody en grille 2 colonnes */
body.single-product
.woocommerce-product-attributes tbody {
    display: grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr)) !important;

    gap: 10px !important;
}


/* Chaque caractéristique devient une tuile */
body.single-product
.woocommerce-product-attributes tr {
    display: grid !important;

    grid-template-columns:
        minmax(115px, .75fr)
        minmax(0, 1.25fr) !important;

    align-items: center !important;

    min-height: 58px;

    overflow: hidden;

    background: #F4F8FD !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 10px !important;
}


/* Libellé */
body.single-product
.woocommerce-product-attributes th {
    display: block !important;

    width: auto !important;

    padding: 13px 14px !important;

    background: #EAF2FF !important;

    border: 0 !important;

    color: #2563EB !important;

    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;

    text-transform: uppercase;
    letter-spacing: .3px;
}


/* Valeur */
body.single-product
.woocommerce-product-attributes td {
    display: block !important;

    padding: 13px 14px !important;

    background: transparent !important;

    border: 0 !important;

    color: #0F2A43 !important;

    font-size: 13px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

body.single-product
.woocommerce-product-attributes td p {
    margin: 0 !important;

    font-style: normal !important;
}


/* Mobile */
@media (max-width: 800px) {

    body.single-product
    .woocommerce-Tabs-panel--additional_information {
        padding: 18px !important;
    }

    body.single-product
    .woocommerce-Tabs-panel--additional_information > h2 {
        font-size: 20px !important;
    }

    body.single-product
    .woocommerce-product-attributes tbody {
        grid-template-columns: 1fr !important;

        gap: 8px !important;
    }

    body.single-product
    .woocommerce-product-attributes tr {
        grid-template-columns:
            minmax(100px, .7fr)
            minmax(0, 1.3fr) !important;

        min-height: 54px;
    }

    body.single-product
    .woocommerce-product-attributes th,
    body.single-product
    .woocommerce-product-attributes td {
        padding: 11px 12px !important;
    }
}

/* ========================================================
   END MESA PRODUCT TECH SHEET V1
   ======================================================== */

/* ========================================================
   MESA PDP FEATURES V1
   ======================================================== */

.mesa-pdp-features-section {
    margin-top: 22px !important;
}

.mesa-pdp-feature-grid {
    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(210px, 1fr)
        );

    gap: 8px;

    margin-top: 10px;
}

.mesa-pdp-feature-card {
    min-height: 62px;

    padding: 12px 14px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    background: #F4F8FD;

    border: 1px solid #C9D9E9;
    border-radius: 10px;

    box-sizing: border-box;
}

.mesa-pdp-feature-label {
    margin-bottom: 4px;

    color: #2563EB;

    font-size: 9px;
    font-weight: 800;
    line-height: 1.2;

    text-transform: uppercase;
    letter-spacing: .3px;
}

.mesa-pdp-feature-value {
    color: #0F2A43;

    font-size: 12px;
    font-weight: 750;
    line-height: 1.35;
}


/* Une seule information = largeur complète */
.mesa-pdp-feature-card:only-child {
    grid-column: 1 / -1;
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-pdp-features-section {
        margin-top: 18px !important;
    }

    .mesa-pdp-feature-grid {
        grid-template-columns: 1fr;

        gap: 7px;
    }

    .mesa-pdp-feature-card {
        min-height: 56px;

        padding: 11px 12px;
    }

    .mesa-pdp-feature-value {
        font-size: 11.5px;
    }
}

/* ========================================================
   END MESA PDP FEATURES V1
   ======================================================== */

/* ========================================================
   MESA PDP USAGES V1
   ======================================================== */

.mesa-pdp-usage-section {
    margin-top: 20px !important;
}

.mesa-pdp-usage-intro {
    max-width: 850px;

    margin: 8px 0 16px !important;

    color: #53687C;

    font-size: 13px;
    line-height: 1.65;
}


.mesa-pdp-usage-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 8px;
}


.mesa-pdp-usage-card {
    display: flex;
    align-items: flex-start;

    gap: 11px;

    min-height: 82px;

    padding: 13px;

    background: #F4F8FD;

    border: 1px solid #C9D9E9;
    border-radius: 10px;

    box-sizing: border-box;
}


.mesa-pdp-usage-icon {
    width: 30px;
    height: 30px;

    flex: 0 0 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #E2EFFF;

    border-radius: 8px;

    color: #2563EB;

    font-size: 14px;
    font-weight: 900;
}


.mesa-pdp-usage-card strong {
    display: block;

    margin: 1px 0 4px;

    color: #0F2A43;

    font-size: 12px;
    line-height: 1.3;
}


.mesa-pdp-usage-card p {
    margin: 0 !important;

    color: #60758A;

    font-size: 10.5px;
    line-height: 1.5;
}


.mesa-pdp-usage-note {
    margin-top: 9px;

    padding: 11px 13px;

    display: flex;
    gap: 8px;

    background: #FFF9E9;

    border: 1px solid #EBD89E;
    border-radius: 9px;

    color: #5D6470;

    font-size: 10.5px;
    line-height: 1.5;
}

.mesa-pdp-usage-note strong {
    flex: 0 0 auto;

    color: #0F2A43;
}


/* Mobile */
@media (max-width: 800px) {

    .mesa-pdp-usage-intro {
        font-size: 12px;
    }

    .mesa-pdp-usage-grid {
        grid-template-columns: 1fr;
    }

    .mesa-pdp-usage-card {
        min-height: 0;
    }

    .mesa-pdp-usage-note {
        display: block;
    }

    .mesa-pdp-usage-note strong {
        display: block;
        margin-bottom: 3px;
    }
}

/* ========================================================
   END MESA PDP USAGES V1
   ======================================================== */

/* ========================================================
   MESA PDP USAGE GRAND PUBLIC V1
   ======================================================== */

.mesa-pdp-usage-section {
    margin-top: 20px !important;
}

.mesa-pdp-usage-intro {
    max-width: 920px;

    margin: 8px 0 16px !important;

    color: #53687C;

    font-size: 13px;
    line-height: 1.65;
}

.mesa-pdp-usage-intro strong {
    color: #0F2A43;
}


/* Grille */

.mesa-pdp-usage-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 8px;
}


/* Tuile */

.mesa-pdp-usage-card {
    min-height: 92px;

    padding: 13px 14px;

    display: flex;
    align-items: flex-start;

    gap: 11px;

    background: #F4F8FD;

    border: 1px solid #C9D9E9;
    border-radius: 10px;

    box-sizing: border-box;
}


/* Icône */

.mesa-pdp-usage-icon {
    width: 31px;
    height: 31px;

    flex: 0 0 31px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #E2EFFF;

    border-radius: 8px;

    color: #2563EB;

    font-size: 14px;
    font-weight: 900;
}


/* Contenu */

.mesa-pdp-usage-card strong {
    display: block;

    margin: 1px 0 5px;

    color: #0F2A43;

    font-size: 12.5px;
    line-height: 1.3;
}

.mesa-pdp-usage-card p {
    margin: 0 !important;

    color: #60758A;

    font-size: 10.5px;
    line-height: 1.5;
}


/* Usages exigeants */

.mesa-pdp-usage-card-limit {
    background: #FFF9EE;
    border-color: #ECD9A9;
}

.mesa-pdp-usage-card-limit
.mesa-pdp-usage-icon {
    background: #FFF0C7;

    color: #946400;
}


/* Conseil MESA */

.mesa-pdp-usage-advice {
    margin-top: 9px;

    padding: 11px 13px;

    display: flex;
    align-items: center;

    gap: 8px;

    background: #EAF2FF;

    border: 1px solid #BFD3EE;
    border-radius: 9px;

    color: #53687C;

    font-size: 10.5px;
    line-height: 1.45;
}

.mesa-pdp-usage-advice strong {
    flex: 0 0 auto;

    color: #0F2A43;
}


/* Mobile */

@media (max-width: 800px) {

    .mesa-pdp-usage-intro {
        font-size: 12px;
    }

    .mesa-pdp-usage-grid {
        grid-template-columns: 1fr;
    }

    .mesa-pdp-usage-card {
        min-height: 0;
    }

    .mesa-pdp-usage-advice {
        display: block;
    }

    .mesa-pdp-usage-advice strong {
        display: block;

        margin-bottom: 3px;
    }
}

/* ========================================================
   END MESA PDP USAGE GRAND PUBLIC V1
   ======================================================== */

/* ========================================================
   MESA - AJOUT AU PANIER V1
   ======================================================== */

body.single-product
.woocommerce-notices-wrapper {
    width: min(1180px, calc(100% - 32px));

    margin: 18px auto 8px !important;
}


/* Carte de confirmation */
body.single-product
.woocommerce-message {
    position: relative;

    min-height: 54px;

    margin: 0 !important;
    padding: 12px 14px 12px 48px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 18px;

    background: #F1FBF5 !important;

    border: 1px solid #B8DEC7 !important;
    border-left: 4px solid #16A34A !important;
    border-radius: 11px !important;

    box-shadow:
        0 5px 14px rgba(15, 42, 67, .05);

    color: #29485A !important;

    font-size: 12.5px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;

    box-sizing: border-box;
}


/* Icône */
body.single-product
.woocommerce-message::before {
    content: "✓" !important;

    position: absolute !important;

    left: 14px !important;
    top: 50% !important;

    width: 24px !important;
    height: 24px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;

    background: #DDF5E5 !important;

    border-radius: 50% !important;

    color: #15803D !important;

    font-size: 13px !important;
    font-weight: 900 !important;
}


/* Bouton Voir panier */
body.single-product
.woocommerce-message .button {
    float: none !important;

    flex: 0 0 auto;

    margin: 0 !important;
    padding: 9px 15px !important;

    background: #2563EB !important;

    border: 0 !important;
    border-radius: 8px !important;

    color: #FFFFFF !important;

    font-size: 11px !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;

    text-decoration: none !important;

    box-shadow:
        0 5px 12px rgba(37, 99, 235, .17);
}


@media (hover: hover) {

    body.single-product
    .woocommerce-message .button:hover {
        background: #1D4ED8 !important;

        transform: translateY(-1px);
    }
}


/* Mobile */
@media (max-width: 800px) {

    body.single-product
    .woocommerce-notices-wrapper {
        width: calc(100% - 24px);

        margin-top: 12px !important;
    }

    body.single-product
    .woocommerce-message {
        padding:
            12px
            12px
            12px
            44px !important;

        flex-direction: column !important;
        align-items: stretch !important;

        gap: 10px;

        font-size: 12px !important;
    }

    body.single-product
    .woocommerce-message::before {
        left: 11px !important;
        top: 14px !important;

        transform: none !important;

        width: 22px !important;
        height: 22px !important;
    }

    body.single-product
    .woocommerce-message .button {
        width: 100% !important;

        padding: 10px 14px !important;

        text-align: center !important;
    }
}

/* ========================================================
   END MESA - AJOUT AU PANIER V1
   ======================================================== */

/* MESA - finition confirmation ajout panier */
body.single-product .woocommerce-message {
    border: 1px solid #B8DEC7 !important;
    border-left: 4px solid #16A34A !important;
    outline: none !important;

    box-shadow:
        0 4px 12px rgba(15, 42, 67, .06) !important;
}

/* MESA - position bouton Voir le panier */
@media (min-width: 801px) {

    body.single-product
    .woocommerce-message .button {
        order: 2;

        margin-left: auto !important;
        margin-right: 18px !important;
    }
}

/* MESA - bouton Voir le panier compact sur mobile */
@media (max-width: 800px) {

    body.single-product
    .woocommerce-message .button {
        width: auto !important;
        min-width: 150px !important;

        align-self: center !important;

        margin: 0 auto !important;
        padding: 9px 18px !important;

        font-size: 11px !important;

        text-align: center !important;
    }
}

/* ========================================================
   MESA CART BLOCK V1
   ======================================================== */

body.woocommerce-cart {
    background: #EEF5FB;
}


/* Conteneur général */
body.woocommerce-cart
.wp-block-woocommerce-cart {
    width: min(1180px, calc(100% - 40px)) !important;

    margin: 42px auto 70px !important;
}


/* ========================================================
   COLONNE PRODUIT
   ======================================================== */

body.woocommerce-cart
.wc-block-cart__main {
    padding: 0 !important;
}


/* Carte produit */
body.woocommerce-cart
.wc-block-cart-items {
    overflow: hidden;

    background: #FFFFFF !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 14px !important;

    box-shadow:
        0 8px 24px rgba(15, 42, 67, .07);
}


/* Entête Produit */
body.woocommerce-cart
.wc-block-cart-items thead {
    background: #F4F8FD;
}

body.woocommerce-cart
.wc-block-cart-items th {
    padding: 15px 18px !important;

    border-bottom: 1px solid #D7E2ED !important;

    color: #2563EB !important;

    font-size: 10px !important;
    font-weight: 800 !important;

    text-transform: uppercase;
    letter-spacing: .4px;
}


/* Ligne produit */
body.woocommerce-cart
.wc-block-cart-items td {
    padding: 20px 18px !important;

    border-bottom: 0 !important;
}


/* Image produit */
body.woocommerce-cart
.wc-block-cart-item__image img {
    border-radius: 10px !important;

    box-shadow:
        0 3px 10px rgba(15, 42, 67, .08);
}


/* Nom produit */
body.woocommerce-cart
.wc-block-components-product-name {
    color: #0F2A43 !important;

    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;

    text-decoration: none !important;
}


/* Prix */
body.woocommerce-cart
.wc-block-components-product-price {
    color: #0F2A43 !important;

    font-size: 13px !important;
    font-weight: 700 !important;
}


/* Description courte */
body.woocommerce-cart
.wc-block-components-product-metadata {
    margin-top: 5px !important;

    color: #60758A !important;

    font-size: 11px !important;
}


/* Quantité */
body.woocommerce-cart
.wc-block-components-quantity-selector {
    overflow: hidden;

    border: 1px solid #C9D9E9 !important;
    border-radius: 8px !important;

    background: #FFFFFF;
}


/* Supprimer */
body.woocommerce-cart
.wc-block-cart-item__remove-link {
    margin-top: 7px !important;

    color: #64788B !important;

    font-size: 10px !important;
    font-weight: 650 !important;

    text-decoration: none !important;
}

body.woocommerce-cart
.wc-block-cart-item__remove-link:hover {
    color: #B91C1C !important;
}


/* ========================================================
   RECAPITULATIF
   ======================================================== */

body.woocommerce-cart
.wc-block-cart__sidebar {
    padding: 0 !important;
}


/* Carte récapitulatif */
body.woocommerce-cart
.wc-block-cart__sidebar > div {
    background: #FFFFFF;

    border: 1px solid #C9D9E9;
    border-radius: 14px;

    box-shadow:
        0 8px 24px rgba(15, 42, 67, .07);
}


/* Titre Total panier */
body.woocommerce-cart
.wc-block-cart__totals-title {
    padding: 18px 20px 14px !important;

    color: #0F2A43 !important;

    font-size: 17px !important;
    font-weight: 800 !important;

    text-transform: none !important;
}


/* Sections résumé */
body.woocommerce-cart
.wc-block-components-totals-wrapper {
    padding-left: 20px !important;
    padding-right: 20px !important;

    border-color: #E0E8F0 !important;
}


/* Sous-total / expédition */
body.woocommerce-cart
.wc-block-components-totals-item {
    color: #53687C;

    font-size: 12px;
}


/* Total final */
body.woocommerce-cart
.wc-block-components-totals-footer-item {
    color: #0F2A43 !important;

    font-size: 17px !important;
    font-weight: 800 !important;
}


/* Code promo */
body.woocommerce-cart
.wc-block-components-totals-coupon {
    font-size: 11px;
}


/* ========================================================
   PAIEMENTS EXPRESS
   uniquement masqués dans le PANIER
   ======================================================== */

body.woocommerce-cart
.wp-block-woocommerce-cart-express-payment-block,

body.woocommerce-cart
.wc-block-cart__payment-options {
    display: none !important;
}


/* On masque aussi le séparateur OU éventuellement laissé */
body.woocommerce-cart
.wc-block-components-express-payment-continue-rule {
    display: none !important;
}


/* ========================================================
   BOUTON COMMANDER
   ======================================================== */

body.woocommerce-cart
.wc-block-cart__submit {
    padding: 18px 20px 20px !important;
}


body.woocommerce-cart
.wc-block-cart__submit-button {
    min-height: 48px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: #2563EB !important;

    border: 0 !important;
    border-radius: 9px !important;

    color: #FFFFFF !important;

    font-size: 13px !important;
    font-weight: 800 !important;

    text-decoration: none !important;

    box-shadow:
        0 7px 16px rgba(37, 99, 235, .20);

    transition:
        background .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}


@media (hover: hover) {

    body.woocommerce-cart
    .wc-block-cart__submit-button:hover {
        background: #1D4ED8 !important;

        transform: translateY(-1px);

        box-shadow:
            0 10px 20px rgba(37, 99, 235, .24);
    }
}


/* ========================================================
   MOBILE
   ======================================================== */

@media (max-width: 800px) {

    body.woocommerce-cart
    .wp-block-woocommerce-cart {
        width: calc(100% - 24px) !important;

        margin: 20px auto 45px !important;
    }


    body.woocommerce-cart
    .wc-block-cart-items {
        border-radius: 12px !important;
    }


    body.woocommerce-cart
    .wc-block-cart-items td {
        padding: 14px 12px !important;
    }


    body.woocommerce-cart
    .wc-block-components-product-name {
        font-size: 13px !important;
    }


    body.woocommerce-cart
    .wc-block-cart__sidebar {
        margin-top: 14px !important;
    }


    body.woocommerce-cart
    .wc-block-cart__sidebar > div {
        border-radius: 12px;
    }


    body.woocommerce-cart
    .wc-block-cart__totals-title {
        padding: 15px 15px 11px !important;

        font-size: 16px !important;
    }


    body.woocommerce-cart
    .wc-block-components-totals-wrapper {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }


    body.woocommerce-cart
    .wc-block-cart__submit {
        padding: 14px 15px 16px !important;
    }


    body.woocommerce-cart
    .wc-block-cart__submit-button {
        min-height: 46px !important;

        font-size: 12px !important;
    }
}

/* ========================================================
   END MESA CART BLOCK V1
   ======================================================== */

/* ========================================================
   MESA CART V1.1
   PRODUITS GAUCHE / RECAPITULATIF DROITE
   ======================================================== */

@media (min-width: 901px) {

    body.woocommerce-cart
    .wc-block-cart {
        display: grid !important;

        grid-template-columns:
            minmax(0, 1fr)
            370px !important;

        column-gap: 26px !important;

        align-items: start !important;
    }


    /* Produit(s) à gauche */
    body.woocommerce-cart
    .wc-block-cart__main {
        width: auto !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 !important;

        grid-column: 1 !important;
    }


    /* Récapitulatif à droite */
    body.woocommerce-cart
    .wc-block-cart__sidebar {
        width: auto !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 !important;

        grid-column: 2 !important;

        position: sticky !important;
        top: 110px !important;

        align-self: start !important;

        overflow: hidden;

        background: #FFFFFF !important;

        border: 1px solid #C9D9E9 !important;
        border-radius: 14px !important;

        box-shadow:
            0 8px 24px rgba(15,42,67,.08) !important;
    }


    /*
     * On retire les anciennes "cartes dans la carte"
     * créées par notre premier CSS.
     */
    body.woocommerce-cart
    .wc-block-cart__sidebar > div {
        margin: 0 !important;

        background: transparent !important;

        border: 0 !important;
        border-radius: 0 !important;

        box-shadow: none !important;
    }


    /* Total panier */
    body.woocommerce-cart
    .wc-block-cart__totals-title {
        padding:
            19px
            20px
            15px !important;

        margin: 0 !important;

        background: #F4F8FD;

        border-bottom: 1px solid #D8E3EE;

        color: #0F2A43 !important;

        font-size: 18px !important;
        font-weight: 800 !important;
    }


    /* Lignes sous-total / livraison */
    body.woocommerce-cart
    .wc-block-components-totals-wrapper {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }


    /* Information PayPal 4x */
    body.woocommerce-cart
    .wc-block-components-payment-method-icons,
    body.woocommerce-cart
    .wc-block-components-totals-item {
        box-sizing: border-box;
    }


    /* Zone passage commande */
    body.woocommerce-cart
    .wc-block-cart__submit {
        margin: 0 !important;

        padding:
            16px
            20px
            20px !important;

        border-top: 1px solid #E0E8F0;
    }


    /* Bouton principal */
    body.woocommerce-cart
    .wc-block-cart__submit-button {
        width: 100% !important;
        min-height: 50px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
        padding: 12px 18px !important;

        background: #2563EB !important;

        border: 0 !important;
        border-radius: 9px !important;

        color: #FFFFFF !important;

        font-size: 13px !important;
        font-weight: 800 !important;

        opacity: 1 !important;

        box-shadow:
            0 7px 16px rgba(37,99,235,.20) !important;
    }


    body.woocommerce-cart
    .wc-block-cart__submit-button
    .wc-block-components-button__text {
        color: #FFFFFF !important;
        opacity: 1 !important;
    }


    /* Paiements express toujours masqués dans le panier */
    body.woocommerce-cart
    .wp-block-woocommerce-cart-express-payment-block,

    body.woocommerce-cart
    .wc-block-cart__payment-options,

    body.woocommerce-cart
    .wc-block-components-express-payment-continue-rule {
        display: none !important;
    }
}


/* ========================================================
   MOBILE / TABLETTE
   ======================================================== */

@media (max-width: 900px) {

    body.woocommerce-cart
    .wc-block-cart {
        display: block !important;
    }

    body.woocommerce-cart
    .wc-block-cart__main,
    body.woocommerce-cart
    .wc-block-cart__sidebar {
        width: 100% !important;
        max-width: none !important;
    }

    body.woocommerce-cart
    .wc-block-cart__sidebar {
        position: static !important;

        margin-top: 14px !important;

        overflow: hidden;

        background: #FFFFFF !important;

        border: 1px solid #C9D9E9 !important;
        border-radius: 12px !important;

        box-shadow:
            0 6px 18px rgba(15,42,67,.06) !important;
    }

    body.woocommerce-cart
    .wc-block-cart__sidebar > div {
        background: transparent !important;

        border: 0 !important;
        border-radius: 0 !important;

        box-shadow: none !important;
    }

    body.woocommerce-cart
    .wc-block-cart__submit-button {
        width: 100% !important;

        background: #2563EB !important;

        color: #FFFFFF !important;

        border-radius: 9px !important;
    }

    body.woocommerce-cart
    .wc-block-cart__submit-button
    .wc-block-components-button__text {
        color: #FFFFFF !important;
        opacity: 1 !important;
    }
}

/* ========================================================
   END MESA CART V1.1
   ======================================================== */

/* ========================================================
   MESA CART MOBILE - PRODUIT V1
   ======================================================== */

@media (max-width: 800px) {

    body.woocommerce-cart
    .wc-block-cart-items__row {
        position: relative !important;

        display: grid !important;

        grid-template-columns:
            78px
            minmax(0, 1fr) !important;

        grid-template-areas:
            "image product"
            "image total" !important;

        column-gap: 12px !important;

        padding: 15px !important;

        background: #FFFFFF !important;

        border: 0 !important;
    }


    /* Photo */
    body.woocommerce-cart
    .wc-block-cart-item__image {
        grid-area: image !important;

        width: 78px !important;

        padding: 0 !important;

        align-self: start !important;
    }

    body.woocommerce-cart
    .wc-block-cart-item__image img {
        width: 78px !important;
        height: 78px !important;

        object-fit: cover !important;

        border-radius: 9px !important;
    }


    /* Informations produit */
    body.woocommerce-cart
    .wc-block-cart-item__product {
        grid-area: product !important;

        min-width: 0 !important;

        padding: 0 !important;
    }

    body.woocommerce-cart
    .wc-block-components-product-name {
        margin-bottom: 4px !important;

        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    body.woocommerce-cart
    .wc-block-components-product-price {
        margin-bottom: 5px !important;

        font-size: 12px !important;
    }

    body.woocommerce-cart
    .wc-block-components-product-metadata {
        margin: 0 0 8px !important;

        font-size: 10px !important;
        line-height: 1.35 !important;
    }


    /* Prix total de ligne */
    body.woocommerce-cart
    .wc-block-cart-item__total {
        grid-area: total !important;

        padding: 7px 0 0 !important;

        text-align: left !important;
    }

    body.woocommerce-cart
    .wc-block-cart-item__total-price-and-sale-badge-wrapper {
        justify-content: flex-start !important;
    }


    /* Quantité */
    body.woocommerce-cart
    .wc-block-components-quantity-selector {
        max-width: 115px !important;

        margin-top: 6px !important;
    }


    /* Corbeille */
    body.woocommerce-cart
    .wc-block-cart-item__remove-link {
        margin-left: 8px !important;
    }

}

/* ========================================================
   END MESA CART MOBILE - PRODUIT V1
   ======================================================== */

/* ========================================================
   MESA CART - PAYPAL EXPRESS V1
   PayPal seul dans le panier
   ======================================================== */

/*
 * Le bloc Express WooCommerce est réactivé.
 * Les wallets Stripe ont été retirés de l'emplacement panier.
 */
body.woocommerce-cart
.wp-block-woocommerce-cart-express-payment-block {
    display: block !important;

    margin: 0 !important;
    padding: 0 20px 6px !important;

    background: transparent !important;
}


/* Zone du bouton PayPal */
body.woocommerce-cart
.wp-block-woocommerce-cart-express-payment-block
> div {
    margin: 0 !important;
}


/* Séparation PayPal / checkout classique */
body.woocommerce-cart
.wp-block-woocommerce-cart-express-payment-block::after {
    content: "ou";

    display: flex;
    align-items: center;

    gap: 10px;

    margin: 12px 0 2px;

    color: #718397;

    font-size: 10px;
    font-weight: 650;

    text-transform: uppercase;
}

body.woocommerce-cart
.wp-block-woocommerce-cart-express-payment-block::after {
    justify-content: center;
}


/*
 * Les autres zones génériques de wallets restent masquées.
 */
body.woocommerce-cart
.wc-block-cart__payment-options,

body.woocommerce-cart
.wc-block-components-express-payment-continue-rule {
    display: none !important;
}


/* Mobile */
@media (max-width: 900px) {

    body.woocommerce-cart
    .wp-block-woocommerce-cart-express-payment-block {
        padding:
            0
            15px
            5px !important;
    }
}

/* ========================================================
   END MESA CART - PAYPAL EXPRESS V1
   ======================================================== */

/* ========================================================
   MESA CART - PAYPAL EXPRESS FIX V2
   Réactivation du conteneur parent
   ======================================================== */

body.woocommerce-cart
.wc-block-cart__payment-options {
    display: block !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
}


/* Bloc PayPal */
body.woocommerce-cart
.wp-block-woocommerce-cart-express-payment-block {
    display: block !important;

    margin: 0 !important;
    padding: 0 20px 6px !important;

    background: transparent !important;
}


/* On ne veut pas les logos CB acceptés ici */
body.woocommerce-cart
.wp-block-woocommerce-cart-accepted-payment-methods-block {
    display: none !important;
}


/* Le séparateur natif reste masqué,
   on conserve notre "ou" personnalisé */
body.woocommerce-cart
.wc-block-components-express-payment-continue-rule {
    display: none !important;
}


@media (max-width: 900px) {

    body.woocommerce-cart
    .wp-block-woocommerce-cart-express-payment-block {
        padding: 0 15px 5px !important;
    }
}

/* ========================================================
   END MESA CART - PAYPAL EXPRESS FIX V2
   ======================================================== */

/* ========================================================
   MESA CART - BOUTON COMMANDE STYLE PAYPAL
   ======================================================== */

body.woocommerce-cart
.wc-block-cart__submit-button {
    background: #0070BA !important;

    color: #FFFFFF !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size: 16px !important;
    font-weight: 700 !important;

    border-radius: 4px !important;

    box-shadow: none !important;
}

body.woocommerce-cart
.wc-block-cart__submit-button
.wc-block-components-button__text {
    color: #FFFFFF !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size: 16px !important;
    font-weight: 700 !important;
}

@media (hover: hover) {

    body.woocommerce-cart
    .wc-block-cart__submit-button:hover {
        background: #005EA6 !important;

        transform: none !important;

        box-shadow: none !important;
    }
}

/* ========================================================
   END MESA CART - BOUTON COMMANDE STYLE PAYPAL
   ======================================================== */

/* ========================================================
   MESA CART - ALIGNEMENT BOUTONS PAYPAL / COMMANDE
   ======================================================== */

/* Supprime les marges WooCommerce autour du bouton */
body.woocommerce-cart
.wc-block-cart__submit {
    margin: 10px 0 0 !important;
    padding: 0 !important;

    width: 100% !important;
}


/* Même largeur et hauteur visuelle que PayPal */
body.woocommerce-cart
.wc-block-cart__submit-button {
    width: 100% !important;
    max-width: none !important;

    min-height: 53px !important;
    height: 53px !important;

    margin: 0 !important;
    padding: 0 18px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;

    background: #0070BA !important;

    border: 0 !important;
    border-radius: 4px !important;

    color: #FFFFFF !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size: 16px !important;
    font-weight: 700 !important;

    line-height: 1 !important;

    box-shadow: none !important;
}


/* Texte parfaitement centré */
body.woocommerce-cart
.wc-block-cart__submit-button
.wc-block-components-button__text {
    margin: 0 !important;

    color: #FFFFFF !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size: 16px !important;
    font-weight: 700 !important;

    line-height: 1 !important;
}


/* Mobile identique */
@media (max-width: 900px) {

    body.woocommerce-cart
    .wc-block-cart__submit-button {
        width: 100% !important;
        height: 53px !important;
        min-height: 53px !important;
    }
}

/* ========================================================
   END ALIGNEMENT BOUTONS PAYPAL / COMMANDE
   ======================================================== */

/* ========================================================
   MESA CART - FINITION PAYPAL / COMMANDE
   ======================================================== */

/* Zone PayPal avec marge latérale */
body.woocommerce-cart
.wc-block-cart__payment-options {
    padding: 0 20px !important;
    box-sizing: border-box !important;
}

body.woocommerce-cart
.wp-block-woocommerce-cart-express-payment-block {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
}


/* On retire l'ancien "ou" éventuel */
body.woocommerce-cart
.wp-block-woocommerce-cart-express-payment-block::after {
    display: none !important;
}


/* Zone bouton classique */
body.woocommerce-cart
.wc-block-cart__submit {
    width: auto !important;

    margin: 0 !important;
    padding: 0 20px 20px !important;

    box-sizing: border-box !important;
}


/* Séparateur OU */
body.woocommerce-cart
.wc-block-cart__submit::before {
    content: "OU";

    width: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 12px 0;

    color: #718397;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
}


/* Même gabarit que PayPal */
body.woocommerce-cart
.wc-block-cart__submit-button {
    width: 100% !important;
    max-width: none !important;

    height: 53px !important;
    min-height: 53px !important;

    margin: 0 !important;
    padding: 0 18px !important;

    background: #0070BA !important;

    border: 0 !important;
    border-radius: 6px !important;

    color: #FFFFFF !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size: 16px !important;
    font-weight: 700 !important;

    line-height: 1 !important;

    box-shadow: none !important;
}


/* Mobile */
@media (max-width: 900px) {

    body.woocommerce-cart
    .wc-block-cart__payment-options {
        padding: 0 15px !important;
    }

    body.woocommerce-cart
    .wc-block-cart__submit {
        padding:
            0
            15px
            16px !important;
    }

    body.woocommerce-cart
    .wc-block-cart__submit::before {
        margin: 10px 0;
    }
}

/* ========================================================
   END MESA CART - FINITION PAYPAL / COMMANDE
   ======================================================== */

/* ========================================================
   MESA CART - FINITION NOM PRODUIT
   ======================================================== */

body.woocommerce-cart
.wc-block-components-product-name {
    margin: 0 0 4px !important;

    color: #0F2A43 !important;

    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}


/* Nouvelle ligne caractéristiques */
body.woocommerce-cart
.mesa-cart-product-specs {
    margin: 0 0 7px;

    color: #60758A;

    font-size: 11px;
    font-weight: 500;
    line-height: 1.35;
}


/* Ancienne ligne WooCommerce devenue redondante */
body.woocommerce-cart
.wc-block-components-product-metadata {
    display: none !important;
}


@media (max-width: 800px) {

    body.woocommerce-cart
    .wc-block-components-product-name {
        font-size: 13px !important;
    }

    body.woocommerce-cart
    .mesa-cart-product-specs {
        font-size: 10px;
    }
}

/* ========================================================
   END MESA CART - FINITION NOM PRODUIT
   ======================================================== */

/* ========================================================
   MESA CHECKOUT V1
   ======================================================== */

body.woocommerce-checkout {
    background: #EEF5FB;
}


/* --------------------------------------------------------
   CONTENEUR GENERAL
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout {
    width: min(1180px, calc(100% - 40px)) !important;

    margin: 38px auto 70px !important;
}


/* --------------------------------------------------------
   PAYPAL EXPRESS EN HAUT
   Masqué : PayPal reste disponible dans Options de paiement
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-express-payment-block {
    display: none !important;
}


/* --------------------------------------------------------
   COLONNE PRINCIPALE
   -------------------------------------------------------- */

body.woocommerce-checkout
.wc-block-checkout__main {
    padding: 0 !important;
}


/* Chaque étape devient une section propre */
body.woocommerce-checkout
.wc-block-components-checkout-step {
    margin: 0 0 14px !important;
    padding: 20px !important;

    background: #FFFFFF;

    border: 1px solid #C9D9E9;
    border-radius: 13px;

    box-shadow:
        0 6px 18px rgba(15, 42, 67, .05);
}


/* Titres */
body.woocommerce-checkout
.wc-block-components-checkout-step__heading {
    margin-bottom: 15px !important;
}

body.woocommerce-checkout
.wc-block-components-checkout-step__title {
    color: #0F2A43 !important;

    font-size: 19px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}


/* Textes secondaires */
body.woocommerce-checkout
.wc-block-components-checkout-step__description {
    color: #60758A !important;

    font-size: 11px !important;
}


/* --------------------------------------------------------
   CHAMPS
   -------------------------------------------------------- */

body.woocommerce-checkout
.wc-block-components-text-input input,

body.woocommerce-checkout
.wc-block-components-combobox-control input,

body.woocommerce-checkout
.wc-block-components-address-form input,

body.woocommerce-checkout
.wc-block-components-address-form select {
    min-height: 48px !important;

    background: #FFFFFF !important;

    border: 1px solid #BCCDDD !important;
    border-radius: 8px !important;

    color: #0F2A43 !important;

    font-size: 13px !important;

    box-shadow: none !important;
}


body.woocommerce-checkout
.wc-block-components-text-input input:focus,

body.woocommerce-checkout
.wc-block-components-address-form input:focus {
    border-color: #2563EB !important;

    box-shadow:
        0 0 0 2px rgba(37, 99, 235, .10) !important;
}


/* --------------------------------------------------------
   OPTIONS LIVRAISON
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control-accordion-option {
    margin-bottom: 8px !important;
    padding: 14px !important;

    background: #F7FAFD !important;

    border: 1px solid #CAD8E6 !important;
    border-radius: 10px !important;
}


/* Option sélectionnée */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option--checked,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control-accordion-option--checked {
    background: #EEF5FF !important;

    border-color: #2563EB !important;

    box-shadow:
        0 0 0 1px rgba(37,99,235,.08);
}


/* Nom livraison */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__label {
    color: #0F2A43 !important;

    font-size: 12px !important;
    font-weight: 750 !important;
}


/* Prix livraison */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__secondary-label {
    color: #0F2A43 !important;

    font-size: 12px !important;
    font-weight: 800 !important;
}


/* Bouton sélection point relais */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block button {
    margin-top: 8px !important;
    padding: 8px 12px !important;

    background: #2563EB !important;

    border: 0 !important;
    border-radius: 7px !important;

    color: #FFFFFF !important;

    font-size: 10px !important;
    font-weight: 750 !important;

    box-shadow: none !important;
}


/* --------------------------------------------------------
   OPTIONS PAIEMENT
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option {
    overflow: hidden;

    margin-bottom: 8px !important;

    background: #F7FAFD !important;

    border: 1px solid #CAD8E6 !important;
    border-radius: 10px !important;
}


/* En-tête moyen paiement */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__option {
    padding: 14px !important;
}


/* Option paiement sélectionnée */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option--checked {
    background: #FFFFFF !important;

    border-color: #2563EB !important;
}


/* Zone intérieure du paiement */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-content {
    padding:
        5px
        14px
        15px !important;

    background: #FFFFFF !important;
}


/* --------------------------------------------------------
   CONDITIONS / NOTE
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-order-note-block,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-terms-block {
    margin-bottom: 12px !important;
}


/* --------------------------------------------------------
   BOUTON COMMANDER
   -------------------------------------------------------- */

body.woocommerce-checkout
.wc-block-components-checkout-place-order-button {
    width: 100% !important;

    min-height: 52px !important;

    margin-top: 8px !important;

    background: #2563EB !important;

    border: 0 !important;
    border-radius: 9px !important;

    color: #FFFFFF !important;

    font-size: 14px !important;
    font-weight: 800 !important;

    box-shadow:
        0 7px 16px rgba(37,99,235,.18) !important;
}


body.woocommerce-checkout
.wc-block-components-checkout-place-order-button
.wc-block-components-button__text {
    color: #FFFFFF !important;
}


@media (hover: hover) {

    body.woocommerce-checkout
    .wc-block-components-checkout-place-order-button:hover {
        background: #1D4ED8 !important;

        transform: translateY(-1px);
    }
}


/* --------------------------------------------------------
   RESUME COMMANDE DROITE
   -------------------------------------------------------- */

body.woocommerce-checkout
.wc-block-checkout__sidebar {
    align-self: start !important;

    position: sticky !important;
    top: 105px !important;

    overflow: hidden;

    padding: 0 !important;

    background: #FFFFFF !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 14px !important;

    box-shadow:
        0 8px 24px rgba(15,42,67,.08) !important;
}


/* Retire les cartes imbriquées */
body.woocommerce-checkout
.wc-block-checkout__sidebar > div {
    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}


/* Titre résumé */
body.woocommerce-checkout
.wc-block-components-checkout-order-summary__title {
    padding: 18px 18px 14px !important;

    margin: 0 !important;

    background: #F4F8FD;

    border-bottom: 1px solid #D8E3EE;

    color: #0F2A43 !important;

    font-size: 18px !important;
    font-weight: 800 !important;
}


/* Produit résumé */
body.woocommerce-checkout
.wc-block-components-order-summary-item {
    padding:
        15px
        18px !important;

    border-bottom: 1px solid #E2EAF2 !important;
}


/* Nom produit */
body.woocommerce-checkout
.wc-block-components-order-summary-item__description
.wc-block-components-product-name {
    color: #0F2A43 !important;

    font-size: 12px !important;
    font-weight: 750 !important;
}


/* Image */
body.woocommerce-checkout
.wc-block-components-order-summary-item__image img {
    border-radius: 8px !important;
}


/* Totaux */
body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-totals-wrapper {
    padding-left: 18px !important;
    padding-right: 18px !important;

    border-color: #E2EAF2 !important;
}


/* Total final */
body.woocommerce-checkout
.wc-block-checkout__sidebar
.wc-block-components-totals-footer-item {
    color: #0F2A43 !important;

    font-size: 17px !important;
    font-weight: 800 !important;
}


/* --------------------------------------------------------
   MOBILE
   -------------------------------------------------------- */

@media (max-width: 900px) {

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout {
        width: calc(100% - 24px) !important;

        margin: 18px auto 45px !important;
    }


    body.woocommerce-checkout
    .wc-block-components-checkout-step {
        margin-bottom: 10px !important;

        padding: 15px !important;

        border-radius: 11px;
    }


    body.woocommerce-checkout
    .wc-block-components-checkout-step__title {
        font-size: 17px !important;
    }


    body.woocommerce-checkout
    .wc-block-components-text-input input,

    body.woocommerce-checkout
    .wc-block-components-address-form input {
        min-height: 45px !important;
    }


    body.woocommerce-checkout
    .wc-block-checkout__sidebar {
        position: static !important;

        margin-top: 14px !important;

        border-radius: 11px !important;
    }


    body.woocommerce-checkout
    .wc-block-components-checkout-place-order-button {
        min-height: 48px !important;

        font-size: 13px !important;
    }


    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-shipping-method-block
    button {
        width: 100% !important;

        text-align: center !important;
    }
}

/* ========================================================
   END MESA CHECKOUT V1
   ======================================================== */

/* ========================================================
   MESA CHECKOUT V1.1 - FINITIONS
   ======================================================== */


/* --------------------------------------------------------
   SUPPRESSION COMPLETE DU CHECKOUT EXPRESS EN HAUT
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-express-payment-block,

body.woocommerce-checkout
.wc-block-components-express-payment,

body.woocommerce-checkout
.wc-block-components-express-payment-continue-rule {
    display: none !important;
}


/* --------------------------------------------------------
   RESUME COMMANDE : REMONTE EN HAUT
   -------------------------------------------------------- */

@media (min-width: 901px) {

    body.woocommerce-checkout
    .wc-block-checkout {
        align-items: start !important;
    }

    body.woocommerce-checkout
    .wc-block-checkout__sidebar {
        position: sticky !important;

        top: 105px !important;

        margin-top: 0 !important;

        align-self: start !important;

        transform: none !important;
    }

}


/* --------------------------------------------------------
   OPTIONS DE PAIEMENT
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option {
    margin-bottom: 8px !important;

    border-radius: 10px !important;
}


/* Ligne contenant radio + nom du paiement */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__option {
    min-height: 52px !important;

    padding:
        14px
        16px !important;

    display: flex !important;
    align-items: center !important;

    box-sizing: border-box !important;
}


/* Radio */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__input {
    margin-right: 10px !important;

    flex: 0 0 auto !important;
}


/* Libellé */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__label {
    padding: 0 !important;

    color: #0F2A43 !important;

    font-size: 12px !important;
    font-weight: 700 !important;
}


/* PayPal */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option:last-child
.wc-block-components-radio-control__option {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}


/* --------------------------------------------------------
   MOBILE
   -------------------------------------------------------- */

@media (max-width: 900px) {

    body.woocommerce-checkout
    .wc-block-checkout__sidebar {
        position: static !important;

        margin-top: 12px !important;
    }

}

/* ========================================================
   END MESA CHECKOUT V1.1
   ======================================================== */

/* ========================================================
   MESA CHECKOUT - ALIGNEMENT RADIO PAIEMENT
   ======================================================== */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__option {
    position: relative !important;

    min-height: 54px !important;

    padding:
        15px
        52px
        15px
        48px !important;

    display: flex !important;
    align-items: center !important;

    box-sizing: border-box !important;
}


/* Cercle radio */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__input {
    position: absolute !important;

    left: 16px !important;
    top: 50% !important;

    width: 20px !important;
    height: 20px !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;
}


/* Texte du moyen de paiement */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__label {
    display: block !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #0F2A43 !important;

    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}


/* Logo PayPal à droite */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__secondary-label {
    margin-left: auto !important;
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control__option {
        padding:
            14px
            46px
            14px
            44px !important;
    }

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control__input {
        left: 14px !important;
    }
}

/* ========================================================
   END MESA CHECKOUT - ALIGNEMENT RADIO PAIEMENT
   ======================================================== */

/* ========================================================
   MESA CHECKOUT - PAYPAL CARD V2
   ======================================================== */

/* Cible uniquement PayPal */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option:
has(input[value="ppcp-gateway"]) {
    margin-top: 8px !important;

    background: #FFFFFF !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 10px !important;

    overflow: hidden;
}


/* Ligne PayPal */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option:
has(input[value="ppcp-gateway"])
.wc-block-components-radio-control__option {
    min-height: 68px !important;

    padding:
        13px
        75px
        13px
        48px !important;

    background: #F7FAFD !important;
}


/* Sélection PayPal */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option:
has(input[value="ppcp-gateway"]:checked)
.wc-block-components-radio-control__option {
    background: #EEF5FF !important;
}


/* Texte PayPal */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option:
has(input[value="ppcp-gateway"])
.wc-block-components-radio-control__label {
    color: #0F2A43 !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}


/* Sous-titre */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option:
has(input[value="ppcp-gateway"])
.wc-block-components-radio-control__label::after {
    content: "Paiement sécurisé via PayPal";

    display: block;

    margin-top: 4px;

    color: #60758A;

    font-size: 10px;
    font-weight: 500;
    line-height: 1.3;
}


/* Logo PayPal */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option:
has(input[value="ppcp-gateway"])
.wc-block-components-radio-control__secondary-label {
    position: absolute !important;

    right: 18px !important;
    top: 50% !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;
}

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option:
has(input[value="ppcp-gateway"])
.wc-block-components-radio-control__secondary-label img {
    width: auto !important;
    max-width: 38px !important;
    max-height: 26px !important;
}


/* Survol */
@media (hover: hover) {

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control-accordion-option:
    has(input[value="ppcp-gateway"]):hover {
        border-color: #9DB9D6 !important;
    }
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control-accordion-option:
    has(input[value="ppcp-gateway"])
    .wc-block-components-radio-control__option {
        min-height: 64px !important;

        padding:
            12px
            62px
            12px
            44px !important;
    }

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control-accordion-option:
    has(input[value="ppcp-gateway"])
    .wc-block-components-radio-control__secondary-label {
        right: 14px !important;
    }
}

/* ========================================================
   END MESA CHECKOUT - PAYPAL CARD V2
   ======================================================== */

/* ========================================================
   MESA CHECKOUT - PAYPAL CARD V3
   ======================================================== */

body.woocommerce-checkout
.mesa-checkout-paypal-option {
    overflow: hidden !important;

    margin-top: 9px !important;

    background: #F7FAFD !important;

    border: 1px solid #BFD2E5 !important;
    border-radius: 10px !important;

    transition:
        border-color .18s ease,
        background .18s ease,
        box-shadow .18s ease;
}


/* Ligne principale */
body.woocommerce-checkout
.mesa-checkout-paypal-option
.wc-block-components-radio-control__option {
    position: relative !important;

    min-height: 70px !important;

    padding:
        14px
        78px
        14px
        48px !important;

    background: transparent !important;
}


/* Cercle */
body.woocommerce-checkout
.mesa-checkout-paypal-option
.wc-block-components-radio-control__input {
    left: 16px !important;
}


/* PayPal */
body.woocommerce-checkout
.mesa-checkout-paypal-option
.wc-block-components-radio-control__label {
    color: #0F2A43 !important;

    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}


/* Sous-titre */
body.woocommerce-checkout
.mesa-paypal-subtitle {
    display: block;

    margin-top: 4px;

    color: #60758A;

    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.3;
}


/* Logo PayPal */
body.woocommerce-checkout
.mesa-checkout-paypal-option
.wc-block-components-radio-control__secondary-label {
    position: absolute !important;

    right: 18px !important;
    top: 50% !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;
}

body.woocommerce-checkout
.mesa-checkout-paypal-option
.wc-block-components-radio-control__secondary-label img {
    width: auto !important;
    max-width: 44px !important;
    max-height: 30px !important;
}


/* PayPal sélectionné */
body.woocommerce-checkout
.mesa-checkout-paypal-option:
has(input:checked) {
    background: #EEF5FF !important;

    border-color: #2563EB !important;

    box-shadow:
        0 0 0 1px rgba(37,99,235,.08) !important;
}


/* Survol */
@media (hover: hover) {

    body.woocommerce-checkout
    .mesa-checkout-paypal-option:hover {
        border-color: #8FB1D3 !important;
    }
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-checkout
    .mesa-checkout-paypal-option
    .wc-block-components-radio-control__option {
        min-height: 66px !important;

        padding:
            12px
            65px
            12px
            44px !important;
    }

    body.woocommerce-checkout
    .mesa-checkout-paypal-option
    .wc-block-components-radio-control__secondary-label {
        right: 14px !important;
    }
}

/* ========================================================
   END MESA CHECKOUT - PAYPAL CARD V3
   ======================================================== */

/* ========================================================
   MESA CHECKOUT PAYMENT FINAL V1
   RESET WOOCOMMERCE
   ======================================================== */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-option {

    position: relative !important;

    overflow: hidden !important;

    margin: 0 0 10px !important;

    background: #FFFFFF !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 11px !important;

    outline: 0 !important;

    box-shadow:
        0 3px 10px rgba(15,42,67,.035) !important;
}


/*
 * IMPORTANT
 *
 * WooCommerce mettait sa bordure noire
 * sur cette partie uniquement.
 *
 * On la supprime complètement.
 */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__option {

    position: relative !important;

    min-height: 68px !important;

    margin: 0 !important;

    padding:
        14px
        72px
        14px
        50px !important;

    display: flex !important;
    align-items: center !important;

    background: #F8FBFE !important;

    border: 0 !important;
    border-width: 0 !important;

    outline: 0 !important;

    box-shadow: none !important;

    box-sizing: border-box !important;
}


/* Pseudo éléments WooCommerce */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__option::before,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__option::after {

    box-shadow: none !important;
}


/* Contenu déplié */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control-accordion-content {

    margin: 0 !important;

    padding:
        16px
        18px
        18px !important;

    background: #FFFFFF !important;

    border: 0 !important;
    border-top: 1px solid #DCE6F0 !important;

    outline: 0 !important;

    box-shadow: none !important;
}


/* ========================================================
   END RESET
   ======================================================== */

/* ========================================================
   MESA CHECKOUT PAYMENT FINAL V1
   DESIGN
   ======================================================== */


/* --------------------------------------------------------
   CARTE SELECTIONNEE
   -------------------------------------------------------- */

body.woocommerce-checkout
.mesa-payment-card:has(input:checked),

body.woocommerce-checkout
.mesa-payment-paypal:has(input:checked) {

    background: #FFFFFF !important;

    border: 2px solid #2563EB !important;

    box-shadow:
        0 0 0 3px rgba(37,99,235,.08),
        0 7px 18px rgba(15,42,67,.06) !important;
}


/* Header sélectionné */
body.woocommerce-checkout
.mesa-payment-card:has(input:checked)
.wc-block-components-radio-control__option,

body.woocommerce-checkout
.mesa-payment-paypal:has(input:checked)
.wc-block-components-radio-control__option {

    background: #EDF4FF !important;

    border: 0 !important;
    outline: 0 !important;

    box-shadow: none !important;
}


/* --------------------------------------------------------
   RADIO
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__input {

    position: absolute !important;

    left: 17px !important;
    top: 50% !important;

    width: 20px !important;
    height: 20px !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;

    accent-color: #2563EB;
}


/* --------------------------------------------------------
   TITRE
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__label {

    display: block !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #0F2A43 !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}


/* Sous-titre MESA */
body.woocommerce-checkout
.mesa-payment-subtitle,

body.woocommerce-checkout
.mesa-paypal-subtitle {

    display: block !important;

    margin-top: 4px !important;

    color: #60758A !important;

    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
}


/* --------------------------------------------------------
   BADGE MODE TEST
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-payment-method-label__test-mode-badge,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
[class*="test-mode"] {

    border-radius: 6px !important;
}


/* --------------------------------------------------------
   LOGOS
   -------------------------------------------------------- */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
.wc-block-components-radio-control__secondary-label {

    position: absolute !important;

    right: 18px !important;
    top: 50% !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;
}


body.woocommerce-checkout
.mesa-payment-paypal
.wc-block-components-radio-control__secondary-label img {

    width: auto !important;

    max-width: 42px !important;
    max-height: 29px !important;
}


/* --------------------------------------------------------
   PAYPAL CONTENT
   -------------------------------------------------------- */

body.woocommerce-checkout
.mesa-payment-paypal
.wc-block-components-radio-control-accordion-content {

    padding:
        15px
        18px
        17px !important;

    background: #FBFDFF !important;

    color: #53687C !important;

    font-size: 11px !important;
    line-height: 1.55 !important;
}


/* --------------------------------------------------------
   STRIPE CONTENT
   -------------------------------------------------------- */

body.woocommerce-checkout
.mesa-payment-card
.wc-block-components-radio-control-accordion-content {

    background: #FFFFFF !important;
}


/* Encadré Stripe */
body.woocommerce-checkout
.mesa-payment-card
.wc-block-gateway-container {

    border-color: #D6E1EC !important;
    border-radius: 9px !important;

    box-shadow: none !important;
}


/* --------------------------------------------------------
   SURVOL
   -------------------------------------------------------- */

@media (hover: hover) {

    body.woocommerce-checkout
    .mesa-payment-card:hover,

    body.woocommerce-checkout
    .mesa-payment-paypal:hover {

        border-color: #9AB9D7 !important;

        box-shadow:
            0 5px 14px rgba(15,42,67,.06) !important;
    }


    body.woocommerce-checkout
    .mesa-payment-card:has(input:checked):hover,

    body.woocommerce-checkout
    .mesa-payment-paypal:has(input:checked):hover {

        border-color: #2563EB !important;

        box-shadow:
            0 0 0 3px rgba(37,99,235,.08),
            0 7px 18px rgba(15,42,67,.06) !important;
    }
}


/* --------------------------------------------------------
   MOBILE
   -------------------------------------------------------- */

@media (max-width: 800px) {

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control__option {

        min-height: 64px !important;

        padding:
            12px
            62px
            12px
            45px !important;
    }


    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control__input {

        left: 14px !important;

        width: 19px !important;
        height: 19px !important;
    }


    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control__secondary-label {

        right: 13px !important;
    }


    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control-accordion-content {

        padding:
            13px
            14px
            15px !important;
    }
}

/* ========================================================
   END MESA CHECKOUT PAYMENT FINAL V1
   ======================================================== */

/* ========================================================
   MESA CHECKOUT - PAYPAL COMPACT FINAL
   ======================================================== */


/* L'ancien sous-titre créé précédemment provoque le doublon */
body.woocommerce-checkout
.mesa-payment-paypal
.mesa-paypal-subtitle {
    display: none !important;
}


/* On conserve uniquement le nouveau sous-titre */
body.woocommerce-checkout
.mesa-payment-paypal
.mesa-payment-subtitle {
    display: block !important;

    margin-top: 4px !important;

    color: #60758A !important;

    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
}


/*
 * L'explication native PayPal est inutile ici.
 * Le bouton final "Continuer sur PayPal" suffit.
 */
body.woocommerce-checkout
.mesa-payment-paypal
.wc-block-components-radio-control-accordion-content {
    display: none !important;
}


/* Carte PayPal */
body.woocommerce-checkout
.mesa-payment-paypal {
    min-height: 0 !important;

    margin-top: 9px !important;

    overflow: hidden !important;

    background: #FFFFFF !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 10px !important;

    box-shadow: none !important;
}


/* Partie cliquable */
body.woocommerce-checkout
.mesa-payment-paypal
.wc-block-components-radio-control__option {
    min-height: 68px !important;

    margin: 0 !important;

    padding:
        13px
        76px
        13px
        48px !important;

    background: #F8FBFE !important;

    border: 0 !important;
    outline: 0 !important;

    box-shadow: none !important;
}


/* PayPal sélectionné */
body.woocommerce-checkout
.mesa-payment-paypal:has(input:checked) {
    background: #FFFFFF !important;

    border: 1.5px solid #2563EB !important;

    box-shadow:
        0 0 0 3px rgba(37,99,235,.07) !important;
}


body.woocommerce-checkout
.mesa-payment-paypal:has(input:checked)
.wc-block-components-radio-control__option {
    background: #EEF5FF !important;
}


/* Radio */
body.woocommerce-checkout
.mesa-payment-paypal
.wc-block-components-radio-control__input {
    position: absolute !important;

    left: 16px !important;
    top: 50% !important;

    width: 20px !important;
    height: 20px !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;

    accent-color: #2563EB;
}


/* Titre PayPal */
body.woocommerce-checkout
.mesa-payment-paypal
.wc-block-components-radio-control__label {
    margin: 0 !important;
    padding: 0 !important;

    color: #0F2A43 !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}


/* Logo */
body.woocommerce-checkout
.mesa-payment-paypal
.wc-block-components-radio-control__secondary-label {
    position: absolute !important;

    right: 18px !important;
    top: 50% !important;

    margin: 0 !important;

    transform: translateY(-50%) !important;
}


body.woocommerce-checkout
.mesa-payment-paypal
.wc-block-components-radio-control__secondary-label img {
    width: auto !important;

    max-width: 40px !important;
    max-height: 28px !important;
}


/* Survol */
@media (hover: hover) {

    body.woocommerce-checkout
    .mesa-payment-paypal:hover {
        border-color: #9AB7D4 !important;
    }

    body.woocommerce-checkout
    .mesa-payment-paypal:has(input:checked):hover {
        border-color: #2563EB !important;
    }
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-checkout
    .mesa-payment-paypal
    .wc-block-components-radio-control__option {
        min-height: 64px !important;

        padding:
            12px
            62px
            12px
            44px !important;
    }

    body.woocommerce-checkout
    .mesa-payment-paypal
    .wc-block-components-radio-control__input {
        left: 14px !important;
    }

    body.woocommerce-checkout
    .mesa-payment-paypal
    .wc-block-components-radio-control__secondary-label {
        right: 14px !important;
    }
}

/* ========================================================
   END MESA CHECKOUT - PAYPAL COMPACT FINAL
   ======================================================== */

/* ========================================================
   MESA CHECKOUT - RESUME PRODUIT SIMPLIFIE
   ======================================================== */

/*
 * Masque le prix unitaire répété sous le nom.
 * Le prix reste affiché à droite de la ligne produit.
 */
body.woocommerce-checkout
.wc-block-components-order-summary-item__description
.wc-block-components-product-price {
    display: none !important;
}


/*
 * Masque les métadonnées WooCommerce supplémentaires
 * qui répètent déjà processeur / RAM / stockage.
 */
body.woocommerce-checkout
.wc-block-components-order-summary-item__description
.wc-block-components-product-metadata {
    display: none !important;
}


/* Un peu plus d'air entre le nom et la ligne descriptive */
body.woocommerce-checkout
.wc-block-components-order-summary-item__description
.wc-block-components-product-name {
    margin-bottom: 5px !important;

    line-height: 1.3 !important;
}


/* Texte descriptif restant */
body.woocommerce-checkout
.wc-block-components-order-summary-item__description {
    color: #60758A;

    line-height: 1.4;
}

/* ========================================================
   END MESA CHECKOUT - RESUME PRODUIT SIMPLIFIE
   ======================================================== */

/* ========================================================
   MESA CHECKOUT - LIVRAISON FINAL V1
   ======================================================== */


/* Carte de chaque mode de livraison */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control-accordion-option,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option {

    border-color: #C9D9E9 !important;

    outline: 0 !important;

    box-shadow: none !important;
}


/*
 * Neutralise la bordure noire WooCommerce
 * sur la partie interne.
 */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option {

    position: relative !important;

    margin: 0 !important;

    background: #F8FBFE !important;

    border: 0 !important;
    outline: 0 !important;

    box-shadow: none !important;
}


/* Carte complète */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control-accordion-option {

    overflow: hidden !important;

    margin-bottom: 8px !important;

    background: #FFFFFF !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 10px !important;

    box-shadow: none !important;
}


/* Mode sélectionné */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control-accordion-option:
has(input:checked) {

    border: 2px solid #2563EB !important;

    background: #FFFFFF !important;

    box-shadow:
        0 0 0 3px rgba(37,99,235,.07) !important;
}


/* Fond de l'option sélectionnée */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control-accordion-option:
has(input:checked)
.wc-block-components-radio-control__option {

    background: #EEF5FF !important;

    border: 0 !important;

    box-shadow: none !important;
}


/* Radio */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__input {

    accent-color: #2563EB !important;
}


/* Nom livraison */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__label {

    color: #0F2A43 !important;

    font-weight: 750 !important;
}


/* Prix */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__secondary-label {

    color: #0F2A43 !important;

    font-weight: 800 !important;
}


/* Bouton point relais */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
button {

    padding: 8px 13px !important;

    background: #2563EB !important;

    border: 0 !important;
    border-radius: 7px !important;

    color: #FFFFFF !important;

    font-size: 11px !important;
    font-weight: 750 !important;

    box-shadow: none !important;
}


/* Mobile */
@media (max-width: 800px) {

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-shipping-method-block
    button {

        width: auto !important;

        min-width: 165px !important;

        padding: 8px 12px !important;
    }

}


/* ========================================================
   END MESA CHECKOUT - LIVRAISON FINAL V1
   ======================================================== */

/* ========================================================
   MESA CHECKOUT - LIVRAISON SELECTIONNEE V2
   ======================================================== */

body.woocommerce-checkout
.mesa-shipping-selected {

    border: 2px solid #2563EB !important;

    border-radius: 10px !important;

    outline: 0 !important;

    box-shadow:
        0 0 0 3px rgba(37,99,235,.07) !important;
}


body.woocommerce-checkout
.mesa-shipping-selected
.wc-block-components-radio-control__option {

    border: 0 !important;

    outline: 0 !important;

    background: #EEF5FF !important;

    box-shadow: none !important;
}


/* Neutralise les états natifs WooCommerce */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
input[type="radio"]:checked
~ * {

    outline: 0 !important;
}


/* Bouton point relais */
body.woocommerce-checkout
.mesa-shipping-selected button {

    background: #2563EB !important;

    border: 0 !important;

    color: #FFFFFF !important;

    border-radius: 7px !important;

    box-shadow: none !important;
}

/* ========================================================
   END MESA CHECKOUT - LIVRAISON SELECTIONNEE V2
   ======================================================== */

/* ========================================================
   MESA - ETAT LIVRAISON SELECTIONNEE
   Cible directe WooCommerce Blocks
   ======================================================== */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option--checked {
    background: #EEF5FF !important;

    border: 2px solid #2563EB !important;
    border-radius: 10px !important;

    outline: none !important;

    box-shadow:
        0 0 0 3px rgba(37,99,235,.07) !important;
}


/* Neutralise la bordure noire interne WooCommerce */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option--checked::before,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option--checked::after {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}


/* Bouton point relais */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option--checked button {
    background: #2563EB !important;
    color: #fff !important;

    border: 0 !important;
    border-radius: 7px !important;
}

/* ========================================================
   MESA CHECKOUT - SUPPRESSION CONTOUR NOIR WOOCOMMERCE
   ======================================================== */

/*
 * WooCommerce Blocks dessine son contour de sélection
 * avec ::before + box-shadow inset.
 * On le neutralise uniquement pour la livraison.
 */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control--highlight-checked
label.wc-block-components-radio-control-accordion-option::before {
    content: none !important;

    display: none !important;

    border: 0 !important;
    outline: 0 !important;

    box-shadow: none !important;
}


/* Supprime aussi la petite ligne native générée par ::after */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control--highlight-checked
label.wc-block-components-radio-control-accordion-option::after {
    content: none !important;

    display: none !important;

    background: transparent !important;

    border: 0 !important;
    box-shadow: none !important;
}


/* Notre état sélectionné */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
label.wc-block-components-radio-control-accordion-option:has(input:checked) {
    background: #EEF5FF !important;

    border: 2px solid #2563EB !important;
    border-radius: 10px !important;

    outline: 0 !important;

    box-shadow:
        0 0 0 3px rgba(37, 99, 235, .07) !important;
}


/* La partie intérieure ne doit plus avoir de bordure */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
label.wc-block-components-radio-control-accordion-option:has(input:checked)
.wc-block-components-radio-control__option {
    background: transparent !important;

    border: 0 !important;
    outline: 0 !important;

    box-shadow: none !important;
}

/* ========================================================
   END MESA CHECKOUT - CONTOUR LIVRAISON
   ======================================================== */

/* ========================================================
   MESA CHECKOUT - RESET DEFINITIF CONTOURS NATIFS
   ======================================================== */

/*
 * WooCommerce Blocks dessine les contours de sélection
 * avec ::before / ::after.
 * On les désactive sur tout le checkout.
 */

body.woocommerce-checkout
label.wc-block-components-radio-control-accordion-option::before,

body.woocommerce-checkout
label.wc-block-components-radio-control-accordion-option::after,

body.woocommerce-checkout
.wc-block-components-radio-control__option::before,

body.woocommerce-checkout
.wc-block-components-radio-control__option::after {

    content: none !important;
    display: none !important;

    border: 0 !important;
    outline: 0 !important;

    box-shadow: none !important;
}


/* Plus aucun contour natif noir */
body.woocommerce-checkout
label.wc-block-components-radio-control-accordion-option,

body.woocommerce-checkout
.wc-block-components-radio-control__option {

    outline: none !important;

    box-shadow: none !important;
}


/* ========================================================
   LIVRAISON
   ======================================================== */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
label.wc-block-components-radio-control-accordion-option {

    overflow: hidden !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 10px !important;

    background: #FFFFFF !important;
}


/* Livraison sélectionnée */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
label.wc-block-components-radio-control-accordion-option:has(input[type="radio"]:checked) {

    border: 2px solid #2563EB !important;

    background: #EEF5FF !important;

    box-shadow:
        0 0 0 3px rgba(37, 99, 235, .07) !important;
}


/* Intérieur */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
label.wc-block-components-radio-control-accordion-option
.wc-block-components-radio-control__option {

    border: 0 !important;
    outline: 0 !important;

    box-shadow: none !important;
}


/* ========================================================
   PAIEMENT
   ======================================================== */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
label.wc-block-components-radio-control-accordion-option {

    overflow: hidden !important;

    border: 1px solid #C9D9E9 !important;
    border-radius: 10px !important;
}


/* Paiement sélectionné */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-payment-block
label.wc-block-components-radio-control-accordion-option:has(input[type="radio"]:checked) {

    border: 2px solid #2563EB !important;

    box-shadow:
        0 0 0 3px rgba(37, 99, 235, .07) !important;
}

/* ========================================================
   END RESET DEFINITIF
   ======================================================== */

/* ========================================================




/* ============================================================
   MESA CATALOGUE - BAS DE PAGE FINAL
   Restauration du correctif validé
   ============================================================ */

body.woocommerce-shop .mesa-catalog-content,
body.post-type-archive-product .mesa-catalog-content {
    padding-bottom: 8px !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
}

body.woocommerce-shop .mesa-catalog-main,
body.post-type-archive-product .mesa-catalog-main {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
}

body.woocommerce-shop .mesa-catalog-layout,
body.post-type-archive-product .mesa-catalog-layout,
body.woocommerce-shop .mesa-catalog-page,
body.post-type-archive-product .mesa-catalog-page {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
}

body.woocommerce-shop .mesa-catalog-pagination,
body.post-type-archive-product .mesa-catalog-pagination {
    margin-top: 16px !important;
    margin-bottom: 6px !important;
    padding-bottom: 0 !important;
}

/*
 * La marge globale du footer était encore appliquée
 * au catalogue. On la neutralise sur cette page seulement.
 */
body.woocommerce-shop .mesa-footer,
body.post-type-archive-product .mesa-footer {
    margin-top: 0 !important;
}


/* Mobile : petite respiration uniquement */
@media (max-width: 640px) {

    body.woocommerce-shop .mesa-catalog-content,
    body.post-type-archive-product .mesa-catalog-content {
        padding-bottom: 8px !important;
    }

    body.woocommerce-shop .mesa-catalog-pagination,
    body.post-type-archive-product .mesa-catalog-pagination {
        margin-top: 16px !important;
        margin-bottom: 6px !important;
    }
}

/* ============================================================
   END MESA CATALOGUE - BAS DE PAGE FINAL
   ============================================================ */

/* ===== CATALOGUE - BADGES SUR IMAGE RESTAURATION ===== */

.mesa-catalog-card-image {
    position: relative !important;
}

.mesa-catalog-badge {
    position: absolute !important;
    top: 8px !important;
    left: 8px !important;
    z-index: 5 !important;

    white-space: nowrap !important;
}

.mesa-catalog-condition {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    z-index: 5 !important;

    white-space: nowrap !important;
}

@media (max-width: 640px) {

    .mesa-catalog-badge,
    .mesa-catalog-condition {
        font-size: 9px !important;
        padding: 4px 6px !important;
    }
}

/* ===== END CATALOGUE - BADGES SUR IMAGE RESTAURATION ===== */


/* ============================================================
   MESA ACCUEIL MOBILE - FINAL CONSOLIDE V2
   ============================================================ */

@media (max-width: 640px) {

    /* HERO */
    .mesa-home-hero {
        padding-top: 18px !important;
        padding-bottom: 16px !important;
    }

    .mesa-home-hero-content {
        gap: 10px !important;
    }

    .mesa-home-hero h1 {
        margin-bottom: 6px !important;
        line-height: 1.1 !important;
    }

    .mesa-home-lead {
        margin-bottom: 8px !important;
        line-height: 1.4 !important;
    }

    .mesa-home-actions {
        gap: 6px !important;
        margin-top: 7px !important;
    }

    .mesa-home-reassurance {
        gap: 4px !important;
        margin-top: 7px !important;
    }



    /* HERO - CARTE PREPARATION COMPACTE */
    .mesa-home-hero-card {
        padding: 12px !important;
    }

    .mesa-home-hero-card::before {
        height: 52px !important;
        margin-bottom: 10px !important;
        background-size: 28px 28px !important;
    }

    .mesa-home-hero-card-label {
        font-size: 9px !important;
    }

    .mesa-home-hero-card h2 {
        margin: 5px 0 6px !important;
        font-size: 16px !important;
        line-height: 1.25 !important;
    }

    .mesa-home-hero-card ul {
        margin: 5px 0 0 !important;
        padding-left: 17px !important;
    }

    .mesa-home-hero-card li {
        margin-bottom: 1px !important;
        font-size: 11.5px !important;
        line-height: 1.35 !important;
    }

    /* ESPACES ENTRE SECTIONS */
    .mesa-home-categories,
    .mesa-home-products,
    .mesa-home-why,
    .mesa-home-consulting {
        padding-top: 20px !important;
        padding-bottom: 20px !important;
    }

    .mesa-section-heading {
        margin-bottom: 10px !important;
    }


    /* PC PREPARE AVANT EXPEDITION */
    .mesa-home-prepared {
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }

    .mesa-home-prepared .mesa-home-card {
        padding: 14px !important;
    }

    .mesa-home-prepared h2,
    .mesa-home-prepared h3 {
        margin-bottom: 5px !important;
    }

    .mesa-home-prepared p {
        margin-bottom: 5px !important;
        line-height: 1.35 !important;
    }

    .mesa-home-prepared ul {
        margin-top: 6px !important;
        margin-bottom: 6px !important;
    }

    .mesa-home-prepared li {
        margin-bottom: 2px !important;
        line-height: 1.3 !important;
    }
    /* AIDE - CARTES HORIZONTALES COMPACTES */
    .mesa-home-needs-grid {
        gap: 7px !important;
    }

    .mesa-home-needs .mesa-need-card {
        display: grid !important;
        grid-template-columns: 52px minmax(0, 1fr) !important;
        column-gap: 10px !important;
        row-gap: 2px !important;
        min-height: 0 !important;
        padding: 10px !important;
    }

    .mesa-home-needs .mesa-need-card::before {
        grid-column: 1 !important;
        grid-row: 1 / span 3 !important;
        width: 52px !important;
        height: 52px !important;
        margin: 0 !important;
        align-self: start !important;
        background-size: 24px 24px !important;
    }

    .mesa-home-needs .mesa-need-card h3,
    .mesa-home-needs .mesa-need-card p,
    .mesa-home-needs .mesa-need-card strong {
        grid-column: 2 !important;
    }

    .mesa-home-needs .mesa-need-card h3 {
        margin: 0 !important;
        font-size: 11px !important;
        line-height: 1.25 !important;
    }

    .mesa-home-needs .mesa-need-card p {
        margin: 0 !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
    }

    .mesa-home-needs .mesa-need-card strong {
        display: block !important;
        margin-top: 2px !important;
        font-size: 11px !important;
    }
    /* CATEGORIES - CARTES HORIZONTALES COMPACTES */
    .mesa-category-grid {
        gap: 7px !important;
    }

    .mesa-home-categories .mesa-category-card {
        display: grid !important;
        grid-template-columns: 52px minmax(0, 1fr) !important;
        column-gap: 10px !important;
        row-gap: 2px !important;
        min-height: 0 !important;
        padding: 10px !important;
    }

    .mesa-home-categories .mesa-category-card::before {
        grid-column: 1 !important;
        grid-row: 1 / span 4 !important;
        width: 52px !important;
        height: 52px !important;
        margin: 0 !important;
        align-self: start !important;
        background-size: 24px 24px !important;
    }

    .mesa-home-categories .mesa-category-card > span,
    .mesa-home-categories .mesa-category-card h3,
    .mesa-home-categories .mesa-category-card p,
    .mesa-home-categories .mesa-category-card strong {
        grid-column: 2 !important;
    }

    .mesa-home-categories .mesa-category-card > span {
        font-size: 8.5px !important;
        line-height: 1.2 !important;
    }

    .mesa-home-categories .mesa-category-card h3 {
        margin: 0 !important;
        font-size: 12.5px !important;
        line-height: 1.25 !important;
    }

    .mesa-home-categories .mesa-category-card p {
        margin: 0 !important;
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    .mesa-home-categories .mesa-category-card strong {
        display: block !important;
        margin-top: 2px !important;
        font-size: 10px !important;
    }




    /* ========================================================
       PC DISPONIBLES : 4 PRODUITS EN 2 x 2
       ======================================================== */

    .mesa-home-products .mesa-product-grid,
    .mesa-home-products .mesa-products-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .mesa-home-products .mesa-product-card:nth-child(n+5) {
        display: none !important;
    }

    .mesa-home-products .mesa-product-card {
        min-width: 0 !important;
        margin: 0 !important;
    }

    .mesa-home-products .mesa-product-image {
        margin: 0 !important;
    }

    .mesa-home-products .mesa-product-image img {
        display: block !important;
        width: 100% !important;
        height: 105px !important;
        object-fit: contain !important;
    }

    .mesa-home-products .mesa-product-card h3 {
        margin: 5px 0 3px !important;
        font-size: 10.5px !important;
        line-height: 1.25 !important;
    }

    .mesa-home-products .mesa-product-stock {
        font-size: 8.5px !important;
    }

    .mesa-home-products .mesa-product-card-footer {
        margin-top: 5px !important;
    }

    .mesa-home-products .mesa-product-price {
        font-size: 14px !important;
        font-weight: 800 !important;
    }

    .mesa-home-products .mesa-product-link {
        min-height: 30px !important;
        padding: 6px 7px !important;
        font-size: 8.5px !important;
    }


    /* POURQUOI MESA : 2 x 2 */
    .mesa-why-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .mesa-why-card {
        min-width: 0 !important;
        min-height: 0 !important;
        padding: 11px 9px !important;
    }

    .mesa-why-card h3 {
        margin: 5px 0 2px !important;
        font-size: 11px !important;
        line-height: 1.25 !important;
    }

    .mesa-why-card p {
        margin: 0 !important;
        font-size: 9px !important;
        line-height: 1.35 !important;
    }


    /* CONSULTING */
    .mesa-consulting-box {
        padding: 15px !important;
    }
}

/* ============================================================
   END MESA ACCUEIL MOBILE - FINAL CONSOLIDE
   ============================================================ */


/* ============================================================
   MESA PANIER VIDE - FINAL
   ============================================================ */

/* Zone générale */
body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 45px 24px 40px !important;
}

/* ------------------------------------------------------------
   ICONE PANIER VIDE
   On neutralise l'icône Woo qui devient un carré sur mobile.
   ------------------------------------------------------------ */

body.woocommerce-cart
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
    content: "😢" !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 70px !important;
    height: 70px !important;

    margin: 0 auto 22px !important;

    background: transparent !important;
    background-image: none !important;
    mask: none !important;
    -webkit-mask: none !important;

    color: inherit !important;
    font-size: 46px !important;
    line-height: 1 !important;
}

/* Message */
body.woocommerce-cart
.wc-block-cart__empty-cart__title {
    margin-bottom: 20px !important;

    color: #0F2A43 !important;

    font-size: 19px !important;
    font-weight: 800 !important;
    text-align: center !important;
}

/* Petits points Woo */
body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wp-block-separator {
    margin: 10px auto 26px !important;
}

/* Titre Nouveau dans la boutique */
body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wp-block-heading {
    margin: 0 0 22px !important;

    color: #0F2A43 !important;

    text-align: center !important;
}


/* ============================================================
   PRODUITS SUGGERES - DESKTOP
   ============================================================ */

body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

    gap: 14px !important;

    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product {
    width: auto !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 12px !important;

    background: #FFFFFF !important;

    border: 1px solid #B8CCDE !important;
    border-radius: 12px !important;

    box-shadow:
        0 6px 16px rgba(15,42,67,.09) !important;

    text-align: left !important;
}


/* Images : on force leur réapparition */
body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product-image {
    display: block !important;

    width: 100% !important;
    height: 155px !important;

    margin: 0 0 10px !important;

    overflow: hidden !important;
}

body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product-image a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product-image img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;

    object-fit: contain !important;
}


/* Nom */
body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product-title {
    min-height: 36px !important;

    margin: 0 0 7px !important;

    color: #0F2A43 !important;

    font-size: 12px !important;
    font-weight: 750 !important;
    line-height: 1.35 !important;

    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;

    overflow: hidden !important;
}


/* Prix */
body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product-price {
    margin: 5px 0 10px !important;

    color: #0F2A43 !important;

    font-size: 16px !important;
    font-weight: 800 !important;
}


/* Bouton */
body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product-add-to-cart {
    margin: 0 !important;
}

body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product-add-to-cart a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 36px !important;

    padding: 7px 10px !important;

    background: #2563EB !important;

    border-radius: 7px !important;

    color: #FFFFFF !important;

    font-size: 10px !important;
    font-weight: 750 !important;
    text-decoration: none !important;
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 640px) {

    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block {
        padding: 28px 12px 26px !important;
    }

    body.woocommerce-cart
    .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
        width: 52px !important;
        height: 52px !important;

        margin-bottom: 14px !important;

        font-size: 34px !important;
    }

    body.woocommerce-cart
    .wc-block-cart__empty-cart__title {
        margin-bottom: 15px !important;

        font-size: 15px !important;
    }

    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block
    .wp-block-heading {
        margin-bottom: 14px !important;

        font-size: 20px !important;
    }

    /* 2 x 2 comme le reste du site */
    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block
    .wc-block-grid__products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

        gap: 9px !important;
    }

    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block
    .wc-block-grid__product {
        padding: 8px !important;
    }

    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block
    .wc-block-grid__product-image {
        height: 105px !important;

        margin-bottom: 7px !important;
    }

    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block
    .wc-block-grid__product-title {
        min-height: 32px !important;

        margin-bottom: 4px !important;

        font-size: 10px !important;
        line-height: 1.3 !important;
    }

    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block
    .wc-block-grid__product-price {
        margin: 4px 0 7px !important;

        font-size: 14px !important;
    }

    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block
    .wc-block-grid__product-add-to-cart a {
        min-height: 31px !important;

        padding: 6px !important;

        font-size: 9px !important;
    }
}

/* ============================================================
   END MESA PANIER VIDE - FINAL
   ============================================================ */

/* ===== ACCUEIL - DESCRIPTION PRODUITS ===== */

.mesa-home-products .mesa-product-card-specs {
    margin: 0 0 7px !important;

    color: #64748B !important;

    font-size: 11px !important;
    line-height: 1.35 !important;

    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
}

@media (max-width: 640px) {

    .mesa-home-products .mesa-product-card-title {
        margin-bottom: 3px !important;
        min-height: 0 !important;

        font-size: 10.5px !important;
        line-height: 1.25 !important;
    }

    .mesa-home-products .mesa-product-card-specs {
        margin-bottom: 5px !important;

        font-size: 8.5px !important;
        line-height: 1.3 !important;
    }
}

/* ===== END ACCUEIL - DESCRIPTION PRODUITS ===== */

/* ===== MESA PAGES LEGALES ===== */

.mesa-legal-page {
    background: #E6F0F8;
    color: #263E55;
}

.mesa-legal-hero {
    padding: 42px 0 26px;
}

.mesa-legal-hero span {
    color: #2563EB;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
}

.mesa-legal-hero h1 {
    margin: 7px 0 0;
    color: #0F2A43;
    font-size: 36px;
    line-height: 1.15;
}

.mesa-legal-content {
    padding-bottom: 48px;
}

.mesa-legal-card {
    max-width: 950px;
    padding: 32px;
    background: #FFF;
    border: 1px solid #A9C0D5;
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(15,42,67,.12);
}

.mesa-legal-card h2 {
    margin: 30px 0 10px;
    color: #0F2A43;
    font-size: 20px;
}

.mesa-legal-card h2:first-of-type {
    margin-top: 22px;
}

.mesa-legal-card p,
.mesa-legal-card li {
    font-size: 14px;
    line-height: 1.65;
}

.mesa-legal-card li {
    margin-bottom: 5px;
}

.mesa-legal-card a {
    color: #2563EB;
    font-weight: 650;
}

.mesa-legal-updated {
    color: #53697D;
}

@media (max-width: 640px) {

    .mesa-legal-hero {
        padding: 28px 0 20px;
    }

    .mesa-legal-hero h1 {
        font-size: 28px;
    }

    .mesa-legal-content {
        padding-bottom: 25px;
    }

    .mesa-legal-card {
        padding: 18px;
        border-radius: 12px;
    }

    .mesa-legal-card h2 {
        margin-top: 24px;
        font-size: 17px;
    }

    .mesa-legal-card p,
    .mesa-legal-card li {
        font-size: 12.5px;
        line-height: 1.6;
    }

    body.page-template-page-legal .mesa-footer,
    body.page-template-page-legal-php .mesa-footer {
        margin-top: 0 !important;
    }
}

/* ===== END MESA PAGES LEGALES ===== */

/* ===== PAGES LEGALES - DESKTOP LARGE ===== */

@media (min-width: 900px) {

    .mesa-legal-card {
        max-width: 1120px !important;
    }

    .mesa-legal-card p,
    .mesa-legal-card li {
        font-size: 15px !important;
        line-height: 1.65 !important;
    }
}

/* ===== END PAGES LEGALES - DESKTOP LARGE ===== */

/* ===== MESA PANIER - SPECS PRODUITS SUGGERES ===== */

body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product
.mesa-cart-product-specs {
    margin: 4px 0 7px !important;
    color: #64748B !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    min-height: 32px !important;
}

body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block
.wc-block-grid__product
.wc-block-grid__product-title {
    min-height: 0 !important;
    margin-bottom: 0 !important;
}

@media (max-width: 640px) {
    body.woocommerce-cart
    .wp-block-woocommerce-empty-cart-block
    .wc-block-grid__product
    .mesa-cart-product-specs {
        margin: 3px 0 5px !important;
        font-size: 10px !important;
        line-height: 1.3 !important;
        min-height: 26px !important;
    }
}

/* ===== END MESA PANIER - SPECS PRODUITS SUGGERES ===== */

/* ===== MESA LISIBILITE GENERALE V2 ===== */

/*
 * Amélioration légère de la lisibilité.
 * Ciblage des vraies classes du thème MESA.
 * Les grands titres et la structure ne sont pas agrandis.
 */


/* =========================================================
   TEXTE COURANT
   ========================================================= */

main p,
main li {
    font-size: 15px;
    line-height: 1.6;
}

main label,
main input,
main select,
main textarea {
    font-size: 14px;
}


/* =========================================================
   HEADER / NAVIGATION
   ========================================================= */

.mesa-main-nav a,
.mesa-account-link-text,
.mesa-cart-link {
    font-size: 14px !important;
}

.mesa-topbar {
    font-size: 12px !important;
}


/* =========================================================
   ACCUEIL
   ========================================================= */

.mesa-home-lead {
    font-size: 15px !important;
    line-height: 1.6 !important;
}

.mesa-home-hero-card li,
.mesa-need-card p,
.mesa-category-card p,
.mesa-why-card p {
    font-size: 13.5px !important;
    line-height: 1.55 !important;
}

.mesa-need-card a,
.mesa-category-card a,
.mesa-why-card a {
    font-size: 13px !important;
}

/* PC disponibles sur l'accueil */

.mesa-home-products .mesa-product-card h3,
.mesa-home-products .mesa-product-card-title {
    font-size: 14px !important;
    line-height: 1.35 !important;
}

.mesa-home-products .mesa-product-card-specs {
    font-size: 12px !important;
    line-height: 1.45 !important;
}

.mesa-home-products .mesa-product-stock {
    font-size: 11px !important;
}

.mesa-home-products .mesa-product-link {
    font-size: 11px !important;
}


/* =========================================================
   CATALOGUE PC DISPONIBLES
   ========================================================= */

.mesa-catalog-card h2,
.mesa-catalog-card h3 {
    font-size: 15px !important;
    line-height: 1.35 !important;
}

.mesa-catalog-specs {
    font-size: 13px !important;
    line-height: 1.5 !important;
}

.mesa-catalog-stock {
    font-size: 12px !important;
}

.mesa-catalog-breadcrumb,
.mesa-result-count,
.mesa-sort-form,
.mesa-filter-option,
.mesa-filter-reset {
    font-size: 13px !important;
}

.mesa-catalog-view {
    font-size: 12px !important;
}


/* =========================================================
   FICHE PRODUIT
   ========================================================= */

/* Caractéristiques sous le nom du PC */

body.single-product .mesa-pdp-heading-specs {
    font-size: 13.5px !important;
    line-height: 1.5 !important;
}

body.single-product
.woocommerce-product-details__short-description {
    font-size: 14px !important;
    line-height: 1.6 !important;
}

body.single-product .mesa-pdp-delivery {
    font-size: 13px !important;
    line-height: 1.5 !important;
}

body.single-product .mesa-product-payment-note,
body.single-product .mesa-product-payment-secure {
    font-size: 11.5px !important;
}

/* Petites cartes caractéristiques */

body.single-product .mesa-pdp-feature-label {
    font-size: 10.5px !important;
}

body.single-product .mesa-pdp-feature-value {
    font-size: 13px !important;
    line-height: 1.4 !important;
}

/* Contenu de présentation */

body.single-product .mesa-pdp-description,
body.single-product .mesa-pdp-description p {
    font-size: 14px !important;
    line-height: 1.65 !important;
}

body.single-product .mesa-pdp-kicker {
    font-size: 11px !important;
}

body.single-product .mesa-pdp-section-title {
    line-height: 1.3 !important;
}

/* Utilisation */

body.single-product .mesa-pdp-usage-intro {
    font-size: 13.5px !important;
    line-height: 1.65 !important;
}

body.single-product .mesa-pdp-usage-card strong {
    font-size: 13px !important;
    line-height: 1.35 !important;
}

body.single-product .mesa-pdp-usage-card p {
    font-size: 12.5px !important;
    line-height: 1.55 !important;
}

body.single-product .mesa-pdp-usage-advice,
body.single-product .mesa-pdp-usage-note {
    font-size: 12.5px !important;
    line-height: 1.55 !important;
}

/* Préparation MESA */

body.single-product .mesa-pdp-preparation-grid > div {
    min-height: 78px !important;
    padding: 14px 16px !important;

    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;

    column-gap: 10px !important;
    row-gap: 3px !important;

    align-items: start !important;
}

body.single-product .mesa-pdp-preparation-grid > div > b {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;

    position: static !important;
    margin: 0 !important;
    align-self: start !important;
}

body.single-product .mesa-pdp-preparation-grid > div > strong {
    grid-column: 2 !important;
    grid-row: 1 !important;

    margin: 0 !important;

    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

body.single-product .mesa-pdp-preparation-grid > div > span {
    grid-column: 2 !important;
    grid-row: 2 !important;

    margin: 0 !important;

    font-size: 13.5px !important;
    line-height: 1.5 !important;
}

body.single-product .mesa-pdp-trust-item strong {
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

body.single-product .mesa-pdp-trust-item span {
    font-size: 12px !important;
}

/* Onglets */

body.single-product
.woocommerce-tabs ul.tabs li a {
    font-size: 13px !important;
}

/* Produits similaires */

body.single-product
.related.products
.woocommerce-loop-product__title {
    font-size: 14px !important;
    line-height: 1.4 !important;
}

body.single-product .mesa-related-specs {
    font-size: 12px !important;
    line-height: 1.45 !important;
}

body.single-product .mesa-related-stock {
    font-size: 11px !important;
}

body.single-product .mesa-related-condition,
body.single-product .mesa-related-badge {
    font-size: 10px !important;
}

body.single-product .mesa-related-view {
    font-size: 11px !important;
}


/* =========================================================
   PANIER VIDE / PRODUITS SUGGERES
   ========================================================= */

body.woocommerce-cart
.wc-block-grid__product-title {
    font-size: 14px !important;
    line-height: 1.4 !important;
}

body.woocommerce-cart
.mesa-cart-product-specs {
    font-size: 12.5px !important;
    line-height: 1.45 !important;
}

body.woocommerce-cart
.wc-block-grid__product-price {
    font-size: 16px !important;
}


/* =========================================================
   PAGES LEGALES
   ========================================================= */

.mesa-legal-card p,
.mesa-legal-card li {
    font-size: 15px !important;
    line-height: 1.7 !important;
}

.mesa-legal-card h2 {
    font-size: 21px !important;
}


/* =========================================================
   FOOTER
   ========================================================= */

.mesa-footer p,
.mesa-footer li,
.mesa-footer a,
.mesa-footer-bottom {
    font-size: 13px !important;
    line-height: 1.55 !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {

    main p,
    main li {
        font-size: 14px;
        line-height: 1.6;
    }

    /* Accueil */

    .mesa-home-lead {
        font-size: 14px !important;
    }

    .mesa-home-hero-card li,
    .mesa-need-card p,
    .mesa-category-card p,
    .mesa-why-card p {
        font-size: 13px !important;
    }

    .mesa-home-products .mesa-product-card h3,
    .mesa-home-products .mesa-product-card-title {
        font-size: 11.5px !important;
        line-height: 1.35 !important;
    }

    .mesa-home-products .mesa-product-card-specs {
        font-size: 10.5px !important;
        line-height: 1.4 !important;
    }

    .mesa-home-products .mesa-product-stock {
        font-size: 9.5px !important;
    }

    .mesa-home-products .mesa-product-link {
        font-size: 9.5px !important;
    }


    /* Catalogue */

    .mesa-catalog-specs {
        font-size: 11.5px !important;
        line-height: 1.45 !important;
    }

    .mesa-catalog-stock {
        font-size: 10.5px !important;
    }


    /* Fiche produit */

    body.single-product .mesa-pdp-heading-specs {
        font-size: 12.5px !important;
    }

    body.single-product .mesa-pdp-feature-label {
        font-size: 10px !important;
    }

    body.single-product .mesa-pdp-feature-value {
        font-size: 12.5px !important;
    }

    body.single-product .mesa-pdp-usage-intro {
        font-size: 13px !important;
    }

    body.single-product .mesa-pdp-usage-card strong {
        font-size: 12.5px !important;
    }

    body.single-product .mesa-pdp-usage-card p {
        font-size: 12px !important;
    }

    body.single-product .mesa-pdp-description,
    body.single-product .mesa-pdp-description p {
        font-size: 13.5px !important;
    }

    body.single-product .mesa-related-specs {
        font-size: 11px !important;
    }


    /* Pages légales */

    .mesa-legal-card p,
    .mesa-legal-card li {
        font-size: 14px !important;
        line-height: 1.65 !important;
    }


    /* Footer */

    .mesa-footer p,
    .mesa-footer li,
    .mesa-footer a,
    .mesa-footer-bottom {
        font-size: 12px !important;
    }
}

/* ===== END MESA LISIBILITE GENERALE V2 ===== */

/* ===== MESA CHECKOUT PREMIUM V1 ===== */


/* =========================================================
   INTRO
   ========================================================= */

body.woocommerce-checkout .mesa-checkout-intro {
    width: min(1180px, calc(100% - 32px));
    margin: 28px auto 18px;
}

body.woocommerce-checkout .mesa-checkout-intro-kicker {
    display: block;
    margin-bottom: 5px;

    color: #2563EB;

    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
}

body.woocommerce-checkout .mesa-checkout-intro h1 {
    margin: 0 0 7px;

    color: #0F2A43;

    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
}

body.woocommerce-checkout .mesa-checkout-intro-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;

    margin: 0;

    color: #53687C;

    font-size: 13px;
    line-height: 1.45;
}

body.woocommerce-checkout .mesa-checkout-intro-trust span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body.woocommerce-checkout .mesa-checkout-intro-trust span::before {
    content: "✓";

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 18px;
    height: 18px;

    flex: 0 0 18px;

    background: #ECFDF3;
    border-radius: 50%;

    color: #15803D;

    font-size: 11px;
    font-weight: 900;
}


/* =========================================================
   BLOCS DU CHECKOUT
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-checkout-step {
    border-radius: 14px !important;

    box-shadow:
        0 5px 18px rgba(15, 42, 67, .045) !important;
}

body.woocommerce-checkout
.wc-block-components-checkout-step__title {
    color: #0F2A43 !important;

    font-weight: 700 !important;
}

body.woocommerce-checkout
.wc-block-components-checkout-step__description {
    color: #60758A !important;

    font-size: 13px !important;
    line-height: 1.5 !important;
}


/* =========================================================
   LIVRAISON
   ========================================================= */

/* Bouton de sélection du point relais */
body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control-accordion-content button,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-shipping-method-block
.wc-block-components-radio-control__option button {
    min-height: 34px !important;

    padding: 8px 14px !important;

    background: #2563EB !important;

    border: 0 !important;
    border-radius: 8px !important;

    color: #FFFFFF !important;

    font-size: 12px !important;
    font-weight: 700 !important;

    box-shadow:
        0 4px 10px rgba(37, 99, 235, .16) !important;

    cursor: pointer;
}

@media (hover: hover) {

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-shipping-method-block
    .wc-block-components-radio-control-accordion-content button:hover,

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-shipping-method-block
    .wc-block-components-radio-control__option button:hover {
        background: #1D4ED8 !important;

        transform: translateY(-1px);
    }
}


/* =========================================================
   RESUME COMMANDE
   ========================================================= */

body.woocommerce-checkout
.wp-block-woocommerce-checkout-order-summary-block {
    overflow: hidden;

    border: 1px solid #C9D9E9 !important;
    border-radius: 14px !important;

    background: #FFFFFF !important;

    box-shadow:
        0 8px 24px rgba(15, 42, 67, .06) !important;
}

body.woocommerce-checkout
.wc-block-components-order-summary-item__description
.wc-block-components-product-name {
    color: #0F2A43 !important;

    font-size: 13.5px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

body.woocommerce-checkout
.wc-block-components-order-summary-item__description {
    font-size: 12.5px !important;
    line-height: 1.5 !important;
}

body.woocommerce-checkout
.wc-block-components-order-summary-item__image img {
    border-radius: 8px !important;
}

body.woocommerce-checkout
.wc-block-components-totals-item__label,
body.woocommerce-checkout
.wc-block-components-totals-item__value {
    font-size: 13px !important;
}

body.woocommerce-checkout
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__label,

body.woocommerce-checkout
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__value {
    color: #0F2A43 !important;

    font-size: 19px !important;
    font-weight: 700 !important;
}


/* =========================================================
   BOUTON FINAL
   ========================================================= */

body.woocommerce-checkout
.wc-block-components-checkout-place-order-button {
    min-height: 50px !important;

    border-radius: 9px !important;

    font-size: 14px !important;
    font-weight: 700 !important;

    box-shadow:
        0 7px 18px rgba(37, 99, 235, .18) !important;
}

@media (hover: hover) {

    body.woocommerce-checkout
    .wc-block-components-checkout-place-order-button:hover {
        background: #1D4ED8 !important;

        transform: translateY(-1px);
    }
}


/* =========================================================
   TEXTE LEGAL SOUS LE CHECKOUT
   ========================================================= */

body.woocommerce-checkout
.wc-block-checkout__terms,
body.woocommerce-checkout
.wc-block-components-checkout-step__description {
    line-height: 1.55 !important;
}


/* =========================================================
   SUPPRESSION DU GRAND VIDE AVANT FOOTER
   ========================================================= */

body.woocommerce-checkout main,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout #primary {
    min-height: 0 !important;

    padding-bottom: 42px !important;
    margin-bottom: 0 !important;
}

body.woocommerce-checkout
.wp-block-woocommerce-checkout,

body.woocommerce-checkout
.wc-block-checkout {
    min-height: 0 !important;

    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.woocommerce-checkout
.wc-block-checkout__main {
    min-height: 0 !important;
    padding-bottom: 0 !important;
}

body.woocommerce-checkout
.wc-block-checkout__actions,

body.woocommerce-checkout
.wp-block-woocommerce-checkout-actions-block {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.woocommerce-checkout .mesa-footer {
    margin-top: 0 !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 800px) {

    body.woocommerce-checkout .mesa-checkout-intro {
        width: calc(100% - 24px);

        margin: 20px auto 14px;
    }

    body.woocommerce-checkout .mesa-checkout-intro h1 {
        font-size: 25px;
    }

    body.woocommerce-checkout .mesa-checkout-intro-trust {
        gap: 7px 12px;

        font-size: 12px;
    }

    body.woocommerce-checkout
    .wc-block-components-checkout-step {
        border-radius: 12px !important;
    }

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-order-summary-block {
        border-radius: 12px !important;
    }

    body.woocommerce-checkout main,
    body.woocommerce-checkout .site-main,
    body.woocommerce-checkout #primary {
        padding-bottom: 28px !important;
    }

    body.woocommerce-checkout
    .wc-block-components-checkout-place-order-button {
        min-height: 48px !important;
    }
}


/* ===== END MESA CHECKOUT PREMIUM V1 ===== */

/* ===== MESA CHECKOUT MOBILE COMPACT V1 ===== */

@media (max-width: 640px) {

    /* En-tête */
    body.woocommerce-checkout .mesa-checkout-intro {
        margin-top: 16px !important;
        margin-bottom: 12px !important;
    }

    body.woocommerce-checkout .mesa-checkout-intro-kicker {
        margin-bottom: 3px !important;
        font-size: 10px !important;
    }

    body.woocommerce-checkout .mesa-checkout-intro h1 {
        margin-bottom: 6px !important;
        font-size: 21px !important;
        line-height: 1.15 !important;
    }

    body.woocommerce-checkout .mesa-checkout-intro-trust {
        gap: 5px 10px !important;
        font-size: 11.5px !important;
        line-height: 1.4 !important;
    }

    body.woocommerce-checkout
    .mesa-checkout-intro-trust span::before {
        width: 15px !important;
        height: 15px !important;
        flex-basis: 15px !important;
        font-size: 9px !important;
    }


    /* Titres des blocs */
    body.woocommerce-checkout
    .wc-block-components-checkout-step__title {
        font-size: 17px !important;
        font-weight: 700 !important;
        line-height: 1.3 !important;
    }

    body.woocommerce-checkout
    .wc-block-components-checkout-step__description {
        font-size: 12.5px !important;
        line-height: 1.5 !important;
    }


    /* Texte courant */
    body.woocommerce-checkout main p,
    body.woocommerce-checkout main li,
    body.woocommerce-checkout label {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }


    /* Champs */
    body.woocommerce-checkout input,
    body.woocommerce-checkout select,
    body.woocommerce-checkout textarea {
        font-size: 13px !important;
    }


    /* Livraison */
    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-shipping-method-block
    .wc-block-components-radio-control__label {
        font-size: 13px !important;
        line-height: 1.4 !important;
    }

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-shipping-method-block
    .wc-block-components-radio-control__secondary-label {
        font-size: 12px !important;
        line-height: 1.4 !important;
    }

    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-shipping-method-block
    button {
        min-height: 30px !important;
        padding: 6px 10px !important;
        font-size: 11.5px !important;
        font-weight: 700 !important;
    }


    /* Paiement */
    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-payment-block
    .wc-block-components-radio-control__label {
        font-size: 13px !important;
        line-height: 1.4 !important;
    }

    body.woocommerce-checkout
    .mesa-payment-subtitle {
        margin-top: 3px !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
    }


    /* Résumé */
    body.woocommerce-checkout
    .wp-block-woocommerce-checkout-order-summary-block
    .wp-block-heading {
        font-size: 17px !important;
        font-weight: 700 !important;
    }

    body.woocommerce-checkout
    .wc-block-components-order-summary-item__description
    .wc-block-components-product-name {
        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.4 !important;
    }

    body.woocommerce-checkout
    .wc-block-components-order-summary-item__description {
        font-size: 11.5px !important;
        line-height: 1.5 !important;
    }

    body.woocommerce-checkout
    .wc-block-components-totals-item__label,
    body.woocommerce-checkout
    .wc-block-components-totals-item__value {
        font-size: 12.5px !important;
    }

    body.woocommerce-checkout
    .wc-block-components-totals-footer-item
    .wc-block-components-totals-item__label,

    body.woocommerce-checkout
    .wc-block-components-totals-footer-item
    .wc-block-components-totals-item__value {
        font-size: 17px !important;
        font-weight: 700 !important;
    }


    /* Conditions */
    body.woocommerce-checkout
    .wc-block-checkout__terms {
        font-size: 11.5px !important;
        line-height: 1.5 !important;
    }


    /* Bouton final */
    body.woocommerce-checkout
    .wc-block-components-checkout-place-order-button {
        min-height: 44px !important;
        font-size: 13px !important;
        font-weight: 700 !important;
    }
}

/* ===== END MESA CHECKOUT MOBILE COMPACT V1 ===== */


/* ===== MESA FINDER MOBILE FINAL V1 ===== */

@media (max-width: 980px) {

    /*
     * Résultats
     * 1 meilleur choix
     * 2 alternatives côte à côte
     */

    .mesa-pc-finder .mesa-finder-product-grid {
        display: grid !important;
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 8px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child {
        grid-column: 1 / -1 !important;
    }


    /* Meilleur choix plus compact */

    .mesa-pc-finder
    .mesa-finder-product:first-child
    .mesa-finder-product-image {
        height: 167px !important;
        min-height: 167px !important;
        max-height: 167px !important;

        padding: 6px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        aspect-ratio: auto !important;
        overflow: hidden !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child
    .mesa-finder-product-image img {
        width: 100% !important;
        height: 155px !important;
        max-height: 155px !important;

        object-fit: contain !important;
        aspect-ratio: auto !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child
    .mesa-finder-product-body {
        padding: 10px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child h4 {
        min-height: 0 !important;

        margin-bottom: 6px !important;

        font-size: 13px !important;
        line-height: 1.3 !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:first-child
    .mesa-finder-product-specs {
        min-height: 0 !important;

        margin-bottom: 8px !important;
    }


    /* Alternatives */

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-image {
        height: 96px !important;
        min-height: 96px !important;
        max-height: 96px !important;

        padding: 4px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        aspect-ratio: auto !important;
        overflow: hidden !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-image img {
        width: 100% !important;
        height: 88px !important;
        max-height: 88px !important;

        object-fit: contain !important;
        aspect-ratio: auto !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-body {
        padding: 7px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2) h4 {
        min-height: 32px !important;

        margin: 0 0 5px !important;

        font-size: 10.5px !important;
        line-height: 1.25 !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-specs {
        min-height: 0 !important;

        gap: 3px !important;
        margin-bottom: 6px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-specs span {
        min-height: 19px !important;

        padding: 2px 4px !important;

        font-size: 8.5px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-price {
        font-size: 15px !important;
    }

    .mesa-pc-finder
    .mesa-finder-product:nth-child(n+2)
    .mesa-finder-product-button {
        min-height: 31px !important;

        padding: 5px !important;

        font-size: 9px !important;
    }
}

/* ===== END MESA FINDER MOBILE FINAL V1 ===== */

/* === ACCUEIL - BADGE ETAT PRODUIT === */
.mesa-home-products .mesa-product-condition {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;

    margin: 0 0 8px 6px;
    padding: 5px 8px;

    border: 1px solid #c4d5eb;
    border-radius: 7px;

    background: #ffffff;
    color: #0F2A43;

    font-size: 9px;
    font-weight: 700;
    line-height: 1;
}
/* === END ACCUEIL - BADGE ETAT PRODUIT === */


/* === ACCUEIL MOBILE - LISIBILITE PETITS TEXTES V2 === */
@media (max-width: 640px) {

    /* Petits labels bleus */
    .mesa-home-categories .mesa-category-card > span {
        font-size: 9.5px !important;
        font-weight: 800 !important;
        line-height: 1.25 !important;
    }

    /* Titres des catégories */
    .mesa-home-categories .mesa-category-card h3 {
        font-size: 13.5px !important;
        line-height: 1.3 !important;
    }

    /* Descriptions */
    .mesa-home-categories .mesa-category-card p {
        font-size: 12px !important;
        line-height: 1.4 !important;
        color: #53697D !important;
    }

    /* Découvrir */
    .mesa-home-categories .mesa-category-card strong {
        font-size: 11px !important;
        line-height: 1.3 !important;
    }

    /* Texte sous "Ordinateurs actuellement disponibles" */
    .mesa-home-products .mesa-section-heading p {
        font-size: 12px !important;
        line-height: 1.4 !important;
    }

    /* Lien Voir tous les PC */
    .mesa-home-products .mesa-section-heading a {
        font-size: 11px !important;
        font-weight: 700 !important;
    }
}
/* === END ACCUEIL MOBILE - LISIBILITE PETITS TEXTES V2 === */


/* =========================================================
   HOME - PREUVE SOCIALE GOOGLE + LEBONCOIN
   ========================================================= */

.mesa-home-social-proof {
    padding: 54px 0;
    background: #F7FAFD;
}

.mesa-social-heading {
    margin-bottom: 24px;
}

.mesa-social-heading p {
    max-width: 700px;
    margin: 8px 0 0;
    color: #60758A;
    font-size: 14px;
    line-height: 1.6;
}


/* Plateformes */

.mesa-social-platforms {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.mesa-social-platform-card {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 4px 14px;

    padding: 17px 19px;

    background: #FFFFFF;
    border: 1px solid #C9D9E9;
    border-radius: 12px;

    text-decoration: none;
}

.mesa-social-platform-name {
    grid-column: 1;
    color: #0F2A43;
    font-size: 14px;
    font-weight: 700;
}

.mesa-social-rating {
    grid-column: 1;
    color: #0F2A43;
    font-size: 20px;
    line-height: 1.1;
}

.mesa-social-stars {
    color: #F4B400;
    letter-spacing: 1px;
    font-size: 15px;
    line-height: 1;
}

.mesa-social-review-count {
    color: #60758A;
    font-size: 12px;
}

.mesa-social-platform-link {
    grid-column: 2;
    color: #2563EB;
    font-size: 12px;
    font-weight: 700;
}


/* Avis */

.mesa-social-reviews {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.mesa-social-review-card {
    padding: 18px;

    background: #FFFFFF;
    border: 1px solid #D4DFEA;
    border-radius: 12px;
}

.mesa-social-review-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 9px;
}

.mesa-social-review-top strong {
    color: #0F2A43;
    font-size: 14px;
    font-weight: 700;
}

.mesa-social-review-top span {
    color: #60758A;
    font-size: 11px;
    font-weight: 700;
}

.mesa-social-review-card .mesa-social-stars {
    margin-bottom: 10px;
}

.mesa-social-review-card p {
    margin: 0;

    color: #53697D;

    font-size: 13px;
    line-height: 1.6;
}


/* Réassurance */

.mesa-social-reassurance {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    margin-top: 14px;

    overflow: hidden;

    background: #EDF4FF;
    border: 1px solid #C8D9EE;
    border-radius: 11px;
}

.mesa-social-reassurance > div {
    padding: 13px 12px;
    text-align: center;
}

.mesa-social-reassurance > div + div {
    border-left: 1px solid #C8D9EE;
}

.mesa-social-reassurance strong {
    color: #0F2A43;
    font-size: 12px;
    font-weight: 700;
}


/* Mobile */

@media (max-width: 700px) {

    .mesa-home-social-proof {
        padding: 36px 0;
    }

    .mesa-social-platforms,
    .mesa-social-reviews {
        grid-template-columns: 1fr;
    }

    .mesa-social-platform-card {
        padding: 15px;
    }

    .mesa-social-review-card {
        padding: 15px;
    }

    .mesa-social-reassurance {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .mesa-social-reassurance > div {
        padding: 11px 8px;
    }

    .mesa-social-reassurance > div:nth-child(3) {
        border-left: 0;
        border-top: 1px solid #C8D9EE;
    }

    .mesa-social-reassurance > div:nth-child(4) {
        border-top: 1px solid #C8D9EE;
    }

    .mesa-social-reassurance strong {
        font-size: 11px;
        line-height: 1.35;
    }
}

/* ===== END HOME PREUVE SOCIALE ===== */


.mesa-social-legal-guarantee {
    margin: 9px 0 0;
    text-align: center;
    color: #60758A;
    font-size: 11px;
    line-height: 1.4;
}

