/* Anti-FOUC de remodal. La misma regla vive en modals.css, pero esa hoja se carga
   diferida (media="print" onload) en todos los headers, así que llega tarde y los
   modales se ven a pantalla completa antes de ocultarse. Aquí va en CSS bloqueante. */
.remodal,
[data-remodal-id] {
    display: none;
}

/* *{
    font-family: Arial, Helvetica, sans-serif;
} */
/* Utilidad para texto accesible visible solo a lectores de pantalla y crawlers SEO */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
body {
    margin: 0;
    padding: 0 0 0 0;
    color: #000;
    background: rgb(235, 235, 235);
}

#footer {
    text-align: center;
    padding: 20px;
    margin: 0;
    border-top: 1px solid #ddd;
    color: #999;
    font-size: 0.8em;
    text-shadow: 0px 1px 1px #fff;
    position: relative;
    top: 0;
    left: 0;
    background: #fff;
}

.fondo_gris {
    background-color: #dadada;
}

.next-lesson {
    text-align: center;
    padding: 1rem;
    background-color: white;
    color: black;
}

.next-lesson-black {
    text-align: center;
    padding: 1rem;
    background-color: #f2f2f2;
    color: black;
}

.menu {
    text-align: center;
    background: rgb(178, 138, 191);
    color: black;
    border: 0px solid transparent;
}

.menu li.has-menu span.arrow {
    border-color: black transparent transparent transparent;
    margin-top: -2px;
}

.menu li.has-menu span.arrow {
    border-style: solid;
    border-width: 5px;
    display: block;
    position: absolute;
    top: 50%;
    right: 5px;
    font-size: 0;
    line-height: 0;
    height: 0;
    width: 0;
}

/* .menu li.current > a,
.menu li.current > a:hover,
.menu li.current.hover > a {
    background: transparent;
    color: black;
    border-bottom: 5px solid #000;
    padding-bottom: 1.5rem;
}

.menu li.hover {
    background: transparent;
    color: black;
}
.menu li a {
    text-shadow: 0px 0px 0px transparent;
    padding: 15px 20px;
    padding-bottom: 1.5rem;
    text-decoration: none;
    font-size: 1.5em;
    color: #000;
}

.menu.sub {
    background: white;
    padding: 0 0 0 0;
}

.menu.sub li a {
    font-size: 1rem;
}

.menu.sub li.current > a {
    background: rgb(230, 230, 230);
    color: black;
    border-bottom: 0px solid transparent;
} */


@media (max-width: 767px) {
    body.overflow-hidden {
        overflow: hidden;
    }
}

button.medium {
    color: white;
    text-shadow: 0 0px transparent;
    border-radius: 0px;
    border: 0px solid transparent;
    width: 100%;
}

button.large {
    background: black;
    color: white;
    text-shadow: 0 0px transparent;
    border-radius: 0px;
    border: 0px solid transparent;
    width: 100%;
}

.banner {
    margin-top: 0px;
    background-repeat: no-repeat;
    height: 100%;
    width: 100%;
    padding: 2rem;
}

.bannerDash {
    margin-top: 0px;
    background-image: url(../img/fondo/DashCabecera.webp);
    background-repeat: no-repeat;
    height: 100%;
    width: 100%;
    padding: 2rem;
}

a.button {
    background: black;
    color: white;
    text-shadow: 0 0px transparent;
    border-radius: 0px;
    border: 0px solid transparent;
    width: 75%;
    text-align: center;
}

.img-center {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.ejercicioOpcion {
    border-color: black;
    border-style: solid;
    border-left: none;
    border-right: none;
    border-bottom: none;
    border-width: 1px;
    padding: 10px 0px;
}

.colorFondo_azul {
    background: #ADC3E8;
}

.colorFondo_morado {
    background: #B28ABF;
}

.colorFondo_amarillo {
    background: #D2AC2A;
}

/* MODULE: BUTTONS ---------------------------------------------------- */
.btn.btn-flex {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    column-gap: 10px;
    padding-left: 15px;
    padding-right: 15px;
}

.btn.btn-flex svg {
    width: 18px;
    height: 18px;
    flex: none;
}

/* END MODULE: BUTTONS ------------------------------------------------ */

/* MODULE: HEADER ----------------------------------------------------- */
.header-logo.logo-legend .legend {
    z-index: 100;
}

@media (min-width: 992px) {
    header.header-wrapper.header-auth .container {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    header.header-wrapper.header-auth .container {
        max-width: 1140px;
    }
}

@media (min-width: 1400px) {
    header.header-wrapper.header-auth .container {
        max-width: 1200px;
    }
}

@media (max-width: 991px) {
    .header-acrebach .header-logo.logo-legend {
        top: -10px !important;
    }

    .header-logo.logo-legend .legend.Acredita-Bach {
        font-size: 12px;
        padding: 3px 6px 2px;
        left: 0;
        bottom: auto;
        top: 100%;
        margin-top: 5px;
    }
}

@media (max-width: 330px) {
    .header-wrapper.header-simple .header-logo {
        max-width: 90px;
    }

    .header-wrapper .header-logo.logo-legend .legend {
        font-size: 11px;
    }
}

/* END MODULE: HEADER ------------------------------------------------- */

/* MODULE: NAVIGATION ------------------------------------------------- */
.navigation .has-submenu {
    position: relative;
}

.menu--responsive .navigation li a.navigation__submenu-parent {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: 10px;
}

.menu--responsive.menu--wizi .navigation {
    position: relative;
    overflow: auto;
}

.navigation.navigation--gradient::before {
    position: fixed;
    content: '';
    display: block;
    max-width: 220px;
    width: 100%;
    height: 100px;
    left: 0;
    top: 0;
    background-image: linear-gradient(to top, rgba(255, 255, 255, 0), #FFF 20%);
    z-index: 200;
}

.menu--responsive.menu--wizi .navigation .menu {
    position: relative;
    z-index: 10;
}

.menu--responsive.menu--wizi .navigation .menu .navigation__submenu {
    border: 0;
    position: relative;
    display: none;
}

.navigation .navigation__submenu-parent i {
    flex: none;
    font-size: 18px;
    transition: transform 0.3s ease;
}

.navigation .active .navigation__submenu-parent i {
    transform: rotate(180deg);
}

@media (min-width: 768px) {
    .menu--responsive.menu--wizi {
        display: none !important;
    }
}

/* END MODULE: NAVIGATION --------------------------------------------- */

/* MODULE: FOOTER ----------------------------------------------------- */
footer#footer.footer-wrapper.footer-full {
    background: #000;
    padding: 90px 0;
}

footer#footer.footer-wrapper.footer-full .footer-text {
    color: #FFF;
    margin: 0;
    text-align: center;
}

#footer.footer-wrapper.footer-full .footer-row {
    column-gap: 20px;
}

#footer.footer-wrapper.footer-full .footer-col:first-child {
    flex: 1;
}

/* Mismo acento morado que CURSOS EXANI-II (.dropdown-exani en nuevo.css) */
footer#footer.footer-wrapper.footer-full .dropdown-exhcoba .dropdown-title {
    color: #af88be;
}

footer#footer.footer-wrapper.footer-full .dropdown-exhcoba .footer-menu a:hover {
    color: #af88be !important;
}

.footer-wrapper.footer-full .footer-bottom {
    border-top: 1px solid #D9D9D9;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    row-gap: 30px;
    margin-top: 48px;
    padding-top: 48px;
}

.footer-wrapper.footer-full .footer-payment-methods {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    column-gap: 8px;
    row-gap: 8px;
    padding: 0;
    margin: 0;
}

.footer-wrapper.footer-full .payment-method {
    flex: 0 1 auto;
}

.footer-wrapper.footer-full .footer-payment-methods svg,
.footer-wrapper.footer-full .footer-payment-methods img {
    width: auto;
    height: 31px;
}

.footer-wrapper.footer-full .footer-payment-methods img {
    position: relative;
    top: -1px;
}

@media (max-width: 991px) {
    .footer-wrapper.footer-full .footer-payment-methods {
        max-width: 500px;
        height: 62px;
        /* Mantén la altura */
        width: 100%;
    }

    /* Clase que se añadirá con JS cuando el elemento sea visible */
    .footer-wrapper.footer-full .footer-payment-methods.lazy-loaded {
        background-image: url('../img/payment-methods/Metodos_De_Pago_Small.webp');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
    }

    /* Oculta la imagen original en móviles */
    .footer-wrapper.footer-full .footer-payment-methods img {
        display: none;
    }
}

/* END MODULE: FOOTER ------------------------------------------------- */

/* MODULE: CONTACT FORM  ---------------------------------------------- */
.contact-form-section .contact-info {
    background: #d3ad29;
    min-height: 108px;
}

.contact-form-section .contact-info .container {
    min-height: 108px;
    display: flex;
    column-gap: 20px;
    align-items: center;
    justify-content: space-between;
    color: #FFF;
}

.contact-info .customer-service-hours,
.contact-info .customer-service-phone {
    font-weight: 700;
    color: #FFF;
    font-size: 22px;
    line-height: 1.36;
}

.contact-info .customer-service-phone {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    column-gap: 12px;
}

.contact-info .customer-service-icon {
    width: 24px;
    height: 24px;
    color: #FFF;
    display: inline-block;
    position: relative;
    top: -3px;
}

.contact-info .customer-service-icon svg {
    width: 100%;
    height: 100%;
}

.contact-info .customer-service-number {
    white-space: nowrap;
    color: #FFF;
}

.contact-form-wrapper .contact-form-content {
    flex: 1;
    width: 100%;
}

.contact-form-action {
    margin: 0 auto;
    display: block;
    padding: 0;
}

.contact-form-wrapper .contact-form-image {
    width: 476px;
    flex: none;
    display: inline-block;
}

.contact-form-section .contact-form-wrapper {
    padding: 52px 0;
}

.contact-form-section .contact-form-wrapper .container {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 75px;
}

.contact-form-wrapper .contact-form-image img {
    width: 100%;
    height: auto;
    line-height: 0;
}

.contact-form-wrapper .contact-form-title {
    font-size: 30px;
    line-height: 1.2;
    color: #000;
    text-transform: uppercase;
    margin: 0;
}

.contact-form-wrapper .contact-form-copy {
    margin-top: 12px;
    font-size: 22px;
    line-height: 1.36;
}

.contact-form-section .contact-form {
    margin: 62px 0 0;
    display: grid;
    column-gap: 40px;
    row-gap: 40px;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, auto);
    align-items: flex-end;
}

.contact-form-section .contact-form-field {
    color: #000;
    font-size: 18px;
    font-weight: 700;
    display: flex;
    flex-direction: column;
    justify-content: stretch;
    align-items: stretch;
}

.contact-form-section .contact-form-field label {
    margin-bottom: 12px;
    font-size: 18px;
}

.contact-form-section .btn.btn-purple {
    background: #af88be;
    font-size: 14px;
    color: #FFF;
    height: 52px;
    width: 210px;
    box-shadow: none;
    margin-left: auto;
}

.contact-form-section .contact-form-field input,
.contact-form-section .contact-form-field textarea {
    margin: 0;
    padding: 0;
    zoom: normal;
    box-shadow: none;
    background: #FFF;
    border-radius: 0;
    font-size: 20px;
    font-weight: 400;
    border-width: 0;
    text-indent: 0;
    height: 40px;
    outline: 0;
    resize: vertical;
    border-bottom: 1px solid #A9A9A9;
    font-family: "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
}

.contact-form-section .contact-form-field textarea {
    height: 68px;
    padding-top: 10px;
}

.contact-form-section .contact-form-field input:focus,
.contact-form-section .contact-form-field textarea:focus {
    border-color: #000;
    border-bottom-width: 2px;
}

.contact-form-section .contact-form-field input::placeholder,
.contact-form-section .contact-form-field textarea::placeholder {
    font-weight: 400;
}

.contact-form-section .contact-form-field input:invalid:not(:placeholder-shown),
.contact-form-section .contact-form-field textarea:invalid:not(:placeholder-shown) {
    border-color: #e04f4f;
}

/* O comunicate ----------------------------- */
.contact-info__sections {
    display: flex;
    flex-wrap: nowrap;
    flex-direction: column;
    justify-content: center;
    row-gap: 8px;
}

.contact-info__sections-row {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    column-gap: 8px;
    row-gap: 8px;
}

.contact-info__block {
    border: 1px solid #BBBBBB;
    border-radius: 8px;
    padding: 10px;
    flex: 1;
    width: 100%;
    color: #000;
    font-size: 14px;
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    row-gap: 4px;
    line-height: 1.2;
    background: #FFF;
}

a.contact-info__block:hover,
a.contact-info__block:focus-visible,
button.contact-info__block:hover,
button.contact-info__block:focus-visible {
    border-color: #000;
    color: #000;
    background: #E5E5E5;
}

.contact-info__block>* {
    width: 100%;
}

.contact-info__block-icons {
    padding-bottom: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 8px;
}

.contact-info__block-icons svg {
    width: 20px;
    height: auto;
}

.contact-info__block i {
    font-size: 20px;
    position: relative;
    top: -2px;
}

.contact-info__sections-row .contact-info__block {
    text-align: center;
}

.contact-info__sections-row .contact-info__block i {
    top: 0;
}

.contact-info__heading {
    font-weight: 700;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    column-gap: 10px;
}

.contact-info__heading i {
    flex: none;
}

.contact-info__caption {
    font-size: 12px;
}

.main-wrapper.contact-wrapper .contact-column {
    max-width: 310px;
}

@media (min-width: 991px) {
    .main-wrapper.contact-wrapper .contact-image {
        width: 65%;
    }
}

/* Responsive ------------------------------- */
@media (max-width: 1199px) {
    .contact-form-wrapper .contact-form-image {
        width: 400px;
    }

    .contact-form-wrapper .contact-form-title {
        font-size: 28px;
    }

    .contact-form-wrapper .contact-form-copy {
        font-size: 18px;
    }

    .contact-info .customer-service-hours,
    .contact-info .customer-service-phone {
        font-size: 18px;
    }
}

@media (max-width: 991px) {
    .contact-form-wrapper .contact-form-image {
        width: 320px;
    }

    .contact-form-section .contact-form-wrapper .container {
        flex-direction: column-reverse;
        row-gap: 40px;
    }
}

@media (max-width: 767px) {
    .contact-form-wrapper .contact-form-title {
        font-size: 22px;
    }

    .contact-form-wrapper .contact-form-copy {
        font-size: 16px;
    }

    .contact-form-section .contact-form {
        margin-top: 32px;
        grid-template-columns: 1fr;
        row-gap: 25px;
    }

    .contact-form-section .contact-form-field label {
        font-size: 14px;
        margin-bottom: 4px;
    }

    .contact-form-section .contact-form-field input,
    .contact-form-section .contact-form-field textarea {
        font-size: 16px;
    }

    .contact-info .customer-service-hours,
    .contact-info .customer-service-phone {
        font-size: 22px;
    }

    .contact-form-section .contact-info .container {
        flex-direction: column;
        text-align: center;
        row-gap: 14px;
        padding: 40px 0;
    }

    .main-wrapper.contact-wrapper .contact-image {
        margin: 0 auto;
    }

    .contact-info__sections-row {
        flex-direction: column;
        text-align: left;
        justify-content: flex-start;
        align-items: center;
    }

    .contact-info__block-icons {
        justify-content: flex-start;
    }

    .contact-info__sections-row .contact-info__block {
        text-align: left;
    }
}


/* END MODULE: CONTACT FORM ------------------------------------------- */

/* MODULE: STREAK ----------------------------------------------------- */
.menu--responsive.responsive-app .navigation {
    overflow: auto;
}

body .menu--responsive.responsive-app .menu-responsive li.has-menu>a::after {
    margin-top: -8px;
}

body .menu--responsive.responsive-app .menu-responsive li.has-menu li {
    padding: 0;
}

body .menu--responsive.responsive-app .menu-responsive li.has-menu li.current a {
    color: #a2b8df;
}

/* END MODULE: STREAK ------------------------------------------------- */

/* MODULE: STREAK ----------------------------------------------------- */
.streak-module .streak-list {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-flow: row nowrap;
}

.streak-module .streak-image {
    width: 157px;
    margin-top: -14px;
}

.streak-module .streak-image-item {
    padding-bottom: 124.2%;
    width: 100%;
    position: relative;
    overflow: hidden;
    background-image: url(../img/streak-sprite.webp);
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: auto 100%;
}

.streak-module .streak-image[data-level-item="0"] .streak-image-item {
    background-position: 0 0;
}

.streak-module .streak-image[data-level-item="1"] .streak-image-item {
    background-position: 12.5% 0;
}

.streak-module .streak-image[data-level-item="2"] .streak-image-item {
    background-position: 25% 0;
}

.streak-module .streak-image[data-level-item="3"] .streak-image-item {
    background-position: 37.5% 0;
}

.streak-module .streak-image[data-level-item="4"] .streak-image-item {
    background-position: 50% 0;
}

.streak-module .streak-image[data-level-item="5"] .streak-image-item {
    background-position: 62.5% 0;
}

.streak-module .streak-image[data-level-item="6"] .streak-image-item {
    background-position: 75% 0;
}

.streak-module .streak-image[data-level-item="7"] .streak-image-item {
    background-position: 87.5% 0;
}

.streak-module .streak-image[data-level-item="8"] .streak-image-item {
    background-position: 100% 0;
}

.streak-module .streak-header {
    border-bottom: 1px solid #A6A6A6;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0 18px 15px 20px;
}

.streak-module .streak-content {
    flex: 1;
    padding-left: 30px;
    padding-top: 18px;
}

.streak-module .streak-list {
    list-style: none;
    padding: 12px 18px 0 20px;
    margin: 0;
}

.streak-module .streak-day-label {
    color: #000;
    font-weight: 700;
    font-size: 11px;
    text-align: center;
}

.streak-module .streak-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.streak-module .streak-day-icon {
    margin-top: 8px;
}

.streak-module .streak-day-icon svg {
    width: 32px;
    height: auto;
}

.streak-module .streak-title {
    font-size: 18px;
    line-height: 1.1;
    color: #000;
    margin: 0;
}

.streak-module .streak-star {
    width: 56px;
    height: auto;
    margin-left: auto;
    position: relative;
    top: -4px;
}

.streak-module .streak-title-sep {
    height: 40px;
    display: inline-block;
    background: #000;
    width: 2px;
    position: relative;
    top: -2px;
    margin-left: 15px;
    margin-right: 20px;
}

.streak-module .streak-count {
    padding-top: 6px;
    font-weight: 700;
    color: #000;
    line-height: 1;
}

.streak-module .streak-days,
.streak-module .streak-days-sign {
    font-size: 60px;
}

.streak-module .streak-days-sign {
    position: relative;
    top: -5px;
}

.streak-module .streak-count small {
    font-size: 13px;
    letter-spacing: 0;
    display: inline-block;
    margin-left: 7px;
}

.streak-module .streak-title span {
    display: block;
}

.streak-module .module-box {
    padding: 24px 0 24px 24px;
    display: flex;
}

@media (max-width: 1199px) {
    .streak-module .streak-header {
        flex-wrap: wrap;
    }

    .streak-module .streak-title {
        width: 100%;
        font-size: 22px;
    }

    .streak-module .streak-title:after {
        content: '';
        display: block;
        width: 100%;
        /* max-width: 60px; */
        height: 2px;
        background: #000;
        margin: 8px 0 10px;
    }

    .streak-module .streak-title span {
        display: inline;
    }

    .streak-module .streak-title-sep {
        display: none;
    }

    .streak-module .streak-days,
    .streak-module .streak-days-sign {
        font-size: 54px;
    }

    .streak-module .streak-count small {
        margin-left: 5px;
    }

    .streak-module .streak-header {
        padding-bottom: 10px;
    }

    .streak-module .streak-content {
        padding-left: 18px;
    }

    .streak-module .streak-header,
    .streak-module .streak-list {
        padding-left: 0;
    }

    .streak-module .module-box {
        padding: 20px 0 20px 24px;
    }
}

/* MODULE: MODAL SURVEY ----------------------------------------------- */

/* MODULE: MODAL PROMO ------------------------------------------------ */
.remodal.modal-promo-code {
    text-align: center;
    width: 90%;
    max-width: 960px;
    font: 500 16px / 1.3em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    overflow: hidden;
    border-radius: 16px;
    background: #a2b8df;
    padding: 52px 42px 24px 58px;
}

.modal-promo-code .modal-row {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 100;
    column-gap: 20px;
}

.modal-promo-code .modal-content {
    color: #000;
    text-align: center;
    max-width: 364px;
    width: 100%;
    flex: none;
}

.modal-promo-code .modal-image {
    flex: 1;
    max-width: 442px;
}

.modal-promo-code .modal-title {
    line-height: 1.2;
    font-size: 36px;
    font-weight: 800;
    margin: 0 0 20px;
}

.modal-promo-code[data-state="rate-us"] .modal-title {
    font-size: 32px;
    text-align: center;
}

.modal-promo-code[data-state="rate-us"] .modal-copy {
    font-size: 16px;
    text-align: center;
}

.modal-promo-code .rate-options {
    display: none;
    margin: 40px auto 0;
    text-align: center;
}

.modal-promo-code .rate-options svg {
    width: 100%;
    max-width: 294px;
    height: auto;
}

.modal-promo-code[data-state="rate-us"] .rate-options {
    display: block;
}

.modal-promo-code .btn-rate,
.modal-promo-code[data-state="rate-us"] .btn-quiz {
    display: none;
}

.modal-promo-code[data-state="rate-us"] .btn-rate {
    display: inline-block;
}


.modal-promo-code .modal-copy {
    line-height: 1.375;
    font-size: 16px;
}

.modal-promo-code .promo-code-wrapper {
    margin-top: 42px;
    position: relative;
}

.modal-promo-code .time-limit {
    margin: 0 0 8px;
    text-align: left;
    font-weight: 700;
    font-size: 15px;
}

.modal-promo-code .promo-code-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: 0;
    row-gap: 0;
}

.modal-promo-code .promo-code {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 24px;
    line-height: 1;
    padding-top: 4px;
    background: #F0F0F0;
    height: 29px;
}

.modal-promo-code .copy-code {
    flex: none;
    height: 29px;
    font-size: 16px;
    background: #FFF;
    border: 1px solid #F0F0F0;
    width: 100px;
    cursor: pointer;
}

.modal-promo-code .copy-code:hover {
    background: #B9B9B9;
    border-color: #B9B9B9;
}

.modal-promo-code .share-promo-code {
    margin: 42px 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: 8px;
    list-style: none;
    padding: 0;
}

.modal-promo-code .code-copied {
    display: none;
    padding-top: 8px;
    position: absolute;
    left: 0;
    right: 0;
    padding-right: 100px;
    width: 100%;
    top: 100%;
    text-align: center;
    margin: auto;
}

.modal-promo-code .share-promo-code a {
    width: 78px;
    height: 48px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
    text-align: center;
    background: #d3ad29;
    color: #FFF;
    font-size: 28px;
}

.modal-promo-code .share-promo-code a:hover {
    background: #000;
}

.modal-promo-code .share-promo-code svg {
    width: 28px;
    height: auto;
}

.modal-promo-code .modal-close {
    appearance: none;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    position: absolute;
    right: 32px;
    top: 24px;
    width: 28px;
    height: 28px;
    font-size: 28px;
    color: #d3ad29;
    cursor: pointer;
    z-index: 120;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.modal-promo-code .modal-close svg {
    width: 28px;
    height: 28px;
    display: block;
    flex: none;
}

.modal-promo-code .modal-close:hover {
    color: #000;
}

.modal-promo-code .modal-background {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.modal-promo-code .modal-background img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    justify-content: center;
    align-items: center;
}


.remodal.modal-survey[data-state="google-comment"] {
    max-width: 620px;
    background: #FFF;
    padding: 0;
}

.remodal.modal-survey[data-state="google-comment"] .modal-title {
    font-size: 32px;
}

.remodal.modal-survey .modal-google-api {
    display: none;
}

.remodal.modal-survey[data-state="google-comment"] .modal-actions {
    display: none;
}

.remodal.modal-survey[data-state="google-comment"] .modal-header {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    height: 200px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px 70px 20px 210px;
}

.remodal.modal-survey[data-state="google-comment"] .modal-google-api {
    display: block;
    padding: 20px;
    background: #FFF;
}

.remodal.modal-survey[data-state="google-comment"] .modal-background img {
    object-position: 0 0;
}

@media (max-width: 820px) {
    .remodal.modal-promo-code {
        padding: 52px 24px 24px;
    }

    .modal-promo-code .modal-row {
        row-gap: 20px;
        flex-direction: column;
    }

    .modal-promo-code .modal-image {
        max-width: 320px;
    }
}

@media (max-width: 767px) {
    .remodal.modal-survey[data-state="google-comment"] .modal-header {
        height: auto;
        padding: 40px 80px 40px 30px;
    }

    .remodal.modal-survey[data-state="google-comment"] .modal-title {
        font-size: 28px;
    }

    .remodal.modal-survey[data-state="google-comment"] .modal-background img {
        object-position: right center;
        transform: scale(1.5);
    }
}

@media (max-width: 520px) {
    .modal-promo-code .modal-title {
        font-size: 28px;
        margin-bottom: 15px;
    }

    .modal-promo-code .promo-code-wrapper {
        margin-top: 30px;
    }

    .modal-promo-code .modal-image {
        max-width: 260px;
    }

    .modal-promo-code .time-limit {
        font-size: 13px;
        text-align: center;
    }

    .remodal.modal-survey[data-state="google-comment"] .modal-header {
        height: auto;
        padding: 70px 20px 20px;
    }
}

.remodal.modal-survey {
    padding: 100px 64px 70px;
}

.modal-survey .modal-content {
    margin-left: auto;
    width: 100%;
    max-width: 480px;
    text-align: left;
}

.remodal.modal-survey[data-state="google-redirect"] .modal-content {
    max-width: 500px;
}

.modal-survey .modal-close {
    width: 28px;
    height: 28px;
}

.modal-survey .modal-title {
    margin-bottom: 12px;
}

.modal-survey .modal-actions {
    margin-top: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 24px;
    row-gap: 18px;
}

.modal-survey .modal-actions .btn {
    flex: 1;
    padding-left: 0;
    padding-right: 0;
}

.modal-survey .btn.btn-confirm,
.modal-survey .btn.btn-close {
    background: #D2AC2A;
}

.modal-survey .btn.btn-confirm:hover,
.modal-survey .btn.btn-close:hover {
    background: #91771b;
}

.modal-survey .btn.btn-close {
    max-width: 228px;
    margin-right: auto;
}

@media (max-width: 767px) {
    .remodal.modal-survey {
        padding: 80px 32px 50px;
    }

    .modal-promo-code .modal-background img {
        object-position: right center;
        transform: scale(1.1);
    }

    .modal-survey .modal-content {
        max-width: none;
    }
}

@media (max-width: 520px) {
    .remodal.modal-survey {
        padding: 70px 24px 40px;
    }

    .modal-survey .modal-actions {
        margin-top: 30px;
        flex-direction: column;
    }

    .modal-survey .modal-actions .btn {
        width: 100%;
    }
}

/* END MODULE: MODAL SURVEY ------------------------------------------- */

/* MODULE: MODAL EXAM UPSELL ------------------------------------------ */

.remodal.modal-exam-upsell {
    max-width: 964px;
    min-height: 404px;
    padding: 24px 64px 48px;
    background: #c8d8f0;
}

.modal-exam-upsell .modal-close {
    right: 32px;
    top: 24px;
}

.modal-exam-upsell .modal-background img {
    object-fit: cover;
    object-position: left center;
}

.modal-exam-upsell .modal-row {
    justify-content: flex-end;
    align-items: flex-start;
    min-height: 332px;
}

.modal-exam-upsell .modal-content {
    max-width: 425px;
    margin-left: auto;
    padding-top: 36px;
}

.modal-exam-upsell .modal-title,
.modal-exam-upsell .modal-copy {
    text-align: left;
    color: #1e1e1e;
}

.modal-exam-upsell .modal-copy {
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0;
}

.modal-exam-upsell .modal-title {
    font-family: "Open Sans", sans-serif;
    font-size: 34px;
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 16px;
}

.modal-exam-upsell .modal-copy p {
    margin: 0;
    line-height: 1.4;
}

.modal-exam-upsell .modal-copy p + p {
    margin-top: 16px;
}

.modal-exam-upsell .modal-actions {
    margin-top: 32px;
    text-align: left;
}

.modal-exam-upsell .modal-actions .btn {
    text-transform: uppercase;
    background: #d2ac2a;
}

.modal-exam-upsell .modal-actions .btn:hover {
    background: #91771b;
}

@media (max-width: 767px) {
    .remodal.modal-exam-upsell {
        min-height: auto;
        padding: 72px 32px 40px;
    }

    .modal-exam-upsell .modal-row {
        min-height: auto;
    }

    .modal-exam-upsell .modal-content {
        max-width: none;
        padding-top: 0;
    }

    .modal-exam-upsell .modal-title {
        font-size: 28px;
    }

    .modal-exam-upsell .modal-background img {
        object-position: 20% center;
    }
}



@media (max-width: 991px) {
    .streak-module .module-box {
        flex-direction: column;
        align-items: center;
        padding-left: 0;
        padding-bottom: 10px;
    }

    .streak-module .streak-image {
        width: 190px;
        max-width: calc(100% - 36px);
    }

    .streak-module .streak-content {
        padding-left: 0;
        margin-top: 20px;
        width: 100%;
    }

    .streak-module .streak-header,
    .streak-module .streak-list {
        padding-left: 18px;
    }
}

/* MODULE: HOME ------------------------------------------------------- */
@media (max-width: 767px) {
    body.page-home-nuevo div.main-banner {
        height: auto;
        padding-bottom: 30px;
    }
}

/* END MODULE: HOME --------------------------------------------------- */

/* MODULE: CHECKOUT --------------------------------------------------- */
.checkout-modules .form-title+h6 {
    margin-top: -5px;
}

.checkout-modules.area-modules .module-list li {
    width: calc(50% - 10px);
}

.checkout-modules.area-modules .module-list .module-item {
    width: 100%;
    display: flex;
}

.checkout-modules.area-modules .module-item .button-mask {
    width: 100%;
    display: flex;
}

@media (max-width: 600px) {
    .checkout-modules.area-modules .module-list {
        row-gap: 16px;
    }

    .checkout-modules.area-modules .module-list li {
        width: 100%;
    }
}

/* END MODULE: CHECKOUT ------------------------------------------------ */

/* MODULE: REVIEW ----------------------------------------------------- */
.main-wrapper.review-sessions-wrapper {
    padding-top: 0;
    background: #FFF;
}

.review-sessions-wrapper.review-wrapper .container {
    padding-bottom: 0;
}

.review-sessions-wrapper .section-header {
    padding-top: 28px;
}

.review-sessions-wrapper .section-header h3 {
    color: #000;
    font-size: 28px;
}

.review-sessions-wrapper .section-item .section-header p {
    color: #000;
    font-size: 16px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.review-sessions-wrapper .section-item .section-header .review-accordion i {
    position: relative;
    display: inline-block;
    flex: none;
    left: 0;
    top: -2px;
    margin-right: 8px;
}

.review-filters-header {
    background: #D9D9D9;
    border-bottom: 1px solid #000;
    padding-bottom: 16px;
}

.review-filters-header .selected-filters,
.selected-filters.individual-widget {
    margin: 8px 0 12px 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    column-gap: 6px;
    row-gap: 6px;
}

.review-filters-header .selected-filters li,
.selected-filters.individual-widget li {
    padding: 0;
}

.review-filters-header .selected-filters .filter-button,
.selected-filters.individual-widget .filter-button {
    border-radius: 100px;
    border: 1px solid #000;
    background: #FFF;
    font-size: 14px;
    line-height: 1;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 28px;
    padding-left: 15px;
    padding-right: 25px;
    position: relative;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    color: #000;
}

.review-filters-header .selected-filters .filter-button::after,
.selected-filters.individual-widget .filter-button::after {
    content: 'X';
    font-size: 11px;
    position: absolute;
    right: 8px;
    top: 8px;
}

.review-filters-header .selected-filters .filter-button:hover,
.selected-filters.individual-widget .filter-button:hover {
    background: #BABABA;
}

.review-sessions-wrapper .section-item .review-accordion-content {
    background: transparent;
    border-top: 0;
    border-bottom: 0;
    padding: 45px 0 20px;
}

.review-sessions-wrapper .section-item fieldset {
    margin: 0;
    padding: 0;
}

.review-wrapper.review-sessions-wrapper .section-item fieldset+fieldset {
    margin-top: 0;
}

.review-sessions-wrapper .section-item fieldset legend {
    color: #000;
}

.review-sessions-wrapper .section-item fieldset input[type="radio"] {
    position: relative;
    top: -2px;
}

.review-sessions-wrapper .review-resume {
    padding: 0;
}

.review-sessions-wrapper .review-filters .container {
    padding-bottom: 0;
}

.review-sessions-wrapper .section-item .section-content {
    border: 0;
    margin-bottom: 0;
}

.review-sessions-wrapper .review-answers-header .section-header {
    padding-top: 0;
}

.review-sessions-wrapper .review-answers-header {
    background: #E6E6E6;
    padding: 25px 0;
}

.review-sessions-wrapper .filter-select {
    min-width: 140px;
    height: 28px;
    border: 1px solid #000;
    border-radius: 0;
    color: #000;
    box-shadow: none;
}

.review-sessions-wrapper .filter-select.disabled {
    opacity: 0.6;
    pointer-events: none;
}

.review-sessions-wrapper .select-note {
    font-size: 12px;
    display: none;
    margin-top: 2px;
}

.review-sessions-wrapper .filter-select.disabled~.select-note {
    display: block;
}

.review-sessions-wrapper fieldset label {
    color: #000;
}

.review-sessions-wrapper .sessions-table {
    border: 1px solid #D1D1D1;
    margin-bottom: 40px;
}

.review-sessions-wrapper .sessions-table th,
.review-sessions-wrapper .sessions-table td {
    border-bottom: 1px solid #D1D1D1;
    text-align: center;
    color: #000;
    font-size: 14px;
}

.review-sessions-wrapper .sessions-table th {
    padding-top: 11px;
    padding-bottom: 11px;
}

.review-sessions-wrapper .sessions-table th .nowrap {
    white-space: nowrap;
}

.review-sessions-wrapper .sessions-table td {
    padding: 4px 10px;
    font-size: 14px;
    color: #000;
    line-height: 1.2;
    cursor: auto;
}

.review-sessions-wrapper .sessions-table tbody td:first-child {
    font-size: 14px;
}

.review-sessions-wrapper .sessions-table tbody td:first-child,
.review-sessions-wrapper .sessions-table thead th:first-child,
.review-sessions-wrapper .sessions-table tbody td:nth-child(2),
.review-sessions-wrapper .sessions-table thead th:nth-child(2) {
    text-align: left;
}

.review-sessions-wrapper .sessions-table tbody td:nth-last-child(2),
.review-sessions-wrapper .sessions-table tbody td:nth-last-child(3),
.review-sessions-wrapper .sessions-table tbody td:nth-child(5) {
    min-width: 75px;
}


.review-sessions-wrapper .sessions-table tr:nth-child(odd) td {
    background: #F1F1F1;
}

.review-sessions-wrapper .sessions-table a.btn-view {
    border: 1px solid #000;
    background: transparent;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 110px;
    height: 36px;
    font-size: 14px;
    padding: 0;
    color: #000 !important;
}

.review-sessions-wrapper .sessions-table a.btn-view:hover {
    background: #BABABA;
}

.review-sessions-wrapper .custom-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: repeat(2, auto);
    grid-column-gap: 20px;
    grid-row-gap: 40px;
    grid-auto-rows: auto;
}

@media (max-width: 1399px) and (min-width: 1200px) {
    .review-sessions-wrapper .custom-grid fieldset:nth-child(7) {
        grid-area: 2 / 4 / span 1 / span 2;
    }

    .review-sessions-wrapper .sessions-table th:nth-child(8),
    .review-sessions-wrapper .sessions-table td:nth-child(8) {
        display: none;
    }
}

@media (max-width: 1200px) and (min-width: 992px) {
    .review-sessions-wrapper .custom-grid {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: repeat(3, auto);
    }

    .review-sessions-wrapper .custom-grid fieldset:nth-child(3) {
        grid-area: 1 / 3 / span 1 / span 2;
    }

    .review-sessions-wrapper fieldset select {
        width: 100%;
    }
}

@media (max-width: 1200px) {
    .review-sessions-wrapper .sessions-table {
        display: block;
        border-bottom: 0;
    }

    .review-sessions-wrapper .sessions-table thead {
        display: none;
    }

    .review-sessions-wrapper .sessions-table tbody {
        display: block;
    }

    .review-sessions-wrapper .sessions-table tr {
        display: grid;
        width: 100%;
        padding: 8px;
        justify-content: flex-start;
        border-bottom: 1px solid #D1D1D1;
        grid-template-columns: 2fr 1fr 1fr auto;
        grid-template-rows: repeat(2, auto);
    }

    .review-sessions-wrapper .sessions-table tr:nth-child(odd) {
        background: #F1F1F1;
    }

    .review-sessions-wrapper .sessions-table td.td-title {
        grid-area: 1 / 1 / span 1 / span 1;
        font-size: 16px;
    }

    .review-sessions-wrapper .sessions-table td.td-date {
        grid-area: 2 / 1 / span 1 / span 1;
    }

    .review-sessions-wrapper .sessions-table td.table-action {
        grid-area: 1 / -1 / span 2 / span 1;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .review-sessions-wrapper .sessions-table td.td-difficulty {
        display: none;
    }

    .review-sessions-wrapper .sessions-table td.td-rate {
        grid-area: 2 / 2 / span 1 / span 1;
    }

    .review-sessions-wrapper .sessions-table td.td-time {
        grid-area: 1 / 3 / span 2 / span 1;
        align-self: center;
        line-height: 1;
    }

    .review-sessions-wrapper .sessions-table td.td-hide-mobile {
        display: none;
    }

    .review-sessions-wrapper .sessions-table td.table-action .btn-view {
        width: 94px;
        height: 32px;
    }

    .review-sessions-wrapper .sessions-table .td-title {
        font-weight: 700;
    }

    .review-sessions-wrapper .sessions-table td {
        padding: 3px 8px;
        border: 0;
        background: transparent;
    }

    .review-sessions-wrapper .sessions-table td.table-action {
        margin-left: auto;
    }
}

@media (max-width: 991px) {
    .review-sessions-wrapper .custom-grid {
        grid-template-columns: repeat(3, auto);
        grid-template-rows: auto;
    }
}

@media (max-width: 768px) {
    .review-sessions-wrapper .section-item .review-accordion-content {
        padding: 30px 0 20px;
    }

    .review-sessions-wrapper .custom-grid {
        grid-template-columns: repeat(2, auto);
        grid-template-rows: auto;
    }
}

@media (max-width: 540px) {
    .review-sessions-wrapper .custom-grid {
        grid-template-columns: auto;
        grid-template-rows: auto;
        row-gap: 20px;
    }

    .review-sessions-wrapper .sessions-table tr {
        padding: 8px 0;
        grid-template-columns: repeat(2, 1fr) auto;
    }

    .review-sessions-wrapper .review-resume .section-content {
        padding-top: 15px;
    }

    .review-sessions-wrapper .sessions-table td.td-title {
        grid-area: 1 / 1 / span 1 / span 3;
        align-self: flex-end;
    }

    .review-sessions-wrapper .sessions-table td.td-qualification {
        grid-area: 2 / 2 / span 1 / span 1;
        align-self: center;
    }

    .review-sessions-wrapper .sessions-table td.td-date {
        align-self: center;
    }

    .review-sessions-wrapper .sessions-table td.td-rate {
        grid-area: 2 / 3 / span 1 / span 1;
        align-self: center;
    }

    .review-sessions-wrapper .sessions-table td.td-time {
        grid-area: 1 / 4 / span 1 / span 1;
    }

    .review-sessions-wrapper .sessions-table td.table-action {
        grid-area: 2 / -1 / span 1 / span 1;
    }

    .review-sessions-wrapper .review-answers .section-content {
        overflow: hidden;
        padding-right: 0;
    }

    .section-item.review-filters .review-filters-header {
        overflow: hidden;
        position: relative;
    }
}

/* END MODULE: REVIEW ------------------------------------------------- */
/* MODULE: FEEDBACK --------------------------------------------------- */
.review-wrapper .review-explain .rate-options .btn-score {
    margin-left: 0;
}

.review-wrapper .rate-options {
    margin-top: 12px;
    padding-top: 0;
    display: flex;
    column-gap: 10px;
    justify-content: flex-start;
    align-items: center;
}

.review-wrapper .review-explain .rate-options .btn-score+.btn-score {
    margin-left: 0;
}

.review-wrapper .feedback-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.review-wrapper .feedback-char-count {
    font-size: 14px;
    line-height: 1.2;
    flex-shrink: 0;
}

.lesson-item .feedback-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.lesson-item .feedback-char-count {
    font-size: 14px;
    line-height: 1.2;
    flex-shrink: 0;
    color: rgba(0, 0, 0, 0.55);
}

/* kickstart-grid.css redefine .row como block; lección usa col-md-* de Bootstrap */
.main-wrapper.single-lesson .container > .row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
    overflow: visible;
    clear: none;
}

/* Contador bajo el textarea del modal «Reportar» (misma línea visual que feedback en review) */
#formReporte .report-modal-feedback-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-top: 6px;
}

#formReporte .report-modal-feedback-footer .feedback-char-count {
    font-size: 14px;
    line-height: 1.2;
    flex-shrink: 0;
    color: rgba(0, 0, 0, 0.55);
}

/* Gracias tras enviar comentario de retroalimentación (patrón tipo Tesari) */
.review-wrapper .feedback-thanks {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 0;
}

.review-wrapper .feedback-thanks__icon {
    flex-shrink: 0;
    /* Paleta WIZI: azul #a2b9e0 (web: #a1bbde) */
    color: #a2b9e0;
    font-size: 28px;
    line-height: 1;
}

.review-wrapper .feedback-thanks__icon .wizi-ok-icon {
    display: block;
    width: 28px;
    height: 28px;
}

.review-wrapper .feedback-thanks__text {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.35;
}

/* Modal éxito retroalimentación (wrapper real: jBox-wrapper + addClass) */
.jBox-wrapper.wizi-modal-feedback-success {
    font-family: "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    border-radius: 8px;
    overflow: visible;
    box-shadow: 0 14px 48px rgba(0, 0, 0, 0.22);
}

.jBox-wrapper.wizi-modal-feedback-success .jBox-title {
    display: none;
}

/* Panel blanco único: la X queda dentro del mismo recorte redondeado */
.jBox-wrapper.wizi-modal-feedback-success .jBox-container {
    position: relative;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}

.jBox-wrapper.wizi-modal-feedback-success .jBox-content {
    padding: 22px 48px 20px 22px;
}

/*
 * Cierre dentro del panel: jBox usa .jBox-closeButton (no .jBox-close) y por defecto
 * top:-8px; right:-10px + :before decorativo, por eso el botón quedaba “medio afuera”.
 */
.jBox-wrapper.wizi-modal-feedback-success.jBox-closeButton-box:before {
    display: none !important;
}

.jBox-wrapper.wizi-modal-feedback-success.jBox-closeButton-box .jBox-closeButton {
    position: absolute;
    top: 12px !important;
    right: 12px !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 3;
    width: 36px !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 8px !important;
    background: rgba(0, 0, 0, 0.06) !important;
    box-shadow: none !important;
    opacity: 1;
    color: #222;
    line-height: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.jBox-wrapper.wizi-modal-feedback-success.jBox-closeButton-box .jBox-closeButton:hover {
    background: rgba(0, 0, 0, 0.1) !important;
    color: #000;
}

.jBox-wrapper.wizi-modal-feedback-success.jBox-closeButton-box .jBox-closeButton svg {
    position: static !important;
    top: auto !important;
    right: auto !important;
    width: 13px !important;
    height: 13px !important;
    margin: 0 !important;
    display: block;
    flex-shrink: 0;
}

.wizi-feedback-success-modal {
    --wizi-feedback-success-ms: 4200ms;
}

.wizi-feedback-success-modal__main {
    display: flex;
    align-items: flex-start;
    gap: 18px;
}

.wizi-feedback-success-modal__icon {
    flex-shrink: 0;
    color: #a2b9e0;
    font-size: 44px;
    line-height: 1;
    margin-top: 2px;
}

.wizi-feedback-success-modal__icon .wizi-ok-icon {
    display: block;
    width: 44px;
    height: 44px;
}

.wizi-feedback-success-modal__copy {
    flex: 1;
    min-width: 0;
}

.wizi-feedback-success-modal__title {
    margin: 0 0 6px;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
    color: #000;
    letter-spacing: -0.02em;
}

.wizi-feedback-success-modal__msg {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.45;
    color: #111;
}

/* Compat: vistas antiguas que aún usen __lead */
.wizi-feedback-success-modal__lead {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.45;
    color: #111;
}

.wizi-feedback-success-modal__progress {
    height: 4px;
    margin-top: 18px;
    border-radius: 3px;
    background: rgba(0, 0, 0, 0.07);
    overflow: hidden;
}

.wizi-feedback-success-modal__progress-bar {
    display: block;
    height: 100%;
    width: 100%;
    border-radius: 3px;
    /* Paleta WIZI: gris c #818da2 → azul #a2b9e0 */
    background: linear-gradient(90deg, #818da2 0%, #a2b9e0 55%, #c5d4ef 100%);
    transform-origin: left center;
    animation-name: wiziFeedbackSuccessProgress;
    animation-duration: var(--wizi-feedback-success-ms, 4200ms);
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

@keyframes wiziFeedbackSuccessProgress {
    from {
        transform: scaleX(1);
    }

    to {
        transform: scaleX(0);
    }
}

/* Modal de carga (nota / comentario) — misma línea visual que modal de éxito */
.wizi-feedback-loading-modal {
    text-align: center;
    padding: 6px 8px 4px;
}

.wizi-feedback-loading-modal__title {
    margin: 0 0 14px;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.25;
    color: #000;
    letter-spacing: -0.02em;
}

.wizi-feedback-loading-modal__spinner {
    width: 40px;
    height: 40px;
    margin: 0 auto 14px;
    border: 3px solid rgba(162, 185, 224, 0.5);
    border-top-color: #a2b9e0;
    border-radius: 50%;
    animation: wiziFeedbackSpin 0.75s linear infinite;
}

@keyframes wiziFeedbackSpin {
    to {
        transform: rotate(360deg);
    }
}

.wizi-feedback-loading-modal__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.45;
    color: rgba(0, 0, 0, 0.75);
}

.jBox-wrapper.wizi-modal-feedback-loading {
    font-family: "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    border-radius: 8px;
    overflow: visible;
    box-shadow: 0 14px 48px rgba(0, 0, 0, 0.22);
}

.jBox-wrapper.wizi-modal-feedback-loading .jBox-container {
    position: relative;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}

.jBox-wrapper.wizi-modal-feedback-loading .jBox-title {
    display: none;
}

.jBox-wrapper.wizi-modal-feedback-loading .jBox-content {
    padding: 22px 24px 20px;
}

/* END MODULE: FEEDBACK ----------------------------------------------- */
/* MODULE: DETAIL REVIEW ---------------------------------------------- */
.main-wrapper.review-session-wrapper {
    padding-top: 0;
    min-height: calc(100vh - 220px);
}

.review-session-bar {
    border-bottom: 1px solid #000;
    color: #000;
}

.review-session-bar .container {
    display: flex;
    min-height: 50px;
}

.review-session-bar a {
    display: inline-flex;
    column-gap: 15px;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    font-weight: 700;
    color: #000;
    line-height: 1;
}

.review-session-bar a:hover {
    color: #BABABA;
}

.review-session-bar a i {
    font-size: 24px;
    position: relative;
    top: -2px;
}

.review-session-bar .session-bar-date {
    border-left: 1px solid #000;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    font-size: 16px;
    padding-left: 22px;
    margin-left: 22px;
}

.review-session-bar .session-bar-date strong {
    display: inline-block;
    margin-right: 20px;
}

.review-session-wrapper .review-session-overview {
    padding: 20px 0 40px;
}

.review-session-overview .review-session-info {
    display: flex;
    margin-top: 18px;
    column-gap: 45px;
    justify-content: space-between;
    align-items: center;
}

.review-session-title {
    margin: 0;
    color: #000;
    font-size: 20px;
}

.review-session-overview .review-session-block {
    background: #000;
    color: #FFF;
    text-align: center;
    padding: 15px 10px;
    width: 180px;
}

.review-session-overview .review-session-block .session-percentage {
    font-size: 40px;
    font-weight: 700;
    line-height: 1.1;
}

.review-session-overview .review-session-block .session-stats {
    font-size: 16px;
    line-height: 1;
}

.review-session-overview .review-session-items {
    display: flex;
    flex: 1;
    justify-content: space-between;
    column-gap: 45px;
}

.review-session-wrapper .review-session-item {
    color: #000;
    font-size: 16px;
    line-height: 1;
    border-left: 4px solid #a2b8df;
    padding-left: 12px;
}

.review-session-wrapper .review-session-items .review-session-item:nth-child(2) {
    border-color: #af88be;
}

.review-session-wrapper .review-session-items .review-session-item:nth-child(3) {
    border-color: #d3ad29;
}

.review-session-wrapper .review-session-items .review-session-item:nth-child(4) {
    border-color: #828fa2;
}

.review-session-wrapper .review-session-item .session-item-value {
    font-size: inherit;
    margin: 0;
}

.review-session-wrapper .review-session-item .session-item-label {
    margin-bottom: 10px;
}

.review-session-wrapper .review-session-details-title {
    border-bottom: 1px solid #000;
    margin-bottom: 0;
}

.review-session-wrapper .review-session-details-title h5 {
    color: #000;
    position: relative;
    margin: 0;
    padding: 0 0 5px;
    line-height: 1;
    font-size: 16px;
    justify-content: flex-start;
    align-items: center;
    column-gap: 8px;
}

.review-session-wrapper .review-session-details-title h5 i {
    font-size: 24px;
    line-height: 0;
    position: relative;
    bottom: 2px;
    left: 0;
    top: auto;
}

.review-session-wrapper .no-filters .review-session-details-title h5::after,
.review-session-wrapper .review-session-details-title .with-filters::after {
    content: '';
    display: block;
    width: 100%;
    max-width: 180px;
    height: 6px;
    background: #000;
    position: absolute;
    left: 0;
    top: 100%;
}

.review-session-wrapper .no-filters .review-session-details-title h5.no-filters,
.review-session-wrapper .review-session-details-title .with-filters {
    display: flex;
    position: relative;
}

.review-session-wrapper .no-filters .review-session-details-title .with-filters,
.review-session-wrapper .review-session-details-title h5.no-filters {
    display: none;
}

.review-session-wrapper .review-session-details-title .with-filters h5 {
    cursor: pointer;
}

.review-session-wrapper .session-table {
    border: 1px solid #D1D1D1;
}

.review-session-wrapper .review-session-details-title .with-filters {
    flex-direction: column;
}

.review-session-wrapper .review-session-details-title .with-filters .review-accordion {
    padding-bottom: 0;
}

.review-session-wrapper .review-session-details-title .with-filters h5 {
    display: flex;
}

.review-session-wrapper .selected-filters.individual-widget {
    display: flex;
    margin: 3px 0 6px;
}

.review-session-wrapper .session-table th,
.review-session-wrapper .session-table td {
    color: #000;
    text-align: left;
}

.review-session-wrapper .session-table td:nth-child(1),
.review-session-wrapper .session-table th:nth-child(1),
.review-session-wrapper .session-table td:nth-last-child(1),
.review-session-wrapper .session-table th:nth-last-child(1),
.review-session-wrapper .session-table td:nth-last-child(2),
.review-session-wrapper .session-table th:nth-last-child(2) {
    text-align: center;
}

.review-session-wrapper .session-table th {
    font-size: 14px;
    padding: 15px 10px;
}

.review-session-wrapper .session-table td {
    font-size: 14px;
}

.review-session-wrapper .session-table tr:nth-child(odd) td {
    background: #F3F3F3;
}

.review-session-wrapper .session-table tr:nth-child(even) td {
    background: #FFF;
}

.review-session-wrapper .session-table td .fa-check {
    color: #73b438;
}

.review-session-wrapper .session-table td .fa-times {
    color: #e04f4f;
}

.review-session-wrapper .session-table .mark-item {
    color: #A6A6A6;
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    padding: 4px;
    background-color: transparent;
    cursor: pointer;
    font-size: 16px;
}

.review-session-wrapper .session-table .mark-item:hover {
    color: #000;
}

.review-session-wrapper .session-table .mark-item.marked {
    color: #b4151d;
}

.review-session-wrapper .container-table-wrapper {
    margin-top: 60px;
}

.review-session-wrapper .section-item .section-content {
    background: transparent;
    border-bottom: 1px solid #CCC;
    border-top: 0;
}

.review-session-wrapper .review-filters-header {
    padding: 0;
    border-bottom: 0;
    background: #FFF;
}

.review-session-wrapper .review-filters-header .custom-grid {
    display: flex;
    column-gap: 30px;
    row-gap: 20px;
    padding-top: 20px;
    padding-bottom: 5px;
}

.review-session-wrapper .review-filters-header .custom-grid fieldset {
    flex: 1;
    max-width: 200px;
    margin: 0;
    padding: 0;
}

.review-session-wrapper .review-filters-header .custom-grid fieldset input {
    position: relative;
    top: -2px;
}

.review-session-wrapper .review-filters-header .custom-grid legend {
    color: #000;
    font-size: 14px;
    margin-bottom: 10px;
}

@media (max-width: 991px) {
    .review-session-overview .review-session-items {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(2, 1fr);
        row-gap: 20px;
        column-gap: 20px;
    }

    .review-session-overview .review-session-info {
        align-items: stretch;
    }

    .review-session-overview .review-session-block {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .review-session-wrapper .session-table {
        display: block;
    }

    .review-session-wrapper .session-table thead {
        display: none;
    }

    .review-session-wrapper .session-table tbody {
        display: block;
    }

    .review-session-wrapper .session-table td {
        display: inline-block;
        border: 0;
        background-color: transparent;
        padding: 3px 8px;
    }

    .review-session-wrapper .session-table tr {
        display: grid;
        grid-template-columns: 26px 1fr 1fr 100px auto;
        grid-template-rows: repeat(2, auto);
    }

    .review-session-wrapper .session-table tr:nth-child(odd) {
        background: #F3F3F3;
    }

    .review-session-wrapper .session-table tr:nth-child(even) {
        background: #FFF;
    }

    .review-session-wrapper .session-table .td-result {
        grid-area: 1 / 1 / span 2 / span 1;
        text-align: center;
        padding-left: 0;
        padding-right: 0;
        align-self: center;
    }

    .review-session-wrapper .session-table .td-question {
        font-weight: 700;
        align-self: flex-end;
    }

    .review-session-wrapper .session-table .td-subject {
        grid-area: 1 / 3 / span 1 / span 1;
        align-self: flex-end;
    }

    .review-session-wrapper .session-table .td-difficult {
        grid-area: 1 / 4 / span 2 / span 1;
        align-self: center;
    }

    .review-session-wrapper .session-table .td-note {
        grid-area: 1 / -1 / span 1 / span 1;
    }

    .review-session-wrapper .session-table .td-flag {
        grid-area: 2 / -1 / span 1 / span 1;
    }

    .review-session-wrapper .session-table .td-mytime {
        grid-area: 2 / 2 / span 1 / span 1;
        align-self: flex-start;
    }

    .review-session-wrapper .session-table .td-other-times {
        grid-area: 2 / 3 / span 1 / span 1;
        align-self: flex-start;
    }

    .review-session-wrapper .session-table td[title]::before {
        content: attr(title);
        display: inline-block;
        margin-right: 4px;
        font-weight: 400;
        opacity: 0.7;
        line-height: 1;
    }
}

@media (max-width: 600px) {
    .review-session-overview .review-session-info {
        flex-direction: column;
    }

    .review-session-overview .review-session-block {
        width: 100%;
        margin-bottom: 20px;
    }
}

@media (max-width: 540px) {
    .review-session-wrapper .session-table td[title]::before {
        display: block;
        margin-right: 0;
        font-size: 12px;
    }

    .review-session-wrapper .session-table tr {
        grid-template-columns: 26px 1.2fr 1fr 70px auto;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .review-session-wrapper .session-table .td-difficult {
        font-size: 13px;
    }

    .review-session-wrapper .session-table .td-flag i,
    .review-session-wrapper .session-table .td-note i {
        font-size: 14px;
    }

    .review-session-overview .review-session-items {
        display: flex;
        flex-direction: column;
        row-gap: 20px;
    }

    .review-session-wrapper .review-session-details-title {
        margin-bottom: 0;
    }

    .review-session-wrapper .container-table-wrapper {
        margin-top: 40px;
    }

    .review-session-wrapper .session-table .td-question,
    .review-session-wrapper .session-table .td-subject,
    .review-session-wrapper .session-table .td-result,
    .review-session-wrapper .session-table .td-difficult {
        align-self: flex-start;
    }

    .review-session-wrapper .review-session-item .session-item-label {
        margin-top: 6px;
    }

    .review-session-wrapper .session-table .mark-item {
        padding-top: 0;
        padding-bottom: 0;
        align-self: flex-start;
        line-height: 0;
        font-size: 16px;
    }

    .review-session-wrapper .session-table .mark-item i {
        font-size: 16px;
    }

    .review-session-wrapper .review-filters-header .custom-grid.custom-row {
        padding-bottom: 15px;
        flex-direction: column;
    }
}

/* END MODULE: DETAIL REVIEW ------------------------------------------ */
/* MODULE: MENU SECONDARY --------------------------------------------- */
div.secondary-navigation .menu.menu-secondary li,
div.secondary-navigation .menu.menu-secondary li a {
    height: 46px;
    overflow: hidden;
    line-height: 1;
    position: relative;
    vertical-align: top;
}

div.secondary-navigation .menu.menu-secondary li a {
    display: inline-flex;
    justify-content: flex-start;
    align-items: center;
}

div.secondary-navigation .menu.menu-secondary li a::after {
    height: 4px;
}

div.secondary-navigation .menu.menu-secondary li.disabled {
    overflow: visible;
}

div.secondary-navigation .menu.menu-secondary li.disabled a {
    color: #a8a8a8;
    cursor: no-drop;
}

div.secondary-navigation .menu.menu-secondary li.disabled a:hover::after {
    transform: scaleX(0);
}

div.secondary-navigation .menu.menu-secondary li.disabled .menu-secondary-tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    transform: translateX(-50%);
    padding: 8px 14px;
    background: #333;
    color: #FFF;
    font: 400 13px/1.3em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    white-space: nowrap;
    border-radius: 4px;
    line-height: 1.3;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease, visibility 0.15s ease;
    z-index: 500;
    -webkit-font-smoothing: antialiased;
}

div.secondary-navigation .menu.menu-secondary li.disabled:hover .menu-secondary-tooltip {
    opacity: 1;
    visibility: visible;
}

/* END MODULE: MENU SECONDARY ----------------------------------------- */
/* MODULE: PRACTICES -------------------------------------------------- */
.topic-content.active .topic-progress[data-level="1"] .progress-bar span {
    width: 100%;
    animation: none;
}

.topic-content.active .topic-progress[data-level="2"] .progress-bar span {
    width: 100%;
    animation: progressBarLevel2 4s cubic-bezier(0, 1, .7, 1) forwards;
}

.topic-content.active .topic-progress[data-level="3"] .progress-bar span {
    width: 100%;
    animation: progressBarLevel3 4s cubic-bezier(0, 1, .7, 1) forwards;
}

.topic-content.active .topic-progress[data-level="4"] .progress-bar span,
.topic-content.active .topic-progress[data-level="5"] .progress-bar span {
    width: 100%;
    animation: progressBarLevel4 4s cubic-bezier(0, 1, .7, 1) forwards;
}

@keyframes progressBarLevel2 {
    0% {
        width: 100%;
    }

    100% {
        width: 67%;
    }
}

@keyframes progressBarLevel3 {
    0% {
        width: 100%;
    }

    100% {
        width: 34%;
    }
}

@keyframes progressBarLevel4 {
    0% {
        width: 100%;
    }

    100% {
        width: 0%;
    }
}

/* END MODULE: END PRACTICES ------------------------------------------ */
/* MODULE: LESSONS ---------------------------------------------------- */
.lesson-item .btn-score.unlike.selected,
.lesson-score .btn.btn-score.unlike.selected {
    background: #a2b8df;
}

.review-wrapper .results-header p#res_titulo {
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.review-wrapper .results-header p#res_titulo img {
    flex: none;
}

/* MODULE: SIMULATION EXAM -------------------------------------------- */
.main-wrapper#test-wrapper>.container {
    position: relative;
    overflow: hidden;
}

.main-wrapper.test-wrapper .results {
    padding-bottom: 28px;
}

.main-wrapper.test-wrapper>.container {
    border-radius: 12px;
    padding-top: 15px;
    padding-bottom: 15px;
}

.remodal.incomplete-practice-modal {
    border-radius: 12px;
    padding: 32px 48px 38px;
    max-width: 510px;
}

.main-wrapper.test-wrapper .incomplete-practice-modal .modal-content p {
    color: #000;
    font-weight: 400;
    font-size: 18px;
    line-height: 21.79px;
    letter-spacing: 0;

}

.incomplete-practice-modal .modal-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 18px;
    row-gap: 16px;
    margin-top: 28px;
}

.incomplete-practice-modal .incomplete-icon {
    margin: 0 auto 16px;
    width: 28px;
    height: 28px;
}

.incomplete-practice-modal .incomplete-icon svg {
    width: 100%;
    height: 100%;
}

.incomplete-practice-modal .modal-actions .btn {
    flex: 1;
    width: 100%;
}

.incomplete-practice-modal .modal-actions svg {
    width: 18px;
    height: 18px;
    display: inline-block;
    margin-left: 10px;
}

.remodal-overlay.incomplete-practice {
    background: rgba(187, 187, 187, 0.4);
    backdrop-filter: blur(5px);
}

.remodal-overlay.incomplete-practice,
.remodal-wrapper.incomplete-practice {
    position: absolute;
}

.remodal-wrapper.incomplete-practice {
    padding-top: 70px;
}

.remodal-wrapper.incomplete-practice::after,
.remodal.incomplete-practice::after {
    vertical-align: top;
}

@media (max-width: 767px) {
    .remodal.incomplete-practice-modal {
        padding: 32px 24px;
    }

    .main-wrapper.test-wrapper .incomplete-practice-modal .modal-content p {
        font-size: 16px;
        line-height: 1.2;
    }

    .incomplete-practice-modal .modal-actions {
        flex-direction: column;
        row-gap: 12px;
    }

    .incomplete-practice-modal .modal-actions .btn {
        max-width: 220px;
    }

}

/* END MODULE: SIMULATION EXAM ---------------------------------------- */

/* END MODULE: LESSONS ------------------------------------------------ */
/* MODULE: CONFETTI BUTTON -------------------------------------------- */
canvas.confetti-canvas {
    pointer-events: none;
    position: fixed;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 400;
}

button.btn-confetti[data-state="complete"]~canvas.confetti-canvas {
    animation: fadeOutCanvas 0.4s ease forwards;
}

button.btn-confetti {
    background: none;
    border: none;
    color: #f4f7ff;
    cursor: pointer;
    font-size: 16px;
    font-weight: 400;
    overflow: hidden;
    position: relative;
    height: 40px;
    width: 190px;
    box-shadow: none;
    outline: none;
}

button.btn-confetti::before {
    background: #000;
    border-radius: 0;
    content: '';
    display: block;
    height: 100%;
    top: 0;
    left: 0;
    margin: 0 auto;
    position: absolute;
    transition: transform 0.2s cubic-bezier(0.39, 1.86, 0.64, 1) 0.3s, background-color 0.3s ease 0s;
    width: 100%;
}

button.btn-confetti[data-state="ready"] .submitMessage svg {
    opacity: 1;
    top: 1px;
    transition: top 0.4s ease 600ms, opacity 0.3s linear 600ms;
}

button.btn-confetti[data-state="ready"] .submitMessage .button-text span {
    top: 0;
    opacity: 1;
    transition: all 0.2s ease calc(var(--dr) + 600ms);
}

button.btn-confetti[data-state="loading"]::before {
    transition: transform 0.3s ease;
    transform: scaleX(0.8);
}

button.btn-confetti[data-state="loading"] .loadingMessage {
    opacity: 1;
}

button.btn-confetti[data-state="loading"] .loadingCircle {
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-name: loadingButtonConfetti;
    cy: 10;
}

button.btn-confetti[data-state="complete"] .submitMessage svg {
    top: -30px;
    transition: none;
}

button.btn-confetti[data-state="complete"] .submitMessage .button-text span {
    top: -8px;
    transition: none;
}

button.btn-confetti[data-state="complete"] .loadingMessage {
    top: 80px;
}

button.btn-confetti[data-state="success"] .successMessage .button-text span,
button.btn-confetti[data-state="error"] .wrongMessage .button-text span {
    left: 0;
    opacity: 1;
    transition: all 0.2s ease calc(var(--d) + 1000ms);
}

button.btn-confetti[data-state="success"] .successMessage svg,
button.btn-confetti[data-state="error"] .wrongMessage svg {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 0.3s ease-in-out 0.5s;
}

button.btn-confetti .button-text span {
    opacity: 0;
    position: relative;
}

button.btn-confetti .message {
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
}

button.btn-confetti .message svg {
    display: inline-block;
    fill: none;
    margin-right: 5px;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

button.btn-confetti[data-state="loading"],
button.btn-confetti[data-state="success"],
button.btn-confetti[data-state="error"] {
    pointer-events: none;
}

button.btn-confetti .submitMessage .button-text span {
    top: 8px;
    transition: all 0.2s ease var(--d);
}

button.btn-confetti .submitMessage svg {
    color: #5c86ff;
    margin-left: -1px;
    opacity: 0;
    position: relative;
    top: 30px;
    transition: top 0.4s ease, opacity 0.3s linear;
    width: 14px;
}

button.btn-confetti .loadingMessage,
button.btn-confetti .successMessage,
button.btn-confetti .completeMessage,
button.btn-confetti .wrongMessage {
    opacity: 0;
    transition: opacity 0.3s linear 0.3s, top 0.4s cubic-bezier(0.22, 0, 0.41, -0.57);
}

button.btn-confetti .loadingMessage svg {
    margin: 0;
    width: 22px;
}

button.btn-confetti .successMessage .button-text span,
button.btn-confetti .wrongMessage .button-text span {
    left: 5px;
    transition: all 0.2s ease var(--dr);
}

button.btn-confetti .successMessage svg,
button.btn-confetti .wrongMessage svg {
    color: #73b438;
    stroke-dasharray: 20;
    stroke-dashoffset: 20;
    transition: stroke-dashoffset 0.3s ease-in-out;
    width: 14px;
}

button.btn-confetti .wrongMessage svg {
    width: 11px;
    color: #e04f4f;
}

button.btn-confetti .loadingCircle:nth-child(2) {
    animation-delay: 0.1s;
}

button.btn-confetti .loadingCircle:nth-child(3) {
    animation-delay: 0.2s;
}

/* States */
button.btn-confetti .message {
    opacity: 0;
}

button.btn-confetti[data-state="ready"] .submitMessage {
    opacity: 1;
}

button.btn-confetti[data-state="loading"] .loadingMessage {
    opacity: 1;
}

button.btn-confetti[data-state="success"] .successMessage {
    opacity: 1;
}

button.btn-confetti[data-state="error"] .wrongMessage {
    opacity: 1;
}

button.btn-confetti[data-state="complete"] .completeMessage {
    opacity: 1;
    transition-delay: 0.5s;
}

button[data-confetti-disabled].btn-confetti[data-state="success"]::before {
    background: #73b438;
    transition-delay: 0.1s;
}

button[data-confetti-disabled].btn-confetti[data-state="error"]::before {
    background: #e04f4f;
    transition-delay: 0.1s;
}

button[data-confetti-disabled].btn-confetti[data-state="success"] .successMessage svg,
button[data-confetti-disabled].btn-confetti[data-state="error"] .wrongMessage svg {
    color: #FFF;
}

button[data-confetti-disabled]~canvas.confetti-canvas {
    display: none;
}

@keyframes loadingButtonConfetti {
    0% {
        cy: 10;
    }

    25% {
        cy: 3;
    }

    50% {
        cy: 10;
    }
}

@keyframes fadeOutCanvas {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

/* END MODULE: CONFETTI BUTTON ---------------------------------------- */
/* MODULE: ACCOUNT ---------------------------------------------------- */
.account-content .form-field label {
    left: 0;
}

.account-content .form-field h4 {
    line-height: 1em;
    font-weight: 700;
    font-size: 13px;
}

.account-content .form-field .radio-options input[type="radio"] {
    position: relative;
    top: -1px;
    background: none;
    box-shadow: none;
}

/* Botón eliminar cuenta (Zona de peligro) - usa $error_color del proyecto */
button.btn.btn-danger,
a.btn.btn-danger {
    background: #e04f4f !important;
    color: #FFF !important;
    border: 0;
}

button.btn.btn-danger:hover,
a.btn.btn-danger:hover {
    background: #c74545 !important;
    color: #FFF !important;
}

.account-content .password-field-wrap {
	position: relative;
	width: 100%;
	max-width: 520px;
}

/* END MODULE: ACCOUNT ------------------------------------------------ */

/* MODULE: PASSWORD FIELD TOGGLE -------------------------------------- */
/* Contenedor = mismo ancho que el input (evita que el ojo quede fuera si el input tiene max-width). */
.password-field-wrap {
	position: relative;
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.password-field-wrap .password-field-input {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	padding-right: 44px !important;
}

/* Checkout: mismo tope que selects/campos del flujo (620px) */
.checkout-content .password-field-wrap {
	max-width: 620px;
	width: 100%;
}

button.password-field-toggle {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 34px;
	height: 28px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 6px;
	background: transparent;
	color: #555;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	line-height: 1;
	-webkit-appearance: none;
	appearance: none;
	outline: none;
	box-shadow: none;
}

button.password-field-toggle::-moz-focus-inner {
	border: 0;
	padding: 0;
}

button.password-field-toggle:hover,
button.password-field-toggle:focus,
button.password-field-toggle:focus-visible,
button.password-field-toggle:active {
	color: #111;
	background: rgba(0, 0, 0, 0.06);
	outline: none !important;
	outline-offset: 0 !important;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent;
}

button.password-field-toggle .fa {
	font-size: 1rem;
}

/* END MODULE: PASSWORD FIELD TOGGLE -------------------------------- */

/* MODULE: CUSTOM PRACTICE -------------------------------------------- */
.main-wrapper.custom-wrapper {
    min-height: calc(100vh - 195px);
}

.main-wrapper.custom-wrapper .custom-content.custom-practice-content {
    padding: 0;
}

.resume-practice-wrapper {
    display: none;
    column-gap: 18px;
    justify-content: flex-start;
    align-items: center;
    flex-flow: row wrap;
    margin-top: 0;
    padding: 35px 60px 30px;
}

.resume-practice-wrapper.visible {
    display: flex;
}

.resume-practice-wrapper .resume-practice-heading {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
}

.resume-practice-wrapper .resume-practice-title {
    font-weight: 500;
    font-size: 20px;
    margin: 0;
}

.resume-practice-wrapper .resume-practice-heading svg {
    width: 20px;
    height: 20px;
    margin-right: 9px;
    position: relative;
    top: -2px;
}

.resume-practice-wrapper .btn.resume-practice-cta {
    display: inline-flex;
    align-items: center;
    column-gap: 10px;
    padding: 10px 18px;
}

.resume-practice-wrapper .btn.resume-practice-cta svg {
    width: 17px;
    height: 14px;
}

.custom-practice-heading {
    padding: 80px 60px 0;
    border-bottom: 1px solid #000;
}

.resume-practice-wrapper.visible~.custom-practice-heading {
    padding-top: 0;
}

.main-wrapper.custom-wrapper .custom-practice-heading .custom-title {
    margin-bottom: 0;
    position: relative;
    padding-bottom: 8px;
}

.main-wrapper.custom-wrapper .custom-practice-heading .custom-title::before {
    content: '';
    display: inline-block;
    height: 5px;
    background: #000;
    width: 260px;
    position: absolute;
    left: 0;
    top: 100%;
}

.custom-practice-content .custom-practice-form {
    padding: 40px 60px 30px;
}

.custom-practice-content .custom-field .required {
    color: #e04f4f;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field label {
    color: #000;
    margin-bottom: 8px;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field select {
    width: 240px;
    border-color: #000;
    height: 38px;
    margin-bottom: 0;
    padding-left: 10px;
    border-radius: 0;
    color: #000;
    background-color: #FFF;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field.invalid .field-error {
    display: inline-block;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field .field-error {
    color: #e04f4f;
    font-weight: 500;
    font-size: 13px;
    display: none;
    position: relative;
    bottom: 1px;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field.select-subject {
    background: #f8f8f8;
    border: 1px solid #CCC;
    padding: 30px;
    margin-top: 15px;
    display: none;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field.select-subject.visible {
    display: block;
}

.main-wrapper.custom-wrapper .custom-field.select-subject label {
    margin-bottom: 0;
}

.main-wrapper.custom-wrapper .custom-field.select-subject .subject-controls {
    margin: 6px 0 0;
    font-size: 14px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.main-wrapper.custom-wrapper .custom-field.select-subject .subject-controls a {
    color: #3261B0;
}

.main-wrapper.custom-wrapper .custom-field.select-subject .subject-controls .sep {
    height: 15px;
    background: #000;
    width: 1px;
    margin: 0 8px;
    position: relative;
    top: 1px;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field .subjects {
    padding-bottom: 0;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field .subjects-items {
    width: 100%;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 20px;
    row-gap: 10px;
    padding-right: 0;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field .subjects-items label {
    margin: 0;
    font-weight: 400;
    font-size: 15px;
    align-items: flex-start;
    justify-content: flex-start;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field .subjects-items label input {
    flex: none;
    top: -1px;
}

.custom-practice-content .custom-row {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    column-gap: 30px;
    row-gap: 20px;
    margin-top: 30px;
}

.custom-wrapper .custom-practice-content .custom-row .custom-field {
    width: 100%;
    max-width: 240px;
    flex: 1;
}

.custom-wrapper .custom-practice-content .custom-row .custom-field select {
    width: 100%;
    border-radius: 0;
}

.custom-wrapper .custom-practice-content .custom-row .custom-field select[name="cantidadEjercicios"] {
    max-width: 80px;
}

.custom-wrapper .custom-practice-content .custom-row .custom-field+.custom-field {
    margin-top: 0;
}

.custom-wrapper .custom-practice-content .custom-radio-list {
    display: flex;
    flex-flow: row wrap;
    row-gap: 8px;
    column-gap: 30px;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-radio-list label {
    margin-bottom: 0;
    font-size: 14px;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-radio-list input[type="radio"] {
    top: -1px;
    margin-right: 8px;
}

.custom-wrapper .custom-practice-content .custom-field.tipo {
    margin-top: 30px;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field.tipo h6 {
    margin-bottom: 14px;
    color: #000;
}

.main-wrapper.custom-wrapper .custom-practice-content .custom-field-button-options h6 {
    color: #000;
}

.main-wrapper.custom-wrapper .custom-button-options {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    row-gap: 12px;
    column-gap: 12px;
    margin-top: 10px;
}

.main-wrapper.custom-wrapper .custom-field-button-options .note {
    font-size: 13px;
    color: #555555;
    margin-top: 6px;
}

.main-wrapper.custom-wrapper .custom-field-button-options label.button-item {
    margin-bottom: 0;
}

.main-wrapper.custom-wrapper .custom-field-button-options .button-label {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 38px;
    border: 1px solid #BBB;
    cursor: pointer;
    margin-bottom: 0;
    font-weight: 500;
    color: #666;
    line-height: 1;
    padding-top: 2px;
}

.main-wrapper.custom-wrapper .custom-field-button-options input:checked~.button-label {
    color: #000;
    background: #E6E6E6;
    border-color: #E6E6E6;
}

.main-wrapper.custom-wrapper .custom-field .custom-button-options input[type="radio"] {
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    width: 0;
    height: 0;
}

.main-wrapper.custom-wrapper div.custom-footer {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    column-gap: 20px;
    row-gap: 15px;
    padding-top: 30px;
    padding-bottom: 30px;
}

.main-wrapper.custom-wrapper div.custom-footer .btn {
    flex: none;
}

.main-wrapper.custom-wrapper div.custom-footer .mensaje {
    margin-bottom: 0;
    padding: 0;
}

@media (max-width: 991px) {
    .main-wrapper.custom-wrapper .custom-practice-content .custom-field .subjects-items {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .resume-practice-wrapper {
        padding: 30px 20px 30px;
    }

    .resume-practice-wrapper .resume-practice-title {
        font-size: 16px;
    }

    .resume-practice-wrapper .resume-practice-heading {
        align-items: flex-start;
    }

    .resume-practice-wrapper .resume-practice-heading svg {
        width: 16px;
        height: 16px;
        margin-right: 5px;
        top: 1px;
    }

    .resume-practice-wrapper .btn.resume-practice-cta {
        margin-top: 10px;
    }

    .custom-practice-heading {
        padding-left: 20px;
        padding-right: 20px;
        padding-top: 35px;
    }

    .main-wrapper.custom-wrapper .custom-practice-heading .custom-title {
        font-size: 22px;
        padding-bottom: 6px;
    }

    .main-wrapper.custom-wrapper .custom-practice-heading .custom-title::before {
        width: 180px;
    }

    .custom-practice-content .custom-practice-form {
        padding-left: 20px;
        padding-right: 20px;
    }

    .main-wrapper.custom-wrapper div.custom-footer {
        padding: 20px;
        flex-direction: column;
        row-gap: 10px;
    }

    .main-wrapper.custom-wrapper .custom-practice-content .custom-field .subjects-items {
        grid-template-columns: 1fr;
    }

    .main-wrapper.custom-wrapper .custom-practice-content .custom-field.select-subject {
        padding: 20px 15px;
    }

    .custom-practice-content .custom-row,
    .custom-wrapper .custom-practice-content .custom-radio-list {
        flex-direction: column;
    }

    .custom-practice-content .custom-row {
        margin-top: 20px;
    }

    div.main-wrapper.custom-wrapper {
        padding-top: 5px;
        padding-bottom: 5px;
    }
}

/* END MODULE: CUSTOM PRACTICE ---------------------------------------- */

/* MODULE: CUSTOM SELECT ---------------------------------------------- */
.select-area-wrapper {
    margin-bottom: 6px;
}

.select-area-wrapper .select-area-label {
    font-size: 14px;
    font-weight: 500;
    color: #909090;
    margin-bottom: 6px;
}

.select-area-wrapper .select-area-selected {
    height: 48px;
    width: 100%;
    border: 1px solid #000;
    font-size: 16px;
    color: #000;
    font-weight: 700;
    display: inline-flex;
    justify-content: flex-start;
    align-items: center;
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
}

.select-area-wrapper .select-area-selected:hover {
    background: #f1f1f1;
}

.select-area-wrapper .select-area.is-locked .select-area-selected {
    pointer-events: none;
    cursor: default;
    background: #f5f5f5;
    border-color: #ccc;
}

.select-area-wrapper .select-area.is-locked .select-area-selected:hover {
    background: #f5f5f5;
}

.select-area-wrapper .select-area-selected .select-area-number {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    background: #D9D9D9;
    border-right: 1px solid #000;
    width: 70px;
    line-height: 1;
    text-align: center;
}

.select-area-wrapper .select-area-selected .select-area-name {
    height: 100%;
    display: flex;
    flex: 1;
    padding: 0 32px 0 14px;
    line-height: 1;
    align-items: center;
}

.select-area-wrapper .select-area.is-placeholder .select-area-selected .select-area-name {
    color: #909090;
    font-weight: 500;
}

.main-wrapper.test-wrapper .test-list .test-item.active .btn.disabled {
    opacity: 0.45;
    pointer-events: none;
    cursor: not-allowed;
}

.select-area-wrapper .select-area-selected i {
    font-size: 28px;
    position: absolute;
    right: 10px;
    top: 50%;
    transition: transform 0.2s ease;
    transform: translateY(-50%);
}

.select-area-wrapper .select-area.open .select-area-selected i {
    transform: translateY(-50%) rotate(180deg);
}

.select-area-wrapper .select-area {
    position: relative;
}

.select-area-wrapper .select-area > .select-area-options {
    background: #FFF;
    width: calc(100% - 70px);
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 100;
    list-style: none;
    padding: 5px 0;
    margin: 0;
    box-shadow: 0 3px 5px 2px rgba(0, 0, 0, 0.1);
    pointer-events: none;
    display: none;
    visibility: hidden;
    opacity: 0;
}

.select-area-wrapper .select-area.open > .select-area-options {
    pointer-events: all;
    display: block;
    visibility: visible;
    opacity: 1;
}

.select-area-wrapper h4.select-area-title {
    padding: 0;
    margin: 0;
    border: 0;
    font-size: 22px;
    font-weight: 500;
    color: #000;
    margin-top: 20px;
}

.select-area-wrapper .select-area-option {
    padding: 12px 14px;
    font-size: 16px;
    cursor: pointer;
}

.select-area-wrapper .select-area-option span {
    display: inline-block;
}

.select-area-wrapper .select-area-option:hover {
    color: #000;
}

.select-area-wrapper .select-area-option+.select-area-option {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.test-list .item-footer .item-footer-hint {
    margin: 0;
    max-width: 280px;
    text-align: center;
    color: #777;
    font: 400 15px/1.4 "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
}

/* END MODULE: CUSTOM SELECT ------------------------------------------ */

/* PAGE: MISTAKES ----------------------------------------------------- */
.main-wrapper.mistakes-page-wrapper {
    padding-top: 0;
}

.mistakes-page-wrapper .mistakes-heading {
    background-color: #D9D9D9;
    min-height: 86px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
}

.mistakes-page-wrapper .mistakes-page-title {
    margin: 0;
    padding: 20px 0;
    font: 500 24px/1em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    color: #000;
}

.mistakes-page-wrapper .mistake-item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    padding: 32px 0;
    border-bottom: 1px solid #CCC;
    column-gap: 30px;
}

.mistakes-page-wrapper .mistake-actions {
    display: flex;
    justify-content: center;
    column-gap: 25px;
    row-gap: 15px;
    flex-direction: row;
    padding-left: 10px;
}

.mistakes-page-wrapper .mistake-action-view {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    column-gap: 6px;
    color: #828fa2;
    font-size: 16px;
    padding: 0;
    transition: all 0.3s ease;
}

.mistakes-page-wrapper .mistake-action-view:hover {
    color: #000;
}

.mistakes-page-wrapper .mistake-action-view span {
    flex: 1;
}

.mistakes-page-wrapper .mistake-action-view svg {
    flex: none;
    height: 32px;
    width: auto;
}

.mistakes-page-wrapper .mistake-title {
    font-size: 16px;
    color: #000;
}

.mistakes-page-wrapper .mistake-chart-indicator {
    width: 100%;
    height: 7px;
    background-color: #D9D9D9;
    border-radius: 20px;
    box-shadow: inset 0 0 0 1px #BBB;
    position: relative;
    overflow: hidden;
    margin-top: 2px;
}

.mistakes-page-wrapper .mistake-title {
    flex: 1;
}

.mistakes-page-wrapper .mistake-chart {
    width: 40%;
    max-width: 320px;
}

.mistakes-page-wrapper .mistake-chart-labels {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #000;
    font-size: 16px;
}

.mistakes-page-wrapper .mistake-chart-number {
    font-weight: 700;
}

.mistakes-page-wrapper .mistake-chart-bar {
    width: 0;
    position: absolute;
    left: 0;
    height: 100%;
    border-radius: 20px;
    background-color: #af88be;
    transform-origin: left center;
    animation: horizontal-chart-bar 1.5s ease forwards;
}

@keyframes horizontal-chart-bar {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

.mistakes-page-wrapper .mistake-actions {
    margin-left: auto;
}

.mistakes-page-wrapper .no-errors {
    border: 1px solid #000;
    padding: 20px;
    font-size: 18px;
    text-align: center;
    margin-top: 30px;
}

@media (max-width: 991px) {
    .mistakes-page-wrapper .mistake-item {
        flex-wrap: wrap;
        padding: 20px 0;
    }

    .mistakes-page-wrapper .mistake-title {
        flex: none;
        width: 100%;
        margin-bottom: 15px;
        font-weight: 500;
        font-size: 17px;
        line-height: 1.3;
    }

    .mistakes-page-wrapper .mistake-chart {
        width: 100%;
        flex: 1;
    }
}

@media (max-width: 991px) {
    .mistakes-page-wrapper .mistake-chart {
        flex: none;
        width: 100%;
        max-width: none;
    }

    .mistakes-page-wrapper .mistake-actions {
        margin-top: 15px;
        margin-left: 0;
        width: 100%;
        padding-left: 0;
        justify-content: space-between;
    }

    .mistakes-page-wrapper .mistake-actions span br {
        display: none;
    }
}

@media (max-width: 520px) {
    .mistakes-page-wrapper .mistake-actions span br {
        display: inline;
    }

    .select-area-wrapper .select-area-selected,
    .select-area-wrapper .select-area-option {
        font-size: 14px;
    }

    .main-wrapper.test-wrapper .test-list .test-item .btn {
        margin-left: 0 !important;
    }
}

/* END PAGE: MISTAKES ------------------------------------------------- */

/* END MODULE: STATISTICS --------------------------------------------- */
.main-wrapper.statistics-wrapper {
    padding-top: 0;
}

.statistics-wrapper .statistics-modules {
    background: #D9D9D9;
    padding: 24px 0;
}

.statistics-wrapper .statistics-grid {
    display: flex;
    flex-direction: column;
    column-gap: 16px;
    row-gap: 16px;
}

.statistics-module-wrapper {
    background: #FFF;
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: 32px;
}

.statistics-module-wrapper.module-results-wrapper,
.statistics-module-wrapper.module-global-wrapper {
    padding: 30px 40px;
}

.statistics-module-wrapper.module-global-wrapper {
    align-items: center;
    justify-content: stretch;
    column-gap: 32px;
    display: grid;
    row-gap: 0;
    grid-template-columns: auto 380px;
}

.statistics-module-wrapper .module-global-progress {
    padding: 15px 0;
}

.statistics-module-wrapper.module-global-wrapper .statistics-module-header {
    grid-column: 1 / -1;
}

.statistics-module-wrapper.module-global-wrapper .statistics-module-header .module-title {
    margin: 0;
    color: #000;
    font-size: 24px;
    font-weight: 700;
}

.statistics-module-wrapper .module-left-column {
    width: 100%;
    flex: 1;
}

.statistics-module-wrapper .module-right-column {
    flex: none;
    width: 100%;
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    row-gap: 12px;
}

.statistics-module-wrapper .module-right-column .statistics-module {
    width: 100%;
}

.statistics-module .module-title {
    color: #000;
    font-size: 24px;
    font-weight: 700;
    margin: 0;
    line-height: 1.1;
}

.statistics-module .module-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 25px;
}

.statistics-module .module-time {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.statistics-module .module-time-filter {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.statistics-module .module-time-filter li {
    padding: 0;
}

.statistics-module .module-time-filter button {
    font-size: 14px;
    height: 28px;
    padding: 0 9px;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
    color: #444;
    border: 0;
    background-color: #F4F4F4;
    cursor: pointer;
    box-shadow: none;
    outline: 0;
    white-space: nowrap;
}

.statistics-module .module-time-filter button:hover {
    background: #E5E5E5;
}

.statistics-module .module-time-filter button.selected {
    background-color: rgba(0, 0, 0, 0.3);
}

.statistics-module .module-statistics-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    column-gap: 20px;
}

.statistics-module .chart-item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    color: #000;
    font-size: 16px;
    column-gap: 16px;
    width: 50%;
}

.statistics-module .chart-item-icon {
    flex: none;
    height: 68px;
    width: 68px;
}

.statistics-module .chart-item-icon.success-icon {
    color: #73b438;
}

.statistics-module .chart-item-icon.error-icon {
    color: #e04f4f;
}

.statistics-module .chart-item .chart-item-value {
    font-weight: 700;
    font-size: 20px;
}

.statistics-module .chart-item .chart-item-label {
    margin-top: 6px;
    font-size: 15px;
}

.statistics-module .chart-item-stats {
    line-height: 1;
}

.statistics-module.disabled .module-title,
.statistics-module.disabled .chart-item .chart-item-icon,
.statistics-module.disabled .chart-item .chart-item-value,
.statistics-module.disabled .chart-item .chart-item-icon,
.statistics-module.disabled .chart-item .chart-item-label {
    color: #9F9F9F;
}

.statistics-module .chart-item.plain-item.filtered .chart-item-stats:not(.selected) {
    display: none;
}

.statistics-module .chart-item-line {
    width: 1px;
    height: 68px;
    background: #808080;
}

.statistics-module .line-large {
    width: 1px;
    height: 90px;
    background: #808080;
}

.statistics-module .chart-item-graphic {
    width: 90px;
    height: 90px;
    flex: none;
}

.statistics-module .main-graphic .chart-item-graphic {
    width: 120px;
    height: 120px;
    flex: none;
    position: relative;
}


.statistics-module .main-graphic {
    position: relative;
}

.statistics-module .main-graphic .chart-item {
    column-gap: 20px;
}

.statistics-module .main-graphic .chart-item-value {
    font-size: 32px;
}

.statistics-module .main-graphic .chart-item-stats {
    text-align: left;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.statistics-module .main-graphic .chart-item-label {
    font-size: 13px;
    color: #6D6D6D;
    margin-top: 4px;
}

.module-strengths-opportunities .statistics-module,
.module-exam-forecast.statistics-module {
    border: 1px solid #9F9F9F;
    padding: 20px;
    border-radius: 10px;
}

.module-exam-forecast .module-forecast-row {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.statistics-module.module-exam-forecast .module-forecast-row .chart-item {
    width: 100%;
    justify-content: center;
}

.module-exam-forecast .module-forecast-row .chart-item-line {
    display: block;
    margin: 20px auto;
    width: 100%;
    height: 1px;
    background: #CCCCCC;
}

.statistics-module-wrapper .module-strengths-opportunities {
    width: 380px;
}

.module-strengths-opportunities .module-header {
    margin-bottom: 8px;
}

.module-strengths-opportunities .module-title {
    font-size: 16px;
}

.module-strengths-opportunities .statistics-module .progress-items {
    row-gap: 10px;
}

.module-results .module-header {
    margin-bottom: 32px;
}

.statistics-module .exam-date-info {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    justify-content: space-between;
    column-gap: 8px;
}

.statistics-module .exam-date-info .chart-item-label {
    color: #6D6D6D;
    font-size: 14px;
    font-weight: 700;
}

.statistics-module .exam-date-info .chart-item-value,
.statistics-module .exam-date-info .chart-item-date-expired {
    font-size: 15px;
    color: #000;
    font-weight: 700;
}

.statistics-module .exam-date-info .chart-item-date-expired {
    color: #6D6D6D;
}

.statistics-module .exam-date-info .chart-item-label,
.statistics-module .exam-date-info .chart-item-value {
    margin: 0;
}

.statistics-module .exam-date-info-left,
.statistics-module .exam-date-info-right {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    row-gap: 6px;
}

.module-exam-forecast .module-forecast-row .chart-item-graphic {
    width: 70px;
    height: 70px;
}

/* END MODULE: STATISTICS --------------------------------------------- */

/* MODULE: STATISTICS CIRCULAR CHART ---------------------------------- */
.circular-progress {
    width: 100%;
    height: 100%;
    color: #a2b8df;
}

.circular-progress:not(.disabled)[data-color="blue"] {
    color: #a2b8df;
}

.circular-progress:not(.disabled)[data-color="yellow"] {
    color: #d3ad29;
}

.circular-progress:not(.disabled)[data-color="purple"] {
    color: #af88be;
}

.circular-progress:not(.disabled)[data-color="gray"] {
    color: #939393;
}

.circular-progress svg {
    width: 100%;
    height: 100%;
}

.circle-background,
.circle-progress {
    fill: none;
}

.circle-background {
    stroke: #D9D9D9;
}

.circular-progress.disabled .circle-background {
    stroke: #9F9F9F;
}

.circular-progress.disabled {
    color: #9F9F9F;
}

.circle-progress {
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* END MODULE: STATISTICS CIRCULAR CHART ------------------------------ */

/* MODULE: STATISTICS MODULES -------------------------------------- */
.statistics-module.module-exam-results.disabled .module-title {
    color: #000;
}

.statistics-module .module-select {
    border: 0;
    background: #f2f2f2;
    border-radius: 0;
    outline: 0;
    height: 24px;
    min-width: 160px;
    padding-left: 4px;
    outline: 0;
    box-shadow: none;
}

.statistics-module .module-select:focus {
    background: #E5E5E5;
}

.statistics-module input[type="date"].module-select {
    box-shadow: none;
    font-size: 13px;
    min-width: 0;
    font-weight: 700;
    color: #666;
    padding: 0;
    background-color: transparent;
}

.statistics-module .form-field-input {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    row-gap: 7px;
    justify-content: flex-end;
}

.statistics-module .register-exam-date {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    column-gap: 8px;
    row-gap: 10px;
}

.statistics-module .register-exam-date label {
    margin: 0 0 6px;
    left: 0;
}

.statistics-module .register-exam-date .btn {
    padding: 8px 20px;
}

.statistics-module .exam-stats {
    display: flex;
    flex: 1;
    max-width: 360px;
    flex-direction: column;
    justify-content: flex-start;
    row-gap: 20px;
    padding-left: 0;
}

.statistics-module.disabled .exam-stats,
.statistics-module.disabled .row-total-value,
.statistics-module.disabled .stats-value {
    color: #9F9F9F;
}

.statistics-module .exam-stat[data-item] {
    display: none;
}

.statistics-module .exam-stat[data-item].selected {
    display: block;
}

.statistics-module .progress-chart-number,
.statistics-module .exam-stat .stat-value {
    font-weight: 700;
}

.statistics-module .exam-stat,
.statistics-module .progress-chart-labels {
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.statistics-module .progress-chart {
    width: 100%;
}

.statistics-module .module-date {
    margin-top: 10px;
    color: #9D9D9D;
    font-size: 16px;
}

.statistics-module.disabled .module-date {
    display: none;
}

.statistics-module .progress-chart-indicator {
    margin-top: 4px;
    width: 100%;
    height: 6px;
    background-color: #CCC;
    border-radius: 20px;
    position: relative;
    overflow: hidden;
    margin-top: 10px;
}

.statistics-module .progress-chart-bar {
    width: 0;
    position: absolute;
    left: 0;
    height: 100%;
    border-radius: 20px;
    background-color: #af88be;
    transform-origin: left center;
    animation: horizontal-chart-bar 1.5s ease forwards;
}

.statistics-module .progress-chart-indicator[data-color="blue"] .progress-chart-bar {
    background-color: #a2b8df;
}

.statistics-module .progress-chart-indicator[data-color="yellow"] .progress-chart-bar {
    background-color: #d3ad29;
}

.statistics-module .progress-chart-indicator[data-color="gray"] .progress-chart-bar {
    background-color: #828fa2;
}

.statistics-module .progress-chart-indicator[data-color="purple"] .progress-chart-bar {
    background-color: #af88be;
}

.statistics-module .progress-items {
    display: flex;
    flex-direction: column;
    row-gap: 15px;
}

.statistics-module .progress-items .progress-chart-text {
    font-size: 16px;
}

.statistics-module .progress-items .progress-chart-number {
    font-size: 16px;
    color: #000;
}

.statistics-module.disabled .progress-items .progress-chart-text,
.statistics-module.disabled .progress-items .progress-chart-number {
    color: #9F9F9F;
}

.statistics-module.disabled .progress-items .progress-chart-bar {
    display: none;
}

.statistics-module .btn.btn-simulation,
.statistics-module .form-field-input .btn {
    padding: 0 8px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 32px;
    font-size: 14px;
    font-weight: 700;
    flex: none;
}

.statistics-module .no-exam {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: flex-start;
    row-gap: 10px;
    column-gap: 8px;
}

.statistics-module .no-exam.forecast-results {
    justify-content: flex-start;
    column-gap: 14px;
    align-items: center;
}

.statistics-module .no-exam.forecast-results .chart-item-value {
    font-size: 22px;
}

.statistics-module .no-exam.forecast-results .chart-item-label {
    color: #6D6D6D;
}

.statistics-module .forecast-title {
    font-size: 17px;
    font-weight: 700;
    color: #000;
    margin: 0 0 2px;
}

.statistics-module .chart-item.chart-item-date {
    width: 100%;
}

.statistics-module .chart-item.chart-item-date .chart-item-stats {
    width: 100%;
}

.statistics-module .no-exam-content {
    flex: 1;
}

.statistics-module .no-exam-content .no-exam-description,
.statistics-module .register-exam-date .form-field-note {
    font-size: 12px;
    line-height: 1;
    margin-top: 3px;
    color: #999;
}

.statistics-module .no-exam-content .no-exam-title,
.statistics-module .register-exam-date label {
    margin: 0;
    font-size: 14px;
    line-height: 1.2;
    color: #808080;
}

.statistics-module .chart-item.align-to-bottom {
    align-self: flex-end;
}

.statistics-module .progress-chart.compact-style {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    justify-content: space-between;
    column-gap: 10px;
}

.statistics-module .progress-chart.compact-style .progress-chart-number {
    width: 40px;
    font-size: 14px;
    flex: none;
    text-align: right;
}

.statistics-module .progress-chart.compact-style .progress-chart-indicator {
    flex: 1;
    margin-top: 0;
}

.statistics-module .progress-chart.compact-style .progress-chart-text {
    flex: none;
    font-size: 13px;
    width: 120px;
}

.statistics-module .exam-stat {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    row-gap: 15px;
}

.statistics-module .stats-row-total {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
}

.statistics-module .row-total-value {
    font-weight: 700;
    color: #000;
}

.statistics-module .exam-stat .stats-row {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 10px;
    row-gap: 15px;
}

.statistics-module .module-global-content {
    flex: 1;
    max-width: 360px;
    width: 100%;
}

.statistics-module.module-global-progress .module-statistics-row {
    column-gap: 50px;
}

.statistics-module.module-global-progress .exam-stat .stats-row {
    grid-template-columns: repeat(2, auto);
    justify-content: space-between;
}

.statistics-module .exam-stat .stats-item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    column-gap: 8px;
}

.statistics-module .exam-stat .stats-icon {
    flex: none;
    line-height: 0;
}

.statistics-module .exam-stat .stats-label {
    font-size: 14px;
}

.statistics-module .exam-stat .stats-icon svg {
    width: 38px;
    height: 38px;
}

.statistics-module.module-exam-results .exam-stat .stats-icon svg {
    width: 24px;
    height: 24px;
}

.statistics-module-wrapper .statistics-module .chart-item {
    width: auto;
}

.statistics-module .module-time-selector {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.statistics-module .module-time-selector-label {
    font-size: 16px;
}

.statistics-module .stats-row-total {
    font-size: 16px;
    margin-bottom: 20px;
}

.statistics-module:not(.disabled) .success-color {
    color: #72A53A;
}

.statistics-module:not(.disabled) .error-color {
    color: #E65A4A;
}

.statistics-module:not(.disabled) .neutral-color {
    color: #808080;
}

.statistics-module .stats-value {
    font-weight: 700;
    color: #000;
}

.loader-wrapper {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1000;
    width: 100%;
    height: 100%;
    display: none;
    justify-content: center;
    align-items: center;
}

.loader-item {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    position: relative;
    animation: rotate 1s linear infinite
}

.loader-item::before {
    content: "";
    box-sizing: border-box;
    position: absolute;
    inset: 0px;
    border-radius: 50%;
    border: 5px solid #af88be;
    animation: prixClipFix 2s linear infinite;
}

.statistics-module-column {
    position: relative;
}

.statistics-module-column.loading .loader-wrapper {
    display: flex;
}

.statistics-module-column.loading .statistics-module {
    opacity: 0.3;
    pointer-events: none;
}

@keyframes rotate {
    100% {
        transform: rotate(360deg)
    }
}

@keyframes prixClipFix {
    0% {
        clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0)
    }

    25% {
        clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0)
    }

    50% {
        clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%)
    }

    75% {
        clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%)
    }

    100% {
        clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0)
    }
}

/* END MODULE: STATISTICS MODULES ------------------------------------- */

/* MODULE: MAIN STATISTICS CHART -------------------------------------- */
.statistics-module.chart-module {
    width: 100%;
    position: relative;
    margin-bottom: 40px;
}

.statistics-module.chart-module .module-header {
    justify-content: center;
}

.statistics-module.chart-module .module-title {
    text-align: center;
}

.statistics-module.chart-module::after {
    content: '';
    display: block;
    background: #FFF;
    width: 120px;
    height: 40px;
    position: absolute;
    left: 0;
    top: calc(100% - 2px);
    clip-path: polygon(100% 0, 0 0, 0 100%);
}

.statistics-module.chart-module .module-body {
    display: flex;
    justify-content: space-between;
}

.statistics-module.chart-module .main-chart-item {
    width: calc(100% - 200px);
    height: 350px;
    position: relative;
}

.statistics-module.chart-module .secondary-chart-item {
    height: 350px;
    width: 160px;
}

.statistics-module.chart-module .secondary-chart-item canvas,
.statistics-module.chart-module .main-chart-item canvas {
    width: 100%;
}

@media (max-width: 1199px) {
    .statistics-module .module-statistics-row {
        column-gap: 40px;
    }

    .statistics-module .exam-stat .stats-row {
        grid-template-columns: 1fr 1fr;
    }

    .statistics-module-wrapper.module-results-wrapper,
    .statistics-module-wrapper.module-global-wrapper {
        padding: 24px;
    }

    .statistics-module .main-graphic .chart-item-graphic {
        width: 100px;
        height: 100px;
    }

    .statistics-module .main-graphic .chart-item-value {
        font-size: 28px;
    }

    .statistics-module .stats-row-total,
    .statistics-module .module-time-selector-label {
        font-size: 14px;
    }

    .statistics-module-wrapper .statistics-module-header .module-title {
        font-size: 20px;
    }

    .statistics-module-wrapper .module-strengths-opportunities {
        max-width: 340px;
    }

    .statistics-module.module-global-progress .module-statistics-row,
    .statistics-module .module-statistics-row {
        column-gap: 30px;
    }

    .statistics-module .module-time-filter button {
        height: 26px;
        font-size: 12px;
        padding: 0 6px;
    }
}

@media (max-width: 991px) {
    .statistics-wrapper .statistics-grid {
        row-gap: 15px;
    }

    .statistics-module {
        grid-column: span 2;
    }

    .statistics-module.chart-module .main-chart-item {
        width: 100%;
        min-height: 0;
        position: relative;
    }

    .statistics-module.chart-module .module-body {
        flex-direction: column-reverse;
        row-gap: 30px;
    }

    .statistics-module-wrapper.chart-module-wrapper {
        padding: 24px 12px;
    }

    .statistics-module.chart-module {
        margin-bottom: 0;
    }

    .statistics-module.chart-module .secondary-chart-item {
        display: none;
    }

    .statistics-wrapper .statistics-modules {
        padding-bottom: 32px;
    }

    .statistics-module.chart-module::after {
        width: 80px;
        height: 30px;
        left: -12px;
        top: calc(100% + 16px);
    }

    .statistics-module-wrapper {
        flex-direction: column;
        row-gap: 40px;
    }

    .statistics-module-wrapper .module-right-column {
        max-width: 100%;
        width: 100%;
    }

    .statistics-module .exam-stat .stats-row {
        grid-template-columns: repeat(3, 1fr);
    }

    .statistics-module-wrapper .statistics-module .chart-item.exam-stats {
        flex: 1;
    }

    .statistics-module-wrapper .module-global-progress {
        padding: 0;
        margin-top: -8px;
    }
}

@media (max-width: 767px) {
    .statistics-module {
        padding: 0;
    }

    .statistics-module-wrapper .statistics-module.module-exam-results .chart-item {
        width: 100%;
    }

    .statistics-module-wrapper .statistics-module .chart-item.exam-stats {
        width: 100%;
    }

    .statistics-module .module-header {
        margin-bottom: 12px;
    }

    .statistics-module .chart-item-graphic,
    .statistics-module .chart-item-icon {
        width: 120px;
        height: 120px;
    }

    .statistics-module .module-title,
    .statistics-module .chart-item .chart-item-value {
        font-size: 18px;
    }

    .statistics-module .chart-item,
    .statistics-module .chart-item .chart-item-label {
        font-size: 14px;
    }

    .statistics-module .progress-items .progress-chart-text,
    .statistics-module .progress-items .progress-chart-number {
        font-size: 14px;
    }

    .statistics-module.chart-module .module-overflow {
        overflow: auto;
    }

    .statistics-module.module-global-progress .module-statistics-row {
        flex-direction: column;
        row-gap: 35px;
    }

    .statistics-module.module-global-progress .exam-stat .stats-row {
        grid-template-columns: repeat(2, auto);
        justify-content: space-between;
    }

    .statistics-module .main-graphic .chart-item-graphic {
        width: 180px;
        height: 180px;
    }

    .statistics-module .main-graphic .chart-item-value {
        font-size: 32px;
    }

    .statistics-module .module-header {
        flex-direction: column;
        row-gap: 10px;
        text-align: left;
        align-items: flex-start;
    }

    .module-left-column .statistics-module .module-header {
        margin-bottom: 25px;
    }

    .statistics-module-wrapper {
        row-gap: 30px;
    }

    .module-left-column .statistics-module .module-title {
        font-size: 24px;
    }

    .statistics-module .module-statistics-row {
        flex-direction: column;
        align-items: flex-start;
        row-gap: 15px;
    }

    .statistics-module .exam-stat .stats-row {
        grid-template-columns: repeat(2, auto);
        justify-content: space-between;
    }

    .statistics-module .module-global-content,
    .statistics-module-wrapper .statistics-module .chart-item.exam-stats {
        max-width: 100%;
    }

}

@media (max-width: 480px) {
    .statistics-module .module-header {
        flex-direction: column;
        align-items: flex-start;
        row-gap: 8px;
    }

    .statistics-module .chart-item-line {
        width: 100%;
        height: 1px;
    }

    .statistics-module .module-time,
    .statistics-module .chart-item {
        width: 100%;
    }

    .statistics-module .exam-date-info,
    .statistics-module .no-exam {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        row-gap: 20px;
    }

    .statistics-module-wrapper.module-results-wrapper,
    .statistics-module-wrapper.module-global-wrapper {
        padding: 24px 16px;
    }
}

/* END MODULE: MAIN STATISTICS CHART ---------------------------------- */

/* MODULE: STATISTICS TOPICS ------------------------------------------ */
.topics-wrapper .topics-heading {
    background: #D9D9D9;
    padding-top: 0;
}

.topics-wrapper .container {
    display: flex;
    min-height: 70px;
    padding-top: 20px;
    padding-bottom: 20px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.topics-wrapper .topics-title {
    font-weight: 700;
    font-size: 20px;
    color: #000;
    margin: 0;
}

.topics-wrapper .topics-container {
    padding-top: 30px;
    padding-bottom: 30px;
}

.topics-table {
    border: 1px solid #D1D1D1;
}

.topics-table th,
.topics-table td {
    color: #000;
    text-align: center;
}

.topics-table td:first-child,
.topics-table th:first-child {
    text-align: left;
}

.topics-table th .nowrap {
    width: 82px;
    display: inline-flex;
    justify-content: flex-start;
    align-items: center;
    column-gap: 4px;
}

.topics-table th .nowrap i {
    display: inline-block;
    flex: 0;
}

.topics-table td.td-time {
    width: 100px;
}

.topics-table td.td-rate {
    width: 140px;
}

.topics-table td.td-score .circular-progress {
    width: 36px;
    height: 36px;
}

.topics-table td.td-score .topic-chart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    column-gap: 8px;
    row-gap: 8px;
}

.topics-table th {
    font-size: 14px;
    padding: 15px 10px;
}

.topics-table td {
    font-size: 14px;
}

.topics-table tr:nth-child(odd) td {
    background: #F3F3F3;
}

.topics-table tr:nth-child(even) td {
    background: #FFF;
}

.topics-table td .fa-check {
    color: #73b438;
}

.topics-table td .fa-times {
    color: #e04f4f;
}

.topics-table .mark-item {
    color: #A6A6A6;
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    padding: 4px;
    background-color: transparent;
    cursor: pointer;
    font-size: 16px;
}

.topics-table .mark-item:hover {
    color: #000;
}

.topics-table .mark-item.marked {
    color: #b4151d;
}

.topics-table a.btn-view {
    border: 1px solid #000;
    background: transparent;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 36px;
    font-size: 14px;
    padding: 2px 0 0 0;
    color: #000 !important;
}

.topics-table a.btn-view:hover {
    background: #BABABA;
    border: 1px solid #000;
}

.topics-table a.view-action {
    color: #4AA3D2;
    font-weight: 700;
    text-decoration: underline;
}

.topics-table a.view-action:hover {
    color: #000;
}

.topics-wrapper .topics-heading .no-topic-selected {
    text-align: left;
    margin-top: 8px;
    display: block;
    font-size: 16px;
}

.topics-wrapper .topics-heading .container {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 0;
}

@media (max-width: 991px) {
    .topics-table {
        display: block;
        border-bottom: 0;
    }

    .topics-table tbody {
        display: block;
    }

    .topics-table thead {
        display: none;
    }

    .topics-table tr {
        display: grid;
        width: 100%;
        padding: 6px;
        justify-content: flex-start;
        border-bottom: 1px solid #D1D1D1;
        grid-template-columns: 1fr auto auto;
        grid-template-rows: repeat(2, auto);
    }

    .topics-table tr:nth-child(odd) {
        background: #F1F1F1;
    }

    .topics-table tr td {
        display: flex;
        background: transparent;
        border: none;
        padding: 4px 6px;
    }

    .topics-table td.td-title {
        grid-area: 1 / 1 / span 1 / span 1;
        align-items: flex-end;
        font-weight: 700;
    }

    .topics-table td.td-time {
        grid-area: 2 / 1 / span 1 / span 1;
        align-items: flex-start;
    }

    .topics-table td.table-action {
        grid-area: 2 / -1 / span 1 / span 1;
    }

    .topics-table td.td-score {
        grid-area: 1 / 2 / span 2 / span 1;
        justify-content: center;
    }

    .topics-table td.td-rate {
        grid-area: 2 / 2 / span 1 / span 1;
    }

    .topics-table td.td-view {
        grid-area: 1 / -1 / span 1 / span 1;
        text-align: center;
        justify-content: center;
    }

    .topics-table td.td-hide-mobile {
        display: none;
    }

    .topics-table td.td-score .topic-chart {
        flex-direction: column;
        font-size: 14px;
        row-gap: 10px;
    }

    .topics-table td.td-score .circular-progress {
        width: 32px;
        height: 32px;
    }

    .topics-table a.btn-view {
        width: 80px;
        height: 32px;
    }

    .topics-wrapper .topics-container {
        padding-top: 15px;
        padding-bottom: 0;
    }

    .topics-wrapper .topics-heading .no-topic-selected {
        font-size: 14px;
        margin-top: 5px;
    }
}

/* END MODULE: STATISTICS TOPICS -------------------------------------- */

/* MODULE: STATISTICS PREDICTION BLOCK -------------------------------- */
.statistics-module-prediction {
    width: 100%;
    max-width: 380px;
    border: 1px solid #6D6D6D;
    border-radius: 8px;
    padding: 20px;
}

.statistics-module-prediction .prediction-module-bottom {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #D9D9D9;
}

.statistics-module-prediction .prediction-bottom-state,
.statistics-module-prediction .prediction-top-state {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    column-gap: 20px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
    color: #6D6D6D;
}

.statistics-module-prediction .prediction-bottom-left,
.statistics-module-prediction .prediction-bottom-right {
    display: flex;
    flex-direction: column;
    row-gap: 5px;
}

.statistics-module-prediction .prediction-bottom-state.register-date-state,
.statistics-module-prediction .prediction-bottom-state.update-date-state {
    align-items: stretch;
    justify-content: space-between;
}

.statistics-module-prediction .register-date-state .prediction-bottom-left,
.statistics-module-prediction .update-date-state .prediction-bottom-left {
    justify-content: center;
}

.statistics-module-prediction .prediction-bottom-state .prediction-date {
    color: #000;
    box-shadow: none;
    padding: 0;
    border: 0;
    margin: 0;
    font-size: 14px;
    font-family: "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    font-weight: 700;
    outline: 0;
}

.statistics-module-prediction .prediction-bottom-state .prediction-date:focus {
    color: #000;
}

.statistics-module-prediction .prediction-form-label,
.statistics-module-prediction .prediction-form-value {
    font-weight: 700;
    color: #000;
    font-size: 14px;
}

.statistics-module-prediction .register-date-state .prediction-form-label {
    color: #000;
}

.statistics-module-prediction .btn.btn-take-exam,
.statistics-module-prediction .prediction-submit {
    padding: 4px 10px 2px;
    display: flex;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    white-space: nowrap;
    margin: 0;
}

.statistics-module-prediction .prediction-submit {
    width: 122px;
    padding: 0 8px 2px;
    min-height: 28px;
    margin-left: auto;
}

.statistics-module-prediction .prediction-submit[disabled] {
    color: #FFF;
    background: #999;
    border: 1px solid #999;
}

.statistics-module-prediction .take-exam-state .prediction-top-right,
.statistics-module-prediction .retake-exam-state .prediction-top-right {
    flex: none;
}

.statistics-module-prediction .prediction-results-state {
    justify-content: flex-start;
    align-items: center;
}

.statistics-module-prediction .prediction-results-state .prediction-top-right {
    flex: none;
}

.statistics-module-prediction .prediction-chart {
    width: 78px;
    height: 78px;
}

.statistics-module-prediction .prediction-stats {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    row-gap: 3px;
    line-height: 1;
    color: #000;
    font-weight: 700;
}

.statistics-module-prediction .prediction-stats-title {
    margin: 0;
    font-size: 15px;
}

.statistics-module-prediction .prediction-stats-value {
    font-size: 28px;
}

.statistics-module-prediction .prediction-stats-legend {
    font-size: 13px;
    color: #6D6D6D;
    font-weight: 400;
}

@media (max-width: 1199px) {
    .statistics-module-wrapper.module-global-wrapper {
        grid-template-columns: auto 340px;
    }

    .statistics-module-prediction {
        max-width: 340px;
    }
}

@media (max-width: 991px) {
    .statistics-module-wrapper.module-global-wrapper {
        grid-template-columns: auto;
        row-gap: 40px;
    }

    .statistics-module-prediction {
        max-width: 100%;
    }
}

/* END MODULE: STATISTICS PREDICTION BLOCK ---------------------------- */


/* MODULE: QUIZ PROMOCIONAL ------------------------------------------ */
.main-wrapper.quiz-promocional {
    padding-top: 0;
    padding-bottom: 0;
}

.main-wrapper.quiz-promocional .results-header {
    background: rgb(210, 172, 42);
    background: radial-gradient(circle, rgba(210, 172, 42, 1) 0%, rgba(201, 163, 215, 1) 52%, rgba(177, 208, 241, 1) 100%);
}

.main-wrapper.quiz-promocional .results-header .container {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 92px;
}

.main-wrapper.quiz-promocional .results-header .page-title {
    padding: 20px 0;
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    color: #000;
}

.quiz-promocional .results-forecast {
    background: #F4F4F4;
    color: #000;
    padding: 24px 0;
    text-align: center;
    line-height: 1.4;
}

.quiz-promocional .results-forecast strong {
    white-space: nowrap;
}

.quiz-promocional .results-forecast h3 {
    font-size: 26px;
    font-weight: 400;
    margin: 0;
}

.quiz-promocional .results-forecast p {
    margin-top: 12px;
    font-size: 20px;
    margin-bottom: 0;
}

.quiz-promocional .result-columns {
    padding: 56px 0;
}

.quiz-promocional .discount-code-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    row-gap: 36px;
    line-height: 1;
    width: 352px;
}

.quiz-promocional .discount-code {
    font-size: 36px;
}

.quiz-promocional .discount-code-title {
    text-align: center;
    font-size: 22px;
    line-height: 1.25;
    margin: 0;
}

.quiz-promocional .discount-code-title .big-text {
    font-size: 26px;
    display: block;
    font-weight: 700;
}

.quiz-promocional .discount-code-expiration {
    font-size: 20px;
    text-transform: uppercase;
}

.quiz-promocional .discount-code-expiration .mini-countdown {
    color: #D62626;
    display: inline-block;
    font-weight: 700;
}

.quiz-promocional .results-grid {
    display: grid;
    grid-template-columns: repeat(2, auto);
    grid-template-rows: auto;
    margin: 0 auto;
    column-gap: 60px;
    row-gap: 20px;
    width: 100%;
    max-width: 710px;
}

.quiz-promocional .action-item {
    text-align: center;
}

.quiz-promocional .result-image {
    text-align: center;
}

.quiz-promocional .result-image img {
    width: 100%;
    max-width: 278px;
    height: auto;
}

.quiz-promocional .action-item .btn {
    height: 64px;
    width: 326px;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    font-weight: 700;
    margin: 0 auto;
}

@media (max-width: 991px) {
    .quiz-promocional .results-grid {
        grid-template-columns: 1fr;
    }

    .quiz-promocional .action-test {
        order: 4;
    }

    .quiz-promocional .action-code {
        order: 3;
    }

    .quiz-promocional .discount-code-wrapper {
        margin: 0 auto 25px;
        row-gap: 25px;
    }
}

@media (max-width: 767px) {
    .main-wrapper.quiz-promocional .results-header .page-title {
        font-size: 24px;
        padding: 15px 0;
    }

    .main-wrapper.quiz-promocional .results-header .container {
        justify-content: center;
    }

    .quiz-promocional .results-forecast h3 {
        font-size: 24px;
    }

    .quiz-promocional .results-forecast p {
        font-size: 18px;
    }

    .quiz-promocional .discount-code {
        font-size: 32px;
    }

    .quiz-promocional .discount-code-title {
        font-size: 20px;
    }

    .quiz-promocional .discount-code-title .big-text {
        font-size: 24px;
    }

    .quiz-promocional .action-item .btn {
        height: 56px;
    }
}

/* END MODULE: QUIZ PROMOCIONAL -------------------------------------- */

/* MODULE: LANDING PAQUETE- ------------------------------------------ */
.promo-banner.paquete-banner {
    margin-top: 0;
}

.promo-banner.paquete-banner .banner-buttons {
    margin-top: 34px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 40px;
}

.promo-banner.paquete-banner .banner-buttons .btn {
    margin: 0;
    width: 192px;
    min-width: 192px;
    height: 52px;
    line-height: 52px;
    font-size: 14px;
    font-weight: 700;
}

.landing-paquete .testimonies-wrapper {
    padding: 84px 0;
}

.landing-paquete .container.testimonies-heading {
    margin-bottom: 112px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    row-gap: 32px;
    color: #000;
}

.landing-paquete .testimony-copy {
    font-size: 26px;
    line-height: 1.23;
}

.landing-paquete .testimony-big-title {
    color: #000;
    font-size: 34px;
    line-height: 1.2;
    margin: 0;
    max-width: 710px;
}

.testimonies-cta {
    margin-top: 98px;
    width: 100%;
    text-align: center;
}

.testimonies-cta a.btn {
    font-weight: 700;
    display: inline-block;
    padding: 12px 34px;
    font-size: 14px;
}

.landing-paquete .testimonies-cta a.btn-testimonios {
    background: #af88be;
    color: #fff;
    font-size: 22px;
    line-height: 54px;
    height: 54px;
    padding: 0 30px;
    font-weight: 700;
}

.landing-paquete .testimonies-cta a.btn-testimonios:hover {
    background: #9a74aa;
    color: #fff !important;
}

.landing-paquete .our-testimonies {
    text-align: left;
}

.landing-paquete .our-testimonies .team-list {
    margin: 0;
}

.landing-paquete .our-testimonies .team-item {
    padding: 50px;
}

.landing-paquete .faq-wrapper {
    background: #000;
    color: #FFF;
    padding: 84px 0;
}

.landing-paquete .faq-wrapper .faq-wrapper-heading {
    margin-bottom: 72px;
}

.landing-paquete .faq-wrapper .faq-title {
    font-size: 34px;
    line-height: 1.205;
    font-weight: 600;
    text-align: center;
    color: #FFF;
    margin: 0;
}

.landing-paquete .faq-item-title {
    line-height: 1.2;
    font-size: 24px;
    font-weight: 700;
    border-bottom: 1px solid #FFF;
    padding: 10px 10px 12px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0;
    color: #FFF;
}

.landing-paquete .faq-item-title i {
    flex: none;
    font-size: 22px;
    transition: transform 0.3s ease;
}

.landing-paquete .faq-item-title.active i {
    transform: rotate(180deg);
}

.landing-paquete .faq-item-content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.35s ease;
}

.landing-paquete .faq-item-title.active + .faq-item-content {
    grid-template-rows: 1fr;
}

.landing-paquete .faq-item-body {
    overflow: hidden;
    min-height: 0;
    padding: 28px 0 0 18px;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.35;
    color: #FFF;
}

.landing-paquete .faq-item-body ul {
    margin: 0;
    padding-left: 22px;
    list-style: disc;
}

.landing-paquete .faq-item-body li::marker {
    color: #FFF;
}

.landing-paquete .faq-item-body p {
    margin: 0;
}

.landing-paquete .faq-item-body p+ul,
.landing-paquete .faq-item-body ul+p {
    margin-top: 22px;
}

@media (prefers-reduced-motion: reduce) {
    .landing-paquete .faq-item-content,
    .landing-paquete .faq-item-title i {
        transition: none;
    }
}

.landing-paquete .faq-item+.faq-item {
    padding-top: 66px;
}

.landing-paquete .courses-wrapper {
    padding: 84px 0;
}

.landing-paquete .courses-wrapper.discount-active {
    padding-top: 84px;
}

.landing-paquete .courses-wrapper-heading {
    margin-bottom: 72px;
    text-align: center;
}

.landing-paquete .courses-wrapper-heading .courses-title {
    color: #000;
    font-size: 34px;
    font-weight: 600;
    line-height: 1.205;
    text-transform: uppercase;
}

.landing-paquete .plan-item {
    scroll-margin-top: 96px;
}

.landing-paquete .courses-list {
    display: flex;
    justify-content: space-between;
    column-gap: 18px;
}

.landing-paquete .course-item {
    border-radius: 20px;
    flex: 1;
    background: #a2b8df;
}

.landing-paquete .course-item .course-item-ribbon {
    background: #ed174d;
    width: 162px;
    display: none;
    align-items: center;
    justify-content: center;
    height: 40px;
    font-size: 17px;
    font-weight: 700;
    color: #FFF;
    position: absolute;
    right: 0;
    border-radius: 0 20px 0 20px;
    top: 0;
}

.landing-paquete .course-item .course-item-logo {
    position: relative;
}

.landing-paquete .course-item .course-item-price {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    column-gap: 12px;
    font-size: 32px;
    line-height: 28px;
    font-weight: 700;
    color: #FFF;
    margin-top: 16px;
}

.landing-paquete .course-item .course-item-price s {
    color: #D9D9D9;
}

.landing-paquete .course-item:nth-child(2) {
    background: #af88be;
}

.landing-paquete .course-item:nth-child(3) {
    background: #d3ad29;
}

.landing-paquete .course-item .course-item-header {
    height: 184px;
    padding-top: 80px;
    display: flex;
    flex-direction: column;
    position: relative;
    align-items: center;
    justify-content: flex-start;
}


.landing-paquete .course-item .course-item-header img {
    width: 134px;
    height: auto;
}

.landing-paquete .course-item .course-name {
    font-size: 24px;
    font-weight: 700;
    color: #D9D9D9;
    width: 100px;
    height: 32px;
    padding-top: 4px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: #000;
    line-height: 0;
    margin-left: 6px;
}

.landing-paquete .course-item .course-item-content {
    padding: 38px 40px;
    background: #D9D9D9;
}

.landing-paquete .course-item .course-item-content ul {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 16px;
    line-height: 1.25;
}

.landing-paquete .course-item .course-item-footer {
    height: 130px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.landing-paquete .course-item .course-item-footer .btn {
    font-size: 14px;
    font-weight: 700;
    padding: 12px 40px;
}

.landing-paquete .course-item .course-item-footer .btn:hover {
    background: #FFF;
    color: #000 !important;
}

.landing-paquete .ribbon-banner {
    background: #d3ad29;
    padding: 40px 0;
}

.landing-paquete .ribbon-banner .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: 40px;
}

.landing-paquete .ribbon-content {
    flex: 1;
    font-size: 22px;
    line-height: 1.2;
    color: #000;
}

.landing-paquete .ribbon-buttons {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    column-gap: 24px;
}

.landing-paquete .ribbon-buttons a {
    padding: 15px 14px 12px;
    font-weight: 700;
}

.landing-paquete .ribbon-buttons a:hover {
    color: #000 !important;
    background: #FFF;
}

.landing-paquete .summary-wrapper {
    padding: 84px 0;
}

.landing-paquete .summary-wrapper .summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: 52px;
}

.landing-paquete .summary-wrapper .summary-row-content {
    line-height: 1.3;
    font-size: 22px;
    color: #000;
}

.landing-paquete .summary-wrapper .summary-row-content p+p {
    margin-top: 30px;
}

.landing-paquete .summary-wrapper .big-content {
    font-weight: 700;
    font-size: 26px;
    margin-top: 45px;
}

.landing-paquete .summary-wrapper .summary-row>div:first-child {
    width: 495px;
    flex: none;
}

.landing-paquete .summary-wrapper .summary-row>div:last-child {
    flex: 1;
}

.landing-paquete .summary-wrapper .summary-row-image img {
    width: 100%;
    height: auto;
}

.landing-paquete .summary-wrapper .summary-row+.summary-row {
    margin-top: 90px;
}

.landing-paquete .summary-info {
    display: grid;
    align-items: flex-start;
    grid-template-columns: auto 1fr;
    column-gap: 14px;
    row-gap: 12px;
    font-size: 18px;
    line-height: 1.35;
    margin-top: 40px;
}

.landing-paquete .summary-info .summary-info-th {
    font-size: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    column-gap: 6px;
    text-align: right;
}

.landing-paquete .summary-info .summary-info-th img,
.landing-paquete .summary-info .summary-info-th svg {
    width: 22px;
    height: auto;
    position: relative;
    line-height: 0;
    top: -3px;
}

.landing-paquete .main-banner {
    position: relative;
    overflow: hidden;
    height: 705px;
    background: #1a1a1a;
}

.landing-paquete .banner-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    display: block;
}

.landing-paquete .main-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.42);
    z-index: 2;
    pointer-events: none;
}

.landing-paquete .main-banner .banner-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    row-gap: 44px;
    width: 100%;
    max-width: 710px;
}

.landing-paquete .banner-text .btn {
    margin: 0;
}

.landing-paquete .banner-title {
    font-size: 44px;
    line-height: 1.25;
    color: #FFF;
    text-align: left;
}

.landing-paquete .banner-copy {
    color: #FFF;
    font-size: 20px;
    line-height: 1.4;
    text-transform: uppercase;
}

.landing-paquete .slider-buttons {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    column-gap: 26px;
}

.landing-paquete .slider-buttons .btn {
    width: 102px;
    height: 48px;
    line-height: 1;
    font-size: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.landing-paquete .slider-buttons .btn:nth-child(1):hover,
.promo-banner.paquete-banner .banner-buttons .btn:nth-child(1):hover {
    background: #a2b8df !important;
}

.landing-paquete .slider-buttons .btn:nth-child(2):hover,
.promo-banner.paquete-banner .banner-buttons .btn:nth-child(2):hover {
    background: #af88be !important;
}

.landing-paquete .slider-buttons .btn:nth-child(3):hover,
.promo-banner.paquete-banner .banner-buttons .btn:nth-child(3):hover {
    background: #d3ad29 !important;
}

.landing-paquete .discount-active .course-item-ribbon {
    display: inline-flex;
}

/* Discount inactive */
.landing-paquete .courses-wrapper:not(.discount-active) .current-price {
    display: none;
}

.landing-paquete .courses-wrapper:not(.discount-active) .old-price {
    text-decoration: none;
    color: #FFF;
}

/* Banner Button ---------------------------- */
.promo-banner .banner-buttons .btn {
    padding: 0 15px;
    text-transform: uppercase;
}

/* Responsive ------------------------------- */
@media (min-width: 768px) and (max-width: 991px) {
    html #footer.footer-wrapper.footer-full .footer-row {
        display: grid;
        row-gap: 60px;
        column-gap: 40px;
        grid-template-columns: 1fr 1fr;
    }

    html #footer.footer-wrapper.footer-full h4 {
        margin-bottom: 28px;
    }
}

@media (max-width: 991px) {
    .landing-paquete .banner-text {
        row-gap: 30px;
    }

    .landing-paquete .banner-title {
        font-size: 32px;
    }

    .landing-paquete .banner-copy {
        font-size: 16px;
    }

    .landing-paquete .banner-buttons {
        column-gap: 18px;
    }

    .landing-paquete .summary-wrapper,
    .landing-paquete .courses-wrapper,
    .landing-paquete .faq-wrapper,
    .landing-paquete .testimonies-wrapper {
        padding: 72px 0;
    }

    .landing-paquete .courses-wrapper-heading,
    .landing-paquete .faq-wrapper .faq-wrapper-heading {
        margin-bottom: 48px;
    }

    .landing-paquete .summary-wrapper .summary-row>div:first-child {
        width: 100%;
    }

    .landing-paquete .summary-wrapper .summary-row {
        flex-direction: column;
        row-gap: 40px;
    }

    .landing-paquete .summary-wrapper .summary-row.first-row {
        flex-direction: column-reverse;
    }

    .landing-paquete .summary-wrapper .summary-row.first-row .summary-row-image {
        max-width: 540px;
    }

    .landing-paquete .ribbon-banner .container {
        flex-direction: column;
        text-align: center;
        row-gap: 20px;
    }

    .landing-paquete .courses-list {
        row-gap: 30px;
        max-width: 560px;
        margin-left: auto;
        margin-right: auto;
        flex-direction: column;
    }

    .landing-paquete .faq-item-title {
        font-size: 22px;
    }

    .landing-paquete .container.testimonies-heading {
        margin-bottom: 84px;
    }
}

@media (max-width: 767px) {

    .landing-paquete .summary-wrapper,
    .landing-paquete .courses-wrapper,
    .landing-paquete .faq-wrapper,
    .landing-paquete .testimonies-wrapper {
        padding: 64px 0;
    }

    .landing-paquete .summary-wrapper .summary-row-content,
    .landing-paquete .summary-info .summary-info-th {
        font-size: 18px;
    }

    .landing-paquete .summary-info {
        font-size: 16px;
    }

    .landing-paquete .summary-wrapper .summary-row+.summary-row {
        margin-top: 60px;
    }

    .landing-paquete .summary-wrapper .big-content {
        font-size: 20px;
    }

    .landing-paquete .ribbon-content {
        font-size: 18px;
    }

    .landing-paquete .ribbon-content br {
        display: none;
    }

    .landing-paquete .ribbon-buttons {
        column-gap: 10px;
    }

    .landing-paquete .courses-wrapper-heading .courses-title {
        font-size: 26px;
    }

    .landing-paquete .banner-text,
    .landing-paquete .banner-title {
        text-align: center;
    }

    .landing-paquete .main-banner .banner-text {
        align-items: center;
    }

    .landing-paquete .slider-buttons {
        column-gap: 10px;
    }

    .landing-paquete .main-banner {
        height: 580px;
    }

    .landing-paquete .faq-wrapper .faq-title,
    .landing-paquete .testimony-big-title {
        font-size: 26px;
    }

    .landing-paquete .faq-item-title,
    .landing-paquete .testimony-copy {
        font-size: 20px;
    }

    .landing-paquete .container.testimonies-heading {
        margin-bottom: 48px;
    }

    .landing-paquete .faq-item+.faq-item {
        padding-top: 40px;
    }

    .landing-paquete .faq-item-content {
        font-size: 16px;
        padding: 30px 20px 0 20px;
    }

    .landing-paquete .testimonies-cta {
        margin-top: 36px;
    }

    .promo-banner.paquete-banner .banner-buttons {
        gap: 16px;
    }

    .landing-paquete .ribbon-buttons {
        row-gap: 10px;
        flex-direction: column;
    }

    .landing-paquete .ribbon-buttons .btn {
        width: 160px;
    }
}

@media (max-width: 440px) {
    .landing-paquete .summary-info {
        grid-template-columns: 1fr;
        row-gap: 6px;
        margin-top: 20px;
    }

    .landing-paquete .summary-info .summary-info-th {
        justify-content: flex-start;
        padding-top: 10px;
    }

    .landing-paquete .course-item .course-name {
        font-size: 18px;
        height: 28px;
        width: 80px;
    }

    .landing-paquete .course-item .course-item-header img {
        width: 120px;
    }

    .landing-paquete .course-item .course-item-price {
        font-size: 28px;
    }

    .landing-paquete .course-item .course-item-footer {
        height: 100px;
    }

    .landing-paquete .course-item .course-item-content {
        padding: 30px;
    }

    .landing-paquete .slider-buttons .btn {
        width: 90px;
        height: 44px;
        font-size: 18px;
    }
}

/* END MODULE: LANDING PAQUETE ---------------------------------------- */

/* MODULE: CHECKOUT --------------------------------------------------- */
.checkout-content .form-field select {
    margin: 0;
    width: 100%;
    max-width: 620px;
    height: 40px;
    padding: 0 10px;
    font: 400 14px / 1em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
}

.checkout-content .form-field label.required::after {
    content: '*';
    color: #e04f4f;
    display: inline;
}

.checkout-content h3.form-title.required::after {
    content: '*';
    color: #e04f4f;
    display: inline;
    margin-left: 0.15em;
}

/* Checkout: mensajes bajo campo (paridad con login/registro; hoy casi vacíos) */
.checkout-content .form-field .error {
    font-size: 0.8125rem;
    line-height: 1.35;
    color: #5d5d5d;
    margin-top: 0.35rem;
    margin-bottom: 0.25rem;
}
.checkout-content .form-field .error:empty {
    display: none;
}
.checkout-content .form-field .error p {
    margin: 0;
    color: inherit;
}

/* Método de pago: radios ocultos como checkouts (misma máscara circular; ver _module_payment.scss) */
.checkout-content .payment-methods .checkbox-item input[type="radio"] {
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
}

/* END MODULE: CHECKOUT ----------------------------------------------- */

/* MODULE: VISUAL FIXES ----------------------------------------------- */
.main-wrapper.test-wrapper .test-list .time {
    flex: none;
}

.main-wrapper.test-wrapper .test-list .test-item .btn {
    padding-left: 6px;
    padding-right: 6px;
    flex: none;
}

/* END MODULE: VISUAL FIXES ------------------------------------------- */

/* MODULE: LANDING UNAM ----------------------------------------------- */
.landing-page .promo-examen h2 span {
    display: block;
}

.landing-page .features-wrapper .feature-thumb {
    background: transparent;
}

.landing-page .stats-wrapper {
    background: #000;
    color: #FFF;
    padding: 35px 0;
}

.landing-page .stats-wrapper .container {
    column-gap: 24px;
}

.landing-page .stat-item__item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    column-gap: 12px;
}

.landing-page .stat-item__item-image {
    flex: none;
    width: 94px;
    line-height: 0;
}

.landing-page .stat-item:nth-child(2) .stat-item__item-image {
    width: 70px;
}

.landing-page .stat-item__item-text {
    flex: 1;
}

.landing-page .contact-form-section {
    background: #FFF;
}

/* FAQ Section ------------------------------ */
.landing-page .faq-section {
    padding: 84px 0;
    color: #FFF;
    background: #000;
}

.landing-page .faq-section__title {
    text-align: center;
    text-transform: uppercase;
    margin: 0 0 72px;
    font-size: 34px;
}

.landing-page .faq-item .faq-title {
    padding-left: 0;
    font-size: 26px;
    font-weight: 700;
}

.landing-page .faq-questions {
    display: flex;
    flex-direction: column;
    row-gap: 66px;
}

.landing-page .faq-item {
    width: 100%;
}

.landing-page .faq-item .faq-answer {
    font-size: 22px;
    padding: 38px 0 0;
}

/* Responsive ------------------------------- */
@media (min-width: 992px) {
    .landing-page .contact-form-wrapper .contact-form-image {
        width: 380px;
    }
}

@media (max-width: 1199px) {
    .landing-page .stat-item__item-text {
        font-size: 18px;
    }


    .landing-page .stat-item__item-image {
        width: 75px;
    }

    .landing-page .stat-item:nth-child(2) .stat-item__item-image {
        width: 56px;
    }
}

@media (max-width: 991px) {
    .landing-page .promo-examen h2 span {
        display: inline;
    }

    .landing-page .promo-examen .btn {
        padding: 12px;
        flex: none;
    }
}

@media (max-width: 768px) {
    .landing-page .stats-wrapper .container {
        flex-direction: column;
        row-gap: 24px;
        padding: 0 30px;
    }

    .landing-page .stats-wrapper .stat-item {
        width: 60%;
        margin: 0 auto;
    }

    .landing-page .stat-item__item-text {
        text-align: left;
    }

    .landing-page .stat-item__item {
        justify-content: center;
    }

    .landing-page .stat-item__item-text {
        flex: 0 0 auto;
    }

    .landing-page .faq-questions {
        row-gap: 36px;
    }

    .landing-page .faq-section__title {
        font-size: 24px;
        margin-bottom: 42px;
    }

    .landing-page .faq-item .faq-title {
        font-size: 20px;
        line-height: 1.2;
    }

    .landing-page .faq-item .faq-answer {
        padding-top: 24px;
        font-size: 16px;
    }
}

@media (max-width: 540px) {

    div.time-wrapper .time-info,
    .landing-page .stats-wrapper .stat-item {
        width: 100%;
    }

    .landing-page .stat-item__item-text {
        flex: 1;
        text-align: center;
    }

    .landing-page .stat-item__item {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        row-gap: 10px;
    }

    .landing-page .faq-section {
        padding: 64px 0;
    }

    .landing-page .faq-questions {
        row-gap: 24px;
    }

    .landing-page .faq-item .faq-title {
        font-size: 18px;
    }
}

/* END MODULE: LANDING UNAM- ------------------------------------------ */

/* MODULE: BLOG SECTION ----------------------------------------------- */
.blog-section {
    padding: 80px 0;
    background: #a2b8df;
}

.blog-section__grid {
    display: grid;
    grid-template-columns: 438px 1fr 1fr;
    grid-template-rows: auto auto;
    column-gap: 24px;
    row-gap: 24px;
}

.blog-section__aside {
    display: flex;
    width: 100%;
    row-gap: 46px;
    padding: 52px 26px;
    flex-direction: column;
    align-items: flex-start;
    flex-shrink: 0;
    background: #4A6389;
    color: #FFF;
    grid-column: 1 / 2;
    grid-row: 1 / -1;
}

.blog-section__aside-header {
    width: 100%;
}

.blog-section__title {
    line-height: 1.09;
    margin: 0;
    font-size: 22px;
}

.blog-section__copy {
    font-size: 14px;
    margin-top: 15px;
    line-height: 1.07;
}

.blog-section__nav {
    display: flex;
    flex-direction: column;
    row-gap: 18px;
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
}

li.blog-section__nav-item {
    position: relative;
    padding: 0 0 0 35px;
}

.blog-section__nav-item a {
    color: #FFF;
}

.blog-section__nav-item a:hover {
    color: #000;
}

.blog-section__nav-item i {
    font-size: 22px;
    position: absolute;
    left: 0;
    top: 0;
}

.blog-section .nav-item__title {
    font-size: 20px;
    line-height: 1.15;
    margin: 0;
}

.blog-section .nav-item__description {
    margin-bottom: 8px;
    font-size: 14px;
    line-height: 1.31;
}

.blog-section__aside .btn {
    height: 48px;
    font-weight: 700;
    padding: 6px 25px 2px;
}

.blog-section__post {
    display: flex;
    width: 100%;
    flex: 1;
    padding: 12px 24px;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    border-radius: 12px;
    border: 1px solid #000;
    background: #FFF;
    color: #000;
}

.blog-section__post-link {
    display: block;
    color: #000;
}

.blog-section__post-link:hover {
    color: #000;
}

.post-item__image {
    width: 100%;
    height: 124px;
    border-radius: 12px;
    position: relative;
    overflow: hidden;
}

.post-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.post-item__title {
    color: #000;
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.05;
    text-transform: uppercase;
}

@media (max-width: 1199px) {
    .blog-section__grid {
        grid-template-columns: 340px 1fr 1fr;
        column-gap: 18px;
        row-gap: 18px;
    }
}

@media (max-width: 991px) {
    .blog-section {
        padding: 64px 0;
    }

    .blog-section__grid {
        grid-template-columns: 1fr 1fr;
        row-gap: 18px;
    }

    .blog-section__aside {
        padding: 32px 26px;
        grid-column: 1 / -1;
        grid-row: 1 / span 1;
    }

    .blog-section__post {
        padding: 12px;
    }
}

@media (max-width: 560px) {
    .blog-section__grid {
        grid-template-columns: 1fr;
        row-gap: 18px;
    }
}

/* END MODULE: BLOG SECTION ------------------------------------------- */

/* MODULE: AREAS SECTION ---------------------------------------------- */
.areas-section {
    padding: 60px 0;
    background: #af88be;
    color: #FFF;
}

.areas-section__title {
    text-align: center;
    margin-bottom: 40px;
    text-transform: uppercase;

    font-size: 32px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.66px;
}

.areas-section__cards-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 20px;
    row-gap: 20px;
    color: #000;
}

.area-card__item {
    background: #FFF;
    text-align: left;
    position: relative;
    overflow: hidden;
}

.area-card__image {
    width: 194px;
    height: 100%;
    position: absolute;
    left: 4px;
    top: 0;
}

.area-card__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
}

.area-card__content {
    display: flex;
    flex-direction: column;
    row-gap: 12px;
    padding: 12px 4px 12px 205px;
}

.area-card__title {
    font-size: 18px;
    line-height: 1.5;
    font-weight: 700;
    margin: 0;
}

.area-card__description {
    margin: 0;
}

.area-card__description,
.area-card__features {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
}

.area-card__features::before {
    background: #af88be;
    width: 88px;
    height: 5px;
    display: block;
    content: '';
    margin-bottom: 12px;
}

.area-card__features-list {
    margin: 0;
    list-style-position: inside;
    margin-top: 4px;
}

.area-card__features-list li {
    padding: 0;
}

/* Table ------------------------------------ */
.areas-section__table {
    overflow-x: auto;
    margin-top: 42px;
}

.areas-table {
    border-collapse: collapse;
    width: 100%;
    min-width: 1050px;
    color: #000;
    table-layout: fixed;
    margin-bottom: 0;
}

.areas-table th,
.areas-table td {
    padding: 16px 7px;
    background: #fff;
    border: 0;
    border-bottom: 1px solid #D4D4D8;
    text-align: center;
}

.areas-table th.th-sticky,
.areas-table td.th-sticky {
    left: 0;
    z-index: 1;
    text-align: left;
    position: sticky;
    padding-left: 30px;
    color: #18181B;
    background: #DADCDF;
    border-color: #bbbbbd;
}

.areas-table tr:first-child th.area-title.th-sticky {
    background: #B2B7C0;
}

.areas-table tr:nth-child(odd) th.th-sticky,
.areas-table tr:nth-child(odd) th.td-sticky {
    background: #D1D3D6;
}

.areas-table tbody tr th.th-sticky {
    font-size: 18px;
}

.areas-table tbody tr:first-child th.th-sticky,
.areas-table tbody tr:last-child th.th-sticky {
    font-size: 16px;
    font-weight: 700;
}


.areas-table thead th {
    padding: 0 10px;
    background: transparent;
    border: 0;
}

.areas-table thead th:nth-child(2) {
    padding-left: 0;
}

.areas-table thead th:last-child {
    padding-right: 0;
}

.areas-table thead .col-name {
    color: #FFF;
    border-radius: 16px 16px 0 0;
    padding: 12px 0 8px;
    font-size: 18px;
    font-weight: 700;
    display: block;
    background: #2F2F2F;
}

.areas-table .area-title {
    font-size: 15px;
    color: #000;
}

.areas-table .hide-th {
    opacity: 0;
}

.areas-table tbody tr:nth-last-child(2) th,
.areas-table tbody tr:nth-last-child(2) td {
    border-bottom: 0;
}

.areas-table tbody tr:nth-child(even) td {
    background: #FFF;
}

.areas-table tbody tr:nth-child(odd) td {
    background: #F5F5F5;
}

.areas-table tbody tr.first th:not(.th-sticky) {
    background: #D0D4DC;
}


.areas-table tr.tr-footer th,
.areas-table tr.tr-footer td {
    background: #2F2F2F !important;
    border: 0;
    color: #FFF;
}

.areas-table tbody td {
    color: #465564;
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.15;
}

@media (min-width: 1200px) {
    .areas-table tbody tr.first th:first-child {
        border-radius: 16px 0 0 0;
    }

    .areas-table tbody tr.tr-footer {
        border-radius: 0 0 16px 16px;
    }

    .areas-table tbody tr.tr-footer th:first-child {
        border-radius: 0 0 0 16px;
    }

    .areas-table tbody tr.tr-footer td:last-child {
        border-radius: 0 0 16px 0;
    }

}

/* Responsive ------------------------------- */
@media (max-width: 991px) {
    .areas-section__cards-grid {
        row-gap: 16px;
        column-gap: 16px;
    }

    .area-card__content {
        padding: 12px;
    }

    .area-card__item {
        display: flex;
        flex-direction: column-reverse;
        justify-content: flex-end;
    }

    .area-card__image {
        position: relative;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 200px;
        margin-top: auto;
    }

    .areas-table thead .col-name {
        font-size: 16px;
    }

    .areas-table .area-title,
    .areas-table tbody tr:first-child th.th-sticky,
    .areas-table tbody tr:last-child th.th-sticky {
        font-size: 14px;
    }

    .areas-table tbody td {
        font-size: 16px;
    }

    .areas-table th.th-sticky,
    .areas-table td.th-sticky,
    .areas-table tbody tr th.th-sticky {
        font-size: 16px;
    }

    .areas-table th.th-sticky,
    .areas-table td.th-sticky {
        padding-left: 15px;
    }
}

@media (max-width: 768px) {
    .areas-table {
        overflow-x: auto;
        min-width: 760px;
    }
}

@media (max-width: 620px) {
    .areas-section__cards-grid {
        grid-template-columns: 1fr;
    }

    .areas-section__title {
        font-size: 28px;
    }
}

/* MODULE: AREAS SECTION ---------------------------------------------- */

#full-stars {
    .rating-group {
        display: inline-flex;
    }

    .rating__input {
        position: absolute !important;
        left: -9999px !important;
    }

    .rating__label {
        cursor: pointer;
        padding: 0 0.1em;
        font-size: 3rem;
    }

    .rating__icon--star {
        color: #D2AC2A;
        -webkit-text-stroke: 2px #D2AC2A;
    }

    .rating__input:checked~.rating__label .rating__icon--star {
        color: #ddd;
        -webkit-text-stroke: 2px #D2AC2A;
    }

    /* make all stars orange on rating group hover */
    .rating-group:hover .rating__label .rating__icon--star {
        color: #D2AC2A;
        -webkit-text-stroke: 2px #D2AC2A;
    }

    /* make hovered input's following siblings grey on hover */
    .rating__input:hover~.rating__label .rating__icon--star {
        color: #ddd;
        -webkit-text-stroke: 2px #D2AC2A;
    }
}

/* MODULE: PROMO BANNER ---------------------------------------- */
.promo-banner {
    margin-top: 0;
    background: #b3b3b3;
    padding: 120px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.promo-banner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(55, 71, 102, 0.75);
    z-index: 1;
}

.promo-banner img.promo-bg {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    min-height: 100%;
    height: auto;
    object-fit: cover;
    z-index: 0;
}

.promo-banner .container {
    position: relative;
    z-index: 2;
}

.promo-banner h3 {
    color: #FFF;
    font: 700 32px/1em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    margin: 0;
}

.promo-banner h2 {
    color: #FFF;
    padding: 0;
    margin: 15px 0 10px;
    font: 500 44px/1.6em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
}

.promo-banner p {
    margin: 0;
    color: #FFF;
    font: 500 28px/1.5em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
}

.promo-banner p strong {
    color: #FFF;
    font-weight: 500;
}

.promo-banner .btn {
    margin-top: 34px;
    height: 56px;
    padding: 0;
    min-width: 245px;
    text-align: center;
    font: 400 18px/56px "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
}

.promo-banner .btn+.btn {
    margin-left: 10px;
}

/* Promo Banner Responsive */
@media (max-width: 991px) {
    .promo-banner {
        margin-top: 80px;
    }

    .promo-banner h2 {
        font-size: 32px;
    }

    .promo-banner h3 {
        font-size: 26px;
    }

    .promo-banner p {
        font-size: 18px;
        max-width: 640px;
        margin: 0 auto;
    }

    .promo-banner .btn {
        font-size: 16px;
        font-weight: 500;
    }

    .promo-banner img.promo-bg {
        width: auto;
        height: 100%;
        max-width: none;
    }
}

@media (max-width: 767px) {
    .promo-banner {
        padding: 40px 0;
        margin-top: 40px;
    }

    .promo-banner .btn {
        min-width: 200px;
    }

    .promo-banner .container a.btn {
        margin-top: 30px;
    }

    .promo-banner p {
        font-size: 16px;
    }

    .promo-banner img.promo-bg {
        height: auto;
        width: 100%;
        min-width: 100%;
    }
}

/* END MODULE: PROMO BANNER ------------------------------------ */

/* MODULE: VIDEO COMPONENT ------------------------------------- */
.video-component-wrapper {
    background: #b8942a;
    color: #000;
    text-align: center;
    padding: 65px 15px 50px;
}

.video-component-title {
    font: 500 36px/1.05em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    margin: 0 0 34px;
    color: #000;
}

.video-component-item-wrapper {
    max-width: 880px;
    margin: 0 auto;
}

.video-component-item {
    overflow: hidden;
    width: 100%;
    padding-bottom: 56.25%;
    position: relative;
}

.video-component-item iframe {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
}

@media (max-width: 767px) {
    .video-component-wrapper {
        padding: 40px 15px;
    }

    .video-component-title {
        font-size: 24px;
    }
}

.video-component-description {
    max-width: 700px;
    margin: 30px auto 0;
    font: 400 18px/1.5em "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
    color: #000;
}

.video-component-cta {
    margin-top: 30px;
}

.video-component-cta .btn {
    height: 50px;
    padding: 0 40px;
    font: 700 16px/50px "Avenir", "Open Sans", "Helvetica Neue", sans-serif;
}

@media (max-width: 767px) {
    .video-component-description {
        font-size: 16px;
    }
}

/* END MODULE: VIDEO COMPONENT --------------------------------- */

/* Fix: Remove white space before footer in landing pages */
.landing-page .video-component-wrapper:last-child,
.landing-page>.video-component:last-child {
    margin-bottom: 0;
}

.landing-page {
    margin-bottom: 0;
    padding-bottom: 0;
}

/* Ensure video component touches footer */
.landing-page>.video-component-wrapper,
.landing-page>.video-component {
    margin-bottom: -1px;
}

/* Specific fix for video component in landing page */
.video-component.video-component-wrapper {
    margin: 0;
    border: 0;
    outline: 0;
    box-shadow: 0 10px 0 #b8942a;
    position: relative;
    z-index: 11;
}

/* Oscurecer overlay del video banner principal para mejor contraste */
.landing-page .main-banner .video-wrap:after {
    background: rgba(55, 71, 102, 0.75);
}

/* Hero landings PAA/UNAM: dos CTAs mismo ancho, 20px entre ellos (style.css carga en ambos headers) */
.landing-page .main-banner .main-banner-cta-row {
    display: flex;
    flex-flow: row wrap;
    align-items: stretch;
    gap: 20px;
    margin-top: 30px;
}

.landing-page .main-banner .main-banner-cta-row .btn {
    margin-top: 0;
    flex: 1 1 0;
    min-width: 260px;
    max-width: 100%;
    text-align: center;
    box-sizing: border-box;
    white-space: nowrap;
}

@media (max-width: 600px) {
    .landing-page .main-banner .main-banner-cta-row {
        flex-direction: column;
        align-items: center;
        width: 100%;
    }

    .landing-page .main-banner .main-banner-cta-row .btn {
        flex: none;
        width: auto;
        min-width: min(100%, 280px);
        max-width: 100%;
        white-space: nowrap;
    }
}

/* Promo: dos CTAs (PAA, EDIEMS, EXANI-I/II, etc.); .banner-buttons--dual lo aplica promo_banner.php */
.promo-banner .banner-buttons--dual .promo-banner-cta-row {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 34px;
}

.promo-banner .banner-buttons--dual .promo-banner-cta-row .btn {
    flex: 0 0 auto;
    width: auto;
    min-width: 245px;
    margin-top: 0;
    margin-left: 0;
}

.promo-banner .banner-buttons--dual .promo-banner-cta-row .btn + .btn {
    margin-left: 0;
}

/* Banner curso: PRUEBA GRATIS + VER PRECIOS junto al título (ancho fijo distinto a la promo) */
.courses-wrapper .banner-courses .banner-course-cta-row {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 20px;
}

.courses-wrapper .banner-courses .banner-course-cta-row .btn {
    flex: 0 0 260px;
    width: 260px;
    min-width: 260px;
    max-width: 100%;
    text-align: center;
    box-sizing: border-box;
}

@media (max-width: 600px) {
    .promo-banner .banner-buttons--dual .promo-banner-cta-row {
        flex-direction: column;
        align-items: center;
    }

    .promo-banner .banner-buttons--dual .promo-banner-cta-row .btn {
        min-width: 200px;
    }

    .courses-wrapper .banner-courses .banner-course-cta-row {
        flex-direction: column;
        align-items: center;
    }

    .courses-wrapper .banner-courses .banner-course-cta-row .btn {
        flex: 0 0 auto;
        width: min(260px, 100%);
        min-width: min(260px, 100%);
    }
}

/* Bloques reutilizables tipo "option-item" (como en Mi cuenta / Zona de riesgo) */
.option-item {
    padding: 24px;
    display: flex;
    flex-flow: column nowrap;
}
.option-item .heading {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 600;
    color: #333;
}
.option-item .option-description {
    margin: 0 0 20px;
    font-size: 14px;
    line-height: 1.5;
    color: #666;
}
.option-item__actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: auto;
}

/* Variante zona de peligro (usa mismo color que .btn-danger) */
.option-item--danger {
    border: 2px solid #e04f4f;
    border-radius: 8px;
    background: linear-gradient(135deg, #fffafa 0%, #fff5f5 100%);
    box-shadow: 0 2px 12px rgba(224, 79, 79, 0.08);
}

/* Título interno del ejercicio: oculto en quiz, práctica personalizada y examen/simulacro (#ejercicioArea.ejercicio-area--hide-intern-title) */
#ejercicioArea.ejercicio-area--hide-intern-title .excercise-title .excercise-title-text {
    display: none;
}

.course-subtitle {
    text-align: center;
    font-size: 0.8em;
    margin-top: -15px;
    margin-bottom: 30px;
    font-weight: bold;
    color: #555;
}
