/**
 * Accesibilidad del campus.
 *
 * ---------------------------------------------------------------------------
 * POR QUÉ HAY QUE SOBREESCRIBIR A TUTOR
 * ---------------------------------------------------------------------------
 * Buena parte de lo que no cumplía no es del tema: viene de la paleta por
 * defecto de Tutor LMS. Su verde `#26A269` sobre blanco da **3,25:1** y lo lleva
 * el botón «Comprar ahora», que es el control más importante del campus. Su gris
 * `#757C8E` da 3,7–4,2:1 y lo llevan «Lista de deseos», «Compartir» y la línea
 * de autoría.
 *
 * No se tocan archivos del plugin: se sobreescribe desde aquí con sus propias
 * variables CSS cuando las hay, para que Tutor pueda seguir actualizándose.
 *
 * ---------------------------------------------------------------------------
 * QUIÉN LEE ESTO
 * ---------------------------------------------------------------------------
 * El público del campus es gente con cansancio crónico y niebla mental. Un texto
 * pequeño y flojo no es aquí un incumplimiento formal: es texto que no existe.
 * Ver [[accesibilidad-angelesmolinamentor]], donde se hizo lo mismo en la app.
 */

/* ---------------------------------------------------------------------------
   1. COLOR
   ---------------------------------------------------------------------------
   Verde: #26A269 (3,25:1) → #186B45 (6,51:1). Mismo tono, legible.
   Gris:  #757C8E (4,17:1) → #575D6B (6,60:1).
--------------------------------------------------------------------------- */
:root {
	--tutor-color-primary: #186b45;
	--tutor-color-primary-rgb: 24, 107, 69;
	--tutor-color-primary-hover: #125336;
	--tutor-color-muted: #575d6b;
	--tutor-color-secondary: #575d6b;
	--tutor-body-color: #1f2937;
}

/* Tutor escribe el gris a mano en `tutor.min.css` y `tutor-front.min.css`, sin
   pasar por su variable. Estos son los selectores exactos que lo hacen, sacados
   de sus propias hojas y no de memoria. */
.tutor-color-muted,
.tutor-btn-ghost,
.tutor-iconic-btn,
.tutor-course-author span,
.tutor-course-details-top,
.tutor-course-details-top a,
.tutor-meta,
.tutor-meta *,
.list-item-price del,
.tutor-plain-code .tutor-color-muted {
	color: #575d6b !important;
}

/* El verde, allí donde tampoco usa la variable. */
.tutor-color-primary {
	color: #186b45 !important;
}

.tutor-btn-primary,
a.tutor-btn-primary {
	background-color: #186b45 !important;
	border-color: #186b45 !important;
	color: #ffffff !important;
}

.tutor-btn-primary:hover,
a.tutor-btn-primary:hover {
	background-color: #125336 !important;
	border-color: #125336 !important;
	color: #ffffff !important;
}

/* OJO: aquí NO se toca el color del texto de `.tutor-btn-outline-primary`.
   El primer intento le puso `color: #186b45 !important` y dejó el botón
   «Comprar ahora» INVISIBLE: texto verde sobre fondo verde, 1,00:1.

   La razón es que `course-single.css` ya pinta ese botón sólido —en este sitio
   dice lo mismo que el de compra, así que tiene que verse igual— con el fondo
   en `var(--tutor-color-primary)` y el texto en blanco. Al cambiar la variable
   arriba, ese botón ya quedó corregido solo: blanco sobre #186B45 son 6,51:1.
   Lo único que hacía falta era no estorbar. */

/* ---------------------------------------------------------------------------
   2. ANILLO DE FOCO
   ---------------------------------------------------------------------------
   Había 12 reglas en el CSS del campus haciendo `outline: none`. Hoy el anillo
   del navegador aún sobrevive por casualidad, pero es un campo de minas: un
   cambio de plantilla puede dejar a alguien navegando a ciegas.

   Este es propio y funciona sobre los dos fondos: trazo verde con halo claro,
   así siempre hay un borde claro contra fondo oscuro y uno oscuro contra fondo
   claro. Con `:focus-visible`, así que sólo aparece con el teclado.
--------------------------------------------------------------------------- */
:focus-visible {
	outline: 2px solid #186b45 !important;
	outline-offset: 2px !important;
	border-radius: 3px;
	box-shadow: 0 0 0 4px rgba(254, 252, 247, 0.95) !important;
}

/* ---------------------------------------------------------------------------
   3. ÁREAS TÁCTILES
   ---------------------------------------------------------------------------
   Los enlaces del menú medían 19–21 px de alto y los botones de las tarjetas
   38 px. Se usa `min-height` y no más relleno: el área que responde al dedo
   crece sin mover el texto ni recolocar nada.

   TODAS LAS REGLAS SON ADITIVAS, A PROPÓSITO.

   El primer intento traía una excepción del tipo «los enlaces dentro de una
   lista no cuentan, porque un enlace en mitad de una frase está exento». Pero
   los elementos del menú TAMBIÉN son `<li>`, así que esa excepción anulaba el
   arreglo justo donde más falta hacía. Se detectó midiendo en producción: la
   hoja cargaba, y las áreas seguían en 20.

   La lección: aquí no se escriben exenciones. Se nombra lo que hay que agrandar
   y nada más. Un enlace dentro de un párrafo se queda como está sin necesidad
   de decirlo, porque ninguna regla lo toca.
--------------------------------------------------------------------------- */

/* Navegación principal y de cuenta.
   `.site-branding` y `header .ml-auto` no existen en este tema —se escribieron
   de memoria y no acertaron—; los que valen son los de abajo, sacados del HTML
   que sirve el sitio. */
header nav a,
.menu-item > a,
.ssn-account-login,
header a.text-xl,
/* «Acceso alumnos» es un <button>, no un enlace: con `a.ml-auto` no entraba. */
.ml-auto {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* Botones de las tarjetas de curso y los de Tutor */
.ssn-course-actions > a,
.ssn-btn-outline,
.tutor-btn,
a.tutor-btn,
.tutor-nav-link {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Título de la tarjeta: es el enlace grande de cada curso y medía 25 px */
.ssn-course-card h3 a,
article h3 a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* Enlaces sueltos de las páginas de Tutor: categoría, autoría, avatares y el
   enlace al pago fraccionado. Medían entre 19 y 22 px. */
.tutor-course-details-top a,
.tutor-meta a,
.tutor-course-author a,
.tutor-avatar,
a.tutor-avatar,
.ssn-cuotas a,
.tutor-card a[href*="/cursos/"] {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* Los avatares y los iconos sueltos son cuadrados: crecen los dos lados */
.tutor-avatar,
a.tutor-avatar,
.tutor-iconic-btn,
a.tutor-iconic-btn,
.save-bookmark-btn {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Enlaces sueltos dentro de las tarjetas del listado —autoría y categoría— que
   Tutor pinta sin ninguna clase, así que sólo se alcanzan por el contenedor. */
.tutor-course-listing-item a,
.tutor-card a,
.tutor-course-details-header a,
.tutor-course-details-header .tutor-fw-bold,
a.tutor-fs-6.tutor-fw-bold {
	min-height: 44px;
	min-width: 44px;
	display: inline-flex;
	align-items: center;
}

/* La imagen de portada de cada tarjeta es un enlace de bloque: no debe
   convertirse en inline-flex ni encogerse. */
.tutor-course-listing-item a.tutor-course-thumbnail,
.tutor-card a:has(> img),
.tutor-card a.tutor-d-block {
	display: block;
	min-width: 0;
}

/* Enlaces legales y de redes del pie */
.site-footer a,
footer a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* Los iconos redondos de redes miden 40×40 y son cuadrados: crecen los dos lados */
footer a.rounded-full {
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
}

/* ---------------------------------------------------------------------------
   4. ENLACE PARA SALTAR AL CONTENIDO
   ---------------------------------------------------------------------------
   Invisible hasta que recibe el foco. Con teclado es el primer elemento de la
   página y evita atravesar la navegación entera en cada pantalla.
--------------------------------------------------------------------------- */
.salto-al-contenido {
	position: absolute;
	left: 1rem;
	top: -100px;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	border-radius: 0 0 0.5rem 0.5rem;
	background: #064e3b;
	color: #fefcf7;
	font-weight: 700;
	font-size: 0.875rem;
	text-decoration: none;
	transition: top 150ms ease-out;
}
.salto-al-contenido:focus {
	top: 0;
}

/* ---------------------------------------------------------------------------
   5. MOVIMIENTO REDUCIDO
   ---------------------------------------------------------------------------
   No había ni una regla en todo el CSS del campus. Quien pide en su sistema que
   no haya animaciones lo pide por mareo, migraña o trastorno vestibular — y aquí
   el público es precisamente gente con síntomas neurológicos.
--------------------------------------------------------------------------- */
@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;
		scroll-behavior: auto !important;
	}
}

/* ---------------------------------------------------------------------------
   6. SÓLO PARA LECTORES DE PANTALLA
--------------------------------------------------------------------------- */
.ssn-solo-lectores {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
