/* Estilos propios del carrito (shopping_cart.tpl). CSS plano, sin compilar. */

/* Enlace "Continuar" bajo el titulo. Solo escritorio/tablet: en movil va dentro del resumen. */
.cart-continue-link {
	display: none;
}

@media only screen and (min-width: 768px) {
	.cart-continue-link {
		display: inline-block;
		margin: 8px 0 24px;
		font-size: 0.875rem;
		color: #39CEA1;
		text-decoration: underline;
	}
}

/* Lista de productos en escritorio/tablet (paso 2 del rediseno): cabecera gris en mayusculas,
   anchos fijos y separador fino entre lineas (productos, ofertas, regalos). En movil, tarjetas. */
@media only screen and (min-width: 768px) {
	.cart-item-row > td {
		border-top: 1px solid #eeeeee;
	}

	#shopping-cart table tr.cart-head-row > th {
		padding: 10px 12px;
		background: #f5f5f5;
		font-size: 11px;
		font-weight: 500;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		color: #4b4b4b;
		text-align: center;
		line-height: 1.3;
	}

	/* "Producto(s)" ocupa papelera + imagen + nombre: se desplaza para quedar sobre el nombre. */
	#shopping-cart table tr.cart-head-row > th:first-child {
		padding-left: 173px;
		text-align: left;
	}

	#shopping-cart table tr.cart-head-row > th:last-child {
		text-align: right;
	}

	#shopping-cart table tr.cart-item-row > td {
		padding: 20px 12px;
		vertical-align: middle;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(1) {
		width: 48px;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(2) {
		width: 94px;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(3) {
		text-align: left;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(4) {
		width: 130px;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(5) {
		width: 150px;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(6) {
		width: 100px;
		text-align: right;
		white-space: nowrap;
	}

	#shopping-cart table tr.cart-item-row .foto {
		width: 70px;
		height: 70px;
	}

	/* Contenido de las lineas (paso 3). */
	#shopping-cart table tr.cart-item-row > td:nth-child(3) {
		font-size: 15px;
		line-height: 1.35;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(3) .entrega {
		font-size: 12.5px;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(4),
	#shopping-cart table tr.cart-item-row > td:nth-child(6) {
		font-size: 15px;
	}
}

/* Contenido de las lineas (paso 3), comun a escritorio y movil: texto oscuro, stock con punto,
   "(antes X)" pequeno y pastillas de oferta/regalo alineadas a la izquierda, sobre el nombre.
   El "Gratis" de los regalos (td.entrega) conserva su verde. */
#shopping-cart table tr.cart-item-row > td:not(.entrega) {
	color: #232323;
}

#shopping-cart table tr.cart-item-row > td:nth-child(3) p {
	margin: 4px 0 0;
	line-height: 1.35;
}

#shopping-cart table tr.cart-item-row > td:nth-child(3) .entrega::before {
	content: "";
	display: inline-block;
	position: relative;
	top: -1px;
	width: 6px;
	height: 6px;
	margin-right: 6px;
	border-radius: 50%;
	background: currentColor;
	vertical-align: middle;
}

#shopping-cart table tr.cart-item-row > td:nth-child(4) span[style] {
	font-size: 12px;
}

#shopping-cart table tr.cart-item-row > td:nth-child(3) span[role="img"] {
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-bottom: 4px !important;
}

/* Etiqueta "Precio unidad de venta" sobre el precio: solo en movil, donde no hay cabecera. */
.cart-price-label {
	display: none;
}

/* La etiqueta "Cantidad:" de ofertas y regalos solo se ve en movil. */
.cart-qty-label {
	display: none;
}

/* Zona inferior (paso 4 del rediseno). Movil: resumen, enlaces + aviso, Sequra. Escritorio: enlaces + aviso a
   la izquierda; resumen a la derecha con Sequra pegado debajo (mismo borde, parece dentro de la caja). */
.cart-bottom {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"summary"
		"aside"
		"sequra";
	row-gap: 24px;
	margin-top: 24px;
	border-top: 1px solid #eeeeee;
	padding-top: 24px;
}

.cart-bottom__aside {
	grid-area: aside;
}

.cart-bottom__links,
.cart-bottom__links li {
	margin: 0;
	padding: 0;
	list-style: none;
	background: none;
}

.cart-bottom__links {
	margin-bottom: 16px;
}

.cart-bottom__links li + li {
	margin-top: 8px;
}

/* Los li de la web llevan un ancho propio (partian "Descargar presupuesto" en tablet): cada enlace, a su ancho. */
#shopping-cart .cart-bottom__links li {
	width: auto;
}

/* El enlace de presupuesto llega del PHP con clases de boton (button link px-10 mb-10...): aqui, enlace simple. */
#shopping-cart .cart-bottom__links a {
	display: inline;
	width: auto;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	background: none;
	font-size: 14px;
	font-weight: 400;
	/* .button le pone line-height: 21px y quedaba mas alto que los otros enlaces. */
	line-height: inherit;
	text-transform: none;
	color: #39CEA1;
	text-decoration: underline;
}

.cart-bottom__info {
	display: flex;
	gap: 10px;
	padding: 12px 14px;
	background: #f5f5f5;
	font-size: 12px;
	line-height: 1.5;
	color: #4b4b4b;
}

.cart-bottom__info svg {
	flex-shrink: 0;
	margin-top: 1px;
}

.cart-summary {
	grid-area: summary;
	border: 1px solid #e2e2e2;
}

.cart-summary__title {
	margin: 0;
	padding: 12px 16px;
	background: #90288e;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #ffffff;
}

.cart-summary__body {
	padding: 16px;
}

/* Lineas de totales (paso 5): etiqueta | importe, separador fino. Envio con nota y barra hasta el envio
   gratis; el total, destacado en morado. */
.cart-summary__totals {
	margin-bottom: 16px;
}

.cart-summary__row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px solid #eeeeee;
	font-size: 14px;
	line-height: 1.35;
	color: #232323;
}

.cart-summary__row:first-child {
	padding-top: 0;
}

.cart-summary__label {
	flex: 1 1 auto;
	min-width: 0;
}

.cart-summary__value {
	flex-shrink: 0;
	white-space: nowrap;
}

.cart-summary__note {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	color: #767676;
}

.cart-summary__progress {
	display: block;
	height: 2px;
	margin-top: 6px;
	background: #dddddd;
}

.cart-summary__progress > span {
	display: block;
	height: 100%;
	background: #39CEA1;
}

/* Nota de zonas (Peninsula / islas, Ceuta, Melilla y UE): bajo la barra de progreso, si la hay. */
.cart-summary__progress + .cart-summary__note--zones {
	margin-top: 6px;
}

/* Envio gratuito: texto, importe y barra de progreso llena en el verde de la web. */
.cart-summary__note--free {
	font-weight: 500;
	color: #39CEA1;
}

.cart-summary__row.is-free-shipping .cart-summary__value,
.cart-sticky__col--shipping.is-free-shipping .cart-sticky__value {
	color: #39CEA1;
}

.cart-summary__row--ot_total {
	align-items: center;
	padding: 14px 0 4px;
	border-bottom: 0;
}

.cart-summary__row--ot_total .cart-summary__label {
	font-size: 16px;
	font-weight: 500;
}

.cart-summary__row--ot_total .cart-summary__value {
	font-size: 24px;
	font-weight: 500;
	color: #90288e;
}

/* Boton de compra a todo el ancho de la caja. */
#shopping-cart .cart-summary .button.submit {
	display: flex;
	justify-content: center;
	float: none !important;
	width: 100%;
}

.cart-summary__continue {
	display: block;
	margin-top: 14px;
	font-size: 14px;
	text-align: center;
	color: #39CEA1;
	text-decoration: underline;
}

.cart-summary-sequra {
	grid-area: sequra;
}

@media only screen and (min-width: 768px) {
	.cart-bottom {
		grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
		grid-template-areas:
			"aside summary"
			"aside sequra";
		column-gap: 40px;
		row-gap: 0;
		align-items: start;
	}

	.cart-summary:has(+ .cart-summary-sequra) {
		border-bottom: 0;
	}

	.cart-summary-sequra {
		padding: 0 16px 16px;
		border: 1px solid #e2e2e2;
		border-top: 0;
	}

	.cart-summary__continue {
		display: none;
	}
}

@media only screen and (max-width: 576px) {
	#shopping-cart form > .gift-choice:first-of-type {
		margin-top: 18px;
	}
}

/* Barra fija inferior (paso 6). Fuera de la pantalla hasta que el JS le pone .is-visible, que es cuando el
   total del resumen no se ve. Movil: total y boton, a todo el ancho. Escritorio: tarjeta con enlaces + aviso
   (desde 1194px), subtotal, envio (nota y barra desde 992px), total y boton. */
.cart-sticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px 16px;
	background: #ffffff;
	box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.12);
	transform: translateY(calc(100% + 20px));
	visibility: hidden;
	transition: transform 0.25s ease, visibility 0s linear 0.25s;
}

.cart-sticky.is-visible {
	transform: none;
	visibility: visible;
	transition: transform 0.25s ease, visibility 0s;
}

.cart-sticky__aside,
.cart-sticky__col--subtotal,
.cart-sticky__col--shipping {
	display: none;
}

.cart-sticky__col--total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}

.cart-sticky__label {
	font-size: 16px;
	font-weight: 500;
	color: #232323;
}

.cart-sticky__value {
	white-space: nowrap;
	color: #232323;
}

.cart-sticky__col--total .cart-sticky__value {
	font-size: 22px;
	font-weight: 500;
	color: #90288e;
}

#shopping-cart .cart-sticky .button.submit {
	display: flex;
	justify-content: center;
	align-items: center;
	float: none !important;
	width: 100%;
	margin: 0;
}

/* Aviso del plazo y nota de portes en la barra, en una caja gris: .cart-sticky__notes por debajo de 1194px
   (y en tablet) y .cart-sticky__info en la columna izquierda de escritorio, bajo los enlaces. */
.cart-sticky__notes,
.cart-sticky__info {
	display: grid;
	gap: 3px;
	padding: 8px 12px;
	background: #f5f5f5;
	font-size: 11px;
	line-height: 1.35;
	color: #4b4b4b;
}

/* #shopping-cart: la regla global de parrafos (margin-bottom) ganaba a una sola clase. */
#shopping-cart .cart-sticky__notes p,
#shopping-cart .cart-sticky__info p {
	display: flex;
	gap: 6px;
	margin: 0;
}

.cart-sticky__notes svg,
.cart-sticky__info svg {
	flex-shrink: 0;
	margin-top: 2px;
}

/* Movil: misma tarjeta flotante que en escritorio (8px de los bordes, borde y sombra); total y boton en una
   fila, notas debajo. */
@media only screen and (max-width: 767px) {
	.cart-sticky {
		left: 8px;
		right: 8px;
		bottom: calc(8px + env(safe-area-inset-bottom, 0px));
		display: grid;
		/* El boton ocupa lo justo para su texto y el total el resto: caben importes de 5-6 cifras. */
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"total button"
			"notes notes";
		column-gap: 12px;
		row-gap: 8px;
		padding: 8px;
		border: 1px solid #e2e2e2;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	}

	.cart-sticky__col--total {
		grid-area: total;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 0;
	}

	.cart-sticky__col--total .cart-sticky__label {
		font-size: 12px;
	}

	.cart-sticky__col--total .cart-sticky__value {
		font-size: 20px;
		line-height: 1.15;
	}

	.cart-sticky__button {
		grid-area: button;
		display: flex;
	}

	#shopping-cart .cart-sticky .button.submit {
		padding-left: 16px;
		padding-right: 16px;
		text-align: center;
		white-space: nowrap;
	}

	.cart-sticky__notes {
		grid-area: notes;
		gap: 2px;
		padding: 6px 10px;
	}
}

/* Con la barra visible, los botones flotantes de la web (contacto en movil, sello de Trusted Shops) suben por
   encima de ella. El sello lo inyecta Trusted Shops: su capa fija es la nieta del contenedor trustbadge-container-*.
   :not(#_) suma especificidad de id: layout.css fija el sello con #trustbadge-container-... ._1y0juye !important. */
body.cart-sticky-open:not(#_) [id^="trustbadge-container"] > div > div {
	/* Altura de la barra + su separacion del fondo en escritorio (10px) + 10px de aire. */
	bottom: calc(var(--cart-sticky-h, 0px) + 20px) !important;
}

/* Los botones de contacto solo flotan abajo en movil; en tablet y escritorio van en la cabecera y no se tocan. */
@media only screen and (max-width: 767px) {
	body.cart-sticky-open:not(#_) .contact-buttons {
		bottom: calc(var(--cart-sticky-h, 0px) + 20px) !important;
	}

	/* Chat de Oct8ne: en movil va 65px por encima de los botones de contacto (vendors/_oct8ne.sass). */
	body.cart-sticky-open:not(#_) #livechat-wrapper {
		bottom: calc(var(--cart-sticky-h, 0px) + 85px) !important;
	}
}

/* Chat de Oct8ne en tablet y escritorio: justo por encima de la barra. */
@media only screen and (min-width: 768px) {
	body.cart-sticky-open:not(#_) #livechat-wrapper {
		bottom: calc(var(--cart-sticky-h, 0px) + 20px) !important;
	}
}

@media only screen and (min-width: 768px) {
	.cart-sticky {
		left: 10px;
		right: 10px;
		bottom: 10px;
		flex-direction: row;
		align-items: stretch;
		gap: 0;
		padding: 10px;
		border: 1px solid #e2e2e2;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	}

	.cart-sticky__col,
	.cart-sticky__col--total {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		align-items: flex-start;
		gap: 8px;
		padding: 0 14px;
		border-left: 1px solid #eeeeee;
	}

	/* Sin enlaces (por debajo de 1194px) los importes se agrupan a la derecha. */
	.cart-sticky__col--subtotal {
		margin-left: auto;
		border-left: 0;
	}

	.cart-sticky__label {
		font-size: 11px;
		font-weight: 700;
		white-space: nowrap;
	}

	.cart-sticky__value {
		font-size: 16px;
	}

	.cart-sticky__col--total .cart-sticky__value {
		font-size: 20px;
	}

	.cart-sticky__col--shipping {
		/* Solo el texto de los 100 EUR y la barra de progreso (la nota de portes va a la izquierda). */
		flex: 0 1 340px;
		min-width: 0;
		align-items: stretch;
	}

	.cart-sticky__shipping {
		display: flex;
		align-items: flex-end;
		gap: 12px;
	}

	.cart-sticky__shipping-note {
		flex: 1 1 auto;
		min-width: 0;
	}

	/* Notas del envio compactas: la de zonas es la que marca la altura de la barra. */
	.cart-sticky__shipping-note .cart-summary__note {
		line-height: 1.35;
	}

	.cart-sticky__shipping .cart-sticky__value {
		margin-left: auto;
	}

	.cart-sticky__button {
		display: flex;
		flex: 0 0 260px;
		margin-left: 6px;
	}
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
	.cart-sticky__shipping-note {
		display: none;
	}

	.cart-sticky__col--shipping {
		flex-basis: auto;
	}

	.cart-sticky__button {
		flex-basis: 200px;
	}
}

@media only screen and (min-width: 1194px) {
	.cart-sticky__aside {
		display: block;
		flex: 1 1 auto;
		min-width: 0;
		padding-right: 14px;
	}

	/* Aqui el aviso ya va en la columna izquierda y la nota de portes en la de envio. */
	.cart-sticky__notes {
		display: none;
	}

	.cart-sticky__col--subtotal {
		margin-left: 0;
		border-left: 1px solid #eeeeee;
	}

	.cart-sticky__links {
		display: flex;
		flex-wrap: wrap;
		gap: 4px 20px;
		margin-bottom: 8px;
	}

	.cart-sticky__links li + li {
		margin-top: 0;
	}
}

/* Tablet (vertical y horizontal): sin enlaces en la barra; el aviso y la nota de portes ocupan la columna
   izquierda, donde irian los enlaces. Se aplica entre 768 y 1193px y, por encima, en pantallas tactiles sin
   raton (iPad horizontal), que se distinguen de un portatil por hover/pointer. */
@media only screen and (min-width: 768px) and (max-width: 1193px), only screen and (min-width: 1194px) and (hover: none) and (pointer: coarse) {
	.cart-sticky__aside {
		display: none;
	}

	.cart-sticky__notes {
		display: grid;
		order: -1;
		flex: 1 1 auto;
		align-content: center;
		min-width: 0;
		margin-right: 14px;
	}

	.cart-sticky__col--subtotal {
		margin-left: 0;
		border-left: 0;
	}

	/* Columna de envio a su contenido (la etiqueta no se mete en la del total) y boton algo mas estrecho:
	   el espacio sobrante es para las notas. */
	.cart-sticky__col--shipping {
		flex: 0 0 auto;
	}

	.cart-sticky__button {
		flex-basis: 180px;
	}
}

/* Tablet en vertical: notas debajo a todo el ancho, como en movil, y los importes repartidos en el espacio
   a la izquierda del boton (sin hueco vacio). Se distingue del horizontal por la orientacion. */
@media only screen and (min-width: 768px) and (max-width: 1366px) and (orientation: portrait) {
	.cart-sticky {
		flex-wrap: wrap;
		row-gap: 8px;
	}

	.cart-sticky__notes {
		order: 10;
		flex: 0 0 100%;
		margin-right: 0;
	}

	.cart-sticky__col--subtotal,
	.cart-sticky__col--shipping,
	.cart-sticky__col--total {
		flex: 1 1 0;
	}

	/* Importe del envio alineado a la izquierda, como subtotal y total (sin nota, iba empujado a la derecha). */
	.cart-sticky__shipping .cart-sticky__value {
		margin-left: 0;
	}
}

/* Lineas del carrito en movil (paso 2 del rediseno): tarjetas en 2 filas, sin cabecera.
   Celdas: 1 papelera, 2 imagen, 3 nombre (+ stock o pastilla), 4 precio unidad, 5 cantidad, 6 total.
   [img] [nombre + stock      ] [papelera]
   [precio unidad] [cantidad]   [total   ]
   Las reglas globales de movil solo llegan a 576px: la tabla pasa a bloque para que las tarjetas (grid)
   ocupen todo el ancho tambien entre 577 y 767px. */
@media only screen and (max-width: 767px) {
	#shopping-cart table tr.cart-head-row {
		display: none;
	}

	#shopping-cart form > table,
	#shopping-cart form > table > tbody {
		display: block;
		width: 100%;
	}

	#shopping-cart table tr.cart-item-row {
		display: grid;
		grid-template-columns: 76px minmax(0, 1fr) auto auto;
		grid-template-areas:
			"img   name  name del"
			"price price qty  total";
		column-gap: 12px;
		row-gap: 12px;
		align-items: start;
		float: none;
		width: 100%;
		margin-bottom: 0;
		padding: 16px 0;
		border-top: 1px solid #eeeeee;
	}

	#shopping-cart table tr.cart-item-row > td {
		float: none;
		width: auto !important;
		padding: 0;
		border-top: 0;
		text-align: left;
		background: none;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(1) {
		grid-area: del;
		justify-self: end;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(2) {
		grid-area: img;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(3) {
		grid-area: name;
		font-size: 14px;
		line-height: 1.35;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(4) {
		grid-area: price;
		align-self: center;
		font-size: 14px;
		line-height: 1.4;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(5) {
		grid-area: qty;
		align-self: center;
		margin-top: 6px;
	}

	#shopping-cart table tr.cart-item-row > td:nth-child(6) {
		grid-area: total;
		justify-self: end;
		align-self: center;
		margin-top: 6px;
		font-size: 15px;
		font-weight: 500;
		white-space: nowrap;
	}

	#shopping-cart table tr.cart-item-row .foto,
	#shopping-cart table tr.cart-item-row > td:nth-child(2) img {
		display: block;
		width: 76px;
		height: 76px;
		max-width: none;
		max-height: none;
		object-fit: contain;
	}

	/* Stock / plazo de entrega bajo el nombre. */
	#shopping-cart table tr.cart-item-row > td:nth-child(3) .entrega {
		font-size: 12px;
	}

	.cart-price-label {
		display: block;
		margin-bottom: 2px;
		font-size: 10px;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		white-space: normal;
		color: #767676;
	}

	/* Selector de cantidad como en escritorio: - [input con borde] +, sin marco alrededor. */
	#shopping-cart table tr.cart-item-row .quantity_div {
		display: inline-flex;
		align-items: center;
		width: auto;
	}

	#shopping-cart table tr.cart-item-row .quantity_div .button_minus,
	#shopping-cart table tr.cart-item-row .quantity_div .button_plus {
		width: 32px;
		min-width: 32px;
		min-height: 44px;
		padding: 0;
	}

	#shopping-cart table tr.cart-item-row .quantity_div .quantity {
		width: 44px;
	}

	#shopping-cart table tr.cart-item-row .quantity_div .quantity input {
		width: 100%;
		height: 44px;
		border: 1px solid #dddddd;
		padding: 0;
	}

	.cart-qty-label {
		display: inline;
		color: #767676;
		font-size: 14px;
	}
}

/* Selector de regalos "a elegir": recuadro gris con tarjetas como las de producto del listado,
   centrado, encima de la lista del carrito. */

.gift-choice {
	margin: 10px 0 30px;
	padding: 20px;
	background: #f5f5f5;
	text-align: center;
	transition: opacity 0.2s ease;
}

.gift-choice.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

.gift-choice__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	max-width: 100%;
	margin: 0 0 14px;
	padding: 6px 14px 6px 10px;
	border-radius: 16px;
	background: #3ccf9e;
	color: #ffffff;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
}

.gift-choice__badge svg {
	display: block;
	flex-shrink: 0;
}

.gift-choice__options {
	/* Tarjetas de ancho fijo centradas: con 2 opciones quedan en el centro; caben 5 por fila en escritorio. */
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
}

.gift-choice__option {
	position: relative;
	flex: 0 0 160px;
	max-width: 160px;
}

/* El CSS global oculta los radios con display:none; aqui se ocultan solo a la vista para poder elegir con el teclado. */
.gift-choice input[type="radio"].gift-choice__radio {
	display: block;
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}

.gift-choice__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	height: 100%;
	margin: 0;
	padding: 14px 10px 12px;
	border: 0;
	border-radius: 0;
	background: #ffffff;
	/* Misma sombra que las tarjetas de producto del listado. */
	box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.1);
	text-align: center;
	cursor: pointer;
	transition: box-shadow 0.15s ease;
}

.gift-choice__card:hover {
	box-shadow: 3px 3px 14px 0 rgba(0, 0, 0, 0.18);
}

.gift-choice__image {
	display: block;
	width: 80px;
	height: 80px;
	object-fit: contain;
}

.gift-choice__name {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.35;
	color: #232323;
}

.gift-choice__free {
	margin-top: auto;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #1e9e74;
}

/* Casilla como los checkbox de toda la web (sprite check20.png: sin marcar 1px 0, marcada -20px 0). */
.gift-choice__check {
	position: absolute;
	top: 8px;
	right: 8px;
	display: block;
	width: 20px;
	height: 20px;
	background: url('../../images/icons/check20.png') no-repeat 1px 0;
}

/* Seleccionada: fina linea verde por dentro, sin cambiar el tamano de la tarjeta. */
.gift-choice__radio:checked + .gift-choice__card {
	box-shadow: inset 0 0 0 2px #3ccf9e, 3px 3px 10px 0 rgba(0, 0, 0, 0.1);
}

.gift-choice__radio:checked + .gift-choice__card .gift-choice__check {
	background-position: -20px 0;
}

.gift-choice__radio:focus-visible + .gift-choice__card {
	box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0b3d2c;
}

@media only screen and (max-width: 550px) {
	.gift-choice {
		margin: 6px 0 24px;
		padding: 14px 10px;
	}

	.gift-choice__options {
		gap: 8px;
	}

	/* 3 tarjetas por fila en movil. */
	.gift-choice__option {
		flex: 0 0 calc((100% - 16px) / 3);
		max-width: calc((100% - 16px) / 3);
	}

	.gift-choice__card {
		gap: 4px;
		padding: 10px 6px 8px;
	}

	.gift-choice__image {
		width: 56px;
		height: 56px;
	}

	.gift-choice__name {
		font-size: 12px;
		line-height: 1.3;
	}

	.gift-choice__free {
		font-size: 10px;
	}

	.gift-choice__check {
		top: 4px;
		right: 4px;
	}
}

/* Seccion inferior (paso 7): fondo gris a todo el ancho con banners, "Los mas vendidos" (servicio externo)
   y la rejilla "Quiza tambien le puede interesar" (sin cambios). */
.cart-featured-section {
	margin-top: 60px;
	padding: 40px 0 60px;
}

.cart-featured-section .flexBanners {
	padding-top: 0 !important;
}

@media only screen and (max-width: 767px) {
	.cart-featured-section {
		margin-top: 40px;
		padding: 30px 0 40px;
	}
}
