/* ================================================================
   Academia de Negocios · ADN UI 2026
   Capa visual global. Se carga al final para unificar todo el sitio.
   ================================================================ */

:root {
    --adn-azul: #05283a;
    --adn-azul-2: #0a3f4e;
    --adn-verde: #00e6ac;
    --adn-verde-oscuro: #008f7c;
    --adn-verde-suave: #dffbf3;
    --adn-blanco: #ffffff;
    --adn-fondo: #f8fafb;
    --adn-superficie: #ffffff;
    --adn-texto: #0b2a3b;
    --adn-suave: #5d7180;
    --adn-borde: #dce5e9;
    --adn-error: #b42318;
    --adn-aviso: #8a5a00;
    --adn-exito: #08765d;
    --adn-sombra-1: 0 8px 24px rgb(5 40 58 / 8%);
    --adn-sombra-2: 0 18px 48px rgb(5 40 58 / 13%);
    --adn-radio-sm: 10px;
    --adn-radio: 18px;
    --adn-radio-lg: 28px;
    --adn-transicion: 180ms ease;
    --fuente-principal: 'DM Sans', Arial, sans-serif;
    --fuente-titulo: 'Galano Grotesk', 'Montserrat', 'DM Sans', Arial, sans-serif;
    --fuente-tecnica: 'Galano Grotesk', 'Montserrat', 'DM Sans', Arial, sans-serif;
    --color-principal: var(--adn-azul);
    --color-secundario: var(--adn-verde-oscuro);
    --color-acento: var(--adn-verde);
    --color-fondo: var(--adn-fondo);
    --color-superficie: var(--adn-superficie);
    --color-texto: var(--adn-texto);
    --color-suave: var(--adn-suave);
    --color-borde: var(--adn-borde);
    --color-error: var(--adn-error);
    --radio-sm: var(--adn-radio-sm);
    --radio-md: var(--adn-radio);
    --radio-lg: var(--adn-radio-lg);
    --transicion: var(--adn-transicion);
    --admin-fondo: #f4f8f9;
    --admin-superficie: #fff;
    --admin-superficie-suave: #f7fafb;
    --admin-texto: var(--adn-texto);
    --admin-suave: var(--adn-suave);
    --admin-borde: var(--adn-borde);
    --admin-primario: var(--adn-azul);
    --admin-accion: #008f7c;
    --admin-peligro: var(--adn-error);
    --admin-exito: var(--adn-exito);
    --admin-radio: 16px;
    --admin-sombra: var(--adn-sombra-1);
    --aula-fondo: #f4f8f9;
    --aula-superficie: #fff;
    --aula-texto: var(--adn-texto);
    --aula-suave: var(--adn-suave);
    --aula-borde: var(--adn-borde);
    --aula-primario: var(--adn-azul);
    --aula-accion: #008f7c;
    --aula-sombra: var(--adn-sombra-1);
    --gestion-fondo: #f4f8f9;
    --gestion-superficie: #fff;
    --gestion-texto: var(--adn-texto);
    --gestion-suave: var(--adn-suave);
    --gestion-borde: var(--adn-borde);
    --gestion-primario: var(--adn-azul);
    --gestion-accion: #008f7c;
    --gestion-sombra: var(--adn-sombra-1);
    --eval-ink: var(--adn-texto);
    --eval-muted: var(--adn-suave);
    --eval-primary: #008f7c;
    --eval-primary-dark: var(--adn-azul);
    --eval-surface: #fff;
    --eval-bg: #f4f8f9;
    --eval-line: var(--adn-borde);
}

html { color-scheme: light; }
body {
    overflow-x: hidden;
    background: var(--adn-fondo);
    color: var(--adn-texto);
    font-family: var(--fuente-principal);
    line-height: 1.55;
    text-rendering: optimizeLegibility;
}
body, button, input, select, textarea { font-family: var(--fuente-principal); }
h1, h2, h3, h4, h5, h6 { color: var(--adn-azul); font-family: var(--fuente-titulo); letter-spacing: -.025em; }
button, a, summary, label[for] { touch-action: manipulation; }
.contenedor { width: min(100% - 40px, 1180px); }
.sobrelinea,
.etiqueta {
    color: var(--adn-verde-oscuro);
    font-family: var(--fuente-tecnica);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.etiqueta { padding: 7px 11px; background: var(--adn-verde-suave); border-color: #a7ead8; }
:focus-visible { outline: 3px solid var(--adn-verde); outline-offset: 3px; }
::selection { color: var(--adn-azul); background: #7ff5d8; }

/* Navegación y marca */
.cabecera {
    min-height: 82px;
    background: rgb(255 255 255 / 97%);
    border-bottom: 0;
    box-shadow: 0 10px 28px rgb(5 40 58 / 11%);
    backdrop-filter: blur(16px);
}
.barra { min-height: 82px; }
.marca { gap: 8px; color: var(--adn-azul); text-transform: none; }
.marca img { width: 35px; height: 35px; }
.marca span { display: grid; gap: 0; line-height: 1; }
.marca strong { font-family: var(--fuente-tecnica); font-size: 15px; font-weight: 700; letter-spacing: .01em; text-transform: uppercase; }
.marca small { margin-top: 2px; font-size: 8px; font-weight: 700; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.menu-escritorio { gap: clamp(18px, 2.6vw, 32px); }
.menu-enlace {
    position: relative;
    min-height: 44px;
    padding: 12px 0;
    color: #385464;
    border: 0;
    font-size: 15px;
    font-weight: 500;
}
.menu-enlace::after {
    position: absolute;
    right: 50%;
    bottom: 5px;
    left: 50%;
    height: 2px;
    content: '';
    background: var(--adn-verde);
    transition: right var(--adn-transicion), left var(--adn-transicion);
}
.menu-enlace:hover,
.menu-enlace.activo { color: var(--adn-azul); }
.menu-enlace:hover::after,
.menu-enlace.activo::after { right: 0; left: 0; }
.cuenta summary { color: var(--adn-azul); }
.cuenta-opciones { border-color: var(--adn-borde); border-radius: 14px; box-shadow: var(--adn-sombra-2); }
.cuenta-opciones a:hover { background: var(--adn-verde-suave); }
.acciones-menu .boton-principal { color: var(--adn-azul); background: var(--adn-verde); border-color: var(--adn-verde); }
.acciones-menu .boton-principal:hover { color: #fff; background: var(--adn-verde-oscuro); border-color: var(--adn-verde-oscuro); }
.boton-menu { border-color: var(--adn-borde); border-radius: 12px; }
.menu-movil { border-top: 1px solid var(--adn-borde); box-shadow: var(--adn-sombra-1); }
.menu-movil .contenedor { padding-block: 14px 24px; }
.menu-movil .menu-enlace { padding-inline: 12px; border-radius: 10px; }
.menu-movil .menu-enlace::after { display: none; }
.menu-movil .menu-enlace:hover,
.menu-movil .menu-enlace.activo { background: var(--adn-verde-suave); }

/* Componentes globales */
.boton {
    min-height: 46px;
    padding: 10px 18px;
    border-radius: 10px;
    font-weight: 700;
    box-shadow: none;
    transition: color var(--adn-transicion), background var(--adn-transicion), border-color var(--adn-transicion), box-shadow var(--adn-transicion), transform var(--adn-transicion);
}
.boton:hover { transform: translateY(-1px); }
.boton:active { transform: translateY(0); }
.boton svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.boton.boton-principal { color: var(--adn-verde); background: var(--adn-azul); border-color: var(--adn-azul); box-shadow: 0 8px 18px rgb(5 40 58 / 14%); }
.boton.boton-principal:hover { color: var(--adn-azul); background: var(--adn-verde); border-color: var(--adn-verde); box-shadow: 0 10px 22px rgb(0 230 172 / 20%); }
.boton.boton-secundario { color: var(--adn-azul); background: #fff; border-color: var(--adn-borde); box-shadow: 0 4px 10px rgb(5 40 58 / 10%); }
.boton.boton-secundario:hover { border-color: var(--adn-verde); background: var(--adn-verde-suave); }
.boton.boton-texto { color: #6a7b86; }
.boton.boton-texto:hover { color: var(--adn-azul); background: #f3f7f8; }
.mensaje { border-radius: 12px; }
.mensaje.aviso { color: #694700; background: #fff8e6; border-color: #edd28a; }
.mensaje.error { color: #8d241b; background: #fff1ef; border-color: #efbcb7; }
.mensaje.exito { color: #075e4a; background: #e7f9f3; border-color: #a8decf; }
.vacio,
.estado-vacio,
.estado-vacio-alumno,
.estado-vacio-soporte { background: #fff; border: 1px dashed #b9c8cf; border-radius: var(--adn-radio); box-shadow: none; }
.aviso-cookies { color: #fff; background: var(--adn-azul); border-color: rgb(255 255 255 / 12%); box-shadow: var(--adn-sombra-2); }
.aviso-cookies a { color: var(--adn-verde); }
.aviso-cookies button { color: var(--adn-azul); background: var(--adn-verde); border-radius: 9px; }

input:not([type='checkbox']):not([type='radio']):not([type='hidden']),
select,
textarea {
    color: var(--adn-texto);
    background: #fbfcfd;
    border-color: #cbd8de;
    border-radius: 10px;
}
input:not([type='checkbox']):not([type='radio']):not([type='hidden']):focus,
select:focus,
textarea:focus { background: #fff; border-color: var(--adn-verde-oscuro); box-shadow: 0 0 0 4px rgb(0 230 172 / 14%); }
input[type='checkbox'], input[type='radio'] { accent-color: var(--adn-verde-oscuro); }
input[type='file']::file-selector-button { color: var(--adn-azul); background: var(--adn-verde-suave); border-color: #9fdcca; }
.pie { color: #cfe0e6; background: var(--adn-azul); }
.pie a { color: #e8f5f7; }
.pie a:hover { color: var(--adn-verde); }

/* Portada principal */
.pagina-index { background: linear-gradient(180deg, #f4fffb 0, #fff 44%, #f7fafb 100%); }
.portada-inicio {
    min-height: auto;
    padding: clamp(54px, 7vw, 92px) 0 74px;
    background:
        radial-gradient(circle at 78% 8%, rgb(0 230 172 / 20%), transparent 29%),
        radial-gradient(circle at 5% 92%, rgb(5 40 58 / 7%), transparent 30%),
        linear-gradient(145deg, #fff 0%, #f1fcf8 52%, #edf8f7 100%);
    text-align: left;
}
.portada-rejilla { display: grid; grid-template-columns: minmax(0, .92fr) minmax(480px, 1.08fr); gap: clamp(36px, 6vw, 86px); align-items: center; }
.portada-inicio .portada-contenido { max-width: 540px; }
.portada-inicio .etiqueta { margin-bottom: 22px; }
.portada-inicio .titulo-portada {
    max-width: 600px;
    margin: 0;
    color: var(--adn-azul);
    font-family: var(--fuente-titulo);
    font-size: clamp(46px, 5.4vw, 76px);
    font-weight: 600;
    letter-spacing: -.055em;
    line-height: .98;
    text-transform: uppercase;
}
.portada-inicio .titulo-portada span {
    display: block;
    width: fit-content;
    margin: 8px 0;
    color: var(--adn-verde-oscuro);
    font-family: var(--fuente-tecnica);
    font-size: .7em;
    letter-spacing: -.01em;
}
.portada-inicio .titulo-portada::after { display: block; width: min(100%, 430px); height: 4px; margin-top: 14px; content: ''; background: var(--adn-verde); border-radius: 99px; }
.portada-inicio .texto-portada { max-width: 520px; margin: 26px 0 0; color: #365464; font-size: clamp(17px, 1.6vw, 21px); line-height: 1.5; }
.portada-inicio .texto-portada strong { color: var(--adn-azul); }
.portada-inicio .acciones-portada { justify-content: flex-start; margin-top: 30px; }
.portada-inicio .acciones-portada .boton { min-width: 0; }
.portada-visual { position: relative; min-height: 480px; overflow: visible; align-self: stretch; border-radius: 48px 0 24px 24px; isolation: isolate; }
.portada-fondo { position: absolute; inset: 82px -50vw 0 0; z-index: -2; overflow: hidden; background: linear-gradient(120deg, #00edb1 0%, #00b99e 28%, #117b74 57%, #123f55 100%); border-radius: 48px 0 0 24px; }
.portada-fondo::before { position: absolute; top: -45%; right: -14%; width: 430px; height: 430px; content: ''; background: radial-gradient(circle, rgb(255 255 255 / 26%), transparent 68%); border-radius: 50%; }
.portada-fondo::after { position: absolute; inset: 0; content: ''; opacity: .18; background-image: linear-gradient(90deg, transparent 49%, rgb(255 255 255 / 32%) 50%, transparent 51%); background-size: 82px 100%; }
.avatar-adn { position: absolute; z-index: 1; bottom: 0; left: 2%; width: auto; max-width: 62%; height: min(100%, 560px); object-fit: contain; object-position: left bottom; filter: drop-shadow(0 18px 22px rgb(0 24 32 / 23%)); }
.avatar-respaldo { position: absolute; bottom: 0; left: 3%; display: grid; width: min(55%, 370px); height: 82%; place-items: center; }
.avatar-respaldo img { width: 72%; opacity: .19; filter: saturate(.65) brightness(.55); }
.beneficios-portada { position: absolute; top: 145px; right: 0; z-index: 2; display: grid; width: min(47%, 260px); gap: 22px; margin: 0; padding: 0; list-style: none; }
.beneficios-portada li { position: relative; min-height: 48px; padding: 12px 14px; color: #fff; background: rgb(0 159 135 / 72%); border: 1px solid var(--adn-verde); border-radius: 9px; box-shadow: 0 8px 14px rgb(0 27 34 / 18%); font-size: 14px; text-align: center; backdrop-filter: blur(8px); }
.beneficios-portada svg { position: absolute; top: -15px; left: 50%; width: 25px; height: 25px; padding: 5px; fill: none; stroke: var(--adn-verde-oscuro); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.3; background: #fff; border-radius: 50%; transform: translateX(-50%); }

.inicio-cursos { padding: 76px 0 92px; background: #fff; }
.inicio-cursos .encabezado-seccion { margin-bottom: 52px; }
.inicio-cursos .encabezado-seccion h2 { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px; color: var(--adn-azul); font-size: clamp(34px, 4vw, 52px); font-weight: 400; text-transform: uppercase; }
.inicio-cursos .encabezado-seccion h2 strong { padding: 14px 20px; color: var(--adn-azul); background: var(--adn-verde); border-radius: 12px; font-family: var(--fuente-tecnica); font-size: .7em; letter-spacing: .04em; }
.inicio-cursos .encabezado-seccion p { margin-top: 24px; color: #345464; font-size: clamp(17px, 2vw, 22px); }
.inicio-cursos .encabezado-seccion p b { color: var(--adn-azul); }
.lista-cursos-destacados { display: grid; max-width: 980px; gap: 48px; margin: 0 auto; }
.inicio-cursos .tarjeta-curso { position: relative; display: grid; min-height: 210px; grid-template-columns: 230px minmax(0, 1fr); overflow: visible; margin-right: 10px; background: #fff; border: 1px solid #e0e5e8; border-radius: 14px; box-shadow: 0 8px 16px rgb(5 40 58 / 15%); }
.inicio-cursos .tarjeta-curso:hover { border-color: var(--adn-verde); box-shadow: var(--adn-sombra-2); transform: translateY(-2px); }
.inicio-cursos .curso-imagen { height: calc(100% + 48px); min-height: 250px; margin: -24px 0 -24px -1px; border-radius: 14px; box-shadow: 0 10px 18px rgb(5 40 58 / 18%); }
.inicio-cursos .tarjeta-curso:nth-child(even) { grid-template-columns: minmax(0, 1fr) 230px; margin-right: 0; margin-left: 10px; text-align: right; }
.inicio-cursos .tarjeta-curso:nth-child(even) .curso-imagen { grid-column: 2; grid-row: 1; margin-right: -1px; margin-left: 0; }
.inicio-cursos .tarjeta-curso:nth-child(even) .curso-cuerpo { grid-column: 1; grid-row: 1; }
.inicio-cursos .tarjeta-curso:nth-child(even) .curso-pie { flex-direction: row-reverse; }
.inicio-cursos .curso-cuerpo { justify-content: center; padding: 30px 36px; }
.inicio-cursos .curso-cuerpo h3 { padding-bottom: 8px; color: var(--adn-azul); border-bottom: 2px solid var(--adn-verde); font-size: clamp(22px, 2.4vw, 29px); text-transform: uppercase; }
.inicio-cursos .curso-cuerpo p { color: #3c5968; font-size: 16px; line-height: 1.5; -webkit-line-clamp: 3; }
.inicio-cursos .curso-pie { align-items: center; margin-top: 18px; padding-top: 0; border: 0; }
.inicio-cursos .curso-pie a { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; padding: 8px 15px; color: var(--adn-verde); background: var(--adn-azul); border-radius: 9px; font-weight: 700; }
.inicio-cursos .curso-pie a:hover { color: var(--adn-azul); background: var(--adn-verde); }
.inicio-cursos .curso-pie a span { font-size: 24px; line-height: .7; }
.enlace-catalogo { gap: 12px; margin-top: 64px; color: var(--adn-azul); font-family: var(--fuente-titulo); font-size: 21px; }
.enlace-catalogo span { color: var(--adn-verde-oscuro); font-size: 30px; }
.promesa-inicio { color: #fff; background: var(--adn-azul); }
.promesa-rejilla { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; align-items: center; }
.promesa-inicio .sobrelinea { color: var(--adn-verde); }
.promesa-inicio h2 { margin: 10px 0 0; color: #fff; font-size: clamp(29px, 4vw, 44px); line-height: 1.15; }
.promesa-datos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.promesa-datos article { display: grid; gap: 4px; padding: 20px; border: 1px solid rgb(255 255 255 / 15%); border-radius: 14px; }
.promesa-datos strong { color: var(--adn-verde); font-family: var(--fuente-titulo); font-size: 18px; }
.promesa-datos span { color: #cbdde3; font-size: 12px; }

/* HTML editables: landing y árbol de enlaces */
.pagina-estatica { min-height: 100dvh; background: #fff; }
.pagina-estatica .pie { margin-top: auto; }
.estatica-contenido { min-height: calc(100dvh - 160px); padding: 72px 0 90px; background: radial-gradient(circle at 90% 0, rgb(0 230 172 / 12%), transparent 34%), #f7fafb; }
.estatica-cabecera { max-width: 780px; text-align: center; }
.estatica-cabecera h1 { margin: 8px 0 16px; font-size: clamp(42px, 7vw, 72px); line-height: 1; }
.estatica-cabecera p { max-width: 620px; margin: 0 auto; color: var(--adn-suave); font-size: 18px; }
.arbol-enlaces { display: grid; max-width: 820px; gap: 12px; margin-top: 42px; }
.arbol-enlaces > a { display: grid; min-height: 92px; grid-template-columns: 48px minmax(0, 1fr) 40px; gap: 16px; align-items: center; padding: 18px 22px; background: #fff; border: 1px solid var(--adn-borde); border-radius: 15px; box-shadow: 0 6px 16px rgb(5 40 58 / 7%); transition: transform var(--adn-transicion), border-color var(--adn-transicion), box-shadow var(--adn-transicion); }
.arbol-enlaces > a:hover { border-color: var(--adn-verde); box-shadow: var(--adn-sombra-2); transform: translateY(-2px); }
.arbol-enlaces > a > span { display: grid; width: 42px; height: 42px; place-items: center; color: var(--adn-azul); background: var(--adn-verde); border-radius: 10px; font-family: var(--fuente-tecnica); font-size: 11px; }
.arbol-enlaces div { display: grid; gap: 3px; }
.arbol-enlaces strong { color: var(--adn-azul); font-family: var(--fuente-titulo); font-size: 18px; }
.arbol-enlaces small { color: var(--adn-suave); font-size: 13px; }
.arbol-enlaces b { color: var(--adn-verde-oscuro); font-size: 22px; }
.avatar-adn.avatar-marca { bottom: 12%; left: 12%; width: 42%; max-height: 330px; opacity: .28; }

/* Landing editorial y directorio de recursos */
.landing-editorial {
    padding: clamp(56px, 8vw, 104px) 0 86px;
    background:
        radial-gradient(circle at 84% 10%, rgb(0 230 172 / 25%), transparent 28%),
        radial-gradient(circle at 4% 92%, rgb(5 40 58 / 9%), transparent 34%),
        linear-gradient(145deg, #fff 0%, #eefbf7 58%, #eaf4f5 100%);
}
.landing-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); gap: clamp(42px, 7vw, 92px); align-items: center; }
.landing-mensaje h1 { max-width: 760px; margin: 14px 0 24px; font-size: clamp(48px, 6.5vw, 84px); line-height: .98; letter-spacing: -.06em; }
.landing-mensaje h1 em,
.recursos-portada h1 em { color: var(--adn-verde-oscuro); font-style: normal; }
.landing-mensaje > p { max-width: 640px; color: #3c5866; font-size: clamp(18px, 2vw, 22px); line-height: 1.55; }
.landing-acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.landing-panel-marca {
    position: relative;
    min-height: 480px;
    overflow: hidden;
    padding: 44px;
    color: #fff;
    background: linear-gradient(145deg, #00e6ac 0%, #00a78d 31%, #0b6870 62%, #05283a 100%);
    border-radius: 38px 8px 38px 8px;
    box-shadow: var(--adn-sombra-2);
    isolation: isolate;
}
.landing-panel-marca::before { position: absolute; top: -110px; right: -110px; z-index: -1; width: 330px; height: 330px; content: ''; border: 1px solid rgb(255 255 255 / 28%); border-radius: 50%; box-shadow: 0 0 0 55px rgb(255 255 255 / 5%), 0 0 0 110px rgb(255 255 255 / 4%); }
.landing-panel-marca::after { position: absolute; right: -10%; bottom: -30%; z-index: -1; width: 90%; aspect-ratio: 1; content: ''; background: radial-gradient(circle, rgb(0 230 172 / 45%), transparent 66%); }
.landing-sello { display: block; color: rgb(255 255 255 / 20%); font-family: var(--fuente-titulo); font-size: clamp(110px, 15vw, 190px); font-weight: 800; letter-spacing: -.1em; line-height: .85; }
.landing-panel-marca > p { max-width: 360px; margin: 50px 0 0; color: #fff; font-family: var(--fuente-titulo); font-size: 24px; font-weight: 600; line-height: 1.25; }
.landing-pilares { position: absolute; right: 30px; bottom: 30px; left: 30px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.landing-pilares span { padding: 11px 8px; color: #fff; background: rgb(5 40 58 / 34%); border: 1px solid rgb(255 255 255 / 25%); border-radius: 9px; font-size: 12px; font-weight: 700; text-align: center; backdrop-filter: blur(8px); }
.landing-beneficios { background: #fff; }
.landing-titulo { max-width: 820px; margin-bottom: 42px; }
.landing-titulo h2,
.landing-rutas h2,
.landing-cierre h2 { margin: 10px 0 0; font-size: clamp(34px, 5vw, 56px); line-height: 1.08; }
.landing-rejilla-beneficios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.landing-rejilla-beneficios article { min-height: 280px; padding: 30px; background: linear-gradient(155deg, #fff, #f1faf7); border: 1px solid var(--adn-borde); border-radius: 18px; }
.landing-rejilla-beneficios article > span { color: var(--adn-verde-oscuro); font-family: var(--fuente-titulo); font-size: 13px; font-weight: 800; }
.landing-rejilla-beneficios h3 { margin: 58px 0 12px; font-size: 24px; line-height: 1.15; }
.landing-rejilla-beneficios p { color: var(--adn-suave); }
.landing-rutas { background: linear-gradient(145deg, #edf9f6, #f8fbfc); }
.landing-rutas-rejilla { display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1.2fr); gap: clamp(40px, 7vw, 90px); align-items: start; }
.landing-rutas-rejilla > div:first-child > p { max-width: 520px; color: var(--adn-suave); }
.landing-enlaces { display: grid; gap: 10px; }
.landing-enlaces a { display: grid; min-height: 92px; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 18px; align-items: center; padding: 20px 22px; background: #fff; border: 1px solid var(--adn-borde); border-radius: 14px; box-shadow: var(--adn-sombra-1); }
.landing-enlaces a:hover { background: var(--adn-azul); border-color: var(--adn-azul); transform: translateX(4px); }
.landing-enlaces small { color: var(--adn-verde-oscuro); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.landing-enlaces strong { color: var(--adn-azul); font-family: var(--fuente-titulo); font-size: 19px; }
.landing-enlaces span { grid-column: 2; grid-row: 1 / span 2; color: var(--adn-verde-oscuro); font-size: 28px; }
.landing-enlaces a:hover strong { color: #fff; }
.landing-enlaces a:hover small,
.landing-enlaces a:hover span { color: var(--adn-verde); }
.landing-cierre { padding: 68px 0; color: #fff; background: linear-gradient(110deg, var(--adn-azul), #0b5361); }
.landing-cierre .contenedor { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.landing-cierre .sobrelinea { color: var(--adn-verde); }
.landing-cierre h2 { max-width: 760px; color: #fff; }
.landing-cierre .boton-principal { color: var(--adn-azul); background: var(--adn-verde); border-color: var(--adn-verde); }
.pie-landing { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px; padding: 28px max(20px, calc((100% - 1180px) / 2)); }
.pie-landing > div { display: grid; }
.pie-landing strong { color: #fff; font-family: var(--fuente-titulo); }
.pie-landing span,
.pie-landing small { color: #9fb6c0; }
.pie-landing nav { display: flex; flex-wrap: wrap; gap: 18px; }

.recursos-pagina { background: #f5f9fa; }
.recursos-portada {
    padding: clamp(66px, 9vw, 118px) 0 88px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 14%, rgb(0 230 172 / 28%), transparent 28%),
        linear-gradient(125deg, #05283a 0%, #075064 58%, #078775 100%);
}
.recursos-portada .contenedor { position: relative; }
.recursos-portada .sobrelinea { color: var(--adn-verde); }
.recursos-portada h1 { max-width: 870px; margin: 14px 0 22px; color: #fff; font-size: clamp(46px, 7vw, 82px); line-height: 1; letter-spacing: -.06em; }
.recursos-portada h1 em { color: var(--adn-verde); }
.recursos-portada p { max-width: 700px; color: #d4e4e9; font-size: clamp(17px, 2vw, 21px); }
.recursos-estado { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 32px; }
.recursos-estado span { padding: 9px 12px; color: #fff; background: rgb(255 255 255 / 9%); border: 1px solid rgb(255 255 255 / 18%); border-radius: 999px; font-size: 12px; font-weight: 700; }
.recursos-directorio { background: linear-gradient(180deg, #f5f9fa, #fff); }
.recursos-cabecera { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 38px; }
.recursos-cabecera h2,
.recursos-legal h2 { margin: 7px 0 0; font-size: clamp(34px, 4vw, 50px); }
.recursos-cabecera > p { color: var(--adn-suave); }
.directorio-enlaces { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.directorio-enlaces > a { display: grid; min-height: 190px; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 18px; align-items: start; padding: 26px; color: var(--adn-texto); background: #fff; border: 1px solid var(--adn-borde); border-radius: 17px; box-shadow: var(--adn-sombra-1); }
.directorio-enlaces > a:hover { border-color: var(--adn-verde); box-shadow: var(--adn-sombra-2); transform: translateY(-3px); }
.directorio-enlaces > a.directorio-destacado { color: #fff; background: linear-gradient(135deg, var(--adn-azul), #0b5a67); border-color: transparent; }
.directorio-numero { display: grid; width: 46px; height: 46px; place-items: center; color: var(--adn-azul); background: var(--adn-verde); border-radius: 11px; font-family: var(--fuente-titulo); font-size: 12px; font-weight: 800; }
.directorio-enlaces small { color: var(--adn-verde-oscuro); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.directorio-enlaces strong { display: block; margin-top: 6px; color: var(--adn-azul); font-family: var(--fuente-titulo); font-size: 23px; line-height: 1.15; }
.directorio-enlaces p { margin: 10px 0 0; color: var(--adn-suave); font-size: 14px; }
.directorio-enlaces b { color: var(--adn-verde-oscuro); font-size: 26px; font-weight: 500; }
.directorio-enlaces .directorio-destacado small,
.directorio-enlaces .directorio-destacado b { color: var(--adn-verde); }
.directorio-enlaces .directorio-destacado strong { color: #fff; }
.directorio-enlaces .directorio-destacado p { color: #cce0e6; }
.recursos-legal { padding: 64px 0; background: var(--adn-verde-suave); border-top: 1px solid #b8e8dc; }
.recursos-legal .contenedor { display: flex; align-items: end; justify-content: space-between; gap: 34px; }
.recursos-legal nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.recursos-legal nav a { min-height: 44px; padding: 10px 13px; color: var(--adn-azul); background: #fff; border: 1px solid #b8ddd4; border-radius: 9px; font-weight: 700; }
.recursos-legal nav a:hover { background: var(--adn-azul); color: var(--adn-verde); border-color: var(--adn-azul); }

/* Páginas públicas */
.cabecera-pagina { padding: 72px 0 36px; text-align: center; }
.cabecera-pagina::after { display: block; width: 90px; height: 3px; margin: 26px auto 0; content: ''; background: var(--adn-verde); border-radius: 99px; }
.titulo-pagina { color: var(--adn-azul); font-family: var(--fuente-titulo); font-size: clamp(40px, 6vw, 68px); letter-spacing: -.05em; }
.titulo-pagina span { color: var(--adn-verde-oscuro); }
.texto-pagina { color: var(--adn-suave); }
.filtros { justify-content: center; }
.filtro { min-height: 44px; color: var(--adn-suave); background: #fff; border-color: var(--adn-borde); border-radius: 999px; }
.filtro:hover, .filtro.activo { color: var(--adn-azul); background: var(--adn-verde); border-color: var(--adn-verde); }
.rejilla-cursos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.tarjeta-curso { border-color: var(--adn-borde); border-radius: 16px; box-shadow: 0 7px 18px rgb(5 40 58 / 7%); }
.tarjeta-curso:hover { border-color: var(--adn-verde); box-shadow: var(--adn-sombra-2); }
.curso-imagen { height: 220px; background: #dfe8eb; }
.curso-imagen.sin-imagen { color: var(--adn-verde); background: var(--adn-azul); }
.curso-cuerpo { padding: 22px; }
.curso-cuerpo h3 { color: var(--adn-azul); font-family: var(--fuente-titulo); font-size: 20px; }
.curso-cuerpo p { color: var(--adn-suave); }
.curso-pie { border-color: var(--adn-borde); }
.curso-pie a { color: var(--adn-verde-oscuro); }
.estado { color: #fff; background: var(--adn-azul); }
.estado.proximo { color: #694700; background: #fff2c8; }

.rejilla-docentes { gap: 24px; }
.tarjeta-docente { border-color: var(--adn-borde); border-radius: 18px; box-shadow: var(--adn-sombra-1); }
.tarjeta-docente:hover { border-color: var(--adn-verde); box-shadow: var(--adn-sombra-2); }
.docente-foto { background: linear-gradient(145deg, var(--adn-azul), #126374); }
.docente-cuerpo h2 { color: var(--adn-azul); }
.especialidad { color: var(--adn-verde-oscuro); }
.enlace-perfil { color: var(--adn-azul); }
.modal-docente { border-color: var(--adn-borde); border-radius: 22px; box-shadow: 0 30px 90px rgb(0 20 30 / 35%); }
.modal-docente::backdrop { background: rgb(5 28 40 / 72%); backdrop-filter: blur(7px); }
.modal-docente-foto { background: var(--adn-azul); }
.cerrar-modal { color: var(--adn-azul); background: #fff; border-color: var(--adn-borde); }

.cabecera-informativa { color: #fff; background: linear-gradient(120deg, var(--adn-azul), #0b5361); }
.cabecera-informativa h1 { color: #fff; font-family: var(--fuente-titulo); }
.cabecera-informativa p { color: #d4e6eb; }
.cabecera-informativa .sobrelinea { color: var(--adn-verde); }
.indice-informativo,
.texto-informativo { border-color: var(--adn-borde); border-radius: 16px; box-shadow: var(--adn-sombra-1); }
.texto-informativo { padding: 30px; background: #fff; }
.indice-informativo a:hover { color: var(--adn-azul); background: var(--adn-verde-suave); }
.texto-informativo h2 { color: var(--adn-azul); }

/* Nosotros: contenido institucional con jerarquía propia */
.pagina-nosotros .cabecera-informativa {
    background:
        radial-gradient(circle at 88% 18%, rgb(0 230 172 / 25%), transparent 28%),
        linear-gradient(120deg, var(--adn-azul), #0b5361 72%, #087d70);
}
.pagina-nosotros .contenido-informativo { grid-template-columns: 210px minmax(0, 1fr); gap: 32px; }
.pagina-nosotros .indice-informativo { overflow: hidden; padding: 22px; border: 0; box-shadow: var(--adn-sombra-1); }
.pagina-nosotros .indice-informativo::before { display: block; height: 4px; margin: -22px -22px 16px; content: ''; background: linear-gradient(90deg, var(--adn-verde), var(--adn-verde-oscuro)); }
.pagina-nosotros .indice-informativo strong { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.pagina-nosotros .texto-informativo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; counter-reset: seccion-nosotros; }
.pagina-nosotros .texto-informativo section { position: relative; min-height: 225px; margin: 0; padding: 28px; overflow: hidden; background: linear-gradient(150deg, #fff, #f2faf7); border: 1px solid var(--adn-borde); border-radius: 18px; box-shadow: var(--adn-sombra-1); counter-increment: seccion-nosotros; }
.pagina-nosotros .texto-informativo section::before { display: block; margin-bottom: 38px; color: var(--adn-verde-oscuro); content: '0' counter(seccion-nosotros); font-family: var(--fuente-titulo); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.pagina-nosotros .texto-informativo section:nth-child(3) { grid-column: 1 / -1; min-height: 250px; color: #fff; background: linear-gradient(125deg, var(--adn-azul), #0b5a67); border-color: transparent; }
.pagina-nosotros .texto-informativo section:nth-child(3)::after { position: absolute; right: -90px; bottom: -130px; width: 310px; height: 310px; content: ''; background: var(--adn-verde); border-radius: 50%; opacity: .12; }
.pagina-nosotros .texto-informativo section:nth-child(3)::before { color: var(--adn-verde); }
.pagina-nosotros .texto-informativo section:nth-child(3) h2 { color: #fff; }
.pagina-nosotros .texto-informativo section:nth-child(3) p { max-width: 760px; color: #d4e6eb; }
.pagina-nosotros .texto-informativo h2 { margin-bottom: 12px; font-size: clamp(26px, 3vw, 34px); }
.pagina-nosotros .texto-informativo p { max-width: 68ch; margin-bottom: 0; color: #526b79; }

/* Acceso, perfil, checkout y ficha */
.autenticacion { min-height: calc(100dvh - 82px); padding: 58px 20px 76px; background: radial-gradient(circle at 12% 10%, rgb(0 230 172 / 12%), transparent 30%), linear-gradient(135deg, #f9fbfc, #eef5f6); }
.autenticacion-tarjeta { border-color: var(--adn-borde); border-radius: 24px; box-shadow: var(--adn-sombra-2); }
.autenticacion-tarjeta::before { height: 5px; background: linear-gradient(90deg, var(--adn-verde), var(--adn-verde-oscuro), var(--adn-azul)); }
.autenticacion-cabecera img { padding: 9px; background: var(--adn-azul); border-radius: 14px; }
.autenticacion-cabecera h1 { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.campo-acceso input { background: #fbfcfd; border-color: #cbd8de; }
.enlace-recuperacion,
.alternativa-acceso a { color: var(--adn-verde-oscuro); }

.perfil-cuenta,
.pago-pagina,
.ficha-pagina { background: linear-gradient(180deg, #edf8f5 0, var(--adn-fondo) 300px); }
.perfil-resumen,
.tarjeta-perfil,
.historial-cuenta,
.pago-distribucion,
.ficha-seccion { border-color: var(--adn-borde); border-radius: 20px; box-shadow: var(--adn-sombra-1); }
.avatar-cuenta { color: var(--adn-verde); background: var(--adn-azul); }
.seccion-activa { color: var(--adn-azul); background: var(--adn-verde); }
.encabezado-perfil h2,
.encabezado-historial h2,
.ficha-cabecera h1,
.seccion-cabecera h2 { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.seccion-cabecera > span { color: var(--adn-azul); background: var(--adn-verde); }
.avance-barra span { background: var(--adn-verde-oscuro); }
.foto-estudiante { color: var(--adn-verde); background: var(--adn-azul); }
.documento-tarjeta { background: #f8fbfc; border-color: var(--adn-borde); }
.documento-tarjeta.documento-cargado { background: var(--adn-verde-suave); border-color: #99dcc9; }
.archivo-etiqueta { color: var(--adn-azul); border-color: #9fc0c8; }
.archivo-etiqueta:hover { background: var(--adn-verde-suave); border-color: var(--adn-verde-oscuro); }
.pago-resumen { background: var(--adn-azul); border-color: #173e4f; }
.pago-resumen h1,
.pago-resumen .precio,
.pago-resumen dt,
.pago-resumen p { color: #fff; }
.pago-resumen .precio-bs { color: var(--adn-verde); }
.pago-resumen .totales { color: var(--adn-texto); background: #fff; border-color: rgb(255 255 255 / 18%); border-radius: 14px; }
.pago-resumen .totales dt { color: var(--adn-suave); }
.pago-resumen .totales dd { color: var(--adn-azul); }
.pago-confirmado { border-color: var(--adn-borde); border-radius: 22px; box-shadow: var(--adn-sombra-2); }
.pago-confirmado .estado-icono { color: var(--adn-azul); background: var(--adn-verde); }
.pago-confirmado h1 { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.aviso-factura { color: var(--adn-texto); background: var(--adn-verde-suave); border-color: #9fdcca; border-radius: 12px; }
.pago-formulario h2 { color: var(--adn-azul); }
.metodo-opcion:has(input:checked),
.plan-opcion:has(input:checked) { color: var(--adn-azul); background: var(--adn-verde-suave); border-color: var(--adn-verde-oscuro); }

.detalle-curso { background: linear-gradient(180deg, #fff 0, #f6f9fa 100%); }
.detalle-informacion > h1 { color: var(--adn-azul); font-family: var(--fuente-titulo); letter-spacing: -.045em; }
.docente-resumen { border-color: var(--adn-borde); box-shadow: 0 5px 14px rgb(5 40 58 / 6%); }
.video-presentacion { background: var(--adn-azul); border-radius: 20px; box-shadow: var(--adn-sombra-2); }
.contenido-curso,
.tarjeta-inscripcion { border-color: var(--adn-borde); border-radius: 20px; box-shadow: var(--adn-sombra-1); }
.contenido-curso h2,
.contenido-curso h3 { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.datos-curso span { color: var(--adn-azul); background: var(--adn-verde-suave); }
.beneficios-inscripcion li::before { color: var(--adn-verde-oscuro); }

/* Perfil público del docente */
.perfil-docente { background: linear-gradient(180deg, #edf8f5 0, var(--adn-fondo) 390px); }
.perfil-docente .volver { color: var(--adn-verde-oscuro); }
.perfil-docente-cabecera {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(120deg, var(--adn-azul) 0 70%, #0b5965 70%);
    border: 0;
    border-radius: 22px;
    box-shadow: var(--adn-sombra-2);
    isolation: isolate;
}
.perfil-docente-cabecera::after { position: absolute; right: -75px; bottom: -115px; z-index: -1; width: 310px; height: 310px; content: ''; background: var(--adn-verde); border-radius: 50%; opacity: .13; }
.perfil-docente-foto { display: grid; place-items: center; background: #0c4554; border: 1px solid rgb(255 255 255 / 20%); border-radius: 18px; }
.perfil-docente-foto span { color: var(--adn-azul); font-family: var(--fuente-titulo); font-size: 70px; font-weight: 700; background: var(--adn-verde); }
.perfil-docente-cabecera .sobrelinea { color: var(--adn-verde); }
.perfil-docente-cabecera h1 { color: #fff; font-family: var(--fuente-titulo); }
.perfil-docente-cabecera p { color: #d8e7eb; }
.perfil-docente-contenido > article,
.perfil-enlaces { background: #fff; border-color: var(--adn-borde); border-radius: 18px; box-shadow: var(--adn-sombra-1); }
.perfil-docente-contenido h2 { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.perfil-docente-contenido p { color: var(--adn-suave); }
.perfil-enlaces a { color: var(--adn-azul); border-color: var(--adn-borde); }
.perfil-enlaces a:hover { color: var(--adn-azul); background: var(--adn-verde-suave); border-color: var(--adn-verde); }

/* Portales de estudiantes y docentes */
.portal-alumno,
.panel-docente,
.panel-curso-docente { background: #f4f8f9; }
.bienvenida-alumno,
.panel-docente-cabecera { position: relative; overflow: hidden; color: #fff; background: linear-gradient(120deg, var(--adn-azul) 0 68%, #0c5964 68%); border: 0; border-radius: 22px; box-shadow: var(--adn-sombra-2); isolation: isolate; }
.bienvenida-alumno::after,
.panel-docente-cabecera::after { position: absolute; right: -55px; bottom: -85px; z-index: -1; width: 260px; height: 260px; content: ''; background: var(--adn-verde); border-radius: 50%; opacity: .14; }
.avatar-alumno,
.panel-docente-avatar,
.avatar-docente { color: var(--adn-azul); background: var(--adn-verde); border-color: var(--adn-verde); }
.bienvenida-texto h1,
.panel-docente-cabecera h1 { color: #fff; font-family: var(--fuente-titulo); }
.pestana-alumno.activa { color: var(--adn-azul); }
.pestana-alumno.activa::after { background: var(--adn-verde); }
.tarjeta-pendiente,
.tarjeta-curso-alumno,
.tarjeta-sugerida,
.panel-soporte,
.ticket-alumno,
.curso-docente,
.panel-docente-vacio { border-color: var(--adn-borde); border-radius: 16px; box-shadow: var(--adn-sombra-1); }
.tarjeta-curso-alumno:hover,
.tarjeta-sugerida:hover,
.curso-docente:hover { border-color: var(--adn-verde); box-shadow: var(--adn-sombra-2); }
.portada-curso-alumno.sin-imagen { background: linear-gradient(135deg, var(--adn-azul), #126272); }
.recordatorio-ficha { border-radius: 14px; }
.panel-docente .boton,
.panel-curso-docente .boton { border-radius: 10px; }
.panel-docente dialog::backdrop { background: rgb(5 28 40 / 70%); backdrop-filter: blur(7px); }

/* Gestión de curso y aula */
.panel-curso-docente { max-width: 1280px; }
.panel-curso-docente > header,
.panel-curso-docente > section,
.panel-curso-docente .bg-white { border-color: var(--adn-borde); border-radius: 18px; box-shadow: var(--adn-sombra-1); }
.panel-curso-docente h1,
.panel-curso-docente h2,
.panel-curso-docente h3 { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.cabecera-gestion-curso { color: #fff; background: linear-gradient(120deg, var(--adn-azul), #0b5965); border: 0; border-radius: 22px; box-shadow: var(--adn-sombra-2); }
.cabecera-gestion-curso h1 { color: #fff; }
.cabecera-gestion-curso p { color: #d8e7eb; }
.cabecera-gestion-curso a { color: #fff; border-color: rgb(0 230 172 / 46%); }
.panel-curso-docente button[class*='bg-teal'],
.panel-curso-docente .boton-evaluacion-clase { color: var(--adn-verde); background: var(--adn-azul); border-color: var(--adn-azul); }
.panel-curso-docente button[class*='bg-teal']:hover,
.panel-curso-docente .boton-evaluacion-clase:hover { color: var(--adn-azul); background: var(--adn-verde); border-color: var(--adn-verde); }
.aviso-evaluaciones-clase,
.accion-evaluacion-clase { background: var(--adn-verde-suave); border-color: #a4ddce; }

.cinema-scope { background: #eef4f5; }
.cinema-shell { width: min(100% - 32px, 1480px); }
.cinema-topbar { color: #fff; background: var(--adn-azul); border-color: #173f50; }
.cinema-stage,
.cinema-panel { border-color: var(--adn-borde); border-radius: 16px; box-shadow: var(--adn-sombra-1); }
.cinema-video-frame { background: #020e14; border-radius: 14px; }
.cinema-tab.activo { color: var(--adn-azul); border-color: var(--adn-verde); }
.cinema-clase.activa { color: var(--adn-azul); background: var(--adn-verde-suave); border-color: var(--adn-verde-oscuro); }
.cinema-boton-evaluacion { color: var(--adn-verde); background: var(--adn-azul); border-radius: 10px; }

/* Evaluaciones */
.evaluation-page { min-height: calc(100dvh - 82px); background: radial-gradient(circle at 90% 0, rgb(0 230 172 / 10%), transparent 28%), #f4f8f9; }
.evaluation-hero { color: #fff; background: linear-gradient(120deg, var(--adn-azul), #0b5965); border: 0; border-radius: 20px; box-shadow: var(--adn-sombra-2); }
.evaluation-hero h1 { color: #fff; font-family: var(--fuente-titulo); }
.evaluation-kicker { color: var(--adn-verde); font-family: var(--fuente-tecnica); }
.evaluation-question,
.evaluation-form,
.evaluation-history { border-color: var(--adn-borde); border-radius: 16px; box-shadow: var(--adn-sombra-1); }
.evaluation-question legend { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.evaluation-submit { color: var(--adn-verde); background: var(--adn-azul); border-radius: 10px; }
.evaluation-submit:hover { color: var(--adn-azul); background: var(--adn-verde); }
.evaluation-secondary,
.inline-form button { color: var(--adn-azul); border-color: #a8bdc5; border-radius: 10px; }
.evaluation-secondary:hover,
.inline-form button:hover { background: var(--adn-verde-suave); border-color: var(--adn-verde-oscuro); }
.evaluation-class-note,
.file-control { color: var(--adn-azul); background: var(--adn-verde-suave); border-color: #a4ddce; }

/* Administración */
body:has(.panel-admin) { background: var(--admin-fondo); }
.panel-admin { width: min(calc(100% - 40px), 1480px); grid-template-columns: 260px minmax(0, 1fr); gap: 30px; }
.menu-admin { border-color: var(--adn-borde); border-radius: 18px; box-shadow: var(--adn-sombra-1); }
.avatar-admin,
.avatar-tabla-admin { color: var(--adn-azul); background: var(--adn-verde); }
.navegacion-admin a { border-radius: 10px; }
.navegacion-admin a:hover { color: var(--adn-azul); background: var(--adn-verde-suave); }
.navegacion-admin a.bg-brand-indigo\/10 { color: var(--adn-azul); background: var(--adn-verde); }
.panel-admin h1,
.panel-admin h2 { color: var(--adn-azul); font-family: var(--fuente-titulo); }
.indicadores-admin article,
.acciones-admin a,
.panel-admin .bg-white,
.panel-admin .rounded-2xl { border-color: var(--adn-borde); border-radius: 16px; box-shadow: 0 7px 18px rgb(5 40 58 / 6%); }
.indicadores-admin article { border-top: 4px solid var(--adn-verde); }
.indicadores-admin strong { color: var(--adn-azul); }
.acciones-admin a:hover,
.panel-admin .card-hover:hover { border-color: var(--adn-verde); box-shadow: var(--adn-sombra-2); }
.panel-admin .boton-admin { border-radius: 9px; }
.boton-admin-principal { color: var(--adn-verde) !important; background: var(--adn-azul) !important; border-color: var(--adn-azul) !important; }
.boton-admin-principal:hover { color: var(--adn-azul) !important; background: var(--adn-verde) !important; border-color: var(--adn-verde) !important; }
.boton-admin-secundario { color: var(--adn-azul) !important; border-color: #a8bdc5 !important; }
.boton-admin-secundario:hover { background: var(--adn-verde-suave) !important; border-color: var(--adn-verde-oscuro) !important; }
.panel-admin thead { background: #eef4f5; }
.panel-admin th { color: #516b79; }
.panel-admin tbody tr:hover { background: #f2fbf8; }
.selector-rol-admin { background-color: #f8fafb !important; }
.estado-usuario-activo { color: #075e4a; background: #e3f8f1; border-color: #a3ddcc; }
.panel-admin [id^='modal-'] { background: rgb(5 28 40 / 72%); backdrop-filter: blur(7px); }
.panel-admin [id^='modal-'] > div { border-color: var(--adn-borde); border-radius: 20px; box-shadow: 0 28px 80px rgb(0 20 26 / 38%); }
.modal-admin-pie { background: #f3f7f8; }
.lista-docentes-admin { scrollbar-color: var(--adn-verde-oscuro) #edf3f4; }
.opcion-docente-admin:has(input:checked) { color: var(--adn-azul); background: var(--adn-verde-suave); border-color: var(--adn-verde-oscuro); }
.panel-admin .mod-row,
.panel-admin .modulo-block { background: #f5f9fa; border-color: var(--adn-borde); }
.panel-admin .clases-mod-container,
.panel-admin .clases-modulo { border-color: var(--adn-verde); }

/* Responsive */
@media (max-width: 1080px) {
    .portada-rejilla { grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr); gap: 32px; }
    .beneficios-portada { width: 50%; }
    .rejilla-cursos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .promesa-rejilla { grid-template-columns: 1fr; gap: 32px; }
    .panel-admin { grid-template-columns: 220px minmax(0, 1fr); }
}

@media (max-width: 900px) {
    .contenedor { width: min(100% - 32px, 1180px); }
    .portada-inicio { padding-top: 46px; }
    .portada-rejilla { grid-template-columns: 1fr; }
    .portada-inicio .portada-contenido { max-width: 720px; }
    .portada-visual { min-height: 450px; overflow: hidden; }
    .portada-fondo { inset: 44px 0 0 12%; }
    .avatar-adn,
    .avatar-respaldo { left: 14%; }
    .beneficios-portada { right: 7%; }
    .panel-admin { grid-template-columns: 1fr; }
    .menu-admin { position: static; }
    .landing-hero,
    .landing-rutas-rejilla { grid-template-columns: 1fr; }
    .landing-panel-marca { min-height: 420px; }
    .landing-rejilla-beneficios { grid-template-columns: 1fr; }
    .landing-rejilla-beneficios article { min-height: 0; }
    .landing-rejilla-beneficios h3 { margin-top: 28px; }
    .recursos-legal .contenedor { display: grid; }
    .recursos-legal nav { justify-content: flex-start; }
    .pagina-nosotros .contenido-informativo { grid-template-columns: 1fr; }
    .pagina-nosotros .texto-informativo { grid-template-columns: 1fr; }
    .pagina-nosotros .texto-informativo section:nth-child(3) { grid-column: auto; }
}

@media (max-width: 760px) {
    body { font-size: 16px; }
    .cabecera, .barra { min-height: 72px; }
    .marca img { width: 32px; height: 32px; }
    .marca strong { font-size: 13px; }
    .portada-inicio .titulo-portada { font-size: clamp(40px, 13vw, 58px); }
    .portada-inicio .titulo-portada span { font-size: .6em; }
    .portada-visual { min-height: 400px; }
    .portada-visual { border-radius: 32px 0 20px 20px; }
    .portada-fondo { inset: 42px 0 0 2%; border-radius: 32px 0 20px 20px; }
    .avatar-adn,
    .avatar-respaldo { left: 2%; width: 59%; height: calc(100% - 8px); max-height: calc(100% - 8px); }
    .beneficios-portada { top: 102px; right: 0; width: 48%; gap: 19px; }
    .beneficios-portada li { padding-inline: 9px; font-size: 12px; }
    .inicio-cursos { padding-top: 58px; }
    .inicio-cursos .encabezado-seccion h2 { gap: 10px; }
    .inicio-cursos .tarjeta-curso,
    .inicio-cursos .tarjeta-curso:nth-child(even) { grid-template-columns: 150px minmax(0, 1fr); margin-inline: 0; text-align: left; }
    .inicio-cursos .tarjeta-curso:nth-child(even) .curso-imagen { grid-column: 1; grid-row: 1; margin-right: 0; }
    .inicio-cursos .tarjeta-curso:nth-child(even) .curso-cuerpo { grid-column: 2; }
    .inicio-cursos .tarjeta-curso:nth-child(even) .curso-pie { flex-direction: row; }
    .inicio-cursos .curso-imagen { min-height: 220px; }
    .inicio-cursos .curso-cuerpo { padding: 24px; }
    .inicio-cursos .curso-pie .profesor { display: none; }
    .promesa-datos { grid-template-columns: 1fr; }
    .rejilla-cursos { grid-template-columns: 1fr; }
    .curso-imagen { height: 240px; }
    .cabecera-pagina { padding-top: 50px; }
    .titulo-pagina { font-size: clamp(38px, 12vw, 55px); }
    .revision-rejilla { grid-template-columns: 1fr; }
    .panel-admin { width: min(100% - 24px, 1480px); padding-top: 18px; }
    .directorio-enlaces { grid-template-columns: 1fr; }
    .recursos-cabecera { display: block; }
    .landing-cierre .contenedor { display: grid; }
    .pie-landing { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 520px) {
    .contenedor { width: min(100% - 24px, 1180px); }
    .portada-inicio { padding-block: 38px 48px; }
    .portada-inicio .etiqueta { display: none; }
    .portada-inicio .texto-portada { font-size: 17px; }
    .portada-inicio .acciones-portada { display: grid; grid-template-columns: 1fr; }
    .portada-inicio .acciones-portada .boton { width: 100%; }
    .portada-visual { min-height: 390px; margin-top: 8px; border-radius: 28px 0 18px 18px; }
    .portada-fondo { inset: 30px 0 0 0; border-radius: 28px 0 18px 18px; }
    .avatar-adn,
    .avatar-respaldo { left: 0; width: 57%; height: calc(100% - 4px); max-height: calc(100% - 4px); object-position: left bottom; }
    .beneficios-portada { top: 74px; right: -2px; width: 52%; gap: 17px; }
    .beneficios-portada li { min-height: 42px; padding-block: 10px; font-size: 10px; }
    .beneficios-portada svg { width: 21px; height: 21px; }
    .inicio-cursos .encabezado-seccion h2 { display: grid; }
    .inicio-cursos .encabezado-seccion h2 strong { padding: 11px 14px; }
    .lista-cursos-destacados { gap: 26px; }
    .inicio-cursos .tarjeta-curso,
    .inicio-cursos .tarjeta-curso:nth-child(even) { display: flex; overflow: hidden; flex-direction: column; }
    .inicio-cursos .curso-imagen,
    .inicio-cursos .tarjeta-curso:nth-child(even) .curso-imagen { width: 100%; height: 240px; min-height: 240px; margin: 0; border-radius: 14px 14px 0 0; box-shadow: none; }
    .inicio-cursos .curso-cuerpo { padding: 22px; }
    .inicio-cursos .curso-cuerpo h3 { font-size: 21px; }
    .inicio-cursos .curso-pie { justify-content: flex-end; }
    .promesa-datos article { padding: 16px; }
    .datos-ficha-admin div { grid-template-columns: 1fr; gap: 3px; }
    .pagina-landing .barra { min-height: 82px; flex-wrap: wrap; gap: 8px; padding-block: 10px; }
    .pagina-landing .acceso-escritorio { display: flex; width: 100%; justify-content: stretch; }
    .pagina-landing .acceso-escritorio .boton { flex: 1; padding-inline: 10px; }
    .landing-editorial { padding-top: 48px; }
    .landing-mensaje h1 { font-size: clamp(43px, 13vw, 58px); }
    .landing-acciones { display: grid; grid-template-columns: 1fr; }
    .landing-panel-marca { min-height: 370px; padding: 28px; border-radius: 28px 6px; }
    .landing-panel-marca > p { margin-top: 42px; font-size: 20px; }
    .landing-pilares { right: 20px; bottom: 20px; left: 20px; }
    .landing-pilares span { font-size: 10px; }
    .directorio-enlaces > a { min-height: 0; grid-template-columns: 42px minmax(0, 1fr); padding: 20px; }
    .directorio-numero { width: 40px; height: 40px; }
    .directorio-enlaces b { display: none; }
    .recursos-estado { display: grid; }
    .recursos-estado span { width: fit-content; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}
