/* --- BOUTON SÉLECTION (PANIER) --- */
.gs_btn_panier {
    padding: 10px 20px;
    border: 1px solid #000;
    background: #fff;
    cursor: pointer;
    display: inline-flex;
    gap: 8px;
    align-items: center;
    transition: all 0.3s;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    position: relative;
    z-index: 5;
}
.gs_btn_panier:hover { background: #000; color: #fff; }
.gs_btn_panier .gs_txt_remove { display: none; }

.gs_btn_panier.is_added { background: #000; color: #fff; border-color: #000; }
.gs_btn_panier.is_added .gs_txt_add { display: none; }
.gs_btn_panier.is_added .gs_txt_remove { display: inline-block; }

/* Cas spécifique : Position Absolue DANS LES VIGNETTES/CARTES */
.gs-vignette-wrapper .gs_btn_icon,
.gs_card_produit .gs_btn_icon {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 20;
    background: rgba(255,255,255,0.9);
}

/* Style pour l'icône */
.gs_icon_heart svg { width: 20px; height: 20px; }

/* --- RESTE DU CSS --- */
.gs_btn_details{display:inline-block;padding:10px 20px;border:1px solid #000;background:#fff;color:#000;text-decoration:none;cursor:pointer;transition:all 0.3s;text-align:center;}
.gs_btn_details:hover{background:#000;color:#fff;}

#gs_panier_conteneur-ajax{width:100%;} .gs_item_panier{display:flex;gap:15px;align-items:center;border-bottom:1px solid #eee;padding:10px 0;}
.gs_item_img img{width:60px;height:60px;object-fit:cover;border-radius:4px;} .gs_item_info{flex-grow:1;font-size:14px;line-height:1.4;}
.gs_item_panier a { text-decoration: none; color: inherit; transition: opacity 0.2s; }
.gs_item_panier a:hover { opacity: 0.7; color: #000; }

.gs_btn_delete{color:#cc0000;background:none;border:none;font-size:24px;cursor:pointer;padding:0 10px;}
.gs_panier_vide,.gs_loading,.gs_error{padding:20px;text-align:center;font-style:italic;color:#666;}
.gs_panier_prix_row{margin-top:4px;font-size:0.9em;display:flex;align-items:center;gap:6px;}
.gs_badge_mini{background-color:#e74c3c;color:white;font-size:10px;padding:2px 4px;border-radius:3px;font-weight:bold;}
.gs_old_price{text-decoration:line-through;color:#999;font-size:0.9em;} .gs_new_price{color:#d00;font-weight:bold;} .gs_normal_price{font-weight:bold;color:#333;}

/* GRILLE FAVORIS */
.gs_grid_favoris .gs_card_favori { position: relative; border: 1px solid #eee; border-radius: 4px; padding: 15px; text-align: center; transition: transform 0.2s; background: #fff; }
.gs_grid_favoris .gs_card_favori:hover { transform: translateY(-5px); box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
.gs_delete_abs { position: absolute; top: 5px; right: 5px; background: #fff; border-radius: 50%; width: 30px; height: 30px; line-height: 30px; padding: 0; box-shadow: 0 2px 5px rgba(0,0,0,0.1); z-index: 10; }
.gs_delete_abs:hover { background: #d00; color: #fff; }

/* FORMULAIRE & RESTE */
#gs_wrapper_formulaire{max-width:100%;} #gs_msg_succes{padding:20px;background:#d4edda;color:#155724;border:1px solid #c3e6cb;border-radius:5px;margin-bottom:20px;}
.gs_recap_section{margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #eee;}
.gs_field{margin-bottom:15px;} .gs_field label{display:block;font-weight:bold;margin-bottom:5px;}
.gs_field input,.gs_field select{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;}
.gs_row{display:flex;gap:15px;flex-wrap:wrap;} #gs_btn_envoyer{width:100%;padding:15px;background:#000;color:#fff;border:none;cursor:pointer;margin-top:10px;transition:opacity 0.3s;}
#gs_btn_envoyer:hover{opacity:0.9;}

.gs-full-product-layout{display:flex;gap:40px;flex-wrap:wrap;} .gs-col-gallery{flex:1;min-width:300px;max-width:100%;overflow:hidden;} .gs-col-infos{flex:1;min-width:300px;}
.gs-qv-title{margin-top:0;font-size:2.5em;line-height:1.2;} .gs-qv-price-wrap{font-size:1.5em;margin:20px 0;}
.gs-qv-old-price{text-decoration:line-through;color:#999;margin-right:10px;} .gs-qv-new-price{color:#d00;font-weight:bold;} .gs-qv-price{font-weight:bold;}
.gs-qv-metas{margin-bottom:20px;font-size:0.9em;color:#666;border-bottom:1px solid #eee;padding-bottom:15px;} .gs-meta-row{margin-bottom:5px;}

.gs-main-img-wrapper{position:relative;display:block;} .gs-main-img{width:100%;height:auto;border-radius:4px;margin-bottom:15px;}
.gs-qv-badge-overlay,.gs_badge_promo{position:absolute;top:10px;left:10px;background-color:#d00;color:#fff;padding:5px 10px;font-weight:bold;font-size:14px;border-radius:4px;z-index:5;box-shadow:0 2px 5px rgba(0,0,0,0.2);}
.gs_badge_promo{position:relative;top:auto;left:auto;display:inline-block;margin-right:5px;vertical-align:middle;font-size:0.8em;padding:4px 8px;}
.gs-qv-video,.gs_video_wrapper{margin:20px 0;position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:4px;}
.gs-qv-video iframe,.gs_video_wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;}
.gs_term_link{color:#333;text-decoration:none;border-bottom:1px solid transparent;transition:all 0.2s;} .gs_term_link:hover{color:#000;border-bottom:1px solid #000;}
.gs_prix_barre{text-decoration:line-through;margin-right:10px;opacity:0.6;font-size:0.9em;} .gs_prix_promo{color:#d00;font-weight:bold;}

.swiper{width:100%;height:100%;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;}
.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box;}
.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block;}

.gs_quickview_swiper{width:100%;height:100%;border-radius:4px;} .gs_quickview_swiper .swiper-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.gs_quickview_swiper .swiper-button-next,.gs_quickview_swiper .swiper-button-prev{color:#000;background:rgba(255,255,255,0.8);width:40px;height:40px;border-radius:50%;z-index:50;}
.gs_quickview_swiper .swiper-button-next:after,.gs_quickview_swiper .swiper-button-prev:after{font-size:14px;font-weight:bold;}

.gs_product_carousel_wrapper{margin:30px 0;width:100%;max-width:100%;overflow:hidden;position:relative;}
.gs_product_swiper{width:100%;padding-bottom:40px;}
.gs_product_swiper .swiper-slide{width:auto;max-width:100%;}
.gs_product_swiper .swiper-slide img{width:100%;height:400px;object-fit:cover;border-radius:4px;cursor:grab;display:block;}
.gs_product_swiper .swiper-slide img:active{cursor:grabbing;} .gs_product_swiper .swiper-pagination-bullet-active{background:#000;}

/* --- STYLE VIGNETTE (SLIDER SURVOL) --- */
.gs-vignette-wrapper a{display:block;width:100%;height:100%;}
.gs-vignette-img {display: block; transition: transform 0.5s ease;}
.gs-vignette-wrapper:hover .swiper-slide-active .gs-vignette-img {transform:scale(1.05);}

.gs_card_swiper{width:100%;max-width:100%;height:100%;padding-bottom:0!important;overflow:hidden;}
.gs-card-next,.gs-card-prev{color:#000;background:rgba(255,255,255,0.8);width:25px;height:25px;border-radius:50%;opacity:0;transition:opacity 0.3s;position:absolute;top:50%;transform:translateY(-50%);z-index:10;}
.gs-card-next:after,.gs-card-prev:after{font-size:10px;font-weight:bold;}
.gs-card-next{right:10px;} .gs-card-prev{left:10px;}
.gs-vignette-wrapper:hover .gs-card-next,.gs-vignette-wrapper:hover .gs-card-prev{opacity:1;}
@media (max-width:768px){.gs-card-next,.gs-card-prev{opacity:1;}}

.elementor-widget-shortcode{width:100%;min-width:0;}

.gs_grid_similaire{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-top:20px;}
.gs_card_produit{border:1px solid #eee;padding:10px;border-radius:4px;text-align:center;transition:transform 0.2s;}
.gs_card_produit:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,0.05);}
.gs_card_img{width:100%;height:250px;background-size:cover;background-position:center;margin-bottom:10px;border-radius:2px;}
.gs_card_title{font-weight:bold;margin-bottom:10px;color:#333;text-decoration:none;display:block;}
.gs_card_produit a{text-decoration:none;}
.gs_history_title{margin-top:40px;margin-bottom:20px;font-size:1.5em;border-bottom:2px solid #eee;padding-bottom:10px;}

/* ==========================================================================
   A. MODE "PELLICULE" (Hauteur fixe, Largeur variable, Pas de crop)
   ========================================================================== */

/* 1. HAUTEUR SUR ORDINATEUR */
.gs-vignette-wrapper { height:800px!important; aspect-ratio:auto!important; width:100%; }

.gs-vignette-wrapper > img { height:800px!important; }

/* 2. HAUTEUR SUR MOBILE */
@media (max-width: 768px) {
    .gs-vignette-wrapper { height:270px!important; }
    .gs-vignette-wrapper > img { height:270px!important; }
}

/* 3. Ajustement des diapositives */
.gs-vignette-wrapper .swiper-slide {
    width: auto !important;  
    height: 100%;
    aspect-ratio: auto !important;
    border-radius: 4px;
    overflow: hidden;
}

/* 4. Gestion de l'image (Cover vs Contain) */
.gs-vignette-wrapper .swiper-slide img {
    height: 100%;      
    width: auto;       
    object-fit: cover; /* "cover" remplit tout le cadre (joli). */
    display: block;
}

/* ==========================================================================
   B. STYLE DU SHORTCODE [gs_slider_solo]
   ========================================================================== */

.gs-solo-wrapper {
    width: 100%;
    /* Ratio Portrait 3:4 (ex: 300x400). Changez en 1/1 pour un carré */
    aspect-ratio: 3 / 4; 
    border-radius: 4px;
    background: #f4f4f4; /* Fond gris le temps que l'image charge */
}

.gs_solo_swiper, 
.gs_solo_swiper .swiper-wrapper, 
.gs_solo_swiper .swiper-slide {
    height: 100%;
    width: 100%;
}

.gs-solo-img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Remplit tout le cadre */
    display: block;
}

/* Style des flèches spécifiques à ce slider */
.gs-solo-prev, .gs-solo-next {
    opacity: 0; /* Caché par défaut */
    transition: opacity 0.3s;
    background: rgba(255,255,255,0.9);
    color: #000;
}
.gs-solo-wrapper:hover .gs-solo-prev,
.gs-solo-wrapper:hover .gs-solo-next {
    opacity: 1; /* Apparait au survol */
}

/* Style de la pagination (les points en bas) */
.gs-solo-pagination .swiper-pagination-bullet {
    background: #fff;
    opacity: 0.5;
}
.gs-solo-pagination .swiper-pagination-bullet-active {
    background: #fff;
    opacity: 1;
}