/* Global WooCommerce Styles */
:root {
    --brote-primary: #8c4117;
    --brote-primary-rgb: 140, 65, 23;
    --brote-base: #1d1d1d;
    --brote-base-rgb: 29, 29, 29;
    --brote-gray: #7b7d83;
    --brote-bdr-color: #e3e3e3;
    --brote-white: #ffffff;
}

/* Typography & Layout */
.woocommerce {
    font-family: inherit;
}

/* Buttons */
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt {
    background-color: var(--brote-primary);
    color: var(--brote-white);
    border: none;
    padding: 12px 24px;
    border-radius: 4px;
    font-weight: 600;
    transition: all 0.3s ease;
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: 0.5px;
}

.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover {
    background-color: var(--brote-base);
    color: var(--brote-white);
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Inputs */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
    padding: 12px 15px;
    border: 1px solid var(--brote-bdr-color);
    border-radius: 4px;
    box-shadow: none;
    color: var(--brote-base);
    background-color: #f9f9f9;
    transition: all 0.3s ease;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
    border-color: var(--brote-primary);
    background-color: var(--brote-white);
    outline: none;
}

/* Messages (Alerts) */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    background-color: #f8f8f8;
    color: var(--brote-base);
    border-top: 3px solid var(--brote-primary);
    padding: 15px 20px;
    margin-bottom: 25px !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    color: var(--brote-primary);
}

.woocommerce-error {
    border-top-color: #dc3545;
}

.woocommerce-error::before {
    color: #dc3545;
}

/* ---------------------------------------------------------
   Global Fixes
--------------------------------------------------------- */
/* Fix for giant social icons */
.widget_social_icons .social-icons a,
.social-icons a,
.wp-block-social-links a,
.footer-widget .social-links a,
i[class*="fa-"],
i[class*="fab-"],
i[class*="fas-"],
svg.icon {
    font-size: 16px;
    width: auto;
    height: auto;
    max-width: 40px;
    display: inline-block;
}

.wp-block-social-links svg {
    width: 24px;
    height: 24px;
}


/* ---------------------------------------------------------
   Shop Page (Boutique) & Global Product Grids
--------------------------------------------------------- */
/* Ensure Archive/Category Pages use the Grid */
.archive .products,
.tax-product_cat .products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
    margin: 0 !important;
}

/* Product Grid */
ul.products {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin: 0 !important;
}

ul.products::before,
ul.products::after {
    display: none !important;
    /* Remove any potential float clearing pseudos interfering with grid */
}

ul.products li.product,
ul.products li.product-category {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    padding: 20px;
    text-align: center;
    border: 1px solid #eee;
    margin: 0 !important;
    /* Reset default margins */
    width: 100% !important;
    /* Let grid handle width */
    float: none !important;
    /* Ensure no floating */
    box-sizing: border-box;
}

ul.products li.product:hover,
ul.products li.product-category:hover {
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
    transform: translateY(-5px);
    border-color: var(--brote-primary);
}

/* Product Image */
ul.products li.product a img,
ul.products li.product-category a img {
    border-radius: 4px;
    margin-bottom: 15px !important;
    width: 100%;
    /* Ensure image fits container */
    max-height: 250px;
    /* Constrain height */
    object-fit: contain;
    /* Keep aspect ratio */
    transition: transform 0.5s ease;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

ul.products li.product:hover a img,
ul.products li.product-category:hover a img {
    transform: scale(1.05);
}

/* Product Title */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product-category .woocommerce-loop-category__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--brote-base);
    margin-bottom: 10px;
    padding: 0;
    display: block;
}

/* Category Count Badge */
ul.products li.product-category .count {
    background: var(--brote-primary);
    color: #fff;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 12px;
    vertical-align: middle;
    margin-left: 5px;
}

/* Price */
ul.products li.product .price {
    color: var(--brote-primary);
    font-weight: 700;
    font-size: 16px;
    margin-bottom: 15px;
    display: block;
}

ul.products li.product .price del {
    opacity: 0.5;
    color: var(--brote-gray);
    font-weight: 400;
    font-size: 14px;
}

/* Add to Cart Button on Grid */
ul.products li.product .button {
    margin-top: auto;
    width: 100%;
    margin-bottom: 0;
}

/* Badges */
.woocommerce span.onsale {
    background-color: var(--brote-primary);
    color: #fff;
    font-weight: 600;
    border-radius: 50%;
    min-height: 40px;
    min-width: 40px;
    line-height: 40px;
    top: -10px;
    right: -10px;
    left: auto;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Mobile Responsiveness for Shop */
@media (max-width: 992px) {
    ul.products {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {

    ul.products,
    .archive .products,
    .tax-product_cat .products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px !important;
    }
}


/* ---------------------------------------------------------
   My Account Page (Mon Compte)
--------------------------------------------------------- */
/* Login / Register Layout */
.woocommerce-account .u-columns.col2-set {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    width: 100%;
}

.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
    width: calc(50% - 20px);
    padding: 30px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    border: 1px solid #eee;
}

@media (max-width: 768px) {

    .woocommerce-account .u-column1,
    .woocommerce-account .u-column2 {
        width: 100%;
    }
}

.woocommerce-account h2 {
    font-size: 24px;
    margin-bottom: 20px;
    color: var(--brote-base);
    border-bottom: 2px solid var(--brote-primary);
    padding-bottom: 10px;
    display: inline-block;
}

/* Dashboard Navigation */
.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 25%;
    float: left;
    margin-right: 5%;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    padding: 20px 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid #eee;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 12px 20px;
    color: var(--brote-gray);
    font-weight: 500;
    transition: all 0.3s;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background-color: #f9f9f9;
    color: var(--brote-primary);
    border-left: 3px solid var(--brote-primary);
    padding-left: 17px;
}

/* Dashboard Content */
.woocommerce-account .woocommerce-MyAccount-content {
    width: 70%;
    float: left;
    background: #fff;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    border: 1px solid #eee;
}

@media (max-width: 768px) {

    .woocommerce-account .woocommerce-MyAccount-navigation,
    .woocommerce-account .woocommerce-MyAccount-content {
        width: 100%;
        float: none;
        margin-right: 0;
        margin-bottom: 30px;
    }
}


/* ---------------------------------------------------------
   Cart Page (Panier)
--------------------------------------------------------- */
.woocommerce-cart .woocommerce-cart-form {
    margin-bottom: 50px;
}

.woocommerce-cart table.cart {
    border: none;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    background: #fff;
}

.woocommerce-cart table.cart thead {
    background-color: #f8f8f8;
}

.woocommerce-cart table.cart th {
    padding: 15px;
    color: var(--brote-base);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 14px;
    border-bottom: 2px solid #eee;
}

.woocommerce-cart table.cart td {
    padding: 20px 15px;
    border-top: 1px solid #eee;
    vertical-align: middle;
}

.woocommerce-cart table.cart tr:last-child td {
    border-bottom: none;
}

/* Remove Item Icon */
.woocommerce-cart table.cart a.remove {
    color: #dc3545 !important;
    font-weight: bold;
    font-size: 24px;
    width: 30px;
    height: 30px;
    line-height: 26px;
    text-align: center;
    border-radius: 50%;
    border: 1px solid #dc3545;
    background: transparent;
    transition: all 0.3s;
}

.woocommerce-cart table.cart a.remove:hover {
    background: #dc3545;
    color: #fff !important;
}

/* Cart Images */
.woocommerce-cart table.cart img {
    width: 80px;
    border-radius: 4px;
}

/* Coupon & Update Cart */
.woocommerce-cart table.cart td.actions .coupon {
    display: flex;
    gap: 10px;
}

.woocommerce-cart table.cart td.actions .coupon input.input-text {
    width: 150px;
    margin: 0;
}

/* Cart Totals */
.woocommerce-cart .cart_totals {
    background: #fff;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    border: 1px solid #eee;
    width: 40%;
    float: right;
}

@media (max-width: 768px) {
    .woocommerce-cart .cart_totals {
        width: 100%;
        float: none;
    }
}

.woocommerce-cart .cart_totals h2 {
    font-size: 24px;
    border-bottom: 2px solid var(--brote-primary);
    padding-bottom: 10px;
    margin-bottom: 20px;
    color: var(--brote-base);
}

.woocommerce-cart .cart_totals table.shop_table {
    border: none;
    width: 100%;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
    padding: 15px 0;
    border-bottom: 1px solid #eee;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button {
    display: block;
    width: 100%;
    text-align: center;
    padding: 15px;
    font-size: 16px;
    margin-top: 20px;
    background-color: var(--brote-primary);
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
    background-color: var(--brote-base);
}

/* Responsive Cart Table */
@media screen and (max-width: 768px) {
    .woocommerce-cart table.cart thead {
        display: none;
    }

    .woocommerce-cart table.cart tr {
        display: block;
        margin-bottom: 20px;
        border: 1px solid #eee;
        border-radius: 8px;
        padding: 15px;
        background: #fff;
        position: relative;
    }

    .woocommerce-cart table.cart td {
        display: block;
        text-align: right;
        padding: 10px 0;
        border: none;
    }

    .woocommerce-cart table.cart td::before {
        content: attr(data-title);
        float: left;
        font-weight: 700;
        color: var(--brote-base);
    }

    .woocommerce-cart table.cart td.product-remove {
        position: absolute;
        top: 10px;
        right: 10px;
        width: auto;
        padding: 0;
    }

    .woocommerce-cart table.cart td.product-thumbnail {
        text-align: center;
    }

    .woocommerce-cart table.cart td.product-thumbnail::before {
        display: none;
    }

    .woocommerce-cart table.cart td.actions .coupon {
        width: 100%;
        flex-direction: column;
    }

    .woocommerce-cart table.cart td.actions .coupon input.input-text {
        width: 100%;
    }

    .woocommerce-cart table.cart td.actions {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }

    .woocommerce-cart table.cart td.actions button {
        width: 100%;
    }
}

/* ---------------------------------------------------------
   Pagination
--------------------------------------------------------- */
.woocommerce nav.woocommerce-pagination {
    margin-top: 40px;
    text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
    display: inline-flex;
    border: none;
    padding: 0;
    margin: 0;
    gap: 10px;
}

.woocommerce nav.woocommerce-pagination ul li {
    border: none;
    border-right: none;
    overflow: hidden;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    background-color: #fff;
    color: var(--brote-base);
    font-weight: 600;
    font-size: 16px;
    text-decoration: none;
    border-radius: 50%;
    border: 1px solid #eee;
    transition: all 0.3s ease;
    padding: 0;
    line-height: normal;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background-color: var(--brote-primary);
    color: #fff;
    border-color: var(--brote-primary);
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.woocommerce nav.woocommerce-pagination ul li a:focus {
    outline: none;
    background-color: var(--brote-primary);
    color: #fff;
}

/* ---------------------------------------------------------
   Mobile Navigation Fix
--------------------------------------------------------- */
/* Override default Blue background with Theme Base Color (Dark) */
.mobile-nav__content {
    background-color: var(--brote-base) !important;
}

/* Ensure links are white (as they were) but just to be safe */
.mobile-nav__content .main-menu__list>li>a,
.mobile-nav__content .main-menu__list>li>ul>li>a,
.mobile-nav__content .main-menu__list>li>ul>li>ul>li>a {
    color: #ffffff !important;
}

/* Ensure Logo Box is visible/spaced correctly */
.mobile-nav__content .logo-box {
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    /* Center the logo if needed */
}

/* Ensure Close button is visible */
.mobile-nav__close {
    color: #ffffff !important;
}

/* Submenu toggles */
.mobile-nav__content .main-menu__list>li>a>button,
.mobile-nav__content .main-menu__list>li>ul>li>a>button {
    background-color: var(--brote-primary) !important;
    color: #ffffff !important;
}


/* ---------------------------------------------------------
   Global Contact Form Styles (Homepage & Contact Page)
--------------------------------------------------------- */
body .wpcf7-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

body .wpcf7-form>p {
    display: contents;
    /* Unwraps paragraphs so labels become grid items */
}

body .wpcf7-form label {
    display: block;
    width: 100%;
    margin-bottom: 0;
}

/* Full Width Fields (Message, File Upload, Submit) */
body .wpcf7-form label:has(textarea),
body .wpcf7-form p:has(textarea) {
    grid-column: span 2;
}

/* Fallback/Additional targeting for message field */
body .wpcf7-form textarea {
    height: 60px !important;
    min-height: auto !important;
}

/* Ensure Submit button spans full width */
body .wpcf7-form input[type="submit"] {
    grid-column: span 2;
    background-color: var(--brote-primary);
    color: #fff;
    padding: 15px 30px;
    border: none;
    border-radius: 4px;
    font-weight: bold;
    text-transform: uppercase;
    width: 100%;
    cursor: pointer;
    margin-top: 10px;
}

body .wpcf7-form input[type="submit"]:hover {
    background-color: #fff;
    color: var(--brote-base);
}

/* Input Styling (Dark Theme) */
body .wpcf7-form input:not([type="submit"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .wpcf7-form select,
body .wpcf7-form textarea {
    background-color: #2a2a2a;
    /* Slightly lighter than black bg */
    border: 1px solid #444;
    color: #fff;
    padding: 12px 15px;
    border-radius: 4px;
    width: 100%;
    font-size: 14px;
    box-sizing: border-box;
    margin-top: 5px;
    /* Space between label and input */
}

body .wpcf7-form input:focus,
body .wpcf7-form select:focus,
body .wpcf7-form textarea:focus {
    border-color: var(--brote-primary);
    outline: none;
    background-color: #333;
}

/* Label Styling */
body .wpcf7-form label {
    color: #ccc;
    font-size: 14px;
    margin-bottom: 8px;
    font-weight: 500;
}

/* Radio buttons & Checkboxes alignment */
body .wpcf7-form .wpcf7-radio,
body .wpcf7-form .wpcf7-checkbox,
body .wpcf7-form .wpcf7-acceptance {
    display: flex;
    gap: 15px;
    align-items: center;
    flex-wrap: wrap;
    color: #fff;
}

body .wpcf7-form .wpcf7-list-item {
    margin: 0;
}

/* Responsive: 1 column on mobile */
@media (max-width: 768px) {
    body .wpcf7-form {
        grid-template-columns: 1fr;
    }

    body .wpcf7-form label:has(textarea),
    body .wpcf7-form p:has(textarea),
    body .wpcf7-form input[type="submit"] {
        grid-column: span 1;
    }
}