/* ==========================================================================
   Bodegas Ibero · v0.8 «la tienda del barrio»
   Pedido de la familia (01-11-2026): más sencilla, tipo marketplace, sin
   escenas de scroll, con los productos arriba. Lo bonito lo ponen la
   ilustración del logo y sus colores planos. El movimiento es poco y útil:
   respuesta al tocar, el carrito que se abre en − cantidad +, un aviso al
   añadir y un fundido corto entre páginas.
   ========================================================================== */

:root {
	--tinta: #0d5857;
	--tinta-osc: #094443;
	--sol: #f6b51e;
	--coral: #ee5a43;
	--coral-osc: #a52d1f;
	--turquesa: #2dbfc1;
	--crema: #fbf3e4;
	--papel: #fffaf0;
	--blanco: #ffffff;
	--texto: #12302f;
	--texto-suave: #3d5a59;
	--linea: #e6dcc8;
	--letra: Chivo, "Arial", system-ui, sans-serif;
	--margen: clamp(16px, 4vw, 48px);
	--ancho: 1240px;
	--hueco: clamp(48px, 7vw, 96px);
	--cabecera: 88px;
	--ease: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	--s-mini: 0.875rem;
	--s-peq: 1rem;
	--s-texto: 1.0625rem;
	--s-lead: clamp(1.125rem, 1rem + 0.4vw, 1.3125rem);
	--s-h4: 1.25rem;
	--s-h3: clamp(1.375rem, 1.2rem + 0.6vw, 1.625rem);
	--s-h2: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	--s-h1: clamp(2.125rem, 1.5rem + 2.6vw, 3.5rem);
	interpolate-size: allow-keywords;
}

/* Fundido corto entre páginas; la cabecera y la barra del móvil no se mueven. */
@view-transition {
	navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: 0.2s;
	animation-timing-function: var(--ease-in-out);
}

.bi-cabecera {
	view-transition-name: cabecera;
}

.ibero-barra {
	view-transition-name: barra;
}

/* Base ------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-tap-highlight-color: transparent;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--crema);
	color: var(--texto);
	font-family: var(--letra);
	font-size: var(--s-texto);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

::selection {
	background: var(--sol);
	color: var(--texto);
}

:focus-visible {
	outline: 3px solid var(--texto);
	outline-offset: 3px;
}

.bi-pie :focus-visible,
.bi-menu :focus-visible,
.bi-tres__item--tinta :focus-visible,
.ibero-barra :focus-visible,
.bi-panel__item--tinta :focus-visible,
.woocommerce .cart-collaterals .cart_totals :focus-visible {
	outline-color: var(--crema);
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
}

h1,
h2,
h3 {
	font-family: var(--letra);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: var(--tinta);
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

.wp-site-blocks {
	padding: 0;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Botones y enlaces ------------------------------------------------------ */

.bi-boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 1.5em;
	border: 0;
	border-radius: 999px;
	background: var(--tinta);
	color: var(--crema);
	font: 800 var(--s-peq)/1 var(--letra);
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, transform 0.16s var(--ease);
	touch-action: manipulation;
}

.bi-boton:hover {
	background: var(--coral-osc);
	color: var(--blanco);
}

.bi-boton:active {
	transform: scale(0.97);
}

.bi-boton--sol {
	background: var(--sol);
	color: var(--texto);
}

.bi-boton--sol:hover {
	background: var(--tinta);
	color: var(--crema);
}

.bi-boton--whatsapp {
	background: #25d366;
	color: var(--texto);
}

.bi-boton--whatsapp:hover {
	background: #1fb257;
	color: var(--texto);
}

.bi-boton.is-copiado {
	background: var(--sol);
	color: var(--texto);
}

.bi-enlace {
	font-weight: 800;
	color: var(--tinta);
	text-decoration: underline;
	text-decoration-color: var(--sol);
	text-decoration-thickness: 3px;
	text-underline-offset: 5px;
	transition: text-decoration-color 0.2s;
}

.bi-enlace:hover {
	text-decoration-color: var(--coral-osc);
}

/* Cabecera: logo, buscador, cuenta y carrito; debajo, las secciones ------ */

.bi-cabecera {
	background: var(--papel);
}

.bi-cabecera__fila {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px 32px;
	max-width: var(--ancho);
	min-height: var(--cabecera);
	margin: 0 auto;
	padding: 8px var(--margen);
	box-sizing: content-box;
}

.bi-cabecera__fila > * {
	margin: 0 !important;
}

.ibero-logo {
	display: inline-flex;
	transition: transform 0.25s var(--ease);
}

.ibero-logo:hover {
	transform: rotate(-1.5deg) scale(1.02);
}

.ibero-logo img {
	display: block;
	width: auto;
	height: 88px;
}

.bi-buscar {
	width: 100%;
	max-width: 620px;
	margin: 0 auto !important;
}

.bi-buscar .wp-block-search__inside-wrapper {
	padding: 4px;
	border: 2px solid var(--tinta) !important;
	border-radius: 999px;
	background: var(--blanco);
	transition: box-shadow 0.2s;
}

.bi-buscar .wp-block-search__input {
	min-height: 44px;
	padding: 0 18px;
	border: 0;
	background: transparent;
	color: var(--texto);
	font: 400 var(--s-texto) var(--letra);
}

.bi-buscar .wp-block-search__input:focus {
	outline: 0;
}

.bi-buscar .wp-block-search__inside-wrapper:focus-within {
	box-shadow: 0 0 0 3px var(--sol);
}

.bi-buscar .wp-block-search__button {
	display: grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0;
	border-radius: 999px !important;
	background: var(--sol) !important;
	color: var(--texto) !important;
	transition: transform 0.16s var(--ease);
}

.bi-buscar .wp-block-search__button:active {
	transform: scale(0.92);
}

.bi-buscar .wp-block-search__button svg {
	fill: currentColor;
}

/* Cuenta, ayuda y carrito: todo a la misma altura y centrado en su fila. */
.bi-cabecera__acciones {
	display: flex;
	align-items: center;
	gap: 8px;
}

.bi-cabecera__acciones > * {
	margin: 0 !important;
}

.bi-ayuda,
.bi-cuenta a,
.bi-minicarrito .wc-block-mini-cart__button {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 0 12px !important;
	border-radius: 999px;
	color: var(--tinta) !important;
	font: 800 var(--s-peq)/1 var(--letra) !important;
	text-decoration: none;
	transition: background-color 0.2s;
}

.bi-ayuda:hover,
.bi-cuenta a:hover,
.bi-minicarrito .wc-block-mini-cart__button:hover {
	background: var(--crema);
}

.bi-cuenta,
.bi-minicarrito {
	display: flex;
	align-items: center;
}

.bi-cuenta svg,
.bi-minicarrito svg {
	display: block;
	width: 24px;
	height: 24px;
	fill: currentColor;
}

.bi-cuenta .wc-block-customer-account__visual {
	position: relative;
	display: block;
	width: 24px;
	height: 24px;
}

/* WooCommerce pide la foto a Gravatar aunque casi nadie la tenga: solo el icono. */
.bi-cuenta .wc-block-customer-account__avatar {
	display: none !important;
}

.bi-minicarrito .wc-block-mini-cart__quantity-badge {
	display: flex;
	align-items: center;
}

.bi-minicarrito .wc-block-mini-cart__badge {
	border: 0;
	border-radius: 999px;
	background: var(--sol);
	color: var(--texto);
	font-weight: 800;
}

.bi-menu {
	background: var(--tinta);
}

.bi-menu ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 4px;
	max-width: var(--ancho);
	margin: 0 auto;
	padding: 0 var(--margen);
	list-style: none;
	box-sizing: content-box;
}

.bi-menu a {
	display: block;
	padding: 13px 12px;
	background: linear-gradient(var(--sol), var(--sol)) no-repeat 12px calc(100% - 8px) / 0 3px;
	color: var(--crema);
	font-size: var(--s-peq);
	font-weight: 700;
	text-decoration: none;
	transition: background-size 0.25s var(--ease);
}

.bi-menu li:first-child a {
	padding-left: 0;
	background-position-x: 0;
}

.bi-menu a:hover,
.bi-menu a[aria-current="page"] {
	background-size: calc(100% - 24px) 3px;
}

.bi-menu li:first-child a:hover,
.bi-menu li:first-child a[aria-current="page"] {
	background-size: calc(100% - 12px) 3px;
}

.bi-cabecera--pago .bi-cabecera__fila {
	grid-template-columns: auto 1fr;
}

.bi-volver {
	justify-self: end;
	font-weight: 800;
	color: var(--tinta);
	text-decoration: underline;
	text-decoration-color: var(--sol);
	text-decoration-thickness: 3px;
	text-underline-offset: 5px;
}

/* Contenedor común ------------------------------------------------------- */

/* Las secciones de la portada son bloques HTML sin alignfull: ocupan todo el ancho. */
.is-layout-constrained > .bi-regalo,
.is-layout-constrained > .bi-bienvenida,
.is-layout-constrained > .bi-bloque {
	max-width: none !important;
	margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px)) !important;
	margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px)) !important;
	margin-block-start: 0 !important;
}

.bi-main > .entry-content > * {
	margin-block: 0;
}

.bi-marco {
	max-width: var(--ancho);
	margin: 0 auto;
	padding: 0 var(--margen);
	box-sizing: content-box;
}

.bi-bloque {
	padding: clamp(40px, 6vw, 72px) 0;
}

.bi-bloque--papel {
	background: var(--papel);
}

.bi-h2 {
	margin: 0 0 24px;
	font-size: var(--s-h2);
}

.bi-cabeza {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 24px;
	margin-bottom: 24px;
}

.bi-cabeza .bi-h2 {
	margin: 0;
}

/* 1 · Bienvenida --------------------------------------------------------- */

.bi-bienvenida {
	padding: clamp(24px, 4vw, 48px) 0 clamp(16px, 3vw, 32px);
}

/* Franja del regalo de bienvenida, lo primero que se ve en la portada. */
.bi-regalo {
	background: var(--coral);
	color: var(--blanco);
}

.bi-regalo__marco {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 20px;
	padding-top: 12px;
	padding-bottom: 12px;
	text-align: center;
}

.bi-regalo p {
	margin: 0;
	font-size: var(--s-peq);
}

.bi-regalo b {
	font-weight: 800;
}

.bi-regalo__enlace {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--blanco);
	color: var(--coral-osc);
	font-size: var(--s-peq);
	font-weight: 800;
	text-decoration: none;
	transition: transform 0.16s var(--ease);
}

.bi-regalo__enlace:active {
	transform: scale(0.96);
}

.bi-bienvenida__marco {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: center;
	gap: 24px clamp(24px, 4vw, 56px);
}

.bi-bienvenida h1 {
	margin: 0;
	font-size: var(--s-h1);
}

.bi-bienvenida__lead {
	margin: 16px 0 20px;
	font-size: var(--s-lead);
}

.bi-bienvenida__escena {
	display: block;
	width: 100%;
	/* La ilustración tiene fondo blanco: así se funde con el crema. */
	mix-blend-mode: multiply;
}

.bi-bienvenida__acciones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	margin: 24px 0 0;
}

.bi-pasos {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: paso;
}

.bi-pasos li {
	counter-increment: paso;
	display: flex;
	align-items: center;
	gap: 12px;
}

.bi-pasos li::before {
	content: counter(paso);
	flex: none;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--sol);
	color: var(--texto);
	font-weight: 800;
}

.bi-pasos b {
	color: var(--tinta);
}

/* Al abrir la portada, el texto entra en orden, una sola vez. */
@media (prefers-reduced-motion: no-preference) {
	.bi-bienvenida__texto > * {
		animation: bi-sube 0.6s var(--ease) both;
	}

	.bi-bienvenida__texto > :nth-child(2) {
		animation-delay: 0.06s;
	}

	.bi-bienvenida__texto > :nth-child(3) {
		animation-delay: 0.12s;
	}

	.bi-bienvenida__texto > :nth-child(4) {
		animation-delay: 0.18s;
	}

	.bi-bienvenida__escena {
		animation: bi-aparece 0.8s var(--ease) 0.08s both;
	}
}

@keyframes bi-sube {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
}

@keyframes bi-aparece {
	from {
		opacity: 0;
		transform: scale(0.98);
	}
}

/* 2 · Secciones de la tienda --------------------------------------------- */

.bi-secciones {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bi-seccion a {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--papel);
	color: var(--texto);
	text-decoration: none;
	transition: transform 0.3s var(--ease);
}

.bi-seccion a:hover {
	transform: translateY(-4px);
}

.bi-seccion a:active {
	transform: scale(0.98);
}

.bi-seccion__foto {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.6s var(--ease);
}

.bi-seccion a:hover .bi-seccion__foto {
	transform: scale(1.04);
}

.bi-seccion--especial .bi-seccion__foto {
	background: var(--blanco);
	mix-blend-mode: multiply;
}

.bi-seccion__nombre {
	position: relative;
	display: grid;
	gap: 2px;
	padding: 14px 16px 16px;
	background: var(--papel);
	font-size: var(--s-h4);
	font-weight: 800;
	line-height: 1.15;
	color: var(--tinta);
}

.bi-seccion__nombre small {
	font-size: var(--s-mini);
	font-weight: 400;
	color: var(--texto-suave);
}

/* 4 · Tres tarjetas ------------------------------------------------------ */

.bi-tres {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bi-tres__item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(20px, 3vw, 32px);
	background: var(--papel);
}

.bi-tres__item h2 {
	margin: 0 0 8px;
	font-size: var(--s-h3);
}

.bi-tres__item p {
	margin: 0 0 20px;
	flex: 1;
}

.bi-tres__item--sol {
	background: var(--sol);
}

.bi-tres__item--tinta {
	background: var(--tinta);
	color: var(--crema);
}

.bi-tres__item--tinta h2 {
	color: var(--crema);
}

/* Páginas de texto ------------------------------------------------------- */

.bi-pagina {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(32px, 5vw, 64px) var(--margen) var(--hueco);
	box-sizing: content-box;
}

.bi-pagina h1 {
	margin: 0 0 12px;
	font-size: var(--s-h1);
}

.bi-pagina h2 {
	margin: 40px 0 12px;
	font-size: var(--s-h3);
}

.bi-pagina__lead {
	margin: 0 0 28px;
	font-size: var(--s-lead);
}

.bi-pagina__ilus {
	display: block;
	width: 100%;
	max-width: 420px;
	margin: 8px 0 24px;
	mix-blend-mode: multiply;
}

.bi-pasos--grandes {
	gap: 16px;
}

.bi-pasos--grandes li {
	align-items: flex-start;
	padding: 18px;
	background: var(--papel);
}

.bi-pasos--grandes li::before {
	width: 44px;
	height: 44px;
	font-size: var(--s-h4);
}

.bi-pasos--grandes b {
	display: block;
	margin-bottom: 4px;
	font-size: var(--s-h4);
}

.bi-lista {
	padding-left: 1.2em;
}

.bi-lista li + li {
	margin-top: 8px;
}

.bi-nota {
	padding: 14px 16px;
	background: var(--papel);
	font-weight: 700;
}

.bi-preguntas {
	display: grid;
	gap: 8px;
}

.bi-preguntas details {
	background: var(--papel);
}

.bi-preguntas summary {
	position: relative;
	padding: 16px 52px 16px 18px;
	font-size: var(--s-h4);
	font-weight: 800;
	color: var(--tinta);
	list-style: none;
	cursor: pointer;
}

.bi-preguntas summary::-webkit-details-marker {
	display: none;
}

.bi-preguntas summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 18px;
	translate: 0 -50%;
	font-size: 1.5rem;
	line-height: 1;
	transition: rotate 0.3s var(--ease);
}

.bi-preguntas details[open] summary::after {
	content: "−";
	rotate: 180deg;
}

/* La respuesta se despliega en vez de aparecer de golpe (en navegadores que lo permiten). */
.bi-preguntas details::details-content {
	block-size: 0;
	overflow: hidden;
	transition: block-size 0.3s var(--ease), content-visibility 0.3s allow-discrete;
}

.bi-preguntas details[open]::details-content {
	block-size: auto;
}

.bi-preguntas details p {
	margin: 0;
	padding: 0 18px 18px;
}

/* Formularios de solicitud ---------------------------------------------- */

.bi-formulario {
	display: grid;
	gap: 4px;
	padding: clamp(20px, 3vw, 32px);
	background: var(--papel);
}

.bi-formulario p {
	margin: 0 0 12px;
}

.bi-formulario label {
	display: block;
	margin-bottom: 6px;
	font-weight: 800;
	color: var(--tinta);
}

.bi-formulario label small {
	font-weight: 400;
	color: var(--texto-suave);
}

.bi-formulario input,
.bi-formulario textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	border: 2px solid var(--tinta);
	border-radius: 0;
	background: var(--blanco);
	color: var(--texto);
	font: 400 var(--s-texto) var(--letra);
}

.bi-formulario__trampa {
	position: absolute;
	left: -9999px;
}

.bi-aviso {
	margin: 0 0 24px;
	padding: 16px 18px;
	background: var(--sol);
	color: var(--texto);
}

.bi-aviso p {
	margin: 0;
}

.bi-pagina > .bi-boton--whatsapp {
	margin-bottom: 20px;
}

/* Tabla de premios de Invita y gana (página pública y cuenta). */
.bi-tabla-invita {
	overflow-x: auto;
	margin: 20px 0;
}

.bi-tabla-invita table {
	width: 100%;
	min-width: 480px;
	border-collapse: separate;
	border-spacing: 0 6px;
}

.bi-tabla-invita th,
.bi-tabla-invita td {
	padding: 12px 14px;
	text-align: left;
}

.bi-tabla-invita thead th {
	padding-block: 4px;
	font-size: var(--s-mini);
	color: var(--texto-suave);
}

.bi-tabla-invita tbody th,
.bi-tabla-invita tbody td {
	background: var(--papel);
}

.bi-tabla-invita tbody td {
	font-weight: 800;
	color: var(--tinta);
}

/* Pie ------------------------------------------------------------------- */

.wp-site-blocks > footer.wp-block-template-part {
	margin-block-start: 0;
}

.bi-pie {
	padding: clamp(40px, 6vw, 72px) 0 32px;
	background: var(--tinta);
	color: var(--crema);
}

.bi-pie__fila {
	display: grid;
	grid-template-columns: 6fr 3fr 3fr;
	gap: 32px;
	max-width: var(--ancho);
	margin: 0 auto;
	padding: 0 var(--margen);
	box-sizing: content-box;
}

/* El logo es un PNG sin fondo: va tal cual, sin caja. */
.bi-pie__logo {
	display: block;
	width: 240px;
	height: auto;
}

.bi-pie__marca p {
	max-width: 42ch;
	margin: 16px 0 20px;
}

.bi-pie__enlaces {
	display: grid;
	align-content: start;
	gap: 6px;
}

.bi-pie__enlaces a {
	padding: 4px 0;
	font-weight: 700;
	text-decoration: none;
}

.bi-pie__enlaces a:hover {
	text-decoration: underline;
	text-decoration-color: var(--sol);
	text-decoration-thickness: 3px;
	text-underline-offset: 5px;
}

.bi-pie__imprenta {
	max-width: var(--ancho);
	margin: 40px auto 0;
	padding: 0 var(--margen);
	font-size: var(--s-mini);
	opacity: 0.85;
	box-sizing: content-box;
}

/* Tarjetas de producto ------------------------------------------------- */

.ibero-rejilla {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px 20px;
	max-width: var(--ancho);
	margin: 0 auto;
}

.ibero-carril {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: max(var(--margen), calc((100vw - var(--ancho)) / 2));
	overscroll-behavior-x: contain;
	scrollbar-width: none;
}

.ibero-carril::-webkit-scrollbar {
	display: none;
}

.ibero-carril__pista {
	display: flex;
	gap: 20px;
	width: max-content;
	padding: 0 max(var(--margen), calc((100vw - var(--ancho)) / 2));
}

.ibero-carril .ibero-card {
	width: clamp(260px, 26vw, 340px);
	scroll-snap-align: start;
}

.ibero-card {
	display: flex;
	flex-direction: column;
	color: var(--texto);
}

.ibero-card__foto {
	position: relative;
}

.ibero-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--papel);
}

.ibero-card__media img,
.ibero-card__media svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ease);
}

.ibero-card:hover .ibero-card__media img {
	transform: scale(1.04);
}

.ibero-card__body {
	display: grid;
	gap: 6px;
	padding-top: 14px;
}

.ibero-card__cat {
	display: none;
}

.ibero-card__title {
	margin: 0;
	font-size: var(--s-h4);
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.ibero-card__title a {
	color: var(--tinta);
	text-decoration: none;
}

.ibero-card__title a:hover {
	text-decoration: underline;
	text-decoration-color: var(--sol);
	text-decoration-thickness: 3px;
	text-underline-offset: 4px;
}

.ibero-card__price {
	font-size: var(--s-peq);
	font-weight: 900;
}

.ibero-card__price del {
	font-weight: 400;
	opacity: 0.7;
}

.ibero-card__price ins {
	text-decoration: none;
}

.ibero-card__agotado {
	position: absolute;
	left: 10px;
	bottom: 10px;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--papel);
	font-size: var(--s-mini);
	font-weight: 900;
	color: var(--coral-osc);
}

/*
 * Selector de cantidad sobre la foto. Vacío es un + redondo; con algo en el
 * carrito se abre hacia la izquierda en «− cantidad +». Solo cambia el ancho
 * de la píldora y la opacidad de lo de dentro.
 */
.bi-cantidad {
	--boton: 48px;
	position: absolute;
	right: 10px;
	bottom: 10px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	width: var(--boton);
	height: var(--boton);
	overflow: hidden;
	border-radius: 999px;
	background: var(--tinta);
	color: var(--crema);
	transition: width 0.32s var(--ease), background-color 0.2s;
}

.bi-cantidad.is-en-carrito {
	width: calc(var(--boton) * 3);
}

.bi-cantidad__menos,
.bi-cantidad__mas {
	flex: none;
	display: grid;
	place-items: center;
	width: var(--boton);
	height: var(--boton);
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: 900 1.375rem/1 var(--letra);
	text-decoration: none;
	cursor: pointer;
	touch-action: manipulation;
	transition: background-color 0.2s, transform 0.14s var(--ease);
}

.bi-cantidad__mas:hover,
.bi-cantidad__menos:hover {
	background: var(--coral-osc);
	color: var(--blanco);
}

.bi-cantidad__mas:active,
.bi-cantidad__menos:active {
	transform: scale(0.88);
}

.bi-cantidad__mas.is-tope {
	opacity: 0.45;
}

.bi-cantidad__menos,
.bi-cantidad__num {
	opacity: 0;
	transition: opacity 0.18s;
}

.bi-cantidad__num {
	flex: 1;
	min-width: 0;
	font-size: var(--s-texto);
	font-weight: 900;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.bi-cantidad.is-en-carrito .bi-cantidad__menos,
.bi-cantidad.is-en-carrito .bi-cantidad__num {
	opacity: 1;
	transition-delay: 0.08s;
}

.bi-cantidad:not(.is-en-carrito) .bi-cantidad__menos {
	pointer-events: none;
}

.bi-cantidad--ver {
	color: var(--crema);
	font: 900 1.25rem/1 var(--letra);
	text-decoration: none;
	justify-content: center;
}

.bi-cantidad--ver:hover {
	background: var(--coral-osc);
}

.ibero-vacio {
	color: var(--texto-suave);
}

.ibero-vacio .bi-boton {
	color: var(--crema);
}

/* Catálogo y búsqueda ---------------------------------------------------- */

.ibero-catalogo {
	max-width: var(--ancho);
	margin: 0 auto;
	padding: clamp(28px, 4vw, 56px) var(--margen) var(--hueco);
	box-sizing: content-box;
}

.ibero-catalogo__titulo {
	margin: 0 0 16px;
	font-size: var(--s-h2);
	color: var(--tinta);
}

.ibero-filtros {
	position: sticky;
	top: 0;
	z-index: 10;
	display: flex;
	gap: 8px;
	margin: 0 calc(-1 * var(--margen)) 28px;
	padding: 12px var(--margen);
	overflow-x: auto;
	background: var(--crema);
	scrollbar-width: none;
}

.admin-bar .ibero-filtros {
	top: 32px;
}

.ibero-filtros::-webkit-scrollbar {
	display: none;
}

.ibero-filtro {
	flex: none;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--papel);
	color: var(--tinta);
	font-size: var(--s-peq);
	font-weight: 800;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, transform 0.16s var(--ease);
}

.ibero-filtro:hover {
	background: var(--sol);
	color: var(--texto);
}

.ibero-filtro:active {
	transform: scale(0.96);
}

.ibero-filtro.is-activo {
	background: var(--tinta);
	color: var(--crema);
}

/* Páginas de tienda: carrito y cuenta ------------------------------------ */

.bi-tienda-pagina {
	max-width: var(--ancho);
	margin: 0 auto;
	padding: clamp(28px, 4vw, 56px) var(--margen) var(--hueco);
	box-sizing: content-box;
}

.bi-tienda-pagina__titulo {
	margin: 0 0 clamp(20px, 3vw, 32px);
	font-size: var(--s-h1);
}

.bi-tienda-pagina .entry-content,
.bi-tienda-pagina .woocommerce {
	max-width: none !important;
	margin: 0 !important;
}

/* WooCommerce pone un «clearfix» antes y después que, en una rejilla, ocupa una celda. */
.bi-tienda-pagina .woocommerce::before,
.bi-tienda-pagina .woocommerce::after {
	display: none !important;
}

/* Ficha de producto ----------------------------------------------------- */

.bi-producto {
	max-width: var(--ancho);
	margin: 0 auto;
	padding: 20px var(--margen) var(--hueco);
	box-sizing: content-box;
}

.bi-producto__migas,
.woocommerce-breadcrumb,
.wc-block-breadcrumbs {
	margin: 0 0 20px;
	font-size: var(--s-mini);
	color: var(--texto-suave);
}

.bi-migas__sep {
	margin: 0 8px;
}

.woocommerce-breadcrumb a,
.wc-block-breadcrumbs a {
	color: var(--tinta);
	text-decoration-color: var(--sol);
	text-decoration-thickness: 2px;
}

.bi-producto__fila {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	align-items: start;
	gap: clamp(24px, 5vw, 72px);
}

.bi-producto__fila > * {
	margin: 0 !important;
}

.bi-producto__foto .woocommerce-product-gallery {
	margin: 0 !important;
	width: 100% !important;
	float: none !important;
}

.bi-producto__foto .woocommerce-product-gallery__image img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	background: var(--papel);
}

.bi-producto__foto .flex-control-thumbs {
	display: flex;
	gap: 8px;
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
}

.bi-producto__foto .flex-control-thumbs li {
	width: 72px;
}

.bi-producto__info {
	position: sticky;
	top: 24px;
}

.bi-producto__info > * {
	margin-block: 0 !important;
}

.bi-producto__titulo {
	margin: 0 0 10px !important;
	font-size: var(--s-h1);
}

.bi-producto__precio,
.bi-producto__precio .wc-block-components-product-price {
	font-size: var(--s-h3) !important;
	font-weight: 900;
	color: var(--tinta);
}

.bi-producto__resumen {
	margin: 12px 0 0 !important;
	font-size: var(--s-lead);
}

.bi-producto__resumen p {
	margin: 0;
}

.bi-producto__comprar {
	margin-top: 24px !important;
}

.bi-producto__comprar form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0;
}

.bi-producto__comprar .stock {
	flex-basis: 100%;
	margin: 0;
	font-size: var(--s-mini);
	font-weight: 700;
	color: var(--texto-suave);
}

.bi-producto__comprar .single_add_to_cart_button {
	flex: 1;
	min-height: 56px;
	padding: 0 28px !important;
	background: var(--sol) !important;
	color: var(--texto) !important;
	font-size: var(--s-peq) !important;
	text-transform: none !important;
}

.bi-producto__comprar .single_add_to_cart_button:hover {
	background: var(--tinta) !important;
	color: var(--crema) !important;
}

.bi-promesa {
	display: grid;
	gap: 8px;
	margin: 28px 0 0 !important;
	padding: 18px 20px;
	list-style: none;
	background: var(--papel);
}

.bi-promesa li {
	position: relative;
	padding-left: 28px;
}

.bi-promesa li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--sol);
}

.bi-relacionados {
	margin-top: var(--hueco);
}

/* Selector − + en los campos de cantidad de WooCommerce (ficha y carrito). */
.bi-paso {
	display: inline-flex;
	align-items: center;
	height: 52px;
	border: 2px solid var(--tinta);
	border-radius: 999px;
	background: var(--blanco);
}

.bi-paso__boton {
	display: grid;
	place-items: center;
	width: 46px;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--tinta);
	font: 900 1.25rem/1 var(--letra);
	cursor: pointer;
	touch-action: manipulation;
	transition: background-color 0.2s, transform 0.14s var(--ease);
}

.bi-paso__boton:hover {
	background: var(--crema);
}

.bi-paso__boton:active {
	transform: scale(0.88);
}

.woocommerce .bi-paso .qty,
.bi-paso .qty {
	width: 2.6em !important;
	min-height: 0 !important;
	height: 100%;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	font: 900 var(--s-texto) var(--letra) !important;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.bi-paso .qty::-webkit-inner-spin-button,
.bi-paso .qty::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

/* Zona de reparto: botón de la cabecera y ventana «¿Dónde vive tu familia?» */

.bi-zona-boton {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	max-width: 260px;
	padding: 0 12px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--tinta);
	font: 400 var(--s-peq)/1 var(--letra);
	cursor: pointer;
	transition: background-color 0.2s;
	touch-action: manipulation;
}

.bi-zona-boton:hover {
	background: var(--crema);
}

.bi-zona-boton svg {
	flex: none;
	width: 20px;
	height: 20px;
	fill: var(--coral);
}

.bi-zona-boton b {
	overflow: hidden;
	font-weight: 800;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.bi-zona {
	width: min(480px, calc(100vw - 32px));
	max-height: calc(100dvh - 32px);
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--papel);
	color: var(--texto);
	overscroll-behavior: contain;
}

.bi-zona::backdrop {
	background: rgb(13 88 87 / 0.55);
}

.bi-zona[open] {
	animation: bi-zona-entra 0.28s var(--ease);
}

.bi-zona[open]::backdrop {
	animation: bi-zona-fondo 0.28s var(--ease);
}

@keyframes bi-zona-entra {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.98);
	}
}

@keyframes bi-zona-fondo {
	from {
		opacity: 0;
	}
}

.bi-zona__caja {
	position: relative;
	display: grid;
	gap: 16px;
	padding: 28px 24px 24px;
}

.bi-zona__titulo {
	margin: 0;
	padding-right: 40px;
	font-size: var(--s-h3);
}

.bi-zona__lead {
	margin: -8px 0 0;
	color: var(--texto-suave);
}

.bi-zona__cerrar {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--tinta);
	font: 400 28px/1 var(--letra);
	cursor: pointer;
}

.bi-zona__cerrar:hover {
	background: var(--crema);
}

.bi-zona__provincias {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
}

.bi-zona__opcion {
	position: relative;
}

.bi-zona__opcion input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.bi-zona__opcion span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding: 8px 12px;
	border: 2px solid var(--linea);
	border-radius: 0;
	background: var(--blanco);
	color: var(--tinta);
	font-weight: 800;
	text-align: center;
	cursor: pointer;
	transition: border-color 0.2s, background-color 0.2s, transform 0.16s var(--ease);
}

.bi-zona__opcion span:active {
	transform: scale(0.97);
}

.bi-zona__opcion input:checked + span {
	border-color: var(--tinta);
	background: var(--tinta);
	color: var(--crema);
}

.bi-zona__opcion input:focus-visible + span {
	outline: 3px solid var(--texto);
	outline-offset: 3px;
}

.bi-zona__campo {
	display: grid;
	gap: 6px;
	margin: 0;
}

.bi-zona__campo label {
	font-weight: 800;
}

.bi-zona__campo select {
	min-height: 52px;
	padding: 0 14px;
	border: 2px solid var(--tinta);
	border-radius: 0;
	background: var(--blanco);
	color: var(--texto);
	font: 400 var(--s-texto) var(--letra);
}

.bi-zona__campo small {
	color: var(--texto-suave);
	font-size: var(--s-mini);
}

.bi-zona__listo {
	width: 100%;
}

.bi-zona [hidden] {
	display: none !important;
}

/* Con poco ancho, el buscador tiene prioridad: fuera las palabras de apoyo. */
@media (max-width: 1180px) {
	.bi-zona-boton__antes,
	.bi-ayuda {
		display: none !important;
	}
}

.bi-zona__listo:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	transform: none;
}

@media (max-width: 900px) {
	.bi-zona-boton {
		max-width: 46vw;
		padding: 0 8px;
	}

	.bi-zona-boton__antes {
		display: none;
	}

	.bi-zona__provincias {
		grid-template-columns: 1fr;
	}

	.bi-zona__opcion span {
		min-height: 52px;
	}

	.bi-zona {
		margin: auto auto 0;
		width: 100vw;
		max-width: none;
	}

	.bi-zona__caja {
		padding-bottom: calc(24px + env(safe-area-inset-bottom));
	}
}

/* Aviso flotante de «Añadido» ------------------------------------------- */

.bi-flotante {
	position: fixed;
	left: 50%;
	bottom: 24px;
	z-index: 100;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: calc(100vw - 32px);
	padding: 12px 14px 12px 20px;
	border-radius: 999px;
	background: var(--texto);
	color: var(--crema);
	font-weight: 700;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 16px);
	transition: opacity 0.2s, transform 0.3s var(--ease);
}

.bi-flotante.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translate(-50%, 0);
}

.bi-flotante span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.bi-flotante a {
	flex: none;
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border-radius: 999px;
	background: var(--sol);
	color: var(--texto);
	font-weight: 800;
	text-decoration: none;
}

.bi-flotante--error {
	background: var(--coral-osc);
}

/* WooCommerce: botones y campos ------------------------------------------ */

.wc-block-components-button:not(.is-link),
.wp-block-woocommerce-product-button .wp-block-button__link,
.single_add_to_cart_button,
.wp-element-button {
	border-radius: 999px !important;
	background: var(--tinta) !important;
	color: var(--crema) !important;
	font-family: var(--letra) !important;
	font-weight: 900 !important;
	box-shadow: none !important;
}

.wc-block-components-button:not(.is-link):hover,
.single_add_to_cart_button:hover {
	background: var(--coral-osc) !important;
}

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.woocommerce form .input-text,
.woocommerce form select {
	border-radius: 0 !important;
	font-family: var(--letra) !important;
}

.wc-block-components-product-name,
.wc-block-cart-item__product a {
	font-weight: 900;
	color: var(--tinta);
}

.wc-block-mini-cart__drawer .components-modal__content {
	background: var(--crema);
}

.woocommerce form .input-text,
.woocommerce form select,
.woocommerce .quantity .qty,
.wc-block-components-text-input input,
.wc-block-components-textarea {
	min-height: 52px;
	border: 2px solid var(--tinta) !important;
	border-radius: 0 !important;
	background: var(--blanco) !important;
	color: var(--texto);
}

.woocommerce .quantity .qty {
	width: 4.5em;
	text-align: center;
	font-weight: 900;
}

.woocommerce form .form-row label,
.wc-block-components-text-input label {
	font-weight: 800;
	color: var(--tinta);
}

.wc-block-components-product-price,
.woocommerce div.product p.price {
	color: var(--tinta);
	font-weight: 900;
}

.woocommerce button.button,
.woocommerce a.button {
	min-height: 48px;
	border-radius: 999px !important;
	font-family: var(--letra);
	font-weight: 800;
	transition: background-color 0.2s, transform 0.16s var(--ease);
}

.woocommerce button.button:active,
.woocommerce a.button:active {
	transform: scale(0.97);
}

/* Avisos de WooCommerce: sin cajas de borde fino. */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.wc-block-components-notice-banner {
	margin: 0 0 20px !important;
	padding: 16px 18px 16px 52px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--papel) !important;
	color: var(--texto) !important;
	font-weight: 700;
}

.woocommerce-message {
	background: #dceae6 !important;
}

.woocommerce-error {
	background: #fbe3dd !important;
}

.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--tinta) !important;
}

.woocommerce-error::before {
	color: var(--coral-osc) !important;
}

.woocommerce-message a.button,
.woocommerce-info a.button {
	min-height: 40px;
	background: var(--tinta) !important;
	color: var(--crema) !important;
}

/* Carrito (shortcode clásico): productos a la izquierda, total a la derecha --- */

.woocommerce-cart .bi-tienda-pagina .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
	align-items: start;
	gap: 0 clamp(24px, 4vw, 48px);
}

.woocommerce-cart .bi-tienda-pagina .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .bi-tienda-pagina .woocommerce > .wc-empty-cart-message,
.woocommerce-cart .bi-tienda-pagina .woocommerce > .return-to-shop,
.woocommerce-cart .bi-tienda-pagina .woocommerce > .cart-empty {
	grid-column: 1 / -1;
}

.woocommerce-cart .woocommerce-cart-form {
	min-width: 0;
}

.woocommerce-cart .cart-collaterals {
	position: sticky;
	top: 24px;
	width: auto !important;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	float: none !important;
	width: auto !important;
}

.woocommerce table.shop_table,
.woocommerce table.shop_table td,
.woocommerce table.shop_table th,
.woocommerce .cart-collaterals .cart_totals table {
	border: 0 !important;
	border-radius: 0 !important;
}

.woocommerce table.shop_table {
	margin: 0 !important;
	border-collapse: separate !important;
	border-spacing: 0 8px !important;
}

.woocommerce table.shop_table tbody td {
	padding: 12px 14px !important;
	background: var(--papel);
	vertical-align: middle;
}

.woocommerce table.shop_table th {
	padding: 4px 14px !important;
	font-size: var(--s-mini);
	color: var(--texto-suave);
}

.woocommerce table.shop_table img {
	display: block;
	width: 72px;
	aspect-ratio: 1;
	object-fit: cover;
}

.woocommerce table.shop_table .product-name a {
	color: var(--tinta);
	font-weight: 800;
	text-decoration: none;
}

.woocommerce table.shop_table .product-subtotal {
	font-weight: 900;
}

.woocommerce table.cart td.actions {
	padding: 16px 0 0 !important;
	background: transparent !important;
}

.woocommerce table.cart td.actions .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.woocommerce table.cart td.actions .coupon .input-text {
	width: 240px !important;
	margin: 0 !important;
}

/* Con JS, el carrito se actualiza solo al cambiar la cantidad. */
.bi-carrito-auto .woocommerce-cart-form [name="update_cart"] {
	display: none !important;
}

.woocommerce a.remove {
	display: grid !important;
	place-items: center;
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	color: var(--coral-osc) !important;
	font-size: 1.5rem !important;
	transition: background-color 0.2s, color 0.2s;
}

.woocommerce a.remove:hover {
	background: var(--coral-osc) !important;
	color: var(--papel) !important;
}

.woocommerce .cart-collaterals .cart_totals {
	padding: clamp(20px, 3vw, 28px);
	background: var(--tinta);
	color: var(--crema);
}

.woocommerce .cart-collaterals .cart_totals h2 {
	margin: 0 0 8px;
	font-size: var(--s-h3);
	color: var(--crema);
}

.woocommerce .cart-collaterals .cart_totals table {
	width: 100%;
	border-spacing: 0 !important;
}

.woocommerce .cart-collaterals .cart_totals th {
	text-align: left;
}

.woocommerce .cart-collaterals .cart_totals td,
.woocommerce .cart-collaterals .cart_totals th {
	padding: 10px 0 !important;
	background: transparent !important;
	color: var(--crema);
	font-size: var(--s-peq);
}

.woocommerce .cart-collaterals .cart_totals .order-total td,
.woocommerce .cart-collaterals .cart_totals .order-total th {
	font-size: var(--s-h4);
	font-weight: 900;
}

.woocommerce .cart-collaterals .cart_totals td {
	text-align: right;
}

.woocommerce .wc-proceed-to-checkout {
	padding: 16px 0 0;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button {
	margin: 0;
	border-radius: 999px;
	background: var(--sol) !important;
	color: var(--texto) !important;
	font-size: var(--s-peq);
	font-weight: 900;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--papel) !important;
}

.woocommerce-cart .cart-empty,
.woocommerce-cart .return-to-shop {
	text-align: left;
}

/* El fondo oscuro del minicarrito, una vez cerrado, no debe quedar encima de nada. */
.wc-block-components-drawer__screen-overlay--is-hidden {
	visibility: hidden;
	transition: visibility 0s linear 0.4s;
}

/* Mi cuenta -------------------------------------------------------------- */

.woocommerce-account .bi-tienda-pagina .woocommerce {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	align-items: start;
	gap: 0 clamp(24px, 5vw, 64px);
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-content > :first-child {
	margin-top: 0;
}

.woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 4px;
	margin: 0 !important;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
}

.woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 0 16px;
	border-radius: 999px;
	color: var(--tinta);
	font-weight: 800;
	text-decoration: none !important;
	transition: background-color 0.2s, color 0.2s;
}

.woocommerce-MyAccount-navigation a:hover {
	background: var(--papel);
}

.woocommerce-MyAccount-navigation .is-active a {
	background: var(--tinta);
	color: var(--crema);
}

.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--texto-suave);
	font-weight: 700;
}

.bi-cuenta-hola {
	margin: 0 0 20px;
	font-size: var(--s-lead);
	font-weight: 700;
}

.bi-cuenta-lead {
	max-width: 60ch;
	margin: 0 0 24px;
	font-size: var(--s-lead);
}

.bi-cuenta-h2 {
	margin: 48px 0 16px;
	font-size: var(--s-h3);
}

.bi-panel {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bi-panel__item {
	display: grid;
	align-content: start;
	gap: 4px;
	padding: 20px;
	background: var(--papel);
}

.bi-panel__item .bi-enlace {
	justify-self: start;
	margin-top: 10px;
}

.bi-panel__dato {
	font-size: var(--s-h2);
	font-weight: 900;
	line-height: 1.1;
	color: var(--tinta);
}

.bi-panel__item--sol {
	background: var(--sol);
}

.bi-panel__item--tinta {
	background: var(--tinta);
	color: var(--crema);
}

.bi-panel__item--tinta .bi-panel__dato,
.bi-panel__item--tinta .bi-enlace {
	color: var(--crema);
}

.bi-panel__comprar {
	margin: 24px 0 0;
}

/* Mis familiares */
.bi-familiares {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 12px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.bi-familiar {
	display: flex;
	flex-direction: column;
	padding: 20px;
	background: var(--papel);
}

.bi-familiar h3 {
	margin: 0 0 8px;
	font-size: var(--s-h4);
}

.bi-familiar p {
	margin: 0;
	font-size: var(--s-peq);
}

.bi-familiar__acciones {
	display: flex;
	gap: 20px;
	margin-top: auto !important;
	padding-top: 16px;
}

.bi-familiar__borrar {
	color: var(--coral-osc);
	font-weight: 700;
}

.bi-form-familiar {
	padding: clamp(20px, 3vw, 32px);
	background: var(--papel);
}

.bi-form-familiar h2 {
	margin: 0 0 20px;
	font-size: var(--s-h3);
}

.bi-form-familiar__campos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 16px;
}

.bi-campo {
	margin: 0 0 16px;
}

.bi-campo--ancho {
	grid-column: 1 / -1;
}

.bi-campo label {
	display: block;
	margin-bottom: 6px;
	font-weight: 800;
	color: var(--tinta);
}

.bi-campo small {
	font-weight: 400;
	color: var(--texto-suave);
}

.bi-campo input,
.bi-campo select,
.bi-campo textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	border: 2px solid var(--tinta);
	border-radius: 0;
	background: var(--blanco);
	color: var(--texto);
	font: 400 var(--s-texto) var(--letra);
}

.bi-prefijo {
	display: flex;
}

.bi-prefijo > span {
	display: grid;
	place-items: center;
	padding: 0 12px;
	background: var(--tinta);
	color: var(--crema);
	font-weight: 800;
}

.bi-form-familiar__acciones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	margin: 8px 0 0;
}

/* Repartos (solo el equipo de reparto) y la entrega en el pedido */
.bi-repartos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bi-reparto {
	display: flex;
	flex-direction: column;
	padding: 20px;
	background: var(--papel);
}

.bi-reparto h3 {
	margin: 4px 0 8px;
	font-size: var(--s-h4);
}

.bi-reparto p {
	margin: 0;
	font-size: var(--s-peq);
}

.bi-reparto__cabeza {
	display: flex;
	justify-content: space-between;
	color: var(--texto-suave);
}

.bi-reparto__acciones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: auto !important;
	padding-top: 16px;
}

.bi-reparto__acciones .bi-boton {
	flex: 1;
	min-height: 48px;
}

.bi-reparto--ficha {
	margin-bottom: 16px;
}

.bi-reparto__lineas {
	margin: 12px 0 0;
	padding-left: 1.2em;
	font-size: var(--s-peq);
}

.bi-form-entrega {
	max-width: 560px;
	padding: clamp(20px, 3vw, 32px);
	background: var(--papel);
}

.bi-form-entrega input[type="file"] {
	padding: 12px;
	border-style: dashed;
}

.bi-form-entrega .bi-boton {
	width: 100%;
}

.bi-entrega {
	margin: 0 0 32px;
	padding: 20px;
	background: var(--papel);
}

.bi-entrega .bi-cuenta-h2 {
	margin-top: 0;
}

.bi-entrega__fotos {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.bi-entrega__fotos img {
	display: block;
	width: min(100%, 320px);
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--crema);
}

#ibero-entrega .bi-entrega {
	margin: 0;
	padding: 0;
	background: none;
}

#ibero-entrega .bi-entrega__fotos img {
	width: 100%;
}

/* Invita y gana */
.bi-invita {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 12px;
}

.bi-invita section {
	padding: clamp(20px, 3vw, 32px);
}

.bi-invita section p {
	margin: 0 0 10px;
}

.bi-invita__saldo {
	background: var(--tinta);
	color: var(--crema);
}

.bi-invita__codigo {
	background: var(--sol);
}

.bi-invita__etiqueta {
	font-size: var(--s-mini);
	font-weight: 800;
	letter-spacing: 0.02em;
}

.bi-invita__cifra {
	font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem);
	font-weight: 900;
	line-height: 1;
}

.bi-invita__caduca {
	font-size: var(--s-mini);
	opacity: 0.85;
}

.bi-invita__clave {
	font-size: clamp(2rem, 1.6rem + 1.6vw, 2.75rem);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--texto);
	user-select: all;
}

.bi-invita__botones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 16px 0 12px;
}

.bi-invita__enlace {
	font-size: var(--s-mini);
	word-break: break-all;
}

.bi-pasos--cuenta li {
	padding: 14px 16px;
	background: var(--papel);
}

.bi-letra-pequena {
	font-size: var(--s-mini);
	color: var(--texto-suave);
}

.bi-vacio-cuenta {
	padding: 20px;
	background: var(--papel);
}

.bi-invitados {
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bi-invitado {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto;
	align-items: center;
	gap: 4px 16px;
	padding: 14px 16px;
	background: var(--papel);
}

.bi-invitado small {
	color: var(--texto-suave);
}

.bi-invitado--ok span {
	font-weight: 800;
	color: var(--tinta);
}

.bi-invitado--no span {
	color: var(--texto-suave);
}

.bi-movimientos {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0 6px;
}

.bi-movimientos th,
.bi-movimientos td {
	padding: 12px 14px;
	text-align: left;
}

.bi-movimientos thead th {
	padding-block: 4px;
	font-size: var(--s-mini);
	color: var(--texto-suave);
}

.bi-movimientos tbody td {
	background: var(--papel);
}

.bi-movimientos td small {
	display: block;
	color: var(--texto-suave);
}

.bi-movimientos td:last-child {
	font-weight: 900;
	text-align: right;
	white-space: nowrap;
}

.bi-movimientos .is-mas {
	color: var(--tinta);
}

.bi-movimientos .is-menos {
	color: var(--coral-osc);
}

/* Pedidos, direcciones y datos de la cuenta */
.woocommerce-account .woocommerce-orders-table {
	width: 100%;
}

.woocommerce-account .woocommerce-orders-table .button {
	min-height: 40px;
	padding: 0 16px;
	background: var(--tinta) !important;
	color: var(--crema) !important;
	font-size: var(--s-mini);
}

.woocommerce-account .woocommerce-Addresses {
	display: block;
}

.woocommerce-account .woocommerce-Address {
	width: auto !important;
	float: none !important;
	padding: 20px;
	background: var(--papel);
}

.woocommerce-account .woocommerce-Address-title h2 {
	margin: 0;
	font-size: var(--s-h4);
}

/* Entrar o crear cuenta: las dos cajas, lado a lado */
.woocommerce-account:not(.logged-in) .bi-tienda-pagina .woocommerce {
	display: block;
}

.woocommerce .u-columns.col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	width: auto;
}

.woocommerce .u-columns.col2-set::before,
.woocommerce .u-columns.col2-set::after {
	display: none;
}

.woocommerce .u-columns .u-column1,
.woocommerce .u-columns .u-column2 {
	float: none !important;
	width: auto !important;
}

.woocommerce .u-columns h2 {
	font-size: var(--s-h3);
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password,
.woocommerce form.edit-account,
.woocommerce-account .woocommerce-address-fields {
	margin: 0 !important;
	padding: clamp(20px, 3vw, 32px) !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--papel);
}

.woocommerce form .form-row {
	margin: 0 0 16px;
	padding: 0;
}

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
	width: 100%;
	padding: 12px 14px;
}

/* Pago: Easy2Cuba con los colores de la marca --------------------------- */

body .e2c-form {
	--e2c-accent: var(--tinta);
	--e2c-accent-soft: #dceae6;
	--e2c-navy: var(--tinta);
	--e2c-red: var(--coral-osc);
	--e2c-fg: var(--texto);
	--e2c-muted: var(--texto-suave);
	--e2c-bg: var(--crema);
	--e2c-surface: var(--papel);
	--e2c-line: #d8cdb8;
	--e2c-r: 0px;
	--e2c-body: var(--letra);
	--e2c-display: var(--letra);
}

.e2c-form h2,
.e2c-form h3 {
	letter-spacing: -0.02em;
}

.e2c-form button[type="submit"],
.e2c-form #place_order {
	border-radius: 999px !important;
	background: var(--sol) !important;
	color: var(--texto) !important;
	font-weight: 900 !important;
}

.ibero-pago {
	padding: clamp(24px, 4vw, 56px) var(--margen) var(--hueco);
}

body .e2c-form .woocommerce-info,
body .woocommerce-form-coupon-toggle .woocommerce-info {
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--papel) !important;
	color: var(--texto) !important;
}

/* ¿A quién se lo mandas?: los familiares guardados como botones. */
.bi-elige-familiar {
	margin: 0 0 8px !important;
	padding: 0;
	border: 0;
}

.bi-elige-familiar legend {
	margin-bottom: 10px;
	padding: 0;
	font-weight: 800;
	color: var(--tinta);
}

.bi-elige-familiar__lista {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.bi-familiar-chip {
	position: relative;
	cursor: pointer;
}

.bi-familiar-chip input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.bi-familiar-chip > span {
	display: grid;
	min-height: 52px;
	padding: 8px 18px;
	border: 2px solid var(--tinta);
	border-radius: 16px;
	background: var(--blanco);
	line-height: 1.2;
	transition: background-color 0.2s, color 0.2s, transform 0.16s var(--ease);
}

.bi-familiar-chip b {
	color: var(--tinta);
}

.bi-familiar-chip small {
	font-size: var(--s-mini);
	color: var(--texto-suave);
}

.bi-familiar-chip:hover > span {
	background: var(--crema);
}

.bi-familiar-chip:active > span {
	transform: scale(0.97);
}

.bi-familiar-chip input:checked + span {
	background: var(--tinta);
}

.bi-familiar-chip input:checked + span b,
.bi-familiar-chip input:checked + span small {
	color: var(--crema);
}

.bi-familiar-chip input:focus-visible + span {
	outline: 3px solid var(--texto);
	outline-offset: 3px;
}

.bi-familiar-chip--otra > span {
	border-style: dashed;
}

.bi-guardar-familiar label {
	display: flex !important;
	align-items: center;
	gap: 10px;
	font-weight: 700 !important;
}

.bi-guardar-familiar input[type="checkbox"] {
	width: 22px;
	height: 22px;
	accent-color: var(--tinta);
}

/* Usar mi saldo, encima del resumen del pedido. */
.bi-usar-saldo {
	margin: 0 0 16px !important;
	padding: 14px 16px;
	background: var(--sol);
}

.bi-usar-saldo .bi-usar-saldo__caja {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	margin: 0 !important;
	color: var(--texto) !important;
	cursor: pointer;
}

.bi-usar-saldo input[type="checkbox"] {
	flex: none;
	width: 22px;
	height: 22px;
	margin: 2px 0 0 !important;
	accent-color: var(--tinta);
}

.bi-usar-saldo__texto {
	display: grid;
	gap: 2px;
}

.bi-usar-saldo__texto b {
	font-weight: 800;
}

.bi-usar-saldo__texto b .amount {
	white-space: nowrap;
}

.bi-usar-saldo__texto small {
	font-size: var(--s-mini);
	font-weight: 400;
}

/* Movimiento ------------------------------------------------------------- */

.ibero-barra__num.is-salta {
	animation: bi-salta 0.35s var(--ease);
}

@keyframes bi-salta {
	40% {
		transform: scale(1.35);
	}
}

/* El efecto de pasar el ratón no se queda pegado al tocar en el móvil. */
@media (hover: none) {
	.ibero-card:hover .ibero-card__media img,
	.bi-seccion a:hover,
	.bi-seccion a:hover .bi-seccion__foto,
	.ibero-logo:hover {
		transform: none;
	}

	.bi-cantidad__mas:hover,
	.bi-cantidad__menos:hover {
		background: transparent;
		color: inherit;
	}
}

/* Barra inferior del móvil ------------------------------------------------ */

.ibero-barra {
	display: none;
}

.ibero-barra__num[hidden] {
	display: none !important;
}

/* Tablet y móvil ---------------------------------------------------------- */

@media (max-width: 1100px) {
	.ibero-rejilla {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 1000px) {
	.bi-secciones {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.bi-pie__fila {
		grid-template-columns: 1fr 1fr;
	}

	.bi-pie__marca {
		grid-column: 1 / -1;
	}

	.woocommerce-cart .bi-tienda-pagina .woocommerce {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart .cart-collaterals {
		position: static;
		margin-top: 16px;
	}

	.bi-invita {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	:root {
		--cabecera: 64px;
	}

	.bi-cabecera__fila {
		grid-template-columns: auto 1fr;
		gap: 10px 16px;
		padding-top: 10px;
		padding-bottom: 12px;
	}

	.ibero-logo img {
		height: 56px;
	}

	.bi-buscar {
		grid-column: 1 / -1;
		grid-row: 2;
		max-width: none;
	}

	.bi-cabecera__acciones {
		justify-self: end;
	}

	.bi-minicarrito,
	.bi-ayuda,
	.bi-cuenta .label,
	.bi-menu {
		display: none !important;
	}

	.bi-bienvenida__marco {
		grid-template-columns: 1fr;
	}

	.bi-bienvenida__escena {
		order: -1;
		max-width: 520px;
		margin: 0 auto -8px;
	}

	.bi-secciones,
	.ibero-rejilla {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 12px;
	}

	.bi-secciones {
		gap: 12px;
	}

	.bi-seccion__nombre {
		padding: 10px 12px 12px;
		font-size: var(--s-peq);
	}

	.ibero-card__title {
		font-size: var(--s-peq);
	}

	.bi-cantidad {
		--boton: 44px;
		right: 8px;
		bottom: 8px;
	}

	.bi-tres {
		grid-template-columns: 1fr;
	}

	.bi-producto__fila {
		grid-template-columns: 1fr;
	}

	.bi-producto__info {
		position: static;
	}

	/* La cuenta: el menú pasa a una fila de pastillas que se desliza. */
	.woocommerce-account .bi-tienda-pagina .woocommerce {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-account .woocommerce-MyAccount-navigation {
		margin: 0 calc(-1 * var(--margen)) 24px !important;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.woocommerce-MyAccount-navigation::-webkit-scrollbar {
		display: none;
	}

	.woocommerce-MyAccount-navigation ul {
		display: flex;
		gap: 8px;
		width: max-content;
		padding: 0 var(--margen);
	}

	.woocommerce-MyAccount-navigation a {
		min-height: 44px;
		background: var(--papel);
		white-space: nowrap;
	}

	.woocommerce .u-columns.col2-set {
		grid-template-columns: 1fr;
	}

	.ibero-barra {
		position: fixed;
		inset: auto 0 0;
		z-index: 60;
		display: grid;
		grid-template-columns: repeat(5, 1fr);
		padding-bottom: env(safe-area-inset-bottom);
		background: var(--tinta);
	}

	.ibero-barra a {
		position: relative;
		display: grid;
		justify-items: center;
		align-content: center;
		gap: 3px;
		min-height: 60px;
		padding: 8px 2px 6px;
		color: var(--crema);
		font-size: 0.75rem;
		font-weight: 700;
		text-decoration: none;
		transition: color 0.2s;
	}

	.ibero-barra a:active svg {
		transform: scale(0.86);
	}

	.ibero-barra a.is-activo {
		color: var(--sol);
	}

	.ibero-barra svg {
		width: 24px;
		height: 24px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2;
		stroke-linejoin: round;
		stroke-linecap: round;
		transition: transform 0.16s var(--ease);
	}

	.ibero-barra__num {
		position: absolute;
		top: 5px;
		left: calc(50% + 6px);
		display: grid;
		place-items: center;
		min-width: 20px;
		height: 20px;
		padding: 0 5px;
		border-radius: 999px;
		background: var(--sol);
		color: var(--texto);
		font-size: 0.75rem;
	}

	body {
		padding-bottom: calc(60px + env(safe-area-inset-bottom));
	}

	.bi-flotante {
		bottom: calc(72px + env(safe-area-inset-bottom));
	}

	body.woocommerce-checkout .ibero-barra {
		display: none;
	}

	body.woocommerce-checkout {
		padding-bottom: 0;
	}

	body.woocommerce-checkout .bi-flotante {
		bottom: 16px;
	}
}

@media (max-width: 768px) {
	/* El carrito clásico pasa a tarjetas: foto, nombre, cantidad y total, sin etiquetas. */
	.woocommerce-cart-form .shop_table_responsive tr.cart_item {
		display: grid;
		grid-template-columns: 64px minmax(0, 1fr) auto;
		grid-template-areas:
			"foto nombre quitar"
			"foto cantidad total";
		align-items: center;
		gap: 10px 12px;
		margin-bottom: 8px;
		padding: 12px;
		background: var(--papel);
	}

	.woocommerce .woocommerce-cart-form .shop_table_responsive tr.cart_item td {
		display: block !important;
		padding: 0 !important;
		background: transparent !important;
		text-align: left !important;
	}

	.woocommerce-cart-form .shop_table_responsive tr.cart_item td::before {
		display: none !important;
	}

	.woocommerce-cart-form .shop_table_responsive td.product-thumbnail {
		grid-area: foto;
		align-self: start;
	}

	.woocommerce-cart-form .shop_table_responsive td.product-thumbnail img {
		width: 64px;
	}

	.woocommerce-cart-form .shop_table_responsive td.product-name {
		grid-area: nombre;
		line-height: 1.2;
	}

	.woocommerce-cart-form .shop_table_responsive td.product-remove {
		grid-area: quitar;
	}

	.woocommerce .woocommerce-cart-form .shop_table_responsive tr.cart_item td.product-price {
		display: none !important;
	}

	.woocommerce-cart-form .shop_table_responsive td.product-quantity {
		grid-area: cantidad;
	}

	.woocommerce .woocommerce-cart-form .shop_table_responsive td.product-subtotal {
		grid-area: total;
		text-align: right !important;
	}

	.woocommerce-cart-form .shop_table_responsive td.actions {
		display: block !important;
	}

	.woocommerce-cart-form .bi-paso {
		height: 44px;
	}

	.woocommerce-cart-form .bi-paso__boton {
		width: 42px;
	}

	.woocommerce table.cart td.actions .coupon .input-text {
		width: auto !important;
		flex: 1;
	}

	/* El total sigue sobre tinta, sin las franjas de la tabla del móvil. */
	.woocommerce .cart-collaterals .cart_totals tr td,
	.woocommerce .cart-collaterals .cart_totals tr th {
		display: table-cell !important;
		background: transparent !important;
	}

	.woocommerce .cart-collaterals .cart_totals tr td::before {
		display: none !important;
	}

	.bi-form-familiar__campos {
		grid-template-columns: 1fr;
	}

	.bi-invitado {
		grid-template-columns: 1fr auto;
	}

	.bi-invitado span {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

@media (max-width: 600px) {
	.bi-pie__enlaces {
		gap: 0;
	}

	.bi-pie__enlaces a {
		font-size: var(--s-mini);
	}

	.bi-pie__logo {
		width: 200px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	@view-transition {
		navigation: none;
	}
}
