/* =========================================================================
   EV 32–35 · Ficha de producto: tallos, complementos, barra fija móvil
   ========================================================================= */

/* ---------- Bloques del formulario ----------
   EV 08 maqueta form.cart como rejilla [cantidad | botón]: nuestros bloques ocupan toda la fila. */
.single-product form.cart > .ev3-tallos,
.single-product form.cart > .ev3-complementos,
.single-product form.cart > .ev3-total-vivo {
	grid-column: 1 / -1;
}

.single-product form.cart .ev3-tallos,
.single-product form.cart .ev3-complementos {
	width: 100%;
	margin: 0 0 22px;
	padding: 20px;
	border: 1px solid var(--ev-line, #E5DFD2);
	border-radius: var(--ev-radius-md, 10px);
	background: var(--ev-white, #fff);
	min-inline-size: 0;
}

.single-product form.cart .ev3-tallos__titulo,
.single-product form.cart .ev3-complementos__titulo {
	float: left;
	width: 100%;
	margin: 0 0 4px;
	padding: 0;
	font-family: var(--ev-font-display, "Cormorant Garamond", serif);
	font-size: 24px;
	line-height: 1.2;
	font-weight: 500;
	color: var(--ev-ink, #1C1B16);
}

.single-product form.cart .ev3-tallos__titulo + *,
.single-product form.cart .ev3-complementos__titulo + * {
	clear: both;
}

/* ---------- Tallos ---------- */
.ev3-tallos__opciones {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
	gap: 10px;
	margin-top: 12px;
}

.ev3-tallos__opcion {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 72px;
	padding: 10px 6px;
	border: 1px solid var(--ev-line-2, #D8D1BF);
	border-radius: var(--ev-radius-md, 10px);
	background: var(--ev-cream, #FAF7F2);
	cursor: pointer;
	text-align: center;
	transition: border-color .15s ease, background .15s ease;
}

.ev3-tallos__opcion input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ev3-tallos__num {
	font-family: var(--ev-font-display, "Cormorant Garamond", serif);
	font-size: 28px;
	line-height: 1;
	color: var(--ev-ink, #1C1B16);
}

.ev3-tallos__precio,
.ev3-tallos__precio .amount {
	margin-top: 4px;
	font-size: 14px !important;
	color: var(--ev-ink-3, #6B6859);
}

.ev3-tallos__opcion:hover {
	border-color: var(--ev-moss-2, #5A6A4F);
}

.ev3-tallos__opcion:has(input:checked) {
	border-color: var(--ev-moss, #3D4A36);
	background: var(--ev-moss, #3D4A36);
}

.ev3-tallos__opcion:has(input:checked) .ev3-tallos__num,
.ev3-tallos__opcion:has(input:checked) .ev3-tallos__precio,
.ev3-tallos__opcion:has(input:checked) .ev3-tallos__precio .amount {
	color: #fff;
}

.ev3-tallos__opcion:has(input:focus-visible) {
	outline: 2px solid var(--ev-terra, #B8855A);
	outline-offset: 2px;
}

.ev3-tallos__libre {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin: 14px 0 0;
}

.ev3-tallos__libre[hidden] {
	display: none;
}

.ev3-tallos__libre label {
	font-size: 15px !important;
}

.ev3-tallos__libre input {
	width: 110px;
	min-height: 48px;
	padding: 0 12px;
	border: 1px solid var(--ev-line-2, #D8D1BF);
	border-radius: var(--ev-radius-sm, 4px);
	font-size: 18px !important;
}

.single-product form.cart .ev3-tallos__resumen,
.single-product form.cart .ev3-tallos__resumen-texto {
	font-size: 16px !important;
}

.single-product form.cart .ev3-tallos__nota,
.single-product form.cart .ev3-complementos__intro {
	font-size: 15px !important;
}

.ev3-tallos__resumen {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin: 16px 0 0;
	padding-top: 14px;
	border-top: 1px solid var(--ev-line, #E5DFD2);
	font-size: 16px;
}

.ev3-tallos__resumen-total {
	font-size: 22px;
	font-weight: 600;
	color: var(--ev-moss, #3D4A36);
}

.ev3-tallos__nota {
	margin: 6px 0 0;
	font-size: 14px;
	color: var(--ev-ink-3, #6B6859);
}

.ev3-desde {
	font-size: .7em;
	font-weight: 400;
	color: var(--ev-ink-3, #6B6859);
}

/* ---------- Complementos ---------- */
.ev3-complementos__intro {
	margin: 0 0 14px;
	font-size: 15px;
	color: var(--ev-ink-3, #6B6859);
}

.ev3-complementos__lista {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.ev3-complemento {
	position: relative;
	display: grid;
	grid-template-columns: 56px 1fr 24px;
	align-items: center;
	gap: 12px;
	min-height: 72px;
	padding: 8px 12px 8px 8px;
	border: 1px solid var(--ev-line-2, #D8D1BF);
	border-radius: var(--ev-radius-md, 10px);
	background: var(--ev-cream, #FAF7F2);
	cursor: pointer;
}

.ev3-complemento input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ev3-complemento__img img {
	display: block;
	width: 56px !important;
	height: 56px !important;
	object-fit: cover;
	border-radius: 6px;
}

.ev3-complemento__texto {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.ev3-complemento__nombre {
	font-size: 15px;
	line-height: 1.3;
	color: var(--ev-ink, #1C1B16);
	overflow-wrap: anywhere;
}

.ev3-complemento__precio,
.ev3-complemento__precio .amount {
	font-size: 14px !important;
	font-weight: 600;
	color: var(--ev-moss, #3D4A36);
}

.ev3-complemento__check {
	width: 24px;
	height: 24px;
	border: 1.5px solid var(--ev-line-2, #D8D1BF);
	border-radius: 50%;
	background: #fff;
}

.ev3-complemento:has(input:checked) {
	border-color: var(--ev-moss, #3D4A36);
	background: #fff;
	box-shadow: 0 0 0 1px var(--ev-moss, #3D4A36) inset;
}

.ev3-complemento:has(input:checked) .ev3-complemento__check {
	border-color: var(--ev-moss, #3D4A36);
	background: var(--ev-moss, #3D4A36) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat;
}

.ev3-complemento:has(input:focus-visible) {
	outline: 2px solid var(--ev-terra, #B8855A);
	outline-offset: 2px;
}

/* ---------- Total en vivo junto al botón ---------- */
.ev3-total-vivo {
	width: 100%;
	margin: 0 0 12px;
	font-size: 16px;
	color: var(--ev-ink-2, #3A382F);
}

.ev3-total-vivo strong {
	font-size: 20px;
	color: var(--ev-moss, #3D4A36);
}

/* ---------- Aviso de fecha ---------- */
.ev3-aviso-fecha {
	margin: 6px 0 0;
	font-size: 14px;
	color: var(--ev-clay, #9C6F4A);
}

/* ---------- Barra fija móvil "Añadir al carrito" ---------- */
.ev3-barra-compra {
	display: none;
}

@media (max-width: 767px) {
	.ev3-complementos__lista {
		grid-template-columns: 1fr;
	}

	.ev3-barra-compra {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 99960;
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: var(--ev-cream, #FAF7F2);
		border-top: 1px solid var(--ev-line, #E5DFD2);
		box-shadow: 0 -10px 30px -18px rgba(28, 27, 22, .4);
		transform: translateY(110%);
		transition: transform .25s ease;
	}

	.ev3-barra-compra.is-visible {
		transform: none;
	}

	.ev3-barra-compra__precio {
		flex: 1;
		min-width: 0;
		font-size: 18px;
		font-weight: 600;
		color: var(--ev-ink, #1C1B16);
	}

	.ev3-barra-compra__boton {
		min-height: 50px;
		padding: 0 22px;
		border: 0;
		border-radius: 999px;
		background: var(--ev-moss, #3D4A36);
		color: #fff;
		font-size: 15px;
		font-weight: 600;
		letter-spacing: .04em;
	}

	/* El carrito flotante de EV 08C no debe tapar la barra */
	body.ev3-con-barra .ev08c-floating-cart {
		bottom: 84px !important;
		top: auto !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ev3-barra-compra {
		transition: none;
	}
}

/* EV 37 · Productos sin precio */
.ev3-precio-consultar {
	font-size: .8em;
	font-style: italic;
	color: var(--ev-ink-3, #6B6859);
}

.ev3-consultar {
	margin: 8px 0 24px;
	padding: 20px;
	border: 1px solid var(--ev-line, #E5DFD2);
	border-radius: var(--ev-radius-md, 10px);
	background: var(--ev-white, #fff);
}

.ev3-consultar p {
	margin: 0 0 14px;
	font-size: 16px;
}

.single-product .ev3-consultar .ev3-consultar__boton {
	display: inline-flex;
	align-items: center;
	min-height: 50px;
	padding: 0 26px;
	border-radius: 999px;
	background: var(--ev-moss, #3D4A36);
	color: #fff;
}
