/* =========================================================================
   EV 30 · Base fase 3 — legibilidad, cabecera y pie
   Se carga DESPUÉS de los estilos inline de los snippets EV 01–27. Muchos de esos estilos
   usan !important (EV25/EV27), por eso aquí los tamaños de letra también lo llevan:
   esta capa es la que manda en tamaños mínimos (petición de Susana: textos demasiado pequeños).
   Escala: etiquetas mono ≥ 12px · texto secundario ≥ 14px · texto de lectura ≥ 16px.
   ========================================================================= */

:root {
	--ev3-etiqueta: 12px;
	--ev3-secundario: 14px;
	--ev3-lectura: 16px;
}

@media (min-width: 1025px) {
	:root {
		--ev3-etiqueta: 13px;
		--ev3-secundario: 15px;
		--ev3-lectura: 17px;
	}
}

/* El overflow-x:hidden de EV25 en html/body anula el position:sticky de la cabecera.
   "clip" evita igual el scroll horizontal sin romper sticky. */
html,
body {
	overflow-x: clip !important;
}

/* ---------------------------------------------------------------------
   1. CABECERA (EV 02)
   --------------------------------------------------------------------- */
/* Cabecera fija al hacer scroll (carrito siempre a mano). La cabecera [ev_header] vive dentro de la
   plantilla de Elementor, cuyo contenedor mide lo mismo que ella: el sticky debe ir en la plantilla. */
body:not(#ev3) header.elementor-location-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 9990;
}

body:not(#ev3) header.elementor-location-header > .e-con {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

body:not(#ev3) header.elementor-location-header .ev-site-header {
	position: relative !important;
	top: auto !important;
}

/* Versión compacta al hacer scroll (body.ev3-scroll lo pone ev3-explorar.js) */
body.ev3-scroll:not(#ev3) .ev-header-topbar {
	display: none !important;
}

body.ev3-scroll:not(#ev3) .ev-site-header .ev-header-inner {
	min-height: 84px !important;
}

body.ev3-scroll:not(#ev3) .ev-header-menu > li > a {
	padding-top: 28px !important;
	padding-bottom: 28px !important;
}

body.ev3-scroll:not(#ev3) .ev-site-header {
	box-shadow: 0 8px 24px -18px rgba(28, 27, 22, .35);
}

@media (max-width: 767px) {
	body.ev3-scroll:not(#ev3) .ev-site-header .ev-header-inner {
		min-height: 64px !important;
	}
}

body:not(#ev3) .ev-header-topbar .ev-header-topbar-inner {
	font-size: var(--ev3-etiqueta) !important;
	letter-spacing: .08em !important;
}

body:not(#ev3) .ev-header-menu > li > a,
body:not(#ev3) .ev-header-menu > li.ev3-menu-explorar .ev3-explorar__boton {
	font-size: 16px !important;
	font-weight: 500 !important;
	letter-spacing: .01em !important;
}

body:not(#ev3) .ev-header-menu .sub-menu a {
	font-size: 15px !important;
}

/* Iconos: 24px en zonas táctiles de 48px (escritorio) / 44px (móvil) */
body:not(#ev3) .ev-site-header .ev-header-action {
	width: 48px !important;
	height: 48px !important;
}

body:not(#ev3) .ev-site-header .ev-header-action svg {
	width: 24px !important;
	height: 24px !important;
}

body:not(#ev3) .ev-site-header .ev-cart-count,
body:not(#ev3) .ev-site-header .ev-wishlist-count {
	min-width: 20px !important;
	height: 20px !important;
	padding: 0 5px !important;
	font-size: 12px !important;
	line-height: 20px !important;
	font-weight: 600 !important;
}

/* Contador a 0: no distrae */
body:not(#ev3) .ev-site-header .ev-cart-count.ev3-vacio,
body:not(#ev3) .ev-site-header .ev-wishlist-count.ev3-vacio {
	opacity: 0 !important;
}

/* Buscador de la cabecera (panel) */
body:not(#ev3) .ev-search-panel [class*="kicker"],
body:not(#ev3) .ev-search-panel [class*="status"],
body:not(#ev3) .ev-search-panel [class*="meta"],
body:not(#ev3) .ev-search-panel [class*="category"],
body:not(#ev3) .ev-search-panel [class*="suggest"] a,
body:not(#ev3) .ev-search-panel [class*="all"] {
	font-size: var(--ev3-etiqueta) !important;
}

@media (max-width: 1024px) {
	/* Cuenta visible también en tablet y móvil (EV 02 la ocultaba) */
	body:not(#ev3) .ev-site-header .ev-account-link {
		display: inline-flex !important;
	}
}

@media (max-width: 767px) {
	body:not(#ev3) .ev-site-header .ev-header-action {
		width: 40px !important;
		height: 44px !important;
	}

	body:not(#ev3) .ev-site-header .ev-header-action svg {
		width: 22px !important;
		height: 22px !important;
	}

	body:not(#ev3) .ev-site-header .ev-header-actions {
		gap: 0 !important;
	}

	/* La firma animada no se reproduce en móvil (EV 02) pero EV27 la forzaba visible: caja vacía */
	body:not(#ev3) .ev-site-header .ev-header-signature-stage {
		display: none !important;
	}

	/* Logo un poco mayor que los 78px de EV27 */
	body:not(#ev3) .ev-site-header .ev-header-brand img,
	body:not(#ev3) .ev-site-header .custom-logo {
		max-width: 96px !important;
		max-height: 34px !important;
	}

	body:not(#ev3) .ev-mobile-panel .ev-mobile-menu .sub-menu a {
		font-size: 16px !important;
	}

	body:not(#ev3) .ev-mobile-panel a:not([class*="ev3"]) {
		min-height: 44px;
	}
}

@media (max-width: 360px) {
	body:not(#ev3) .ev-site-header .ev-header-action {
		width: 36px !important;
	}

	body:not(#ev3) .ev-site-header .ev-header-action svg {
		width: 21px !important;
		height: 21px !important;
	}
}

/* ---------------------------------------------------------------------
   2. ETIQUETAS MONO ("kicker", "eyebrow", numeraciones) — mínimo legible
   --------------------------------------------------------------------- */
body:not(#ev3) [class*="eyebrow"],
body:not(#ev3) [class*="kicker"],
body:not(#ev3) .ev-home-hero__slide-index span,
body:not(#ev3) .ev-home-hero__scroll span,
body:not(#ev3) .ev-category-card__number,
body:not(#ev3) .ev-home-story__number,
body:not(#ev3) .ev-home-story__vertical,
body:not(#ev3) .ev-home-story__value-number,
body:not(#ev3) .ev08-service-number,
body:not(#ev3) .ev08-brand-message__number,
body:not(#ev3) .ev23-direct-number,
body:not(#ev3) .ev22-value > span,
body:not(#ev3) .ev-shop-filter-label,
body:not(#ev3) .ev-shop-filter-count,
body:not(#ev3) .ev-shop-filter-count strong,
body:not(#ev3) .ev-shop-sort label > span,
body:not(#ev3) .ev-shop-progress__text,
body:not(#ev3) .ev-shop-progress__text strong,
body:not(#ev3) .ev23-direct-label,
body:not(#ev3) .ev23-store-top > span,
body:not(#ev3) .ev23-store-details span,
body:not(#ev3) .ev23-special-types span,
body:not(#ev3) .ev23-statement-inner > span,
body:not(#ev3) .ev23-form-contact > span,
body:not(#ev3) .ev23-final-grid > span,
body:not(#ev3) .ev22-location strong,
body:not(#ev3) .ev22-location span,
body:not(#ev3) .ev08c-floating-cart__text,
body:not(#ev3) .ev08-brand-message__signature,
body:not(#ev3) .ev-home-story__signature-label {
	font-size: var(--ev3-etiqueta) !important;
	letter-spacing: .1em !important;
}

/* ---------------------------------------------------------------------
   3. TEXTO SECUNDARIO — tarjetas, botones, filtros
   --------------------------------------------------------------------- */
body:not(#ev3) .ev-product-card__category,
body:not(#ev3) .ev-shop-product-category,
body:not(#ev3) .ev-product-card__view,
body:not(#ev3) .ev-shop-product-view span,
body:not(#ev3) .ev-category-card__link span,
body:not(#ev3) .ev-products-all span,
body:not(#ev3) .ev-home-story__button span,
body:not(#ev3) .ev-home-story__value strong,
body:not(#ev3) .ev22-value strong,
body:not(#ev3) .ev22-personal__photo-copy small,
body:not(#ev3) .ev-shop-pick,
body:not(#ev3) .ev-filter-dropdown summary span,
body:not(#ev3) .ev-filter-dropdown__panel a,
body:not(#ev3) .ev-shop-more-label,
body:not(#ev3) .ev23-map-link,
body:not(#ev3) .ev23-submit span,
body:not(#ev3) .ev23-final-grid a,
body:not(#ev3) .ev08-service strong {
	font-size: var(--ev3-secundario) !important;
}

body:not(#ev3) .ev-product-card__category,
body:not(#ev3) .ev-shop-product-category {
	letter-spacing: .04em !important;
}

/* ---------------------------------------------------------------------
   4. FICHA DE PRODUCTO (EV 08)
   --------------------------------------------------------------------- */
body.single-product:not(#ev3) .woocommerce-breadcrumb,
body.single-product:not(#ev3) .woocommerce-breadcrumb a {
	font-size: var(--ev3-secundario) !important;
}

body.single-product:not(#ev3) .ev08-product-eyebrow,
body.single-product:not(#ev3) .ev08-product-eyebrow span {
	font-size: var(--ev3-etiqueta) !important;
}

body.single-product:not(#ev3) .ev08-product-note,
body.single-product:not(#ev3) .ev08-service span,
body.single-product:not(#ev3) .ev08-service div > span {
	font-size: var(--ev3-secundario) !important;
	line-height: 1.5 !important;
}

body.single-product:not(#ev3) .product_meta,
body.single-product:not(#ev3) .product_meta span,
body.single-product:not(#ev3) .product_meta a {
	font-size: var(--ev3-secundario) !important;
	letter-spacing: .02em !important;
}

/* Stock bien visible */
body.single-product:not(#ev3) .summary .stock {
	font-size: var(--ev3-secundario) !important;
	font-weight: 600 !important;
	letter-spacing: .02em !important;
}

/* Campos de personalización (fecha, dedicatoria) y variaciones */
body.single-product:not(#ev3) .summary form.cart label,
body.single-product:not(#ev3) .summary form.cart [class*="ev08-field"] strong,
body.single-product:not(#ev3) .summary .variations label {
	font-size: var(--ev3-secundario) !important;
	letter-spacing: .02em !important;
}

body.single-product:not(#ev3) .summary .ev08-option-content label strong {
	font-size: 17px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

body.single-product:not(#ev3) .summary .ev08-option-content label span,
body.single-product:not(#ev3) .summary .ev08-counter,
body.single-product:not(#ev3) .summary form.cart [class*="ev08-field"] span,
body.single-product:not(#ev3) .summary form.cart [class*="counter"],
body.single-product:not(#ev3) .summary form.cart [class*="help"] {
	font-size: 13px !important;
}

body.single-product:not(#ev3) .summary form.cart input[type="date"],
body.single-product:not(#ev3) .summary form.cart textarea,
body.single-product:not(#ev3) .summary form.cart select,
body.single-product:not(#ev3) .summary form.cart input.qty {
	font-size: 16px !important;
}

body.single-product:not(#ev3) .summary form.cart .single_add_to_cart_button {
	min-height: 52px !important;
	font-size: 15px !important;
	letter-spacing: .06em !important;
}

/* ---------------------------------------------------------------------
   5. PIE (EV 12)
   --------------------------------------------------------------------- */
body:not(#ev3) .ev12-footer .ev12-footer__brand-name small {
	font-size: var(--ev3-etiqueta) !important;
}

body:not(#ev3) .ev12-footer .ev12-footer__column-title {
	font-size: var(--ev3-etiqueta) !important;
	letter-spacing: .12em !important;
}

body:not(#ev3) .ev12-footer .ev12-footer__nav a,
body:not(#ev3) .ev12-footer .ev12-footer__store strong,
body:not(#ev3) .ev12-footer .ev12-footer__store a,
body:not(#ev3) .ev12-footer .ev12-footer__contact a {
	font-size: var(--ev3-lectura) !important;
	line-height: 1.5 !important;
}

body:not(#ev3) .ev12-footer .ev12-footer__claim,
body:not(#ev3) .ev12-footer .ev12-footer__store span,
body:not(#ev3) .ev12-footer .ev12-footer__contact a span,
body:not(#ev3) .ev12-footer .ev12-footer__hours strong,
body:not(#ev3) .ev12-footer .ev12-footer__hours span,
body:not(#ev3) .ev12-footer .ev12-footer__hours small {
	font-size: var(--ev3-secundario) !important;
	line-height: 1.5 !important;
}

body:not(#ev3) .ev12-footer .ev12-footer__copyright,
body:not(#ev3) .ev12-footer .ev12-footer__legal a,
body:not(#ev3) .ev12-footer .ev12-back-top {
	font-size: var(--ev3-etiqueta) !important;
}

/* ---------------------------------------------------------------------
   6. FORMULARIOS (contacto EV 23, mi cuenta EV 16)
   --------------------------------------------------------------------- */
body:not(#ev3) .ev23-form label,
body:not(#ev3) .ev23-privacy span,
body:not(#ev3) .ev23-privacy a,
body.woocommerce-account:not(#ev3) form.woocommerce-form label,
body.woocommerce-account:not(#ev3) form.woocommerce-form label span,
body.woocommerce-account:not(#ev3) .woocommerce-LostPassword a,
body:not(#ev3) .woocommerce form .form-row label {
	font-size: var(--ev3-secundario) !important;
	letter-spacing: .02em !important;
}

body.woocommerce-account:not(#ev3) form.woocommerce-form button.button,
body.woocommerce-account:not(#ev3) form.woocommerce-form button.woocommerce-button,
body.woocommerce-account:not(#ev3) form.woocommerce-form .woocommerce-Button {
	min-height: 50px !important;
	font-size: 14px !important;
}

/* Inputs a 16px: evita además el zoom automático de iOS al enfocar */
body:not(#ev3) .woocommerce form .input-text,
body:not(#ev3) .woocommerce form select,
body:not(#ev3) .ev23-form input,
body:not(#ev3) .ev23-form textarea {
	font-size: 16px !important;
}

/* ---------------------------------------------------------------------
   7. CARRITO lateral y página de carrito: datos del producto (fecha, dedicatoria)
   --------------------------------------------------------------------- */
body:not(#ev3) dl.variation dt,
body:not(#ev3) dl.variation dd,
body:not(#ev3) dl.variation dd p,
body:not(#ev3) .ev08c-cart-drawer dl.variation dt,
body:not(#ev3) .ev08c-cart-drawer dl.variation dd {
	font-size: var(--ev3-secundario) !important;
}

/* Botones WooCommerce en general (EV16/EV25 los dejaban en 8–11px) */
body:not(#ev3) .woocommerce a.button,
body:not(#ev3) .woocommerce button.button,
body:not(#ev3) .woocommerce input.button,
body:not(#ev3) .woocommerce #respond input#submit,
body:not(#ev3) .woocommerce .wc-forward {
	font-size: 14px !important;
	letter-spacing: .06em !important;
}

/* Contacto (EV 23): datos de las tiendas y teléfonos */
body:not(#ev3) .ev23-store-details a,
body:not(#ev3) .ev23-store-details p,
body:not(#ev3) .ev23-form-heading p,
body:not(#ev3) .ev23-form-contact a {
	font-size: var(--ev3-lectura) !important;
	line-height: 1.5 !important;
}

/* Datos de la línea (tallos, fecha, dedicatoria, complemento de…): una fila por dato */
body:not(#ev3) dl.variation {
	display: grid !important;
	grid-template-columns: max-content 1fr;
	gap: 4px 10px;
	margin: 8px 0 0 !important;
}

body:not(#ev3) dl.variation dt,
body:not(#ev3) dl.variation dd {
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	clear: none !important;
}

body:not(#ev3) dl.variation dd p {
	margin: 0 !important;
	display: inline;
}

body:not(#ev3) .ev12-footer ~ * .ev17-wishlist-button,
body:not(#ev3) .ev17-wishlist-button {
	font-size: 13px !important;
}

/* Página pública /favoritos/ (fuera de Mi cuenta EV 17 no tenía contenedor) */
body.page:not(.woocommerce-account):not(#ev3) .ev17-wishlist-page {
	max-width: var(--ev-container, 1440px);
	margin: 0 auto;
	padding: 48px clamp(16px, 4vw, 64px) 80px;
}

/* EV 38: un solo bloque de "carrito vacío" (EV 09 y EV 24 añadían uno cada uno) */
body.woocommerce-cart:not(#ev3) .ev24-empty-cart {
	display: none !important;
}
