/* ==========================================================================
   WooCommerce — BLOCS Panier & Commande (Cart Block / Checkout Block)
   --------------------------------------------------------------------------
   Les pages Panier/Commande modernes de WooCommerce sont des blocs Gutenberg
   avec leurs propres classes `.wc-block-*`. Ce fichier les habille aux
   couleurs du thème. Quelques `!important` sont nécessaires car WooCommerce
   impose des styles très spécifiques (surtout sur les boutons).
   ========================================================================== */

/* Largeur & espacement généraux ------------------------------------------- */
.fr-wc-content { max-width: none; }
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	max-width: var(--wrap);
	margin-inline: auto;
	color: var(--ink);
}
.wc-block-cart,
.wc-block-checkout { gap: var(--space-5); }

/* Titres (police display) -------------------------------------------------- */
.wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title,
.wc-block-components-order-summary .wc-block-components-title {
	font-family: var(--font-display) !important;
	font-weight: 600 !important;
	letter-spacing: -0.02em;
	color: var(--ink) !important;
}
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title,
.wc-block-checkout__sidebar .wc-block-components-title,
.wc-block-components-order-summary .wc-block-components-title { font-size: var(--step-1) !important; line-height: 1.2; }

/* En-têtes de colonnes (PRODUIT / TOTAL) ----------------------------------- */
.wc-block-cart-items__header {
	font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
	color: var(--muted); border-bottom: 1px solid var(--line);
}

/* Lignes d'articles -------------------------------------------------------- */
.wc-block-cart-items__row,
.wc-block-cart-item__wrap { border-bottom: 1px solid var(--line); }
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	border-radius: var(--r-sm); background: var(--frost);
}
.wc-block-components-product-name {
	font-family: var(--font-display) !important; font-weight: 600 !important;
	color: var(--ink) !important; text-decoration: none !important; letter-spacing: -.01em;
}
.wc-block-components-product-name:hover { color: var(--ice-600) !important; }
.wc-block-components-product-metadata,
.wc-block-components-order-summary-item__description { color: var(--muted); }

/* Prix & montants (chiffres alignés) --------------------------------------- */
.wc-block-components-product-price,
.wc-block-components-order-summary-item__total-price,
.wc-block-components-totals-item__value,
.wc-block-formatted-money-amount,
.wc-block-components-formatted-money-amount {
	font-weight: 700; color: var(--navy);
	font-variant-numeric: tabular-nums;
}

/* Sélecteur de quantité ---------------------------------------------------- */
.wc-block-components-quantity-selector {
	border: 1.5px solid var(--line) !important; border-radius: var(--r-pill) !important;
	background: #fff; overflow: hidden; max-width: 130px;
}
.wc-block-components-quantity-selector__button {
	color: var(--navy) !important; font-size: 1.1rem; transition: background .2s;
}
.wc-block-components-quantity-selector__button:hover { background: var(--frost) !important; }
.wc-block-components-quantity-selector__input {
	font-weight: 700 !important; color: var(--ink); font-variant-numeric: tabular-nums;
}

/* Lien "supprimer" --------------------------------------------------------- */
.wc-block-cart-item__remove-link {
	color: var(--muted-400) !important; text-decoration: none !important;
	font-size: .78rem; transition: color .2s;
}
.wc-block-cart-item__remove-link:hover { color: var(--heat) !important; }

/* Champs de saisie (checkout) ---------------------------------------------- */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select .wc-block-components-select__container,
.wc-block-components-combobox .components-form-token-field__input-container,
.wc-block-components-address-form input,
.wc-block-checkout .components-text-control__input {
	border: 1.5px solid var(--line) !important; border-radius: var(--r-sm) !important;
	background: #fff !important; transition: border-color .2s, box-shadow .2s;
}
.wc-block-components-text-input.is-active input,
.wc-block-components-text-input input:focus,
.wc-block-components-address-form input:focus,
.wc-block-components-select .wc-block-components-select__container:focus-within,
.wc-block-checkout .components-text-control__input:focus {
	border-color: var(--ice) !important;
	box-shadow: 0 0 0 4px var(--ice-050) !important; outline: none !important;
}
.wc-block-components-text-input label,
.wc-block-components-checkout-step__description { color: var(--muted); }
.wc-block-components-text-input.is-active label { color: var(--ice-600) !important; }

/* Cases à cocher & radios -------------------------------------------------- */
.wc-block-components-checkbox__input,
.wc-block-components-radio-control__input { accent-color: var(--ice-600); }

/* BOUTONS ------------------------------------------------------------------ */
.wc-block-components-button.wc-block-components-button {
	border-radius: var(--r-pill) !important;
	font-family: var(--font-body) !important; font-weight: 700 !important;
	transition: transform .18s ease, box-shadow .25s ease, background .2s;
}
/* boutons pleins (contained) → navy */
.wc-block-components-button.contained,
.wc-block-cart__submit-button {
	background: var(--navy) !important; color: #fff !important;
	box-shadow: var(--sh-md);
}
.wc-block-components-button.contained:hover,
.wc-block-cart__submit-button:hover {
	background: var(--navy-700) !important; transform: translateY(-2px); box-shadow: var(--sh-lg);
}
/* CTA principal "Passer commande" → corail (action d'achat).
   Spécificité 0,2,0 pour l'emporter sur .wc-block-components-button.contained. */
.wc-block-components-button.wc-block-components-checkout-place-order-button {
	background: var(--heat) !important; color: #fff !important;
	box-shadow: 0 16px 34px -14px rgba(241,102,58,.55); font-size: var(--step-1) !important;
	padding-block: 1rem !important;
}
.wc-block-components-button.wc-block-components-checkout-place-order-button:hover {
	background: var(--heat-600) !important; transform: translateY(-2px);
}
/* liens-boutons : forcer le texte blanc (fix "Valider la commande" bleu) */
.wc-block-cart__submit-button,
.wc-block-cart__submit-button:visited { color: #fff !important; text-decoration: none !important; }

/* Coupon / panneaux dépliables --------------------------------------------- */
.wc-block-components-panel__button {
	color: var(--navy) !important; font-weight: 600 !important;
}
.wc-block-components-totals-coupon__button { /* bouton "Appliquer" */
	background: var(--navy) !important; color: #fff !important; border-radius: var(--r-pill) !important;
}

/* Carte récapitulative (sidebar) -------------------------------------------
   L'habillage "carte" est posé UNIQUEMENT sur l'élément intérieur
   .wc-block-components-sidebar (présent dans le panier ET la commande),
   jamais sur l'enveloppe — sinon double bordure. */
.wc-block-components-sidebar {
	border: 1px solid var(--line); border-radius: var(--r-md);
	background: var(--frost); padding: var(--space-4);
}
.wc-block-checkout__sidebar,
.wc-block-cart__sidebar { position: sticky; top: calc(var(--header-h) + 12px); }

/* Lignes de totaux --------------------------------------------------------- */
.wc-block-components-totals-item {
	padding-block: .55rem; color: var(--ink);
}
.wc-block-components-totals-footer-item {
	border-top: 1px solid var(--line); margin-top: .5rem; padding-top: .9rem;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
	font-family: var(--font-display); font-size: 1.4rem; color: var(--navy);
}

/* Étape de commande : puce numérotée --------------------------------------- */
.wc-block-components-checkout-step {
	border: 1px solid var(--line); border-radius: var(--r-md);
	background: #fff; padding: var(--space-4) var(--space-4) var(--space-3);
	margin-bottom: var(--space-3);
}
.wc-block-components-checkout-step__title { margin: 0; }

/* Notices dans les blocs --------------------------------------------------- */
.wc-block-components-notice-banner {
	border-radius: var(--r-sm) !important;
}
.wc-block-components-notice-banner.is-error { border-left: 4px solid var(--heat) !important; }
.wc-block-components-notice-banner.is-info  { border-left: 4px solid var(--ice) !important; }

/* Options de livraison & paiement (radios en cartes) ----------------------- */
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
	border: 1px solid var(--line) !important; border-radius: var(--r-sm) !important;
	padding: .9rem 1rem !important; margin-bottom: .5rem; transition: border-color .2s, background .2s;
}
.wc-block-components-radio-control__option:hover { border-color: var(--ice) !important; }
.wc-block-components-radio-control__option--checked {
	border-color: var(--ice) !important; background: var(--ice-050) !important;
}
.wc-block-components-radio-control__label { font-weight: 600; color: var(--ink); }
.wc-block-components-radio-control__input:checked { accent-color: var(--ice-600); }

/* Badge quantité sur la vignette du résumé --------------------------------- */
.wc-block-components-order-summary-item__quantity {
	background: var(--navy) !important; color: #fff !important;
	border: 2px solid #fff !important; font-weight: 700; font-variant-numeric: tabular-nums;
}

/* Champ coupon ------------------------------------------------------------- */
.wc-block-components-totals-coupon__input input,
.wc-block-components-totals-coupon input {
	border: 1.5px solid var(--line) !important; border-radius: var(--r-sm) !important; background: #fff !important;
}
.wc-block-components-totals-coupon__input.is-active input { border-color: var(--ice) !important; box-shadow: 0 0 0 4px var(--ice-050) !important; }

/* Paiement express (Apple Pay / etc.) — séparateur ------------------------- */
.wc-block-components-checkout-express-payment { border-radius: var(--r-md); }
.wc-block-components-checkout-express-payment__title-and-tagline,
.wc-block-components-express-payment-continue-rule { color: var(--muted); }

/* Panier vide -------------------------------------------------------------- */
.wc-block-cart--is-empty .wc-block-components-button.contained { display: inline-flex; margin-top: var(--space-3); }
.is-large.wc-block-cart .wc-block-cart-items { margin-bottom: var(--space-4); }

/* Liens dans les blocs (autres que boutons) -------------------------------- */
.wc-block-checkout a:not(.wc-block-components-button),
.wc-block-cart a:not(.wc-block-components-button):not(.wc-block-components-product-name) {
	color: var(--ice-600);
}
.wc-block-checkout a:not(.wc-block-components-button):hover,
.wc-block-cart a:not(.wc-block-components-button):not(.wc-block-components-product-name):hover { color: var(--navy); }

/* Responsive ----------------------------------------------------------------
   Les blocs gèrent eux-mêmes leur passage en une colonne (classes is-medium /
   is-small) — on se contente de désactiver le sticky. */
@media (max-width: 900px) {
	.wc-block-checkout__sidebar, .wc-block-cart__sidebar { position: static; }
}
