/* ==========================================================================
   Imperial Dog & Cat — WooCommerce Cart (Block-based) Styles
   Layout controlled by WooCommerce/Astra — only visual styling here
   ========================================================================== */

/* ---------- Cart Page Title ---------- */
.woocommerce-cart .entry-title {
	font-family: "Nunito", sans-serif;
	font-weight: 900;
	color: var(--brown);
}

/* ---------- Cart Block Container ---------- */
.wp-block-woocommerce-cart {
	font-family: "Nunito Sans", sans-serif;
	color: var(--brown-lt);
}

/* ---------- Cart Items Table ---------- */
.wc-block-cart-items .wc-block-cart-items__row {
	border-bottom: 1px solid var(--sand);
	padding: 20px 0;
}

/* Product Name */
.wc-block-cart-item__product .wc-block-components-product-name,
.wc-block-cart-items .wc-block-components-product-name {
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	color: #1A1A1A;
	text-decoration: none;
	transition: color 0.2s ease;
}

.wc-block-cart-item__product .wc-block-components-product-name:hover,
.wc-block-cart-items .wc-block-components-product-name:hover {
	color: var(--terra);
}

/* Product Thumbnail */
.wc-block-cart-item__image img,
.wc-block-cart-items .wc-block-cart-item__image img {
	border-radius: 12px;
	object-fit: cover;
}

/* Product Price */
.wc-block-cart-item__total .wc-block-components-product-price,
.wc-block-cart-items .wc-block-components-product-price {
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	color: #1A1A1A;
}

.wc-block-components-product-price__value {
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	color: #1A1A1A;
}

/* Product Metadata (variations, etc.) */
.wc-block-components-product-metadata {
	font-family: "Nunito Sans", sans-serif;
	font-size: 13px;
	color: var(--stone);
}

/* ---------- Quantity Selector ---------- */
.wc-block-components-quantity-selector {
	border: 2px solid var(--sand);
	border-radius: 10px;
	overflow: hidden;
	transition: border-color 0.2s ease;
}

.wc-block-components-quantity-selector:focus-within {
	border-color: var(--terra);
}

.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	font-size: 15px;
	color: var(--brown);
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	color: var(--stone);
	transition: color 0.2s ease;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
	color: var(--terra);
}

/* ---------- Remove Link ---------- */
.wc-block-cart-item__remove-link,
.wc-block-cart-item__remove-link a {
	font-family: "Nunito Sans", sans-serif;
	font-size: 13px;
	color: var(--stone);
	transition: color 0.2s ease;
}

.wc-block-cart-item__remove-link:hover,
.wc-block-cart-item__remove-link a:hover {
	color: #e74c3c;
}

/* ---------- Cart Totals / Sidebar ---------- */
.wp-block-woocommerce-cart-order-summary-block,
.wc-block-cart__totals-title,
.wc-block-components-totals-wrapper {
	font-family: "Nunito Sans", sans-serif;
}

.wc-block-cart__totals-title {
	font-family: "Nunito", sans-serif;
	font-weight: 900;
	color: var(--brown);
}

/* Subtotal, Shipping labels */
.wc-block-components-totals-item__label {
	font-family: "Nunito Sans", sans-serif;
	font-weight: 600;
	color: var(--stone);
}

/* Subtotal, Shipping values */
.wc-block-components-totals-item__value {
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	color: #1A1A1A;
}

/* Order Total */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: "Nunito", sans-serif;
	font-size: 18px;
	font-weight: 900;
	color: #1A1A1A;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: "Nunito", sans-serif;
	font-size: 18px;
	font-weight: 900;
	color: #1A1A1A;
}

/* ---------- Coupon / Discount ---------- */

/* Coupon toggle link */
.wc-block-components-totals-coupon a,
.wc-block-components-totals-coupon__link,
.wc-block-components-panel__button {
	font-family: "Nunito Sans", sans-serif;
	font-weight: 600;
	color: var(--terra);
	transition: color 0.2s ease;
}

.wc-block-components-totals-coupon a:hover,
.wc-block-components-totals-coupon__link:hover {
	color: var(--terra-dk);
}

/* Coupon input - block version */
.wc-block-components-totals-coupon__form input,
.wc-block-components-totals-coupon__form .wc-block-components-text-input input,
.wc-block-components-totals-coupon input[type="text"],
.wc-block-components-form .wc-block-components-text-input input {
	border: 2px solid var(--sand) !important;
	border-radius: 12px !important;
	padding: 12px 20px !important;
	font-family: "Nunito Sans", sans-serif !important;
	font-size: 14px !important;
	color: var(--brown) !important;
	background: var(--white) !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
	height: auto !important;
}

.wc-block-components-totals-coupon__form input:focus,
.wc-block-components-totals-coupon__form .wc-block-components-text-input input:focus,
.wc-block-components-totals-coupon input[type="text"]:focus {
	border-color: var(--terra) !important;
	box-shadow: 0 0 0 3px var(--terra-xlt) !important;
	outline: none !important;
}

/* Coupon input label */
.wc-block-components-totals-coupon__form .wc-block-components-text-input label,
.wc-block-components-totals-coupon label {
	font-family: "Nunito Sans", sans-serif;
	font-size: 13px;
	color: var(--stone);
}

/* Coupon button - block version */
.wc-block-components-totals-coupon__button,
.wc-block-components-totals-coupon__form .wc-block-components-button,
.wc-block-components-totals-coupon__form button {
	background: #1A1A1A !important;
	color: #FFFFFF !important;
	border: none !important;
	border-radius: 12px !important;
	font-family: "Nunito Sans", sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	padding: 12px 28px !important;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
	height: auto !important;
}

.wc-block-components-totals-coupon__button:hover,
.wc-block-components-totals-coupon__form .wc-block-components-button:hover,
.wc-block-components-totals-coupon__form button:hover {
	background: #000000 !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Applied coupon tag */
.wc-block-components-chip,
.wc-block-components-totals-discount__coupon-list .wc-block-components-chip {
	background: var(--terra-xlt) !important;
	border: 1px solid var(--terra-lt) !important;
	border-radius: 50px !important;
	font-family: "Nunito Sans", sans-serif;
	font-size: 13px;
	font-weight: 700;
	color: var(--terra-dk);
	padding: 4px 12px;
}

.wc-block-components-chip__remove {
	color: var(--terra) !important;
}

.wc-block-components-chip__remove:hover {
	color: #e74c3c !important;
}

/* ---------- Checkout Button ---------- */
.wc-block-cart__submit-button .wc-block-components-button,
.wc-block-cart__submit-container .wc-block-components-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button {
	background: var(--terra) !important;
	color: var(--white) !important;
	border: none !important;
	border-radius: 50px !important;
	font-family: "Nunito Sans", sans-serif !important;
	font-size: 16px !important;
	font-weight: 800 !important;
	padding: 16px 32px !important;
	width: 100%;
	text-align: center;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
}

.wc-block-cart__submit-button .wc-block-components-button:hover,
.wc-block-cart__submit-container .wc-block-components-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button:hover {
	background: var(--terra-dk) !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(75, 174, 224, 0.35);
}

/* ---------- Shipping ---------- */
.wc-block-components-shipping-rates-control {
	font-family: "Nunito Sans", sans-serif;
	font-size: 14px;
	color: var(--brown-lt);
}

.wc-block-components-shipping-rates-control__package-title {
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	color: var(--brown);
}

/* ---------- Empty Cart ---------- */
.wc-block-cart--is-empty .wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block h2 {
	font-family: "Nunito", sans-serif;
	font-weight: 900;
	color: var(--brown);
	text-align: center;
}

.wc-block-cart--is-empty p,
.wp-block-woocommerce-empty-cart-block p {
	font-family: "Nunito Sans", sans-serif;
	color: var(--stone);
	text-align: center;
}

.wc-block-cart--is-empty .wp-block-button__link,
.wp-block-woocommerce-empty-cart-block .wp-block-button__link {
	background: var(--terra);
	color: var(--white);
	border: none;
	border-radius: 50px;
	font-family: "Nunito Sans", sans-serif;
	font-size: 15px;
	font-weight: 700;
	padding: 14px 32px;
	cursor: pointer;
	transition: background 0.2s ease;
}

.wc-block-cart--is-empty .wp-block-button__link:hover,
.wp-block-woocommerce-empty-cart-block .wp-block-button__link:hover {
	background: var(--terra-dk);
}

/* ---------- Cross-sells ---------- */
.wp-block-woocommerce-cart .cross-sells-product-col,
.wp-block-woocommerce-cart .wc-block-components-product-name {
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	color: #1A1A1A;
}

/* ---------- Notices ---------- */
.wc-block-components-notice-banner {
	font-family: "Nunito Sans", sans-serif;
	font-size: 14px;
	border-radius: 12px;
}

.wc-block-components-notice-banner.is-success {
	border-color: var(--terra);
	background: var(--terra-xlt);
	color: var(--brown);
}

.wc-block-components-notice-banner.is-error {
	border-color: #e74c3c;
}

/* ---------- Also support classic shortcode cart (fallback) ---------- */
.woocommerce-cart table.shop_table {
	border: none;
	border-radius: 16px;
	overflow: hidden;
	border-collapse: separate;
	border-spacing: 0;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.woocommerce-cart table.shop_table thead th {
	font-family: "Nunito", sans-serif;
	font-weight: 800;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--brown);
	background: var(--cream);
	border: none;
	padding: 16px 20px;
}

.woocommerce-cart table.shop_table td {
	font-family: "Nunito Sans", sans-serif;
	font-size: 15px;
	color: var(--brown-lt);
	border-bottom: 1px solid var(--sand);
	padding: 20px;
	vertical-align: middle;
}

.woocommerce-cart table.shop_table td.product-name a {
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	color: #1A1A1A;
	text-decoration: none;
}

.woocommerce-cart table.shop_table td.product-name a:hover {
	color: var(--terra);
}

.woocommerce-cart table.shop_table td.product-thumbnail img {
	border-radius: 12px;
}

.woocommerce-cart .cart_totals {
	background: var(--cream);
	border-radius: 16px;
	padding: 28px;
}

.woocommerce-cart .cart_totals h2 {
	font-family: "Nunito", sans-serif;
	font-weight: 900;
	color: var(--brown);
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	background: var(--terra);
	color: var(--white);
	border: none;
	border-radius: 50px;
	font-family: "Nunito Sans", sans-serif;
	font-size: 16px;
	font-weight: 800;
	padding: 16px 32px;
	width: 100%;
	cursor: pointer;
	transition: background 0.2s ease;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--terra-dk);
}

/* ============================================================
   RESPONSIVE — Mobile cart adaptations
   Tablette : layout WC natif inchangé.
   Mobile : marges latérales + ergonomie des contenus.
   ============================================================ */

/* ---------- Mobile (≤ 768px) ---------- */
@media (max-width: 768px) {
	/* Marges latérales sur le wrapper du panier pour ne pas toucher
	   les bords de l'écran. Scope strict au panier. */
	.woocommerce-cart .site-content > .ast-container,
	.woocommerce-cart .ast-container,
	.woocommerce-cart #primary,
	.woocommerce-cart .site-main,
	.woocommerce-cart .wp-block-woocommerce-cart {
		padding-left: 16px;
		padding-right: 16px;
		box-sizing: border-box;
	}

	/* Évite double padding sur le wrapper interne du block cart */
	.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar-layout {
		padding-left: 0;
		padding-right: 0;
		gap: 20px;
	}

	/* Espace entre le bloc items et le bloc totaux quand ils stackent */
	.woocommerce-cart .wp-block-woocommerce-cart-items-block,
	.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
		margin-top: 0;
		margin-bottom: 20px;
	}
	.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
		margin-top: 20px;
		margin-bottom: 0;
		width: 100%;
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
		float: none;
	}

	/* Force le bloc totaux à prendre 100% et se centrer */
	.woocommerce-cart .wp-block-woocommerce-cart-totals-block > *,
	.woocommerce-cart .wc-block-components-sidebar {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	.woocommerce-cart .entry-title {
		font-size: 24px;
		text-align: center;
		margin-bottom: 16px;
	}

	/* ---------- Block cart : rows ---------- */
	.wc-block-cart-items .wc-block-cart-items__row {
		padding: 16px 0;
		gap: 12px;
	}

	/* Thumbnails plus petites */
	.wc-block-cart-item__image,
	.wc-block-cart-items .wc-block-cart-item__image {
		max-width: 72px;
		flex: 0 0 72px;
	}
	.wc-block-cart-item__image img,
	.wc-block-cart-items .wc-block-cart-item__image img {
		width: 72px;
		height: 72px;
		border-radius: 10px;
	}

	/* Nom produit : taille réduite, 2 lignes max avec ellipsis */
	.wc-block-cart-item__product .wc-block-components-product-name,
	.wc-block-cart-items .wc-block-components-product-name {
		font-size: 14px;
		line-height: 1.3;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	/* Prix produit */
	.wc-block-cart-item__total .wc-block-components-product-price,
	.wc-block-cart-items .wc-block-components-product-price,
	.wc-block-components-product-price__value {
		font-size: 14px;
	}

	/* Quantity selector plus compact */
	.wc-block-components-quantity-selector {
		min-width: 96px;
		max-width: 110px;
		border-radius: 8px;
	}
	.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
		font-size: 14px;
		padding: 6px 0;
	}
	.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
		padding: 6px 8px;
		min-width: 28px;
	}

	/* Remove link : plus visible en mobile */
	.wc-block-cart-item__remove-link {
		font-size: 12px;
		margin-top: 6px;
	}

	/* Cart totals sidebar */
	.wp-block-woocommerce-cart .wp-block-woocommerce-cart-totals-block {
		padding: 20px 16px;
		background: var(--cream, #F4F8FB);
		border-radius: 16px;
	}

	.wc-block-cart__totals-title {
		font-size: 18px;
	}

	.wc-block-components-totals-item {
		font-size: 14px;
		padding: 8px 0;
	}

	.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
	.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
		font-size: 17px;
	}

	/* Coupon form stack vertical */
	.wc-block-components-totals-coupon__form {
		flex-direction: column;
		gap: 10px;
	}
	.wc-block-components-totals-coupon__form input,
	.wc-block-components-totals-coupon__form .wc-block-components-text-input input {
		width: 100% !important;
		padding: 12px 16px !important;
		font-size: 14px !important;
	}
	.wc-block-components-totals-coupon__button,
	.wc-block-components-totals-coupon__form button {
		width: 100% !important;
		padding: 13px 20px !important;
	}

	/* Checkout button full-width, taille touch */
	.wc-block-cart__submit-button .wc-block-components-button,
	.wc-block-cart__submit-container .wc-block-components-button,
	.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button {
		padding: 16px 20px !important;
		font-size: 15px !important;
	}

	/* ---------- Classic shortcode cart (fallback) ---------- */
	.woocommerce-cart table.shop_table {
		border-radius: 12px;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
	}

	/* Masquer thead sur mobile (WC l'empile déjà nativement) */
	.woocommerce-cart table.shop_table thead {
		display: none;
	}

	.woocommerce-cart table.shop_table tbody tr {
		display: block;
		padding: 14px 14px 18px;
		border-bottom: 1px solid var(--sand, #CBE5F4);
		position: relative;
	}

	.woocommerce-cart table.shop_table tbody tr:last-child {
		border-bottom: none;
	}

	.woocommerce-cart table.shop_table td {
		display: block;
		padding: 6px 0;
		border: none;
		text-align: left;
		font-size: 14px;
	}

	/* Label avant chaque cellule via data-title */
	.woocommerce-cart table.shop_table td::before {
		content: attr(data-title) " : ";
		font-family: "Nunito", sans-serif;
		font-weight: 800;
		color: var(--brown, #1A1A1A);
		text-transform: uppercase;
		font-size: 11px;
		letter-spacing: 0.05em;
		display: inline-block;
		margin-right: 6px;
	}

	/* Thumbnail centrée, pas de label */
	.woocommerce-cart table.shop_table td.product-thumbnail {
		text-align: center;
		padding-bottom: 12px;
	}
	.woocommerce-cart table.shop_table td.product-thumbnail::before {
		content: "";
		display: none;
	}
	.woocommerce-cart table.shop_table td.product-thumbnail img {
		width: 90px;
		height: 90px;
		object-fit: cover;
		border-radius: 12px;
		margin: 0 auto;
	}

	/* Remove button positionné en absolute top-right */
	.woocommerce-cart table.shop_table td.product-remove {
		position: absolute;
		top: 10px;
		right: 10px;
		padding: 0;
	}
	.woocommerce-cart table.shop_table td.product-remove::before {
		display: none;
	}
	.woocommerce-cart table.shop_table td.product-remove .remove {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 28px;
		height: 28px;
		border-radius: 50%;
		background: var(--cream, #F4F8FB);
		color: var(--stone, #707070) !important;
		font-size: 18px;
		line-height: 1;
	}
	.woocommerce-cart table.shop_table td.product-remove .remove:hover {
		background: #e74c3c;
		color: #fff !important;
	}

	/* Quantity input compact */
	.woocommerce-cart table.shop_table td.product-quantity .qty {
		width: 64px;
		padding: 8px;
		text-align: center;
		border: 2px solid var(--sand, #CBE5F4);
		border-radius: 8px;
		font-size: 14px;
	}

	/* Coupon + update cart actions — stack vertical */
	.woocommerce-cart table.shop_table td.actions {
		padding-top: 16px;
	}
	.woocommerce-cart table.shop_table td.actions .coupon {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
	}
	.woocommerce-cart table.shop_table td.actions .coupon input[type="text"] {
		width: 100% !important;
		padding: 12px 16px;
		border: 2px solid var(--sand, #CBE5F4);
		border-radius: 10px;
		font-size: 14px;
	}
	.woocommerce-cart table.shop_table td.actions .coupon .button,
	.woocommerce-cart table.shop_table td.actions > .button {
		width: 100%;
		padding: 13px 20px;
		border-radius: 10px;
		font-size: 14px;
	}

	/* Cart totals (classic) */
	.woocommerce-cart .cart_totals {
		padding: 20px 16px;
		border-radius: 16px;
		margin-top: 24px;
	}
	.woocommerce-cart .cart_totals h2 {
		font-size: 20px;
	}
	.woocommerce-cart .cart_totals table.shop_table_responsive tr th,
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td {
		font-size: 14px;
		padding: 8px 0;
	}

	.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
		padding: 14px 20px;
		font-size: 15px;
	}

	/* Empty cart — centrage mobile */
	.wc-block-cart--is-empty,
	.wp-block-woocommerce-empty-cart-block {
		padding: 24px 16px;
	}
	.wc-block-cart--is-empty .wc-block-cart__empty-cart__title,
	.wp-block-woocommerce-empty-cart-block h2 {
		font-size: 22px;
	}
}

/* ---------- Très petits écrans (≤ 380px) ---------- */
@media (max-width: 380px) {
	.wc-block-cart-item__image,
	.wc-block-cart-items .wc-block-cart-item__image {
		max-width: 60px;
		flex: 0 0 60px;
	}
	.wc-block-cart-item__image img {
		width: 60px;
		height: 60px;
	}
	.wc-block-cart-items .wc-block-cart-items__row {
		gap: 10px;
	}
}
