/* ==========================================================================
   Altitude Store : panier, paiement et confirmation (v1.1)
   Chargé en dernier : ces règles ont le dernier mot.
   ========================================================================== */

/* ---------- Indicateur d'étapes ---------- */
.etapes-barre { background: #fff; border-bottom: 1px solid var(--c-ligne); }
.etapes {
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto; padding-top: 18px; padding-bottom: 18px; list-style: none;
}
.etape { display: flex; align-items: center; }
.etape:not(:last-child)::after {
	content: ""; width: clamp(28px, 8vw, 110px); height: 1px; margin: 0 18px; background: var(--c-ligne);
	transition: background .4s;
}
.etape.est-fait:not(:last-child)::after { background: var(--c-accent); }

.etape-lien {
	display: inline-flex; align-items: center; gap: 10px;
	font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-doux);
	transition: color .25s;
}
a.etape-lien:hover { color: var(--c-accent); }
.etape-numero {
	width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; flex: none;
	border: 1px solid currentColor; border-radius: 50%; font-size: 13px; font-weight: 600;
	transition: background .3s, color .3s, border-color .3s;
}
.etape.est-actif .etape-lien { color: var(--c-primaire); font-weight: 600; }
.etape.est-actif .etape-numero { background: var(--c-primaire); border-color: var(--c-primaire); color: #fff; }
.etape.est-fait .etape-lien { color: var(--c-accent); }
.etape.est-fait .etape-numero { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }

@media (max-width: 640px) {
	.etape:not(.est-actif) .etape-nom {
		position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	}
	.etape:not(:last-child)::after { margin: 0 12px; width: 26px; }
}

.section-parcours { padding-top: clamp(30px, 4vw, 50px); }

/* ---------- Livraison offerte (panier et mini-panier) ---------- */
.livraison-offerte { margin: 0 0 22px; padding: 14px 16px; background: var(--c-alt); }
.livraison-offerte p { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 14px; color: var(--c-primaire); }
.livraison-barre { display: block; height: 4px; background: var(--c-ligne); border-radius: 2px; overflow: hidden; }
.livraison-barre > span { display: block; height: 100%; background: var(--c-accent); border-radius: 2px; transition: width .7s var(--ease); }
.livraison-offerte.est-atteinte p { color: #1f7a4d; }
.livraison-offerte.est-atteinte .livraison-barre > span { background: #1f9d62; }
.tiroir .livraison-offerte { margin: 16px 0 0; }

/* ---------- Panier : deux colonnes ---------- */
@media (min-width: 981px) {
	.woocommerce-cart:not(.panier-vide) .article-contenu > .woocommerce {
		display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 0 56px; align-items: start;
	}
	.woocommerce-cart .article-contenu > .woocommerce > .woocommerce-notices-wrapper,
	.woocommerce-cart .article-contenu > .woocommerce > .woocommerce-message,
	.woocommerce-cart .article-contenu > .woocommerce > .cross-sells,
	.woocommerce-cart .article-contenu > .woocommerce > .cart_totals_vide { grid-column: 1 / -1; }
	.woocommerce-cart .woocommerce-cart-form { grid-column: 1; }
	.woocommerce-cart .cart-collaterals { grid-column: 2; position: sticky; top: calc(var(--h-entete) + 24px); }
	.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
}

.woocommerce-cart .cart-collaterals .cart_totals {
	padding: 30px; background: var(--c-alt); border: 1px solid var(--c-ligne);
}
.woocommerce-cart .cart_totals h2 { margin: 0 0 18px; font-size: 1.3rem; }
.woocommerce-cart .cart_totals table.shop_table { margin: 0 0 20px; }
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td { padding: 14px 0; background: none; }
.woocommerce-cart .cart_totals table.shop_table th { border-bottom: 1px solid var(--c-ligne); font-size: 12px; }
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td { font-size: 1.2rem; color: var(--c-primaire); border-bottom: 0; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: flex; width: 100%; margin: 0; padding: 20px; background: var(--c-primaire); font-size: 13px;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover { background: var(--c-accent); }

/* Tableau du panier */
.woocommerce-cart table.cart { margin-bottom: 20px; }
.woocommerce-cart table.cart th { padding-left: 0; }
.woocommerce-cart table.cart td { padding: 24px 12px; }
.woocommerce-cart table.cart td.product-thumbnail { width: 110px; padding-left: 0; }
.woocommerce-cart table.cart td.product-thumbnail img { width: 90px; height: 114px; object-fit: cover; }
.woocommerce-cart table.cart td.product-name a { font-size: 1.05rem; color: var(--c-primaire); }
.woocommerce-cart table.cart td.product-name a:hover { color: var(--c-accent); }
.woocommerce-cart table.cart .product-name dl.variation { margin: 6px 0 0; font-size: 13px; color: var(--c-doux); }
.woocommerce-cart table.cart .product-name dl.variation dt { float: left; margin-right: 4px; font-weight: 500; }
.woocommerce-cart table.cart .product-name dl.variation dd { margin: 0 0 2px; }
.woocommerce-cart table.cart .product-name dl.variation p { margin: 0; }
.woocommerce-cart table.cart td.product-remove { width: 30px; padding-right: 0; text-align: right; }
.woocommerce-cart table.cart td.actions { padding: 24px 0 0; }
.woocommerce-cart table.cart td.actions .coupon { gap: 10px; }
.woocommerce-cart table.cart td.actions .coupon input { width: 190px; }
.woocommerce-cart table.cart td.actions > .button { float: right; }
.woocommerce-cart table.cart td.actions > .button:disabled { display: none; }

.continuer-achats { margin: 8px 0 0; }
.lien-retour .icone { transition: transform .3s var(--ease); }
.lien-retour:hover .icone { transform: translateX(-6px); }

/* Tableau du panier sur mobile (cartes) */
@media (max-width: 760px) {
	.woocommerce-cart table.cart thead { display: none; }
	.woocommerce-cart table.shop_table_responsive tr, .woocommerce-cart table.shop_table_responsive tr td { display: block; }
	.woocommerce-cart table.cart tr.cart_item {
		position: relative; display: grid; grid-template-columns: 90px 1fr; gap: 4px 16px;
		padding: 20px 0; border-bottom: 1px solid var(--c-ligne);
	}
	.woocommerce-cart table.cart tr.cart_item td { display: block; padding: 0; border: 0; text-align: left !important; }
	.woocommerce-cart table.cart tr.cart_item td::before { display: none !important; }
	.woocommerce-cart table.cart td.product-thumbnail { grid-row: 1 / span 4; width: auto; }
	.woocommerce-cart table.cart td.product-remove { position: absolute; top: 18px; right: 0; width: auto; }
	.woocommerce-cart table.cart td.product-name { padding-right: 28px; }
	.woocommerce-cart table.cart td.product-subtotal { font-weight: 600; color: var(--c-primaire); }
	.woocommerce-cart table.cart td.actions .coupon { float: none; flex-direction: column; width: 100%; }
	.woocommerce-cart table.cart td.actions .coupon input { width: 100%; }
	.woocommerce-cart table.cart td.actions > .button { float: none; width: 100%; margin-top: 12px; }
}

/* ---------- Panier vide ---------- */
.panier-vide .woocommerce { text-align: center; }
.panier-vide .cart-empty {
	display: block; margin: 20px auto 6px; padding: 0; background: none; border: 0;
	font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 300; color: var(--c-primaire);
}
.panier-vide .return-to-shop { margin: 20px 0 50px; }
.vide-suggestions { text-align: center; }
.vide-suggestions .puces { justify-content: center; margin-bottom: 44px; }
.vide-titre { margin: 0 0 26px; font-size: 1.5rem; }
.vide-suggestions ul.products { text-align: left; }

/* Produits associés */
.woocommerce-cart .cross-sells { margin-top: 60px; }
.woocommerce-cart .cross-sells > h2 { margin-bottom: 26px; font-size: 1.6rem; }

/* ---------- Bandeau de réassurance ---------- */
.reassurance-bandeau {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 24px;
	margin: 64px 0 0; padding: 32px 0 0; border-top: 1px solid var(--c-ligne); list-style: none;
}
.reassurance-bandeau li { display: flex; align-items: center; gap: 16px; color: var(--c-primaire); }
.reassurance-texte { display: flex; flex-direction: column; }
.reassurance-texte strong { font-size: 15px; font-weight: 600; }
.reassurance-texte a:hover strong { color: var(--c-accent); }
.reassurance-texte > span { font-size: 13px; color: var(--c-doux); }

/* Garanties sous le bouton de validation */
.paiement-garanties { display: grid; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.paiement-garanties li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--c-doux); }
.paiement-garanties .icone { color: var(--c-primaire); }

/* ==========================================================================
   Paiement
   ========================================================================== */
.woocommerce-checkout form.checkout {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 460px); gap: 0 clamp(36px, 5vw, 70px); align-items: start;
}
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-checkout form.checkout #customer_details { grid-column: 1; }
.woocommerce-checkout form.checkout #order_review_heading { display: none; }
.woocommerce-checkout form.checkout #order_review {
	grid-column: 2; position: sticky; top: 24px;
	padding: 30px; background: var(--c-alt); border: 1px solid var(--c-ligne);
}
.recap-titre { margin: 0 0 18px; font-size: 1.3rem; }

.woocommerce-checkout .col2-set { grid-template-columns: 1fr; gap: 0; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout h3 { margin: 0 0 22px; font-size: 1.35rem; }
.woocommerce-checkout .woocommerce-shipping-fields, .woocommerce-checkout .woocommerce-additional-fields { margin-top: 34px; }

/* Champs sur deux colonnes */
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px;
}
.woocommerce-checkout form.checkout .form-row {
	float: none !important; width: auto !important; margin: 0 0 18px; padding: 0;
}
.woocommerce-checkout form.checkout .form-row-wide, .woocommerce-checkout form.checkout .notes { grid-column: 1 / -1; }
.woocommerce-checkout form.checkout .form-row label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 500; }
.woocommerce-checkout form.checkout .form-row .required { color: #d63638; text-decoration: none; }
.woocommerce-checkout form.checkout .form-row.woocommerce-invalid input,
.woocommerce-checkout form.checkout .form-row.woocommerce-invalid select { border-color: #d63638; }
.woocommerce-checkout form.checkout .form-row.woocommerce-validated input { border-color: #1f9d62; }
@media (max-width: 640px) {
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper,
	.woocommerce-additional-fields__field-wrapper { grid-template-columns: 1fr; }
}

/* Listes déroulantes (pays, région) */
.select2-container .select2-selection--single { height: 49px; border: 1px solid #cfd5df; border-radius: var(--rayon); }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 47px; padding: 0 16px; color: var(--c-texte); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 47px; right: 8px; }
.select2-dropdown { border-color: #cfd5df; border-radius: 0; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--c-primaire); }

/* Code promo (avant le formulaire) */
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 20px; }
.woocommerce form.checkout_coupon { margin: 0 0 30px; padding: 22px; border: 1px solid var(--c-ligne); border-radius: 0; }
.woocommerce form.checkout_coupon .form-row-first, .woocommerce form.checkout_coupon .form-row-last { float: none; width: auto; }
.woocommerce form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.woocommerce form.checkout_coupon p:first-child { flex-basis: 100%; margin: 0; color: var(--c-doux); }
.woocommerce form.checkout_coupon .form-row { margin: 0; }
.woocommerce form.checkout_coupon .form-row-first { flex: 1; min-width: 200px; }

/* Récapitulatif de la commande */
.woocommerce-checkout-review-order-table { margin: 0 0 20px; background: none; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { padding: 14px 0; background: none; }
.woocommerce-checkout-review-order-table thead th { padding-top: 0; }
.woocommerce-checkout-review-order-table .product-name { font-size: 15px; }
.woocommerce-checkout-review-order-table .product-quantity { color: var(--c-doux); font-weight: 400; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td {
	padding-top: 18px; border-bottom: 0; font-size: 1.2rem; color: var(--c-primaire);
}
.woocommerce-checkout-review-order-table tfoot th { font-size: 12px; }
.woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }
.woocommerce-shipping-methods li { margin-bottom: 8px; }

/* Moyens de paiement */
.woocommerce-checkout #payment { background: none; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0; border-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0 0 10px; padding: 16px 18px; background: #fff; border: 1px solid var(--c-ligne);
	transition: border-color .25s;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--c-primaire); }
.woocommerce-checkout #payment ul.payment_methods li label { font-weight: 500; cursor: pointer; }
.woocommerce-checkout #payment div.payment_box { margin: 12px 0 0; padding: 0; background: none; font-size: 14px; color: var(--c-doux); }
.woocommerce-checkout #payment div.form-row { padding: 18px 0 0; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--c-doux); }
.woocommerce-checkout #place_order { width: 100%; padding: 22px; }

@media (max-width: 980px) {
	.woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
	.woocommerce-checkout form.checkout #customer_details,
	.woocommerce-checkout form.checkout #order_review { grid-column: 1; }
	.woocommerce-checkout form.checkout #order_review { position: static; margin-top: 40px; padding: 22px; }
}

/* ==========================================================================
   Confirmation de commande
   ========================================================================== */
.woocommerce-order { max-width: 900px; margin: 0 auto; }
.woocommerce-notice--success.woocommerce-thankyou-order-received {
	margin: 0 0 30px; padding: 0; border: 0; background: none;
	font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 300; color: var(--c-primaire);
}
.woocommerce ul.order_details {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 20px;
	margin: 0 0 40px; padding: 24px; list-style: none; background: var(--c-alt);
}
.woocommerce ul.order_details li {
	float: none; margin: 0; padding: 0; border: 0;
	font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--c-doux);
}
.woocommerce ul.order_details li strong { display: block; margin-top: 6px; font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--c-primaire); }
.woocommerce-order-details, .woocommerce-customer-details { margin-bottom: 40px; }
.woocommerce-order-details h2, .woocommerce-customer-details h2, .woocommerce-column__title { font-size: 1.4rem; }
.woocommerce-customer-details address { padding: 20px; border: 1px solid var(--c-ligne); border-radius: 0; font-style: normal; }
.apres-commande { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }

/* ---------- Mon compte : connexion ---------- */
.woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register { background: #fff; }
.woocommerce-account .woocommerce-form-login .woocommerce-form-login__submit { width: 100%; margin-top: 8px; }
.woocommerce-account .lost_password { margin-top: 14px; font-size: 14px; }
.woocommerce-account .lost_password a { color: var(--c-accent); text-decoration: underline; text-underline-offset: 3px; }
