/*
Theme Name: IÓ Coffees
Theme URI: https://io-coffees.com
Author: IÓ Coffees
Description: Tema de bloques (FSE) a medida para IÓ Coffees. Réplica fiel del mockup de marca, con contenido mantenible por un usuario no técnico (rol Editor).
Version: 0.4.3
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: io-coffees
*/

.is-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 0.8125rem;
	font-weight: 600;
}

.is-link-cta {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.8125rem;
	font-weight: 600;
}

.hero-badges {
	row-gap: var(--wp--preset--spacing--20);
	column-gap: var(--wp--preset--spacing--30);
}
.hero-badges__item { gap: 0.5rem; }
.hero-badges__icon {
	flex-shrink: 0;
	color: var(--wp--preset--color--dorado);
}

/* Carrusel de Stock */
.stock-carousel {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	overflow-x: hidden;
}
.stock-carousel__track {
	flex: 1 1 auto;
	min-width: 0;
}
.stock-carousel__track .wp-block-post-template {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	list-style: none;
	margin: 0;
	padding: 0 0 0.75rem;
	gap: 1.5rem;
}
.stock-carousel__track .wp-block-post-template > li {
	flex: 0 0 auto;
	width: clamp(170px, 21vw, 220px);
	scroll-snap-align: start;
	margin-block-start: 0 !important;
}
.stock-carousel__arrow {
	flex-shrink: 0;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	border: 1px solid var(--wp--preset--color--dorado);
	background: var(--wp--preset--color--crema-clara);
	color: var(--wp--preset--color--dorado);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.stock-carousel__arrow:hover {
	background: var(--wp--preset--color--dorado);
	color: var(--wp--preset--color--crema-clara);
}
@media (max-width: 600px) {
	.stock-carousel__arrow { display: none; }
}

/* Cuadrícula de productores — Query Loop */
.productores-grid .wp-block-post-template {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
	column-gap: 2rem;
	row-gap: 0.75rem;
}
.productores-grid .wp-block-post-template > li {
	flex: 1 1 220px;
	max-width: 100%;
	box-sizing: border-box;
	margin-block-start: 0 !important;
}
@media (min-width: 600px) {
	.productores-grid .wp-block-post-template > li { max-width: calc(50% - 1rem); }
}
@media (min-width: 1024px) {
	.productores-grid .wp-block-post-template > li { max-width: calc(25% - 1.5rem); }
	.productores-grid .wp-block-post-template > li:not(:nth-child(4n)):not(:last-child) {
		border-right: 1px solid rgba(26, 30, 17, 0.15);
	}
}

/* Cuadrícula de productores — Bloque dinámico */
.productores-grid.wp-block-query:not(:has(.wp-block-post-template)) {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	column-gap: 2rem;
	row-gap: 0.75rem;
}
.productores-grid > .wp-block-post {
	flex: 1 1 220px;
	max-width: 100%;
	box-sizing: border-box;
	margin-block-start: 0 !important;
}
@media (min-width: 600px) {
	.productores-grid > .wp-block-post { max-width: calc(50% - 1rem); }
}
@media (min-width: 1024px) {
	.productores-grid > .wp-block-post { max-width: calc(25% - 1.5rem); }
	.productores-grid > .wp-block-post:not(:nth-child(4n)):not(:last-child) {
		border-right: 1px solid rgba(26, 30, 17, 0.15);
	}
}

.productor-logo { text-align: center; }
.productor-logo img {
	display: inline-block;
	width: auto;
	max-width: 100%;
	height: 170px;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.site-logo { margin: 0; }
.site-logo img {
	display: block;
	height: 56px;
	width: auto;
	object-fit: contain;
}

.site-branding { gap: var(--wp--preset--spacing--20); }
.partner-badge {
	margin: 0;
	padding-left: var(--wp--preset--spacing--20);
	border-left: 1px solid rgba(244, 240, 231, 0.25);
}
.partner-badge img {
	display: block;
	height: 56px;
	width: auto;
	object-fit: contain;
}

.cita-dorada {
	border-left: 3px solid var(--wp--preset--color--dorado);
	padding-left: var(--wp--preset--spacing--20);
}
.cita-dorada p {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.375rem;
}

.overlay-legible .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(6,18,10,0.85) 0%, rgba(6,18,10,0.55) 45%, rgba(6,18,10,0.15) 100%) !important;
}

main.wp-block-group { margin-block-start: 0 !important; }
footer { margin-block-start: 0 !important; }

/* Cuadrícula de cafés en /cafes/ */
.cafes-grid .wp-block-post-template {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
	column-gap: 2rem;
	row-gap: var(--wp--preset--spacing--40);
}
.cafes-grid .wp-block-post-template > li {
	flex: 1 1 240px;
	max-width: 100%;
	box-sizing: border-box;
	margin-block-start: 0 !important;
}
@media (min-width: 600px) {
	.cafes-grid .wp-block-post-template > li { max-width: calc(50% - 1rem); }
}
@media (min-width: 900px) {
	.cafes-grid .wp-block-post-template > li { max-width: calc(25% - 1.5rem); }
}

/* === Página Stock Europa === */
.stock-europa-contador { margin: 0; }
.stock-europa-nota { display: flex; align-items: center; gap: 0.4rem; margin: 0.5rem 0 0; font-size: 0.8125rem; color: var(--wp--preset--color--gris-tenue); }
.stock-europa-pills { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: var(--wp--preset--spacing--40); }
.stock-europa-pill {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	padding: 0.5rem 1.1rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--gris-tenue);
	background: transparent;
	color: var(--wp--preset--color--texto-oscuro);
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.stock-europa-pill.is-active {
	background-color: var(--wp--preset--color--base-oscuro);
	border-color: var(--wp--preset--color--base-oscuro);
	color: var(--wp--preset--color--texto-claro);
}
.stock-europa-grid .wp-block-post-template {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
	column-gap: 2rem;
	row-gap: var(--wp--preset--spacing--40);
}
.stock-europa-grid .wp-block-post-template > li {
	flex: 1 1 260px;
	max-width: 320px;
	box-sizing: border-box;
	margin-block-start: 0 !important;
}
.stock-europa-card-media { position: relative; }
.stock-europa-sca-badge {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	background-color: var(--wp--preset--color--base-oscuro);
	color: var(--wp--preset--color--texto-claro);
	padding: 0.4rem 0.6rem;
	border-radius: 4px;
	line-height: 1.1;
	text-align: center;
}
.stock-europa-sca-numero { margin: 0; font-size: 1rem; font-weight: 600; }
.stock-europa-sca-label { margin: 0; font-size: 0.625rem; letter-spacing: 0.05em; opacity: 0.85; }
.stock-europa-productor-badge {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 48px;
	height: 48px;
	margin: 0;
}
.stock-europa-productor-badge img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 50%;
	background: var(--wp--preset--color--crema-clara);
	padding: 4px;
}
.stock-europa-productor-badge img[src^="data:image/gif;base64,R0lGOD"] { display: none; }
.stock-europa-sku { margin-top: 0.3rem; }
.stock-europa-meta-row svg { flex-shrink: 0; opacity: 0.7; }
.stock-europa-finca, .stock-europa-ubicacion, .stock-europa-categoria, .stock-europa-cajas { margin: 0; }
.stock-europa-beneficios > .wp-block-group { flex: 1 1 180px; }

/* === Formulario de contacto === */
.contacto-form { margin-top: var(--wp--preset--spacing--40); }
.contacto-form__row { margin-bottom: 1.2rem; }
.contacto-form__row label {
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--texto-oscuro);
	margin-bottom: 0.4rem;
}
.contacto-form__row input,
.contacto-form__row textarea {
	width: 100%;
	padding: 0.7rem 1rem;
	border: 1px solid var(--wp--preset--color--gris-tenue);
	border-radius: 2px;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1rem;
	background: var(--wp--preset--color--crema);
	color: var(--wp--preset--color--texto-oscuro);
	box-sizing: border-box;
}
.contacto-form__submit {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 0.9rem 1.6rem;
	border: 2px solid var(--wp--preset--color--base-oscuro);
	border-radius: 2px;
	background: transparent;
	color: var(--wp--preset--color--base-oscuro);
	cursor: not-allowed;
	opacity: 0.5;
}
.contacto-form__nota {
	margin-top: 1rem;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--gris-tenue);
}

/* === Ficha de lote (single-lote) — Fase 1 === */
.lote-volver { margin: 0; }
.lote-hero { align-items: flex-start; }
.lote-referencia { margin-top: 0.2rem; }
.lote-productor-seal { margin: 0; }
.lote-productor-seal img { border-radius: 50%; background: var(--wp--preset--color--crema-clara); padding: 4px; }
.lote-sca-box { gap: 2rem; }
.lote-sca-score { min-width: 110px; }
.lote-sca-score__numero {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 2.75rem;
	line-height: 1;
	margin: 0 0 0.2rem;
	color: var(--wp--preset--color--texto-oscuro);
}
.estado-badge {
	display: inline-block;
	padding: 0.4rem 1rem;
	border-radius: 2px;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: capitalize;
	color: var(--wp--preset--color--texto-claro);
}
.estado-badge.is-disponible { background-color: var(--wp--preset--color--verde-oliva); }
.estado-badge.is-agotado { background-color: var(--wp--preset--color--gris-tenue); }

/* Notas de sabor con icono */
.lote-flavor-notes { row-gap: 1rem; column-gap: 1.8rem; }
.lote-flavor-notes__item { align-items: center; gap: 0.4rem; text-align: center; max-width: 90px; }
.lote-flavor-notes__icon { color: var(--wp--preset--color--dorado-oscuro); }
.lote-notas-sabor-wrap:empty { display: none; }

/* Barra resumen */
.lote-resumen-bar { row-gap: 1.5rem; column-gap: 1.5rem; border-radius: 4px; }
.lote-resumen-item { min-width: 140px; }
.lote-resumen-item svg { flex-shrink: 0; color: var(--wp--preset--color--dorado-oscuro); }
.lote-resumen-item p { margin: 0; }

/* Tarjeta productor */
.lote-productor-card__foto { margin: 0; flex-shrink: 0; }
.lote-productor-card__foto img { border-radius: 4px; }

/* Persona productora — layout */
.lote-persona-row {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	flex-wrap: nowrap;
}
.lote-persona-row .lote-productor-card__foto {
	flex-shrink: 0;
	width: 80px !important;
	height: 80px !important;
	margin: 0 !important;
}
.lote-persona-row .lote-productor-card__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 4px;
}
.lote-persona-bio {
	font-size: 0.875rem;
	line-height: 1.5;
}

/* === Ficha de lote — Fase 2 === */
.lote-fila-doble { align-items: stretch; }
.lote-card { border-radius: 4px; }

/* Perfil sensorial */
.lote-perfil-sensorial__fila { gap: 0.8rem; }
.lote-perfil-sensorial__label { min-width: 70px; flex-shrink: 0; margin-top: 0.2rem; }

/* Proceso: pasos */
.lote-proceso-pasos { row-gap: 1rem; column-gap: 0.6rem; margin-top: var(--wp--preset--spacing--20); }
.lote-proceso-pasos__item { align-items: center; gap: 0.4rem; text-align: center; max-width: 100px; }
.lote-proceso-pasos__numero {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background-color: var(--wp--preset--color--dorado-oscuro);
	color: var(--wp--preset--color--texto-claro);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	margin: 0 auto;
}
.lote-proceso-pasos__flecha { color: var(--wp--preset--color--gris-tenue); flex-shrink: 0; }

/* Evaluación SCA con iconos */
.lote-sca-iconos {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 0.5rem;
	margin-top: var(--wp--preset--spacing--20);
}
.lote-sca-iconos__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	min-width: 60px;
	flex: 1 1 60px;
}
.lote-sca-iconos__item svg {
	width: 28px;
	height: 28px;
	stroke: var(--wp--preset--color--dorado-oscuro);
	flex-shrink: 0;
}
.lote-sca-iconos__label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--gris-tenue);
	margin-top: 0.35rem;
	line-height: 1.2;
}
.lote-sca-iconos__valor {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.25rem;
	font-weight: 500;
	color: var(--wp--preset--color--texto-oscuro);
	margin-top: 0.2rem;
}
.lote-sca-iconos__item--total {
	border-left: 1px solid rgba(26,30,17,0.15);
	padding-left: 0.75rem;
}
.lote-sca-iconos__valor--total {
	color: var(--wp--preset--color--dorado-oscuro);
	font-size: 1.5rem;
}

/* Botón ficha técnica oculto si no hay PDF */
.lote-btn-ficha:has(a[href="#"]) { display: none; }

/* Foto secundaria */
.lote-foto-secundaria img { border-radius: 4px; object-fit: cover; width: 100%; height: 100%; aspect-ratio: 3/4; }

/* Banner CTA */
.lote-cta-banner { border-radius: 4px; gap: 1.5rem; }

/* Evitar scroll horizontal */
.wp-site-blocks { overflow-x: hidden; }
#stock { overflow-x: hidden; }
