/* ==========================================================================
   CHRISTOPHER MATT — WOOCOMMERCE
   Feuille de style mobile first

   SOMMAIRE
   01. Variables et structure
   02. Boutique : navigation et catalogue
   03. Fiche produit : informations, galerie, achat
   04. Composants communs : boutons, messages, formulaires
   05. Panier WooCommerce Blocks
   06. Compte, pagination et informations boutique
   07. Checkout WooCommerce Blocks
   08. Responsive : tablette (600px), desktop (1040px)
       Checkout desktop (1000px)

   Les styles mobiles constituent la base. Les adaptations plus larges
   sont regroupées en fin de fichier.
   ========================================================================== */

/* =========================================================
   VARIABLES
========================================================= */

:root{
    --cm-cream:#fffdef;
    --cm-purple:#772faf;
    --cm-purple-dark:#23166e;
    --cm-pink:#ff4381;
    --cm-green:#36e983;
    --cm-line:#772faf;
}


/* =========================================================
   BASE / WRAPPER
========================================================= */

.shop-page{
    width:100%;
    padding:0 20px 80px;
    background:var(--cm-cream);
    color:var(--cm-purple-dark);
}

.shop-shell{
    width:100%;
    max-width:1380px;
    margin:0 auto;
}



/* =========================================================
   PETIT PANIER SOUS LE HEADER
========================================================= */

.shop-cart-bar{
    display:flex;
    justify-content:flex-end;
    padding:12px 0 22px;
}

.shop-cart-link{
    display:flex;
    align-items:center;
    gap:8px;
    padding:9px 13px;
    border:2px solid var(--cm-purple-dark);
    border-radius:8px;
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
    font-size:17px;
    font-weight:400;
    transition:
        border-color .2s ease,
        color .2s ease,
        transform .2s ease;
}

.shop-cart-link::before{
    content:"";
    display:inline-block;
    width:22px; height:22px; flex:0 0 22px;
    background-color:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M1 2v2h2l3.6 7.59-1.35 2.45A2 2 0 0 0 7 17h12v-2H7.42l1.1-2h7.03a2 2 0 0 0 1.75-1.03L20.88 5H5.21l-.94-2H1Zm6 16a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M1 2v2h2l3.6 7.59-1.35 2.45A2 2 0 0 0 7 17h12v-2H7.42l1.1-2h7.03a2 2 0 0 0 1.75-1.03L20.88 5H5.21l-.94-2H1Zm6 16a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.shop-cart-link:hover{
    border-color:var(--cm-purple);
    color:var(--cm-purple) !important;
    transform:rotate(-1deg);
}

.shop-cart-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:24px;
    height:24px;
    padding:0 7px;
    border-radius:20px;
    background:var(--cm-purple) !important;
    color:var(--cm-cream) !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:12px;
    font-weight:800;
}

.shop-cart-link:hover .shop-cart-count{
    background:var(--cm-purple) !important;
    color:var(--cm-cream) !important;
}

.shop-cart-total,
.shop-cart-link:hover .shop-cart-total{
    color:inherit !important;
}

.shop-cart-total::before{
    content:"— ";
}


/* =========================================================
   BOUTIQUE — EN-TÊTE WOO MASQUÉ
========================================================= */

.shop-page .woocommerce-products-header,
.shop-page .woocommerce-result-count,
.shop-page .woocommerce-ordering{
    display:none !important;
}


/* =========================================================
   BOUTIQUE — ONGLETS CATÉGORIES
========================================================= */

.shop-category-tabs{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    width:100%;
    padding:10px 20px 28px;
}

.shop-category-tab{
    position:relative;
    padding:8px 14px 14px;
    border:0;
    background:none;
    color:var(--cm-purple);
    font-family:'Tovari Sans',sans-serif;
    font-size:18px;
    line-height:1.2;
    cursor:pointer;
    transition:
        color .2s ease,
        transform .2s ease;
}

.shop-category-tab:hover{
    color:var(--cm-green);
    transform:scale(1.05) rotate(2deg);
}

.shop-category-tab.active{
    color:var(--cm-pink);
}

.shop-category-tab.active::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:3px;
    width:35px;
    height:5px;
    border-radius:10px;
    background:var(--cm-pink);
    transform:translateX(-50%) rotate(-2deg);
}

.shop-product-hidden{
    display:none !important;
}


/* =========================================================
   BOUTIQUE — GRILLE PRODUITS
========================================================= */

.shop-page ul.products{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px 14px;
    clear:both;
    width:100%;
    margin:0 !important;
    padding:0 !important;
    list-style:none;
}

.shop-page ul.products::before,
.shop-page ul.products::after{
    display:none !important;
}

.shop-page ul.products li.product{
    float:none !important;
    width:auto !important;
    min-width:0;
    margin:0 !important;
    padding:0 !important;
}

.shop-page ul.products li.product a{
    text-decoration:none;
}

.shop-page ul.products li.product img{
    display:block;
    width:100% !important;
    aspect-ratio:1 / 1;
    margin:0 0 10px !important;
    border-radius:8px;
    object-fit:cover;
    transition:transform .22s cubic-bezier(.22,1,.36,1);
}

.shop-page ul.products li.product:hover img{
    transform:translateY(-2px);
}

.shop-page ul.products li.product .woocommerce-loop-product__title{
    display:block;
    margin:0 !important;
    padding:0 !important;
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
    line-height:1;
}

.shop-page ul.products li.product .product-title-main{
    display:block;
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
    font-size:25px;
    line-height:.95;
}

.shop-page ul.products li.product .product-title-subtitle{
    display:block;
    margin-top:3px;
    color:var(--cm-purple-dark);
    font-family:'Nunito Sans',sans-serif;
    font-size:13px;
    font-weight:700;
    line-height:1.05;
}

.shop-page ul.products li.product .price{
    display:block;
    margin:9px 0 0 !important;
    color:var(--cm-purple) !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:14px !important;
    font-weight:700 !important;
    line-height:1.2;
}

.shop-page ul.products li.product .price del{
    opacity:.55;
}

.shop-page ul.products li.product .price ins{
    color:var(--cm-purple);
    text-decoration:none;
}

.shop-page ul.products li.product .button,
.shop-page ul.products li.product .added_to_cart{
    display:none !important;
}

.shop-page ul.products li.product .onsale{
    top:7px !important;
    right:7px !important;
    left:auto !important;
    min-width:0;
    min-height:0;
    margin:0 !important;
    padding:5px 7px;
    border-radius:20px;
    background:var(--cm-purple);
    color:var(--cm-cream);
    font-family:'Nunito Sans',sans-serif;
    font-size:10px;
    font-weight:700;
    line-height:1;
}


/* =========================================================
   FICHE PRODUIT
========================================================= */

.shop-page div.product::before,
.shop-page div.product::after{
    display:none;
}

.shop-page div.product .summary{
    position:static !important;
    float:none !important;
    width:100% !important;
    margin:30px 0 0 !important;
}

.shop-page div.product .product_title{
    margin:0 0 12px;
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
    font-size:34px;
    font-weight:400;
    line-height:1;
}

.shop-page div.product .product_title .product-title-main,
.shop-page div.product .product_title .product-title-subtitle{
    display:block;
    color:var(--cm-purple-dark);
}

.shop-page div.product .product_title .product-title-subtitle{
    margin-top:4px;
    font-family:'Tovari Sans',sans-serif;
    font-size:.62em;
    font-weight:400;
    line-height:.95;
}

.shop-page div.product p.price,
.shop-page div.product span.price{
    color:var(--cm-purple) !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:18px !important;
    font-weight:700;
}

.shop-page .woocommerce-product-details__short-description{
    margin:20px 0;
    font-size:15px;
    line-height:1.55;
}

.shop-page div.product p.stock,
.shop-page div.product .stock,
.shop-page .shop-stock-compact{
    margin:8px 0;
    color:var(--cm-purple) !important;
    font-size:12px !important;
    font-weight:700;
    line-height:1.25;
}

.shop-page div.product .product_meta{
    margin-top:15px;
    color:#817a97;
    font-size:11px;
    line-height:1.35;
}

.shop-page div.product .product_meta a{
    color:var(--cm-purple);
    font-weight:700;
}


/* =========================================================
   FICHE PRODUIT — GALERIE / ZOOM LOCAL
========================================================= */

.shop-product-gallery{
    float:none !important;
    width:100% !important;
    max-width:680px;
    margin:0 auto !important;
}

.shop-product-main{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    aspect-ratio:1 / 1;
    overflow:hidden;
    border-radius:12px;
    background:#fff;
    cursor:zoom-in;
    touch-action:none;
}

.shop-product-main.is-zoomed{
    cursor:grab;
}

.shop-product-main.is-dragging{
    cursor:grabbing;
}

.shop-product-main-image{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    transform-origin:center center;
    transition:transform .22s ease;
    user-select:none;
    pointer-events:none;
}

.shop-product-main.is-dragging .shop-product-main-image{
    transition:none;
}

.shop-product-thumbs{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
    margin-top:8px;
}

.shop-product-thumb{
    width:100%;
    aspect-ratio:1 / 1;
    padding:0;
    overflow:hidden;
    border:2px solid transparent;
    border-radius:8px;
    background:#fff;
    cursor:pointer;
}

.shop-product-thumb:hover,
.shop-product-thumb.is-active{
    border-color:var(--cm-purple);
}

.shop-product-thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}


/* =========================================================
   QUANTITÉ / VARIATIONS
========================================================= */

.shop-page div.product form.cart{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    margin:24px 0;
}

.shop-page div.product form.cart .quantity{
    width:auto;
    margin:0 !important;
}

.shop-page div.product form.cart .quantity .qty{
    width:58px !important;
    height:42px !important;
    min-height:42px !important;
    padding:5px 7px !important;
    border:1px solid #cfc5db;
    border-radius:7px;
    background:#fff;
    color:var(--cm-purple-dark);
    font-family:'Nunito Sans',sans-serif;
    font-size:15px !important;
    font-weight:700;
    line-height:1 !important;
    text-align:center;
}

.shop-page table.variations{
    width:100%;
}

.shop-page table.variations th,
.shop-page table.variations td{
    display:block;
    padding:3px 0;
    text-align:left;
}

.shop-page table.variations select,
.shop-page input.input-text,
.shop-page textarea,
.shop-page select{
    width:100%;
    min-height:40px;
    padding:8px 10px;
    border:1px solid #cfc5db;
    border-radius:6px;
    background:#fff;
    color:var(--cm-purple-dark);
    font-family:'Nunito Sans',sans-serif;
}


/* =========================================================
   BOUTONS WOO — DROITS, FUN AU HOVER
========================================================= */

.shop-page .button,
.shop-page button.button,
.shop-page input.button,
.shop-page a.button,
.shop-page #respond input#submit,
.shop-page div.product form.cart .single_add_to_cart_button,
body.woocommerce-cart .wc-block-components-button{
    min-height:40px !important;
    padding:11px 17px !important;
    border:0 !important;
    border-radius:8px !important;
    background:var(--cm-purple) !important;
    color:var(--cm-cream) !important;
    font-family:'Tovari Sans',sans-serif !important;
    font-size:16px !important;
    font-weight:400 !important;
    line-height:1 !important;
    box-shadow:4px 4px 0 var(--cm-green) !important;
    transform: translate(0px, 7px);
    cursor:pointer;
    transition:
        transform .2s cubic-bezier(.22,1,.36,1),
        box-shadow .2s ease,
        background .2s ease !important;
}

.shop-page div.product form.cart .single_add_to_cart_button{
    min-height:42px !important;
    padding:12px 20px !important;
    font-size:18px !important;
}

.shop-page .button:hover,
.shop-page button.button:hover,
.shop-page input.button:hover,
.shop-page a.button:hover,
.shop-page #respond input#submit:hover,
.shop-page div.product form.cart .single_add_to_cart_button:hover,
body.woocommerce-cart .wc-block-components-button:hover{
    background:var(--cm-purple-dark) !important;
    color:var(--cm-cream) !important;
    box-shadow:2px 2px 0 var(--cm-green) !important;
    transform:translate(2px,2px) rotate(1.5deg) !important;
}


/* =========================================================
   MESSAGES
========================================================= */

.shop-page .woocommerce-message,
.shop-page .woocommerce-info,
.shop-page .woocommerce-error{
    margin:0 0 24px;
    padding:14px 16px;
    border:0;
    border-radius:8px;
    background:#f1ebf5;
    color:var(--cm-purple-dark);
    font-size:13px;
}

.shop-page .woocommerce-message::before,
.shop-page .woocommerce-info::before,
.shop-page .woocommerce-error::before{
    display:none;
}


/* =========================================================
   ONGLETS FICHE / PRODUITS SIMILAIRES
========================================================= */

.shop-page .woocommerce-tabs,
.shop-page .related.products,
.shop-page .upsells.products{
    clear:both;
    width:100%;
    padding-top:45px;
}

.shop-page .woocommerce-tabs ul.tabs{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin:0 0 20px !important;
    padding:0 !important;
}

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

.shop-page .woocommerce-tabs ul.tabs li{
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:none !important;
}

.shop-page .woocommerce-tabs ul.tabs li a{
    padding:5px 0 !important;
    color:#756d91 !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:13px;
    font-weight:800 !important;
}

.shop-page .woocommerce-tabs ul.tabs li.active a{
    color:var(--cm-purple) !important;
}

.shop-page .related.products{
    max-width:1180px;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
}

.shop-page .related.products > h2,
.shop-page .upsells.products > h2,
.shop-page .woocommerce-Tabs-panel h2{
    margin:0 0 22px;
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
    font-size:28px;
    font-weight:400;
}

.shop-page .related.products > h2{
    width:100%;
    text-align:center;
}

.shop-page .related.products ul.products{
    width:100%;
    max-width:1000px;
    margin-left:auto !important;
    margin-right:auto !important;
}

.shop-page .related.products li.product{
    text-align:left;
}


/* =========================================================
   TITRES PANIER / CHECKOUT / COMPTE
========================================================= */

body.woocommerce-cart h1,
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart .wp-block-post-title,
body.woocommerce-checkout h1,
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .page-title,
body.woocommerce-checkout .wp-block-post-title,
body.woocommerce-order-received h1,
body.woocommerce-order-received .entry-title,
body.woocommerce-account h1,
body.woocommerce-account .entry-title{
    display:block !important;
    width:100% !important;
    max-width:1050px !important;
    margin:38px auto 34px !important;
    padding:0 20px !important;
    color:var(--cm-pink) !important;
    font-family:'Tovari Sans',sans-serif !important;
    font-size:28px !important;
    font-weight:400 !important;
    line-height:1 !important;
    text-align:center !important;
}


/* =========================================================
   PANIER BLOCKS — STRUCTURE
========================================================= */

body.woocommerce-cart .wp-block-woocommerce-cart{
    width:calc(100% - 40px);
    max-width:1050px;
    margin:0 auto 100px !important;
    color:var(--cm-purple-dark);
}

body.woocommerce-cart .wc-block-cart{
    display:flex !important;
    flex-direction:column !important;
    gap:28px !important;
    width:100% !important;
}

body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar{
    width:100% !important;
    max-width:none !important;
    flex:0 0 100% !important;
    margin:0 auto !important;
}

body.woocommerce-cart .wc-block-cart__sidebar{
    padding:18px !important;
    border:3px solid var(--cm-purple) !important;
    border-radius:12px;
    background:var(--cm-cream) !important;
}


/* =========================================================
   PANIER BLOCKS — LISTE PRODUITS
========================================================= */

body.woocommerce-cart .wc-block-cart-items{
    border:0 !important;
    background:transparent !important;
}

body.woocommerce-cart .wc-block-cart-items thead,
body.woocommerce-cart .wc-block-cart-items tbody,
body.woocommerce-cart .wc-block-cart-items tr,
body.woocommerce-cart .wc-block-cart-items th,
body.woocommerce-cart .wc-block-cart-items td,
body.woocommerce-cart .wc-block-cart-item__image,
body.woocommerce-cart .wc-block-cart-item__product,
body.woocommerce-cart .wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper{
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
}

body.woocommerce-cart .wc-block-cart-items thead th{
    padding:0 0 10px !important;
    border-bottom:2px solid var(--cm-line) !important;
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
    font-size:16px;
    font-weight:400;
}

body.woocommerce-cart .wc-block-cart-items tbody tr{
    position:relative;
}

body.woocommerce-cart .wc-block-cart-items tbody tr:not(:last-child)::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:2px;
    background:var(--cm-line);
}

body.woocommerce-cart .wc-block-cart-items tbody td{
    padding-top:16px !important;
    padding-bottom:16px !important;
}

body.woocommerce-cart .wc-block-cart-items tbody tr + tr td{
    padding-top:24px !important;
}

body.woocommerce-cart .wc-block-cart-item__image img{
    border-radius:8px;
}

body.woocommerce-cart .wc-block-components-product-name{
    color:var(--cm-purple-dark) !important;
    font-family:'Tovari Sans',sans-serif;
    font-size:22px !important;
    line-height:1.05 !important;
}

body.woocommerce-cart .wc-block-components-product-metadata{
    color:#746b91;
    font-size:11px;
    line-height:1.3;
}


/* =========================================================
   PANIER — QUANTITÉ + POUBELLE
========================================================= */

body.woocommerce-cart .wc-block-cart-item__quantity{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    min-height:40px;
}

body.woocommerce-cart .wc-block-components-quantity-selector{
    flex:0 0 100px;
    width:100px !important;
    height:38px !important;
    margin:0 !important;
    border:1px solid var(--cm-purple) !important;
    border-radius:7px !important;
    background:#fff !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector input{
    min-width:34px !important;
    color:var(--cm-purple-dark) !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:13px !important;
    font-weight:700;
}

body.woocommerce-cart .wc-block-components-quantity-selector button{
    color:var(--cm-purple) !important;
}

body.woocommerce-cart .wc-block-cart-item__remove-link-container,
body.woocommerce-cart .wc-block-cart-item__remove-link{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    margin:0 !important;
    padding:0 !important;
    line-height:1 !important;
}

body.woocommerce-cart .wc-block-cart-item__remove-link{
    min-width:28px;
    min-height:38px;
    color:var(--cm-purple-dark) !important;
}


/* =========================================================
   PANIER — TOTAL / CODE PROMO
========================================================= */

/*
 * Important :
 * on neutralise TOUTES les bordures internes Woo.
 * Puis on remet uniquement les séparateurs utiles.
 */
body.woocommerce-cart .wc-block-cart__sidebar *,
body.woocommerce-cart .wc-block-components-sidebar *,
body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-components-panel,
body.woocommerce-cart .wc-block-components-panel__button,
body.woocommerce-cart .wc-block-components-order-summary{
    border-color:transparent !important;
    box-shadow:none;
}

body.woocommerce-cart .wc-block-cart__totals-title{
    padding:0 0 14px !important;
    border-bottom:2px solid var(--cm-line) !important;
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
    font-size:20px !important;
    font-weight:400 !important;
    text-align:left !important;
}

/* Coupon : aucune double ligne */
body.woocommerce-cart .wc-block-components-totals-coupon{
    border:0 !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__button{
    border:0 !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__content{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px !important;
    align-items:end;
    padding:14px 0 !important;
    border-bottom:2px solid var(--cm-line) !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__content .wc-block-components-text-input{
    margin:0 !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__content input{
    min-height:42px !important;
    border:1px solid var(--cm-purple) !important;
    border-radius:7px !important;
    background:#fff !important;
    color:var(--cm-purple-dark) !important;
}

/* Une seule séparation avant le total */
body.woocommerce-cart .wc-block-components-totals-footer-item,
body.woocommerce-cart .wc-block-components-totals-item{
    border:0 !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item{
    padding:14px 0 !important;
    color:var(--cm-purple-dark);
    font-size:17px;
}

/* Bouton promo */
body.woocommerce-cart .wc-block-components-totals-coupon__button{
    min-width:90px !important;
    min-height:42px !important;
    padding:10px 14px !important;
    border-radius:7px !important;
    background:var(--cm-purple) !important;
    color:var(--cm-cream) !important;
    font-family:'Tovari Sans',sans-serif !important;
    font-size:14px !important;
    font-weight:400 !important;
    line-height:1 !important;
    box-shadow:3px 3px 0 var(--cm-green) !important;
    opacity:1 !important;
    transform:none !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__button:hover:not(:disabled){
    background:var(--cm-purple-dark) !important;
    color:var(--cm-cream) !important;
    box-shadow:2px 2px 0 var(--cm-green) !important;
    transform:translate(1px,1px) rotate(1.5deg) !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__button:disabled{
    background:#bfa5d2 !important;
    color:var(--cm-cream) !important;
    box-shadow:3px 3px 0 #d8f8e6 !important;
    cursor:not-allowed;
}

/* CTA panier */
body.woocommerce-cart .wc-block-cart__submit{
    margin-top:18px;
}

body.woocommerce-cart .wc-block-cart__submit-button{
    width:100%;
    min-height:48px !important;
    padding:13px 20px !important;
    font-size:20px !important;
}


/* =========================================================
   COMPTE / CLASSIC WOO
========================================================= */

.shop-page table.shop_table{
    width:100%;
    margin:0 0 25px;
    border:0 !important;
    background:transparent;
}

.shop-page table.shop_table th{
    padding:11px 10px;
    border:0;
    border-bottom:2px solid var(--cm-purple);
    background:transparent;
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
    font-size:17px;
    font-weight:400;
}

.shop-page table.shop_table td{
    padding:14px 10px;
    border:0;
    background:transparent;
    color:var(--cm-purple-dark);
    font-size:13px;
}

.shop-page .col2-set{
    display:grid;
    grid-template-columns:1fr;
    gap:25px;
    width:100%;
}

.shop-page .col2-set .col-1,
.shop-page .col2-set .col-2{
    float:none;
    width:100%;
}

.shop-page .woocommerce-MyAccount-navigation{
    float:none;
    width:100%;
    margin-bottom:25px;
}

.shop-page .woocommerce-MyAccount-navigation ul{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0;
    padding:0;
    list-style:none;
}

.shop-page .woocommerce-MyAccount-navigation a{
    font-size:13px;
    font-weight:700;
}

.shop-page .woocommerce-MyAccount-content{
    float:none;
    width:100%;
}


/* =========================================================
   PAGINATION
========================================================= */

.shop-page nav.woocommerce-pagination{
    margin-top:40px;
}

.shop-page nav.woocommerce-pagination ul{
    display:flex;
    justify-content:center;
    gap:5px;
    border:0 !important;
}

.shop-page nav.woocommerce-pagination ul li{
    border:0 !important;
}

.shop-page nav.woocommerce-pagination ul li a,
.shop-page nav.woocommerce-pagination ul li span{
    min-width:34px;
    padding:8px;
    border-radius:5px;
    color:var(--cm-purple-dark);
    font-size:12px;
}

.shop-page nav.woocommerce-pagination ul li span.current{
    background:var(--cm-purple);
    color:var(--cm-cream);
}




/* ==========================================================================
   INFORMATIONS BOUTIQUE — avant le footer
   Mobile : trois lignes centrées, sans séparateurs.
   ========================================================================== */
.cm-shop-reassurance {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 18px 16px 60px;
    background: var(--cm-cream);
    color: var(--cm-purple-dark);
    font-family: 'Nunito Sans', sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}
.cm-shop-reassurance a {
    color: var(--cm-purple);
    text-decoration: none;
    transition: color .2s ease;
}
.cm-shop-reassurance a:hover { color: var(--cm-pink) !important; }


/* Masquer les boutons express sur les fiches produits */
.single-product #wc-stripe-express-checkout-element,
.single-product #wc-stripe-express-checkout-button-separator,
.single-product .wcpay-payment-request-wrapper,
.single-product .wcpay-payment-request-button-separator {
    display: none !important;
}
/* Centrer le contenu des notifications WooCommerce */
.woocommerce-message {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.woocommerce-message .button {
    order: 2;
    float: none;
    flex-shrink: 0;
}
/* Panier — supprimer les soulignements */
.woocommerce-cart a,
.woocommerce-cart a:hover,
.woocommerce-cart a:focus,
.woocommerce-cart button,
.woocommerce-cart button:hover,
.woocommerce-cart .wc-block-components-button,
.woocommerce-cart .wc-block-components-button:hover {
    text-decoration: none !important;
}
/* WooCommerce — supprimer les soulignements */
.woocommerce a,
.woocommerce a:hover,
.woocommerce a:focus,
.wc-block-checkout a,
.wc-block-checkout a:hover,
.wc-block-cart a,
.wc-block-cart a:hover {
    text-decoration: none !important;
}

/* =========================================================
   CHECKOUT — COULEURS UNIQUEMENT
   Aucune modification des colonnes, de la visibilité,
   du sticky ou du comportement natif des résumés.
========================================================= */
body.woocommerce-checkout .wc-block-checkout{
    color:var(--cm-purple-dark);
    --wc-separator-color:var(--cm-purple);
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-order-summary__title-text{
    color:var(--cm-purple-dark);
    font-family:'Tovari Sans',sans-serif;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-combobox-control input{
    border-color:var(--cm-purple);
    border-radius:7px;
    background:#fff;
    color:var(--cm-purple-dark);
}

body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__sidebar{
    border-color:var(--cm-purple);
    border-radius:12px;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-place-order-button{
    background:var(--cm-purple);
    color:var(--cm-cream);
    border-radius:8px;
    box-shadow:4px 4px 0 var(--cm-green);
}
body.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-place-order-button:hover{
    background:var(--cm-purple-dark);
    color:var(--cm-cream);
}


.wp-block-woocommerce-checkout-order-summary-block{border:none !important;}

.wp-block-woocommerce-checkout-order-summary-block .checkout-order-summary-block-fill {
    border: 3px solid #6a1bb1 !important;
    border-radius: 16px !important;}

.wc-block-components-checkout-place-order-button {
    width: fit-content !important;
    display: block !important;
    margin: 20px auto !important;
    font-family: "Tovari Sans";
    font-size:20px;
}

.wc-block-components-checkout-order-summary__title{ display:none !important; }
.wc-block-components-express-payment-continue-rule:after, .wc-block-components-express-payment-continue-rule:before {
    border-bottom: 1px solid #6a1bb1 !important;
}

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

@media(min-width:600px){

    .shop-category-tab{
        font-size:24px;
    }

    .shop-page ul.products{
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:32px 18px;
    }

    .shop-page .related.products ul.products{
        grid-template-columns:repeat(2,minmax(0,230px)) !important;
        justify-content:center;
    }

    body.woocommerce-cart .wc-block-cart{
        display:grid !important;
        grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr) !important;
        gap:34px !important;
        align-items:start;
    }

    body.woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wc-block-cart__sidebar{
        width:100% !important;
        max-width:none !important;
        flex:none !important;
    }
}


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

@media(min-width:1040px){

    .shop-page{
        padding:0 42px 100px;
    }

    .shop-category-tabs{
        gap:25px;
        padding-top:22px;
        padding-bottom:38px;
    }

    .shop-page ul.products{
        grid-template-columns:repeat(5,minmax(0,1fr));
        gap:36px 22px;
    }

    .shop-page ul.products li.product .product-title-main{
        font-size:27px;
    }

    .shop-page ul.products li.product .product-title-subtitle{
        font-size:14px;
    }

    .shop-page div.product{
        display:grid;
        grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
        gap:60px;
        align-items:start;
    }

    .shop-product-gallery{
        grid-column:1;
        grid-row:1;
    }

    .shop-page div.product .summary{
        grid-column:2;
        grid-row:1;
        margin:0 !important;
    }

    .shop-page div.product .product_title{
        font-size:42px;
    }

    .shop-page div.product .product_title .product-title-subtitle{
        font-size:.68em;
    }

    .shop-page .woocommerce-tabs,
    .shop-page .related.products,
    .shop-page .upsells.products{
        grid-column:1 / -1;
    }

    .shop-page .related.products ul.products{
        grid-template-columns:repeat(4,minmax(0,220px)) !important;
        justify-content:center;
        gap:34px 22px;
    }

    .shop-page .col2-set{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:45px;
    }

    .shop-cart-link{
        font-size:19px;
    }

    body.woocommerce-cart h1,
    body.woocommerce-cart .entry-title,
    body.woocommerce-cart .page-title,
    body.woocommerce-cart .wp-block-post-title,
    body.woocommerce-checkout h1,
    body.woocommerce-checkout .entry-title,
    body.woocommerce-checkout .page-title,
    body.woocommerce-checkout .wp-block-post-title,
    body.woocommerce-order-received h1,
    body.woocommerce-account h1{
        width:calc(100% - 80px) !important;
        padding:0 40px !important;
        font-size:30px !important;
    }

    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout{
        width:calc(100% - 80px);
    }

    body.woocommerce-cart .wc-block-cart{
        grid-template-columns:minmax(0,1.7fr) minmax(330px,.8fr) !important;
        gap:45px !important;
    }
}


/* Informations boutique : ligne unique et séparateurs sur tablette/desktop. */
@media (min-width: 601px) {
    .cm-shop-reassurance {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px 0;
        padding: 22px 20px 65px;
        font-size: 14px;
    }
    .cm-shop-reassurance > * + *::before {
        content: '|';
        display: inline-block;
        margin: 0 12px;
        color: var(--cm-purple);
    }
}

/* CHECKOUT — Deux colonnes desktop */
@media (min-width: 1000px) {

    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        width: calc(100% - 40px) !important;
        max-width: 1200px !important;
        margin: 0 auto 100px !important;
    }

    body.woocommerce-checkout .wc-block-checkout {
        width: 100% !important;
        max-width: none !important;
    }

    body.woocommerce-checkout .wc-block-checkout__main {
        width: 62% !important;
        max-width: none !important;
        padding-right: 40px !important;
        box-sizing: border-box;
    }

    body.woocommerce-checkout .wc-block-checkout__sidebar {
        width: 38% !important;
        max-width: none !important;
        border: 3px solid #772faf !important;
        border-radius: 16px !important;
        background: #fffdef !important;
        box-sizing: border-box;
        position: sticky !important;
        top: 30px;
    }

    body.woocommerce-checkout .wc-block-components-sidebar-layout {
        display: flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        gap: 0 !important;
    }
}


.woocommerce table.shop_table{
        border: 3px solid #6a1bb1;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td{
    border-bottom:1px solid #6a1bb1 !important;
}
.woocommerce .woocommerce-customer-details address{
        border: 3px solid #6a1bb1;
}
.woocommerce .woocommerce-customer-details .woocommerce-column__title{
    margin: 20px 0 0 !important;
}