/* ==========================================================================
   ESE — Tunnel de commande : panier, commande, confirmation (blocs WooCommerce).
   Les blocs posent leurs propres styles : les sélecteurs sont donc précis,
   avec !important seulement là où WooCommerce l’impose.
   ========================================================================== */

/* ---------- En-tête + étapes ---------- */
.tunnel-hero { position: relative; isolation: isolate; overflow: hidden; padding: 56px 0 48px; border-bottom: 1px solid var(--ese-bordure); }
.tunnel-hero::before {
	content: "";
	position: absolute;
	inset: 0 0 0 60%;
	z-index: -1;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='2' cy='2' r='1.3' fill='%231F6FB2'/%3E%3C/svg%3E");
	opacity: .16;
}
.tunnel-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; }
.tunnel-hero__title { font-size: clamp(32px, 4vw, 52px); letter-spacing: -.02em; margin-top: 12px; }
.tunnel-hero__lead { font-size: 16.5px; color: var(--ese-texte-2); margin-top: 12px; }

.steps { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 0; }
.steps__item { display: flex; align-items: center; }
.steps__item + .steps__item::before { content: ""; width: 48px; height: 2px; margin: 0 12px; background: var(--ese-bordure-2); }
.steps__item.is-done + .steps__item::before, .steps__item.is-current::before { background: var(--ese-bleu-pro); }
.steps__item > a, .steps__item { color: inherit; text-decoration: none; }
.steps__item > a { display: flex; align-items: center; }
.steps__num {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px solid var(--ese-bordure-2);
	background: #fff;
	color: var(--ese-texte-4);
	font-size: 13px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	transition: background-color var(--dur-sm), border-color var(--dur-sm), color var(--dur-sm);
}
.steps__label { margin-left: 10px; font-size: 13.5px; font-weight: 600; color: var(--ese-texte-3); }
.steps__item.is-current .steps__num { background: var(--ese-bleu-pro); border-color: var(--ese-bleu-pro); color: #fff; box-shadow: 0 0 0 5px var(--ese-bleu-tint); }
.steps__item.is-current .steps__label { color: var(--ese-texte); }
.steps__item.is-done .steps__num { border-color: var(--ese-bleu-pro); color: var(--ese-bleu-pro); }
.steps__item.is-done a:hover .steps__num { background: var(--ese-bleu-tint); }

.tunnel-body { padding-top: 48px; padding-bottom: 48px; }

/* ---------- Panier ---------- */
.wc-block-cart { gap: 32px; }
.wc-block-cart .wc-block-cart-items { border-collapse: separate; border-spacing: 0; }
.wc-block-cart-items__header th { padding: 0 0 14px !important; border-bottom: 1.5px solid var(--ese-texte) !important; }
.wc-block-cart-items__header span { font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--ese-texte-3); }
.wc-block-cart-items__row td { padding-top: 24px !important; padding-bottom: 24px !important; border-bottom: 1px solid var(--ese-bordure) !important; }
.wc-block-cart-item__image img { width: 76px !important; border-radius: 3px 8px 8px 3px; box-shadow: 8px 12px 24px rgba(38, 41, 46, .16); }
.wc-block-cart-item__product .wc-block-components-product-name { font-size: 17px; }
.wc-block-cart-item__product .wc-block-components-product-metadata { font-size: 13.5px; color: var(--ese-texte-3); }
.wc-block-cart-item__prices, .wc-block-cart-item__product .wc-block-components-product-price { font-size: 14px; color: var(--ese-texte-2); }
.wc-block-cart-item__total .wc-block-components-product-price__value { font-size: 17px; font-weight: 700; }
.wc-block-components-quantity-selector {
	border: 1.5px solid var(--ese-bordure-2) !important;
	border-radius: 22px !important;
	overflow: hidden;
	background: #fff;
}
.wc-block-components-quantity-selector::after { display: none !important; }
.wc-block-components-quantity-selector input { font-weight: 700 !important; color: var(--ese-texte) !important; }
.wc-block-components-quantity-selector button { color: var(--ese-bleu-pro) !important; opacity: 1 !important; transition: background-color var(--dur-sm); }
.wc-block-components-quantity-selector button:hover { background: var(--ese-bleu-tint) !important; }
.wc-block-cart-item__remove-link { color: var(--ese-texte-3) !important; font-size: 13px !important; text-decoration: none !important; }
.wc-block-cart-item__remove-link:hover { color: var(--alert-error, #C0392B) !important; }

/* Récapitulatif (panier et commande) : carte collante */
.wc-block-cart__sidebar .wc-block-components-sidebar,
.wc-block-checkout__sidebar {
	background: #fff;
	border: 1px solid var(--ese-bordure);
	border-radius: 20px;
	padding: 28px !important;
	box-shadow: 0 24px 60px rgba(38, 41, 46, .08);
}
.wc-block-cart__sidebar { position: sticky; top: calc(var(--admin-bar) + 96px); align-self: start; }
.wc-block-components-totals-wrapper { border-color: var(--ese-bordure) !important; }
.wc-block-components-totals-item__label { font-size: 14px; color: var(--ese-texte-2); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 15px; font-weight: 700; color: var(--ese-texte); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 28px !important; font-weight: 700; letter-spacing: -.02em; color: var(--ese-texte); }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { width: 100%; min-height: 56px !important; font-size: 15.5px !important; }
.wc-block-cart__submit-button .wc-block-components-button__text::after,
.wc-block-components-checkout-place-order-button .wc-block-components-button__text::after { content: " →"; }
.wc-block-components-panel__button, .wc-block-components-totals-coupon__button { font-weight: 600; }
.wc-block-components-totals-coupon-link, .wc-block-components-panel__button { color: var(--ese-bleu-pro) !important; }

/* Suggestions (ventes croisées) */
.wp-block-woocommerce-cart-cross-sells-block, .wc-block-cart .wp-block-woocommerce-product-collection { margin-top: 40px; }
.wc-block-cart .wp-block-woocommerce-product-collection h2 { font-size: 22px; }

/* ---------- Panier vide ---------- */
.wp-block-woocommerce-empty-cart-block { padding: 40px 0 24px !important; }
.empty-cart__title { font-size: clamp(26px, 3vw, 36px); letter-spacing: -.015em; }
.empty-cart__title::before {
	content: "";
	display: block;
	width: 72px;
	height: 72px;
	margin: 0 auto 24px;
	border-radius: 50%;
	background: var(--ese-bleu-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F6FB2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E") center / 30px no-repeat;
}
.empty-cart__text { font-size: 16.5px; color: var(--ese-texte-2); margin-top: 12px !important; }
.empty-cart__actions { gap: 12px; margin-top: 28px !important; }
.empty-cart__actions .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	padding: 0 28px;
	border-radius: var(--radius-btn);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--dur-sm), color var(--dur-sm), box-shadow var(--dur-sm);
}
.empty-cart__actions .is-primary .wp-block-button__link { background: var(--ese-bleu-pro); color: #fff; }
.empty-cart__actions .is-primary .wp-block-button__link:hover { background: var(--ese-bleu-pro-hover); box-shadow: 0 6px 18px rgba(31, 111, 178, .28); }
.empty-cart__actions .is-outline .wp-block-button__link { border: 1.5px solid var(--ese-bleu-pro); color: var(--ese-bleu-pro); background: transparent; }
.empty-cart__actions .is-outline .wp-block-button__link:hover { background: var(--ese-bleu-tint); }

/* ---------- Commande ---------- */
.wc-block-checkout__form { counter-reset: ese-step; }
.wc-block-components-checkout-step { position: relative; padding: 0 0 8px 56px !important; margin: 0 0 32px !important; border: 0 !important; }
.wc-block-components-checkout-step::after { display: none !important; }
.wc-block-components-checkout-step__heading { margin: 0 0 16px !important; min-height: 40px; display: flex; align-items: center; }
.wc-block-components-checkout-step__title { font-size: 21px !important; font-weight: 700 !important; }
.wc-block-components-checkout-step__title::before {
	counter-increment: ese-step;
	content: counter(ese-step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ese-bleu-pro);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}
/* Fil vertical entre les étapes */
.wc-block-components-checkout-step::before {
	content: "";
	position: absolute;
	left: 19px;
	top: 48px;
	bottom: -24px;
	width: 2px;
	background: var(--ese-bordure);
}
.wc-block-components-checkout-step:last-of-type::before { display: none; }
.wc-block-components-checkout-step__description { font-size: 14px; color: var(--ese-texte-3); }

.wc-block-components-text-input input,
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="text"],
.wc-blocks-components-select .wc-blocks-components-select__select {
	min-height: 54px !important;
	border-radius: 10px !important;
	background: #fff !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label { color: var(--ese-texte-3) !important; }

.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
	border: 1.5px solid var(--ese-bordure-2) !important;
	border-radius: 12px !important;
	background: #fff;
	box-shadow: none !important;
	transition: border-color var(--dur-sm), background-color var(--dur-sm);
}
.wc-block-components-radio-control__option + .wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option + .wc-block-components-radio-control-accordion-option { margin-top: 10px; }
.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border-color: var(--ese-bleu-pro) !important;
	background: var(--ese-bleu-tint) !important;
}
.wc-block-components-radio-control__input:checked { border-color: var(--ese-bleu-pro) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--ese-bleu-pro) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input:checked { background: var(--ese-bleu-pro) !important; border-color: var(--ese-bleu-pro) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff !important; }

.wc-block-checkout__actions_row { gap: 16px; }
.wc-block-components-checkout-return-to-cart-button { color: var(--ese-texte-3) !important; font-weight: 600; text-decoration: none !important; }
.wc-block-components-checkout-return-to-cart-button:hover { color: var(--ese-bleu-pro) !important; }
.wc-block-checkout__terms { font-size: 13px; color: var(--ese-texte-3); }
.wc-block-components-order-summary-item__image img { border-radius: 3px 6px 6px 3px; }
.wc-block-components-order-summary-item__quantity { background: var(--ese-bleu-pro) !important; color: #fff !important; border: 2px solid #fff !important; box-shadow: none !important; }

/* ---------- Confirmation ---------- */
.thanks { max-width: 820px; margin: 0 auto; }
.thanks__card {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 48px;
	border-radius: 24px;
	background: var(--ese-bleu-pro);
	color: #fff;
	text-align: center;
}
.thanks__card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='2' cy='2' r='1.3' fill='%23fff'/%3E%3C/svg%3E");
	opacity: .12;
}
.thanks__card--failed { background: #fff; color: var(--ese-texte); border: 1px solid var(--ese-bordure); }
.thanks__icon {
	width: 72px;
	height: 72px;
	margin: 0 auto 20px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	color: var(--ese-bleu-pro);
	font-size: 34px;
	font-weight: 700;
	animation: ese-pop .7s var(--ease-out) both;
}
.thanks__icon--error { background: #FBEDEB; color: #C0392B; }
@keyframes ese-pop { from { opacity: 0; transform: scale(.6); } }
.thanks__title { font-size: clamp(24px, 3vw, 34px); letter-spacing: -.015em; }
.thanks__text { font-size: 16px; line-height: 1.6; margin: 12px auto 0; max-width: 520px; color: var(--ese-bleu-pale); }
.thanks__card--failed .thanks__text { color: var(--ese-texte-2); }
.thanks__card .btn-row { justify-content: center; }
.thanks__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; margin: 32px 0 0; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .22); text-align: left; }
.thanks__facts dt { font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--ese-bleu-pale); }
.thanks__facts dd { margin: 4px 0 0; font-size: 17px; font-weight: 700; }
.thanks__details { margin-top: 40px; }
.thanks__details h2 { font-size: 21px; margin: 32px 0 14px; }
.thanks__details table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--ese-bordure); border-radius: 16px; overflow: hidden; }
.thanks__details th, .thanks__details td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--ese-bordure); font-size: 14.5px; }
.thanks__details tfoot th, .thanks__details tfoot td { font-weight: 700; }
.thanks__details address { font-style: normal; padding: 18px; background: #fff; border: 1px solid var(--ese-bordure); border-radius: 16px; line-height: 1.7; }
.thanks__details .woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.thanks__details > p { padding: 16px 20px; border-radius: 12px; background: var(--ese-bleu-tint); color: var(--ese-bleu-pro); }
.thanks__next { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 40px; }

/* ---------- Bon à savoir ---------- */
.reassure { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding-top: 8px; padding-bottom: 80px; margin: 0 auto; }
.reassure li { display: flex; align-items: center; gap: 14px; padding: 18px 20px; background: #fff; border: 1px solid var(--ese-bordure); border-radius: var(--radius-card); }
.reassure strong { display: block; font-size: 14.5px; }
.reassure small { display: block; font-size: 12.5px; color: var(--ese-texte-3); margin-top: 2px; }
.reassure a { color: var(--ese-bleu-pro); }

/* ---------- Responsive ---------- */
@media (max-width: 899px) {
	.tunnel-hero { padding: 36px 0 32px; }
	.tunnel-hero__grid { grid-template-columns: 1fr; gap: 24px; }
	.steps__item + .steps__item::before { width: 24px; margin: 0 8px; }
	.wc-block-cart__sidebar { position: static; }
	.reassure { grid-template-columns: 1fr; padding-bottom: 56px; }
	.thanks__card { padding: 32px 24px; }
	.thanks__details .woocommerce-customer-details .woocommerce-columns { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.steps__label { display: none; }
	.steps__item.is-current .steps__label { display: inline; }
	.wc-block-components-checkout-step { padding-left: 0 !important; }
	.wc-block-components-checkout-step__heading { padding-left: 52px; }
	.wc-block-components-checkout-step::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.thanks__icon { animation: none; }
}

/* La pastille numérotée se place par rapport à l’étape, pas au titre (positionné par WooCommerce). */
.wc-block-components-checkout-step__heading,
.wc-block-components-checkout-step__heading-container,
.wc-block-components-checkout-step__title { position: static !important; }

/* ---------- En-tête photo (panier, commande, confirmation) ---------- */
.tunnel-hero--photo {
	padding: 72px 0 64px;
	background: var(--ese-sombre-creatif);
	color: #fff;
	border-bottom: 0;
}
.tunnel-hero--photo::before {
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='2' cy='2' r='1.3' fill='%23fff'/%3E%3C/svg%3E");
	opacity: .08;
}
.tunnel-hero--photo .zone-bg { opacity: .22; background-position: center 40%; }
.tunnel-hero--photo .eyebrow { color: var(--ese-azur); }
.tunnel-hero--photo .tunnel-hero__title { color: #fff; }
.tunnel-hero--photo .tunnel-hero__lead { color: var(--ese-gris-dark-text); max-width: 560px; }
.tunnel-hero__count {
	display: inline-block;
	margin-right: 8px;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--ese-azur);
	color: var(--ese-sombre-creatif);
	font-size: 13px;
	font-weight: 700;
	vertical-align: 1px;
}
.tunnel-hero--photo .steps__item + .steps__item::before { background: rgba(255, 255, 255, .2); }
.tunnel-hero--photo .steps__item.is-done + .steps__item::before,
.tunnel-hero--photo .steps__item.is-current::before { background: var(--ese-azur); }
.tunnel-hero--photo .steps__num { background: transparent; border-color: rgba(255, 255, 255, .28); color: var(--ese-gris-clair); }
.tunnel-hero--photo .steps__label { color: var(--ese-gris-clair); }
.tunnel-hero--photo .steps__item.is-current .steps__num { background: var(--ese-azur); border-color: var(--ese-azur); color: var(--ese-sombre-creatif); box-shadow: 0 0 0 5px rgba(89, 183, 232, .18); }
.tunnel-hero--photo .steps__item.is-current .steps__label { color: #fff; }
.tunnel-hero--photo .steps__item.is-done .steps__num { border-color: var(--ese-azur); color: var(--ese-azur); }
.tunnel-hero--photo .steps__item.is-done a:hover .steps__num { background: rgba(89, 183, 232, .14); }
.tunnel-hero--photo .steps__item a:focus-visible { outline: 2px solid var(--ese-azur); outline-offset: 4px; border-radius: 999px; }

/* ---------- Suggestions sous le panier ---------- */
.cart-suggest { margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--ese-bordure); }
.cart-suggest .shop-grid { margin-top: 28px; }

@media (max-width: 760px) {
	.tunnel-hero--photo { padding: 44px 0 36px; }
	.cart-suggest { margin-top: 40px; padding-top: 32px; }
}
@media (min-width: 768px) and (max-width: 1199px) {
	.cart-suggest .shop-grid > :nth-child(3) { display: none; }
}

/* ==========================================================================
   Commande : chaque étape devient une carte numérotée qui s’éclaire au remplissage.
   ========================================================================== */
.woocommerce-checkout .tunnel-body { padding-top: 8px; }
.woocommerce-checkout .wc-block-components-checkout-step {
	padding: 28px 32px 24px 92px !important;
	margin: 0 0 16px !important;
	background: #fff;
	border: 1px solid var(--ese-bordure) !important;
	border-radius: 20px;
	box-shadow: 0 1px 0 rgba(38, 41, 46, .03);
	transition: border-color var(--dur-sm) var(--ease-std), box-shadow var(--dur-md) var(--ease-out);
}
/* Le fil vertical laisse place aux cartes. */
.woocommerce-checkout .wc-block-components-checkout-step::before { display: none; }
.woocommerce-checkout .wc-block-components-checkout-step__title::before { left: 32px; top: 28px; transition: box-shadow var(--dur-sm), background-color var(--dur-sm); }
.woocommerce-checkout .wc-block-components-checkout-step:focus-within {
	border-color: var(--ese-bleu-pro) !important;
	box-shadow: 0 18px 48px rgba(31, 111, 178, .10);
}
.woocommerce-checkout .wc-block-components-checkout-step:focus-within .wc-block-components-checkout-step__title::before { box-shadow: 0 0 0 6px var(--ese-bleu-tint); }

/* Note, conditions et bouton : alignés sur les cartes. */
.woocommerce-checkout .wc-block-checkout__order-notes,
.woocommerce-checkout .wc-block-checkout__terms { padding-left: 4px; }
.woocommerce-checkout .wc-block-checkout__terms { border-top: 0 !important; margin-top: 8px !important; padding-top: 0 !important; }
.woocommerce-checkout .wc-block-checkout__actions { margin-top: 8px; }
.wc-block-components-checkout-place-order-button .wc-block-components-button__text { display: inline-flex !important; align-items: center; gap: .35em; }
.wc-block-components-checkout-place-order-button__text { display: inline !important; }
.wc-block-components-checkout-place-order-button { border-radius: 14px !important; box-shadow: 0 14px 32px rgba(31, 111, 178, .25); transition: transform var(--dur-sm) var(--ease-out), box-shadow var(--dur-sm) !important; }
.wc-block-components-checkout-place-order-button:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(31, 111, 178, .32); }

/* Récapitulatif collant + encadré de confiance */
.woocommerce-checkout .wc-block-checkout__sidebar { top: calc(var(--admin-bar) + 96px) !important; }
.checkout-aside {
	margin-top: 24px;
	padding: 20px 20px 18px;
	border-radius: 16px;
	background: var(--ese-sombre-creatif);
	color: var(--ese-gris-dark-text);
	font-size: 13.5px;
	line-height: 1.5;
}
.checkout-aside__title { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: #fff; font-weight: 700; font-size: 14.5px; }
.checkout-aside__title svg { color: var(--ese-azur); }
.checkout-aside ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.checkout-aside li { display: grid; grid-template-columns: 28px 1fr; gap: 8px; align-items: start; }
.checkout-aside li span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: rgba(89, 183, 232, .14); color: var(--ese-azur); }
.checkout-aside__link { display: inline-block; margin-top: 14px; color: var(--ese-azur); font-weight: 600; text-decoration: none; }
.checkout-aside__link:hover { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 760px) {
	.woocommerce-checkout .wc-block-components-checkout-step { padding: 20px 18px 16px !important; }
	.woocommerce-checkout .wc-block-components-checkout-step__heading { padding-left: 52px; }
	.woocommerce-checkout .wc-block-components-checkout-step__title::before { left: 18px; top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
	.wc-block-components-checkout-place-order-button:hover { transform: none; }
}
/* Récapitulatif mobile : pas de numéro d’étape. */
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-step__title::before { content: none; counter-increment: none; }
.wc-block-checkout__actions + .checkout-aside { margin-top: 20px; }

/* ==========================================================================
   Confirmation : deux colonnes, coche qui se dessine, étapes suivantes, récapitulatif.
   ========================================================================== */
.thanks:has(.thanks__grid) { max-width: none; }
.thanks__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: 32px; align-items: start; }
.thanks__main { display: grid; gap: 20px; }
.thanks__grid .thanks__card { text-align: left; padding: 44px 44px 36px; }
.thanks__grid .thanks__text { margin-left: 0; }
.thanks__text strong { color: #fff; }
.thanks__card--solo { max-width: 720px; margin: 0 auto; }

/* Coche : le cercle puis le trait se dessinent. */
.thanks__check { display: block; width: 64px; height: 64px; margin: 0 0 22px; }
.thanks__card--solo .thanks__check { margin-inline: auto; }
.thanks__check circle, .thanks__check path {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
}
.thanks__check circle { stroke: rgba(255, 255, 255, .9); stroke-width: 2.5; animation: ese-draw 700ms cubic-bezier(.6, 0, .2, 1) 150ms forwards; }
.thanks__check path { stroke: #fff; stroke-width: 4; animation: ese-draw 450ms cubic-bezier(.6, 0, .2, 1) 750ms forwards; }
.thanks__card::after {
	content: "";
	position: absolute;
	right: -60px;
	top: -60px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, .14);
	box-shadow: 0 0 0 28px rgba(255, 255, 255, .04), 0 0 0 56px rgba(255, 255, 255, .03);
	z-index: -1;
}
.thanks__card--failed::after { display: none; }

/* Panneaux blancs (téléchargements, étapes) */
.thanks__panel { padding: 28px 32px; background: #fff; border: 1px solid var(--ese-bordure); border-radius: 20px; }
.thanks__h { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 19px; letter-spacing: -.01em; }
.thanks__h svg { color: var(--ese-bleu-pro); }
.thanks__downloads { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.thanks__downloads li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-radius: 14px; background: var(--ese-bleu-tint); }
.thanks__downloads strong { display: block; font-size: 15px; }
.thanks__downloads small { display: block; font-size: 12.5px; color: var(--ese-texte-3); margin-top: 2px; }
.thanks__note { margin: 12px 0 0; font-size: 13px; color: var(--ese-texte-3); }
.thanks__steps { list-style: none; counter-reset: ese-next; margin: 0; padding: 0; display: grid; gap: 0; }
.thanks__steps li { position: relative; display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: center; padding: 10px 0; font-size: 15px; line-height: 1.5; color: var(--ese-texte-2); }
.thanks__steps li + li::before { content: ""; position: absolute; left: 19px; top: -10px; height: 20px; width: 2px; background: var(--ese-bordure); }
.thanks__steps .tile-icon { width: 40px; height: 40px; }

/* Récapitulatif (colonne collante) */
.thanks__side { position: sticky; top: calc(var(--admin-bar) + 96px); display: grid; gap: 0; }
.thanks__summary { padding: 28px; background: #fff; border: 1px solid var(--ese-bordure); border-radius: 20px; box-shadow: 0 24px 60px rgba(38, 41, 46, .08); }
.thanks__items { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 14px; }
.thanks__items li { display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center; }
.thanks__cover .cover { width: 52px; font-size: 5px; border-radius: 4px; box-shadow: 0 6px 14px rgba(38, 41, 46, .16); }
.thanks__cover .cover__author, .thanks__cover .cover__top { display: none; }
.thanks__item strong { display: block; font-size: 14.5px; line-height: 1.35; }
.thanks__item small { display: block; font-size: 12.5px; color: var(--ese-texte-3); margin-top: 2px; }
.thanks__price { font-size: 14px; font-weight: 600; white-space: nowrap; }
.thanks__totals { margin: 0; padding-top: 14px; border-top: 1px solid var(--ese-bordure); display: grid; gap: 8px; }
.thanks__totals div { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--ese-texte-2); }
.thanks__totals dd { margin: 0; }
.thanks__totals .is-total { margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--ese-bordure); color: var(--ese-texte); font-weight: 700; }
.thanks__totals .is-total dd { font-size: 24px; letter-spacing: -.02em; }
.thanks__address { margin-top: 18px; padding: 14px 16px; border-radius: 14px; background: var(--ese-surface); font-size: 13.5px; line-height: 1.6; }
.thanks__address small { display: block; font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--ese-texte-3); margin-bottom: 4px; }
.thanks__address address { font-style: normal; }
.checkout-aside__text { margin: 0; }
.thanks__details:empty { display: none; }
.thanks__details { margin-top: 0; }
.thanks__next { margin-top: 32px; }
.woocommerce-order-received .cart-suggest { padding-inline: 0; }

/* Détail protégé : carte + formulaire WooCommerce */
.thanks--locked + .woocommerce-info,
.thanks--locked ~ .woocommerce-form-login,
.thanks--locked ~ form { max-width: 720px; margin: 20px auto 0 !important; }
.thanks--locked ~ .woocommerce-form-login,
.thanks--locked ~ form { padding: 28px 32px; background: #fff; border: 1px solid var(--ese-bordure) !important; border-radius: 20px; }

@media (max-width: 960px) {
	.thanks__grid { grid-template-columns: 1fr; }
	.thanks__side { position: static; }
}
@media (max-width: 600px) {
	.thanks__grid .thanks__card { padding: 32px 24px 28px; }
	.thanks__panel, .thanks__summary { padding: 22px 20px; }
	.thanks__downloads li { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	.thanks__check circle, .thanks__check path { animation: none; stroke-dashoffset: 0; }
}
