/* =========================================================================
   Panier, commande, confirmation — balisage WooCommerce / WoodMart d'origine,
   en-tête des étapes : inc/kg-panier.php (préfixe .kgp-*).
   Palette reprise de la page Contact (css/kg-contact.css). Chargée seulement
   sur is_cart() / is_checkout().
   ========================================================================= */

body.woocommerce-cart,
body.woocommerce-checkout {
	--kgp-navy: #0b1030;
	--kgp-navy-2: #141a45;
	--kgp-ink: #0f172a;
	--kgp-text: #475569;
	--kgp-muted: #64748b;
	--kgp-line: #e2e8f0;
	--kgp-soft: #f6f7fc;
	--kgp-indigo: #6366f1;
	--kgp-violet: #6d4fe0;
	--kgp-orange: #ff6b35;
	--kgp-green: #16a34a;
	--kgp-radius: 22px;
	--kgp-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px -8px rgba(15, 23, 42, .12);
	--kgp-title: "Readex Pro", system-ui, -apple-system, "Segoe UI", sans-serif;
	--kgp-body: "Cabin", system-ui, -apple-system, "Segoe UI", sans-serif;
}

body.woocommerce-cart .main-page-wrapper,
body.woocommerce-checkout .main-page-wrapper {
	padding-top: 0;
	background: var(--kgp-soft);
}
body.woocommerce-cart #main-content,
body.woocommerce-checkout #main-content {
	padding-top: 40px;
	padding-bottom: 72px;
	font-family: var(--kgp-body);
	color: var(--kgp-text);
}

/* Titres WoodMart : majuscules et police du thème -> titres du site. */
body.woocommerce-cart #main-content :is(h2, h3),
body.woocommerce-checkout #main-content :is(h2, h3) {
	font-family: var(--kgp-title);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -.01em;
	text-transform: none;
	color: var(--kgp-ink);
	margin-bottom: 18px;
}

/* ---------- Bandeau : titre + étapes ---------- */

body.woocommerce-cart .wd-page-title,
body.woocommerce-checkout .wd-page-title {
	padding: 44px 0 48px;
	background:
		radial-gradient(600px 300px at 85% 0%, rgba(139, 92, 246, .35), transparent 70%),
		radial-gradient(500px 260px at 10% 100%, rgba(255, 107, 53, .22), transparent 70%),
		linear-gradient(160deg, var(--kgp-navy), var(--kgp-navy-2));
}
.kgp-hero {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px 32px;
	width: 100%;
}
.kgp-hero .kgp-hero__titre {
	margin: 0;
	font-family: var(--kgp-title);
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -.02em;
	text-transform: none;
	color: #fff;
}
.kgp-etapes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.kgp-etape {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-family: var(--kgp-title);
	font-size: 14px;
	font-weight: 500;
	color: rgba(255, 255, 255, .55);
}
.kgp-etape:not(:last-child)::after {
	content: "";
	width: 24px;
	height: 2px;
	margin-left: 4px;
	border-radius: 2px;
	background: rgba(255, 255, 255, .2);
}
.kgp-etape > a {
	display: flex;
	align-items: center;
	gap: 8px;
	color: inherit;
	text-decoration: none;
}
.kgp-etape > a:hover .kgp-etape__nom { text-decoration: underline; }
.kgp-etape__num {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, .3);
	font-size: 13px;
	font-weight: 600;
}
.kgp-etape--fait { color: #e0e7ff; }
.kgp-etape--fait .kgp-etape__num {
	border-color: transparent;
	background: rgba(255, 255, 255, .16);
}
.kgp-etape--actif { color: #fff; }
.kgp-etape--actif .kgp-etape__num {
	border-color: transparent;
	background: var(--kgp-orange);
	color: #fff;
}

/* ---------- Messages WooCommerce ---------- */

body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-checkout .woocommerce-notices-wrapper { margin-bottom: 0; }
body.woocommerce-cart :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
body.woocommerce-checkout :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	margin-bottom: 16px;
	padding: 14px 20px 14px 52px;
	border-radius: 14px;
	border: 1px solid var(--kgp-line);
	background-color: #fff;
	color: var(--kgp-ink);
	font-size: 15px;
	box-shadow: var(--kgp-shadow);
}
body.woocommerce-cart :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before,
body.woocommerce-checkout :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
	inset-inline-start: 20px;
	color: var(--kgp-indigo);
}
body.woocommerce-cart .woocommerce-message,
body.woocommerce-checkout .woocommerce-message { border-left: 4px solid var(--kgp-green); }
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-message::before { color: var(--kgp-green); }
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-error { border-left: 4px solid #dc2626; }
body.woocommerce-cart .woocommerce-error::before,
body.woocommerce-checkout .woocommerce-error::before { color: #dc2626; }
body.woocommerce-cart :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a,
body.woocommerce-checkout :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a {
	color: var(--kgp-violet);
	font-weight: 600;
	text-transform: none;
}

/* ---------- Cartes ---------- */

.woocommerce-cart-form,
.cart-totals-inner,
.woocommerce-checkout .customer-details,
.woocommerce-checkout .checkout-order-review,
.woocommerce-form-login,
.checkout_coupon {
	border-radius: var(--kgp-radius);
	background: #fff;
	box-shadow: var(--kgp-shadow);
}

/* ---------- Panier ---------- */

body.woocommerce-cart .woocommerce-cart-form { padding: 8px 28px 24px; }
body.woocommerce-cart table.shop_table { margin-bottom: 0; }
body.woocommerce-cart .woocommerce-cart-form table.shop_table th {
	font-family: var(--kgp-title);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--kgp-muted);
}
body.woocommerce-cart table.shop_table td { border-color: var(--kgp-line); }
body.woocommerce-cart .product-thumbnail img {
	border-radius: 10px;
	box-shadow: 0 4px 12px -4px rgba(15, 23, 42, .25);
}
body.woocommerce-cart td.product-name a {
	font-family: var(--kgp-title);
	font-size: 17px;
	font-weight: 600;
	color: var(--kgp-ink);
}
body.woocommerce-cart td.product-name a:hover { color: var(--kgp-violet); }
body.woocommerce-cart td.product-subtotal .amount {
	font-weight: 700;
	color: var(--kgp-ink);
}
body.woocommerce-cart td.product-remove a.remove {
	display: inline-grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--kgp-soft);
	color: var(--kgp-muted);
	transition: background-color .18s ease, color .18s ease;
}
body.woocommerce-cart td.product-remove a.remove:hover {
	background: #fee2e2;
	color: #dc2626;
}
body.woocommerce-cart .wd-cart-action-row td { border-bottom: 0; }

/* Récapitulatif */
body.woocommerce-cart .cart_totals .cart-totals-inner {
	padding: 28px;
	border: 0;
	border-radius: var(--kgp-radius);
}
body.woocommerce-cart .cart_totals th {
	font-family: var(--kgp-title);
	font-weight: 500;
	color: var(--kgp-ink);
}
body.woocommerce-cart .cart_totals > h2 { margin-bottom: 8px; }
body.woocommerce-cart .cart_totals .order-total .amount {
	font-family: var(--kgp-title);
	font-size: 26px;
	color: var(--kgp-ink);
}

/* ---------- Boutons ---------- */

body.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
body.woocommerce-checkout #place_order {
	width: 100%;
	min-height: 52px;
	border-radius: 999px;
	background: var(--kgp-orange);
	color: #fff;
	font-family: var(--kgp-title);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: 0 10px 24px -10px rgba(255, 107, 53, .7);
	transition: background-color .18s ease, transform .18s ease;
}
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
body.woocommerce-checkout #place_order:hover {
	background: #f0541b;
	color: #fff;
	transform: translateY(-1px);
}
body.woocommerce-cart #main-content .button,
body.woocommerce-checkout #main-content .button:not(#place_order) {
	border-radius: 999px;
	font-family: var(--kgp-title);
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.kgp-retour {
	display: block;
	margin-top: 14px;
	font-family: var(--kgp-title);
	font-size: 14px;
	font-weight: 500;
	text-align: center;
	color: var(--kgp-muted);
	text-decoration: none;
}
.kgp-retour:hover { color: var(--kgp-violet); }
.kgp-retour--haut {
	margin: 0 0 14px;
	text-align: start;
}

/* Champs */
body.woocommerce-cart #main-content :is(input.input-text, select, textarea),
body.woocommerce-checkout #main-content :is(input.input-text, select, textarea),
body.woocommerce-checkout #main-content .select2-container .select2-selection {
	border-color: var(--kgp-line);
	background-color: var(--kgp-soft);
	font-family: var(--kgp-body);
	color: var(--kgp-ink);
}
body.woocommerce-cart #main-content :is(input.input-text, select, textarea):focus,
body.woocommerce-checkout #main-content :is(input.input-text, select, textarea):focus {
	border-color: var(--kgp-indigo);
	background-color: #fff;
}
body.woocommerce-checkout #main-content .form-row label {
	font-family: var(--kgp-title);
	font-size: 14px;
	font-weight: 500;
	color: var(--kgp-ink);
}

/* Suggestions (ventes croisées) */
body.woocommerce-cart .cross-sells { margin-top: 48px; }
body.woocommerce-cart .cross-sells .wd-el-title,
body.woocommerce-cart .cross-sells .element-title {
	font-family: var(--kgp-title);
	font-size: 22px;
	font-weight: 600;
	text-transform: none;
	color: var(--kgp-ink);
}

/* Panier vide : titre, texte et bouton sont frères dans .woocommerce, qui devient la carte. */
body.woocommerce-cart .woocommerce:has(> .cart-empty) {
	max-width: 620px;
	margin: 8px auto 0;
	padding: 48px 32px 40px;
	border-radius: var(--kgp-radius);
	background: #fff;
	box-shadow: var(--kgp-shadow);
	text-align: center;
}
body.woocommerce-cart .return-to-shop { margin: 24px 0 0; }
body.woocommerce-cart .return-to-shop .button {
	padding: 12px 24px;
	background: var(--kgp-orange);
	color: #fff;
}
body.woocommerce-cart .return-to-shop .button:hover { background: #f0541b; color: #fff; }

/* ---------- Commande ---------- */

body.woocommerce-checkout :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) .woocommerce-info {
	margin-bottom: 10px;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	font-family: var(--kgp-title);
	font-size: 15px;
}
body.woocommerce-checkout :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) .woocommerce-info::before { display: none; }
body.woocommerce-checkout .woocommerce-form-login,
body.woocommerce-checkout .checkout_coupon {
	padding: 24px 28px;
	border: 0;
}

body.woocommerce-checkout form.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
	margin-top: 8px;
}
body.woocommerce-checkout form.woocommerce-checkout > * {
	width: auto;
	max-width: none;
	margin: 0;
	float: none;
}
body.woocommerce-checkout form.woocommerce-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
body.woocommerce-checkout .customer-details { padding: 28px; }
body.woocommerce-checkout .customer-details > * { width: 100%; max-width: none; float: none; }
body.woocommerce-checkout .customer-details > :first-child { margin-top: 0; }
body.woocommerce-checkout .woocommerce-additional-fields { margin-top: 12px; }

body.woocommerce-checkout form.woocommerce-checkout .checkout-order-review {
	padding: 28px;
	border: 0;
	background: #fff;
}
/* Bords « ticket de caisse » de WoodMart retirés. */
body.woocommerce-checkout .checkout-order-review::before,
body.woocommerce-checkout .checkout-order-review::after { display: none; }
body.woocommerce-checkout #order_review_heading { text-align: start; }
body.woocommerce-checkout .woocommerce-checkout-review-order-table {
	padding: 0;
	box-shadow: none;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .amount {
	font-family: var(--kgp-title);
	font-size: 24px;
	color: var(--kgp-ink);
}
body.woocommerce-checkout #payment {
	padding: 0;
	background: transparent;
}
body.woocommerce-checkout #payment .payment_methods > li {
	padding: 14px 16px;
	border-radius: 14px;
	background: var(--kgp-soft);
}

/* Confirmation */
body.woocommerce-order-received .woocommerce-order {
	padding: 32px;
	border-radius: var(--kgp-radius);
	background: #fff;
	box-shadow: var(--kgp-shadow);
}

/* ---------- Mobile ---------- */

@media (max-width: 1024px) {
	body.woocommerce-checkout form.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 768.98px) {
	body.woocommerce-cart .wd-page-title,
	body.woocommerce-checkout .wd-page-title { padding: 28px 0 32px; }
	.kgp-etape:not(.kgp-etape--actif) .kgp-etape__nom { display: none; }
	.kgp-etape:not(:last-child)::after { width: 14px; }
	body.woocommerce-cart #main-content,
	body.woocommerce-checkout #main-content { padding-top: 24px; }
	body.woocommerce-cart .woocommerce-cart-form,
	body.woocommerce-cart .cart_totals .cart-totals-inner,
	body.woocommerce-checkout .customer-details,
	body.woocommerce-checkout form.woocommerce-checkout .checkout-order-review { padding: 20px 18px; }
}
