.elementor-18 .elementor-element.elementor-element-723e626:not(.elementor-motion-effects-element-type-background), .elementor-18 .elementor-element.elementor-element-723e626 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FDFBF7;}.elementor-18 .elementor-element.elementor-element-723e626{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:30px 0px 30px 0px;}.elementor-18 .elementor-element.elementor-element-723e626 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-18 .elementor-element.elementor-element-bdfde9b > .elementor-container{max-width:1400px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-18 .elementor-element.elementor-element-795aeb2 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:15px;font-weight:400;text-transform:uppercase;letter-spacing:5px;color:#70564E;}.elementor-18 .elementor-element.elementor-element-2968fe6 .elementor-heading-title{font-family:"Playfair Display", Sans-serif;font-size:40px;color:#2C1810;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-18 .elementor-element.elementor-element-330da38{font-family:"Roboto", Sans-serif;font-size:16px;font-weight:400;line-height:25px;color:#70564E;}.elementor-18 .elementor-element.elementor-element-f6e26f4:not(.elementor-motion-effects-element-type-background), .elementor-18 .elementor-element.elementor-element-f6e26f4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FDFBF7;}.elementor-18 .elementor-element.elementor-element-f6e26f4{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;}.elementor-18 .elementor-element.elementor-element-f6e26f4 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-18 .elementor-element.elementor-element-f1b4263 > .elementor-container{max-width:1400px;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-18 .elementor-element.elementor-element-795aeb2 .elementor-heading-title{font-size:13px;}.elementor-18 .elementor-element.elementor-element-2968fe6 .elementor-heading-title{font-size:32px;}.elementor-18 .elementor-element.elementor-element-330da38{font-size:14px;}}@media(max-width:767px){.elementor-18 .elementor-element.elementor-element-795aeb2 .elementor-heading-title{font-size:13px;}.elementor-18 .elementor-element.elementor-element-2968fe6 .elementor-heading-title{font-size:28px;}.elementor-18 .elementor-element.elementor-element-330da38{font-size:14px;}}/* Start custom CSS for shortcode, class: .elementor-element-5da02b0 *//* ===================================
   BOUTIQUE CUSTOM - CSS COMPLET
   =================================== */

/* Wrapper principal */
.boutique-custom-wrapper {
    margin: 0 auto;
    font-family: inherit;
}

/* ===================================
   BARRE DE FILTRES
   =================================== */
.boutique-filters-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 30px;
}

/* ===================================
   BOUTONS CATÉGORIES
   =================================== */
.boutique-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.cat-btn {
    padding: 8px 20px;
    border: 1px solid #ddd;
    font-size: 13px;
    font-weight: 500;
    color: #6b524c;
    background: #f0e6d8;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.25s ease;
    white-space: nowrap;
    outline: none;
    box-shadow: none;
}

.cat-btn:hover {
    background: #5d4037;
    border-color: #999;
    color: #fff;
}

.cat-btn.active {
    background: #5d4037;
    color: #fff;
    border-color: #222;
}

/* ===================================
   TRI + COMPTEUR
   =================================== */
.boutique-sort-count {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

.products-count {
    font-size: 13px;
    color: #888;
    white-space: nowrap;
}

.sort-select {
    padding: 8px 14px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
    color: #333;
    background: #fff;
    cursor: pointer;
    outline: none;
    transition: border-color 0.2s ease;
    appearance: auto;
}

.sort-select:hover,
.sort-select:focus {
    border-color: #999;
}

/* ===================================
   GRILLE PRODUITS
   =================================== */
.boutique-grid {
    position: relative;
    min-height: 200px;
}

.boutique-items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    transition: opacity 0.2s ease;
}

.boutique-item {
    width: 100%;
    min-width: 0;
}

/* ===================================
   SPINNER / LOADING
   =================================== */
.boutique-loading {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    background: rgba(255, 255, 255, 0.65);
    border-radius: 8px;
}

.boutique-spinner {
    width: 42px;
    height: 42px;
    border: 3px solid #eee;
    border-top-color: #333;
    border-radius: 50%;
    animation: boutiqueSpин 0.7s linear infinite;
}

@keyframes boutiqueSpin {
    to { transform: rotate(360deg); }
}

/* ===================================
   AUCUN PRODUIT
   =================================== */
.no-products {
    grid-column: 1 / -1;
    text-align: center;
    color: #999;
    font-size: 15px;
    padding: 60px 20px;
}

/* ===================================
   PAGINATION
   =================================== */
.boutique-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 48px;
    flex-wrap: wrap;
}

.boutique-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
    color: #333;
    text-decoration: none;
    background: #fff;
    transition: all 0.2s ease;
    cursor: pointer;
}

.boutique-pagination .page-numbers:hover {
    background: #f5f5f5;
    border-color: #999;
    color: #111;
}

.boutique-pagination .page-numbers.current {
    background: #222;
    color: #fff;
    border-color: #222;
    font-weight: 600;
    pointer-events: none;
}

.boutique-pagination .page-numbers.dots {
    border: none;
    background: transparent;
    pointer-events: none;
    color: #aaa;
}

/* ===================================
   RESPONSIVE
   =================================== */

/* Tablette large */
@media (min-width: 1025px) {
    .boutique-items {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
}
@media (min-width: 768px) and (max-width:1024px){
    .boutique-items {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}
/* Tablette */
@media (max-width: 767px) {
    .boutique-custom-wrapper {
        padding: 16px;
    }

    .boutique-filters-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .boutique-sort-count {
        width: 100%;
        justify-content: space-between;
    }

    .boutique-items {
        grid-template-columns: repeat(1, 1fr);
        gap: 16px;
    }

    .cat-btn {
        padding: 7px 14px;
        font-size: 12px;
    }
}

/* Mobile */
@media (max-width: 480px) {
    .boutique-items {
        grid-template-columns: repeat(1, 1fr);
        gap: 12px;
    }

    .boutique-pagination .page-numbers {
        min-width: 32px;
        height: 32px;
        font-size: 12px;
        padding: 0 8px;
    }

    .sort-select {
        font-size: 12px;
        padding: 7px 10px;
    }

    .products-count {
        font-size: 12px;
    }
}

/* Très petit mobile */
@media (max-width: 360px) {
    .boutique-items {
        grid-template-columns: 1fr;
    }
}/* End custom CSS */