.sprint-gf-cart-layout {
	--sp-border: #dcdcde;
	--sp-border-soft: #e9eef3;
	--sp-bg: #ffffff;
	--sp-bg-soft: #f6f8fa;
	--sp-heading: #1d2327;
	--sp-text: #3c434a;
	--sp-accent: #2271b1;
	--sp-discount: #08783e;
	width: 100%;
	max-width: 820px;
	margin: 18px 0 4px;
	color: var(--sp-text);
	font-size: 14px;
	line-height: 1.45;
}

.sprint-gf-cart-layout *,
.sprint-gf-cart-layout *::before,
.sprint-gf-cart-layout *::after {
	box-sizing: border-box;
}

.sprint-gf-cart-section {
	margin: 0 0 14px;
	padding: 0;
	border: 1px solid var(--sp-border-soft);
	border-radius: 6px;
	background: var(--sp-bg);
	overflow: hidden;
}

.sprint-gf-cart-section > h4 {
	margin: 0;
	padding: 10px 13px;
	border-bottom: 1px solid var(--sp-border-soft);
	background: var(--sp-bg-soft);
	color: var(--sp-heading);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: .01em;
}

.sprint-gf-cart-table-wrap {
	width: 100%;
	overflow-x: auto;
}

.sprint-gf-cart-table,
.sprint-gf-cart-summary-table {
	width: 100%;
	margin: 0 !important;
	border: 0 !important;
	border-collapse: collapse;
	background: transparent;
}

.sprint-gf-cart-table th,
.sprint-gf-cart-table td,
.sprint-gf-cart-summary-table th,
.sprint-gf-cart-summary-table td {
	padding: 9px 12px;
	border: 0;
	border-bottom: 1px solid var(--sp-border-soft);
	background: transparent;
	color: var(--sp-text);
	font-size: 13px;
	line-height: 1.4;
	text-align: left;
	vertical-align: top;
}

.sprint-gf-cart-table thead th {
	background: #fbfcfd;
	color: #50575e;
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.sprint-gf-cart-table tbody tr:last-child td,
.sprint-gf-cart-summary-table tbody tr:last-child th,
.sprint-gf-cart-summary-table tbody tr:last-child td {
	border-bottom: 0;
}

.sprint-gf-cart-table .is-number,
.sprint-gf-cart-summary-table td {
	text-align: right;
	white-space: nowrap;
}

.sprint-gf-cart-table .is-strong {
	font-weight: 600;
	color: var(--sp-heading);
}

.sprint-gf-cart-table--compact th:last-child,
.sprint-gf-cart-table--compact td:last-child {
	width: 155px;
}

.sprint-gf-cart-users-table a {
	color: var(--sp-accent);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.sprint-gf-cart-users-table a:hover {
	text-decoration: underline;
}

.sprint-gf-cart-summary {
	max-width: 520px;
	margin-left: auto;
}

.sprint-gf-cart-summary-table th {
	width: 68%;
	font-weight: 500;
}

.sprint-gf-cart-summary-table .is-discount th,
.sprint-gf-cart-summary-table .is-discount td {
	color: var(--sp-discount);
	font-weight: 600;
}

.sprint-gf-cart-summary-table .is-final th,
.sprint-gf-cart-summary-table .is-final td {
	padding-top: 11px;
	padding-bottom: 11px;
	border-top: 2px solid var(--sp-border);
	color: var(--sp-heading);
	font-size: 14px;
	font-weight: 700;
}

/* Le bloc doit utiliser toute la largeur disponible dans la cellule produit. */
.woocommerce-cart-form__cart-item .product-name .sprint-gf-cart-layout {
	clear: both;
}


/* Le script ne masque l'ancien rendu qu'après présence confirmée du nouveau bloc. */
.woocommerce-cart-form__cart-item .product-name.sprint-gf-cart-layout-ready > dl.variation,
.woocommerce-cart-form__cart-item .product-name.sprint-gf-cart-layout-ready > .variation {
	display: none !important;
}

@media (max-width: 720px) {
	.sprint-gf-cart-layout {
		margin-top: 14px;
		font-size: 13px;
	}

	.sprint-gf-cart-table-wrap {
		overflow: visible;
	}

	.sprint-gf-cart-table thead {
		display: none;
	}

	.sprint-gf-cart-table,
	.sprint-gf-cart-table tbody,
	.sprint-gf-cart-table tr,
	.sprint-gf-cart-table td {
		display: block;
		width: 100%;
	}

	.sprint-gf-cart-table tr {
		padding: 7px 11px;
		border-bottom: 1px solid var(--sp-border-soft);
	}

	.sprint-gf-cart-table tr:last-child {
		border-bottom: 0;
	}

	.sprint-gf-cart-table td,
	.sprint-gf-cart-table .is-number {
		display: grid;
		grid-template-columns: minmax(110px, 42%) minmax(0, 1fr);
		gap: 10px;
		padding: 5px 0;
		border: 0;
		text-align: right;
		white-space: normal;
	}

	.sprint-gf-cart-table td::before {
		content: attr(data-label);
		color: #646970;
		font-size: 12px;
		font-weight: 600;
		text-align: left;
	}

	.sprint-gf-cart-users-table td {
		overflow-wrap: anywhere;
	}

	.sprint-gf-cart-summary {
		max-width: none;
	}

	.sprint-gf-cart-summary-table th {
		width: auto;
	}
}

/* Nouveau bloc Panier WooCommerce (Store API / React). */
.wp-block-woocommerce-cart .wc-block-cart-items__row.sprint-gf-cart-layout-ready .sprint-gf-cart-legacy-data,
.wp-block-woocommerce-cart .wc-block-cart-items__row.sprint-gf-cart-layout-ready > .wc-block-cart-item__product .wc-block-components-product-metadata {
	display: none !important;
}

.wp-block-woocommerce-cart .sprint-gf-cart-layout--block {
	width: 100%;
	max-width: none;
	margin: 16px 0 12px;
}

.wp-block-woocommerce-cart .wc-block-cart-item__product,
.wp-block-woocommerce-cart .wc-block-cart-item__product .wc-block-cart-item__wrap {
	min-width: 0;
}

.wp-block-woocommerce-cart .sprint-gf-cart-layout--block .sprint-gf-cart-summary {
	max-width: none;
}

@media (min-width: 721px) {
	.wp-block-woocommerce-cart .sprint-gf-cart-layout--block .sprint-gf-cart-table {
		table-layout: auto;
	}
}

/* Bloc Commande WooCommerce : récapitulatif de la page Checkout. */
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready .sprint-gf-cart-legacy-data,
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready .wc-block-components-product-metadata,
.wc-block-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready .sprint-gf-cart-legacy-data,
.wc-block-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready .wc-block-components-product-metadata {
	display: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item > .sprint-gf-cart-layout--checkout,
.wc-block-checkout .wc-block-components-order-summary-item > .sprint-gf-cart-layout--checkout {
	grid-column: 1 / -1;
	width: 100%;
	max-width: none;
	min-width: 0;
	margin: 13px 0 4px;
	font-size: 12px;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-section,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-section {
	margin-bottom: 10px;
	border-radius: 4px;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-section > h4,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-section > h4 {
	padding: 7px 9px;
	font-size: 12px;
}

/*
 * La colonne de récapitulatif est étroite même sur un grand écran. Les tableaux
 * y passent donc toujours en fiches verticales, sans dépendre de la largeur de
 * la fenêtre du navigateur.
 */
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table-wrap,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table-wrap {
	overflow: visible;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table thead,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table thead {
	display: none;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table tbody,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table tr,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table tbody,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table tr,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td {
	display: block;
	width: 100%;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table tr,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table tr {
	padding: 5px 8px;
	border-bottom: 1px solid var(--sp-border-soft);
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table tr:last-child,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table tr:last-child {
	border-bottom: 0;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table .is-number,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table .is-number {
	display: grid;
	grid-template-columns: minmax(92px, 43%) minmax(0, 1fr);
	gap: 8px;
	padding: 3px 0;
	border: 0;
	font-size: 11px;
	text-align: right;
	white-space: normal;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td::before,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td::before {
	content: attr(data-label);
	color: #646970;
	font-size: 10px;
	font-weight: 600;
	text-align: left;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-summary,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-summary {
	max-width: none;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-summary-table th,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-summary-table td,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-summary-table th,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-summary-table td {
	padding: 6px 8px;
	font-size: 11px;
}


/*
 * Checkout Block — correction de la ligne produit étroite.
 * WooCommerce rend chaque article du récapitulatif avec un conteneur flex.
 * Le détail Sprint doit occuper une nouvelle ligne complète, sans pouvoir se
 * rétrécir entre l'image, la description et le prix.
 */
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready,
.wc-block-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready {
	flex-wrap: wrap !important;
	align-items: flex-start;
	min-width: 0;
}

/* L'image apporte peu d'information ici et retire beaucoup de largeur utile. */
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready > .wc-block-components-order-summary-item__image,
.wc-block-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready > .wc-block-components-order-summary-item__image {
	display: none !important;
}

/* Le nom du produit récupère la place libérée par l'image. */
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready > .wc-block-components-order-summary-item__description,
.wc-block-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready > .wc-block-components-order-summary-item__description {
	flex: 1 1 0;
	min-width: 0;
	padding-left: 0 !important;
	padding-right: 10px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready > .wc-block-components-order-summary-item__total-price,
.wc-block-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready > .wc-block-components-order-summary-item__total-price {
	flex: 0 0 auto;
	max-width: 42%;
	white-space: nowrap;
}

/* Nouvelle ligne complète sous l'en-tête produit. */
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready > .sprint-gf-cart-layout--checkout,
.wc-block-checkout .wc-block-components-order-summary-item.sprint-gf-cart-layout-ready > .sprint-gf-cart-layout--checkout {
	order: 99;
	flex: 0 0 100% !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin: 12px 0 6px !important;
	container-type: inline-size;
}

/* Empêche tout contenu long de déborder ou d'étrangler les colonnes. */
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout *,
.wc-block-checkout .sprint-gf-cart-layout--checkout,
.wc-block-checkout .sprint-gf-cart-layout--checkout * {
	min-width: 0;
}

.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout td,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout th,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout a,
.wc-block-checkout .sprint-gf-cart-layout--checkout td,
.wc-block-checkout .sprint-gf-cart-layout--checkout th,
.wc-block-checkout .sprint-gf-cart-layout--checkout a {
	overflow-wrap: anywhere;
	word-break: normal;
}

/* Deux colonnes équilibrées dans la fiche, avec une valeur réellement flexible. */
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td,
.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table .is-number,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td,
.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table .is-number {
	grid-template-columns: minmax(88px, 34%) minmax(0, 1fr);
	column-gap: 10px;
}

/* Sur une colonne vraiment étroite, libellé puis valeur l'un sous l'autre. */
@container (max-width: 330px) {
	.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td,
	.wp-block-woocommerce-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table .is-number,
	.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table td,
	.wc-block-checkout .sprint-gf-cart-layout--checkout .sprint-gf-cart-table .is-number {
		grid-template-columns: 1fr;
		gap: 2px;
		text-align: left;
	}
}
