@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@300;400;500;600;700;800;900&display=swap');

:root {
    --glx-primary: #00A5E7;
    --glx-primary-soft: rgba(0,165,231,.16);
    --glx-bg: #050505;
    --glx-bg-2: #0d0d0d;
    --glx-card: #131313;
    --glx-border: rgba(255,255,255,.08);
    --glx-text: #fff;
    --glx-muted: rgba(255,255,255,.72);
    --glx-done: #79d84a;
    --glx-pending: rgba(255,255,255,.85);
    --glx-font: 'Raleway', sans-serif;
}

html,
body,
body.gluxflix-body,
body.gluxflix-body * {
    font-family: var(--glx-font) !important;
}

body.gluxflix-body {
    background: var(--glx-bg) !important;
    color: var(--glx-text) !important;
    font-family: var(--glx-font) !important;
}

body.gluxflix-body a,
body.gluxflix-body p,
body.gluxflix-body span,
body.gluxflix-body div,
body.gluxflix-body li,
body.gluxflix-body td,
body.gluxflix-body th,
body.gluxflix-body label,
body.gluxflix-body small,
body.gluxflix-body strong,
body.gluxflix-body em,
body.gluxflix-body h1,
body.gluxflix-body h2,
body.gluxflix-body h3,
body.gluxflix-body h4,
body.gluxflix-body h5,
body.gluxflix-body h6,
body.gluxflix-body input,
body.gluxflix-body select,
body.gluxflix-body textarea,
body.gluxflix-body button,
body.gluxflix-body .btn,
body.gluxflix-body .form-control,
body.gluxflix-body .dropdown-item,
body.gluxflix-body .nav-link,
body.gluxflix-body .breadcrumb,
body.gluxflix-body .card,
body.gluxflix-body .modal,
body.gluxflix-body .alert,
body.gluxflix-body .table {
    font-family: var(--glx-font) !important;
}

body.gluxflix-body a {
    color: inherit;
}

.glx-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1rem 1.6rem;
    background: linear-gradient(to bottom, rgba(0,0,0,.78), rgba(0,0,0,.30), rgba(0,0,0,0));
    backdrop-filter: blur(6px);
}

.glx-nav__left,
.glx-nav__right,
.glx-nav__menu {
    display: flex;
    align-items: center;
}

.glx-nav__left {
    gap: 1.2rem;
}

.glx-nav__menu {
    gap: 1.5rem;
}

.glx-nav__right {
    gap: .85rem;
}

.glx-nav a {
    color: #fff !important;
    text-decoration: none !important;
}

.glx-brand {
    display: inline-flex;
    align-items: center;
    gap: .85rem;
    flex-shrink: 0;
}

.glx-brand__logo {
    height: 52px;
    width: auto;
    display: block;
}

.glx-brand__text {
    font-size: 1.05rem;
    font-weight: 900;
    letter-spacing: .04em;
}

.glx-nav__menu a {
    opacity: .92;
    font-size: 1rem;
    font-weight: 700;
    transition: opacity .18s ease, color .18s ease;
}

.glx-nav__menu a.is-active,
.glx-nav__menu a:hover {
    opacity: 1;
    color: var(--glx-primary) !important;
}

.glx-nav__iconbtn,
.glx-nav__logout {
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 999px;
    padding: .78rem 1.05rem;
    background: rgba(17,17,17,.58);
    font-weight: 700;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.glx-nav__iconbtn:hover,
.glx-nav__logout:hover {
    background: rgba(255,255,255,.10);
    border-color: rgba(255,255,255,.18);
    transform: translateY(-1px);
}

.glx-nav__user {
    font-weight: 700;
    opacity: .92;
}

.glx-home {
    background: var(--glx-bg);
    color: var(--glx-text);
    min-height: 100vh;
}

.glx-hero {
    position: relative;
    min-height: 88vh;
    display: flex;
    align-items: flex-end;
    background-color: #050505;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    overflow: hidden;
}

.glx-hero--withimage {
    background-repeat: no-repeat;
}

.glx-hero__backdrop {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(0,0,0,.70) 0%, rgba(0,0,0,.44) 34%, rgba(0,0,0,.10) 58%, rgba(0,0,0,.52) 100%),
        linear-gradient(180deg, rgba(0,0,0,.26) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,.74) 100%);
    pointer-events: none;
}

.glx-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 180px;
    background: linear-gradient(to bottom, rgba(0,0,0,0), #050505 90%);
    pointer-events: none;
}

.glx-hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 760px;
    padding: 8rem 2rem 6.25rem;
}

.glx-hero__meta {
    color: var(--glx-primary);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-weight: 800;
    font-size: .88rem;
    margin-bottom: .95rem;
}

.glx-hero__title {
    color: #fff;
    font-size: clamp(3.4rem, 7vw, 6.6rem);
    line-height: .90;
    margin: 0 0 1rem;
    font-weight: 900;
    max-width: 700px;
    text-shadow: 0 10px 34px rgba(0,0,0,.30);
}

.glx-hero__subtitle {
    color: rgba(255,255,255,.86);
    font-size: 1.08rem;
    line-height: 1.65;
    margin-bottom: 1.7rem;
    max-width: 640px;
}

.glx-hero__actions {
    display: flex;
    gap: .9rem;
    flex-wrap: wrap;
}

.glx-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    min-height: 54px;
    padding: .9rem 1.4rem;
    text-decoration: none !important;
    font-weight: 800;
}

.glx-btn--primary {
    background: var(--glx-primary);
    color: #041018 !important;
    box-shadow: 0 10px 28px rgba(0,165,231,.24);
}

.glx-btn--ghost {
    background: rgba(24,24,24,.58);
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.12);
}

.glx-home__content {
    position: relative;
    z-index: 2;
    margin-top: -18px;
    padding: 0 1.6rem 4rem;
    background: var(--glx-bg);
}

.glx-strip {
    margin-bottom: 2.4rem;
}

.glx-strip__header {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    margin-bottom: 1rem;
}

.glx-strip__title {
    margin: 0;
    font-size: 2rem;
    font-weight: 900;
    color: #fff;
}

.glx-strip__sub,
.glx-link {
    color: var(--glx-muted);
}

.glx-strip__sub {
    margin-top: .2rem;
    font-size: 1rem;
}

.glx-link {
    text-decoration: none !important;
    font-weight: 700;
}

.glx-link:hover {
    color: var(--glx-primary) !important;
}

.glx-cards {
    display: grid;
    gap: 1.15rem;
}

.glx-cards--posters {
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

.glx-cards--landscape {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

.glx-cards--ranked {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.glx-card {
    min-width: 0;
}

.glx-card__link {
    display: block;
    color: inherit !important;
    text-decoration: none !important;
}

.glx-card__thumb {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    background-size: cover;
    background-position: center center;
    border: 1px solid rgba(255,255,255,.08);
    background-color: #101010;
    box-shadow: 0 16px 38px rgba(0,0,0,.24);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.glx-card:hover .glx-card__thumb {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 22px 54px rgba(0,0,0,.42);
    border-color: rgba(255,255,255,.14);
}

.glx-card--poster .glx-card__thumb {
    aspect-ratio: 2 / 3;
}

.glx-card--landscape .glx-card__thumb {
    aspect-ratio: 16 / 9;
}

.glx-card__thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,.10) 48%, rgba(0,0,0,0));
    pointer-events: none;
}

.glx-card__body {
    padding-top: .8rem;
}

.glx-card__meta {
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--glx-primary);
    margin-bottom: .35rem;
}

.glx-card__title {
    font-size: 1.08rem;
    font-weight: 800;
    margin: 0 0 .45rem;
    color: #fff;
    line-height: 1.25;
}

.glx-card__summary {
    margin: 0;
    color: var(--glx-muted);
    font-size: .95rem;
    line-height: 1.55;
}

.glx-card__status,
.glx-card__badge,
.glx-card__plus,
.glx-card__rank,
.glx-card__schooldot {
    position: absolute;
    z-index: 2;
}

.glx-card__status {
    left: .7rem;
    bottom: .7rem;
    padding: .4rem .68rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .02em;
}

.glx-card__status--done {
    background: var(--glx-done);
    color: #0c2100;
}

.glx-card__status--pending {
    background: rgba(255,255,255,.90);
    color: #111;
}

.glx-card__badge {
    left: .7rem;
    top: .7rem;
    background: var(--glx-primary);
    color: #052031;
    padding: .38rem .6rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 900;
}

.glx-card__plus {
    right: .7rem;
    bottom: .7rem;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255,255,255,.88);
    color: #111;
    font-size: 1.8rem;
    font-weight: 700;
}

.glx-card__schooldot {
    top: .8rem;
    right: .8rem;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.92);
}

.glx-card__rank {
    left: .2rem;
    top: .1rem;
    font-size: 5rem;
    line-height: 1;
    font-weight: 900;
    color: rgba(255,255,255,.18);
    text-shadow: 0 2px 12px rgba(0,0,0,.45);
}

.glx-panels {
    margin-top: 2.8rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.glx-panel {
    display: block;
    border-radius: 24px;
    padding: 1.55rem;
    background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
    border: 1px solid rgba(255,255,255,.08);
    color: inherit !important;
    text-decoration: none !important;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.glx-panel:hover {
    transform: translateY(-3px);
    border-color: rgba(255,255,255,.14);
    box-shadow: 0 18px 42px rgba(0,0,0,.24);
}

.glx-panel__eyebrow {
    display: inline-block;
    margin-bottom: .7rem;
    color: var(--glx-primary);
    font-size: .8rem;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: .1em;
}

.glx-panel h3 {
    margin: 0 0 .55rem;
    font-size: 1.5rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.2;
}

.glx-panel p {
    margin: 0;
    color: var(--glx-muted);
    line-height: 1.6;
    font-size: 1rem;
}

.glx-series-hero {
    position: relative;
    min-height: 72vh;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center center;
}

.glx-series-hero__overlay {
    width: 100%;
    padding: 5rem 2rem 2rem;
    background: linear-gradient(to top, rgba(0,0,0,.96), rgba(0,0,0,.35));
}

.glx-series-hero__grid {
    display: grid;
    grid-template-columns: minmax(220px, 320px) 1fr;
    gap: 2rem;
    align-items: end;
    max-width: 1200px;
}

.glx-series-hero__poster {
    aspect-ratio: 2 / 3;
    border-radius: 22px;
    background-size: cover;
    background-position: center center;
    border: 1px solid var(--glx-border);
}

.glx-series-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    color: var(--glx-muted);
    font-weight: 700;
    margin-bottom: .9rem;
}

.glx-series-hero__title {
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: .95;
    margin: 0 0 1rem;
    font-weight: 900;
    color: #fff;
}

.glx-series-hero__desc {
    max-width: 780px;
    color: var(--glx-muted);
    line-height: 1.7;
    font-size: 1.02rem;
}

.glx-page {
    padding: 2rem;
    background: var(--glx-bg);
    color: #fff;
}

.glx-episodes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem;
}

@media (max-width: 991px) {
    .glx-nav {
        padding: .9rem 1rem;
    }

    .glx-nav__menu--desktop {
        display: none;
    }

    .glx-nav__right {
        gap: .65rem;
    }

    .glx-brand__logo {
        height: 38px;
    }

    .glx-home__content,
    .glx-page,
    .glx-hero__inner,
    .glx-series-hero__overlay {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .glx-home__content {
        padding-bottom: 3rem;
    }

    .glx-hero {
        min-height: 72vh;
        align-items: flex-end;
        background-position: center center;
    }

    .glx-hero__inner {
        padding-top: 7rem;
        padding-bottom: 4rem;
    }

    .glx-hero__title {
        font-size: clamp(2.4rem, 9vw, 4.2rem);
        max-width: 100%;
    }

    .glx-hero__subtitle {
        font-size: 1rem;
        max-width: 100%;
    }

    .glx-strip__title {
        font-size: 1.5rem;
    }

    .glx-cards--posters {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    }

    .glx-cards--landscape {
        grid-template-columns: 1fr;
    }

    .glx-cards--ranked {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }

    .glx-panels {
        grid-template-columns: 1fr;
    }

    .glx-series-hero__grid {
        grid-template-columns: 1fr;
    }

    .glx-series-hero__poster {
        max-width: 240px;
    }
}

/* =========================================================
   ZONAS INTERNAS DE MOODLE / BOOST
   Mantener shell oscuro, pero contenido admin/formularios claro
   ========================================================= */

body.gluxflix-body #page {
    background: transparent;
}

body.gluxflix-body.pagelayout-admin #page-header,
body.gluxflix-body.pagelayout-standard #page-header,
body.gluxflix-body.pagelayout-mydashboard #page-header,
body.gluxflix-body.pagelayout-course #page-header {
    color: #fff;
}

body.gluxflix-body.pagelayout-admin #page-header .breadcrumb-item,
body.gluxflix-body.pagelayout-standard #page-header .breadcrumb-item,
body.gluxflix-body.pagelayout-mydashboard #page-header .breadcrumb-item,
body.gluxflix-body.pagelayout-course #page-header .breadcrumb-item,
body.gluxflix-body.pagelayout-admin #page-header .breadcrumb-item a,
body.gluxflix-body.pagelayout-standard #page-header .breadcrumb-item a,
body.gluxflix-body.pagelayout-mydashboard #page-header .breadcrumb-item a,
body.gluxflix-body.pagelayout-course #page-header .breadcrumb-item a,
body.gluxflix-body.pagelayout-admin #page-header h1,
body.gluxflix-body.pagelayout-standard #page-header h1,
body.gluxflix-body.pagelayout-mydashboard #page-header h1,
body.gluxflix-body.pagelayout-course #page-header h1,
body.gluxflix-body.pagelayout-admin #page-header .h2,
body.gluxflix-body.pagelayout-standard #page-header .h2,
body.gluxflix-body.pagelayout-mydashboard #page-header .h2,
body.gluxflix-body.pagelayout-course #page-header .h2 {
    color: #fff !important;
}

/* Caja principal blanca con texto oscuro */
body.gluxflix-body.pagelayout-admin #region-main,
body.gluxflix-body.pagelayout-standard #region-main,
body.gluxflix-body.pagelayout-mydashboard #region-main,
body.gluxflix-body.pagelayout-course #region-main {
    background: #ffffff;
    color: #212529;
    border-radius: 18px;
    padding: 1.25rem;
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
}

/* Todo texto dentro de la caja principal debe volver a oscuro */
body.gluxflix-body.pagelayout-admin #region-main,
body.gluxflix-body.pagelayout-admin #region-main p,
body.gluxflix-body.pagelayout-admin #region-main span,
body.gluxflix-body.pagelayout-admin #region-main div,
body.gluxflix-body.pagelayout-admin #region-main li,
body.gluxflix-body.pagelayout-admin #region-main td,
body.gluxflix-body.pagelayout-admin #region-main th,
body.gluxflix-body.pagelayout-admin #region-main label,
body.gluxflix-body.pagelayout-admin #region-main small,
body.gluxflix-body.pagelayout-admin #region-main h1,
body.gluxflix-body.pagelayout-admin #region-main h2,
body.gluxflix-body.pagelayout-admin #region-main h3,
body.gluxflix-body.pagelayout-admin #region-main h4,
body.gluxflix-body.pagelayout-admin #region-main h5,
body.gluxflix-body.pagelayout-admin #region-main h6,

body.gluxflix-body.pagelayout-standard #region-main,
body.gluxflix-body.pagelayout-standard #region-main p,
body.gluxflix-body.pagelayout-standard #region-main span,
body.gluxflix-body.pagelayout-standard #region-main div,
body.gluxflix-body.pagelayout-standard #region-main li,
body.gluxflix-body.pagelayout-standard #region-main td,
body.gluxflix-body.pagelayout-standard #region-main th,
body.gluxflix-body.pagelayout-standard #region-main label,
body.gluxflix-body.pagelayout-standard #region-main small,
body.gluxflix-body.pagelayout-standard #region-main h1,
body.gluxflix-body.pagelayout-standard #region-main h2,
body.gluxflix-body.pagelayout-standard #region-main h3,
body.gluxflix-body.pagelayout-standard #region-main h4,
body.gluxflix-body.pagelayout-standard #region-main h5,
body.gluxflix-body.pagelayout-standard #region-main h6,

body.gluxflix-body.pagelayout-mydashboard #region-main,
body.gluxflix-body.pagelayout-mydashboard #region-main p,
body.gluxflix-body.pagelayout-mydashboard #region-main span,
body.gluxflix-body.pagelayout-mydashboard #region-main div,
body.gluxflix-body.pagelayout-mydashboard #region-main li,
body.gluxflix-body.pagelayout-mydashboard #region-main td,
body.gluxflix-body.pagelayout-mydashboard #region-main th,
body.gluxflix-body.pagelayout-mydashboard #region-main label,
body.gluxflix-body.pagelayout-mydashboard #region-main small,
body.gluxflix-body.pagelayout-mydashboard #region-main h1,
body.gluxflix-body.pagelayout-mydashboard #region-main h2,
body.gluxflix-body.pagelayout-mydashboard #region-main h3,
body.gluxflix-body.pagelayout-mydashboard #region-main h4,
body.gluxflix-body.pagelayout-mydashboard #region-main h5,
body.gluxflix-body.pagelayout-mydashboard #region-main h6,

body.gluxflix-body.pagelayout-course #region-main,
body.gluxflix-body.pagelayout-course #region-main p,
body.gluxflix-body.pagelayout-course #region-main span,
body.gluxflix-body.pagelayout-course #region-main div,
body.gluxflix-body.pagelayout-course #region-main li,
body.gluxflix-body.pagelayout-course #region-main td,
body.gluxflix-body.pagelayout-course #region-main th,
body.gluxflix-body.pagelayout-course #region-main label,
body.gluxflix-body.pagelayout-course #region-main small,
body.gluxflix-body.pagelayout-course #region-main h1,
body.gluxflix-body.pagelayout-course #region-main h2,
body.gluxflix-body.pagelayout-course #region-main h3,
body.gluxflix-body.pagelayout-course #region-main h4,
body.gluxflix-body.pagelayout-course #region-main h5,
body.gluxflix-body.pagelayout-course #region-main h6 {
    color: #212529;
}

/* Links dentro de contenido blanco */
body.gluxflix-body.pagelayout-admin #region-main a,
body.gluxflix-body.pagelayout-standard #region-main a,
body.gluxflix-body.pagelayout-mydashboard #region-main a,
body.gluxflix-body.pagelayout-course #region-main a {
    color: #0d6efd;
}

/* Cards internas de Moodle */
body.gluxflix-body.pagelayout-admin #region-main .card,
body.gluxflix-body.pagelayout-standard #region-main .card,
body.gluxflix-body.pagelayout-mydashboard #region-main .card,
body.gluxflix-body.pagelayout-course #region-main .card {
    background: #fff;
    color: #212529;
    border: 1px solid #dee2e6;
    border-radius: 14px;
}

/* Formularios */
body.gluxflix-body.pagelayout-admin #region-main input,
body.gluxflix-body.pagelayout-admin #region-main select,
body.gluxflix-body.pagelayout-admin #region-main textarea,
body.gluxflix-body.pagelayout-standard #region-main input,
body.gluxflix-body.pagelayout-standard #region-main select,
body.gluxflix-body.pagelayout-standard #region-main textarea,
body.gluxflix-body.pagelayout-mydashboard #region-main input,
body.gluxflix-body.pagelayout-mydashboard #region-main select,
body.gluxflix-body.pagelayout-mydashboard #region-main textarea,
body.gluxflix-body.pagelayout-course #region-main input,
body.gluxflix-body.pagelayout-course #region-main select,
body.gluxflix-body.pagelayout-course #region-main textarea {
    background: #fff;
    color: #212529;
    border: 1px solid #ced4da;
}

/* Alerts internas */
body.gluxflix-body.pagelayout-admin #region-main .alert,
body.gluxflix-body.pagelayout-standard #region-main .alert,
body.gluxflix-body.pagelayout-mydashboard #region-main .alert,
body.gluxflix-body.pagelayout-course #region-main .alert {
    color: #212529;
}

/* Tablas */
body.gluxflix-body.pagelayout-admin #region-main table,
body.gluxflix-body.pagelayout-standard #region-main table,
body.gluxflix-body.pagelayout-mydashboard #region-main table,
body.gluxflix-body.pagelayout-course #region-main table {
    color: #212529;
}

/* Texto muted de Bootstrap dentro de cajas blancas */
body.gluxflix-body.pagelayout-admin #region-main .text-muted,
body.gluxflix-body.pagelayout-standard #region-main .text-muted,
body.gluxflix-body.pagelayout-mydashboard #region-main .text-muted,
body.gluxflix-body.pagelayout-course #region-main .text-muted {
    color: #6c757d !important;
}

body.gluxflix-body.pagelayout-admin #region-main .text-secondary,
body.gluxflix-body.pagelayout-standard #region-main .text-secondary,
body.gluxflix-body.pagelayout-mydashboard #region-main .text-secondary,
body.gluxflix-body.pagelayout-course #region-main .text-secondary {
    color: #6c757d !important;
}
/* =========================================================
   LOGIN GLUXFLIX
   Inspiración Netflix, pero con identidad Lux sin rojo
   ========================================================= */

body.gluxflix-login {
    min-height: 100vh;
    background-color: #050505 !important;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    position: relative;
}

body.gluxflix-login::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(180deg, rgba(12, 8, 6, 0.78) 0%, rgba(10, 6, 4, 0.88) 38%, rgba(3, 3, 3, 0.96) 100%),
        radial-gradient(circle at top center, rgba(123, 74, 46, 0.22) 0%, rgba(0, 0, 0, 0) 58%);
    pointer-events: none;
}

body.gluxflix-login #page,
body.gluxflix-login #page-content,
body.gluxflix-login #region-main-box,
body.gluxflix-login #region-main,
body.gluxflix-login .login-container,
body.gluxflix-login .login-wrapper {
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

body.gluxflix-login #page-wrapper {
    background: transparent !important;
}

.gluxflix-login-shell {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 34px 20px 48px;
}

.gluxflix-login-box {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
}

.gluxflix-login-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 26px;
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(255,255,255,0.10);
}

.gluxflix-login-logo {
    display: block;
    width: auto;
    max-width: 240px;
    max-height: 92px;
    object-fit: contain;
}

.gluxflix-login-content {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    padding-top: 34px;
}

/* Contenedor general del login de Moodle */
body.gluxflix-login .login-container,
body.gluxflix-login .login-wrapper {
    width: 100%;
    max-width: 100%;
    padding: 0 !important;
    margin: 0 !important;
}

/* Tarjeta principal */
body.gluxflix-login .loginform,
body.gluxflix-login .login-form,
body.gluxflix-login .card {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Título principal */
body.gluxflix-login h1,
body.gluxflix-login h2.login-heading,
body.gluxflix-login .login-heading {
    color: #ffffff !important;
    font-size: clamp(2rem, 4vw, 3.35rem) !important;
    line-height: .98 !important;
    font-weight: 900 !important;
    margin: 0 0 .75rem 0 !important;
    letter-spacing: -.03em;
}

/* Texto secundario */
body.gluxflix-login .login-subtitle,
body.gluxflix-login .subcontent,
body.gluxflix-login .desc,
body.gluxflix-login p,
body.gluxflix-login .logininstructions {
    color: rgba(255,255,255,.78) !important;
    font-size: 1rem;
    line-height: 1.45;
}

/* Ocultar textos/rellenos innecesarios si aparecen vacíos */
body.gluxflix-login .loginform .desc:empty,
body.gluxflix-login .loginform .logininstructions:empty {
    display: none !important;
}

/* Formulario */
body.gluxflix-login form,
body.gluxflix-login .mform {
    margin-top: 1.35rem;
}

/* Inputs */
body.gluxflix-login input[type="text"],
body.gluxflix-login input[type="password"],
body.gluxflix-login input[type="email"],
body.gluxflix-login input[type="tel"],
body.gluxflix-login input[name="username"],
body.gluxflix-login input[name="password"],
body.gluxflix-login .form-control {
    width: 100% !important;
    min-height: 58px;
    border-radius: 4px !important;
    border: 1px solid rgba(255,255,255,.28) !important;
    background: rgba(22, 16, 14, 0.78) !important;
    color: #ffffff !important;
    padding: 16px 18px !important;
    font-size: 1.05rem !important;
    box-shadow: none !important;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

body.gluxflix-login input::placeholder,
body.gluxflix-login .form-control::placeholder {
    color: rgba(255,255,255,.62) !important;
}

body.gluxflix-login input:focus,
body.gluxflix-login .form-control:focus {
    background: rgba(28, 20, 18, 0.92) !important;
    border-color: rgba(220, 191, 141, 0.85) !important;
    color: #fff !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(220, 191, 141, 0.16) !important;
}

/* Separación vertical del formulario */
body.gluxflix-login .form-group,
body.gluxflix-login .mb-3,
body.gluxflix-login .mb-2 {
    margin-bottom: 1rem !important;
}

/* Botón principal */
body.gluxflix-login button[type="submit"],
body.gluxflix-login input[type="submit"],
body.gluxflix-login .btn-primary,
body.gluxflix-login #loginbtn {
    width: 100%;
    min-height: 52px;
    border: 0 !important;
    border-radius: 4px !important;
    background: #00A5E7 !important;
    color: #16110d !important;
    font-size: 1.05rem !important;
    font-weight: 900 !important;
    box-shadow: none !important;
    transition: transform .15s ease, filter .15s ease;
}

body.gluxflix-login button[type="submit"]:hover,
body.gluxflix-login input[type="submit"]:hover,
body.gluxflix-login .btn-primary:hover,
body.gluxflix-login #loginbtn:hover {
    filter: brightness(1.04);
    transform: translateY(-1px);
}

body.gluxflix-login button[type="submit"]:focus,
body.gluxflix-login input[type="submit"]:focus,
body.gluxflix-login .btn-primary:focus,
body.gluxflix-login #loginbtn:focus {
    box-shadow: 0 0 0 3px rgba(220, 191, 141, 0.18) !important;
}

/* Enlaces */
body.gluxflix-login a {
    color: rgba(255,255,255,.9) !important;
    text-decoration: none !important;
}

body.gluxflix-login a:hover {
    color: #ffffff !important;
    text-decoration: underline !important;
}

/* Recordarme / checkbox */
body.gluxflix-login .form-check,
body.gluxflix-login .rememberpass {
    color: rgba(255,255,255,.78) !important;
    margin-top: .35rem;
    margin-bottom: .8rem;
}

body.gluxflix-login .form-check-input {
    background-color: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.3);
}

/* Idioma y footer pequeño */
body.gluxflix-login .login-languagemenu,
body.gluxflix-login .login-language,
body.gluxflix-login .helplink,
body.gluxflix-login .forgetpass,
body.gluxflix-login .forgotpassword,
body.gluxflix-login .cookiesnotice,
body.gluxflix-login .login-footer,
body.gluxflix-login .potentialidplist,
body.gluxflix-login #cookies-notice,
body.gluxflix-login .logininfo,
body.gluxflix-login .instructions {
    color: rgba(255,255,255,.72) !important;
    font-size: .95rem;
}

/* Select de idioma */
body.gluxflix-login select {
    background: rgba(22, 16, 14, 0.78) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    border-radius: 4px !important;
    min-height: 42px;
    padding: 8px 12px;
}

/* Aviso de cookies */
body.gluxflix-login .btn-secondary,
body.gluxflix-login .btn-light,
body.gluxflix-login button[data-action="accept"],
body.gluxflix-login .cookiebutton {
    border-radius: 4px !important;
    background: rgba(255,255,255,.14) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    color: #fff !important;
}

/* Mensajes de error */
body.gluxflix-login .alert,
body.gluxflix-login .loginerrors,
body.gluxflix-login .error,
body.gluxflix-login .alert-danger {
    background: rgba(120, 18, 18, 0.35) !important;
    border: 1px solid rgba(255, 110, 110, 0.26) !important;
    color: #fff !important;
    border-radius: 8px !important;
}

/* Ocultar elementos visuales que rompen el mockup */
body.gluxflix-login .card-header,
body.gluxflix-login .login-divider,
body.gluxflix-login hr {
    display: none !important;
}

@media (max-width: 767px) {
    .gluxflix-login-shell {
        min-height: 100vh;
        padding: 18px 16px 32px;
        align-items: flex-start;
        justify-content: flex-start;
    }

    .gluxflix-login-box {
        width: 100%;
        max-width: 100%;
    }

    .gluxflix-login-logo-wrap {
        margin-bottom: 14px;
        padding-bottom: 14px;
    }

    .gluxflix-login-logo {
        max-width: 124px;
        max-height: 52px;
    }

    .gluxflix-login-content {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding-top: 18px;
    }

    body.gluxflix-login .loginform,
    body.gluxflix-login .login-form,
    body.gluxflix-login .card,
    body.gluxflix-login form,
    body.gluxflix-login .mform {
        width: 100% !important;
        max-width: 100% !important;
    }

    body.gluxflix-login h1,
    body.gluxflix-login h2.login-heading,
    body.gluxflix-login .login-heading {
        font-size: 2.35rem !important;
        line-height: .98 !important;
        margin-bottom: .95rem !important;
        max-width: 100% !important;
    }

    body.gluxflix-login .login-subtitle,
    body.gluxflix-login .subcontent,
    body.gluxflix-login .desc,
    body.gluxflix-login p,
    body.gluxflix-login .logininstructions {
        font-size: 1rem !important;
        line-height: 1.45 !important;
    }

    body.gluxflix-login input[type="text"],
    body.gluxflix-login input[type="password"],
    body.gluxflix-login input[type="email"],
    body.gluxflix-login input[type="tel"],
    body.gluxflix-login input[name="username"],
    body.gluxflix-login input[name="password"],
    body.gluxflix-login .form-control {
        width: 100% !important;
        min-height: 52px;
        font-size: 1rem !important;
        padding: 14px 16px !important;
    }

    body.gluxflix-login button[type="submit"],
    body.gluxflix-login input[type="submit"],
    body.gluxflix-login .btn-primary,
    body.gluxflix-login #loginbtn {
        width: 100% !important;
        min-height: 50px;
        font-size: 1rem !important;
    }

    body.gluxflix-login .form-group,
    body.gluxflix-login .mb-3,
    body.gluxflix-login .mb-2 {
        margin-bottom: .9rem !important;
    }

    body.gluxflix-login .forgetpass,
    body.gluxflix-login .forgotpassword,
    body.gluxflix-login .login-languagemenu,
    body.gluxflix-login .login-language,
    body.gluxflix-login .cookiesnotice,
    body.gluxflix-login .login-footer {
        font-size: .9rem !important;
    }

    body.gluxflix-login .btn-secondary,
    body.gluxflix-login .btn-light,
    body.gluxflix-login button[data-action="accept"],
    body.gluxflix-login .cookiebutton {
        min-height: 40px;
        font-size: .92rem !important;
    }
}
/* =========================================================
   NAVEGACIÓN SECUNDARIA MOODLE
   ========================================================= */

.glx-secondary-navigation-wrap {
    position: relative;
    z-index: 5;
}

.glx-secondary-navigation-wrap .secondary-navigation,
.glx-secondary-navigation-wrap nav.moremenu,
.glx-secondary-navigation-wrap .nav-tabs,
.glx-secondary-navigation-wrap .nav-pills {
    background: transparent !important;
    border: 0 !important;
}

.glx-secondary-navigation-wrap .nav-tabs .nav-link,
.glx-secondary-navigation-wrap .nav-pills .nav-link,
.glx-secondary-navigation-wrap .moremenu .nav-link,
.glx-secondary-navigation-wrap .moremenu .dropdown-item {
    color: #fff !important;
    border: 0 !important;
    background: transparent !important;
    font-weight: 700;
    border-radius: 999px;
    padding: .55rem .9rem;
}

.glx-secondary-navigation-wrap .nav-tabs .nav-link:hover,
.glx-secondary-navigation-wrap .nav-pills .nav-link:hover,
.glx-secondary-navigation-wrap .moremenu .nav-link:hover,
.glx-secondary-navigation-wrap .nav-tabs .nav-link.active,
.glx-secondary-navigation-wrap .nav-pills .nav-link.active,
.glx-secondary-navigation-wrap .moremenu .nav-link.active {
    background: rgba(255,255,255,.08) !important;
    color: var(--glx-primary) !important;
}

.glx-header-actions-wrap {
    position: relative;
    z-index: 5;
}
.header-maxwidth {
    margin: initial;
}
/* =========================================================
   LAYOUT PÚBLICO INTERNO GLUXFLIX
   ========================================================= */

body.pagelayout-gluxflix.gluxflix-body {
    background: #050505 !important;
}

body.pagelayout-gluxflix.gluxflix-body #page {
    background: transparent !important;
}

.glx-layout-shell {
    min-height: 100vh;
    padding-top: 78px;
    background: #050505;
}

.glx-layout-main {
    min-height: calc(100vh - 78px);
}

/* =========================================================
   PÁGINAS ESTÁTICAS / CATÁLOGO
   ========================================================= */

.glx-static-hero {
    position: relative;
    min-height: 44vh;
    display: flex;
    align-items: flex-end;
    background-color: #0a0a0a;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    overflow: hidden;
}

.glx-static-hero--image::before,
.glx-series-hero--image::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(0,0,0,.74) 0%, rgba(0,0,0,.48) 42%, rgba(0,0,0,.70) 100%),
        linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.82) 100%);
    pointer-events: none;
}

.glx-static-hero__overlay {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 6rem 2rem 3rem;
}

.glx-static-hero__content {
    max-width: 860px;
}

.glx-static-hero__intro,
.glx-static-hero__intro p {
    color: rgba(255,255,255,.86);
    font-size: 1.05rem;
    line-height: 1.7;
    margin: 0;
}

.glx-page--catalog {
    padding-top: 1.5rem;
}

.glx-static-content {
    max-width: 1100px;
}

.glx-panel--content {
    padding: 2rem;
}

.glx-panel--content,
.glx-panel--content p,
.glx-panel--content li,
.glx-panel--content div,
.glx-panel--content span,
.glx-panel--content h1,
.glx-panel--content h2,
.glx-panel--content h3,
.glx-panel--content h4,
.glx-panel--content h5,
.glx-panel--content h6 {
    color: #fff !important;
}

.glx-panel--content a {
    color: var(--glx-primary) !important;
}

.glx-panel--content ul,
.glx-panel--content ol {
    padding-left: 1.4rem;
}

.glx-panel--content img {
    max-width: 100%;
    height: auto;
    border-radius: 16px;
}

/* =========================================================
   AJUSTES SERIE
   ========================================================= */

.glx-series-hero {
    overflow: hidden;
}

.glx-series-hero__content {
    min-width: 0;
}

.glx-series-hero__poster {
    background-color: #101010;
}

@media (max-width: 991px) {
    .glx-layout-shell {
        padding-top: 72px;
    }

    .glx-static-hero {
        min-height: 36vh;
    }

    .glx-static-hero__overlay {
        padding: 5.25rem 1rem 2rem;
    }

    .glx-panel--content {
        padding: 1.25rem;
    }
}
/* =========================================================
   DETALLE DE SERIE / ESTILO NETFLIX
   ========================================================= */

.glx-series-detail {
    background: #050505;
    color: #fff;
    min-height: 100vh;
}

.glx-series-hero {
    position: relative;
    min-height: 88vh;
    background-color: #050505;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
}

.glx-series-hero--hasbackdrop {
    background-repeat: no-repeat;
}

.glx-series-hero__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.58) 34%, rgba(0,0,0,.28) 58%, rgba(0,0,0,.72) 100%),
        linear-gradient(180deg, rgba(0,0,0,.32) 0%, rgba(0,0,0,.10) 26%, rgba(0,0,0,.86) 100%);
    pointer-events: none;
}

.glx-series-hero__bottomfade {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 180px;
    background: linear-gradient(to bottom, rgba(0,0,0,0), #050505 90%);
    pointer-events: none;
}

.glx-series-hero__contentwrap {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 8.2rem 1.6rem 4.5rem;
}

.glx-series-hero__grid {
    display: grid;
    grid-template-columns: minmax(220px, 320px) minmax(0, 820px);
    gap: 2rem;
    align-items: end;
    max-width: 1320px;
}

.glx-series-hero__postercol {
    display: flex;
    align-items: end;
}

.glx-series-hero__poster {
    width: 100%;
    max-width: 320px;
    aspect-ratio: 2 / 3;
    border-radius: 24px;
    background-size: cover;
    background-position: center bottom;
    background-repeat: no-repeat;
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 28px 60px rgba(0,0,0,.45);
    background-color: #111;
}

.glx-series-hero__infocol {
    max-width: 860px;
    padding-bottom: .35rem;
}

.glx-series-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 1rem;
}

.glx-series-hero__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: .35rem .75rem;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.86);
    font-size: .84rem;
    font-weight: 800;
    letter-spacing: .03em;
}

.glx-series-hero__title {
    margin: 0 0 .8rem;
    color: #fff;
    font-size: clamp(3rem, 6vw, 5.4rem);
    line-height: .92;
    font-weight: 900;
    text-shadow: 0 8px 28px rgba(0,0,0,.28);
}

.glx-series-hero__season {
    margin-bottom: 1rem;
    color: var(--glx-primary);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.glx-series-hero__desc {
    margin: 0;
    max-width: 780px;
    color: rgba(255,255,255,.84);
    font-size: 1.08rem;
    line-height: 1.75;
    text-shadow: 0 4px 18px rgba(0,0,0,.18);
}

.glx-series-body {
    position: relative;
    z-index: 3;
    margin-top: -1.2rem;
    padding: 0 1.6rem 4rem;
    background: #050505;
}

.glx-strip--episodes {
    margin-bottom: 0;
}

.glx-episodes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1.15rem;
}

.glx-empty-state {
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    padding: 1.2rem 1.3rem;
    color: rgba(255,255,255,.74);
    background: rgba(255,255,255,.03);
}

@media (max-width: 991px) {
    .glx-series-hero {
        min-height: auto;
    }

    .glx-series-hero__contentwrap {
        padding: 7rem 1rem 3rem;
    }

    .glx-series-hero__grid {
        grid-template-columns: 1fr;
        gap: 1.35rem;
        align-items: start;
    }

    .glx-series-hero__postercol {
        align-items: start;
    }

    .glx-series-hero__poster {
        max-width: 220px;
    }

    .glx-series-hero__title {
        font-size: clamp(2.2rem, 10vw, 3.4rem);
    }

    .glx-series-hero__desc {
        font-size: 1rem;
        line-height: 1.65;
    }

    .glx-series-body {
        padding: 0 1rem 3rem;
    }

    .glx-episodes {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    }
}
/* =========================================================
   MI PROGRESO - estilo Netflix
   ========================================================= */

.glx-progress-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 1.15rem;
}

.glx-progress-card {
    min-width: 0;
}

.glx-progress-card__link {
    display: block;
    text-decoration: none !important;
    color: inherit !important;
}

.glx-progress-card__image {
    position: relative;
    aspect-ratio: 2 / 3;
    border-radius: 18px;
    overflow: hidden;
    background-size: cover;
    background-position: center center;
    background-color: #111;
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 16px 38px rgba(0,0,0,.28);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.glx-progress-card:hover .glx-progress-card__image {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 22px 54px rgba(0,0,0,.42);
    border-color: rgba(255,255,255,.16);
}

.glx-progress-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.80) 0%, rgba(0,0,0,.20) 45%, rgba(0,0,0,.05) 100%);
}

.glx-progress-card__status {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    text-align: center;
    font-weight: 900;
    font-size: 1rem;
    letter-spacing: .02em;
    padding: .55rem .75rem;
    text-transform: uppercase;
}

.glx-progress-card__status--pending {
    background: #d8dadd;
    color: #ffffff;
}

.glx-progress-card__status--done {
    background: #79d84a;
    color: #ffffff;
}

.glx-progress-card__body {
    padding-top: .75rem;
}

.glx-progress-card__title {
    margin: 0 0 .35rem;
    color: #fff;
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.25;
}

.glx-progress-card__meta {
    color: rgba(255,255,255,.72);
    font-size: .92rem;
    line-height: 1.4;
}

@media (max-width: 767px) {
    .glx-progress-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .9rem;
    }

    .glx-progress-card__title {
        font-size: .95rem;
    }

    .glx-progress-card__status {
        font-size: .9rem;
        padding: .45rem .55rem;
    }
}
#page-local-gluxflix-gamification #page, #page-local-gluxflix-catalog  #page,
#page-local-gluxflix-page  #page, #page-course-index-category #page, #page-local-gluxflix-myprogress #page, #page-local-gluxflix-series #page, #page-local-gluxflix-player #page {
    margin-top: auto;
}
/* =========================================================
   FILA SERIES DISPONIBLES - HOME
   ========================================================= */

.glx-strip--series {
    margin-top: .4rem;
}

.glx-series-row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1rem;
}

.glx-series-card {
    min-width: 0;
}

.glx-series-card__link {
    display: block;
    text-decoration: none !important;
    color: inherit !important;
}

.glx-series-card__thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 18px;
    overflow: hidden;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-color: #101010;
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 16px 38px rgba(0,0,0,.24);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.glx-series-card:hover .glx-series-card__thumb {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 22px 54px rgba(0,0,0,.42);
    border-color: rgba(255,255,255,.14);
}

.glx-series-card__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.24) 45%, rgba(0,0,0,.06) 100%);
}

.glx-series-card__content {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 2;
}

.glx-series-card__meta {
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--glx-primary);
    margin-bottom: .35rem;
}

.glx-series-card__title {
    font-size: 1.18rem;
    font-weight: 800;
    margin: 0;
    color: #fff;
    line-height: 1.2;
    text-shadow: 0 8px 20px rgba(0,0,0,.35);
}

@media (max-width: 991px) {
    .glx-series-row {
        grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    }

    .glx-series-card__title {
        font-size: 1rem;
    }
}
.glx-panels--calendar {
    grid-template-columns: 1.25fr 1fr 1fr;
}

.glx-panel--featured {
    position: relative;
    overflow: hidden;
    border-color: rgba(1, 158, 227, .34) !important;
    background:
        radial-gradient(circle at 20% 18%, rgba(1, 158, 227, .18), transparent 34%),
        linear-gradient(135deg, rgba(1, 158, 227, .10), rgba(255, 255, 255, .045)),
        rgba(13, 17, 23, .88) !important;
}

.glx-panel--featured::after {
    content: "";
    position: absolute;
    right: -70px;
    top: -70px;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: rgba(1, 158, 227, .18);
    filter: blur(2px);
    pointer-events: none;
}

.glx-panel--featured h3 {
    font-size: 1.55rem;
}

@media (max-width: 1100px) {
    .glx-panels--calendar {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   HERO ADMINISTRABLE / CARRUSEL PRINCIPAL
   Mantiene visual Gluxflix tipo streaming
   ========================================================= */

.glx-hero-carousel {
    position: relative;
    min-height: 88vh;
    background: #050505;
    overflow: hidden;
}

.glx-hero-carousel__stage {
    position: relative;
    min-height: 88vh;
}

.glx-hero-carousel__slide {
    position: absolute;
    inset: 0;
    width: 100%;
    min-height: 88vh;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(1.025);
    transition:
        opacity .55s ease,
        visibility .55s ease,
        transform 1.1s ease;
}

.glx-hero-carousel__slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1);
    z-index: 2;
}

.glx-hero-carousel__arrow {
    position: absolute;
    z-index: 8;
    top: 50%;
    transform: translateY(-50%);
    width: 46px;
    height: 78px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: rgba(0, 0, 0, .34);
    color: #fff;
    font-size: 3rem;
    line-height: 1;
    font-weight: 300;
    cursor: pointer;
    backdrop-filter: blur(12px);
    transition:
        background .18s ease,
        border-color .18s ease,
        transform .18s ease,
        opacity .18s ease;
}

.glx-hero-carousel__arrow:hover,
.glx-hero-carousel__arrow:focus {
    background: rgba(0, 165, 231, .22);
    border-color: rgba(0, 165, 231, .5);
    outline: none;
    transform: translateY(-50%) scale(1.04);
}

.glx-hero-carousel__arrow--prev {
    left: 1.2rem;
}

.glx-hero-carousel__arrow--next {
    right: 1.2rem;
}

.glx-hero-carousel__dots {
    position: absolute;
    z-index: 8;
    left: 2rem;
    bottom: 2.25rem;
    display: flex;
    align-items: center;
    gap: .55rem;
}

.glx-hero-carousel__dot {
    width: 2.2rem;
    height: .32rem;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .32);
    cursor: pointer;
    padding: 0;
    transition:
        width .18s ease,
        background .18s ease,
        opacity .18s ease;
}

.glx-hero-carousel__dot.is-active {
    width: 3.4rem;
    background: var(--glx-primary);
}

.glx-hero-carousel__dot:hover,
.glx-hero-carousel__dot:focus {
    background: rgba(255, 255, 255, .72);
    outline: none;
}

.glx-hero-carousel .glx-hero__inner {
    padding-left: 4.8rem;
}

@media (max-width: 991px) {
    .glx-hero-carousel,
    .glx-hero-carousel__stage,
    .glx-hero-carousel__slide {
        min-height: 72vh;
    }

    .glx-hero-carousel .glx-hero__inner {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .glx-hero-carousel__arrow {
        display: none;
    }

    .glx-hero-carousel__dots {
        left: 1rem;
        right: 1rem;
        bottom: 1.25rem;
    }

    .glx-hero-carousel__dot {
        flex: 1;
        width: auto;
        max-width: 3rem;
    }

    .glx-hero-carousel__dot.is-active {
        width: auto;
        max-width: 4rem;
    }
}
/* =========================================================
   ADMINISTRACIÓN GLUXFLIX / MOODLE BOOST
   Las páginas administrativas deben conservar look claro
   ========================================================= */

body.gluxflix-body.pagelayout-admin {
    background: #f8f9fa !important;
    color: #212529 !important;
}

body.gluxflix-body.pagelayout-admin #page-wrapper,
body.gluxflix-body.pagelayout-admin #page,
body.gluxflix-body.pagelayout-admin #page-content,
body.gluxflix-body.pagelayout-admin #region-main-box,
body.gluxflix-body.pagelayout-admin #region-main {
    background: #ffffff !important;
    color: #212529 !important;
}

body.gluxflix-body.pagelayout-admin #region-main {
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 1rem !important;
}

body.gluxflix-body.pagelayout-admin h1,
body.gluxflix-body.pagelayout-admin h2,
body.gluxflix-body.pagelayout-admin h3,
body.gluxflix-body.pagelayout-admin h4,
body.gluxflix-body.pagelayout-admin h5,
body.gluxflix-body.pagelayout-admin h6,
body.gluxflix-body.pagelayout-admin p,
body.gluxflix-body.pagelayout-admin div,
body.gluxflix-body.pagelayout-admin span,
body.gluxflix-body.pagelayout-admin label,
body.gluxflix-body.pagelayout-admin small,
body.gluxflix-body.pagelayout-admin strong,
body.gluxflix-body.pagelayout-admin li,
body.gluxflix-body.pagelayout-admin td,
body.gluxflix-body.pagelayout-admin th {
    color: #212529 !important;
}

body.gluxflix-body.pagelayout-admin a {
    color: #0d6efd !important;
}

body.gluxflix-body.pagelayout-admin .btn-primary {
    color: #ffffff !important;
}

body.gluxflix-body.pagelayout-admin .btn-secondary,
body.gluxflix-body.pagelayout-admin .btn-light {
    color: #212529 !important;
}

body.gluxflix-body.pagelayout-admin .card,
body.gluxflix-body.pagelayout-admin .modal-content,
body.gluxflix-body.pagelayout-admin .dropdown-menu,
body.gluxflix-body.pagelayout-admin .popover,
body.gluxflix-body.pagelayout-admin .filemanager,
body.gluxflix-body.pagelayout-admin .fp-navbar,
body.gluxflix-body.pagelayout-admin .fp-content,
body.gluxflix-body.pagelayout-admin .file-picker,
body.gluxflix-body.pagelayout-admin .moodle-dialogue-base .moodle-dialogue,
body.gluxflix-body.pagelayout-admin .moodle-dialogue-base .moodle-dialogue-wrap {
    background: #ffffff !important;
    color: #212529 !important;
}

body.gluxflix-body.pagelayout-admin input,
body.gluxflix-body.pagelayout-admin select,
body.gluxflix-body.pagelayout-admin textarea,
body.gluxflix-body.pagelayout-admin .form-control,
body.gluxflix-body.pagelayout-admin .custom-select {
    background: #ffffff !important;
    color: #212529 !important;
    border-color: #ced4da !important;
}

body.gluxflix-body.pagelayout-admin input::placeholder,
body.gluxflix-body.pagelayout-admin textarea::placeholder {
    color: #6c757d !important;
}

body.gluxflix-body.pagelayout-admin .form-control:focus,
body.gluxflix-body.pagelayout-admin .custom-select:focus {
    background: #ffffff !important;
    color: #212529 !important;
    border-color: #86b7fe !important;
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25) !important;
}

body.gluxflix-body.pagelayout-admin table,
body.gluxflix-body.pagelayout-admin .table {
    color: #212529 !important;
    background: #ffffff !important;
}

body.gluxflix-body.pagelayout-admin .text-muted,
body.gluxflix-body.pagelayout-admin .text-secondary {
    color: #6c757d !important;
}

body.gluxflix-body.pagelayout-admin .nav-tabs .nav-link,
body.gluxflix-body.pagelayout-admin .nav-pills .nav-link,
body.gluxflix-body.pagelayout-admin .moremenu .nav-link {
    color: #0d6efd !important;
}

body.gluxflix-body.pagelayout-admin .nav-tabs .nav-link.active,
body.gluxflix-body.pagelayout-admin .nav-pills .nav-link.active,
body.gluxflix-body.pagelayout-admin .moremenu .nav-link.active {
    color: #212529 !important;
    background: #ffffff !important;
}

body.gluxflix-body.pagelayout-admin .breadcrumb,
body.gluxflix-body.pagelayout-admin .breadcrumb-item,
body.gluxflix-body.pagelayout-admin .breadcrumb-item a {
    color: #6c757d !important;
}

body.gluxflix-body.pagelayout-admin .page-header-headings h1 {
    color: #212529 !important;
}

body.gluxflix-body.pagelayout-admin .alert {
    color: #212529 !important;
}

/* Evita que elementos del filemanager queden montados sobre el formulario */
body.gluxflix-body.pagelayout-admin .filemanager-container,
body.gluxflix-body.pagelayout-admin .filepicker-filelist,
body.gluxflix-body.pagelayout-admin .fp-restrictions {
    color: #212529 !important;
    background: #ffffff !important;
}

/* Footer y ayudas de Moodle en administración */
body.gluxflix-body.pagelayout-admin #page-footer,
body.gluxflix-body.pagelayout-admin #page-footer a,
body.gluxflix-body.pagelayout-admin .helplink,
body.gluxflix-body.pagelayout-admin .supportemail {
    color: #0d6efd !important;
}

.glx-nav__dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.glx-nav__dropdown-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.glx-nav__chevron {
    font-size: .72rem;
    opacity: .72;
    transform: translateY(1px);
}

.glx-nav__dropdown-menu {
    position: absolute;
    top: calc(100% + 14px);
    left: 0;
    min-width: 240px;
    padding: 10px;
    border-radius: 16px;
    background: rgba(6, 8, 12, .96);
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .48);
    backdrop-filter: blur(18px);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .16s ease, visibility .16s ease, transform .16s ease;
    z-index: 10020;
}

.glx-nav__dropdown:hover .glx-nav__dropdown-menu,
.glx-nav__dropdown:focus-within .glx-nav__dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.glx-nav__dropdown-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -16px;
    height: 16px;
}

.glx-nav__dropdown-menu a {
    display: block;
    padding: 11px 13px;
    border-radius: 11px;
    color: rgba(255, 255, 255, .82);
    text-decoration: none;
    font-weight: 800;
    white-space: nowrap;
}

.glx-nav__dropdown-menu a:hover,
.glx-nav__dropdown-menu a.is-active {
    color: #fff;
    background: rgba(1, 158, 227, .18);
}

@media (max-width: 900px) {
    .glx-nav__dropdown-menu {
        left: auto;
        right: 0;
    }
}

/* =========================================================
   Menú administrable Gluxflix - Dropdown correcto
   ========================================================= */

.glx-nav,
.glx-nav__left,
.glx-nav__menu {
    overflow: visible !important;
}

.glx-nav {
    z-index: 10000;
}

.glx-nav__menu--desktop {
    display: flex;
    align-items: center;
    gap: 26px;
}

.glx-nav__dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.glx-nav__dropdown-trigger {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    height: 100%;
}

.glx-nav__chevron {
    font-size: .75rem;
    line-height: 1;
    opacity: .85;
}

.glx-nav__dropdown-menu {
    position: absolute !important;
    top: calc(100% + 14px) !important;
    left: 0 !important;
    min-width: 230px;
    padding: 10px;
    border-radius: 14px;
    background: rgba(5, 8, 14, .98);
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .55);
    backdrop-filter: blur(18px);
    z-index: 10050;

    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(8px);
    transition: opacity .16s ease, visibility .16s ease, transform .16s ease;
}

.glx-nav__dropdown:hover .glx-nav__dropdown-menu,
.glx-nav__dropdown:focus-within .glx-nav__dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0);
}

.glx-nav__dropdown-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -16px;
    height: 16px;
}

.glx-nav__dropdown-menu a {
    display: block !important;
    padding: 11px 13px !important;
    margin: 0 !important;
    border-radius: 10px;
    color: rgba(255, 255, 255, .82) !important;
    text-decoration: none !important;
    font-size: .94rem;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}

.glx-nav__dropdown-menu a:hover,
.glx-nav__dropdown-menu a.is-active {
    color: #fff !important;
    background: rgba(1, 158, 227, .18);
}

.glx-nav__dropdown-menu a + a {
    margin-top: 3px !important;
}

/* =========================================================
   Navbar Gluxflix - Mejora móvil
   ========================================================= */

@media (max-width: 768px) {
    .glx-nav {
        min-height: auto !important;
        padding: 10px 12px 12px !important;
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        gap: 8px 10px !important;
        align-items: center !important;
        background: rgba(0, 0, 0, .94) !important;
    }

    .glx-nav__left {
        display: contents !important;
    }

    .glx-brand {
        grid-column: 1 / 2 !important;
        display: inline-flex !important;
        align-items: center !important;
        min-width: 0 !important;
    }

    .glx-brand__logo {
        width: 64px !important;
        max-height: 44px !important;
        object-fit: contain !important;
    }

    .glx-nav__right {
        grid-column: 2 / 3 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 8px !important;
    }

    .glx-nav__right .glx-nav__user,
    .glx-nav__right .glx-nav__logout {
        display: none !important;
    }

    .glx-nav__right .glx-nav__iconbtn {
        min-height: 34px !important;
        padding: 0 13px !important;
        border-radius: 999px !important;
        font-size: .78rem !important;
        font-weight: 900 !important;
        white-space: nowrap !important;
    }

    .glx-nav__menu--desktop {
        grid-column: 1 / -1 !important;
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        padding: 4px 0 2px !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .glx-nav__menu--desktop::-webkit-scrollbar {
        display: none !important;
    }

    .glx-nav__menu--desktop > a,
    .glx-nav__dropdown-trigger {
        flex: 0 0 auto !important;
        min-height: 34px !important;
        padding: 0 12px !important;
        border-radius: 999px !important;
        background: rgba(255, 255, 255, .07) !important;
        border: 1px solid rgba(255, 255, 255, .10) !important;
        color: rgba(255, 255, 255, .9) !important;
        font-size: .78rem !important;
        font-weight: 850 !important;
        line-height: 1.1 !important;
        text-decoration: none !important;
        white-space: nowrap !important;
    }

    .glx-nav__menu--desktop > a.is-active,
    .glx-nav__dropdown-trigger.is-active {
        color: #fff !important;
        background: rgba(1, 158, 227, .22) !important;
        border-color: rgba(1, 158, 227, .42) !important;
    }

    .glx-nav__dropdown {
        flex: 0 0 auto !important;
        position: relative !important;
    }

    .glx-nav__dropdown-menu {
        position: fixed !important;
        top: 104px !important;
        left: 12px !important;
        right: 12px !important;
        min-width: 0 !important;
        width: auto !important;
        max-height: 50vh !important;
        overflow-y: auto !important;
        border-radius: 16px !important;
        z-index: 10080 !important;
    }

    .glx-nav__dropdown-menu a {
        white-space: normal !important;
        font-size: .9rem !important;
        padding: 13px 14px !important;
    }
}

@media (max-width: 768px) {
    .glx-hero,
    .glx-hero-carousel,
    .glx-hero-carousel__slide {
        min-height: 620px !important;
    }

    .glx-hero__inner {
        padding-top: 170px !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .glx-hero__meta {
        font-size: .68rem !important;
        letter-spacing: .14em !important;
    }

    .glx-hero__title {
        font-size: clamp(2.2rem, 13vw, 3.4rem) !important;
        line-height: .95 !important;
        max-width: 92vw !important;
    }

    .glx-hero__subtitle {
        max-width: 88vw !important;
        font-size: .95rem !important;
    }

    .glx-hero__actions {
        gap: 10px !important;
    }

    .glx-btn {
        min-height: 40px !important;
        padding: 0 17px !important;
        font-size: .82rem !important;
    }
}

/* =========================================================
   Navbar Gluxflix - Mobile final override
   ========================================================= */

@media (max-width: 900px) {
    body.gluxflix-body,
    body.pagelayout-gluxflix {
        overflow-x: hidden !important;
    }

    .glx-nav {
        position: relative !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: auto !important;
        height: auto !important;
        padding: 10px 12px 12px !important;
        display: grid !important;
        grid-template-columns: auto 1fr !important;
        grid-template-areas:
            "brand right"
            "menu menu" !important;
        gap: 8px 10px !important;
        align-items: center !important;
        background: rgba(0, 0, 0, .96) !important;
        box-sizing: border-box !important;
        overflow: visible !important;
        z-index: 10000 !important;
    }

    .glx-nav__left {
        display: contents !important;
    }

    .glx-brand {
        grid-area: brand !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: 82px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    .glx-brand__logo {
        width: 58px !important;
        max-width: 58px !important;
        height: auto !important;
        max-height: 38px !important;
        object-fit: contain !important;
        display: block !important;
    }

    .glx-nav__right {
        grid-area: right !important;
        display: flex !important;
        justify-content: flex-end !important;
        align-items: center !important;
        gap: 8px !important;
        min-width: 0 !important;
    }

    .glx-nav__user,
    .glx-nav__logout {
        display: none !important;
    }

    .glx-nav__iconbtn {
        min-height: 32px !important;
        height: 32px !important;
        padding: 0 13px !important;
        border-radius: 999px !important;
        font-size: .76rem !important;
        font-weight: 900 !important;
        line-height: 32px !important;
        white-space: nowrap !important;
    }

    .glx-nav__menu,
    .glx-nav__menu--desktop {
        grid-area: menu !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 3px 0 1px !important;
        margin: 0 !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .glx-nav__menu::-webkit-scrollbar,
    .glx-nav__menu--desktop::-webkit-scrollbar {
        display: none !important;
    }

    .glx-nav__menu > a,
    .glx-nav__dropdown-trigger {
        flex: 0 0 auto !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: auto !important;
        max-width: none !important;
        min-height: 32px !important;
        height: 32px !important;
        padding: 0 11px !important;
        margin: 0 !important;
        border-radius: 999px !important;
        background: rgba(255, 255, 255, .075) !important;
        border: 1px solid rgba(255, 255, 255, .12) !important;
        color: rgba(255, 255, 255, .92) !important;
        font-size: .74rem !important;
        font-weight: 850 !important;
        line-height: 1 !important;
        text-decoration: none !important;
        white-space: nowrap !important;
    }

    .glx-nav__menu > a.is-active,
    .glx-nav__dropdown-trigger.is-active {
        background: rgba(1, 158, 227, .25) !important;
        border-color: rgba(1, 158, 227, .48) !important;
        color: #fff !important;
    }

    .glx-nav__dropdown {
        flex: 0 0 auto !important;
        display: inline-flex !important;
        position: relative !important;
    }

    .glx-nav__chevron {
        font-size: .66rem !important;
        margin-left: 3px !important;
    }

    .glx-nav__dropdown-menu {
        position: fixed !important;
        top: 90px !important;
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        padding: 10px !important;
        border-radius: 16px !important;
        background: rgba(5, 8, 14, .98) !important;
        border: 1px solid rgba(255, 255, 255, .13) !important;
        box-shadow: 0 24px 70px rgba(0, 0, 0, .58) !important;
        z-index: 10080 !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateY(8px) !important;
    }

    .glx-nav__dropdown:hover .glx-nav__dropdown-menu,
    .glx-nav__dropdown:focus-within .glx-nav__dropdown-menu {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateY(0) !important;
    }

    .glx-nav__dropdown-menu a {
        display: block !important;
        width: 100% !important;
        padding: 13px 14px !important;
        border-radius: 11px !important;
        color: rgba(255, 255, 255, .86) !important;
        font-size: .9rem !important;
        font-weight: 850 !important;
        text-decoration: none !important;
        white-space: normal !important;
    }

    .glx-nav__dropdown-menu a:hover,
    .glx-nav__dropdown-menu a.is-active {
        color: #fff !important;
        background: rgba(1, 158, 227, .18) !important;
    }
}

/* =========================================================
   Navbar Gluxflix - Mobile/tablet real override
   Corrige vista iPhone cuando el viewport se comporta como desktop
   ========================================================= */

@media (max-width: 1200px) {
    body.gluxflix-body {
        overflow-x: hidden !important;
    }

    .glx-nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        height: auto !important;
        min-height: 92px !important;
        padding: 10px 12px 11px !important;
        display: grid !important;
        grid-template-columns: auto 1fr !important;
        grid-template-areas:
            "brand right"
            "menu menu" !important;
        gap: 8px 10px !important;
        align-items: center !important;
        background: rgba(0, 0, 0, .96) !important;
        backdrop-filter: blur(12px) !important;
        box-sizing: border-box !important;
        overflow: visible !important;
        z-index: 10000 !important;
    }

    .glx-nav__left {
        display: contents !important;
    }

    .glx-brand {
        grid-area: brand !important;
        display: inline-flex !important;
        align-items: center !important;
        width: auto !important;
        max-width: 78px !important;
        min-width: 0 !important;
    }

    .glx-brand__logo {
        width: 58px !important;
        max-width: 58px !important;
        height: auto !important;
        max-height: 38px !important;
        object-fit: contain !important;
    }

    .glx-nav__right {
        grid-area: right !important;
        display: flex !important;
        justify-content: flex-end !important;
        align-items: center !important;
        gap: 8px !important;
        min-width: 0 !important;
    }

    .glx-nav__user,
    .glx-nav__logout {
        display: none !important;
    }

    .glx-nav__iconbtn {
        height: 32px !important;
        min-height: 32px !important;
        padding: 0 14px !important;
        border-radius: 999px !important;
        font-size: .76rem !important;
        font-weight: 900 !important;
        line-height: 32px !important;
        white-space: nowrap !important;
    }

    .glx-nav__menu,
    .glx-nav__menu--desktop {
        grid-area: menu !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 2px 0 0 !important;
        margin: 0 !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .glx-nav__menu::-webkit-scrollbar,
    .glx-nav__menu--desktop::-webkit-scrollbar {
        display: none !important;
    }

    .glx-nav__menu > a,
    .glx-nav__dropdown-trigger {
        flex: 0 0 auto !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: 32px !important;
        min-height: 32px !important;
        padding: 0 12px !important;
        margin: 0 !important;
        border-radius: 999px !important;
        background: rgba(255, 255, 255, .075) !important;
        border: 1px solid rgba(255, 255, 255, .12) !important;
        color: rgba(255, 255, 255, .92) !important;
        font-size: .75rem !important;
        font-weight: 850 !important;
        line-height: 1 !important;
        text-decoration: none !important;
        white-space: nowrap !important;
        opacity: 1 !important;
    }

    .glx-nav__menu > a:hover,
    .glx-nav__menu > a.is-active,
    .glx-nav__dropdown-trigger:hover,
    .glx-nav__dropdown-trigger.is-active {
        background: rgba(1, 158, 227, .25) !important;
        border-color: rgba(1, 158, 227, .48) !important;
        color: #fff !important;
    }

    .glx-nav__dropdown {
        flex: 0 0 auto !important;
        display: inline-flex !important;
        position: relative !important;
    }

    .glx-nav__chevron {
        font-size: .65rem !important;
        margin-left: 3px !important;
        opacity: .9 !important;
    }

    .glx-nav__dropdown-menu {
        position: fixed !important;
        top: 92px !important;
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        max-height: 52vh !important;
        overflow-y: auto !important;
        padding: 10px !important;
        border-radius: 16px !important;
        background: rgba(5, 8, 14, .98) !important;
        border: 1px solid rgba(255, 255, 255, .13) !important;
        box-shadow: 0 24px 70px rgba(0, 0, 0, .58) !important;
        z-index: 10080 !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateY(8px) !important;
    }

    .glx-nav__dropdown:hover .glx-nav__dropdown-menu,
    .glx-nav__dropdown:focus-within .glx-nav__dropdown-menu {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateY(0) !important;
    }

    .glx-nav__dropdown-menu a {
        display: block !important;
        width: 100% !important;
        padding: 13px 14px !important;
        border-radius: 11px !important;
        color: rgba(255, 255, 255, .86) !important;
        font-size: .9rem !important;
        font-weight: 850 !important;
        text-decoration: none !important;
        white-space: normal !important;
    }

    .glx-nav__dropdown-menu a:hover,
    .glx-nav__dropdown-menu a.is-active {
        color: #fff !important;
        background: rgba(1, 158, 227, .18) !important;
    }

    .glx-hero,
    .glx-hero-carousel,
    .glx-hero-carousel__stage,
    .glx-hero-carousel__slide {
        min-height: 680px !important;
    }

    .glx-hero__inner {
        padding-top: 155px !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
        padding-bottom: 58px !important;
    }

    .glx-hero__title {
        font-size: clamp(2.35rem, 12vw, 3.7rem) !important;
        line-height: .94 !important;
        max-width: 92vw !important;
    }

    .glx-hero__subtitle {
        max-width: 88vw !important;
        font-size: .92rem !important;
        line-height: 1.45 !important;
    }

    .glx-btn {
        min-height: 40px !important;
        padding: 0 17px !important;
        font-size: .82rem !important;
    }

    .glx-home__content {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
}

/* =========================================================
   Navbar Gluxflix - hamburguesa móvil
   ========================================================= */

.glx-nav {
    display: block !important;
}

.glx-nav__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.glx-nav__toggle,
.glx-nav__burger,
.glx-nav__mobilepanel {
    display: none;
}

.glx-nav__right--desktop {
    display: flex;
    align-items: center;
    gap: .85rem;
}

@media (max-width: 1200px) {
    .glx-nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        padding: 10px 12px !important;
        background: rgba(0, 0, 0, .96) !important;
        backdrop-filter: blur(12px) !important;
        z-index: 10000 !important;
    }

    .glx-nav__top {
        min-height: 44px;
    }

    .glx-nav__menu--desktop,
    .glx-nav__right--desktop {
        display: none !important;
    }

    .glx-nav__left {
        display: flex !important;
        align-items: center !important;
        gap: 0 !important;
    }

    .glx-brand {
        display: inline-flex !important;
        align-items: center !important;
        max-width: 84px !important;
    }

    .glx-brand__logo {
        width: 58px !important;
        max-width: 58px !important;
        max-height: 38px !important;
        height: auto !important;
        object-fit: contain !important;
    }

    .glx-nav__toggle {
        display: none !important;
    }

    .glx-nav__burger {
        display: inline-flex !important;
        width: 42px;
        height: 42px;
        border-radius: 12px;
        border: 1px solid rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 4px;
        cursor: pointer;
        margin-left: auto;
    }

    .glx-nav__burger span {
        display: block;
        width: 18px;
        height: 2px;
        border-radius: 999px;
        background: #fff;
        transition: transform .18s ease, opacity .18s ease;
    }

    .glx-nav__toggle:checked + .glx-nav__burger span:nth-child(1) {
        transform: translateY(6px) rotate(45deg);
    }

    .glx-nav__toggle:checked + .glx-nav__burger span:nth-child(2) {
        opacity: 0;
    }

    .glx-nav__toggle:checked + .glx-nav__burger span:nth-child(3) {
        transform: translateY(-6px) rotate(-45deg);
    }

    .glx-nav__mobilepanel {
        display: none;
        margin-top: 10px;
        padding: 12px;
        border-radius: 18px;
        background: rgba(8, 10, 16, .98);
        border: 1px solid rgba(255,255,255,.10);
        box-shadow: 0 18px 48px rgba(0,0,0,.45);
    }

    .glx-nav__toggle:checked ~ .glx-nav__mobilepanel {
        display: block !important;
    }

    .glx-nav__mobileactions {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 12px;
        padding-bottom: 12px;
        border-bottom: 1px solid rgba(255,255,255,.08);
    }

    .glx-nav__mobilepill {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 34px;
        padding: 0 12px;
        border-radius: 999px;
        background: rgba(255,255,255,.07);
        border: 1px solid rgba(255,255,255,.10);
        color: #fff !important;
        text-decoration: none !important;
        font-size: .8rem;
        font-weight: 800;
        white-space: nowrap;
    }

    .glx-nav__menu--mobile {
        display: flex !important;
        flex-direction: column !important;
        gap: 6px !important;
    }

    .glx-nav__mobilelink {
        display: block;
        width: 100%;
        padding: 12px 14px;
        border-radius: 12px;
        background: rgba(255,255,255,.04);
        color: rgba(255,255,255,.92) !important;
        text-decoration: none !important;
        font-size: .94rem;
        font-weight: 800;
        line-height: 1.2;
    }

    .glx-nav__mobilelink:hover,
    .glx-nav__mobilelink.is-active {
        background: rgba(1,158,227,.16);
        color: #fff !important;
    }

    .glx-nav__mobilegroup {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .glx-nav__mobilesubmenu {
        display: flex;
        flex-direction: column;
        gap: 6px;
        padding-left: 14px;
    }

    .glx-nav__mobilesubmenu a {
        display: block;
        padding: 10px 12px;
        border-radius: 10px;
        background: rgba(255,255,255,.03);
        color: rgba(255,255,255,.82) !important;
        text-decoration: none !important;
        font-size: .88rem;
        font-weight: 700;
    }

    .glx-nav__mobilesubmenu a:hover,
    .glx-nav__mobilesubmenu a.is-active {
        background: rgba(1,158,227,.14);
        color: #fff !important;
    }

    .glx-layout-shell {
        padding-top: 74px !important;
    }

    .glx-hero__inner {
        padding-top: 120px !important;
    }
}

/* =========================================================
   Fix hamburguesa móvil - input fuera del top
   ========================================================= */

@media (max-width: 1200px) {
    .glx-nav__toggle:checked ~ .glx-nav__mobilepanel {
        display: block !important;
    }

    .glx-nav__toggle:checked ~ .glx-nav__top .glx-nav__burger span:nth-child(1) {
        transform: translateY(6px) rotate(45deg) !important;
    }

    .glx-nav__toggle:checked ~ .glx-nav__top .glx-nav__burger span:nth-child(2) {
        opacity: 0 !important;
    }

    .glx-nav__toggle:checked ~ .glx-nav__top .glx-nav__burger span:nth-child(3) {
        transform: translateY(-6px) rotate(-45deg) !important;
    }

    .glx-nav__mobilepanel {
        position: absolute !important;
        top: calc(100% + 8px) !important;
        left: 12px !important;
        right: 12px !important;
        z-index: 10090 !important;
        max-height: calc(100vh - 92px) !important;
        overflow-y: auto !important;
    }
}

/* =========================================================
   Hamburguesa móvil - visual premium final
   ========================================================= */

@media (max-width: 1200px) {
    .glx-nav__mobilepanel {
        top: calc(100% + 6px) !important;
        left: 10px !important;
        right: 10px !important;
        padding: 14px !important;
        border-radius: 20px !important;
        background:
            radial-gradient(circle at 20% 0%, rgba(0, 165, 231, .18), transparent 34%),
            linear-gradient(180deg, rgba(18, 22, 30, .98), rgba(5, 7, 11, .98)) !important;
        border: 1px solid rgba(255, 255, 255, .13) !important;
        box-shadow:
            0 24px 70px rgba(0, 0, 0, .58),
            inset 0 0 0 1px rgba(255, 255, 255, .035) !important;
        backdrop-filter: blur(18px) !important;
    }

    .glx-nav__mobileactions {
        display: grid !important;
        grid-template-columns: 1fr 1fr 1fr !important;
        gap: 8px !important;
        margin-bottom: 14px !important;
        padding-bottom: 14px !important;
        border-bottom: 1px solid rgba(255, 255, 255, .10) !important;
    }

    .glx-nav__mobilepill {
        min-height: 36px !important;
        padding: 0 8px !important;
        border-radius: 999px !important;
        background: rgba(255, 255, 255, .075) !important;
        border: 1px solid rgba(255, 255, 255, .12) !important;
        color: rgba(255, 255, 255, .92) !important;
        font-size: .72rem !important;
        font-weight: 900 !important;
        text-align: center !important;
    }

    .glx-nav__menu--mobile {
        gap: 8px !important;
    }

    .glx-nav__mobilelink {
        position: relative !important;
        padding: 14px 15px !important;
        border-radius: 14px !important;
        background: rgba(255, 255, 255, .065) !important;
        border: 1px solid rgba(255, 255, 255, .09) !important;
        color: #fff !important;
        font-size: .96rem !important;
        font-weight: 900 !important;
        text-align: left !important;
        letter-spacing: -.01em !important;
    }

    .glx-nav__mobilelink::after {
        content: "›";
        position: absolute;
        right: 14px;
        top: 50%;
        transform: translateY(-50%);
        color: rgba(255, 255, 255, .48);
        font-size: 1.15rem;
        font-weight: 700;
    }

    .glx-nav__mobilelink:hover,
    .glx-nav__mobilelink.is-active {
        background: rgba(0, 165, 231, .18) !important;
        border-color: rgba(0, 165, 231, .34) !important;
    }

    .glx-nav__mobilegroup {
        gap: 7px !important;
    }

    .glx-nav__mobilesubmenu {
        padding-left: 0 !important;
        margin-top: -2px !important;
        gap: 6px !important;
    }

    .glx-nav__mobilesubmenu a {
        margin-left: 16px !important;
        padding: 11px 13px !important;
        border-radius: 12px !important;
        background: rgba(0, 165, 231, .09) !important;
        border: 1px solid rgba(0, 165, 231, .16) !important;
        color: rgba(255, 255, 255, .86) !important;
        font-size: .88rem !important;
        font-weight: 800 !important;
        text-align: left !important;
    }

    .glx-nav__mobilesubmenu a::before {
        content: "";
        display: inline-block;
        width: 6px;
        height: 6px;
        margin-right: 8px;
        border-radius: 999px;
        background: var(--glx-primary);
        vertical-align: middle;
    }

    .glx-nav__burger {
        background: rgba(255, 255, 255, .075) !important;
        border-color: rgba(255, 255, 255, .16) !important;
        box-shadow: 0 10px 26px rgba(0, 0, 0, .24) !important;
    }
}
/* =========================================================
   Home panels - CTA visual
   ========================================================= */

.glx-panel--withcta {
    min-height: 190px;
    display: flex !important;
    flex-direction: column;
    justify-content: space-between;
    gap: 14px;
}

.glx-panel--withcta p {
    flex: 1;
}

.glx-panel__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-height: 38px;
    padding: 0 15px;
    border-radius: 999px;
    background: rgba(0, 165, 231, .16);
    border: 1px solid rgba(0, 165, 231, .32);
    color: #ffffff;
    font-size: .86rem;
    font-weight: 900;
    text-decoration: none;
}

.glx-panel:hover .glx-panel__cta {
    background: rgba(0, 165, 231, .28);
    border-color: rgba(0, 165, 231, .52);
}

.glx-panel--external {
    border-color: rgba(1, 158, 227, .24) !important;
}

.glx-panel--external .glx-panel__cta {
    color: rgba(255, 255, 255, .82);
}

/* =========================================================
   Página de matrícula Moodle - Estilo Gluxflix / Netflix
   Ruta: /enrol/index.php?id=...
   ========================================================= */

body#page-enrol-index {
    background: #050505 !important;
    color: #ffffff !important;
    font-family: var(--glx-font) !important;
    overflow-x: hidden !important;
}

/* Fondo general */
body#page-enrol-index #page-wrapper,
body#page-enrol-index #page,
body#page-enrol-index #page-content,
body#page-enrol-index #region-main-box,
body#page-enrol-index #topofscroll,
body#page-enrol-index .main-inner,
body#page-enrol-index .drawers {
    background: #050505 !important;
    color: #ffffff !important;
}

/* Navbar Boost en modo oscuro, por si esta página no usa glx-nav */
body#page-enrol-index .navbar.fixed-top {
    min-height: 72px;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, .92), rgba(0, 0, 0, .62), rgba(0, 0, 0, 0)) !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: blur(10px);
}

body#page-enrol-index .navbar.fixed-top a,
body#page-enrol-index .navbar.fixed-top .nav-link,
body#page-enrol-index .navbar.fixed-top .dropdown-toggle {
    color: rgba(255, 255, 255, .86) !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

body#page-enrol-index .navbar.fixed-top a:hover,
body#page-enrol-index .navbar.fixed-top .nav-link:hover {
    color: var(--glx-primary) !important;
}

body#page-enrol-index .navbar.fixed-top .logo {
    max-height: 52px;
    width: auto;
    object-fit: contain;
}

/* Oculta drawers laterales de Boost para que no dañen el look */
body#page-enrol-index .drawer,
body#page-enrol-index .drawer-toggles {
    display: none !important;
}

body#page-enrol-index .drawers {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Contenedor principal */
body#page-enrol-index .main-inner {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Oculta breadcrumbs para una experiencia más limpia */
body#page-enrol-index #page-navbar,
body#page-enrol-index .breadcrumb {
    display: none !important;
}

/* Header convertido en hero */
body#page-enrol-index #page-header {
    position: relative;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 520px;
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 12%, rgba(0, 165, 231, .18), transparent 34%),
        linear-gradient(180deg, #050505 0%, #050505 100%) !important;
}

/* El banner del curso se convierte en fondo hero */
body#page-enrol-index #course-header {
    width: 100% !important;
    position: absolute;
    inset: 0;
    z-index: 1;
}

body#page-enrol-index #course-header-banner {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 520px !important;
    border-radius: 0 !important;
    background-size: cover !important;
    background-position: center center !important;
    overflow: hidden !important;
}

body#page-enrol-index #course-header-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, .94) 0%, rgba(0, 0, 0, .74) 34%, rgba(0, 0, 0, .38) 62%, rgba(0, 0, 0, .80) 100%),
        linear-gradient(180deg, rgba(0, 0, 0, .46) 0%, rgba(0, 0, 0, .24) 32%, #050505 100%);
    z-index: 1;
    pointer-events: none;
}

body#page-enrol-index #course-header-banner::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 180px;
    background: linear-gradient(180deg, transparent 0%, #050505 88%);
    z-index: 2;
    pointer-events: none;
}

/* Texto del banner */
body#page-enrol-index #course-header-banner-text {
    position: absolute !important;
    z-index: 3 !important;
    left: max(2rem, calc((100vw - 1320px) / 2));
    bottom: 115px;
    max-width: 780px;
    color: #ffffff !important;
    font-size: clamp(3rem, 6vw, 6rem) !important;
    line-height: .92 !important;
    font-weight: 950 !important;
    letter-spacing: -.055em !important;
    text-shadow: 0 18px 48px rgba(0, 0, 0, .55);
}

body#page-enrol-index #course-header-banner_attribution {
    display: none !important;
}

/* H1 del curso en el header, se usa como apoyo visual */
body#page-enrol-index .page-context-header {
    position: relative;
    z-index: 4;
    width: min(1320px, calc(100% - 64px));
    margin: 0 auto;
    padding-top: 230px;
}

body#page-enrol-index .page-context-header h1,
body#page-enrol-index .page-context-header .h2 {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 14px;
    border-radius: 999px;
    background: rgba(0, 165, 231, .15);
    border: 1px solid rgba(0, 165, 231, .32);
    color: #dff7ff !important;
    font-size: .86rem !important;
    font-weight: 950 !important;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* Región principal encima del hero */
body#page-enrol-index #page-content {
    position: relative;
    z-index: 5;
    width: min(1320px, calc(100% - 64px));
    margin: -100px auto 0 !important;
    padding: 0 0 80px !important;
}

body#page-enrol-index #region-main {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    color: #ffffff !important;
}

/* Oculta título nativo si duplica demasiado */
body#page-enrol-index #region-main h2:first-of-type {
    margin: 0 0 18px !important;
    color: #ffffff !important;
    font-size: clamp(2rem, 3vw, 3.2rem) !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: -.045em;
}

body#page-enrol-index #region-main h2:first-of-type::before {
    content: "Acceso al curso";
    display: block;
    margin-bottom: 10px;
    color: var(--glx-primary);
    font-size: .78rem;
    line-height: 1.2;
    font-weight: 950;
    letter-spacing: .16em;
    text-transform: uppercase;
}

/* Caja de información del curso */
body#page-enrol-index .generalbox.info {
    margin: 0 0 18px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

/* Coursebox como tarjeta premium */
body#page-enrol-index .coursebox {
    position: relative;
    display: grid !important;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
    margin: 0 !important;
    padding: 20px !important;
    border-radius: 26px !important;
    background:
        radial-gradient(circle at 18% 10%, rgba(0, 165, 231, .16), transparent 34%),
        linear-gradient(145deg, rgba(255, 255, 255, .085), rgba(255, 255, 255, .035)),
        rgba(13, 17, 23, .88) !important;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .36);
    overflow: hidden;
}

body#page-enrol-index .coursebox .info {
    order: 2;
    min-width: 0;
    padding: 18px 10px 18px 0;
}

body#page-enrol-index .coursebox .content {
    order: 1;
    min-width: 0;
}

body#page-enrol-index .coursebox .content .d-flex {
    display: block !important;
}

body#page-enrol-index .coursebox .coursename {
    margin: 0 0 12px !important;
}

body#page-enrol-index .coursebox .coursename a {
    color: #ffffff !important;
    font-size: clamp(1.8rem, 3vw, 3.2rem) !important;
    line-height: .98 !important;
    font-weight: 950 !important;
    letter-spacing: -.045em !important;
    text-decoration: none !important;
}

body#page-enrol-index .coursebox .coursename a:hover {
    color: #ffffff !important;
}

body#page-enrol-index .coursebox .coursename::before {
    content: "Curso disponible";
    display: block;
    margin-bottom: 10px;
    color: var(--glx-primary);
    font-size: .78rem;
    font-weight: 950;
    letter-spacing: .16em;
    text-transform: uppercase;
}

body#page-enrol-index .coursebox .enrolmenticons {
    display: inline-flex !important;
    align-items: center;
    min-height: 34px;
    margin-top: 10px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(0, 165, 231, .14);
    border: 1px solid rgba(0, 165, 231, .32);
    color: #dff7ff !important;
}

body#page-enrol-index .coursebox .enrolmenticons::after {
    content: "Automatrícula disponible";
    margin-left: 8px;
    color: #dff7ff;
    font-size: .82rem;
    font-weight: 900;
}

body#page-enrol-index .coursebox .courseimage {
    width: 100% !important;
    max-width: 260px !important;
    margin: 0 !important;
}

body#page-enrol-index .coursebox .courseimage img {
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 2 / 3;
    object-fit: cover;
    border-radius: 22px;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: 0 26px 64px rgba(0, 0, 0, .44);
}

/* Formulario de matrícula como panel premium */
body#page-enrol-index .box.generalbox:not(.info) {
    margin-top: 18px !important;
    padding: 24px !important;
    border-radius: 26px !important;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .035)),
        rgba(13, 17, 23, .88) !important;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .30);
    color: #ffffff !important;
}

body#page-enrol-index form.mform {
    margin: 0 !important;
    color: #ffffff !important;
}

body#page-enrol-index form.mform fieldset {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body#page-enrol-index form.mform .ftoggler h3 {
    color: #ffffff !important;
    font-size: clamp(1.45rem, 2vw, 2.2rem) !important;
    font-weight: 950 !important;
    letter-spacing: -.035em;
}

body#page-enrol-index form.mform .ftoggler h3::before {
    content: "Únete ahora";
    display: block;
    margin-bottom: 6px;
    color: var(--glx-primary);
    font-size: .76rem;
    font-weight: 950;
    letter-spacing: .16em;
    text-transform: uppercase;
}

body#page-enrol-index form.mform .btn-icon {
    width: 38px;
    height: 38px;
    border-radius: 999px !important;
    background: rgba(0, 165, 231, .14) !important;
    border: 1px solid rgba(0, 165, 231, .30) !important;
    color: #ffffff !important;
}

body#page-enrol-index form.mform .fcontainer {
    margin-top: 14px;
}

body#page-enrol-index form.mform .form-group {
    margin-bottom: 14px !important;
}

body#page-enrol-index form.mform .col-form-label {
    display: none !important;
}

body#page-enrol-index form.mform .felement {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
}

body#page-enrol-index form.mform .form-control-static {
    max-width: 820px;
    padding: 18px 20px !important;
    border-radius: 18px;
    background: rgba(255, 255, 255, .055);
    border: 1px solid rgba(255, 255, 255, .10);
    color: rgba(255, 255, 255, .78) !important;
    font-size: 1.02rem;
    line-height: 1.65;
}

body#page-enrol-index form.mform .form-control-static b,
body#page-enrol-index form.mform .form-control-static strong {
    color: #ffffff !important;
}

/* Botón Matricularme */
body#page-enrol-index form.mform input[type="submit"],
body#page-enrol-index form.mform .btn-primary,
body#page-enrol-index #id_submitbutton {
    min-height: 52px !important;
    padding: 0 28px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, #0d6efd, var(--glx-primary)) !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 950 !important;
    letter-spacing: .01em;
    box-shadow: 0 18px 38px rgba(0, 165, 231, .24) !important;
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

body#page-enrol-index form.mform input[type="submit"]:hover,
body#page-enrol-index form.mform .btn-primary:hover,
body#page-enrol-index #id_submitbutton:hover {
    transform: translateY(-2px);
    filter: brightness(1.05);
    box-shadow: 0 24px 52px rgba(0, 165, 231, .32) !important;
}

/* Textos generales dentro de la página */
body#page-enrol-index #region-main,
body#page-enrol-index #region-main p,
body#page-enrol-index #region-main div,
body#page-enrol-index #region-main span,
body#page-enrol-index #region-main label,
body#page-enrol-index #region-main h1,
body#page-enrol-index #region-main h2,
body#page-enrol-index #region-main h3,
body#page-enrol-index #region-main h4,
body#page-enrol-index #region-main h5,
body#page-enrol-index #region-main h6,
body#page-enrol-index #region-main strong {
    font-family: var(--glx-font) !important;
}

/* Enlaces dentro del contenido */
body#page-enrol-index #region-main a {
    color: var(--glx-primary) !important;
}

/* Footer menos invasivo */
body#page-enrol-index #page-footer {
    background: #050505 !important;
    color: rgba(255, 255, 255, .64) !important;
    border: 0 !important;
}

body#page-enrol-index #page-footer a {
    color: rgba(255, 255, 255, .78) !important;
}

body#page-enrol-index .footer-popover,
body#page-enrol-index .footer-content-popover {
    background: rgba(10, 12, 18, .96) !important;
    color: rgba(255, 255, 255, .72) !important;
    border-color: rgba(255, 255, 255, .10) !important;
}

/* Notificaciones / usuario */
body#page-enrol-index .popover-region-container,
body#page-enrol-index .dropdown-menu {
    background: rgba(8, 10, 16, .98) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .50) !important;
}

body#page-enrol-index .dropdown-item,
body#page-enrol-index .popover-region-container div,
body#page-enrol-index .popover-region-container span,
body#page-enrol-index .popover-region-container h3 {
    color: rgba(255, 255, 255, .88) !important;
}

/* Responsive */
@media (max-width: 991px) {
    body#page-enrol-index #page-header {
        min-height: 460px;
    }

    body#page-enrol-index #course-header-banner {
        min-height: 460px !important;
    }

    body#page-enrol-index #course-header-banner-text {
        left: 18px;
        right: 18px;
        bottom: 100px;
        font-size: clamp(2.4rem, 12vw, 4rem) !important;
    }

    body#page-enrol-index .page-context-header {
        width: calc(100% - 32px);
        padding-top: 185px;
    }

    body#page-enrol-index #page-content {
        width: calc(100% - 32px);
        margin-top: -84px !important;
        padding-bottom: 56px !important;
    }

    body#page-enrol-index .coursebox {
        grid-template-columns: 150px minmax(0, 1fr);
        gap: 16px;
        padding: 16px !important;
    }

    body#page-enrol-index .coursebox .courseimage {
        max-width: 150px !important;
    }

    body#page-enrol-index .coursebox .coursename a {
        font-size: clamp(1.45rem, 6vw, 2.2rem) !important;
    }

    body#page-enrol-index .box.generalbox:not(.info) {
        padding: 18px !important;
    }
}

@media (max-width: 640px) {
    body#page-enrol-index #page-header {
        min-height: 520px;
    }

    body#page-enrol-index #course-header-banner {
        min-height: 520px !important;
    }

    body#page-enrol-index .coursebox {
        grid-template-columns: 1fr;
    }

    body#page-enrol-index .coursebox .content {
        order: 1;
    }

    body#page-enrol-index .coursebox .info {
        order: 2;
        padding: 0;
    }

    body#page-enrol-index .coursebox .courseimage {
        max-width: 190px !important;
    }

    body#page-enrol-index form.mform .form-control-static {
        padding: 15px 16px !important;
        font-size: .95rem;
    }

    body#page-enrol-index form.mform input[type="submit"],
    body#page-enrol-index form.mform .btn-primary,
    body#page-enrol-index #id_submitbutton {
        width: 100% !important;
    }
}

/* =========================================================
   Buscador Gluxflix en navegación principal
   ========================================================= */

.glx-nav__search {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    padding: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, .88) !important;
    background: rgba(17, 17, 17, .58);
    border: 1px solid rgba(255, 255, 255, .12);
    text-decoration: none !important;
    transition:
        transform .18s ease,
        background .18s ease,
        border-color .18s ease,
        color .18s ease,
        box-shadow .18s ease;
}

.glx-nav__search svg {
    width: 21px;
    height: 21px;
    display: block;
    fill: currentColor;
}

.glx-nav__search:hover,
.glx-nav__search:focus,
.glx-nav__search.is-active {
    color: #4ddcff !important;
    background: rgba(1, 158, 227, .16);
    border-color: rgba(77, 220, 255, .38);
    box-shadow: 0 0 24px rgba(1, 158, 227, .14);
    transform: translateY(-1px);
    outline: none;
}

.glx-nav__mobiletopactions {
    display: none;
}

.glx-nav__mobilepill.is-active {
    color: #fff !important;
    background: rgba(1, 158, 227, .24) !important;
    border-color: rgba(77, 220, 255, .38) !important;
}

/* El buscador no aparece duplicado en escritorio. */
.glx-nav__search--mobile {
    display: none;
}

@media (max-width: 1200px) {
    .glx-nav__mobiletopactions {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        margin-left: auto;
    }

    /*
     * La hamburguesa ahora vive dentro de mobiletopactions.
     * Evita que reglas anteriores intenten posicionarla sola.
     */
    .glx-nav__top > .glx-nav__burger {
        display: none !important;
    }

    .glx-nav__mobiletopactions .glx-nav__burger {
        display: inline-flex !important;
        margin-left: 0 !important;
    }

    .glx-nav__search--mobile {
        width: 42px !important;
        height: 42px !important;
        flex-basis: 42px !important;
        display: inline-flex !important;
        border-radius: 12px !important;
        background: rgba(255, 255, 255, .06) !important;
    }

    .glx-nav__search--mobile svg {
        width: 19px;
        height: 19px;
    }

    .glx-nav__search--mobile:hover,
    .glx-nav__search--mobile:focus,
    .glx-nav__search--mobile.is-active {
        background: rgba(1, 158, 227, .18) !important;
        border-color: rgba(77, 220, 255, .38) !important;
    }

    /*
     * El checkbox está antes de .glx-nav__top.
     * Conservamos las transformaciones del icono hamburguesa.
     */
    .glx-nav__toggle:checked
        ~ .glx-nav__top
        .glx-nav__mobiletopactions
        .glx-nav__burger
        span:nth-child(1) {
        transform: translateY(6px) rotate(45deg) !important;
    }

    .glx-nav__toggle:checked
        ~ .glx-nav__top
        .glx-nav__mobiletopactions
        .glx-nav__burger
        span:nth-child(2) {
        opacity: 0 !important;
    }

    .glx-nav__toggle:checked
        ~ .glx-nav__top
        .glx-nav__mobiletopactions
        .glx-nav__burger
        span:nth-child(3) {
        transform: translateY(-6px) rotate(-45deg) !important;
    }
}

/* =========================================================
   Navbar Gluxflix - alineación final del bloque derecho
   Mantener lupa, usuario y salir contra el borde derecho
   ========================================================= */

@media (min-width: 1201px) {
    .glx-nav {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .glx-nav__top {
        width: 100% !important;
        max-width: none !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 24px !important;
    }

    .glx-nav__left {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        display: flex !important;
        align-items: center !important;
    }

    .glx-nav__menu--desktop {
        min-width: 0 !important;
    }

    .glx-nav__right--desktop {
        flex: 0 0 auto !important;
        margin-left: auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 14px !important;
        white-space: nowrap !important;
    }

    .glx-nav__user {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
    }

    .glx-nav__logout {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
    }

    .glx-nav__search {
        flex: 0 0 46px !important;
    }
}