/**
 * Styles WooCommerce – Mon Thème Custom
 * Remplace totalement les styles WC par défaut.
 *
 * @package MonTheme
 */

/* =============================================
   VARIABLES WOO
   ============================================= */
:root {
    --woo-primary:       var(--color-accent);
    --woo-text-muted:    var(--color-text-light);
    --woo-border:        var(--color-border);
    --woo-bg-alt:        var(--color-bg-alt);
    --woo-star:          #f5a623;
    --woo-success:       #2ecc71;
    --woo-error:         #e74c3c;
    --woo-info:          #3498db;
}

/* =============================================
   MESSAGES WOOCOMMERCE
   ============================================= */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.no-comments {
    padding: 1rem 1.25rem;
    border-radius: var(--radius);
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.woocommerce-message { background: #e8f8ee; border-left: 4px solid var(--woo-success); color: #1e7e34; }
.woocommerce-info    { background: #d6eaf8; border-left: 4px solid var(--woo-info);    color: #1a5276; }
.woocommerce-error   { background: #fdecea; border-left: 4px solid var(--woo-error);   color: #922b21; }

.woocommerce-error li { margin: 0; padding: 0; }

/* =============================================
   BREADCRUMB
   ============================================= */
.woocommerce-breadcrumb {
    font-size: .85rem;
    color: var(--woo-text-muted);
    margin-bottom: 1.5rem;
}

.woocommerce-breadcrumb a {
    color: var(--woo-text-muted);
}

.woocommerce-breadcrumb a:hover {
    color: var(--woo-primary);
}

/* =============================================
   ARCHIVE BOUTIQUE
   ============================================= */
.woo-main { padding: 3rem 0; }

.woo-content-wrap {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: 3rem;
    align-items: start;
}

.woo-content-wrap:has(.shop-sidebar:empty),
.woo-content-wrap:not(:has(.shop-sidebar)) {
    grid-template-columns: 1fr;
}

.woo-archive-header { margin-bottom: 2rem; }

.woo-page-title {
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    margin-bottom: .5rem;
}

/* Toolbar (tri + résultats) */
.woo-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    flex-wrap: wrap;
    gap: .75rem;
}

.woocommerce-result-count {
    color: var(--woo-text-muted);
    font-size: .9rem;
    margin: 0;
}

.woocommerce-ordering select {
    padding: .5rem .75rem;
    border: 1px solid var(--woo-border);
    border-radius: var(--radius);
    background: var(--color-bg);
    font-size: .9rem;
    cursor: pointer;
}

/* =============================================
   GRILLE PRODUITS
   ============================================= */
.products.columns-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.products.columns-1 { grid-template-columns: 1fr; }

/* =============================================
   CARTE PRODUIT
   ============================================= */
.product-card {
    position: relative;
    background: var(--color-bg);
    border: 1px solid var(--woo-border);
    border-radius: var(--radius);
    overflow: hidden;
    transition: box-shadow .25s, transform .25s;
    display: flex;
    flex-direction: column;
}

.product-card:hover {
    box-shadow: 0 10px 30px rgba(0,0,0,.1);
    transform: translateY(-4px);
}

.product-card__link {
    display: flex;
    flex-direction: column;
    flex: 1;
    color: inherit;
    text-decoration: none;
}

.product-card__image {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: var(--woo-bg-alt);
}

.product-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.product-card:hover .product-card__image img {
    transform: scale(1.06);
}

.product-card__body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.product-card__title {
    font-size: 1rem;
    margin: 0;
    line-height: 1.4;
    color: var(--color-primary);
}

.product-card__price {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-primary);
}

.product-card__price del {
    color: var(--woo-text-muted);
    font-weight: 400;
    font-size: .9rem;
    margin-right: .3rem;
}

.product-card__price ins {
    text-decoration: none;
    color: var(--woo-error);
}

.product-card__actions {
    padding: .75rem 1rem 1rem;
}

.product-card__actions .btn,
.product-card__actions .add_to_cart_button {
    width: 100%;
    text-align: center;
    font-size: .9rem;
    padding: .6rem;
}

/* Badges */
.product-badge {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 2;
    padding: .25rem .65rem;
    border-radius: 3px;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1;
}

.product-badge--sale { background: var(--woo-error);   color: #fff; }
.product-badge--new  { background: var(--woo-success); color: #fff; left: auto; right: .75rem; }

/* Stars */
.star-rating {
    font-size: .8rem;
    color: var(--woo-star);
    display: flex;
    gap: 1px;
}

/* =============================================
   PAGINATION
   ============================================= */
.woocommerce-pagination ul {
    display: flex;
    gap: .5rem;
    list-style: none;
    padding: 0;
    margin: 2.5rem 0 0;
    justify-content: center;
    flex-wrap: wrap;
}

.woocommerce-pagination li a,
.woocommerce-pagination li span {
    display: block;
    padding: .5rem .9rem;
    border: 1px solid var(--woo-border);
    border-radius: var(--radius);
    font-size: .9rem;
    color: var(--color-text);
    transition: background .2s, color .2s;
}

.woocommerce-pagination li .current,
.woocommerce-pagination li a:hover {
    background: var(--woo-primary);
    border-color: var(--woo-primary);
    color: #fff;
}

/* =============================================
   PRODUIT INDIVIDUEL
   ============================================= */
.single-product div.product {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    align-items: start;
    margin-bottom: 4rem;
}

/* Galerie */
.woocommerce-product-gallery {
    position: sticky;
    top: 5rem;
}

.woocommerce-product-gallery__wrapper img {
    border-radius: var(--radius);
}

/* Résumé */
.summary {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.summary .product_title {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    margin: 0;
}

.summary .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: .75rem;
    font-size: .9rem;
    color: var(--woo-text-muted);
}

.summary .price {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--color-primary);
}

.summary .price del {
    font-size: 1.2rem;
    color: var(--woo-text-muted);
    font-weight: 400;
    margin-right: .5rem;
}

.summary .price ins {
    text-decoration: none;
    color: var(--woo-error);
}

.summary .woocommerce-product-details__short-description {
    color: var(--woo-text-muted);
    line-height: 1.7;
}

/* Quantité + bouton */
.summary .cart {
    display: flex;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
}

.summary .quantity input {
    width: 80px;
    text-align: center;
    padding: .65rem .5rem;
}

.summary .single_add_to_cart_button {
    flex: 1;
    min-width: 180px;
    text-align: center;
    font-size: 1.05rem;
    padding: .75rem 1.5rem;
}

/* Méta produit */
.product_meta {
    font-size: .9rem;
    color: var(--woo-text-muted);
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.product_meta a { color: var(--woo-text-muted); }
.product_meta a:hover { color: var(--woo-primary); }

/* Tabs */
.woocommerce-tabs {
    margin-top: 3rem;
    border-top: 2px solid var(--woo-border);
    padding-top: 2rem;
}

.woocommerce-tabs ul.tabs {
    display: flex;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    border-bottom: 1px solid var(--woo-border);
}

.woocommerce-tabs ul.tabs li {
    margin: 0;
}

.woocommerce-tabs ul.tabs li a {
    display: block;
    padding: .75rem 1.5rem;
    color: var(--woo-text-muted);
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    font-weight: 600;
    transition: color .2s, border-color .2s;
}

.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover {
    color: var(--woo-primary);
    border-bottom-color: var(--woo-primary);
}

.woocommerce-tabs .panel {
    max-width: 780px;
}

/* Produits liés */
.related.products,
.up-sells.products,
.cross-sells {
    margin-top: 4rem;
    padding-top: 3rem;
    border-top: 1px solid var(--woo-border);
}

.related > h2,
.up-sells > h2,
.cross-sells > h2 {
    margin-bottom: 2rem;
}

/* =============================================
   SIDEBAR BOUTIQUE
   ============================================= */
.shop-sidebar .widget-title {
    font-size: 1rem;
    border-bottom: 2px solid var(--woo-primary);
    padding-bottom: .5rem;
    margin-bottom: 1rem;
}

.shop-sidebar .widget { margin-bottom: 2rem; }

.shop-sidebar .price_slider_wrapper { padding: .5rem 0; }

/* =============================================
   PANIER
   ============================================= */
.woocommerce-cart-wrap { display: flex; flex-direction: column; gap: 2.5rem; }

.cart-table-wrap { overflow-x: auto; }

.shop_table {
    width: 100%;
    border-collapse: collapse;
    font-size: .95rem;
}

.shop_table th,
.shop_table td {
    padding: 1rem .75rem;
    border-bottom: 1px solid var(--woo-border);
    vertical-align: middle;
}

.shop_table th {
    text-align: left;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--woo-text-muted);
    background: var(--woo-bg-alt);
}

.shop_table .product-thumbnail img {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: var(--radius);
}

.shop_table .product-remove a {
    font-size: 1.4rem;
    color: var(--woo-text-muted);
    line-height: 1;
}

.shop_table .product-remove a:hover { color: var(--woo-error); }

.cart-collaterals { max-width: 420px; margin-left: auto; }

.cart_totals h2 {
    font-size: 1.25rem;
    margin-bottom: 1.25rem;
}

.cart_totals table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.5rem;
}

.cart_totals table th,
.cart_totals table td {
    padding: .75rem;
    border-bottom: 1px solid var(--woo-border);
}

.cart_totals .order-total td,
.cart_totals .order-total th {
    font-weight: 700;
    font-size: 1.1rem;
}

.wc-proceed-to-checkout .checkout-button {
    display: block;
    width: 100%;
    text-align: center;
    font-size: 1.1rem;
    padding: 1rem;
}

/* Coupon */
.coupon {
    display: flex;
    gap: .5rem;
}

.coupon input { flex: 1; }

/* =============================================
   CHECKOUT
   ============================================= */
.checkout-grid {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 3rem;
    align-items: start;
}

.checkout-col h3 {
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
    padding-bottom: .75rem;
    border-bottom: 2px solid var(--woo-border);
}

.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .95rem;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
    padding: .75rem;
    border-bottom: 1px solid var(--woo-border);
}

.woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout-review-order-table .order-total th {
    font-weight: 700;
    font-size: 1.05rem;
}

.woocommerce-checkout-review-order { background: var(--woo-bg-alt); padding: 1.5rem; border-radius: var(--radius); }

#payment {
    background: var(--woo-bg-alt);
    padding: 1.5rem;
    border-radius: var(--radius);
    margin-top: 1.5rem;
}

#payment .payment_methods {
    list-style: none;
    padding: 0;
    margin-bottom: 1.25rem;
}

#payment .payment_methods li {
    padding: .75rem;
    border: 1px solid var(--woo-border);
    border-radius: var(--radius);
    margin-bottom: .5rem;
    background: var(--color-bg);
}

#place_order {
    width: 100%;
    font-size: 1.1rem;
    padding: 1rem;
}

/* Champs de formulaire */
.woocommerce-billing-fields .form-row,
.woocommerce-shipping-fields .form-row {
    margin-bottom: 1rem;
}

.woocommerce-billing-fields label,
.woocommerce-shipping-fields label {
    display: block;
    font-size: .9rem;
    font-weight: 600;
    margin-bottom: .35rem;
}

.woocommerce-billing-fields .required,
.woocommerce-shipping-fields .required {
    color: var(--woo-error);
}

/* =============================================
   MON COMPTE
   ============================================= */
.woocommerce-account {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 3rem;
    align-items: start;
}

.account-navigation ul.woocommerce-MyAccount-navigation-link {
    list-style: none;
    padding: 0;
}

.woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
}

.woocommerce-MyAccount-navigation li {
    border-bottom: 1px solid var(--woo-border);
}

.woocommerce-MyAccount-navigation li a {
    display: block;
    padding: .75rem 0;
    color: var(--color-text);
    font-size: .95rem;
    transition: color .2s, padding-left .2s;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
    color: var(--woo-primary);
    padding-left: .5rem;
}

/* =============================================
   AVIS CLIENTS
   ============================================= */
#reviews .woocommerce-Reviews-title { margin-bottom: 1.5rem; }

.comment-form-rating label { margin-bottom: .5rem; display: block; }

.stars a {
    color: var(--woo-star);
    font-size: 1.25rem;
    margin-right: .2rem;
}

.woocommerce-review__author { font-weight: 600; }
.woocommerce-review__published-date { color: var(--woo-text-muted); font-size: .85rem; }

/* =============================================
   RESPONSIVE
   ============================================= */
@media (max-width: 1024px) {
    .woo-content-wrap { grid-template-columns: 1fr; }
    .shop-sidebar { display: none; }

    .checkout-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .single-product div.product { grid-template-columns: 1fr; }
    .woocommerce-product-gallery { position: static; }
    .woocommerce-account { grid-template-columns: 1fr; }

    .products.columns-3 { grid-template-columns: repeat(2, 1fr); }
    .products.columns-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .products.columns-2,
    .products.columns-3,
    .products.columns-4 { grid-template-columns: repeat(2, 1fr); gap: 1rem; }

    .cart-collaterals { max-width: 100%; }
    .coupon { flex-direction: column; }

    .summary .cart { flex-direction: column; }
    .summary .quantity input { width: 100%; }
    .summary .single_add_to_cart_button { width: 100%; }
}
