html,
body,
#page,
.site,
#masthead { /* Added #masthead here */
    overflow: visible !important;
    overflow-x: visible !important;
}

/*
Theme Name: BoulderGain Custom Theme
Theme URI: https://bouldergain.com/
Author: Your Name/BoulderGain
Author URI: https://bouldergain.com/
Description: A custom blank theme for BoulderGain to ensure a clean WooCommerce integration.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bouldergain-custom
Tags: woocommerce, custom-theme, e-commerce

This theme is intentionally minimal to provide a clean slate.
*/

/* Styles copied from old generatepress-child/style.css */
body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
    color: #1f2937; /* text-gray-800 */
}

h1, h2, h3, h4, h5, h6 {
    
}

/* Cart Modal Styles */
.cart-modal-overlay {
    display: none;
    z-index: 9999;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
}

.cart-modal-overlay.active {
    display: flex !important;
}

.cart-modal-container {
    width: 100%;
    max-width: 400px;
    height: 100vh;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.3s ease-in-out;
    background-color: white;
}

.cart-modal-overlay.active .cart-modal-container {
    transform: translateX(0);
}

/* Ensure the modal is initially hidden */
#cart-modal {
    display: none;
}

#cart-modal.active {
    display: flex !important;
}

/* Force modal display when needed */
.force-display-modal {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* STYLES POUR LE MODAL - CORRIGÉS */
#cart-modal {
    display: none; /* Caché par défaut */
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 99999 !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
}

#cart-modal.active {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.cart-modal-container {
    transform: none !important;
    right: 0 !important;
    position: absolute !important;
    height: 100% !important;
    max-width: 400px !important;
    width: 100% !important;
    background-color: white !important;
    box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1) !important;
}


.cart-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid #e5e7eb;
}

.cart-modal-close-wrapper {
    position: relative;
}

.cart-modal-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    color: #6b7280;
}

.cart-modal-close:hover {
    color: #111827;
}

.cart-modal-close-icon {
    width: 20px;
    height: 20px;
}

.cart-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}

.cart-modal-footer {
    padding: 1rem;
    border-top: 1px solid #e5e7eb;
}

/* body.modal-open {
    overflow: hidden;
} */

/* Make sure the product image displays properly */
.cart-modal-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Styles personnalisés supprimés pour privilégier l'approche Tailwind */

/* Modification du padding supérieur pour les classes py-8 et md:py-12 */
/* Pour les écrans mobiles */
.py-8 {
    padding-top: 0rem !important;
    /* padding-bottom reste à 2rem (8 * 0.25rem = 2rem) */
}

/* Pour les écrans desktop */
@media (min-width: 768px) {
    .md\:py-12 {
        padding-top: 1rem !important;
        /* padding-bottom reste à 3rem */
    }
}

/* Personnalisation des vignettes d'images et du titre en version mobile */
@media (max-width: 767px) {
    /* Dimensions exactes des vignettes */
    .mobile-gallery .thumbnail-item {
        width: 135px !important;
        height: 168px !important;
        border: none !important; /* Suppression de toute bordure */
        overflow: hidden !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Suppression des marges latérales */
    .mobile-gallery .thumbnails-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .mobile-gallery .thumbnails-scroll-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        gap: 5px !important; /* Espacement exact de 5px entre les vignettes */
        width: 100% !important;
        max-width: 100% !important;
    }
    
    /* Sélecteur pour les vignettes */
    .mobile-gallery .overflow-hidden.w-20.h-20,
    .mobile-gallery .overflow-hidden[class*="w-"][class*="h-"] {
        width: 135px !important;
        height: 168px !important;
        overflow: hidden !important;
    }
    
    /* S'assurer que les images dans les vignettes sont en mode cover */
    .mobile-gallery .thumbnail-item img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
    }
    
    /* Réduction de la taille du titre */
    #page.site body.single-product .custom-product-summary-column .product_title.entry-title {
        font-size: 1rem !important;
    }
    
    /* Suppression de la bordure noire des vignettes actives */
    .mobile-gallery .thumbnail-item.active {
        opacity: 1 !important;
        border: none !important;
        box-shadow: 0 1px 3px rgba(0,0,0,0.2) !important; /* Légère ombre pour indiquer la sélection */
    }
    
    /* Ajustement de l'opacité pour les vignettes non actives */
    .mobile-gallery .thumbnail-item:not(.active) {
        opacity: 0.6 !important;
    }
    
    /* Masquer l'indicateur de défilement */
    .mobile-gallery .scroll-indicator {
        display: none !important;
    }
    
    /* S'assurer que l'image principale occupe toute la largeur */
    .mobile-gallery .main-image-container {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: -50vw !important;
        margin-right: -50vw !important;
        left: 50% !important;
        right: 50% !important;
        position: relative !important;
        height: 450px !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        padding: 0 !important;
    }
    
    .mobile-gallery .main-image-container img {
        width: 100% !important;
        height: 450px !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
        max-width: none !important;
        min-width: 100% !important;
    }
    
    /* S'assurer que le slider occupe toute la largeur */
    .mobile-gallery .image-slider {
        width: 100% !important;
        height: 100% !important;
        display: flex !important;
        position: relative !important;
        transform-style: preserve-3d !important;
    }
    
    /* S'assurer que chaque slide occupe toute la largeur */
    .mobile-gallery .slide {
        width: 100% !important;
        height: 100% !important;
        flex: 0 0 100% !important;
        position: relative !important;
    }
    
    /* S'assurer que le conteneur de la lightbox occupe toute la largeur */
    .mobile-gallery .lightbox-trigger {
        width: 100% !important;
        height: 100% !important;
        display: block !important;
    }
    
    /* Forcer l'affichage correct sur tous les navigateurs */
    .mobile-gallery * {
        box-sizing: border-box !important;
    }
}

/* Cart Page Specific Styles */
.bouldergain-cart-page .cart-items-wrapper .woocommerce-cart-form__cart-item {
    /* This is the div for each cart item row */
    /* border-b border-gray-200 is already applied in cart.php, ensure it's the desired style */
}

.bouldergain-cart-page .product-name a {
    /* Example: Make product name slightly bolder if needed */
    /* font-weight: 600; */ /* Tailwind: font-semibold */
}

.bouldergain-cart-page .product-price .amount {
    /* Example: Adjust price font if needed */
    /* color: #333; */
    /* font-size: 0.95rem; */
}

/* Styling for the summary block in cart.php */
.bouldergain-cart-page .lg\:sticky.bg-gray-50 {
    /* The summary block already has bg-gray-50, p-6, rounded-lg, shadow-md */
    /* Add any additional specific styles here if needed */
}

/* Styling for the order total section in cart-totals.php */
.bouldergain-cart-page .bouldergain-cart-totals-summary .order-total {
    /* Example: Ensure consistent font weight or size if Tailwind defaults are not enough */
    /* font-weight: 700; */ /* Tailwind: font-bold */
}

.bouldergain-cart-page .bouldergain-cart-totals-summary .order-total > span:first-child {
    /* "Total (X items)" text */
    /* Example: font-size: 1.1rem; */
}

.bouldergain-cart-page .bouldergain-cart-totals-summary .order-total .woocommerce-Price-amount.amount {
    /* Price in the total line */
    /* Example: font-size: 1.2rem; font-weight: 700; */
}

.bouldergain-cart-page .bouldergain-cart-totals-summary .text-xs.text-gray-500.text-right {
    /* "incl. sales tax" note */
    /* Ensure this matches the design's font size and color */
}

/* Ensure the "Update cart" button, though hidden, doesn't affect layout if it somehow takes space */
form.woocommerce-cart-form button[name="update_cart"][style*="display: none"] {
    /* This selector is very specific to the inline style. */
    /* Usually, display:none removes it from layout flow. */
    /* If issues persist, ensure no other CSS makes it 'visible' or gives it dimensions. */
}

/* General body font if not already set by GeneratePress or Tailwind base */
/* body { font-family: 'YourTargetFont', sans-serif; } */
/* Replace 'YourTargetFont' with the actual font name if you have one */

/* Checkout Button Styling */
.bouldergain-cart-page .wc-proceed-to-checkout { /* Container of the button in cart-totals.php */
    margin-top: 1.5rem !important; /* Default is mt-6 in cart-totals.php, ensure it has space */
}

.bouldergain-cart-page .checkout-button.bouldergain-checkout-button {
    padding-top: 0.875rem !important; /* py-3.5, slightly less than py-4 (1rem) */
    padding-bottom: 0.875rem !important;
    font-size: 0.95rem !important; /* Slightly smaller font if it looks too big */
    letter-spacing: 0.025em !important; /* Adds a bit of refinement */
    /* w-full, block, bg-black, text-white, text-center, font-semibold, rounded-md are already in proceed-to-checkout-button.php */
}

/* Checkout Button Styling - Mobile */
@media (max-width: 767px) {
    .bouldergain-cart-page .checkout-button.bouldergain-checkout-button {
        padding-top: 0.625rem !important; /* py-2.5 */
        padding-bottom: 0.625rem !important;
        font-size: 0.875rem !important; /* text-sm */
    }
    .bouldergain-cart-page .lg\:sticky.bg-gray-50 { /* Summary block */
        padding: 1rem; /* Reduce padding on mobile for summary block */
    }

    /* Custom Cart Product Image Dimensions - Mobile */
    .bouldergain-cart-page .product-thumbnail {
        width: 130px !important;
        height: 162px !important;
    }
    .bouldergain-cart-page .product-thumbnail img {
        width: 100%;
        height: 100%;
        object-fit: cover; /* or 'contain' based on preference */
    }

    /* Custom Checkout Button Color - Mobile */
    .bouldergain-cart-page .checkout-button.bouldergain-checkout-button {
        background-color: #000000 !important;
        color: #FFFFFF !important;
        /* padding-top: 0.625rem !important; /* py-2.5 */ /* These are already present */
        /* padding-bottom: 0.625rem !important; */
        /* font-size: 0.875rem !important; /* text-sm */
    }
}

/* Dynamic Free Shipping Progress Bar Styles */
.free-shipping-progress-bar-container {
    /* mb-8 is applied in cart.php */
}
.progress-bar-wrapper {
    /* bg-gray-200 rounded-full h-6 relative overflow-hidden are applied in cart.php */
    /* Ensure smooth transition for the progress bar width */
    transition: width 0.5s ease-in-out;
}
.progress-bar-inner {
    /* bg-black rounded-full h-full are applied in cart.php */
    transition: width 0.5s ease-in-out; /* Smooth animation for width change */
    display: flex; /* For centering content if ever needed directly inside, though text is absolute */
    align-items: center;
    justify-content: center;
}
.progress-bar-text {
    /* absolute inset-0 flex items-center justify-center text-xs font-medium are applied in cart.php */
    /* text-white or text-gray-700 is applied conditionally in cart.php */
    transition: color 0.5s ease-in-out; /* Smooth color transition for text */
    white-space: nowrap; /* Prevent text from wrapping */
    padding: 0 0.5rem; /* Add some padding so text isn't at the very edge */
}
.progress-bar-text .shipping-gift-icon {
    /* w-4 h-4 mr-1 are applied in cart.php */
    vertical-align: middle; /* Align icon nicely with text */
    flex-shrink: 0; /* Prevent icon from shrinking */
}

/* Total line alignment */
.bouldergain-cart-page .bouldergain-cart-totals-summary .order-total {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important; /* Use baseline for better text alignment on same line */
    width: 100% !important;
}
.bouldergain-cart-page .bouldergain-cart-totals-summary .order-total > span {
    padding-top: 0.25rem; /* Add some padding if needed */
    padding-bottom: 0.25rem;
}
.bouldergain-cart-page .bouldergain-cart-totals-summary .order-total > span:first-child {
    text-align: left !important;
    /* margin-right: auto; Let space-between handle it */
}
.bouldergain-cart-page .bouldergain-cart-totals-summary .order-total > span:last-child {
    text-align: right !important;
    white-space: nowrap !important; /* Prevent price from wrapping */
}

/* Ensure checkout button container and its parent structure allow full width */
.bouldergain-cart-page .cart_totals {
    width: 100% !important; /* Make sure the .cart_totals div itself is full width */
}
.bouldergain-cart-page .cart_totals .wc-proceed-to-checkout {
    width: 100% !important;
    /* border: 1px solid red; */ /* Temporary for debugging width */
}
/* The button itself has w-full from Tailwind, this ensures its container is also full width */

/* Custom styles for WooCommerce notices (e.g., "Cart updated") */
.woocommerce-message {
    background-color: #f0f0f0 !important; /* Light gray background */
    color: #333333 !important; /* Dark gray text */
    border-top-color: #cccccc !important; /* Slightly darker gray top border */
    border-radius: 4px !important; /* Rounded corners */
    padding: 0.75em 1.5em !important; /* Smaller padding */
    font-size: 0.9em !important; /* Smaller font size */
    margin-bottom: 1em !important; /* Space below the message */
    box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; /* Subtle shadow */
}

/* Optional: If there's an icon with the message, style it too */
.woocommerce-message::before {
    color: #333333 !important; /* Match text color */
    font-size: 1.2em !important; /* Adjust icon size if needed */
    top: 0.85em !important; /* Adjust vertical alignment */
    left: 1em !important; /* Adjust horizontal alignment */
}

/* Cart Page Mobile Responsiveness Improvements */
.bouldergain-cart-page {
    overflow-x: hidden; /* Prevent horizontal scroll on the main cart page container */
}

/* Force Cart Page Sections to behave on mobile */
@media (max-width: 1023px) { /* Target screens smaller than lg breakpoint */
    .bouldergain-cart-page .flex.flex-col.lg\:flex-row {
        flex-direction: column !important; /* Ensure it's column layout */
    }

    .bouldergain-cart-page .lg\:w-2\/3,
    .bouldergain-cart-page .lg\:w-1\/3 {
        width: 100% !important; /* Force full width for cart items and summary columns */
        max-width: 100% !important;
        flex-basis: auto !important; /* Reset flex-basis if it was set for larger screens */
    }
}

/* --- CHECKOUT PAGE STYLES --- */
body.woocommerce-checkout {
    background-color: #f9fafb; /* bg-gray-50 */
}

.bouldergain-checkout-layout {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    max-width: 1280px;
    margin: 0 auto;
    padding: 1rem;
}

@media (min-width: 1024px) {
    .bouldergain-checkout-layout {
        flex-direction: row;
        padding: 2rem;
        gap: 2rem;
    }
}

.bouldergain-checkout-left-column {
    width: 100%;
    background-color: #ffffff;
    padding: 1.5rem;
    border-radius: 0.75rem;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
}

.bouldergain-checkout-right-column {
    width: 100%;
}

@media (min-width: 1024px) {
    .bouldergain-checkout-left-column {
        width: 65%;
        padding: 2rem;
    }
    .bouldergain-checkout-right-column {
        width: 35%;
    }
}

.bouldergain-checkout-sidebar-summary {
    background-color: #ffffff;
    padding: 1.5rem;
    border-radius: 0.75rem;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    position: sticky;
    top: 2rem;
}

/* --- FORM SECTIONS & TITLES --- */
.bouldergain-checkout-section {
    margin-bottom: 2rem;
}
.bouldergain-checkout-section:last-of-type {
    margin-bottom: 0;
}

.bouldergain-checkout-section > h3,
.bouldergain-contact-header > h3 {
    font-size: 1.125rem; /* text-lg */
    font-weight: 600;
    color: #111827; /* text-gray-900 */
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #e5e7eb; /* border-gray-200 */
}

.bouldergain-contact-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 0.75rem;
    margin-bottom: 1rem; /* Espace après le titre Contact */
}

.bouldergain-contact-header h3 {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

/* --- FORM FIELDS & SPACING --- */
.woocommerce-checkout .form-row {
    padding: 0;
    margin: 0 0 1rem 0; /* Espace standard entre les champs */
}

/* Specific override for email field to remove extra space */
#billing_email_field {
    margin-top: 0 !important;
}

.woocommerce-checkout label {
    font-size: 0.875rem; /* text-sm */
    font-weight: 500;
    color: #374151; /* text-gray-700 */
    margin-bottom: 0.25rem;
    display: block;
}

/* Make labels visible on mobile */
.woocommerce-checkout label.screen-reader-text {
    position: static;
    width: auto;
    height: auto;
    clip: auto;
    overflow: visible;
    margin-bottom: 0.25rem;
}

.woocommerce-checkout .input-text,
.woocommerce-checkout select {
    width: 100%;
    padding: 0.625rem 0.75rem; /* py-2.5 px-3 */
    border: 1px solid #d1d5db; /* border-gray-300 */
    border-radius: 0.375rem; /* rounded-md */
    background-color: #f9fafb; /* bg-gray-50 */
    font-size: 1rem;
    transition: all 0.2s ease;
}

.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus {
    border-color: #1f2937;
    box-shadow: 0 0 0 2px rgba(31, 41, 55, 0.1);
    outline: none;
    background-color: #fff;
}

/* --- CHECKBOXES --- */
.bouldergain-checkout-checkbox-wrapper {
    margin-top: 1rem;
    margin-bottom: 0;
}

.bouldergain-checkout-checkbox {
    margin-bottom: 0.5rem !important; /* Reduce space between checkboxes */
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.bouldergain-checkout-checkbox label.checkbox {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 400;
    color: #374151;
    margin: 0;
}

.bouldergain-checkout-checkbox input[type="checkbox"] {
    height: 1rem;
    width: 1rem;
    border-radius: 0.25rem;
    border-color: #d1d5db;
    color: #1f2937;
}

/* --- FIRST/LAST NAME ROW --- */
.bouldergain-checkout-row {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 768px) {
    .bouldergain-checkout-row {
        flex-direction: row;
        gap: 1rem;
    }
    .bouldergain-checkout-column {
        width: 50%;
    }
}

@media (max-width: 767px) {
    .bouldergain-checkout-column {
        width: 100% !important;
    }
}

/* --- ORDER REVIEW --- */
#order_review_heading {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.woocommerce-checkout-review-order-table {
    width: 100%;
}

/* --- PAYMENT SECTION --- */
#payment .payment_methods {
    list-style: none;
    padding: 0;
    margin: 0;
}

#place_order {
    width: 100%;
    background-color: #1f2937;
    color: #ffffff;
    font-weight: 600;
    font-size: 1rem;
    padding: 0.875rem;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    margin-top: 1.5rem;
}

/* Responsive pour mobile */
@media (max-width: 767px) {
    .woocommerce-checkout .woocommerce {
        padding: 1rem 0.5rem; /* Reduce horizontal padding */
    }
    
    .bouldergain-checkout-left-column,
    .bouldergain-checkout-sidebar-summary {
        padding: 1rem;
    }

    .bouldergain-checkout-layout {
        gap: 1rem; /* Reduce gap between columns on mobile stack */
    }
    
    .woocommerce-checkout h3 {
        font-size: 1.125rem;
        margin-bottom: 1rem;
    }

    .woocommerce-checkout .form-row {
        margin-bottom: 0.75rem; /* Reduce space between fields */
    }

    /* Hide labels as they are now placeholders, but keep them for accessibility */
    .woocommerce-checkout label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) {
        clip: rect(0 0 0 0);
        border: 0;
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
    }

    .bouldergain-show-login-link {
        font-size: 0.75rem; /* Smaller font for login link */
    }
    
    .bouldergain-checkout-product-list .product-thumbnail {
        width: 3rem;
        height: 4rem;
    }
}

@media (max-width: 767px) {
    #bgn-main-header {
        position: -webkit-sticky !important; /* For older Safari compatibility */
        position: sticky !important;
        top: 0 !important;
        /* z-index is already z-[10001] via Tailwind, but can be reinforced if needed */
        /* z-index: 10001 !important; */
        transform: none !important; /* Reinforce this, already in header.html style */
    }

    /* Ensure common WordPress parent wrappers do not interfere with sticky positioning */
    /* The existing rule at the top of style.css handles overflow for some of these.
       This adds transform: none and covers a few more common elements. */
    body,
    #page,
    .site,
    #masthead,
    .site-content, /* Common WordPress content wrapper */
    main, /* HTML5 main element */
    #primary, /* Common content area ID */
    .content-area { /* Common content area class */
        overflow: visible !important; /* Reinforce, though html, body, #page, .site, #masthead are covered */
        overflow-x: visible !important; /* Reinforce */
        transform: none !important; /* Crucial for sticky children */
        -webkit-transform: none !important; /* Safari */
        -ms-transform: none !important; /* IE */
    }
}

/* Sticky Add to Cart Button - Mobile */
@media (max-width: 767px) {
    .product-actions-wrapper {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: #ffffff;
        padding: 1rem;
        box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
        z-index: 1000;
    }

    body.single-product {
        padding-bottom: 120px; /* Reserve space for the sticky actions wrapper */
    }
}

/* Cart Totals Shipping Cleanup - PHP now handles hiding the shipping line on the cart page.
   Styling for ul#shipping_method is removed as it's no longer displayed on cart.
   The .order-total margin adjustment might still be relevant if other elements above it changed spacing.
*/

/* Adjust spacing for the order total if shipping lines are now more compact */
.bouldergain-cart-page .cart_totals .order-total {
    margin-top: 0.75rem; 
}

/* Quick View Modal Specific Styles */
#bgn-quick-view-modal .reset_variations {
    display: none !important;
}

/* Ensure custom size buttons in modal have appropriate width if not full */
/* The class .custom-size-buttons is from your PHP function */
/* You might need to adjust this if the buttons are too wide or too narrow in the flex-wrap layout */
#bgn-quick-view-modal .custom-size-buttons .size-button {
    /* Example: min-width for better appearance if they become too squished */
    /* min-width: 60px; */ 
    /* Or, if you want them to take up more defined portions of the width: */
    /* flex-basis: calc(25% - 0.5rem); /* For 4 buttons per row, accounting for gap */
    /* max-width: calc(25% - 0.5rem); */
    /* The w-full in PHP might override this; consider adjusting it there or here */
    /* For the target design, they look like they have fixed padding and natural width */
    width: auto; /* Override w-full from PHP if it makes them too wide */
    padding-left: 1rem; /* Adjust padding to match target */
    padding-right: 1rem; /* Adjust padding to match target */
}

/* Style for the "Size:" label in the quick view modal */
#bgn-quick-view-modal .dbg-size-label {
    display: block; /* Ensure it takes its own line if needed */
    margin-bottom: 0.5rem; /* Add some space below the "Size:" label */
}

/* Style for the product title in the quick view modal */
#bgn-quick-view-modal #bgn-qv-title {
    /* Ensure it matches the font size and weight from the target screenshot */
    /* font-size: 1rem; /* Example: text-base */
    /* font-weight: 600; /* Example: semibold */
}

/* Style for the price in the quick view modal */
#bgn-quick-view-modal #bgn-qv-price-container {
    /* Ensure it matches the font size, weight, and alignment from the target screenshot */
    /* font-size: 1.125rem; /* Example: text-lg */
    /* font-weight: 700; /* Example: bold */
    /* text-align: center; /* Already in HTML */
    margin-bottom: 1rem; /* Space above Add to Cart button */
}

/* Image scroller styling */
#bgn-quick-view-modal #bgn-qv-image-scroller img {
    height: 10rem; /* 160px, adjust as needed to match screenshot proportions */
    /* Add any other image styling like box-shadow if present in target */
}

/* Styles for checkout have been moved to woocommerce/checkout/form-checkout.php */

/* --- YITH Wishlist Button Styles --- */
/* The wrapper is now controlled by the product-actions-wrapper */

/* Ensure the plugin's block container and the inner div are also full width */
.yith-wcwl-add-to-wishlist-custom-wrapper .yith-add-to-wishlist-button-block,
.yith-wcwl-add-to-wishlist-custom-wrapper .yith-wcwl-add-to-wishlist {
    width: 100% !important;
}

.yith-wcwl-add-to-wishlist-custom-wrapper .yith-wcwl-add-to-wishlist {
    margin: 0 !important;
}

/* This is the main selector for all states of the button */
.yith-wcwl-add-to-wishlist-custom-wrapper .yith-wcwl-add-to-wishlist-button {
    display: flex !important;
    width: 100% !important;
    background-color: #ffffff !important;
    color: #374151 !important;
    font-weight: 500 !important;
    padding: 0.75rem 1rem !important;
    border: 1px solid #d1d5db !important;
    border-radius: 0.375rem !important;
    font-size: 0.875rem !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    transition: all 0.15s ease-in-out !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
}

.yith-wcwl-add-to-wishlist-custom-wrapper .yith-wcwl-add-to-wishlist-button:hover {
    background-color: #f9fafb !important;
    border-color: #9ca3af !important;
    color: #1f2937 !important;
}

/* Icon styling */
.yith-wcwl-add-to-wishlist-custom-wrapper .yith-wcwl-icon {
    width: 1.25rem;
    height: 1.25rem;
    color: #6b7280;
}

.yith-wcwl-add-to-wishlist-custom-wrapper .yith-wcwl-add-to-wishlist-button:hover .yith-wcwl-icon {
    color: #1f2937 !important;
}

/* Loading spinner - keep as is */
.yith-wcwl-add-to-wishlist-custom-wrapper .yith-wcwl-add-button.loading {
    opacity: 0.7;
}

/* --- COLOR SWATCHES --- */
.custom-color-swatches .color-swatch {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid #e5e7eb; /* border-gray-200 */
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    -webkit-appearance: none;
    appearance: none;
    padding: 0;
}

.custom-color-swatches .color-swatch:hover {
    border-color: #9ca3af; /* border-gray-400 */
}

.custom-color-swatches .color-swatch.selected {
    border-color: #000000;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #000000; /* Ring effect */
}

/* --- SIZE BUTTON SELECTED STATE --- */
/* This style applies globally, including the Quick View modal, for a consistent look. */
.custom-size-buttons .size-button.selected {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 2px solid #000000 !important;
    font-weight: 700 !important;
}

/* Override WooCommerce default stock color on single product page */
.single-product div.product p.stock.in-stock {
    color: rgb(22 163 74) !important;
}

/* Header Styles from header-code.html */
.promo-text {
    font-size: 10px;
    letter-spacing: 0.02em;
}
@media (min-width: 640px) {
    .promo-text {
        font-size: inherit;
        letter-spacing: 0.05em;
    }
}

.bgn-dropdown-wrapper:hover .bgn-dropdown-content { display: block; }
.bgn-hamburger-icon { position: relative; width: 24px; height: 18px; transition: transform 0.3s ease; }
.bgn-hamburger-line { position: absolute; width: 100%; height: 2px; background-color: white; transition: all 0.3s ease; left: 0; border-radius: 1px; }
.bgn-hamburger-line:nth-child(1) { top: 0; }
.bgn-hamburger-line:nth-child(2) { top: 8px; }
.bgn-hamburger-line:nth-child(3) { top: 16px; }
.bgn-hamburger-icon.bgn-active .bgn-hamburger-line:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.bgn-hamburger-icon.bgn-active .bgn-hamburger-line:nth-child(2) { opacity: 0; }
.bgn-hamburger-icon.bgn-active .bgn-hamburger-line:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.bgn-mobile-menu-container { height: 100vh; opacity: 0; transform: translateX(-100%); transition: opacity 0.3s ease, transform 0.3s ease; will-change: transform, opacity; }
.bgn-mobile-menu-container.bgn-open { opacity: 1; transform: translateX(0); }
.bgn-mobile-submenu { max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out, opacity 0.3s ease-out, transform 0.3s ease-out; opacity: 0; transform: translateY(-10px); }
.bgn-mobile-submenu.bgn-open { max-height: 500px; opacity: 1; transform: translateY(0); }
#bgn-main-header.bgn-header-compact { transform: translateY(-100%); transition: transform 0.3s ease; box-shadow: none; }
#bgn-main-header.bgn-header-visible { transform: translateY(0); }
@media (max-width: 767px) {
    header#masthead.site-header {
        position: relative !important;
        overflow: visible !important;
        transform: none !important;
        -webkit-transform: none !important;
    }

    section#bgn-main-header {
        position: -webkit-sticky !important;
        position: sticky !important;
        top: 0 !important;
        z-index: 10001 !important;
        transform: none !important;
        -webkit-transform: none !important;
    }
}
.bgn-header-logo { height: 3rem !important; width: auto !important; }
@media (min-width: 768px) { .bgn-header-logo { height: 3.5rem !important; } }
#bgn-mobile-menu .bgn-header-logo { height: 2.5rem !important; }

/* === FIXES SUITE A LA REFONTE DU HEADER === */

/* 1. Forcer le texte du menu desktop en majuscules et empêcher le retour à la ligne */
[data-bgn-element="desktop-menu-left"] a,
[data-bgn-element="desktop-menu-right"] a,
[data-bgn-element="desktop-menu-right"] .bgn-dropdown-wrapper button {
    text-transform: uppercase;
    white-space: nowrap; /* Empêche le texte de passer à la ligne */
}

/* 2. Assurer la visibilité de l'icône hamburger */
.bgn-hamburger-line {
    display: block !important; /* S'assurer que les lignes sont rendues comme des blocs */
}
