/* =========================================================
   Tunnel WooCommerce Maintenance WP
   Panier, commande et confirmation
   Charte reprise de /maintenance-wordpress/
   A placer dans : themes/maintenance-wp-2/assets/css/mwp-woocommerce.css
   ========================================================= */

:root {
	--mwp-ground: #f1f5f9;
	--mwp-surface: #ffffff;
	--mwp-surface-2: #f8fafc;
	--mwp-ink: #0b1a26;
	--mwp-ink-2: #3d4b59;
	--mwp-muted: #6b7885;
	--mwp-line: #e2e9f0;
	--mwp-line-soft: #edf2f7;
	--mwp-coral: #e8594f;
	--mwp-coral-strong: #e8472f;
	--mwp-coral-tint: rgba(232, 89, 79, 0.1);
	--mwp-navy: #061620;
	--mwp-navy-2: #0d2231;
	--mwp-indigo: #5b4dd1;
	--mwp-indigo-tint: #eeebfb;
	--mwp-indigo-line: #cfc7f5;
	--mwp-green: #15803d;
	--mwp-green-tint: #e6f5ec;
	--mwp-shadow-sm: 0 1px 2px rgba(6, 22, 32, 0.05), 0 1px 12px rgba(6, 22, 32, 0.04);
	--mwp-shadow-md: 0 4px 24px rgba(6, 22, 32, 0.08);
	--mwp-display: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* =========================================================
   PANIER
   ========================================================= */

.mwp-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 372px;
	gap: 28px;
	align-items: start;
	padding: 34px 0 60px;
	color: var(--mwp-ink);
}

@media (max-width: 1024px) {
	.mwp-cart { grid-template-columns: 1fr; padding-top: 24px; }
}

/* On neutralise le tableau WooCommerce par defaut sur cette page */
.woocommerce-cart .mwp-cart table.shop_table.cart,
.woocommerce-cart .mwp-cart .cart_totals > h2:first-child:not(.mwp-card__head h2) { }

/* ---------- Titre de section ---------- */
.mwp-sec-label {
	font-family: var(--mwp-display);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--mwp-muted);
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
}
.mwp-sec-label::after { content: ""; flex: 1; height: 1px; background: var(--mwp-line); }

/* ---------- Liste d'articles ---------- */
.mwp-items { display: flex; flex-direction: column; gap: 10px; }

.mwp-item {
	background: var(--mwp-surface);
	border: 1px solid var(--mwp-line);
	border-radius: 12px;
	box-shadow: var(--mwp-shadow-sm);
	padding: 18px 46px 18px 20px;
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) auto;
	gap: 18px;
	align-items: start;
	position: relative;
}

.mwp-item__icon .mwp-icon {
	width: 46px;
	height: 46px;
	border-radius: 10px;
	background: var(--mwp-coral-tint);
	display: grid;
	place-items: center;
	color: var(--mwp-coral-strong);
}
.mwp-item__icon .mwp-icon.is-alt { background: var(--mwp-indigo-tint); color: var(--mwp-indigo); }
.mwp-item__icon svg {
	width: 22px; height: 22px;
	stroke: currentColor; fill: none;
	stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}

.mwp-item__title {
	font-family: var(--mwp-display);
	font-size: 16.5px;
	line-height: 1.3;
	font-weight: 700;
	margin: 0;
	color: var(--mwp-ink);
}
.mwp-item__title a { color: inherit; text-decoration: none; }
.mwp-item__title a:hover { color: var(--mwp-coral-strong); }

.mwp-item__meta { font-size: 13.5px; color: var(--mwp-muted); margin-top: 3px; line-height: 1.45; }
.mwp-item__data { font-size: 13px; color: var(--mwp-muted); margin-top: 6px; }
.mwp-item__data p { margin: 0; }
.mwp-item__warn { margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--mwp-coral-strong); }

.mwp-item__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.mwp-tag {
	font-size: 11.5px; font-weight: 600; letter-spacing: 0.03em;
	padding: 3.5px 9px; border-radius: 100px;
	border: 1px solid var(--mwp-line);
	color: var(--mwp-ink-2); background: var(--mwp-surface-2);
	white-space: nowrap;
}
.mwp-tag.is-recur { background: var(--mwp-coral-tint); border-color: transparent; color: var(--mwp-coral-strong); }
.mwp-tag.is-trial { background: var(--mwp-green-tint); border-color: transparent; color: var(--mwp-green); }
.mwp-tag.is-fee { background: #fff7ed; border-color: transparent; color: #c2410c; }

.mwp-item__right {
	text-align: right;
	display: flex; flex-direction: column; align-items: flex-end;
	gap: 12px; min-width: 155px;
}
.mwp-item__price {
	font-family: var(--mwp-display);
	font-weight: 800; font-size: 20px;
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
	line-height: 1.25;
	color: var(--mwp-ink);
}
/* Le suffixe " / mois" injecte par WooCommerce Subscriptions */
.mwp-item__price .subscription-details,
.mwp-item__price small,
.mwp-item__price .woocommerce-Price-currencySymbol + .subscription-details {
	display: block;
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--mwp-muted);
	letter-spacing: 0;
}
.mwp-item__subtotal { font-size: 12.5px; color: var(--mwp-muted); font-variant-numeric: tabular-nums; }

/* Selecteur de quantite */
.mwp-item__qty .quantity {
	display: inline-flex; align-items: center;
	border: 1px solid var(--mwp-line);
	border-radius: 8px; overflow: hidden;
	background: var(--mwp-surface);
	margin: 0;
}
.mwp-item__qty .quantity input.qty {
	width: 44px; height: 32px;
	border: 0; background: transparent;
	text-align: center; font-size: 14px; font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--mwp-ink);
	-moz-appearance: textfield;
	padding: 0; margin: 0; box-shadow: none;
}
.mwp-item__qty .quantity input.qty::-webkit-outer-spin-button,
.mwp-item__qty .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.mwp-qty-btn {
	width: 30px; height: 32px;
	border: 0; background: transparent;
	color: var(--mwp-ink-2);
	font-size: 16px; line-height: 1;
	display: grid; place-items: center; cursor: pointer;
	padding: 0;
}
.mwp-qty-btn:hover { background: var(--mwp-surface-2); color: var(--mwp-coral-strong); }

.mwp-item__remove {
	position: absolute; top: 12px; right: 12px;
	width: 26px; height: 26px;
	border: 0; background: transparent;
	border-radius: 6px; color: var(--mwp-muted);
	display: grid; place-items: center;
	text-decoration: none;
}
.mwp-item__remove:hover { background: var(--mwp-coral-tint); color: var(--mwp-coral-strong); }
.mwp-item__remove svg { width: 13px; height: 13px; stroke: currentColor; stroke-width: 2.2; fill: none; stroke-linecap: round; }

@media (max-width: 640px) {
	.mwp-item { grid-template-columns: 40px minmax(0, 1fr); row-gap: 14px; padding-right: 46px; }
	.mwp-item__icon .mwp-icon { width: 40px; height: 40px; }
	.mwp-item__right {
		grid-column: 1 / -1;
		flex-direction: row; align-items: center; justify-content: space-between;
		width: 100%; min-width: 0; text-align: left;
	}
}

/* ---------- Upsell firewall ---------- */
.mwp-upsell {
	margin-top: 26px;
	border: 1.5px solid var(--mwp-indigo-line);
	background: var(--mwp-indigo-tint);
	border-radius: 14px;
	padding: 22px 22px 20px;
	position: relative;
}
.mwp-upsell__badge {
	position: absolute; top: -12px; left: 22px;
	background: var(--mwp-indigo); color: #fff;
	font-family: var(--mwp-display);
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.1em; text-transform: uppercase;
	padding: 5px 12px; border-radius: 100px;
}
.mwp-upsell__grid { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 24px; align-items: center; }
@media (max-width: 780px) { .mwp-upsell__grid { grid-template-columns: 1fr; gap: 18px; } }

.mwp-upsell h3 {
	font-family: var(--mwp-display);
	font-size: 19px; font-weight: 700; margin: 0;
	display: flex; align-items: center; gap: 10px;
	color: var(--mwp-ink);
}
.mwp-upsell h3 svg {
	width: 20px; height: 20px; flex: none;
	stroke: var(--mwp-indigo); fill: none;
	stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.mwp-upsell p { margin: 7px 0 0; font-size: 14.5px; color: var(--mwp-ink-2); max-width: 62ch; }
.mwp-upsell ul {
	list-style: none; margin: 14px 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
	gap: 9px 22px;
}
.mwp-upsell li {
	font-size: 14px; line-height: 1.45; color: var(--mwp-ink-2);
	display: flex; gap: 9px; align-items: flex-start; margin: 0;
}
.mwp-upsell li strong { color: var(--mwp-ink); font-weight: 600; }
.mwp-upsell li::before {
	content: ""; flex: none;
	width: 15px; height: 15px; margin-top: 4px;
	background: var(--mwp-indigo);
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center / 12px no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center / 12px no-repeat;
}

.mwp-upsell__cta {
	text-align: center; background: var(--mwp-surface);
	border-radius: 12px; padding: 16px 14px;
	border: 1px solid var(--mwp-indigo-line);
}
.mwp-upsell__price {
	font-family: var(--mwp-display);
	font-size: 25px; font-weight: 800;
	letter-spacing: -0.02em; line-height: 1.15;
	font-variant-numeric: tabular-nums;
	color: var(--mwp-ink);
	margin-bottom: 4px;
}
.mwp-upsell__price .subscription-details,
.mwp-upsell__price small {
	display: block; font-size: 12.5px; font-weight: 500;
	color: var(--mwp-muted); letter-spacing: 0; margin-top: 2px;
}
.mwp-btn-indigo {
	display: block; width: 100%;
	background: var(--mwp-indigo); color: #fff;
	border: 0; border-radius: 9px;
	padding: 11px 14px;
	font-family: var(--mwp-display); font-weight: 700; font-size: 14.5px;
	text-align: center; text-decoration: none;
	transition: filter 0.15s;
	margin-top: 10px;
}
.mwp-btn-indigo:hover { filter: brightness(1.08); color: #fff; }
.mwp-btn-indigo.is-loading { opacity: 0.65; pointer-events: none; }
.mwp-upsell__note { font-size: 12.5px; color: var(--mwp-muted); margin-top: 10px; }

/* ---------- Actions : code promo + mise a jour ---------- */
.mwp-cart__actions {
	margin-top: 22px;
	display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
}
.mwp-coupon {
	flex: 1 1 380px;
	background: var(--mwp-surface);
	border: 1px solid var(--mwp-line);
	border-radius: 12px;
	padding: 12px 16px;
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	box-shadow: var(--mwp-shadow-sm);
}
.mwp-coupon label {
	font-size: 14px; font-weight: 600; color: var(--mwp-ink-2);
	display: flex; align-items: center; gap: 9px; margin: 0;
}
.mwp-coupon label svg { width: 16px; height: 16px; stroke: var(--mwp-coral-strong); fill: none; stroke-width: 1.8; }
.mwp-coupon input.input-text {
	flex: 1; min-width: 140px;
	border: 1px solid var(--mwp-line);
	background: var(--mwp-surface-2);
	border-radius: 8px; padding: 9px 12px;
	font-size: 14px; color: var(--mwp-ink);
	box-shadow: none;
}
.mwp-coupon input.input-text:focus { outline: 2px solid var(--mwp-coral); outline-offset: 1px; }

.mwp-btn-ghost,
.mwp-btn-update {
	border: 1px solid var(--mwp-line);
	background: var(--mwp-surface);
	color: var(--mwp-ink-2);
	border-radius: 8px;
	padding: 10px 18px;
	font-weight: 600; font-size: 14px;
	cursor: pointer;
	transition: border-color 0.15s, color 0.15s;
}
.mwp-btn-ghost:hover,
.mwp-btn-update:hover:not(:disabled) { border-color: var(--mwp-coral); color: var(--mwp-coral-strong); background: var(--mwp-surface); }
.mwp-btn-update:disabled { opacity: 0.45; cursor: default; }

.mwp-backlink {
	display: inline-flex; align-items: center; gap: 8px;
	margin-top: 18px; font-size: 14px; color: var(--mwp-muted);
	text-decoration: none;
}
.mwp-backlink:hover { color: var(--mwp-coral-strong); }

/* ---------- Colonne recapitulatif ---------- */
.mwp-cart__aside { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 14px; }
@media (max-width: 1024px) { .mwp-cart__aside { position: static; } }

.mwp-card {
	background: var(--mwp-surface);
	border: 1px solid var(--mwp-line);
	border-radius: 14px;
	box-shadow: var(--mwp-shadow-md);
	overflow: hidden;
	width: 100%;
	float: none;
}
.mwp-card__head { padding: 16px 20px; border-bottom: 1px solid var(--mwp-line-soft); }
.mwp-card__head h2 { font-family: var(--mwp-display); font-size: 17px; font-weight: 700; margin: 0; color: var(--mwp-ink); }
.mwp-card__body { padding: 12px 20px 16px; }

.mwp-totals { width: 100%; border: 0; margin: 0; border-collapse: collapse; }
.mwp-totals th,
.mwp-totals td {
	border: 0; padding: 7px 0;
	font-size: 14.5px; font-weight: 400;
	color: var(--mwp-ink-2); text-align: left; vertical-align: baseline;
}
.mwp-totals td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--mwp-ink); }

.mwp-totals tr.mwp-total-row th,
.mwp-totals tr.mwp-total-row td {
	border-top: 1px solid var(--mwp-line);
	padding-top: 14px;
	font-family: var(--mwp-display);
	font-weight: 700; color: var(--mwp-ink);
}
.mwp-totals tr.mwp-total-row td { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; }
.mwp-total-sub {
	display: block;
	font-family: inherit; font-weight: 500; font-size: 13px;
	color: var(--mwp-muted); letter-spacing: 0;
}

/* Bloc "Puis, automatiquement" */
.mwp-totals tr.mwp-recur-heading th {
	padding: 18px 0 6px;
	font-family: var(--mwp-display);
	font-size: 11.5px; font-weight: 700;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--mwp-muted);
	border-top: 1px solid var(--mwp-line-soft);
}
/* Le libelle "Totaux recurrents" du plugin fait doublon */
.mwp-totals tr.recurring-totals { display: none; }
.mwp-totals tr.recurring-total th,
.mwp-totals tr.recurring-total td,
.mwp-totals tr.recurring-tax-total th,
.mwp-totals tr.recurring-tax-total td { font-size: 14px; padding: 5px 0; }
.mwp-totals .first-payment-date,
.mwp-totals .subscription-details {
	display: block;
	font-size: 12.5px; font-weight: 400;
	color: var(--mwp-muted); margin-top: 2px;
}
.mwp-totals .first-payment-date small { font-size: inherit; }

.mwp-today-note { font-size: 12.5px; color: var(--mwp-muted); margin: 8px 0 0; }

/* Bouton commander */
.mwp-checkout-zone { padding: 16px 20px 20px; border-top: 1px solid var(--mwp-line-soft); margin: 0; }
.mwp-checkout-zone .checkout-button,
.mwp-checkout-zone a.button.checkout-button {
	display: block; width: 100%;
	background: var(--mwp-coral); color: #fff;
	border: 0; border-radius: 10px;
	padding: 15px 18px;
	font-family: var(--mwp-display); font-weight: 700; font-size: 16px;
	letter-spacing: 0.01em; text-align: center; text-decoration: none;
	box-shadow: 0 6px 18px var(--mwp-coral-tint);
	transition: transform 0.12s, filter 0.15s;
	margin: 0;
}
.mwp-checkout-zone .checkout-button:hover { filter: brightness(1.05); transform: translateY(-1px); color: #fff; }
.mwp-pay-note { font-size: 12.5px; color: var(--mwp-muted); text-align: center; margin: 11px 0 0; line-height: 1.5; }

.mwp-reviews {
	display: flex; align-items: center; gap: 10px;
	font-size: 13.5px; color: var(--mwp-ink-2);
	padding: 13px 20px;
	border-top: 1px solid var(--mwp-line-soft);
	background: var(--mwp-surface-2);
}
.mwp-stars { color: #f5a623; letter-spacing: 1px; font-size: 13px; }

/* Reassurance */
.mwp-trust ul { list-style: none; margin: 0; padding: 16px 20px; display: flex; flex-direction: column; gap: 9px; }
.mwp-trust li { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--mwp-ink-2); margin: 0; }
.mwp-trust svg {
	width: 16px; height: 16px; flex: none; margin-top: 2px;
	stroke: var(--mwp-coral-strong); fill: none;
	stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round;
}

/* ---------- Divers ---------- */
.woocommerce-cart .mwp-cart .woocommerce-message,
.woocommerce-cart .mwp-cart .woocommerce-error { border-radius: 10px; }

.mwp-cart :focus-visible { outline: 2px solid var(--mwp-coral); outline-offset: 2px; border-radius: 4px; }

@media (prefers-reduced-motion: reduce) {
	.mwp-cart * { transition: none !important; animation: none !important; }
}

/* =========================================================
   TUNNEL DE COMMANDE
   ========================================================= */

.mwp-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 408px;
	gap: 26px;
	align-items: start;
	padding: 32px 0 60px;
	color: var(--mwp-ink);
}
@media (max-width: 1024px) { .mwp-checkout { grid-template-columns: 1fr; padding-top: 22px; } }

.mwp-checkout__main { margin: 0; }
.mwp-checkout__aside { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 14px; }
@media (max-width: 1024px) { .mwp-checkout__aside { position: static; } }

/* ---------- Cartes de formulaire ---------- */
.mwp-checkout__main .mwp-card + .mwp-card,
.mwp-thanks__col .mwp-card + .mwp-card { margin-top: 14px; }

.mwp-card__head .mwp-step-n {
	width: 26px; height: 26px; flex: none;
	border-radius: 50%;
	background: var(--mwp-coral-tint); color: var(--mwp-coral-strong);
	display: grid; place-items: center;
	font-family: var(--mwp-display); font-weight: 800; font-size: 13px;
}
.mwp-card__head h2 { font-family: var(--mwp-display); font-size: 17px; font-weight: 700; margin: 0; color: var(--mwp-ink); }
.mwp-card__hint { margin-left: auto; font-size: 13px; color: var(--mwp-muted); }

/* ---------- Champs ---------- */
.mwp-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
@media (max-width: 620px) { .mwp-grid2 { grid-template-columns: 1fr; } }

.mwp-grid2 .form-row {
	display: flex; flex-direction: column; gap: 6px;
	margin: 0; padding: 0; width: auto; float: none;
}
/* Largeurs pilotees depuis PHP par mwp_field_layout() */
.mwp-grid2 .mwp-col-6 { grid-column: span 1; }
.mwp-grid2 .mwp-col-12 { grid-column: 1 / -1; }

.mwp-grid2 label {
	font-size: 13.5px; font-weight: 600; color: var(--mwp-ink-2);
	margin: 0; line-height: 1.35;
}
.mwp-grid2 label .required { color: var(--mwp-coral-strong); text-decoration: none; border: 0; }
.mwp-grid2 label .optional { font-weight: 400; color: var(--mwp-muted); }

.mwp-grid2 input[type="text"],
.mwp-grid2 input[type="tel"],
.mwp-grid2 input[type="email"],
.mwp-grid2 input[type="password"],
.mwp-grid2 input[type="url"],
.mwp-grid2 select,
.mwp-grid2 textarea,
.mwp-grid2 .select2-container .select2-selection--single {
	border: 1px solid var(--mwp-line);
	background: var(--mwp-surface-2);
	border-radius: 9px;
	padding: 11px 13px;
	font-size: 15px;
	color: var(--mwp-ink);
	width: 100%;
	height: auto;
	box-shadow: none;
	line-height: 1.4;
}
.mwp-grid2 textarea { min-height: 92px; resize: vertical; }
.mwp-grid2 input::placeholder,
.mwp-grid2 textarea::placeholder { color: var(--mwp-muted); }
.mwp-grid2 input:focus,
.mwp-grid2 select:focus,
.mwp-grid2 textarea:focus { outline: 2px solid var(--mwp-coral); outline-offset: 1px; background: var(--mwp-surface); }

.mwp-grid2 .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: 0; color: var(--mwp-ink); }
.mwp-grid2 .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 8px; }

.mwp-grid2 .woocommerce-input-wrapper { width: 100%; }
.mwp-grid2 .description { font-size: 12.5px; color: var(--mwp-muted); }

.mwp-notes, .mwp-shipping, .mwp-account { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--mwp-line-soft); }
.mwp-notes h3, .mwp-shipping h3, .mwp-account h3 {
	font-family: var(--mwp-display); font-size: 15px; font-weight: 700;
	margin: 0 0 12px; color: var(--mwp-ink);
}

/* ---------- Paiement ---------- */
.mwp-pay__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }

.mwp-pay__opt {
	border: 1.5px solid var(--mwp-line);
	border-radius: 11px;
	background: var(--mwp-surface);
	padding: 0;
	transition: border-color 0.15s, background 0.15s;
	list-style: none;
	overflow: hidden;
}
.mwp-pay__opt:hover { border-color: var(--mwp-indigo-line); }
.mwp-pay__opt.is-on { border-color: var(--mwp-coral); background: var(--mwp-coral-tint); }

.mwp-pay__opt > input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.mwp-pay__opt > label {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 16px; margin: 0; cursor: pointer;
	font-weight: 600; font-size: 15px; color: var(--mwp-ink);
}
.mwp-pay__opt > label::before {
	content: ""; flex: none;
	width: 18px; height: 18px; border-radius: 50%;
	border: 1.8px solid var(--mwp-line); background: var(--mwp-surface);
	box-shadow: inset 0 0 0 4px var(--mwp-surface);
}
.mwp-pay__opt.is-on > label::before { border-color: var(--mwp-coral-strong); background: var(--mwp-coral-strong); }

.mwp-pay__logo { margin-left: auto; display: inline-flex; align-items: center; }
.mwp-pay__logo img { max-height: 26px; width: auto; max-width: 120px; margin: 0; display: block; }

.mwp-pay__box {
	padding: 0 16px 16px 46px;
	font-size: 14px; color: var(--mwp-ink-2);
	background: transparent; border: 0; border-radius: 0; margin: 0;
}
.mwp-pay__box::before { display: none; }
.mwp-pay__box p:last-child { margin-bottom: 0; }
@media (max-width: 560px) { .mwp-pay__box { padding-left: 16px; } }

.mwp-pay__empty { border-radius: 11px; }

/* CGV et bouton */
.mwp-pay__submit { margin: 18px 0 0; padding: 18px 0 0; border-top: 1px solid var(--mwp-line-soft); }
.mwp-pay__submit .woocommerce-terms-and-conditions-wrapper { margin-bottom: 16px; }
.mwp-pay__submit .woocommerce-privacy-policy-text p { font-size: 12.5px; color: var(--mwp-muted); line-height: 1.5; }
.mwp-pay__submit .woocommerce-privacy-policy-text a { color: var(--mwp-coral-strong); }

.mwp-pay__submit .form-row,
.mwp-pay__submit .woocommerce-form__label-for-checkbox {
	display: flex; gap: 11px; align-items: flex-start;
	font-size: 14px; color: var(--mwp-ink-2); margin: 0 0 10px;
}
.mwp-pay__submit .woocommerce-form__input-checkbox { margin: 3px 0 0; width: 17px; height: 17px; accent-color: var(--mwp-coral); flex: none; }
.mwp-pay__submit .woocommerce-terms-and-conditions-checkbox-text a { color: var(--mwp-coral-strong); }

.mwp-btn-primary,
.mwp-pay__submit #place_order {
	display: block; width: 100%;
	background: var(--mwp-coral); color: #fff;
	border: 0; border-radius: 10px;
	padding: 16px 18px;
	font-family: var(--mwp-display); font-weight: 700; font-size: 16px;
	letter-spacing: 0.01em; text-align: center;
	box-shadow: 0 6px 18px var(--mwp-coral-tint);
	transition: transform 0.12s, filter 0.15s;
	margin: 0;
	cursor: pointer;
	float: none;
}
.mwp-pay__submit #place_order:hover { filter: brightness(1.05); transform: translateY(-1px); color: #fff; }

.mwp-pay__sub { text-align: center; font-size: 12.5px; color: var(--mwp-muted); margin: 10px 0 0; line-height: 1.45; }
.mwp-pay__secure {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	font-size: 12.5px; color: var(--mwp-muted); margin: 8px 0 0;
}
.mwp-pay__secure svg { width: 14px; height: 14px; stroke: var(--mwp-green); fill: none; stroke-width: 2; }

/* ---------- Recapitulatif du tunnel ---------- */
.mwp-checkout__aside .checkout_coupon {
	background: var(--mwp-surface);
	border: 1px solid var(--mwp-line);
	border-radius: 14px;
	box-shadow: var(--mwp-shadow-sm);
	padding: 14px 18px;
	margin: 0;
	display: flex; flex-wrap: wrap; gap: 9px; align-items: center;
}
.mwp-checkout__aside .checkout_coupon p { margin: 0; flex: 1 1 150px; }
.mwp-checkout__aside .checkout_coupon p:first-child { flex-basis: 100%; font-size: 13.5px; font-weight: 600; color: var(--mwp-ink-2); }
.mwp-checkout__aside .checkout_coupon input.input-text {
	width: 100%;
	border: 1px solid var(--mwp-line); background: var(--mwp-surface-2);
	border-radius: 8px; padding: 9px 12px; font-size: 14px; color: var(--mwp-ink);
	box-shadow: none;
}
.mwp-checkout__aside .checkout_coupon button {
	border: 1px solid var(--mwp-line); background: var(--mwp-surface);
	color: var(--mwp-ink-2); border-radius: 8px; padding: 9px 16px;
	font-weight: 600; font-size: 14px; cursor: pointer; white-space: nowrap;
}
.mwp-checkout__aside .checkout_coupon button:hover { border-color: var(--mwp-coral); color: var(--mwp-coral-strong); }

.mwp-summary {
	background: var(--mwp-surface);
	border: 1px solid var(--mwp-line);
	border-radius: 14px;
	box-shadow: var(--mwp-shadow-md);
	overflow: hidden;
}
.mwp-summary__head {
	padding: 15px 20px; border-bottom: 1px solid var(--mwp-line-soft);
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.mwp-summary__head h3 { font-family: var(--mwp-display); font-size: 16px; font-weight: 700; margin: 0; color: var(--mwp-ink); }
.mwp-editlink { font-size: 13px; color: var(--mwp-coral-strong); text-decoration: none; }
.mwp-editlink:hover { text-decoration: underline; }

.mwp-li {
	display: flex; gap: 13px; padding: 14px 20px;
	border-bottom: 1px solid var(--mwp-line-soft); align-items: center;
}
.mwp-li__ico .mwp-icon {
	width: 36px; height: 36px; border-radius: 8px;
	background: var(--mwp-coral-tint); color: var(--mwp-coral-strong);
	display: grid; place-items: center;
}
.mwp-li__ico .mwp-icon.is-alt { background: var(--mwp-indigo-tint); color: var(--mwp-indigo); }
.mwp-li__ico svg { width: 17px; height: 17px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.mwp-li__txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mwp-li__nm { font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--mwp-ink); }
.mwp-li__qty { color: var(--mwp-muted); font-weight: 500; }
.mwp-li__rt { font-size: 12.5px; line-height: 1.35; color: var(--mwp-muted); }
.mwp-li__rt p { margin: 0; font-size: inherit; }
.mwp-li__rt .wc-item-meta { margin: 2px 0 0; padding: 0; list-style: none; }
.mwp-li__amt {
	margin-left: auto; text-align: right;
	font-size: 14px; font-weight: 700;
	font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 8px;
	color: var(--mwp-ink);
}
.mwp-li__amt .subscription-details,
.mwp-li__amt small { display: block; font-size: 11.5px; font-weight: 400; color: var(--mwp-muted); }

/* Order bump */
.mwp-bump {
	border-bottom: 1px solid var(--mwp-line-soft);
	background: var(--mwp-indigo-tint);
	padding: 15px 20px;
	display: flex; flex-direction: column; gap: 11px;
}
.mwp-bump__tag {
	font-family: var(--mwp-display); font-size: 10px; font-weight: 700;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #fff; background: var(--mwp-indigo);
	padding: 3px 8px; border-radius: 100px; align-self: flex-start;
}
.mwp-bump__top { display: flex; align-items: center; gap: 11px; }
.mwp-bump__ico {
	width: 36px; height: 36px; flex: none; border-radius: 8px;
	background: var(--mwp-surface); color: var(--mwp-indigo);
	display: grid; place-items: center;
}
.mwp-bump__ico svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mwp-bump h3 { font-family: var(--mwp-display); font-size: 14.5px; font-weight: 700; line-height: 1.3; margin: 0; color: var(--mwp-ink); }
.mwp-bump__pr {
	margin-left: auto; font-family: var(--mwp-display); font-weight: 800; font-size: 15px;
	color: var(--mwp-ink); white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right;
}
.mwp-bump__pr .subscription-details,
.mwp-bump__pr small { display: block; font-family: inherit; font-size: 11.5px; font-weight: 500; color: var(--mwp-muted); }
.mwp-bump p { margin: 0; font-size: 13px; line-height: 1.45; color: var(--mwp-ink-2); }
.mwp-bump__btn {
	display: block; width: 100%; text-align: center; text-decoration: none;
	background: var(--mwp-indigo); color: #fff; border: 0; border-radius: 9px;
	padding: 10px 14px; font-family: var(--mwp-display); font-weight: 700; font-size: 14px;
	transition: filter 0.15s;
}
.mwp-bump__btn:hover { filter: brightness(1.08); color: #fff; }
.mwp-bump__btn.is-loading { opacity: 0.65; pointer-events: none; }

/* Totaux du tunnel */
.mwp-summary__tot { padding: 14px 20px 6px; }
.mwp-line { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font-size: 14.5px; padding: 6px 0; color: var(--mwp-ink-2); }
.mwp-line b { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--mwp-ink); }
.mwp-line--big {
	border-top: 1px solid var(--mwp-line); margin-top: 9px; padding-top: 13px;
	font-family: var(--mwp-display); font-size: 15px; font-weight: 700; color: var(--mwp-ink);
}
.mwp-line--big b { font-size: 25px; font-weight: 800; letter-spacing: -0.02em; }
.mwp-line__s { display: block; font-family: inherit; font-weight: 500; font-size: 13px; color: var(--mwp-muted); }
.mwp-tot-note { font-size: 12.5px; color: var(--mwp-muted); margin: 4px 0 10px; }

.mwp-recur { background: var(--mwp-surface-2); border-top: 1px solid var(--mwp-line-soft); padding: 13px 20px 15px; }
.mwp-recur h4 {
	font-family: var(--mwp-display); font-size: 11.5px; font-weight: 700;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--mwp-muted); margin: 0 0 8px;
}
.mwp-recur__table { width: 100%; border: 0; border-collapse: collapse; margin: 0; }
.mwp-recur__table th,
.mwp-recur__table td {
	border: 0; padding: 5px 0; font-size: 14px; font-weight: 400;
	color: var(--mwp-ink-2); text-align: left; vertical-align: baseline;
}
.mwp-recur__table td { text-align: right; font-weight: 700; color: var(--mwp-ink); font-variant-numeric: tabular-nums; }
.mwp-recur__table tr.recurring-totals { display: none; }
.mwp-recur__table .first-payment-date,
.mwp-recur__table .subscription-details {
	display: block; font-size: 12.5px; font-weight: 400; color: var(--mwp-muted); margin-top: 2px;
}
.mwp-recur__table .first-payment-date small { font-size: inherit; }

/* =========================================================
   CONFIRMATION DE COMMANDE
   ========================================================= */

.mwp-thanks { color: var(--mwp-ink); padding-bottom: 56px; }

.mwp-thanks__hero {
	background: linear-gradient(160deg, var(--mwp-navy) 0%, var(--mwp-navy-2) 100%);
	color: #fff;
	border-radius: 16px;
	padding: 44px 40px 40px;
	margin-top: 30px;
	position: relative;
	overflow: hidden;
}
.mwp-thanks__hero::after {
	content: ""; position: absolute; right: -90px; top: -90px;
	width: 340px; height: 340px; border-radius: 50%;
	background: radial-gradient(circle, rgba(232, 89, 79, 0.18) 0%, transparent 68%);
}
.mwp-thanks__hero > * { position: relative; }
@media (max-width: 640px) { .mwp-thanks__hero { padding: 32px 22px 30px; border-radius: 14px; } }

.mwp-thanks__seal {
	width: 56px; height: 56px; border-radius: 50%;
	background: rgba(74, 222, 128, 0.16);
	border: 1.5px solid rgba(74, 222, 128, 0.5);
	display: grid; place-items: center; margin-bottom: 20px;
}
.mwp-thanks__seal svg { width: 28px; height: 28px; stroke: #4ade80; fill: none; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }

.mwp-thanks__hero h1 {
	color: #fff; font-family: var(--mwp-display);
	font-size: 36px; line-height: 1.14; font-weight: 800; margin: 0;
	text-wrap: nowrap;
}
@media (max-width: 900px) { .mwp-thanks__hero h1 { font-size: 30px; text-wrap: balance; } }
@media (max-width: 560px) { .mwp-thanks__hero h1 { font-size: 25px; } }

.mwp-thanks__hero p { color: rgba(255, 255, 255, 0.72); font-size: 16px; margin: 12px 0 0; max-width: 62ch; }
.mwp-thanks__hero p b { color: #fff; font-weight: 600; }

.mwp-thanks__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.mwp-btn {
	display: inline-flex; align-items: center; gap: 9px;
	border: 0; border-radius: 10px; padding: 13px 22px;
	font-family: var(--mwp-display); font-weight: 700; font-size: 15px;
	text-decoration: none; transition: filter 0.15s, transform 0.12s;
}
.mwp-btn svg { width: 17px; height: 17px; stroke: currentColor; fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.mwp-btn--primary { background: var(--mwp-coral); color: #fff; box-shadow: 0 6px 20px rgba(232, 89, 79, 0.28); }
.mwp-btn--primary:hover { filter: brightness(1.06); transform: translateY(-1px); color: #fff; }
.mwp-btn--outline { background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, 0.35); }
.mwp-btn--outline:hover { border-color: #fff; background: rgba(255, 255, 255, 0.06); color: #fff; }

.mwp-thanks__meta {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 1px; background: var(--mwp-line);
	border: 1px solid var(--mwp-line); border-radius: 14px; overflow: hidden;
	margin: -26px 24px 0; box-shadow: var(--mwp-shadow-md);
	position: relative; z-index: 2;
}
@media (max-width: 640px) { .mwp-thanks__meta { margin: -20px 12px 0; } }
.mwp-thanks__meta > div { background: var(--mwp-surface); padding: 15px 20px; }
.mwp-thanks__meta dt {
	font-size: 11.5px; font-family: var(--mwp-display); font-weight: 700;
	letter-spacing: 0.1em; text-transform: uppercase; color: var(--mwp-muted); margin-bottom: 4px;
}
.mwp-thanks__meta dd {
	margin: 0; font-size: 15.5px; font-weight: 600; color: var(--mwp-ink);
	font-variant-numeric: tabular-nums; word-break: break-word;
}
.mwp-thanks__meta dd small { display: block; font-size: 12.5px; font-weight: 400; color: var(--mwp-muted); font-variant-numeric: normal; }

.mwp-thanks__section { padding: 38px 0 0; }
.mwp-thanks__section h2 { font-family: var(--mwp-display); font-size: 22px; font-weight: 700; margin: 0 0 6px; color: var(--mwp-ink); }
.mwp-thanks__lead { color: var(--mwp-muted); font-size: 14.5px; margin: 0 0 20px; max-width: 70ch; }

/* Etapes */
.mwp-tl { display: grid; grid-template-columns: repeat(auto-fit, minmax(186px, 1fr)); gap: 12px; }
.mwp-step {
	background: var(--mwp-surface); border: 1px solid var(--mwp-line);
	border-radius: 13px; padding: 17px; box-shadow: var(--mwp-shadow-sm);
	display: flex; flex-direction: column; align-items: flex-start; height: 100%;
}
.mwp-step__n {
	width: 28px; height: 28px; flex: none; border-radius: 50%;
	background: var(--mwp-coral-tint); color: var(--mwp-coral-strong);
	display: grid; place-items: center;
	font-family: var(--mwp-display); font-weight: 800; font-size: 13px; margin-bottom: 11px;
}
.mwp-step.is-done .mwp-step__n { background: var(--mwp-green-tint); color: var(--mwp-green); }
.mwp-step h3 { font-family: var(--mwp-display); font-size: 15px; font-weight: 700; line-height: 1.3; margin: 0; color: var(--mwp-ink); }
.mwp-step p { margin: 6px 0 14px; font-size: 13.5px; line-height: 1.5; color: var(--mwp-ink-2); }
.mwp-step__when {
	margin-top: auto; align-self: flex-start;
	font-size: 11.5px; font-weight: 600; letter-spacing: 0.03em;
	padding: 3.5px 9px; border-radius: 100px;
	background: var(--mwp-surface-2); border: 1px solid var(--mwp-line);
	color: var(--mwp-muted); white-space: nowrap;
}
.mwp-step.is-done .mwp-step__when { background: var(--mwp-green-tint); border-color: transparent; color: var(--mwp-green); }

/* Detail de commande */
.mwp-thanks__grid { display: grid; grid-template-columns: minmax(0, 1fr) 344px; gap: 22px; align-items: start; }
@media (max-width: 940px) { .mwp-thanks__grid { grid-template-columns: 1fr; } }
.mwp-thanks__col { min-width: 0; }
.mwp-thanks__aside { display: flex; flex-direction: column; gap: 14px; }

.mwp-thanks .mwp-card__head h3 { font-family: var(--mwp-display); font-size: 16px; font-weight: 700; margin: 0; color: var(--mwp-ink); }
.mwp-thanks .mwp-summary__items .mwp-li:last-child { border-bottom: 0; }
.mwp-thanks .mwp-summary__tot { border-top: 1px solid var(--mwp-line-soft); background: var(--mwp-surface-2); padding: 14px 20px; }

.mwp-paid {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
	padding: 4px 10px; border-radius: 100px;
	background: var(--mwp-green-tint); color: var(--mwp-green);
}
.mwp-paid svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }

.mwp-addr { font-style: normal; font-size: 14px; line-height: 1.65; color: var(--mwp-ink-2); }
.mwp-addr__row { display: block; }
.mwp-addr__site { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--mwp-line-soft); font-size: 13.5px; }
.mwp-addr__site b { color: var(--mwp-ink); }

.mwp-warn { border: 1px solid var(--mwp-indigo-line); background: var(--mwp-indigo-tint); border-radius: 13px; padding: 16px 18px; }
.mwp-warn h3 {
	font-family: var(--mwp-display); font-size: 14.5px; font-weight: 700;
	display: flex; align-items: center; gap: 9px; margin: 0 0 6px; color: var(--mwp-ink);
}
.mwp-warn h3 svg { width: 17px; height: 17px; flex: none; stroke: var(--mwp-indigo); fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.mwp-warn p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--mwp-ink-2); }

.mwp-help { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.mwp-help li { display: flex; gap: 11px; align-items: flex-start; font-size: 14px; color: var(--mwp-ink-2); margin: 0; }
.mwp-help svg { width: 17px; height: 17px; flex: none; margin-top: 2px; stroke: var(--mwp-coral-strong); fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.mwp-help a { color: var(--mwp-coral-strong); text-decoration: none; font-weight: 600; }
.mwp-help a:hover { text-decoration: underline; }
.mwp-help__s { display: block; font-size: 12.5px; color: var(--mwp-muted); font-weight: 400; }

/* Tableau d'abonnements WooCommerce Subscriptions */
.mwp-thanks .my_account_subscriptions,
.mwp-thanks .order_details.subscription_details,
.mwp-thanks table.shop_table.subscription_details {
	width: 100%;
	margin: 14px 0 0;
	border: 1px solid var(--mwp-line);
	border-radius: 14px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--mwp-surface);
	box-shadow: var(--mwp-shadow-sm);
	font-size: 14px;
}
.mwp-thanks .subscription_details th,
.mwp-thanks .my_account_subscriptions th {
	background: var(--mwp-surface-2);
	font-family: var(--mwp-display); font-size: 12px; font-weight: 700;
	letter-spacing: 0.06em; text-transform: uppercase; color: var(--mwp-muted);
	padding: 12px 16px; text-align: left; border: 0;
	border-bottom: 1px solid var(--mwp-line);
}
.mwp-thanks .subscription_details td,
.mwp-thanks .my_account_subscriptions td {
	padding: 14px 16px; border: 0; border-bottom: 1px solid var(--mwp-line-soft); color: var(--mwp-ink-2);
}
.mwp-thanks .subscription_details tr:last-child td { border-bottom: 0; }
.mwp-thanks .subscription-status,
.mwp-thanks .order-status {
	display: inline-block;
	font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em;
	padding: 4px 10px; border-radius: 100px;
	background: var(--mwp-green-tint); color: var(--mwp-green);
}
.mwp-thanks .subscription_details .button,
.mwp-thanks .my_account_subscriptions .button {
	background: var(--mwp-surface-2); color: var(--mwp-ink-2);
	border: 1px solid var(--mwp-line); border-radius: 8px;
	padding: 8px 14px; font-weight: 600; font-size: 13.5px;
	text-decoration: none; white-space: nowrap; box-shadow: none;
}
.mwp-thanks .subscription_details .button:hover,
.mwp-thanks .my_account_subscriptions .button:hover { border-color: var(--mwp-coral); color: var(--mwp-coral-strong); background: var(--mwp-surface); }

/* Neutralisation du markup WooCommerce par defaut */
.mwp-thanks .woocommerce-order-overview,
.mwp-thanks .woocommerce-thankyou-order-received,
.mwp-thanks .woocommerce-customer-details h2,
.mwp-thanks .woocommerce-column__title { list-style: none; }
.mwp-thanks h2.woocommerce-column__title,
.mwp-thanks .woocommerce-customer-details address { display: none; }

.mwp-thanks__fallback { padding: 40px 0; }

@media (prefers-reduced-motion: reduce) {
	.mwp-checkout *, .mwp-thanks * { transition: none !important; animation: none !important; }
}
.mwp-checkout :focus-visible,
.mwp-thanks :focus-visible { outline: 2px solid var(--mwp-coral); outline-offset: 2px; border-radius: 4px; }


/* =========================================================
   SURCHARGES WOOCOMMERCE
   Regles du plugin et du theme plus specifiques que les nôtres.
   A garder en fin de fichier.
   ========================================================= */

/* La colonne recapitulatif du panier heritait de
   .woocommerce .cart-collaterals .cart_totals { width:48%; float:right }
   ce qui la reduisait a 179 px et tronquait les montants. */
.woocommerce .mwp-cart__aside.cart-collaterals .cart_totals,
.woocommerce-page .mwp-cart__aside.cart-collaterals .cart_totals,
.woocommerce .mwp-cart .cart-collaterals .mwp-summary,
.woocommerce-page .mwp-cart .cart-collaterals .mwp-summary {
	width: 100%;
	float: none;
	margin: 0;
	padding: 0;
}
.woocommerce .mwp-cart__aside.cart-collaterals,
.woocommerce-page .mwp-cart__aside.cart-collaterals { width: 100%; }

/* Tables : neutralisation des bordures et marges de shop_table */
.woocommerce .mwp-cart table.mwp-totals,
.woocommerce-page .mwp-cart table.mwp-totals,
.woocommerce .mwp-recur table.mwp-recur__table,
.woocommerce-page .mwp-recur table.mwp-recur__table {
	border: 0;
	margin: 0;
	border-radius: 0;
	border-collapse: collapse;
	width: 100%;
}
.woocommerce .mwp-cart table.mwp-totals th,
.woocommerce .mwp-cart table.mwp-totals td,
.woocommerce .mwp-recur table.mwp-recur__table th,
.woocommerce .mwp-recur table.mwp-recur__table td {
	border: 0;
	background: transparent;
}
.woocommerce .mwp-cart table.mwp-totals tr.mwp-total-row th,
.woocommerce .mwp-cart table.mwp-totals tr.mwp-total-row td { border-top: 1px solid var(--mwp-line); }
.woocommerce .mwp-cart table.mwp-totals tr.mwp-recur-heading th { border-top: 1px solid var(--mwp-line-soft); }

/* Boutons : le theme cible .woocommerce a.button / button.button */
.woocommerce .mwp-cart a.mwp-btn-ghost,
.woocommerce .mwp-cart button.mwp-btn-ghost,
.woocommerce .mwp-cart button.mwp-btn-update {
	background: var(--mwp-surface);
	color: var(--mwp-ink-2);
	border: 1px solid var(--mwp-line);
	border-radius: 8px;
	padding: 10px 18px;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.4;
}
.woocommerce .mwp-cart a.mwp-btn-indigo,
.woocommerce .mwp-upsell a.mwp-btn-indigo,
.woocommerce .mwp-bump a.mwp-bump__btn {
	background: var(--mwp-indigo);
	color: #fff;
	border: 0;
	border-radius: 9px;
	line-height: 1.4;
}
.woocommerce .mwp-checkout__aside .checkout_coupon button.button {
	background: var(--mwp-surface);
	color: var(--mwp-ink-2);
	border: 1px solid var(--mwp-line);
	border-radius: 8px;
	line-height: 1.4;
}

/* Bloc paiement : WooCommerce cible .woocommerce-checkout #payment,
   plus specifique que .mwp-pay a cause de l'ID. */
.woocommerce-checkout #payment.mwp-pay {
	background: transparent;
	border-radius: 0;
}
.woocommerce-checkout #payment.mwp-pay ul.payment_methods {
	padding: 0;
	margin: 0;
	border: 0;
	list-style: none;
}
.woocommerce-checkout #payment.mwp-pay ul.payment_methods li { line-height: inherit; margin: 0; }
.woocommerce-checkout #payment.mwp-pay ul.payment_methods li input { margin: 0; }
.woocommerce-checkout #payment.mwp-pay ul.payment_methods li img {
	margin: 0;
	max-height: 26px;
	width: auto;
	vertical-align: middle;
}
.woocommerce-checkout #payment.mwp-pay div.form-row { padding: 0; }
.woocommerce-checkout #payment.mwp-pay div.payment_box {
	position: static;
	width: auto;
	padding: 0 16px 16px 46px;
	margin: 0;
	font-size: 14px;
	border-radius: 0;
	background: transparent;
	color: var(--mwp-ink-2);
	line-height: 1.5;
}
.woocommerce-checkout #payment.mwp-pay div.payment_box::before { display: none; content: none; border: 0; }
@media (max-width: 560px) {
	.woocommerce-checkout #payment.mwp-pay div.payment_box { padding-left: 16px; }
}
.woocommerce-checkout #payment.mwp-pay button#place_order {
	display: block;
	width: 100%;
	background: var(--mwp-coral);
	color: #fff;
	border: 0;
	border-radius: 10px;
	padding: 16px 18px;
	font-family: var(--mwp-display);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.35;
	float: none;
	margin: 0;
}
.woocommerce-checkout #payment.mwp-pay button#place_order:hover { background: var(--mwp-coral); filter: brightness(1.05); color: #fff; }

/* Confirmation : masquage du bloc adresse WooCommerce d'origine */
.woocommerce .mwp-thanks .woocommerce-customer-details,
.woocommerce-page .mwp-thanks .woocommerce-customer-details { display: none; }


/* =========================================================
   CORRECTIFS DE MISE EN PAGE DES CHAMPS
   ========================================================= */

/* WooCommerce applique width:47% et float sur form-row-first / last / wide.
   mwp_field_layout() retire ces classes, ces regles sont une ceinture de securite
   si un plugin les remet. Specificite superieure a .woocommerce form .form-row-first. */
.woocommerce form .mwp-grid2 .form-row,
.woocommerce form .mwp-grid2 .form-row-first,
.woocommerce form .mwp-grid2 .form-row-last,
.woocommerce form .mwp-grid2 .form-row-wide,
.woocommerce-page form .mwp-grid2 .form-row {
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.woocommerce form .mwp-grid2 .form-row-wide { grid-column: 1 / -1; }
.woocommerce form .mwp-grid2 .mwp-col-6 { grid-column: span 1; }
.woocommerce form .mwp-grid2 .mwp-col-12 { grid-column: 1 / -1; }
.woocommerce form .mwp-grid2 .form-row::after,
.woocommerce form .mwp-grid2 .form-row::before { display: none; }

/* Les champs occupent toute la largeur de leur colonne */
.woocommerce form .mwp-grid2 .woocommerce-input-wrapper,
.woocommerce form .mwp-grid2 .select2-container { width: 100%; }

/* =========================================================
   TOTAUX : TTC ET LIGNES RECURRENTES
   ========================================================= */

/* "TTC" apres le montant, pas apres le libelle */
.mwp-totals tr.mwp-total-row td .woocommerce-Price-amount::after,
.mwp-totals tr.order-total.recurring-total td .woocommerce-Price-amount::after,
.mwp-recur__table tr.order-total.recurring-total td .woocommerce-Price-amount::after,
.mwp-summary .mwp-line--big b .woocommerce-Price-amount::after {
	content: " TTC";
	font-size: .55em;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--mwp-muted);
	white-space: nowrap;
}
.mwp-recur__table tr.order-total.recurring-total td .woocommerce-Price-amount::after {
	font-size: .72em;
}

/* Dans "Puis, automatiquement" : on ne garde que le total recurrent.
   WooCommerce Subscriptions y injecte aussi un sous-total et la TVA. */
.mwp-totals tr.recurring-totals,
.mwp-totals tr.cart-subtotal.recurring-total,
.mwp-totals tr.tax-total.recurring-total,
.mwp-totals tr.tax-rate.recurring-total,
.mwp-totals tr.recurring-tax-total,
.mwp-recur__table tr.recurring-totals,
.mwp-recur__table tr.cart-subtotal.recurring-total,
.mwp-recur__table tr.tax-total.recurring-total,
.mwp-recur__table tr.tax-rate.recurring-total,
.mwp-recur__table tr.recurring-tax-total {
	display: none;
}

/* Le total recurrent restant reprend la mise en forme du bloc */
.mwp-totals tr.order-total.recurring-total th,
.mwp-recur__table tr.order-total.recurring-total th {
	font-weight: 400;
	color: var(--mwp-ink-2);
	font-size: 14px;
}
.mwp-totals tr.order-total.recurring-total td,
.mwp-recur__table tr.order-total.recurring-total td {
	font-weight: 700;
	color: var(--mwp-ink);
	font-size: 14px;
}

/* =========================================================
   ZONE DE COMMANDE DU PANIER
   WooCommerce impose .woocommerce .wc-proceed-to-checkout { padding: 1em 0 },
   ce qui supprimait le padding lateral : les boutons touchaient les bords
   de la carte. Et le bouton PayPal du PPCP arrive sans marge, collé au
   bouton de validation.
   ========================================================= */

.woocommerce .mwp-summary .mwp-checkout-zone.wc-proceed-to-checkout,
.woocommerce-page .mwp-summary .mwp-checkout-zone.wc-proceed-to-checkout {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px 20px 20px;
	margin: 0;
	border-top: 1px solid var(--mwp-line-soft);
}

/* Chaque bouton de passerelle ajouté après le nôtre garde le même gabarit */
.mwp-checkout-zone > a,
.mwp-checkout-zone > div,
.mwp-checkout-zone > p { margin: 0; width: 100%; }

/* PayPal Express (PPCP) : le wrapper et son iframe */
.mwp-checkout-zone .ppc-button-wrapper,
.mwp-checkout-zone .ppcp-button-container,
.mwp-checkout-zone .paypal-buttons {
	margin: 0;
	width: 100% !important;
	max-width: 100%;
}
.mwp-checkout-zone .ppc-button-wrapper { min-height: 45px; }

/* Le bouton de validation garde sa hauteur propre */
.woocommerce .mwp-checkout-zone a.button.checkout-button,
.woocommerce-page .mwp-checkout-zone a.button.checkout-button {
	margin: 0;
	min-height: 52px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.mwp-checkout-zone .mwp-pay-note { margin: 2px 0 0; }

/* =========================================================
   CREATION DE COMPTE
   Bloc normalement rendu par form-billing.php, reproduit dans
   form-checkout.php. La case a cocher pilote l'affichage des champs.
   ========================================================= */

.mwp-account {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--mwp-line-soft);
}

.woocommerce form .mwp-account .form-row.mwp-createaccount,
.mwp-account .mwp-createaccount {
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
	display: block;
}
.mwp-account .mwp-createaccount label.checkbox {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	font-size: 14px;
	font-weight: 500;
	color: var(--mwp-ink-2);
	margin: 0;
	cursor: pointer;
}
.mwp-account .mwp-createaccount input[type="checkbox"] {
	margin: 2px 0 0;
	width: 17px;
	height: 17px;
	flex: none;
	accent-color: var(--mwp-coral);
}

.mwp-account .create-account { margin-top: 14px; }
.mwp-account .create-account .clear { display: none; }

/* Un seul champ mot de passe : il occupe toute la largeur pour laisser
   la place a l'indicateur de robustesse de WooCommerce. */
.mwp-account .mwp-grid2 #account_password_field,
.mwp-account .mwp-grid2 #account_username_field { grid-column: 1 / -1; }

.mwp-account .woocommerce-password-strength {
	margin-top: 6px;
	padding: 6px 10px;
	border-radius: 7px;
	font-size: 12.5px;
	font-weight: 600;
	text-align: left;
	border: 1px solid var(--mwp-line);
	background: var(--mwp-surface-2);
}
.mwp-account .woocommerce-password-strength.short,
.mwp-account .woocommerce-password-strength.bad { color: #b91c1c; background: #fef2f2; border-color: transparent; }
.mwp-account .woocommerce-password-strength.good { color: #b45309; background: #fffbeb; border-color: transparent; }
.mwp-account .woocommerce-password-strength.strong { color: var(--mwp-green); background: var(--mwp-green-tint); border-color: transparent; }
.mwp-account .woocommerce-password-hint { display: block; margin-top: 6px; font-size: 12.5px; color: var(--mwp-muted); }

/* Bouton oeil de WooCommerce dans le champ mot de passe */
.mwp-account .password-input { display: block; position: relative; width: 100%; }
.mwp-account .show-password-input {
	position: absolute;
	right: 12px;
	top: 12px;
	cursor: pointer;
}

/* Si l'inscription est obligatoire, il n'y a pas de case a cocher :
   les champs doivent rester visibles quoi qu'il arrive. */
.mwp-account:not(:has(#createaccount)) .create-account { display: block !important; }

/* =========================================================
   UPSELL MAINTENANCE APRES NETTOYAGE (produit 14456)
   ========================================================= */

.mwp-cup {
	margin-top: 26px;
	border: 1.5px solid var(--mwp-indigo-line);
	background: var(--mwp-indigo-tint);
	border-radius: 16px;
	padding: 24px 22px 22px;
	position: relative;
	color: var(--mwp-ink);
}
.mwp-cup__badge {
	position: absolute; top: -12px; left: 22px;
	background: var(--mwp-indigo); color: #fff;
	font-family: var(--mwp-display); font-size: 11px; font-weight: 700;
	letter-spacing: .1em; text-transform: uppercase;
	padding: 5px 12px; border-radius: 100px;
}

.mwp-cup__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.mwp-cup__head h3 {
	font-family: var(--mwp-display); font-size: 20px; font-weight: 700;
	line-height: 1.25; margin: 0; max-width: 30ch; color: var(--mwp-ink); text-wrap: balance;
}
.mwp-cup__head p { margin: 7px 0 0; font-size: 14.5px; line-height: 1.55; color: var(--mwp-ink-2); max-width: 62ch; }

.mwp-cup__offer {
	flex: none; text-align: center;
	background: var(--mwp-surface); border: 1px solid var(--mwp-indigo-line);
	border-radius: 12px; padding: 10px 16px;
}
.mwp-cup__offer b {
	display: block; font-family: var(--mwp-display); font-size: 26px; font-weight: 800;
	color: var(--mwp-indigo); line-height: 1.05; letter-spacing: -.02em;
}
.mwp-cup__offer span { font-size: 12.5px; color: var(--mwp-muted); }

.mwp-cup__plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
@media (max-width: 860px) { .mwp-cup__plans { grid-template-columns: 1fr; } }

/* Les cartes sont des <button> : on neutralise tout style de bouton du theme */
.mwp-cart .mwp-cup button.mwp-cup__plan {
	-webkit-appearance: none; appearance: none;
	position: relative;
	display: flex; flex-direction: column; align-items: stretch; gap: 10px;
	width: 100%; margin: 0;
	padding: 18px 16px 16px;
	background: var(--mwp-surface);
	border: 1.5px solid var(--mwp-line);
	border-radius: 13px;
	box-shadow: none;
	color: var(--mwp-ink);
	font: inherit; font-weight: 400;
	line-height: 1.45; letter-spacing: normal; text-transform: none; text-align: left;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s;
}
.mwp-cart .mwp-cup button.mwp-cup__plan:hover { border-color: var(--mwp-indigo-line); background: var(--mwp-surface); color: var(--mwp-ink); }
.mwp-cart .mwp-cup button.mwp-cup__plan.is-on { border-color: var(--mwp-indigo); box-shadow: 0 0 0 3px rgba(91, 77, 209, .14); }
.mwp-cart .mwp-cup button.mwp-cup__plan:focus-visible { outline: 2px solid var(--mwp-indigo); outline-offset: 2px; }

.mwp-cup__reco {
	position: absolute; top: -10px; right: 14px;
	background: var(--mwp-coral); color: #fff;
	font-family: var(--mwp-display); font-size: 10px; font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase;
	padding: 3px 9px; border-radius: 100px;
}

.mwp-cup__top { display: flex; align-items: center; gap: 10px; }
.mwp-cup__radio {
	width: 18px; height: 18px; flex: none; border-radius: 50%;
	border: 1.8px solid var(--mwp-line); background: var(--mwp-surface);
	display: grid; place-items: center;
}
.mwp-cup__plan.is-on .mwp-cup__radio { border-color: var(--mwp-indigo); }
.mwp-cup__plan.is-on .mwp-cup__radio::after { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--mwp-indigo); }

.mwp-cup__name {
	font-family: var(--mwp-display); font-size: 13px; font-weight: 800;
	letter-spacing: .1em; text-transform: uppercase; color: var(--mwp-coral-strong);
}
.mwp-cup__tag { display: block; font-size: 13px; font-style: italic; color: var(--mwp-muted); line-height: 1.4; }

.mwp-cup__price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.mwp-cup__now {
	font-family: var(--mwp-display); font-size: 24px; font-weight: 800;
	letter-spacing: -.02em; color: var(--mwp-ink); font-variant-numeric: tabular-nums;
}
.mwp-cup__unit { font-size: 12.5px; color: var(--mwp-muted); }
.mwp-cup__was { font-size: 13px; color: var(--mwp-muted); text-decoration: line-through; font-variant-numeric: tabular-nums; }
.mwp-cup__then { display: block; font-size: 12.5px; color: var(--mwp-muted); margin-top: -6px; font-variant-numeric: tabular-nums; }

.mwp-cup__list {
	display: flex; flex-direction: column; gap: 6px;
	padding-top: 10px; border-top: 1px solid var(--mwp-line-soft);
}
.mwp-cup__li { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; line-height: 1.4; color: var(--mwp-ink-2); }
.mwp-cup__li::before {
	content: ""; flex: none; width: 14px; height: 14px; margin-top: 3px; background: var(--mwp-indigo);
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center / 12px no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center / 12px no-repeat;
}
.mwp-cup__li.is-hl { color: var(--mwp-ink); font-weight: 600; }
.mwp-cup__li.is-hl::before { background: var(--mwp-coral-strong); }

.mwp-cup__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 18px; }
.mwp-cup__foot p { margin: 0; font-size: 13px; color: var(--mwp-muted); max-width: 56ch; }

.mwp-cart .mwp-cup a.mwp-cup__btn {
	display: inline-block;
	background: var(--mwp-indigo); color: #fff;
	border: 0; border-radius: 10px;
	padding: 13px 22px;
	font-family: var(--mwp-display); font-weight: 700; font-size: 15px; line-height: 1.35;
	text-decoration: none; white-space: nowrap;
	transition: filter .15s;
}
.mwp-cart .mwp-cup a.mwp-cup__btn:hover { filter: brightness(1.08); color: #fff; }
.mwp-cart .mwp-cup a.mwp-cup__btn.is-loading { opacity: .65; pointer-events: none; }
@media (max-width: 560px) { .mwp-cart .mwp-cup a.mwp-cup__btn { width: 100%; text-align: center; white-space: normal; } }

/* Pastille "-20 % sur les 3 premieres mensualites" sur la ligne du forfait */
.mwp-tag.is-promo { background: var(--mwp-green-tint); border-color: transparent; color: var(--mwp-green); }

/* Ligne de remise en vert dans les totaux */
.mwp-totals tr.cart-discount td,
.mwp-totals tr.cart-discount td .woocommerce-Price-amount,
.mwp-line--coupon b,
.mwp-line--coupon b .woocommerce-Price-amount { color: var(--mwp-green); }

/* Rappel sous les totaux recurrents */
.mwp-totals tr.mwp-promo-note td,
.mwp-recur__table tr.mwp-promo-note td {
	padding: 8px 0 2px;
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.45;
	color: var(--mwp-green);
	text-align: left;
	border: 0;
	background: transparent;
}
.mwp-totals tr.mwp-promo-note td .woocommerce-Price-amount,
.mwp-recur__table tr.mwp-promo-note td .woocommerce-Price-amount { color: inherit; font-weight: 700; }
/* Le TTC colle aux montants ne concerne pas cette ligne, exprimee en HT */
.mwp-totals tr.mwp-promo-note td .woocommerce-Price-amount::after,
.mwp-recur__table tr.mwp-promo-note td .woocommerce-Price-amount::after { content: none; }

/* =========================================================
   ESPACEMENT DES <section>
   Le theme maintenance-wp-2 impose dans son style.css :
     section { margin-block-start: 0 !important; }
   Toute marge haute posee sur une <section> etait donc annulee :
   les encarts upsell collaient au dernier article du panier,
   et les cartes du tunnel collaient entre elles.
   On retablit l'espacement, uniquement sur nos composants.
   ========================================================= */

/* Panier : encarts firewall et maintenance */
.mwp-cart .mwp-upsell,
.mwp-cart .mwp-cup {
	margin-block-start: 32px !important;
}

/* Tunnel : cartes Coordonnees, Adresse, Paiement */
.mwp-checkout__main section.mwp-card:not(:first-child) {
	margin-block-start: 14px !important;
}