/**
 * Cart — diseno-nuevo/carrito
 * Stays inside Shoptimizer's .col-full. Do not override that width.
 */

body.woocommerce-cart {
	--teo-negro: #120a04;
	--teo-cacao: #2a1509;
	--teo-chocolate: #573016;
	--teo-caramelo: #b8712a;
	--teo-dorado: #d4a44e;
	--teo-crema: #f3e8d2;
	--teo-blanco: #fdf8f0;
	--teo-gris: #897769;
	--teo-gris-c: #e5d9c8;
	--teo-display: "Libre Baskerville", Georgia, serif;
	--teo-body: "Outfit", system-ui, sans-serif;
	background: var(--teo-blanco);
	color: var(--teo-cacao);
}

body.woocommerce-cart .site-content,
body.woocommerce-cart #content,
body.woocommerce-cart .content-area,
body.woocommerce-cart .site-main {
	background: var(--teo-blanco);
}

body.woocommerce-cart h1.entry-title {
	display: none;
}

body.woocommerce-cart .woocommerce-breadcrumb {
	font-family: var(--teo-body);
	font-size: 12px;
	font-weight: 400;
	color: var(--teo-gris);
	background: transparent;
	border-bottom: 1px solid var(--teo-gris-c);
	padding: 14px 0;
	margin: 0;
}

body.woocommerce-cart .woocommerce-breadcrumb a {
	color: var(--teo-gris);
	text-decoration: none;
}

body.woocommerce-cart .teo-cart-title {
	font-family: var(--teo-display);
	font-size: 36px;
	font-weight: 700;
	line-height: 1.15;
	color: var(--teo-negro);
	margin: 28px 0 28px;
}

/* Filled cart: items + summary. The column width is still .col-full. */
body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 380px);
	column-gap: 48px;
	row-gap: 12px;
	align-items: start;
}

body.woocommerce-cart .teo-cart-title,
body.woocommerce-cart .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

body.woocommerce-cart .checkout-wrap {
	display: none !important;
}

/* Shoptimizer wraps the form and the summary in one sidebar-width section. */
body.woocommerce-cart .shoptimizer-cart-wrapper {
	display: contents;
}

body.woocommerce-cart form.woocommerce-cart-form {
	grid-column: 1;
	min-width: 0;
	margin: 0;
	float: none !important;
	width: auto !important;
	max-width: none !important;
}

body.woocommerce-cart .cart-collaterals {
	display: block;
	grid-column: 2;
	float: none !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	margin: 0;
}

body.woocommerce-cart .cart_totals {
	grid-column: 2;
	min-width: 0;
	float: none;
	width: auto !important;
	background: var(--teo-crema);
	border: 1.5px solid var(--teo-negro);
	padding: 28px;
	margin: 0;
}

body.woocommerce-cart .cross-sells {
	grid-column: 1 / -1;
	float: none;
	width: auto;
	margin-top: 32px;
}

@media (min-width: 1025px) {
	body.woocommerce-cart .cart_totals {
		position: sticky;
		top: 24px;
	}
}

/* Notices */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
	background: var(--teo-crema) !important;
	color: var(--teo-cacao) !important;
	border: 0 !important;
	border-left: 3px solid var(--teo-caramelo) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: var(--teo-body);
	font-size: 14px;
	font-weight: 400;
}

body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-error::before {
	color: var(--teo-caramelo) !important;
}

body.woocommerce-cart .woocommerce-message .button,
body.woocommerce-cart .woocommerce-info .button,
body.woocommerce-cart .woocommerce-error .button {
	background: var(--teo-caramelo) !important;
	color: var(--teo-negro) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: var(--teo-body);
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Empty cart stays a notice visually; reset it to the mockup. */
body.woocommerce-cart .wc-empty-cart-message {
	text-align: center;
	padding: 48px 16px 8px;
}

body.woocommerce-cart .cart-empty.woocommerce-info {
	background: transparent !important;
	border: 0 !important;
	color: var(--teo-gris) !important;
	padding: 0 !important;
	margin: 0 auto !important;
	max-width: 420px;
	text-align: center;
}

body.woocommerce-cart .cart-empty.woocommerce-info::before {
	display: none !important;
}

body.woocommerce-cart .teo-cart-empty-title {
	font-family: var(--teo-display);
	font-size: 28px;
	font-weight: 700;
	color: var(--teo-negro);
	margin: 0 0 8px;
}

body.woocommerce-cart .teo-cart-empty-text {
	margin: 0;
	font-family: var(--teo-body);
	font-size: 15px;
	font-weight: 300;
	color: var(--teo-gris);
}

body.woocommerce-cart p.return-to-shop {
	text-align: center;
	margin: 24px 0 48px;
}

body.woocommerce-cart p.return-to-shop a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--teo-caramelo) !important;
	color: var(--teo-negro) !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	min-height: 48px;
	padding: 0 22px !important;
	font-family: var(--teo-body) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Line items */
body.woocommerce-cart table.shop_table.cart {
	display: block;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0;
	border: 0 !important;
	background: transparent;
}

body.woocommerce-cart table.shop_table.cart thead,
body.woocommerce-cart table.shop_table.cart tbody {
	display: block;
	width: 100%;
}

body.woocommerce-cart table.shop_table.cart thead tr {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	border-bottom: 2px solid var(--teo-negro);
	padding: 0 0 12px;
}

body.woocommerce-cart table.shop_table.cart thead th {
	display: block;
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	font-family: var(--teo-body);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--teo-gris);
}

body.woocommerce-cart table.shop_table.cart thead .product-remove,
body.woocommerce-cart table.shop_table.cart thead .product-thumbnail,
body.woocommerce-cart table.shop_table.cart thead .product-price {
	display: none;
}

body.woocommerce-cart table.shop_table.cart thead .product-name {
	flex: 1 1 auto;
	padding-left: 96px !important;
	text-align: left;
}

body.woocommerce-cart table.shop_table.cart thead .product-quantity {
	flex: 0 0 140px;
	text-align: center;
}

body.woocommerce-cart table.shop_table.cart thead .product-subtotal {
	flex: 0 0 100px;
	font-size: 0;
	text-align: right;
}

body.woocommerce-cart table.shop_table.cart thead .product-subtotal::after {
	content: "Total";
	font-size: 10px;
	letter-spacing: 0.16em;
}

body.woocommerce-cart table.shop_table.cart tr.cart_item,
body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr) 140px 100px;
	grid-template-areas:
		"thumb name qty total"
		"thumb price qty total"
		"thumb remove qty total";
	column-gap: 16px;
	row-gap: 2px;
	align-items: center;
	padding: 18px 0;
	border-bottom: 1px solid var(--teo-gris-c);
}

body.woocommerce-cart table.shop_table.cart tr.cart_item td,
body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td {
	display: block;
	width: auto !important;
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	min-width: 0;
}

body.woocommerce-cart table.shop_table.cart tr.cart_item td::before,
body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td::before {
	display: none !important;
	content: none !important;
}

body.woocommerce-cart td.product-thumbnail {
	grid-area: thumb;
	align-self: start;
}

body.woocommerce-cart td.product-thumbnail img,
body.woocommerce-cart td.product-thumbnail a {
	display: block;
	width: 80px !important;
	height: 80px !important;
	max-width: 80px;
	object-fit: cover;
	background: var(--teo-crema);
}

body.woocommerce-cart td.product-name {
	grid-area: name;
}

body.woocommerce-cart td.product-name a {
	font-family: var(--teo-display);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--teo-negro);
	text-decoration: none;
}

body.woocommerce-cart td.product-name .variation,
body.woocommerce-cart td.product-name dl {
	margin: 2px 0 0;
	font-family: var(--teo-body);
	font-size: 12px;
	font-weight: 300;
	color: var(--teo-gris);
}

body.woocommerce-cart td.product-price {
	grid-area: price;
	font-family: var(--teo-body);
	font-size: 12px;
	font-weight: 300;
	color: var(--teo-gris);
}

body.woocommerce-cart td.product-price .amount::after {
	content: " / u.";
}

body.woocommerce-cart td.product-remove {
	grid-area: remove;
	text-align: left;
}

body.woocommerce-cart td.product-remove a.remove::before,
body.woocommerce-cart td.product-remove a.remove::after {
	display: none !important;
	content: none !important;
	background: none !important;
}

body.woocommerce-cart td.product-remove a.remove {
	display: inline;
	width: auto !important;
	height: auto !important;
	background: transparent !important;
	color: var(--teo-gris) !important;
	font-family: var(--teo-body);
	font-size: 11px !important;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-decoration: underline;
	text-transform: none;
	border-radius: 0;
}

body.woocommerce-cart td.product-remove a.remove:hover {
	color: var(--teo-chocolate) !important;
	background: transparent !important;
}

body.woocommerce-cart td.product-quantity {
	grid-area: qty;
	justify-self: center;
}

body.woocommerce-cart td.product-subtotal {
	grid-area: total;
	justify-self: end;
	font-family: var(--teo-display);
	font-size: 16px;
	font-weight: 700;
	color: var(--teo-chocolate);
	text-align: right;
	white-space: nowrap;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	position: relative;
	border: 1.5px solid var(--teo-gris-c);
	background: var(--teo-blanco);
	height: 36px;
	width: 108px;
	margin: 0;
	float: none;
	overflow: hidden;
	padding: 0;
	border-radius: 0 !important;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .quantity-nav {
	display: contents;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .quantity-button {
	position: static !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 36px;
	float: none !important;
	margin: 0 !important;
	background: transparent !important;
	color: var(--teo-cacao);
	font-family: var(--teo-body);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .quantity-down {
	order: 1;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .quantity-up {
	order: 3;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .quantity-down::before {
	content: "−" !important;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .quantity-up::before {
	content: "+" !important;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .quantity-button::before {
	position: static !important;
	inset: auto !important;
	transform: none !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	line-height: 1 !important;
	color: var(--teo-negro) !important;
	font-family: var(--teo-body) !important;
	font-size: 16px !important;
	background: none !important;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .qty,
body.woocommerce-cart form.woocommerce-cart-form .quantity input.qty {
	order: 2;
	flex: 1 1 auto;
	width: 36px !important;
	height: 36px !important;
	min-height: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	opacity: 1 !important;
	position: static !important;
	text-align: center;
	font-family: var(--teo-body);
	font-size: 14px;
	font-weight: 500;
	color: var(--teo-negro) !important;
	-webkit-text-fill-color: var(--teo-negro);
	-moz-appearance: textfield;
	appearance: textfield;
	border-radius: 0 !important;
}

body.woocommerce-cart form.woocommerce-cart-form .quantity .qty::-webkit-outer-spin-button,
body.woocommerce-cart form.woocommerce-cart-form .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.woocommerce-cart .cart-custom-field {
	display: none !important;
}

body.woocommerce-cart .teo-cart-links {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-top: 18px;
}

body.woocommerce-cart .teo-cart-continue,
body.woocommerce-cart .teo-cart-clear {
	font-family: var(--teo-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.woocommerce-cart .teo-cart-continue {
	color: var(--teo-caramelo);
}

body.woocommerce-cart .teo-cart-clear {
	color: var(--teo-gris);
}

body.woocommerce-cart .teo-cart-links .teo-cart-update {
	margin-left: auto;
	margin-right: 20px;
	order: 2;
}

body.woocommerce-cart .teo-cart-links .teo-cart-clear {
	order: 3;
}

body.woocommerce-cart form.woocommerce-cart-form .actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	padding: 8px 0 0 !important;
	margin: 0;
	background: transparent !important;
	border: 0 !important;
}

body.woocommerce-cart form.woocommerce-cart-form .actions button[name="update_cart"],
body.woocommerce-cart button.teo-cart-update {
	background: transparent !important;
	color: var(--teo-gris) !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	min-height: 0 !important;
	height: auto !important;
	width: auto !important;
	line-height: 1.2 !important;
	font-family: var(--teo-body) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.woocommerce-cart form.woocommerce-cart-form .actions button[name="update_cart"]:disabled {
	opacity: 0.45;
}

/* Summary */
body.woocommerce-cart .cart_totals > h2 {
	display: block !important;
	font-family: var(--teo-body);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--teo-caramelo);
	margin: 0 0 18px;
	height: auto !important;
	width: auto !important;
	clip: auto !important;
	position: static !important;
}

body.woocommerce-cart .cart_totals table,
body.woocommerce-cart .cart_totals table tbody,
body.woocommerce-cart .cart_totals table tr,
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
	display: block;
	width: 100% !important;
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	box-shadow: none !important;
}

body.woocommerce-cart .cart_totals table {
	margin: 0 0 18px;
	height: auto !important;
}

body.woocommerce-cart .cart_totals table tr {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 8px 0;
	font-family: var(--teo-body);
	font-size: 14px;
	font-weight: 400;
	color: var(--teo-cacao);
}

body.woocommerce-cart .cart_totals table th {
	flex: 1 1 auto;
	text-align: left;
	font-weight: 400;
}

body.woocommerce-cart .cart_totals table td {
	flex: 0 1 auto;
	text-align: right;
}

body.woocommerce-cart .cart_totals .order-total {
	margin-top: 8px;
	padding-top: 14px !important;
	border-top: 1px solid var(--teo-gris-c) !important;
}

body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td,
body.woocommerce-cart .cart_totals .order-total .amount {
	font-family: var(--teo-display);
	font-size: 24px;
	font-weight: 700;
	color: var(--teo-chocolate);
}

body.woocommerce-cart .cart_totals .shipping td,
body.woocommerce-cart .cart_totals .woocommerce-shipping-totals td {
	font-size: 13px;
	font-weight: 300;
	color: var(--teo-gris);
}

body.woocommerce-cart .teo-cart-coupon {
	display: flex;
	gap: 8px;
	margin: 0 0 16px;
}

body.woocommerce-cart .teo-cart-coupon label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

body.woocommerce-cart .teo-cart-coupon input[name="coupon_code"] {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	border: 1.5px solid var(--teo-gris-c);
	background: var(--teo-blanco);
	padding: 0 12px;
	font-family: var(--teo-body);
	font-size: 14px;
	color: var(--teo-negro);
	border-radius: 0;
}

body.woocommerce-cart .teo-cart-coupon button {
	flex: 0 0 auto;
	height: 44px;
	padding: 0 14px !important;
	background: transparent !important;
	color: var(--teo-negro) !important;
	border: 1.5px solid var(--teo-negro) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: var(--teo-body) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.woocommerce-cart .wc-proceed-to-checkout {
	margin: 0;
	padding: 0;
}

body.woocommerce-cart a.checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-height: 52px;
	margin: 0 !important;
	background: var(--teo-caramelo) !important;
	color: var(--teo-negro) !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: var(--teo-body) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: center;
}

body.woocommerce-cart a.checkout-button:hover {
	background: var(--teo-dorado) !important;
	color: var(--teo-negro) !important;
}

body.woocommerce-cart a.checkout-button::before {
	display: none !important;
	content: none !important;
	background: none !important;
}

body.woocommerce-cart a.checkout-button::after {
	content: " >" !important;
	background: none !important;
	font-family: var(--teo-body) !important;
	color: var(--teo-negro) !important;
}

body.woocommerce-cart .teo-cart-secure {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 14px 0 0;
	font-family: var(--teo-body);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var(--teo-gris);
}

@media (max-width: 1024px) {
	body.woocommerce-cart .woocommerce:has(form.woocommerce-cart-form) {
		grid-template-columns: minmax(0, 1fr);
	}

	body.woocommerce-cart form.woocommerce-cart-form,
	body.woocommerce-cart .cart-collaterals,
	body.woocommerce-cart .cart_totals,
	body.woocommerce-cart .cross-sells {
		grid-column: 1;
	}

	body.woocommerce-cart .cart_totals {
		position: static;
		margin-top: 8px;
	}
}

@media (max-width: 768px) {
	body.woocommerce-cart .teo-cart-title {
		font-size: 28px;
		margin: 20px 0 18px;
	}

	body.woocommerce-cart table.shop_table.cart thead {
		display: none;
	}

	body.woocommerce-cart table.shop_table.cart tr.cart_item,
	body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 72px minmax(0, 1fr);
		grid-template-areas:
			"thumb name"
			"thumb price"
			"thumb remove"
			"qty total";
		column-gap: 12px;
		padding: 16px 0;
	}

	body.woocommerce-cart td.product-thumbnail img,
	body.woocommerce-cart td.product-thumbnail a {
		width: 72px !important;
		height: 72px !important;
		max-width: 72px;
	}

	body.woocommerce-cart td.product-quantity {
		justify-self: start;
		margin-top: 8px;
	}

	body.woocommerce-cart td.product-subtotal {
		align-self: end;
		margin-top: 8px;
	}

	body.woocommerce-cart .cart_totals {
		padding: 20px 16px;
	}

	body.woocommerce-cart .cart_totals .order-total th,
	body.woocommerce-cart .cart_totals .order-total td,
	body.woocommerce-cart .cart_totals .order-total .amount {
		font-size: 20px;
	}

	body.woocommerce-cart .teo-cart-coupon {
		flex-wrap: wrap;
	}

	body.woocommerce-cart .teo-cart-coupon input[name="coupon_code"] {
		flex: 1 1 100%;
	}

	body.woocommerce-cart .teo-cart-coupon button {
		width: 100%;
	}
}
