/**
 * AZRAHEL "Mi aula" — brand styling for the primary course card, the preventa countdown, and the
 * content-drip friendly-lock card. Mobile-first (390px base, per brief); Cormorant Garamond and
 * Mulish are already loaded site-wide (confirmed 2026-09-19 with a read-only GET to
 * azraheldelmayor.com/formacion/: the response links
 * fonts.googleapis.com/css?family=Cormorant+Garamond:... and family=Mulish:...), so only the
 * family names are referenced here -- no Google Fonts request is added by this file.
 *
 * Colors: crema #faf8f4, dorado rgb(232,174,0), marrón rgb(26,21,18) — as given by the brief.
 */

.azr-student-dashboard-card {
	--azr-cream: #faf8f4;
	--azr-gold: rgb(232, 174, 0);
	--azr-brown: rgb(26, 21, 18);

	background: var(--azr-cream);
	border: 1px solid rgba(26, 21, 18, 0.12);
	border-radius: 12px;
	padding: 20px;
	margin: 0 0 24px;
	color: var(--azr-brown);
	font-family: 'Mulish', sans-serif;
}

/* AULA-LIMPIA (4-oct): el aula va siempre en tema claro (azr-ui.php v1.8.0 fija el tema de Tutor en
   «light»), así que esta tarjeta ya no tiene variante oscura: crema y marrón en todos los casos. */

.azr-student-dashboard-card__eyebrow {
	margin: 0 0 4px;
	font-family: 'Mulish', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	/* FIX-2 / A1 (3-oct): el dorado de marca (rgb(232, 174, 0)) sobre la crema #faf8f4 da ~2:1 y el
	   rótulo "Continuar donde lo dejaste" no se leía. #8a6300 sobre #faf8f4 da 5,12:1 (AA). */
	color: #8a6300;
}

.azr-student-dashboard-card__title {
	margin: 0 0 16px;
	font-family: 'Cormorant Garamond', serif;
	font-size: 26px;
	line-height: 1.25;
	color: var(--azr-brown);
}

.azr-student-dashboard-progress {
	background: rgba(26, 21, 18, 0.1);
	border-radius: 999px;
	height: 8px;
	overflow: hidden;
	margin-bottom: 6px;
}

.azr-student-dashboard-progress__bar {
	background: var(--azr-gold);
	height: 100%;
	border-radius: 999px;
}

.azr-student-dashboard-progress__label {
	margin: 0 0 16px;
	font-size: 13px;
	color: rgba(26, 21, 18, 0.75);
}

.azr-student-dashboard-card__countdown {
	margin: 0 0 16px;
	font-family: 'Cormorant Garamond', serif;
	font-size: 20px;
	color: var(--azr-brown);
}

.azr-student-dashboard-card__cta,
a.azr-student-dashboard-back-to-course {
	display: inline-block;
	background: var(--azr-brown);
	color: var(--azr-cream) !important;
	border: none;
	border-radius: 8px;
	padding: 12px 20px;
	font-family: 'Mulish', sans-serif;
	font-weight: 700;
	text-decoration: none;
	text-align: center;
	width: 100%;
}

.azr-student-dashboard-week-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(26, 21, 18, 0.12);
}

.azr-student-dashboard-week-list li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid rgba(26, 21, 18, 0.12);
	font-size: 14px;
}

.azr-student-dashboard-week-list__title {
	font-weight: 700;
}

.azr-student-dashboard-week-list__date {
	color: rgba(26, 21, 18, 0.7);
	text-align: right;
}

.azr-student-dashboard-notice {
	border-radius: 8px;
	padding: 10px 14px;
	margin-bottom: 16px;
	font-size: 14px;
}

.azr-student-dashboard-notice--payment-due {
	background: rgba(232, 174, 0, 0.16);
	border: 1px solid var(--azr-gold);
	color: var(--azr-brown);
}

.azr-student-dashboard-notice--payment-due a {
	color: var(--azr-brown);
	font-weight: 700;
	text-decoration: underline;
}

/* One call to action on a locked-content-drip card: Tutor Pro's own "Go To Next" button (it points
   at whichever item comes after the still-locked one, which is not what VISION-PRODUCTO asks for --
   "botón para volver al curso") is hidden in favour of the "Volver al curso" link that
   azr_student_dashboard_filter_content_drip_message() already renders inside the card body. Scoped to
   the drip card's own footer so no other Tutor button anywhere else on the site is affected. */
.tutor-content-drip-card-footer > a.tutor-btn {
	display: none;
}

@media (min-width: 600px) {
	.azr-student-dashboard-card {
		padding: 28px 32px;
	}

	.azr-student-dashboard-card__title {
		font-size: 32px;
	}

	.azr-student-dashboard-card__cta {
		width: auto;
	}
}

/* "Mis pagos" standalone page (azr_student_dashboard_handle_pagos_request()) renders outside Tutor's
   own dashboard wrapper, so it gets a simple max-width container of its own instead of relying on
   ".tutor-dashboard-body". */
.azr-student-dashboard-standalone-page {
	max-width: 640px;
	margin: 40px auto;
	padding: 0 16px;
}

.azr-student-dashboard-pagos-plan {
	padding: 16px 0;
	border-top: 1px solid rgba(26, 21, 18, 0.12);
}

.azr-student-dashboard-pagos-plan:first-of-type {
	border-top: none;
	padding-top: 0;
}

/* "Próximamente" box on a hidden course's own ficha with no buyable product yet
   (azr_student_dashboard_hidden_course_upcoming_box(), 2026-09-23) -- replaces the retired
   ".azr-student-dashboard-reserved-notice" ("Esta formación se reserva desde su página"). Renders
   INSIDE Tutor's own ".tutor-sidebar-card .tutor-card-body" wrapper (course-entry-box.php), so it
   only needs its own eyebrow/spacing, not a card shell -- Tutor already draws the card. */
.azr-student-dashboard-upcoming-notice__eyebrow {
	margin: 0 0 16px;
	font-family: 'Cormorant Garamond', serif;
	font-size: 22px;
	font-weight: 600;
	color: var(--azr-brown, rgb(26, 21, 18));
}

/* ================================================================================================
 * Ficha de curso (single course, Tutor nativo) a todo el ancho, como Gen de Origen — BRIEF_FORGE
 * arreglo 2/3, FORGE-VICTOR 2026-09-23. Scoped to `body.single-courses` (WordPress's own body class
 * for a singular request of Tutor's `courses` CPT — confirmed via tutor()->course_post_type in
 * azr-course-visibility.php) so nothing outside a course's own ficha is touched.
 *
 * ORIGEN DE LA MEDIDA: leyendo tutor/assets/css/tutor.min.css, ".tutor-container" (el contenedor que
 * envuelve single-course.php:45 ".tutor-course-details-page.tutor-container") ya usa breakpoints tipo
 * Bootstrap -- max-width:960px (>=992px), 1140px (>=1200px), 1320px (>=1400px) -- que POR SÍ SOLOS ya
 * rondan el ancho pedido por el cliente (1320-1400px). No se encontró en el CSS de Tutor ninguna
 * regla que lo estreche más allá de eso, y el tema activo es "hello-elementor" (mínimo por diseño, sin
 * plantilla propia para single de CPT ajenos a Elementor) -- así que el "prensado en los lados" que
 * describe la transcripción (23-sep, min 00:02:58) no tiene, en el código leído, una única regla
 * culpable identificable sin abrir el DOM real (imposible desde este entorno: producción está fuera
 * de alcance, IP en reto anti-bot -- ver azr-overflow-guard.css para el mismo precedente y la misma
 * decisión). Por eso esta regla, como esa, es una COTA DECLARADA con "!important": fuerza el ancho
 * pedido pase lo que pase con cualquier estrechamiento que un plugin/tema añada por encima de Tutor,
 * en vez de apostar por una especificidad concreta sin poder verificarla en vivo. CENTINEL: si al
 * abrir el DOM real aparece una regla concreta más estrecha, sustituir este "!important" por un
 * override quirúrgico de esa regla y dejar constancia aquí de cuál era.
 * ================================================================================================ */
body.single-courses .tutor-course-details-page.tutor-container {
	/* box-sizing declarado explícito: tutor.min.css SOLO pone "box-sizing:border-box" en los HIJOS
	   directos de ".tutor-row" (".tutor-row>*", que cubre ".tutor-col-xl-4/8" -- por eso su ancho de
	   360px medido en el repro ya salía exacto sin tocar box-sizing), NO en ".tutor-container" mismo.
	   Repro local (qa/f1-fixes/victor/run-repro.mjs) midió, sin esta línea, 1408px de ancho real
	   (1360 + 24 + 24 de padding) en vez de los 1360px pedidos, porque ese contenedor heredaba
	   "box-sizing: content-box" (el valor inicial de CSS) al no traer ningún reset propio de Tutor y
	   al no poder confirmarse desde este entorno si el tema/Elementor del sitio pone uno global. Con
	   "border-box" explícito el ancho renderizado es 1360px exactos SIEMPRE, sin depender de esa
	   incógnita. */
	box-sizing: border-box !important;
	/* CENTINEL 2026-09-23: medido por el ORACLE a 1920 px, 1360 px dejaba ~300 px de margen por lado; Gen de
	   Origen va de borde a borde (x≈13→1890). Sin tope: todo el ancho con un respiro lateral. */
	max-width: none !important;
	width: 100% !important;
	padding-left: 24px !important;
	padding-right: 24px !important;
}

/* CENTINEL 2026-09-23: columnas fijas de 360 px retiradas; se usa la proporción nativa de Tutor (col-xl-8 / col-xl-4, ~2/3 y ~1/3), la misma que Gen de Origen. */

/* ================================================================================================
 * "Scroll dentro del scroll" en la columna lateral (precio/materiales incluidos) — BRIEF_FORGE
 * arreglo 3, FORGE-VICTOR 2026-09-23. Síntoma descrito por el cliente (transcripción 23-sep,
 * min 00:03:32): al hacer scroll dentro de la caja de precio, esta abre SU PROPIO scroll interno en
 * vez de dejar fluir el scroll de la página.
 *
 * ORIGEN LEÍDO EN EL CÓDIGO (parcial, no confirmado en DOM real -- misma limitación que arriba):
 * tutor-front.min.css trae la regla
 *   ".tutor-single-course-sidebar.tutor-sidebar-sticky{position:sticky;top:50px}"
 * pero la clase "tutor-sidebar-sticky" que la activa NO aparece en ningún .js de este Tutor
 * (tutor-front.js revisado entero por "sidebar-sticky": cero coincidencias) -- así que, o la añade
 * tutor-pro en un bundle no auditado en esta ronda, o la añade el tema/Elementor por su cuenta con
 * otro nombre de clase que no se pudo identificar sin abrir el DOM real. `position: sticky` por sí
 * solo NO crea un scroll interno; lo hace cuando se combina con una altura acotada
 * (`max-height`/`height`) + `overflow-y: auto|scroll` en el mismo elemento o en un antecesor directo
 * -- combinación que sí es un patrón conocido de "sticky sidebar" en temas/page builders. Como en la
 * sección de arriba, se neutraliza por COTA DECLARADA con "!important" sobre los contenedores propios
 * de Tutor de esta columna (confirmados leyendo single-course.php:88-106), en vez de perseguir un
 * selector de tercero sin poder verificarlo: cualquier "position:sticky"+"max-height"+"overflow" que
 * un CSS ajeno le imponga a estos 5 selectores queda anulado aquí. CENTINEL: si el DOM real revela la
 * regla exacta (tema/Elementor), sustituir esto por su override quirúrgico y anotar cuál era.
 * ================================================================================================ */
body.single-courses .tutor-single-course-sidebar,
body.single-courses .tutor-single-course-sidebar.tutor-sidebar-sticky,
body.single-courses .tutor-single-course-sidebar .tutor-sidebar-card,
body.single-courses .tutor-single-course-sidebar .tutor-card-body,
body.single-courses .tutor-single-course-sidebar-more {
	position: static !important;
	top: auto !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
}

/* ================================================================================================
 * FIX-2 / A4 (3-oct) -- "Mi curso" sin "Lista de deseos" ni "Intentos del cuestionario" para el
 * alumno LMS. Un curso comprado una sola vez no tiene lista de deseos, y los intentos de cuestionario
 * ya se ven al hacerlos.
 *
 * Tutor 4.0.8 arma esas pestañas en `Student::get_courses_tab()` (tutor/classes/Student.php:361-407)
 * con un array fijo -- el filtro `tutor_enrolled_courses_page_tabs` de templates/dashboard/courses.php
 * NO llega a ese menú -- y las pinta el componente `Nav` (tutor/components/Nav.php:306-334,
 * `render_link_item()`) como `<a href="<url>" class="tutor-nav-item">`, dentro de
 * `.tutor-dashboard-courses-tab` (courses.php, "Courses nav"). No hay punto de enganche en PHP entre
 * un sitio y otro, así que se oculta por CSS, con la clase `azr-lms-learner` que
 * azr_student_dashboard_body_class() pone en `<body>` solo para un alumno LMS: administradores,
 * instructores y clientes antiguos de la tienda siguen viendo el menú completo.
 *
 * El selector busca el trozo de ruta de la URL (`courses/wishlist`, `courses/my-quiz-attempts`), que
 * es lo que construye `tutor_dashboard_url()`; no depende del texto del enlace ni de su traducción.
 * Quitar el enlace no quita la ruta: una visita directa a esas URLs ya la devuelve a "Inicio"
 * azr_student_dashboard_redirect_removed_dashboard_routes().
 * ================================================================================================ */
body.azr-lms-learner .tutor-dashboard-courses-tab a.tutor-nav-item[href*="courses/wishlist"],
body.azr-lms-learner .tutor-dashboard-courses-tab a.tutor-nav-item[href*="courses/my-quiz-attempts"] {
	display: none;
}

/* FIX-2 / C4 (3-oct) -- el botón "Take Note" de Tutor Pro (LessonNotes.php:244-266, id fijo) se oculta
   solo mientras la pestaña "Notes" también está oculta (azr_student_dashboard_filter_lesson_nav_items()):
   la clase `azr-hide-lesson-notes-button` solo existe con el interruptor de emergencia sin activar. */
body.azr-hide-lesson-notes-button #tutor-lesson-nav-take-note-btn {
	display: none;
}
