/* ============================================================
   Collectif66 — habillage dark de WooCommerce.

   Chargé uniquement sur les pages WooCommerce, en priorité 20
   (cf. c66_woocommerce_assets dans functions.php) pour passer
   APRES les feuilles de WooCommerce — dont woocommerce-smallscreen.css,
   servie en media="only screen and (max-width: 768px)".

   Les selecteurs visent les classes WooCommerce stables. Ils ne
   dependent jamais de .c66-prose pour la boutique et la fiche
   produit : ce wrapper disparait grace a add_theme_support('woocommerce').
   ============================================================ */

/* ============================================================
   Layout
   ============================================================ */

/* Panier / commande / mon compte restent des pages WP rendues par
   page.php, donc toujours dans la colonne blog de 760px. */
body.woocommerce-page .c66-prose { max-width: 1100px; }

.c66-shop { padding-top: 8px; }

/* Le style de lien "prose" (jaune souligne) ne doit pas fuiter
   dans le markup WooCommerce. */
.woocommerce a { text-decoration: none; }
.woocommerce a:hover { color: var(--c66-accent); }

.woocommerce .woocommerce-breadcrumb {
    color: var(--c66-dim);
    font-size: .82rem;
    margin-bottom: 20px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--c66-muted); }

/* ============================================================
   Formulaires — base dark commune
   ============================================================ */

.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce input[type="search"],
.woocommerce textarea,
.woocommerce select,
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="password"],
.woocommerce-page input[type="number"],
.woocommerce-page textarea,
.woocommerce-page select {
    background: var(--c66-bg-input);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius-sm);
    color: var(--c66-text);
    font-family: inherit;
    font-size: 1rem;
    padding: 12px 14px;
    min-height: 48px;
    width: 100%;
    max-width: 100%;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
}

.woocommerce textarea { min-height: 120px; line-height: 1.5; }

.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus,
.woocommerce-page input:focus,
.woocommerce-page textarea:focus,
.woocommerce-page select:focus {
    outline: none;
    border-color: var(--c66-accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--c66-accent) 18%, transparent);
}

.woocommerce ::placeholder { color: var(--c66-dim); }

/* Chevron custom — l'appearance:none ci-dessus retire celui du navigateur */
.woocommerce select,
.woocommerce-page select {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 18px 18px;
    padding-right: 40px;
    cursor: pointer;
}

/* Les options du menu deroulant sont rendues par l'OS : forcer un fond
   sombre evite le texte blanc sur blanc sous Windows / Linux. */
.woocommerce select option { background: var(--c66-bg-elev); color: var(--c66-text); }

.woocommerce label,
.woocommerce-page label {
    color: var(--c66-text);
    font-size: .8rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    display: block;
    margin-bottom: 8px;
}
.woocommerce .required { color: var(--c66-accent); border: 0; }

/* ============================================================
   Boutons
   ============================================================ */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius-sm);
    color: var(--c66-text);
    font-family: inherit;
    font-size: .82rem;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 14px 20px;
    line-height: 1.2;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover {
    background: color-mix(in srgb, var(--c66-accent) 12%, transparent);
    border-color: var(--c66-accent);
    color: var(--c66-accent);
}

/* Bouton principal : ajouter au panier, commander, payer */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order,
.woocommerce-page button.button.alt {
    background: var(--c66-accent);
    border-color: var(--c66-accent);
    color: var(--c66-accent-fg);
    font-weight: 600;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #place_order:hover {
    background: color-mix(in srgb, var(--c66-accent) 85%, #fff);
    border-color: color-mix(in srgb, var(--c66-accent) 85%, #fff);
    color: var(--c66-accent-fg);
}

.woocommerce button.button:disabled,
.woocommerce button.button.alt:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.alt:disabled[disabled] {
    background: var(--c66-bg-elev);
    border-color: var(--c66-border);
    color: var(--c66-dim);
    opacity: 1;
    cursor: not-allowed;
}

/* ============================================================
   Notices
   ============================================================ */

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-error {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-top: 0;
    border-left: 3px solid var(--c66-accent);
    border-radius: var(--c66-radius-sm);
    color: var(--c66-text);
    padding: 16px 20px;
    margin: 0 0 24px;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before { display: none; }

.woocommerce .woocommerce-error { border-left-color: #e5484d; }

.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button { margin-left: auto; }

/* ============================================================
   Archive boutique
   ============================================================ */

.woocommerce .woocommerce-products-header__title,
.woocommerce h1.page-title {
    text-align: center;
    margin: 16px 0 28px;
}

.woocommerce .woocommerce-result-count {
    color: var(--c66-muted);
    font-size: .85rem;
    margin: 0;
}

.woocommerce .woocommerce-notices-wrapper:empty { display: none; }

/* Bandeau compteur + tri */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { float: none; }

.woocommerce .woocommerce-ordering { margin: 0; }
.woocommerce .woocommerce-ordering select { min-width: 220px; }

/* Grille produits — remplace le systeme de floats de WooCommerce */
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 40px;
    padding: 0;
    list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; display: none; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    clear: none !important;
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .18s ease, border-color .18s ease;
}
.woocommerce ul.products li.product:hover {
    transform: translateY(-3px);
    border-color: #3a3a44;
}

.woocommerce ul.products li.product a.woocommerce-loop-product__link {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.woocommerce ul.products li.product img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    color: var(--c66-text);
    font-size: .95rem;
    font-weight: 400;
    letter-spacing: .02em;
    padding: 14px 14px 0;
    margin: 0;
}

.woocommerce ul.products li.product .price {
    color: var(--c66-accent);
    font-size: 1rem;
    font-weight: 500;
    padding: 6px 14px 14px;
    margin: 0;
    display: block;
}
.woocommerce ul.products li.product .price del { color: var(--c66-dim); margin-right: 6px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

.woocommerce ul.products li.product .button {
    margin: 0 14px 14px;
    text-align: center;
    /* Les cards sont etroites (2 col mobile, 4 col desktop) : sans cela,
       "Choix des options" se casse sur trois lignes. */
    font-size: .72rem;
    letter-spacing: .06em;
    padding: 12px 10px;
}

/* Pastille promo */
.woocommerce span.onsale {
    background: var(--c66-accent);
    color: var(--c66-accent-fg);
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    min-height: 0;
    min-width: 0;
    line-height: 1;
    padding: 7px 12px;
    top: 10px;
    left: 10px;
    right: auto;
    margin: 0;
}

/* Le texte "Ce produit a plusieurs variations..." sous les cards */
.woocommerce ul.products li.product .woocommerce-variation-description,
.woocommerce ul.products li.product small {
    color: var(--c66-dim);
    font-size: .75rem;
    padding: 0 14px 14px;
    display: block;
}

.woocommerce nav.woocommerce-pagination ul {
    border: 0;
    display: flex;
    justify-content: center;
    gap: 6px;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius-sm);
    color: var(--c66-text);
    padding: 10px 16px;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--c66-accent);
    border-color: var(--c66-accent);
    color: var(--c66-accent-fg);
}

/* ============================================================
   Fiche produit
   ============================================================ */

.woocommerce div.product { margin-bottom: 40px; }

.woocommerce div.product .product_title {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: 200;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin: 0 0 12px;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--c66-accent);
    font-size: 1.6rem;
    font-weight: 400;
    margin: 0 0 18px;
}
.woocommerce div.product p.price del { color: var(--c66-dim); font-size: 1.1rem; }
.woocommerce div.product p.price ins { text-decoration: none; }

.woocommerce div.product .woocommerce-product-details__short-description {
    color: var(--c66-muted);
    margin-bottom: 24px;
}

.woocommerce div.product .woocommerce-product-gallery {
    margin-bottom: 28px;
}
.woocommerce div.product .woocommerce-product-gallery__image img {
    border-radius: var(--c66-radius);
}
.woocommerce div.product .woocommerce-product-gallery__trigger {
    background: rgba(15, 15, 18, .8);
    border: 1px solid var(--c66-border);
    border-radius: 999px;
    color: var(--c66-text);
    top: 12px;
    right: 12px;
}

.woocommerce div.product .stock { color: var(--c66-muted); font-size: .9rem; }
.woocommerce div.product .stock.out-of-stock { color: #e5484d; }

/* --- Formulaire de variation ------------------------------- */

/* Le markup natif est un tableau label/valeur : on le passe en blocs
   pour que le label soit au-dessus des pastilles, sur toutes tailles. */
.woocommerce div.product form.cart table.variations,
.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr,
.woocommerce div.product form.cart table.variations th,
.woocommerce div.product form.cart table.variations td {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
}
.woocommerce div.product form.cart table.variations { margin-bottom: 20px; }
.woocommerce div.product form.cart table.variations tr { margin-bottom: 18px; }

.woocommerce div.product form.cart table.variations th.label label {
    color: var(--c66-text);
    font-size: .8rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.woocommerce div.product form.cart .reset_variations {
    display: inline-block;
    color: var(--c66-dim);
    font-size: .78rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-top: 10px;
}
.woocommerce div.product form.cart .reset_variations:hover { color: var(--c66-accent); }

/* Pastilles de taille — generees par assets/woocommerce.js.
   Le <select> d'origine reste dans le DOM et pilote WooCommerce. */
.c66-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.c66-swatch {
    background: var(--c66-bg-input);
    border: 1px solid var(--c66-border);
    border-radius: 999px;
    color: var(--c66-text);
    font-family: inherit;
    font-size: .85rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    min-width: 52px;
    min-height: 44px;
    padding: 10px 18px;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.c66-swatch:hover:not(.is-unavailable):not(.is-active) {
    border-color: var(--c66-accent);
    color: var(--c66-accent);
}
.c66-swatch:focus-visible {
    outline: 2px solid var(--c66-accent);
    outline-offset: 2px;
}
.c66-swatch.is-active,
.c66-swatch.is-active:hover {
    background: var(--c66-accent);
    border-color: var(--c66-accent);
    color: var(--c66-accent-fg);
}
.c66-swatch.is-unavailable {
    color: var(--c66-dim);
    border-color: #232329;
    cursor: not-allowed;
    text-decoration: line-through;
    opacity: .6;
}

/* Masque le select natif sans le retirer du DOM : WooCommerce continue
   de lire sa value et d'y poser les attributs disabled. */
.c66-select-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    min-height: 0 !important;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0 !important;
}

.woocommerce div.product .woocommerce-variation-price { margin-bottom: 12px; }
.woocommerce div.product .woocommerce-variation-price .price { font-size: 1.4rem; }
.woocommerce div.product .woocommerce-variation-availability p { margin: 0 0 12px; }

/* --- Quantite + ajouter au panier --------------------------- */

.woocommerce div.product form.cart { margin-bottom: 24px; }

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form) {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: stretch;
}

.woocommerce div.product form.cart div.quantity {
    float: none;
    margin: 0;
    flex: 0 0 auto;
}
.woocommerce div.product form.cart div.quantity input.qty {
    width: 84px;
    min-height: 52px;
    text-align: center;
    padding: 12px 8px;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
    flex: 1 1 200px;
    min-height: 52px;
    float: none;
    font-size: .9rem;
}

/* --- Meta produit ------------------------------------------- */

.woocommerce div.product .product_meta {
    border-top: 1px solid var(--c66-border);
    color: var(--c66-dim);
    font-size: .82rem;
    padding-top: 18px;
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.woocommerce div.product .product_meta > span { display: block; }
.woocommerce div.product .product_meta a { color: var(--c66-muted); }
.woocommerce div.product .product_meta a:hover { color: var(--c66-accent); }

/* ============================================================
   Onglets produit
   ============================================================ */

.woocommerce div.product .woocommerce-tabs {
    margin-top: 40px;
    padding-top: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
    border-bottom: 0;
    overflow: visible;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { content: none; display: none; border: 0; }

/* Onglets rendus comme les pastilles de variation (.c66-swatch) */
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    display: block;
    flex: 0 0 auto;
    background: transparent !important;
    border: 0 !important;
    border-radius: 999px;
    box-shadow: none !important;
    margin: 0;
    padding: 0;
    white-space: nowrap;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; display: none; border: 0; box-shadow: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    background: var(--c66-bg-input) !important;
    border: 1px solid var(--c66-border) !important;
    border-radius: 999px;
    color: var(--c66-text) !important;
    font-size: .82rem;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 12px 20px;
    margin: 0;
    text-shadow: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active) a:hover {
    border-color: var(--c66-accent) !important;
    color: var(--c66-accent) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:focus-visible {
    outline: 2px solid var(--c66-accent);
    outline-offset: 2px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a:hover {
    background: var(--c66-accent) !important;
    border-color: var(--c66-accent) !important;
    color: var(--c66-accent-fg) !important;
    font-weight: 600;
}

.woocommerce div.product .woocommerce-tabs .panel {
    background: none !important;
    border: 0;
    box-shadow: none;
    margin: 0;
    padding: 0;
    color: var(--c66-muted);
}
.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li { color: var(--c66-muted); }
.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel h3 {
    font-size: 1.3rem;
    color: var(--c66-text);
    margin-bottom: 14px;
}

/* Accordeon mobile — en-tetes generes par assets/woocommerce.js.
   Inertes sur desktop : la tab bar garde la main. */
.c66-acc-head { display: none; }

/* Tableau "Informations complementaires" */
.woocommerce table.shop_attributes {
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius);
    border-collapse: separate;
    overflow: hidden;
    width: 100%;
}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--c66-border);
    color: var(--c66-text);
    font-style: normal;
    padding: 14px 16px;
    text-align: left;
}
.woocommerce table.shop_attributes th {
    color: var(--c66-muted);
    font-weight: 400;
    font-size: .82rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    width: 40%;
}
.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td { border-bottom: 0; }
.woocommerce table.shop_attributes td p { margin: 0; }

/* Produits lies / ventes croisees */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 {
    font-size: 1.3rem;
    margin: 40px 0 20px;
}

/* ============================================================
   Panier
   ============================================================ */

.woocommerce table.shop_table {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius);
    border-collapse: separate;
    color: var(--c66-text);
    overflow: hidden;
}
.woocommerce table.shop_table th {
    background: transparent;
    border-bottom: 1px solid var(--c66-border);
    color: var(--c66-muted);
    font-size: .78rem;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 16px;
}
.woocommerce table.shop_table td {
    border-top: 1px solid var(--c66-border);
    padding: 16px;
    vertical-align: middle;
}
.woocommerce table.shop_table tbody tr:first-child td { border-top: 0; }
.woocommerce table.shop_table img { width: 64px; border-radius: var(--c66-radius-sm); }

.woocommerce a.remove {
    color: var(--c66-dim) !important;
    font-weight: 400;
    line-height: 1.4;
}
.woocommerce a.remove:hover {
    background: transparent;
    color: #e5484d !important;
}

.woocommerce .cart .quantity input.qty { width: 80px; text-align: center; }

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals { width: 100%; float: none; }
.woocommerce .cart_totals h2 { font-size: 1.2rem; margin-bottom: 14px; }

.woocommerce .coupon { display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; }
.woocommerce .coupon input.input-text { flex: 1 1 160px; width: auto; }

.woocommerce .wc-proceed-to-checkout a.checkout-button { display: block; text-align: center; }

.woocommerce .cart-empty,
.woocommerce .return-to-shop { text-align: center; }

/* ============================================================
   Commande
   ============================================================ */

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius);
    padding: 20px;
}

.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2 { width: 100%; float: none; }

.woocommerce-checkout h3 { font-size: 1.2rem; margin: 28px 0 16px; }

.woocommerce form .form-row { padding: 0; margin: 0 0 16px; }
.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: 100%; float: none; }

.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading { width: 100%; float: none; }

.woocommerce-checkout #payment {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius);
}
.woocommerce-checkout #payment ul.payment_methods {
    border-bottom: 1px solid var(--c66-border);
    padding: 16px;
}
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; }
.woocommerce-checkout #payment div.payment_box {
    background: var(--c66-bg-input);
    color: var(--c66-muted);
    border-radius: var(--c66-radius-sm);
}
.woocommerce-checkout #payment div.payment_box::before {
    border-bottom-color: var(--c66-bg-input);
}
.woocommerce-checkout #payment div.form-row { padding: 16px; }

/* Les champs Stripe sont des iframes : on n'habille que leur conteneur,
   jamais leur contenu. */
.woocommerce-checkout .wc-stripe-elements-field,
.woocommerce-checkout .wc-card-number-element,
.woocommerce-checkout .wc-card-expiry-element,
.woocommerce-checkout .wc-card-cvc-element {
    background: var(--c66-bg-input);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius-sm);
    padding: 14px;
}

/* ============================================================
   Mon compte
   ============================================================ */

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }

.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    border-bottom: 1px solid var(--c66-border);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
    display: block;
    color: var(--c66-muted);
    font-size: .8rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 12px 14px;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    color: var(--c66-accent);
    border-bottom-color: var(--c66-accent);
}

/* ============================================================
   Commande recue / details de commande / suivi
   ============================================================ */

/* WooCommerce impose `mark { background: transparent; color: #0f0f0f }`
   dans sa feuille : noir sur fond sombre = numero de commande, date et
   statut invisibles sur la page « commande recue » et dans Mon compte. */
.woocommerce mark,
.woocommerce-page mark {
    background: transparent;
    color: var(--c66-accent);
    font-weight: 600;
}

.woocommerce .woocommerce-thankyou-order-received {
    color: var(--c66-text);
    font-size: 1.05rem;
    margin-bottom: 24px;
}

/* Recapitulatif en tete de la page « commande recue ». Le markup natif
   est une liste flottante bordee en rgba(0,0,0,.1) : invisible ici. */
.woocommerce ul.order_details {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius);
    list-style: none;
    margin: 0 0 32px;
    padding: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 20px 32px;
}
.woocommerce ul.order_details::before,
.woocommerce ul.order_details::after { content: none; display: none; }
.woocommerce ul.order_details li {
    border: 0;
    float: none;
    margin: 0;
    padding: 0;
    color: var(--c66-muted);
    font-size: .72rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    line-height: 1.4;
}
.woocommerce ul.order_details li strong {
    display: block;
    margin-top: 6px;
    color: var(--c66-text);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

/* Pied du tableau de commande : sous-total, expedition, total. La regle
   `th` generique les rendrait gris et en petites capitales. */
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td {
    border-top: 1px solid var(--c66-border);
    padding: 14px 16px;
}
.woocommerce table.shop_table tfoot tr:last-child th,
.woocommerce table.shop_table tfoot tr:last-child td {
    color: var(--c66-text);
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

/* Adresses de facturation / livraison */
.woocommerce .woocommerce-customer-details .col2-set { display: grid; gap: 20px; }
.woocommerce .woocommerce-customer-details .col2-set::before,
.woocommerce .woocommerce-customer-details .col2-set::after { content: none; display: none; }
.woocommerce .woocommerce-customer-details address {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius);
    color: var(--c66-text);
    font-style: normal;
    line-height: 1.7;
    padding: 18px;
}
.woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone,
.woocommerce .woocommerce-customer-details .woocommerce-customer-details--email {
    color: var(--c66-muted);
    margin: 8px 0 0;
}

/* Formulaire du shortcode [woocommerce_order_tracking] */
.woocommerce form.track_order {
    background: var(--c66-bg-elev);
    border: 1px solid var(--c66-border);
    border-radius: var(--c66-radius);
    padding: 20px;
}
.woocommerce form.track_order .form-row-first,
.woocommerce form.track_order .form-row-last { width: 100%; float: none; }

/* ============================================================
   Desktop
   ============================================================ */

@media (min-width: 640px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
}

@media (min-width: 900px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }

    /* Compteur a gauche, tri a droite */
    .woocommerce .woocommerce-result-count { float: left; line-height: 48px; }
    .woocommerce .woocommerce-ordering { float: right; }
    .woocommerce .woocommerce-ordering select { width: auto; }

    /* Fiche produit en deux colonnes */
    .woocommerce div.product .woocommerce-product-gallery { width: 50%; float: left; margin-bottom: 0; }
    .woocommerce div.product div.summary { width: 46%; float: right; margin-bottom: 0; }
    .woocommerce div.product .woocommerce-tabs { clear: both; }

    /* Panier : totaux a droite */
    .woocommerce .cart-collaterals .cart_totals,
    .woocommerce-page .cart-collaterals .cart_totals { width: 48%; float: right; }

    /* Commande : facturation a gauche, recap a droite */
    .woocommerce .col2-set .col-1,
    .woocommerce-page .col2-set .col-1 { width: 48%; float: left; }
    .woocommerce .col2-set .col-2,
    .woocommerce-page .col2-set .col-2 { width: 48%; float: right; }

    .woocommerce form .form-row-first { width: 48%; float: left; }
    .woocommerce form .form-row-last { width: 48%; float: right; }

    /* Mon compte : nav laterale */
    .woocommerce-account .woocommerce-MyAccount-navigation { width: 24%; float: left; }
    .woocommerce-account .woocommerce-MyAccount-content { width: 72%; float: right; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul {
        flex-direction: column;
        gap: 0;
        border-bottom: 0;
        border-left: 1px solid var(--c66-border);
    }
    .woocommerce-account .woocommerce-MyAccount-navigation li a {
        border-bottom: 0;
        border-left: 2px solid transparent;
        margin-bottom: 0;
        margin-left: -1px;
    }
    .woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
        border-bottom-color: transparent;
        border-left-color: var(--c66-accent);
    }
}

/* ============================================================
   Mobile — surcharge de woocommerce-smallscreen.css
   Cette feuille est servie en media="only screen and (max-width: 768px)"
   et force les onglets en display:block, ce qui les empile. On reprend
   exactement sa specificite : c'est l'ordre source (priorite 20) qui tranche.
   ============================================================ */

@media screen and (max-width: 768px) {
    .woocommerce div.product .woocommerce-tabs ul.tabs li {
        display: block;
        flex: 0 0 auto;
        border: 0 !important;
        margin: 0;
        padding: 0;
        background: transparent !important;
        white-space: nowrap;
    }
    .woocommerce div.product .woocommerce-tabs ul.tabs li a {
        padding: 11px 16px;
        font-size: .76rem;
        letter-spacing: .08em;
        border-radius: 999px;
    }

    /* ---- Onglets produit en accordeon ----
       La tab bar disparait, chaque panneau recoit un en-tete depliable.
       !important : WooCommerce pose display:none en inline sur les
       panneaux masques, une regle de feuille !important le surclasse. */
    .woocommerce div.product .woocommerce-tabs.c66-has-accordion ul.tabs {
        display: none !important;
    }

    .woocommerce div.product .woocommerce-tabs.c66-has-accordion .panel {
        display: block !important;
        max-height: 0;
        margin: 0;
        padding: 0;
        overflow: hidden;
        transition: max-height .28s ease;
    }
    .woocommerce div.product .woocommerce-tabs.c66-has-accordion .panel.c66-acc-open {
        max-height: 6000px;
        padding: 14px 4px 22px;
    }
    /* Le titre est deja porte par l'en-tete de l'accordeon */
    .woocommerce div.product .woocommerce-tabs.c66-has-accordion .panel > h2:first-child {
        display: none;
    }

    .c66-acc-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        width: 100%;
        margin-top: 8px;
        padding: 14px 18px;
        background: var(--c66-bg-input);
        border: 1px solid var(--c66-border);
        border-radius: var(--c66-radius);
        color: var(--c66-text);
        font-family: inherit;
        font-size: .8rem;
        font-weight: 500;
        letter-spacing: .1em;
        text-transform: uppercase;
        text-align: left;
        cursor: pointer;
        transition: background .15s ease, border-color .15s ease, color .15s ease;
    }
    .c66-acc-head:first-of-type { margin-top: 0; }
    .c66-acc-head:focus-visible {
        outline: 2px solid var(--c66-accent);
        outline-offset: 2px;
    }
    .c66-acc-head.is-open {
        background: var(--c66-accent);
        border-color: var(--c66-accent);
        color: var(--c66-accent-fg);
    }
    .c66-acc-head svg {
        flex: 0 0 16px;
        width: 16px;
        height: 16px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2.2;
        stroke-linecap: round;
        stroke-linejoin: round;
        transition: transform .2s ease;
    }
    .c66-acc-head.is-open svg { transform: rotate(180deg); }

    /* Le tableau panier est transforme en lignes empilees par WooCommerce */
    .woocommerce table.shop_table_responsive tr,
    .woocommerce-page table.shop_table_responsive tr {
        border-top: 1px solid var(--c66-border);
        display: block;
    }
    .woocommerce table.shop_table_responsive tr td,
    .woocommerce-page table.shop_table_responsive tr td {
        border: 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        padding: 10px 16px;
        text-align: right;
    }
    .woocommerce table.shop_table_responsive tr td::before,
    .woocommerce-page table.shop_table_responsive tr td::before {
        color: var(--c66-muted);
        font-size: .78rem;
        letter-spacing: .08em;
        text-transform: uppercase;
        float: none;
    }
    .woocommerce table.shop_table_responsive tr td.product-remove::before { content: ""; }

    .woocommerce .coupon input.input-text,
    .woocommerce .coupon .button { flex: 1 1 100%; }

    .woocommerce div.product form.cart div.quantity,
    .woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 100%; }
    .woocommerce div.product form.cart div.quantity input.qty { width: 100%; }
}

@media (min-width: 640px) {
    .woocommerce .woocommerce-customer-details .col2-set { grid-template-columns: 1fr 1fr; }
}
