/**
 * Base: reset moderno + tipografía + primitivas de accesibilidad.
 * Mobile-first. Depende de tokens.css.
 */

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

html { overflow-x: hidden; }
body {
	margin: 0;
	background: var(--fitec-color-fondo);
	color: var(--fitec-color-texto);
	font-family: var(--fitec-fuente-texto);
	font-size: var(--fitec-fs-300);
	line-height: var(--fitec-lh-texto);
	font-weight: var(--fitec-peso-normal);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
	overflow-wrap: break-word;
}

h1, h2, h3, h4, h5 {
	font-family: var(--fitec-fuente-titulo);
	font-weight: var(--fitec-peso-normal);
	line-height: var(--fitec-lh-titulo);
	letter-spacing: var(--fitec-ls-titulo);
	text-transform: uppercase;
	margin: 0 0 var(--fitec-space-4);
	text-wrap: balance;
}
/* Jerarquía unificada: el título de página (grande) y el resto de títulos y
   subtítulos todos al mismo tamaño (h2 = h3). */
h1 { font-size: clamp(2rem, 1rem + 4vw, 3.4rem); }
h2, h3 { font-size: clamp(1.5rem, 1rem + 1.6vw, 2rem); }
h4 { font-size: var(--fitec-fs-300); }

p, ul, ol { margin: 0 0 var(--fitec-space-4); }

a { color: var(--fitec-color-primario); text-decoration: underline; text-underline-offset: 2px; transition: color var(--fitec-trans); }
a:hover { color: var(--fitec-morado-oscuro); }

img, picture, svg, video { max-width: 100%; height: auto; display: block; }

strong, b { font-weight: var(--fitec-peso-bold); }

/* Foco visible para accesibilidad (teclado) */
:focus-visible {
	outline: 3px solid var(--fitec-color-foco);
	outline-offset: 2px;
	border-radius: var(--fitec-radio-1);
}

/* Utilidad: solo para lectores de pantalla */
.sr-only {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Enlace de salto al contenido */
.fitec-skip-link {
	position: absolute;
	left: var(--fitec-space-2);
	top: -100%;
	z-index: var(--fitec-z-modal);
	background: var(--fitec-tinta);
	color: var(--fitec-blanco);
	padding: var(--fitec-space-2) var(--fitec-space-4);
	border-radius: var(--fitec-radio-1);
	text-decoration: none;
}
.fitec-skip-link:focus { top: var(--fitec-space-2); color: var(--fitec-blanco); }

/* Contenedor centrado */
.fitec-container {
	width: 100%;
	max-width: var(--fitec-ancho-ancho);
	margin-inline: auto;
	padding-inline: var(--fitec-gutter);
}
.fitec-container--narrow { max-width: var(--fitec-ancho-contenido); }
