/**
 * SOLUCON — hero "Afiche" del catálogo (2026-09-10). Público desde el 2026-09-11.
 *
 * Se encola en tienda y categorías DESPUÉS de solucon-tienda-marca.css, cuando
 * solucon_tienda_hero_activa() lo dice (constante SOLUCON_TIENDA_HERO en
 * functions.php; para volver atrás, comentarla).
 * Cambia el hero (.sol-header) y nada más: filtros, vitrina y grilla siguen
 * siendo los de la capa "marca".
 *
 * ── La idea ──
 * Un afiche, no una hoja. Fondo claro (el navy se probó y se descartó: pegado
 * a la vitrina de stock, que también es navy, el hero no terminaba nunca), el
 * titular en Outfit a 92 px, el isotipo como marca de agua, y un equipo real
 * del catálogo grande a la derecha con sus dos datos colgados como etiquetas.
 * Abajo, una cinta en mono que recorre todas las categorías y hace de piso.
 * El buscador es un campo plano con filete: sin sombra dura, a pedido.
 *
 * ── Cómo se arma ──
 * El marcado del hero lo imprime un snippet (Code Snippets, fuera del repo), así
 * que no se reescribe: se restyla. Lo que el afiche necesita y el snippet no
 * tiene (la foto con sus etiquetas, la cinta, la línea de garantías) lo imprime
 * functions.php en un bloque escondido y un script de tres líneas lo mueve
 * adentro del hero. Sin JS el hero queda navy con titular y buscador: sigue
 * siendo un hero, solo que sin la foto.
 *
 * ── Especificidad ──
 * solucon-catalog.css y solucon-tienda-marca.css declaran el hero con
 * `body.woocommerce .sol-header…` y !important. Acá se gana sumando la clase
 * del flag al body (body.sol-tienda-hero.woocommerce → 0,3,0) y repitiendo el
 * !important donde ellas lo usan.
 *
 * ── Nada de overflow:hidden en .sol-header ──
 * El desplegable del buscador inteligente (.sol-smart-dropdown) es un hijo
 * absoluto del form y cuelga por debajo del hero. Si el hero recortara, se
 * cortaría el desplegable. Por eso la marca de agua no sangra fuera de su caja
 * (la máscara es más grande que la caja y se desplaza; la caja queda dentro de
 * la sección) y la foto se recorta dentro de su propio contenedor.
 */

/* ── El plano ─────────────────────────────────────────────────────────── */
body.sol-tienda-hero.woocommerce .sol-header {
	background: #fff !important;
	color: var(--sol-navy);
	position: relative;
}

/* Marca de agua: el isotipo, teñido con mask (mismo recurso que la home). La
   caja mide 780 px y se queda dentro del hero; la máscara, de 1000, se desplaza
   hacia arriba para que la curva de la S asome por encima del equipo y no se
   lea como un logo apoyado. El PNG trae la S centrada en su lienzo, por eso el
   desplazamiento es grande. */
body.sol-tienda-hero.woocommerce .sol-header::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: auto;
	width: 780px;
	height: auto;
	border-radius: 0;
	filter: none;
	opacity: .08;
	background: var(--sol-gray-2);
	-webkit-mask-image: var(--sol-isotipo);
	        mask-image: var(--sol-isotipo);
	-webkit-mask-repeat: no-repeat;
	        mask-repeat: no-repeat;
	-webkit-mask-size: 1000px 1000px;
	        mask-size: 1000px 1000px;
	-webkit-mask-position: -80px -300px;
	        mask-position: -80px -300px;
	pointer-events: none;
}
body.sol-tienda-hero.woocommerce .sol-header::after { display: none; }

/* ── La retícula: texto a la izquierda, equipo a la derecha ─────────── */
body.sol-tienda-hero.woocommerce .sol-header-inner {
	position: relative;
	z-index: 1;
	max-width: 1180px !important;
	padding: 40px 44px 0 !important;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	column-gap: 24px;
	align-items: end;
}
@media (min-width: 1025px) {
	body.sol-tienda-hero.woocommerce .sol-header-inner { padding-top: 132px !important; }
}
/* La línea graduada de la capa "marca" era el piso del hero blanco; acá el
   piso es la cinta. */
body.sol-tienda-hero.woocommerce .sol-header-inner::after { display: none; }

body.sol-tienda-hero.woocommerce .sol-breadcrumb {
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	color: var(--tx-3) !important;
	margin-bottom: 26px !important;
}
body.sol-tienda-hero.woocommerce .sol-breadcrumb a,
body.sol-tienda-hero.woocommerce .sol-breadcrumb strong { color: var(--tx-3) !important; }
body.sol-tienda-hero.woocommerce .sol-breadcrumb a:hover { color: var(--sol-navy) !important; }

body.sol-tienda-hero.woocommerce .sol-header-row {
	grid-column: 1;
	grid-row: 2;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 0 !important;
	padding-bottom: 52px;
}
body.sol-tienda-hero.woocommerce .sol-header-text { max-width: none !important; }

/* ── El titular ───────────────────────────────────────────────────────── */
/* Con JS el titular se reescribe ("Todo lo que / se puede / medir."); para que
   no parpadee el texto del snippet, se esconde solo mientras hay JS y el hero
   no está listo. Sin JS no se esconde nunca. */
html.sol-hero-js body.sol-tienda-hero .sol-header:not(.is-ready) .sol-header-text { visibility: hidden; }

body.sol-tienda-hero.woocommerce .sol-header-text h1 {
	font-family: var(--font-display) !important;
	font-size: clamp(44px, 7.1vw, 92px) !important;
	font-weight: 800 !important;
	line-height: .94 !important;
	letter-spacing: -.03em !important;
	text-transform: uppercase;
	color: var(--sol-navy) !important;
	margin: 0 !important;
	padding: 0;
	border: 0;
	white-space: nowrap;
}
body.sol-tienda-hero.woocommerce .sol-header-text h1::after { display: none; }
/* En categorías el titular es el nombre de la categoría, que puede ser largo
   ("Equipamiento de laboratorio"): baja un escalón y se deja partir. */
body.sol-tienda-hero--cat.woocommerce .sol-header-text h1 {
	font-size: clamp(36px, 5.4vw, 68px) !important;
	white-space: normal;
	max-width: 12ch;
}

body.sol-tienda-hero.woocommerce .sol-header-text p {
	font-family: var(--font-text) !important;
	font-size: 16.5px !important;
	line-height: 1.6 !important;
	color: var(--sol-ink) !important;
	max-width: 44ch;
	margin: 24px 0 0 !important;
}

/* ── El buscador: campo plano con filete, sin sombra ──────────────────── */
/* La capa "marca" le ponía sombra dura navy al enfocar; acá se saca: el foco
   se marca solo con el borde. */
body.sol-tienda-hero.woocommerce .sol-search {
	width: 100%;
	max-width: 560px !important;
	margin-top: 58px !important;
	border: 1px solid var(--sol-line) !important;
	box-shadow: none !important;
}
body.sol-tienda-hero.woocommerce .sol-search:hover { border-color: var(--sol-gray-2) !important; box-shadow: none !important; }
body.sol-tienda-hero.woocommerce .sol-search:focus-within { border-color: var(--sol-navy) !important; box-shadow: none !important; }
body.sol-tienda-hero.woocommerce .sol-search input[type="text"] { flex: 1 1 auto; min-width: 0; width: auto; }

/* ── La línea de garantías: lo que dice cada ficha, sin cifras ───────── */
body.sol-tienda-hero.woocommerce .sol-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin: 34px 0 0;
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--tx-3);
}
body.sol-tienda-hero.woocommerce .sol-hero-meta span {
	padding-left: 12px;
	border-left: 1px solid var(--sol-gray-2);
}

/* ── El equipo ────────────────────────────────────────────────────────── */
/* Arriba y a la derecha: arranca a la altura de la miga, no del pie del
   buscador, y se apoya en el borde derecho de la retícula. Los PNG del
   catálogo traen aire transparente alrededor del equipo, por eso la imagen se
   dibuja un 12 % más grande que su caja y corrida a la derecha: lo que asoma
   es aire, no equipo, y la caja sigue dentro de la retícula. */
body.sol-tienda-hero.woocommerce .sol-hero-shot {
	grid-column: 2;
	grid-row: 1 / 3;
	align-self: start;
	justify-self: end;
	position: relative;
	display: block;
	width: 100%;
	max-width: 560px;
	aspect-ratio: 1;
	margin-top: -24px;
	text-decoration: none !important;
}
body.sol-tienda-hero.woocommerce .sol-hero-shot img {
	position: absolute;
	right: -6%;
	top: 0;
	width: 112%;
	max-width: none;
	height: auto;
	filter: drop-shadow(0 24px 28px rgba(22, 48, 94, .22));
	transition: transform .5s ease;
}
@media (hover: hover) {
	body.sol-tienda-hero.woocommerce .sol-hero-shot:hover img { transform: translateY(-6px); }
}
/* Las etiquetas: bloque blanco, borde navy y la sombra dura gris. Cuelgan a
   la izquierda y a la derecha del equipo. */
body.sol-tienda-hero.woocommerce .sol-hero-tag {
	position: absolute;
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding: 9px 14px;
	background: #fff;
	color: var(--sol-navy);
	border: 1px solid var(--sol-navy);
	box-shadow: 5px 5px 0 var(--sol-gray-2);
	white-space: nowrap;
}
body.sol-tienda-hero.woocommerce .sol-hero-tag small {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--tx-3);
}
body.sol-tienda-hero.woocommerce .sol-hero-tag b {
	font-family: var(--font-mono);
	font-size: 18px;
	font-weight: 500;
}
body.sol-tienda-hero.woocommerce .sol-hero-tag--1 { left: 0; top: 40%; }
body.sol-tienda-hero.woocommerce .sol-hero-tag--2 { right: 0; bottom: 14%; }

/* ── La cinta de categorías ───────────────────────────────────────────── */
body.sol-tienda-hero.woocommerce .sol-hero-ticker {
	position: relative;
	z-index: 1;
	border-top: 1px solid var(--sol-line);
	border-bottom: 1px solid var(--sol-line);
	overflow: hidden;
	white-space: nowrap;
}
body.sol-tienda-hero.woocommerce .sol-hero-ticker__track {
	display: inline-flex;
	padding: 15px 0;
	animation: sol-hero-tick 60s linear infinite;
}
body.sol-tienda-hero.woocommerce .sol-hero-ticker:hover .sol-hero-ticker__track { animation-play-state: paused; }
body.sol-tienda-hero.woocommerce .sol-hero-ticker__item {
	display: inline-flex;
	align-items: center;
	gap: 22px;
	margin-right: 22px;
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--tx-3);
	text-decoration: none !important;
	transition: color .18s ease;
}
body.sol-tienda-hero.woocommerce .sol-hero-ticker__item::after {
	content: '';
	width: 5px;
	height: 5px;
	background: var(--sol-gray-2);
	flex: none;
}
body.sol-tienda-hero.woocommerce a.sol-hero-ticker__item:hover { color: var(--sol-navy); }
@keyframes sol-hero-tick {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* ── Teléfono y tablet ────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	body.sol-tienda-hero.woocommerce .sol-header-inner {
		grid-template-columns: minmax(0, 1fr);
		padding: 22px 18px 0 !important;
	}
	body.sol-tienda-hero.woocommerce .sol-header-row { grid-row: 2; padding-bottom: 0; }
	body.sol-tienda-hero.woocommerce .sol-header-text h1 { white-space: normal; }
	body.sol-tienda-hero.woocommerce .sol-search { margin-top: 44px !important; }
	body.sol-tienda-hero.woocommerce .sol-hero-shot {
		grid-column: 1;
		grid-row: 3;
		justify-self: stretch;
		max-width: none;
		aspect-ratio: auto;
		height: 320px;
		margin-top: 28px;
	}
	body.sol-tienda-hero.woocommerce .sol-hero-shot img {
		right: auto;
		left: 50%;
		top: auto;
		bottom: 0;
		width: 320px;
		transform: translateX(-50%);
	}
	body.sol-tienda-hero.woocommerce .sol-hero-shot:hover img { transform: translateX(-50%); }
	body.sol-tienda-hero.woocommerce .sol-hero-tag--1 { top: 18%; }
	body.sol-tienda-hero.woocommerce .sol-hero-tag--2 { bottom: 14%; }
	body.sol-tienda-hero.woocommerce .sol-header::before { width: 100%; -webkit-mask-position: 40px -260px; mask-position: 40px -260px; }
}
@media (max-width: 768px) {
	body.sol-tienda-hero.woocommerce .sol-search button span { display: inline !important; }
	body.sol-tienda-hero.woocommerce .sol-hero-tag b { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
	body.sol-tienda-hero.woocommerce .sol-hero-ticker__track { animation: none; }
	body.sol-tienda-hero.woocommerce .sol-hero-shot img { transition: none; }
}
