/* ============================================================
   Surcouche WooCommerce - aligne le markup natif sur la charte
   ============================================================ */

/* Boutons WooCommerce -> style du thème */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.98rem; letter-spacing: -0.01em;
  padding: 0.85rem 1.4rem; border-radius: 999px;
  border: 2px solid transparent; cursor: pointer;
  background: var(--ink); color: var(--paper);
  transition: transform .18s ease, background .18s ease;
  text-transform: none;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { transform: translateY(-2px); background: var(--teal-deep); color: var(--paper); }

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce #place_order {
  background: var(--optic); color: var(--ink) !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce #place_order:hover { background: var(--optic-deep); color: var(--ink) !important; }

/* Prix */
.woocommerce .price,
.woocommerce span.price,
.woocommerce div.product p.price { color: var(--ink); font-family: var(--font-display); font-weight: 800; }
.woocommerce .price del { color: var(--muted); font-weight: 400; }
.woocommerce .price ins { text-decoration: none; }

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top-color: var(--teal);
  background: var(--mint); border-radius: 10px;
  font-family: var(--font-body);
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--teal); }
.woocommerce-error { background: #fbe6e0; border-top-color: var(--coral); }

/* Champs de formulaire */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce table.cart td.actions .coupon .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  padding: 0.7rem 0.9rem; border: 1px solid var(--line); border-radius: 10px;
  font-family: var(--font-body); font-size: 0.95rem; background: var(--white);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus { outline: 2px solid var(--teal); border-color: var(--teal); }

/* Quantité (générique : panier) */
.woocommerce .quantity .qty {
  padding: 0.6rem; border: 1px solid var(--line); border-radius: 10px;
  font-family: var(--font-mono); width: 70px; text-align: center; background: var(--white);
}

/* Ligne d'achat de la fiche produit - façon maquette (pilule − / + + gros bouton) */
.pdp__info form.cart {
  display: flex; gap: 0.8rem; align-items: stretch; flex-wrap: wrap;
  margin-bottom: 1.4rem;
}
.pdp__info form.cart .quantity {
  display: flex; align-items: center; height: auto;
  border: 1px solid var(--line); border-radius: 999px;
  background: var(--white); overflow: hidden; float: none; margin: 0;
}
.pdp__info form.cart .quantity .qty {
  border: none; background: transparent; width: 46px; height: auto;
  text-align: center; font-family: var(--font-mono); font-size: 1rem;
  padding: 0.85rem 0; border-radius: 0; -moz-appearance: textfield; appearance: textfield;
}
.pdp__info form.cart .quantity .qty::-webkit-outer-spin-button,
.pdp__info form.cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bp-qty-btn {
  width: 44px; align-self: stretch; border: none; background: none;
  font-size: 1.3rem; line-height: 1; cursor: pointer; color: var(--ink);
}
.bp-qty-btn:hover { background: var(--mint); }
.pdp__info form.cart .single_add_to_cart_button {
  flex: 1 1 auto; justify-content: center; font-size: 1.05rem; border-radius: 999px;
}

/* Tableaux panier / commande */
.woocommerce table.shop_table {
  border-radius: var(--radius); border-collapse: separate; border-spacing: 0;
  border: 1px solid var(--line); overflow: hidden;
}
.woocommerce table.shop_table th { font-family: var(--font-display); background: var(--paper); }
.woocommerce-cart table.cart img { border-radius: 10px; }

/* Onglets fiche produit */
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: var(--mint); border: none; border-radius: 999px; margin: 0 6px 6px 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--paper); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-family: var(--font-display); font-weight: 700; }

/* Avis (étoiles) */
.woocommerce .star-rating span,
.woocommerce p.stars a { color: var(--optic-deep); }

/* Badge promo */
.woocommerce span.onsale {
  background: var(--coral); color: #fff; font-family: var(--font-mono);
  border-radius: 8px; min-height: auto; min-width: auto; padding: 0.25rem 0.6rem;
  line-height: 1.4; font-weight: 700;
}

/* Largeur de contenu WooCommerce pages (cart/checkout/account) */
.woocommerce-cart .wrap,
.woocommerce-checkout .wrap,
.woocommerce-account .wrap { max-width: var(--maxw); }

/* Titre de page Woo */
.woo-page-head { padding: 2rem 0 1.5rem; }
.woo-page-head h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }

/* ============================================================
   PAGE PANIER (template surchargé) - lignes-cartes façon maquette
   ============================================================ */
.woocommerce-cart .cart-items-col { min-width: 0; }
.woocommerce-cart .cart-item__img img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; }
.woocommerce-cart .cart-item__meta h3 a { color: inherit; }
.woocommerce-cart .cart-item__meta h3 a:hover { color: var(--teal); }

/* Stepper quantité dans le panier (pilule − / +) */
.cart-item__right .quantity {
  display: flex; align-items: center; border: 1px solid var(--line);
  border-radius: 999px; background: var(--white); overflow: hidden; margin: 0; float: none;
}
.cart-item__right .quantity .qty {
  border: none; background: transparent; width: 40px; text-align: center;
  font-family: var(--font-mono); font-size: 0.95rem; padding: 0.5rem 0;
  -moz-appearance: textfield; appearance: textfield;
}
.cart-item__right .quantity .qty::-webkit-outer-spin-button,
.cart-item__right .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cart-item__right .quantity .bp-qty-btn { width: 36px; }

/* Actions + coupon */
.cart-actions-row { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 1.6rem; }
.cart-coupon { display: flex; gap: 0.6rem; margin-top: 1.2rem; max-width: 360px; }
.cart-coupon .input-text {
  flex: 1; padding: 0.7rem 0.9rem; border: 1px solid var(--line);
  border-radius: 999px; font-family: var(--font-body); font-size: 0.9rem; background: var(--white);
}
.cart-coupon .input-text:focus { outline: 2px solid var(--teal); }

/* Récapitulatif (cart_totals) en carte sticky */
.cart-summary-col { min-width: 0; }
.woocommerce-cart .cart_totals {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 1.8rem; position: sticky; top: 90px; width: 100%; float: none;
}
.woocommerce-cart .cart_totals h2 { font-family: var(--font-display); font-size: 1.4rem; margin-bottom: 1rem; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; justify-content: center; margin-top: 0.4rem; }
.woocommerce-cart .ship-progress { margin: 0 0 1rem; }

@media (max-width: 960px) {
  .cart-item__right { align-items: flex-start; }
}

/* ============================================================
   PAGE COMMANDE (template surchargé) - 3 cartes à gauche + récap à droite
   ============================================================ */
.woocommerce-checkout form.checkout.woocommerce-checkout {
  display: grid; grid-template-columns: 1fr 380px; gap: 2.5rem; align-items: start;
}
.woocommerce-checkout .checkout-main { grid-column: 1; min-width: 0; }
.woocommerce-checkout .checkout-review { grid-column: 2; min-width: 0; position: sticky; top: 90px; }
.woocommerce-checkout #order_review_heading { margin: 0 0 1rem; font-family: var(--font-display); font-size: 1.4rem; }
.woocommerce-checkout #order_review {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 1.6rem;
}
/* Récap = lignes épurées (façon maquette, pas un tableau) */
.woocommerce-checkout #order_review .shop_table { display: block; border: none; width: 100%; margin: 0; }
.woocommerce-checkout #order_review thead { display: none; }
.woocommerce-checkout #order_review tbody,
.woocommerce-checkout #order_review tfoot { display: block; }
.woocommerce-checkout #order_review tr {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  padding: 0.55rem 0; border: none; background: none;
}
.woocommerce-checkout #order_review th,
.woocommerce-checkout #order_review td {
  display: block; padding: 0; border: none; background: none; font-weight: 400; font-size: 0.95rem;
}
.woocommerce-checkout #order_review th { color: var(--muted); text-align: left; }
.woocommerce-checkout #order_review td { text-align: right; white-space: nowrap; }
.woocommerce-checkout #order_review .cart_item { border-bottom: 1px solid var(--line); }
.woocommerce-checkout #order_review .cart_item .product-name { color: var(--ink); font-weight: 600; }
.woocommerce-checkout #order_review .cart-subtotal { padding-top: 0.9rem; }
/* Total mis en évidence */
.woocommerce-checkout #order_review .order-total {
  border-top: 2px solid var(--ink); margin-top: 0.4rem; padding-top: 0.9rem;
}
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td {
  font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; color: var(--ink);
}
.bp-review-note {
  margin: 1rem 0 0; font-family: var(--font-mono); font-size: 0.74rem;
  color: var(--muted); text-align: center;
}

/* Champs facturation : paires sur une même ligne */
.woocommerce-checkout .cblock .woocommerce-billing-fields__field-wrapper::after { content: ""; display: table; clear: both; }
.woocommerce-checkout .cblock .form-row-first { float: left; width: calc(50% - 0.6rem); clear: both; }
.woocommerce-checkout .cblock .form-row-last { float: right; width: calc(50% - 0.6rem); }
.woocommerce-checkout .cblock .form-row-wide { clear: both; width: 100%; }
/* Ciblage par ID (le JS i18n de WooCommerce réécrit les classes des champs d'adresse) */
.woocommerce-checkout #billing_postcode_field,
.woocommerce-checkout #billing_phone_field { float: left; width: calc(50% - 0.6rem); clear: both; }
.woocommerce-checkout #billing_city_field,
.woocommerce-checkout #billing_email_field { float: right; width: calc(50% - 0.6rem); clear: none; }

/* En-têtes de cartes (h2 custom + h3 natif de la facturation) */
.woocommerce-checkout .cblock h2 { font-family: var(--font-display); font-size: 1.25rem; margin: 0 0 1.1rem; }
.woocommerce-checkout .cblock h3 { font-family: var(--font-display); font-size: 1.25rem; margin: 0 0 1.1rem; }
.woocommerce-checkout .cblock .woocommerce-billing-fields__field-wrapper { margin-top: 0; }
.woocommerce-checkout #place_order { width: 100%; justify-content: center; margin-top: 0.6rem; }
.woocommerce-checkout .steps { margin-bottom: 0.5rem; }

/* Options de livraison en cartes radio (pilotées par le vrai input) */
.bp-shipping-methods { display: flex; flex-direction: column; gap: 0.7rem; }
.bp-shipping-methods .optcard { margin: 0; }
.bp-shipping-methods .optcard input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.bp-shipping-methods .optcard input:checked ~ .radio::after {
  content: ""; position: absolute; inset: 3px; background: var(--teal); border-radius: 50%;
}
.bp-shipping-methods .optcard:has(input:checked) {
  border-color: var(--teal); border-width: 2px; background: rgba(15, 76, 66, 0.04);
}

@media (max-width: 960px) {
  .woocommerce-checkout form.checkout.woocommerce-checkout { grid-template-columns: 1fr; }
  .woocommerce-checkout .checkout-main,
  .woocommerce-checkout .checkout-review { grid-column: 1; position: static; }
}

/* Moyens de paiement façon "optcard" */
.woocommerce-checkout ul.payment_methods { list-style: none; padding: 0; margin: 0 0 1rem; border: none; }
.woocommerce-checkout ul.payment_methods li {
  border: 1px solid var(--line); border-radius: 12px; padding: 0.9rem 1.1rem;
  margin-bottom: 0.6rem; background: var(--white);
}
.woocommerce-checkout ul.payment_methods li label { font-family: var(--font-display); font-weight: 700; display: inline; margin: 0; }
.woocommerce-checkout ul.payment_methods li .payment_box { background: var(--paper); border-radius: 10px; margin-top: 0.6rem; }
.woocommerce-checkout ul.payment_methods li .payment_box::before { display: none; }

@media (max-width: 960px) {
  .woocommerce-cart .entry-content > .woocommerce,
  .woocommerce-checkout form.checkout.woocommerce-checkout { grid-template-columns: 1fr; grid-template-rows: none; }
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals,
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
  .woocommerce-cart .cart_totals,
  .woocommerce-checkout #order_review { position: static; }
}

/* Bouton "+" (rendu en <a> dans le thème) : centrage du glyphe */
.add {
  display: inline-flex; align-items: center; justify-content: center;
  line-height: 1; text-decoration: none; padding: 0;
  flex: none; text-align: center;
}

/* Image produit réelle dans les cartes */
.pcard__img img { width: 100%; height: 100%; object-fit: cover; }
.pcard__img { overflow: hidden; }
.pcard h3 a { color: inherit; }
.pcard h3 a:hover { color: var(--teal); }

/* Galerie fiche produit (image réelle) */
.gallery__main img,
.gthumb img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }

/* Pagination */
.woocommerce-pagination ul,
.pagination .nav-links { display: flex; gap: 0.5rem; list-style: none; padding: 0; }
.woocommerce-pagination a, .woocommerce-pagination span,
.page-numbers { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 0.6rem; border: 1px solid var(--line); border-radius: 10px; font-family: var(--font-mono); }
.page-numbers.current { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* Mobile : champs code postal / ville / téléphone / email en pleine largeur */
@media (max-width: 600px) {
  .woocommerce-checkout #billing_postcode_field,
  .woocommerce-checkout #billing_city_field,
  .woocommerce-checkout #billing_phone_field,
  .woocommerce-checkout #billing_email_field { float: none; width: 100%; }
}

/* ============================================================
   ESPACE COMPTE WooCommerce - layout + skinning natif
   ============================================================ */
/* Le my-account.php surchargé émet .acct > .acct__nav + .acct__main */
.woocommerce-account .acct__main { min-width: 0; }
.woocommerce-account .woocommerce-MyAccount-content { width: 100%; }

/* Notices dans l'espace compte */
.woocommerce-account .woocommerce-notices-wrapper { margin-bottom: 1rem; }

/* Titre d'endpoint (Adresses, Détails du compte…) si rendu par WC */
.acct__main > h1:first-child,
.acct__main > h2:first-child { margin-top: 0; }

/* Formulaires natifs (édition compte / adresse / reset) -> carte façon .acct-form */
.acct__main form.woocommerce-EditAccountForm,
.acct__main form.edit-account,
.acct__main .woocommerce-address-fields,
.acct__main form.woocommerce-ResetPassword {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 1.8rem; max-width: 640px;
}
.acct__main .woocommerce-address-fields { max-width: 640px; }
.acct__main form .form-row { margin-bottom: 1rem; }
.acct__main form .form-row label,
.acct__main form legend {
  font-size: 0.78rem; font-weight: 600; color: var(--muted);
  display: block; margin-bottom: 0.3rem; font-family: var(--font-body);
}
.acct__main fieldset { border: none; padding: 0; margin: 1.4rem 0 0; }
.acct__main fieldset legend {
  font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--muted); padding: 0; margin-bottom: 0.8rem;
}
.acct__main form .form-row input.input-text,
.acct__main form .form-row input[type="email"],
.acct__main form .form-row input[type="password"],
.acct__main form .form-row input[type="tel"],
.acct__main form .form-row select { width: 100%; background: var(--paper); }
.acct__main .woocommerce-Button,
.acct__main button[type="submit"] { margin-top: 0.6rem; }
.acct__main .woocommerce-address-fields__field-wrapper .form-row-first { float: left; width: calc(50% - 0.5rem); clear: both; }
.acct__main .woocommerce-address-fields__field-wrapper .form-row-last { float: right; width: calc(50% - 0.5rem); }
.acct__main .woocommerce-address-fields__field-wrapper::after { content: ""; display: table; clear: both; }

/* Mes adresses : présentation en 2 cartes quand WC liste les adresses */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0;
}
.woocommerce-account .woocommerce-Address {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 1.5rem; margin: 0;
}
.woocommerce-account .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.8rem; }
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 { font-family: var(--font-display); font-size: 1.05rem; }
.woocommerce-account .woocommerce-Address address { font-style: normal; color: #2c3a33; line-height: 1.7; font-size: 0.95rem; }
.woocommerce-account .woocommerce-Address .edit {
  font-weight: 700; color: var(--teal); border-bottom: 2px solid var(--optic);
  padding-bottom: 2px; font-size: 0.85rem; white-space: nowrap;
}

/* Détail d'une commande (view-order) : tableaux en cartes */
.woocommerce-account .woocommerce-order-details,
.woocommerce-account .woocommerce-customer-details {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 1.6rem 1.8rem; margin-bottom: 1.4rem;
}
.woocommerce-account .woocommerce-order-details__title,
.woocommerce-account .woocommerce-column__title { font-family: var(--font-display); font-size: 1.25rem; margin-bottom: 1rem; }
.woocommerce-account .woocommerce-order-details .shop_table,
.woocommerce-account .woocommerce-customer-details .shop_table { border: none; }
.woocommerce-account .woocommerce-customer-details address { font-style: normal; line-height: 1.7; border: 1px solid var(--line); border-radius: 10px; padding: 1rem 1.2rem; }
.woocommerce-account .woocommerce-MyAccount-content .order-again .button { margin-top: 1rem; }
.woocommerce-account ul.woocommerce-order-overview { list-style: none; padding: 0; }

@media (max-width: 720px) {
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses { grid-template-columns: 1fr; }
  .acct__main .woocommerce-address-fields__field-wrapper .form-row-first,
  .acct__main .woocommerce-address-fields__field-wrapper .form-row-last { float: none; width: 100%; }
}

/* État vide du tiroir panier latéral (mini-cart vide) - à la marque */
.bp-drawer-empty {
  flex: 1 1 auto; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
  gap: 0.85rem; padding: 2rem 1.6rem 2.4rem;
}
.bp-drawer-empty__art {
  width: 96px; height: 96px; border-radius: 50%;
  background: var(--mint); display: grid; place-items: center;
}
.bp-drawer-empty__art svg { width: 58%; }
.bp-drawer-empty__title { font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; margin: 0; }
.bp-drawer-empty__text { color: var(--muted); font-size: 0.9rem; max-width: 26ch; margin: 0; }
.bp-drawer-empty .btn { margin-top: 0.4rem; }

/* Espace compte : neutralise le float + width 30/70% de woocommerce-layout.css
   (on gère la mise en page via la grille .acct → sinon la sidebar est écrasée à 75px) */
.woocommerce-account .acct .woocommerce-MyAccount-navigation,
.woocommerce-account .acct .woocommerce-MyAccount-content {
  float: none; width: auto; margin: 0;
}

/* ============================================================
   FICHE VARIABLE - pastilles couleur + pilules (UI à la marque)
   ============================================================ */
/* Selects natifs cachés (pilotés par .bp-opt) */
.variations_form .variations { display: none; }
/* Le form variable ne doit pas hériter du flex de form.cart (simple) */
.pdp__info form.variations_form.cart { display: block; }

.bp-variations { margin: 0 0 1.5rem; }
.bp-variant { margin-bottom: 1.5rem; }
.variant__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 0.7rem; }
.variant__label { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.variant__value { font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; }

.swatches { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.swatch { width: 48px; height: 48px; border-radius: 50%; cursor: pointer; position: relative; border: 2px solid var(--line);
  background-image: radial-gradient(circle, rgba(21,32,27,0.28) 1.4px, transparent 1.8px); background-size: 11px 11px; background-position: center;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.swatch:hover { transform: translateY(-2px); }
.swatch.is-active { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(15,76,66,0.18); }
.swatch.is-active::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 1rem; text-shadow: 0 1px 2px rgba(0,0,0,0.45); }

.pills { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.opt-pill { border: 1px solid var(--line); background: var(--white); border-radius: 12px; padding: 0.55rem 0.9rem; cursor: pointer;
  font-family: var(--font-body); text-align: center; min-width: 70px; transition: border-color .15s ease, background .15s ease, color .15s ease; }
.opt-pill b { font-family: var(--font-display); font-weight: 700; font-size: 1rem; display: block; line-height: 1.1; }
.opt-pill span { font-family: var(--font-mono); font-size: 0.64rem; color: var(--muted); }
.opt-pill:hover { border-color: var(--teal); }
.opt-pill.is-active { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.opt-pill.is-active span { color: rgba(243,245,242,0.7); }

/* Indisponible (combinaison non dispo selon les autres choix) */
.opt-pill.is-disabled { opacity: 0.4; cursor: not-allowed; text-decoration: line-through; }
.swatch.is-disabled { opacity: 0.45; cursor: not-allowed; }
.swatch.is-disabled::before { content: ""; position: absolute; left: 10%; right: 10%; top: 48%; height: 2px; background: rgba(21,32,27,0.55); transform: rotate(-18deg); }

.bp-reset-variations { display: inline-block; margin-top: 0.2rem; font-family: var(--font-mono); font-size: 0.78rem; color: var(--muted); border-bottom: 1px solid var(--line); }
.bp-reset-variations:hover { color: var(--teal); border-color: var(--teal); }

/* Prix de la variation + zone d'achat façon maquette */
.single_variation_wrap .woocommerce-variation { margin-bottom: 0.8rem; }
.single_variation_wrap .woocommerce-variation-price .price { font-family: var(--font-display); font-weight: 800; font-size: 1.9rem; color: var(--ink); }
.single_variation_wrap .woocommerce-variation-price .price del { font-size: 1rem; color: var(--muted); font-weight: 400; }
.single_variation_wrap .woocommerce-variation-availability { font-size: 0.85rem; color: var(--muted); }
.woocommerce-variation-add-to-cart { display: flex; gap: 0.8rem; align-items: stretch; flex-wrap: wrap; }
.woocommerce-variation-add-to-cart .quantity {
  display: flex; align-items: center; border: 1px solid var(--line); border-radius: 999px;
  background: var(--white); overflow: hidden; margin: 0; float: none;
}
.woocommerce-variation-add-to-cart .quantity .qty {
  border: none; background: transparent; width: 46px; text-align: center; font-family: var(--font-mono);
  font-size: 1rem; padding: 0.85rem 0; -moz-appearance: textfield; appearance: textfield;
}
.woocommerce-variation-add-to-cart .quantity .qty::-webkit-outer-spin-button,
.woocommerce-variation-add-to-cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1 1 auto; justify-content: center; font-size: 1.05rem; border-radius: 999px; }
.woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button { opacity: 0.4; cursor: not-allowed; }

/* ============================================================
   POPUP « Voir tous les avis »
   ============================================================ */
.bp-reviews-modal { position: fixed; inset: 0; z-index: 200; display: none; }
.bp-reviews-modal.is-open { display: block; }
.bp-reviews-modal__overlay { position: absolute; inset: 0; background: rgba(11,58,51,0.55); backdrop-filter: blur(2px); }
.bp-reviews-modal__panel {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: min(640px, 92vw); max-height: 86vh; background: var(--paper);
  border-radius: var(--radius-lg); display: flex; flex-direction: column;
  overflow: hidden; box-shadow: var(--shadow);
}
.bp-reviews-modal__head {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1.3rem 1.6rem; border-bottom: 1px solid var(--line); background: var(--white); flex: none;
}
.bp-reviews-modal__head h3 { font-size: 1.3rem; }
.bp-reviews-modal__sub { font-family: var(--font-mono); font-size: 0.8rem; color: var(--muted); }
.bp-reviews-modal__sub .stars { color: var(--optic-deep); }
.bp-reviews-modal__close {
  background: var(--mint); border: none; width: 38px; height: 38px; border-radius: 50%;
  cursor: pointer; font-size: 1rem; color: var(--ink); flex: none; line-height: 1;
}
.bp-reviews-modal__close:hover { background: var(--optic); }
.bp-reviews-modal__body { overflow-y: auto; padding: 1.4rem 1.6rem; gap: 1rem; }
@media (max-width: 540px) {
  .bp-reviews-modal__panel { width: 100vw; height: 100vh; max-height: none; top: 0; left: 0; transform: none; border-radius: 0; }
}

/* ============================================================
 * Souvent achetés ensemble (FBT façon Shopify)
 * ============================================================ */
.bp-fbt {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.8rem 2rem 2rem;
  box-shadow: var(--shadow);
}
.bp-fbt > h2 { margin-bottom: 1.4rem; }

/* Liste cochable */
.bp-fbt__list { list-style: none; margin: 0 0 1.4rem; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.bp-fbt__opt {
  display: flex; align-items: center; gap: 0.9rem;
  padding: 0.6rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}

/* Vignette produit dans chaque ligne */
.bp-fbt__rowimg {
  width: 60px; height: 60px; flex: none;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.bp-fbt__rowimg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bp-fbt__rowimg svg { width: 62%; height: 62%; }
.bp-fbt__row--anchor .bp-fbt__opt { cursor: default; background: var(--mint); border-color: transparent; }
.bp-fbt__opt:hover { border-color: var(--teal); }
.bp-fbt__row--anchor .bp-fbt__opt:hover { border-color: transparent; }
.bp-fbt__check { position: absolute; opacity: 0; pointer-events: none; }
.bp-fbt__check-ui {
  width: 22px; height: 22px; flex: none;
  border: 2px solid var(--teal);
  border-radius: 6px;
  background: var(--white);
  position: relative;
  transition: background .15s ease;
}
.bp-fbt__check:checked + .bp-fbt__check-ui { background: var(--teal); }
.bp-fbt__check:checked + .bp-fbt__check-ui::after {
  content: ""; position: absolute; left: 6px; top: 2px;
  width: 6px; height: 11px;
  border: solid var(--optic); border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}
.bp-fbt__check:disabled + .bp-fbt__check-ui { background: var(--teal); border-color: var(--teal); opacity: 0.75; }
.bp-fbt__name { flex: 1 1 auto; font-size: 0.96rem; color: var(--ink); display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.bp-fbt__name a { color: inherit; text-decoration: none; }
.bp-fbt__name a:hover { color: var(--teal); text-decoration: underline; }
.bp-fbt__opttag {
  font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 0.12rem 0.5rem;
}
/* Ligne optionnelle (gros article décoché par défaut) : légèrement atténuée tant que non cochée */
.bp-fbt__row--opt .bp-fbt__opt { background: var(--white); }
.bp-fbt__row--opt .bp-fbt__check:not(:checked) ~ .bp-fbt__rowimg,
.bp-fbt__row--opt .bp-fbt__check:not(:checked) ~ .bp-fbt__name { opacity: 0.7; }
.bp-fbt__price { font-family: var(--font-mono); font-size: 0.95rem; font-weight: 700; white-space: nowrap; }
.bp-fbt__price del { color: var(--muted); font-weight: 400; margin-right: 0.3rem; }

/* Pied : total + bouton (bouton SECONDAIRE pour ne pas concurrencer l'ajout au panier principal) */
.bp-fbt__foot { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap; }
.bp-fbt__totalwrap { display: flex; flex-direction: column; gap: 0.35rem; }
.bp-fbt__total { font-family: var(--font-display); font-weight: 800; font-size: 1.35rem; }
.bp-fbt__total [data-fbt-total] { color: var(--teal); }
.bp-fbt__savebadge {
  align-self: flex-start;
  background: var(--coral); color: var(--white);
  font-family: var(--font-mono); font-size: 0.78rem; font-weight: 700;
  border-radius: 999px; padding: 0.2rem 0.7rem;
}
.bp-fbt__add { min-width: 230px; justify-content: center; }
.bp-fbt__add.loading { opacity: 0.6; pointer-events: none; }

@media (max-width: 600px) {
  .bp-fbt { padding: 1.4rem 1.2rem 1.6rem; }
  .bp-fbt__opt { gap: 0.7rem; padding: 0.55rem 0.7rem; }
  .bp-fbt__rowimg { width: 50px; height: 50px; }
  .bp-fbt__name { font-size: 0.9rem; }
  .bp-fbt__foot { flex-direction: column; align-items: stretch; }
  .bp-fbt__add { width: 100%; }
}

/* Cross-sell dans le tiroir panier (1 complément pas cher) */
.bp-xsell { margin: 0.2rem 0 0.4rem; padding-top: 0.9rem; border-top: 1px dashed var(--line); }
.bp-xsell__title { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.6rem; }
.bp-xsell__row { display: flex; align-items: center; gap: 0.6rem; }
.bp-xsell__img { width: 42px; height: 42px; flex: none; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.bp-xsell__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bp-xsell__img svg { width: 64%; height: 64%; }
.bp-xsell__name { flex: 1 1 auto; font-size: 0.82rem; line-height: 1.2; }
.bp-xsell__price { font-family: var(--font-mono); font-weight: 700; font-size: 0.8rem; white-space: nowrap; }
.bp-xsell__add { flex: none; border: 1px solid var(--teal); color: var(--teal); background: #fff; border-radius: 999px; padding: 0.3rem 0.7rem; font-family: var(--font-mono); font-size: 0.72rem; font-weight: 700; cursor: pointer; transition: background .15s ease, color .15s ease; }
.bp-xsell__add:hover { background: var(--teal); color: #fff; }
.bp-xsell__add.is-loading { opacity: 0.5; pointer-events: none; }

/* Offre quantité (paliers 1 / 2, façon volume Shopify) */
form.cart.bp-has-qtydeal { display: block !important; }
.bp-has-qtydeal .quantity { display: none !important; }
.bp-has-qtydeal .single_add_to_cart_button { width: 100%; justify-content: center; }
.bp-qtydeal { display: flex; flex-direction: column; gap: 0.6rem; margin: 0 0 1rem; width: 100%; }
.bp-qtydeal__opt { display: flex; align-items: center; gap: 0.8rem; padding: 0.8rem 1rem; border: 1.5px solid var(--line); border-radius: var(--radius); cursor: pointer; position: relative; transition: border-color .15s ease, background .15s ease; }
.bp-qtydeal__opt:hover { border-color: var(--teal); }
.bp-qtydeal__opt.is-on { border-color: var(--teal); background: var(--mint); }
.bp-qtydeal__opt input { position: absolute; opacity: 0; pointer-events: none; }
.bp-qtydeal__radio { width: 20px; height: 20px; flex: none; border: 2px solid var(--teal); border-radius: 50%; position: relative; }
.bp-qtydeal__opt.is-on .bp-qtydeal__radio::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--teal); }
.bp-qtydeal__main { flex: 1 1 auto; font-size: 0.95rem; }
.bp-qtydeal__main b { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; }
.bp-qtydeal__tag { display: inline-block; background: var(--coral); color: #fff; font-family: var(--font-mono); font-size: 0.66rem; font-weight: 700; border-radius: 999px; padding: 0.1rem 0.5rem; margin-left: 0.4rem; vertical-align: middle; }
.bp-qtydeal__save { display: block; font-size: 0.8rem; color: var(--coral); font-weight: 600; margin-top: 0.15rem; }
.bp-qtydeal__price { font-family: var(--font-mono); font-weight: 700; white-space: nowrap; text-align: right; }
.bp-qtydeal__price del { color: var(--muted); font-weight: 400; font-size: 0.85em; margin-right: 0.3rem; }
