/* ═══════════════════════════════════════════════════════════════
   TAEC · base.css · Reset, design tokens, tipografía global
   Extraído de los HTML en Fase 1 (refactor/fase1-css-js-global)
   Fuente canónica: v2.5 · 18 mar 2026
   ═══════════════════════════════════════════════════════════════ */

/* ── RESET ── */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
html {
	scroll-behavior: smooth;
}

/* ── DESIGN TOKENS ── */
:root {
	--navy: #004775;
	--blue: #3179c2;
	--teal: #a8dbd9;
	--orange: #c2410c;
	--coral: #d35652;
	--muted: #475569;
	--dark: #4d4d4e;
	--light: #f4f7fb;
	--border: #e2e8f0;
	--white: #ffffff;
	--text: #111827;
	--art: #16a34a;
	/* Extended Brand Tokens */
	--articulate-blue: #0284c7;
	--check-green: #10b981;
	--navy-slate: #0f172a;
	--navy-darker: #050e14;
	/* Logo Brand Colors */
	--logo-articulate: #e8561e;
	--logo-vyond: #00a4e0;
	--logo-totara: #6a2c8e;
	--logo-moodle: #f98012;
	--font-display: "DM Serif Display", Georgia, serif;
	--font-body: "Inter", sans-serif;
	--shield-card-desk: 250px;
	--shield-card-mob: auto;
}

/* ── TIPOGRAFÍA Y ELEMENTOS BASE ── */
body {
	font-family: var(--font-body);
	color: var(--text);
	background: var(--white);
	font-size: 15px;
	line-height: 1.6;
	overflow-x: hidden;
}
a {
	text-decoration: none;
	color: inherit;
}
img {
	display: block;
	max-width: 100%;
}

/* ── ACCESIBILIDAD ── */
.skip-link {
	position: absolute;
	top: -60px;
	left: 16px;
	background: var(--navy);
	color: var(--white);
	padding: 8px 16px;
	border-radius: 0 0 8px 8px;
	font-size: 14px;
	font-weight: 600;
	z-index: 9999;
	text-decoration: none;
	transition: top 0.2s;
}
.skip-link:focus {
	top: 0;
}
*:focus-visible {
	outline: 3px solid var(--blue);
	outline-offset: 2px;
	border-radius: 4px;
}
button:focus-visible,
a:focus-visible {
	outline: 3px solid var(--blue);
	outline-offset: 2px;
	border-radius: 4px;
}

/* ── GLOBAL SCROLL REVEAL ── */
.reveal-up {
	opacity: 0;
	transform: translateY(30px);
	transition:
		opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
		transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}
.reveal-up.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* ── FOOTER DOCK GLOBAL LAYOUT ADJUSTMENTS (Issue #390) ── */
.has-footer-dock main {
	padding-bottom: 40px;
}
.has-footer-dock .wa-float {
	bottom: 64px !important;
}
