/* ============================================================
   LAAQ × WooCommerce — surcouche DA sur le moteur Woo.
   Chargée uniquement sur les pages Woo (boutique, fiche, panier, commande).
   Utilise les jetons de :root définis dans laaq.css.
   ============================================================ */

/* ---------- Utilitaires ---------- */
.laaq-visually-hidden {
	position: absolute !important; width: 1px !important; height: 1px !important;
	padding: 0 !important; margin: -1px !important; overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}

/* ---------- Boutons WooCommerce = bouton rouge LAAQ ---------- */
.woocommerce .button,
.woocommerce-page .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce button.button.alt,
.woocommerce button.single_add_to_cart_button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt {
	display: inline-flex; align-items: center; justify-content: center;
	gap: 8px; padding: 14px 26px; border: 1px solid var(--red); border-radius: 0;
	background: var(--red); color: var(--paper);
	font: inherit; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	line-height: 1; cursor: pointer; text-decoration: none;
	transition: background .2s ease, color .2s ease;
}
.woocommerce .button:hover, .woocommerce .button:focus-visible,
.woocommerce a.button:hover, .woocommerce a.button:focus-visible,
.woocommerce button.button:hover, .woocommerce button.button.alt:hover,
.woocommerce button.button:focus-visible, .woocommerce button.button.alt:focus-visible,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover {
	background: transparent; color: var(--red);
}
.woocommerce .button:disabled, .woocommerce .button.disabled {
	opacity: .5; cursor: not-allowed;
}
/* Bouton d'achat en attente de numéro : les styles natifs désactivés
   (plus spécifiques) doivent rester dans la couleur LAAQ. */
.woocommerce button.button.alt:disabled,
.woocommerce button.single_add_to_cart_button:disabled,
.woocommerce button.single_add_to_cart_button.disabled,
.woocommerce button.wc-variation-selection-needed {
	border: 1px solid var(--red) !important; background: var(--red) !important; color: var(--paper) !important;
	opacity: 1; cursor: pointer;
}

/* ---------- Panier latéral : bouton = CTA de la charte (rouge) ---------- */
/* (la règle générique .woocommerce a.button fait déjà office) */

/* ---------- Fiche produit : ligne ÉDITION + CTA (layout validé) ---------- */
.product-page-actions .variations_form {
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px; flex-wrap: nowrap; width: 100%;
}
.product-page-actions .product-page-editions {
	display: inline-flex; align-items: center; gap: 12px; flex-wrap: nowrap;
}
.product-page-actions .edition-label { 
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
}
/* Les selects natifs : présents dans le DOM (mécanique Woo) mais invisibles. */
.product-page-actions .edition-controls .edition-select { display: inline-flex; align-items: center; margin-right: 6px; }
.product-page-actions .edition-controls select {
	position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;
	clip: rect(0,0,0,0); margin: -1px; overflow: hidden; border: 0; padding: 0;
}
.product-page-actions .reset_variations {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
}
/* Cases numéro (1→9) — styles de base dans laaq.css (.edition-number). */
.product-page-actions .laaq-swatches { display: inline-flex; flex-wrap: nowrap; gap: 4px; }
.product-page-actions .edition-number[aria-pressed="true"] {
	color: var(--paper); border-color: var(--red); background: var(--red);
}

/* Zone native Woo (prix variante/statut + bouton) — le prix vit déjà dans l'en-tête. */
.product-page-actions .single_variation_wrap { margin: 0; }
.product-page-actions .single_variation { display: none; }
.product-page-actions .woocommerce-variation-availability,
.product-page-actions .woocommerce-variation-price { display: none; }
.product-page-actions .woocommerce-variation-add-to-cart { display: inline-flex; align-items: center; gap: 14px; }
.product-page-actions .quantity { 
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; margin: -1px;
}
/* CTA : même hauteur (30px) que les cases numéro — exigence validée. */
.product-page-actions .single_add_to_cart_button {
	height: 30px; min-height: 30px; padding: 0 16px;
	font-size: 10px; letter-spacing: .12em; line-height: 1; white-space: nowrap;
	display: inline-flex; align-items: center;
}
@media (max-width: 720px) {
	.product-page-actions .variations_form { flex-wrap: wrap; }
	.product-page-actions .laaq-swatches { flex-wrap: wrap; }
}

/* ---------- Archives boutique : carte (déjà stylée dans laaq.css) ---------- */
/* Neutralise toute la mise en page Woo native (floats, largeurs, clear) :
   la grille .shop-grid (laaq.css) gère l'affichage ; sans elle, rien. */
.woocommerce .products .product,
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last {
	float: none; width: auto; margin: 0; padding: 0; clear: none;
}
.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after { display: none; content: none; }
.woocommerce ul.products { display: contents; } /* la grille .shop-grid fait tout */
.woocommerce span.onsale { display: none; }
li.product .soldout,
.product-item .soldout { 
	display: inline-block; margin-top: 6px; padding: 4px 10px; border: 1px solid var(--red);
	color: var(--red); font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
}
.woocommerce nav.woocommerce-pagination { padding: 20px 0 60px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; font-size: 13px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { padding: 4px 10px; color: var(--ink); background: transparent; }
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { color: var(--red); }

/* ---------- Notices WooCommerce ---------- */
.woocommerce .woocommerce-error, .woocommerce .woocommerce-info, .woocommerce .woocommerce-message,
.woocommerce-page .woocommerce-error, .woocommerce-page .woocommerce-info, .woocommerce-page .woocommerce-message {
	margin: 0 0 24px; padding: 16px 20px 16px 54px; border: 1px solid var(--line);
	border-top-color: var(--line); background: transparent; color: var(--ink);
	font-size: 14px; list-style: none;
}
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before, .woocommerce .woocommerce-error::before {
	top: 16px; left: 18px;
}
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before { content: "!"; color: var(--red); }
.woocommerce .woocommerce-error::before { color: var(--red); }
.woocommerce .woocommerce-message a.button, .woocommerce .woocommerce-info a.button, .woocommerce .woocommerce-error a.button {
	float: none; margin-left: 12px; padding: 10px 18px; 
}
.woocommerce-page .page-shell .woocommerce { padding: 54px 0 120px; }
.woocommerce .woocommerce-order h2, .woocommerce .woocommerce-customer-details h2,
.woocommerce .woocommerce-order-details h2 { font-family: var(--title); font-weight: 600; }

/* ---------- Tableaux (panier, commande) ---------- */
.woocommerce table.shop_table {
	width: 100%; border-collapse: collapse; border: 0; margin: 0 0 34px;
	font-size: 15px; line-height: 1.45;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 18px 12px; border: 0; border-bottom: 1px solid var(--line-soft); text-align: left; vertical-align: middle;
}
.woocommerce table.shop_table thead th {
	font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--ink);
	border-bottom-color: var(--line);
}
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td { font-weight: 600; }
.woocommerce-cart .cart .product-thumbnail img { width: 72px; height: auto; display: block; }
.woocommerce-cart .cart .product-name a { color: var(--ink); text-decoration: none; }
.woocommerce-cart .cart .product-name a:hover { color: var(--red); }
.woocommerce-cart .cart .amount, .woocommerce table .amount { font-weight: 600; }
.woocommerce a.remove {
	width: 24px; height: 24px; border-radius: 0; font-size: 20px; line-height: 22px;
	color: var(--ink) !important; background: transparent; border: 1px solid var(--line);
}
.woocommerce a.remove:hover { color: var(--red) !important; border-color: var(--red); background: transparent !important; }

/* Quantitées sur panier */
.woocommerce .quantity .qty {
	width: 68px; padding: 10px 8px; border: 1px solid var(--line); border-radius: 0;
	background: transparent; color: var(--ink); font: inherit; text-align: center;
}

/* Coupon + mise à jour du panier */
.woocommerce .actions { padding-top: 24px; }
.woocommerce .coupon input.input-text {
	padding: 12px 14px; border: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--ink); font: inherit; min-width: 200px;
}
.woocommerce .actions .button[name="update_cart"] { margin-left: auto; }
.woocommerce .actions .coupon + .button { margin-left: 8px; }

/* Totaux panier */
.woocommerce .cart-collaterals .cart_totals h2, .woocommerce-cart .cart_totals h2 {
	margin: 0 0 18px; font-family: var(--title); font-size: 25px; font-weight: 600;
}
.woocommerce .cart-collaterals .cart_totals table { margin-bottom: 26px; }
.woocommerce .cart-collaterals .wc-proceed-to-checkout .checkout-button {
	width: 100%; padding: 18px 26px; justify-content: center; font-size: 12px;
}

/* ---------- Commande (checkout) ---------- */
.woocommerce form .form-row { padding: 0 0 14px; margin: 0 0 6px; width: 100%; }
.woocommerce form .form-row-wide, .woocommerce-billing-fields .form-row-first { width: 100%; }
.woocommerce form.checkout .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; }
.woocommerce form.checkout .col2-set .col-1, .woocommerce form.checkout .col2-set .col-2 { width: 100%; max-width: none; }
@media (max-width: 720px) { .woocommerce form.checkout .col2-set { grid-template-columns: 1fr; gap: 26px; } }
.woocommerce .woocommerce-billing-fields h3, .woocommerce #order_review_heading, .woocommerce-shipping-fields h3, .woocommerce .woocommerce-additional-fields h3 {
	margin: 0 0 22px; font-family: var(--title); font-size: 25px; font-weight: 600; line-height: 1.1;
}
.woocommerce form .form-row label {
	display: block; margin: 0 0 6px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600;
}
.woocommerce form .form-row .required { color: var(--red); text-decoration: none; border: 0; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection {
	padding: 13px 14px; width: 100%;
	border: 1px solid var(--line); border-radius: 0;
	background: transparent; color: var(--ink); font: inherit; font-size: 15px;
	transition: border-color .2s ease;
}
.woocommerce .select2-container .select2-selection { height: auto; min-height: auto; }
.woocommerce .select2-container .select2-selection__rendered { line-height: normal; }
.woocommerce .select2-container .select2-selection__arrow { top: 8px; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus {
	border-color: var(--ink); outline: none;
}
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--red); }
.woocommerce em { color: var(--ink); }

/* Méthodes de paiement (incl. Stripe) — listage propre LAAQ */
.woocommerce ul#shipping_method, .woocommerce ul.wc_payment_methods, .woocommerce ul.order_details {
	list-style: none; padding: 0; margin: 0;
}
.woocommerce ul.wc_payment_methods li {
	padding: 16px 0; border-bottom: 1px solid var(--line-soft);
}
.woocommerce ul.wc_payment_methods li label { font-size: 15px; cursor: pointer; }
.woocommerce ul.wc_payment_methods .payment_box {
	padding: 14px 16px; margin: 12px 0 0; background: transparent; border: 1px solid var(--line-soft); border-radius: 0;
	font-size: 14px;
}
.woocommerce ul.wc_payment_methods .payment_box::before { display: none; }
/* Chiffres des cartes Stripe Elements — taille et cadre alignés sur la DA */
.woocommerce .wc-stripe-elements-field, .woocommerce .woocommerce-PaymentMethod .wc-stripe-card-element {
	padding: 13px 14px !important; border: 1px solid var(--line) !important; border-radius: 0 !important; background: transparent !important;
}
/* Place order = CTA pleine largeur */
.woocommerce form.checkout #place_order, .woocommerce .woocommerce-checkout #place_order {
	width: 100%; margin-top: 18px; padding: 18px 26px; justify-content: center; font-size: 12px;
	border-color: var(--red); background: var(--red); color: var(--paper);
}
.woocommerce form.checkout #place_order:hover, .woocommerce form.checkout #place_order:focus-visible,
.woocommerce .woocommerce-checkout #place_order:hover, .woocommerce .woocommerce-checkout #place_order:focus-visible {
	border-color: var(--red); background: transparent; color: var(--red);
}
.woocommerce .woocommerce-terms-and-conditions {
	padding: 14px 0; font-size: 13px; color: rgba(35, 31, 32, .8); border-bottom: 0; margin-bottom: 12px;
}

/* Commande passée — merci / récap */
.woocommerce .woocommerce-order .woocommerce-order-overview li {
	margin-bottom: 10px; padding-right: 24px;
	text-transform: none; font-size: 14px; list-style: none; border: 0;
}
.woocommerce .woocommerce-order .woocommerce-order-overview li strong { font-weight: 600; font-size: 15px; display: block; text-transform: none; }
.woocommerce table.order_details td.product-name a { color: var(--ink); }
.woocommerce address { font-style: italic; line-height: 1.5; }

/* ---------- Mon compte (minimal) ---------- */
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 30px; display: flex; flex-wrap: wrap; gap: 6px 22px; border-bottom: 1px solid var(--line); }
.woocommerce-MyAccount-navigation ul li a { display: inline-block; padding: 10px 0; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); text-decoration: none; }
.woocommerce-MyAccount-navigation ul li.is-active a, .woocommerce-MyAccount-navigation ul li a:hover { color: var(--red); }
.woocommerce .woocommerce-MyAccount-content { padding-bottom: 60px; font-size: 15px; }

/* ---------- Accessibilité : focus visibles ---------- */
.woocommerce .button:focus-visible, .woocommerce a.remove:focus-visible,
.woocommerce .quantity .qty:focus-visible, .woocommerce form .form-row input:focus-visible,
.woocommerce ul.wc_payment_methods input:focus-visible + label {
	outline: 2px solid var(--red); outline-offset: 3px;
}

/* ---------- Commande en blocs (checkout Woo ≥ 8.3, comme sur le site) ---------- */
/* Même CTA que la charte : rouge au repos, contour + texte rouges au survol. */
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions .wc-block-components-checkout-place-order-button {
	border: 1px solid var(--red) !important;
	border-radius: 0 !important;
	background: var(--red) !important;
	color: var(--paper) !important;
	transition: background .2s ease, color .2s ease;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-checkout-place-order-button:focus-visible,
.wc-block-components-checkout-place-order-button:not(:disabled):not([aria-disabled="true"]):hover {
	border-color: var(--red) !important;
	background: transparent !important;
	color: var(--red) !important;
}
/* Le libellé interne (span) doit suivre la couleur du bouton. */
.wc-block-components-checkout-place-order-button span,
.wc-block-components-checkout-place-order-button .wc-block-components-button__text {
	color: inherit !important;
}
