﻿:root {
    --font-primary: "Poppins", sans-serif;
    --font-secondary: "Inter", serif;
    --font-size-base: 1em;
    --white-primary: #fff;
    --black-primary: #000;
    --green-light: #00A2A3;
    --grey-medium: #FFFFFF;
}

body {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    color: var(--black-primary);
}

    body:has(#modal-carrito .modal-backdrop) {
        overflow-y: hidden;
    }

div#loading {
    display: block;
    z-index: 9999;
    position: fixed;
    top: 50%;
    left: 50%;
    color: #ff0040;
}

.cursiva {
    font-style: italic;
}

.negrita {
    font-weight: 700;
}

.enlace-verde {
    color: #00A2A3;
}

.gris-oscuro {
    color: #5D5D5D;
}

.h-30 {
    height: 30px;
}

.seminegrita {
    font-weight: 500;
}

.relative {
    position: relative;
}

.loading-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    width: 100vw;
    height: 100vh;
    background-color: rgba(125, 125, 125, 0.5);
}

.tachado {
    text-decoration: line-through;
}

.subrayado {
    text-decoration: underline;
}

.pointer {
    cursor: pointer;
}

.font24 {
    font-size: 24px;
}

.top-bar {
    font-weight: 700;
    font-size: 16px;
    background-color: #2F6BAF;
    color: var(--white-primary);
}

.top-bar-colegio {
    background-color: #FAB96D;
    color: var(--white-primary);
    font-weight: 700;
    font-size: 14px;
    padding: 10px 0;
}

.menu-inferior {
    display: none;
}

    .menu-inferior .icono {
        margin: 0;
    }

    .menu-inferior .texto-menu {
        color: #5D5D5D;
        font-size: 12px;
    }

        .menu-inferior .texto-menu.active {
            color: #2F6BAF;
        }

.logo-colegio {
    min-width: 260px;
}

header nav li.nav-item a.nav-link {
    font-weight: 500;
    text-transform: uppercase;
    transition: color 0.2s ease, text-shadow 0.2s ease, border-bottom-color 0.2s ease;
    border-bottom: 1px solid transparent;
}

    header nav li.nav-item a.nav-link.disabled {
        color: #929292;
        transition: none;
    }

header nav li.nav-item.desplegable a.nav-link:hover,
header nav li.nav-item.desplegable a.nav-link.active {
    color: #2F6BAF !important;
    text-shadow: 0 0 1px #2F6BAF;
    border-bottom: 1px solid #2F6BAF;
}

header nav li.nav-item a.nav-link.disabled:hover {
    color: #929292 !important;
    text-decoration: none;
    text-shadow: none !important;
    border-bottom: none !important;
}

footer {
    background-color: #1E1E4E;
    color: var(--white-primary) !important;
}

    footer .block-title {
        font-weight: 700;
        margin-bottom: 20px;
        font-size: 20px;
    }

    footer .block-subtitle {
        font-weight: 700;
        margin-bottom: 20px;
        font-size: 16px;
    }

    footer .block-content {
        font-size: 14px;
    }

    footer .block ul {
        list-style-type: none;
        padding: 0;
    }

        footer .block ul li {
            margin-bottom: 10px;
        }

            footer .block ul li a {
                text-decoration: none;
                font-weight: 400;
                color: var(--white-primary) !important;
                font-size: 14px;
            }

header .nav-item.dropdown {
    position: static;
}

.dropdown.combo .dropdown-menu.show {
    width: 100%;
    padding: 10px;
}

.dropdown .form-select + .dropdown-menu.show {
    min-width: 100%;
    margin-top: 2px !important;
    border-color: var(--grey-medium);
    box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.15);
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    max-height: 200px;
    overflow-y: auto;
    z-index: 9;
}

.dropdown .form-select + .dropdown-menu .dropdown-item {
    padding: 5px 2px 5px 10px;
    font-weight: 500;
    font-size: 14px;
}

.dropdown.combo .enlace-add {
    margin-top: 5px;
    padding: 10px 10px 0 10px;
    border-top: 1px solid #D9D9D9;
}

    .dropdown.combo .enlace-add a {
        align-items: center;
        text-decoration: none;
        color: #00A2A3;
    }

header .container .desplegable .dropdown-menu {
    font-family: var(--font-secondary);
    width: 90%;
    left: 50%;
    transform: translateX(-50%);
    border: none;
    padding: 10px;
    border-radius: 10px;
}

    header .container .desplegable .dropdown-menu .categorias {
        padding-right: 0;
        flex: 0 0 280px;
        width: 280px;
        max-width: 280px;
    }

    header .container .desplegable .dropdown-menu .subcategorias {
        padding-left: 0;
    }

    header .container .desplegable .dropdown-menu .icono-laptop {
        width: 70px;
        height: 50px;
        flex-shrink: 0;
        background-image: url('/images/iconos/icon-laptop-70.svg');
    }

header .menu-mi-cuenta .dropdown-toggle::after {
    display: none;
}

header .menu-mi-cuenta .dropdown-menu[data-bs-popper] {
    top: 90%;
    padding: 10px;
    left: auto !important;
    margin-top: 0;
    box-shadow: 0px 10px 40px 0px #00000026;
    border: none;
}

    header .menu-mi-cuenta .dropdown-menu[data-bs-popper] .dropdown-item {
        color: #919191;
        padding: 10px 20px;
        font-size: 16px;
    }

        header .menu-mi-cuenta .dropdown-menu[data-bs-popper] .dropdown-item.active,
        header .menu-mi-cuenta .dropdown-menu[data-bs-popper] .dropdown-item:active,
        header .menu-mi-cuenta .dropdown-menu[data-bs-popper] .dropdown-item:hover {
            font-weight: 500;
            color: #000;
            background-color: #F7F6F2;
            border-radius: 10px;
        }

header .nav-item.desplegable.dropdown:hover > .dropdown-menu {
    display: block;
    box-shadow: 0px 10px 40px 0px #00000026;
    max-width: 1031px;
    z-index: 99;
}

header .nav-item.desplegable.dropdown:hover > a {
    color: #000;
}

header .desplegable .dropdown-submenu {
    position: relative;
}

    header .desplegable .dropdown-submenu > .dropdown-menu {
        top: 0;
        left: 100%;
        margin-top: -1px;
    }

    header .desplegable .dropdown-submenu:hover > .dropdown-menu {
        display: block;
    }

.subcategorias > div {
    display: none;
}

.subcategorias div.contenedor-subcategoria {
    margin-left: -10px;
    border-radius: 10px;
    height: 100%;
}

    .subcategorias div.contenedor-subcategoria h4 {
        color: #5D5D5D;
        font-size: 14px;
        font-weight: 400;
        text-align: center;
        margin-bottom: 20px;
    }

.contenedor-subcategoria > .d-flex {
    height: 100%;
}

.subcategorias div.contenedor-subcategoria .caja {
    padding: 10px;
    border-radius: 10px;
    background: #F7F6F2;
    height: 100%;
}

    .subcategorias div.contenedor-subcategoria .caja img {
        width: 185px;
        border-radius: 10px;
    }

.subcategorias div.titulo-subcategorias {
    border-bottom: 1px dashed #D9D9D9;
    padding-bottom: 20px;
    margin-bottom: 15px;
}

    .subcategorias div.titulo-subcategorias h3 {
        font-weight: 700;
        font-size: 16px;
    }

    .subcategorias div.titulo-subcategorias p {
        color: #5D5D5D;
        font-size: 14px;
        margin: 0;
    }

.subcategorias div.lista-subcategorias {
    column-count: 2;
    column-gap: 1.5rem;
}

div.lista-subcategorias a {
    font-size: 16px;
    font-weight: 700;
}

    ul.arbol-categorias li a .icono-1,
    div.lista-subcategorias a .icono-1 {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-1.svg');
    }

    ul.arbol-categorias li a .icono-2,
    div.lista-subcategorias a .icono-2 {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-2.svg');
    }

    ul.arbol-categorias li a .icono-3,
    div.lista-subcategorias a .icono-3 {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-3.svg');
    }

    ul.arbol-categorias li a .icono-4,
    div.lista-subcategorias a .icono-4 {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-4.svg');
    }

    ul.arbol-categorias li a .icono-5,
    div.lista-subcategorias a .icono-5 {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-5.svg');
    }

    ul.arbol-categorias li a .icono-6,
    div.lista-subcategorias a .icono-6 {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-6.svg');
    }

.subcategorias div.lista-subcategorias a {
    font-weight: 700;
    font-size: 16px;
    color: #000;
}

    .subcategorias div.lista-subcategorias a.active,
    div.lista-subcategorias a:hover {
        background: #F7F6F2;
        color: #FF7D6A;
        font-weight: 700;
        font-size: 16px;
    }

        ul.arbol-categorias li li a:hover .icono-1,
        ul.arbol-categorias li li.selected a .icono-1,
        .subcategorias div.lista-subcategorias a:hover .icono-1,
        .subcategorias div.lista-subcategorias a.active .icono-1 {
            width: 32px;
            height: 32px;
            background-image: url('/images/iconos/icon-1-hover.svg');
        }

        ul.arbol-categorias li li a:hover .icono-2,
        ul.arbol-categorias li li.selected a .icono-2,
        .subcategorias div.lista-subcategorias a:hover .icono-2,
        .subcategorias div.lista-subcategorias a.active .icono-2 {
            width: 32px;
            height: 32px;
            background-image: url('/images/iconos/icon-2-hover.svg');
        }

        ul.arbol-categorias li li a:hover .icono-3,
        ul.arbol-categorias li li.selected a .icono-3,
        .subcategorias div.lista-subcategorias a:hover .icono-3,
        .subcategorias div.lista-subcategorias a.active .icono-3 {
            width: 32px;
            height: 32px;
            background-image: url('/images/iconos/icon-3-hover.svg');
        }

        ul.arbol-categorias li li a:hover .icono-4,
        ul.arbol-categorias li li.selected a .icono-4,
        .subcategorias div.lista-subcategorias a:hover .icono-4,
        .subcategorias div.lista-subcategorias a.active .icono-4 {
            width: 32px;
            height: 32px;
            background-image: url('/images/iconos/icon-4-hover.svg');
        }

        ul.arbol-categorias li li a:hover .icono-5,
        ul.arbol-categorias li li.selected a .icono-5,
        .subcategorias div.lista-subcategorias a:hover .icono-5,
        .subcategorias div.lista-subcategorias a.active .icono-5 {
            width: 32px;
            height: 32px;
            background-image: url('/images/iconos/icon-5-hover.svg');
        }

        ul.arbol-categorias li li a:hover .icono-6,
        ul.arbol-categorias li li.selected a .icono-6,
        .subcategorias div.lista-subcategorias a:hover .icono-6,
        .subcategorias div.lista-subcategorias a.active .icono-6 {
            width: 32px;
            height: 32px;
            background-image: url('/images/iconos/icon-6-hover.svg');
        }

.subcategorias > div.active {
    display: block;
}

.categorias .dropdown-item {
    font-weight: 400;
    font-size: 14px;
    color: #919191;
    padding: 10px 8px;
}

    .categorias .dropdown-item .img-categoria {
        align-content: center;
        position: relative;
    }

        .categorias .dropdown-item .img-categoria:has(span) {
            padding-left: 30px;
        }

    .categorias .dropdown-item .etapa {
        font-weight: 700;
        margin-bottom: 5px;
    }

    .categorias .dropdown-item .descripcion {
        font-weight: 400;
        font-size: 14px;
    }

        .categorias .dropdown-item .descripcion p {
            margin-bottom: 0;
        }

    .categorias .dropdown-item .curso {
        font-weight: 400;
        font-size: 12px;
        font-style: italic;
    }

    .categorias .dropdown-item.active,
    .categorias .dropdown-item:hover {
        font-weight: 600;
        background: #F7F6F2;
        color: #000;
        border-top-left-radius: 10px;
        border-bottom-left-radius: 10px;
    }

@media (min-width: 768px) {

    .menu-movil-panel {
        display: none;
    }

    .menu-inferior .navbar-toggler {
        display: none;
    }

    .menu-movil {
        display: none;
    }

    .menu-desktop {
        display: block;
    }
}

@media (max-width: 767px) {

    .menu-inferior .num-carrito {
        top: -4px;
        right: -10px;
    }

    .menu-inferior.open {
        box-shadow: none;
    }

    .menu-inferior .container > * {
        flex: 1 1 0;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .menu-superior .navbar-collapse {
        position: fixed;
        background-color: white;
        left: 0;
        bottom: 50px;
        width: 100%;
        height: 100vh;
        padding: 50px 10px;
        z-index: 9999;
    }

    .menu-superior .navbar-toggler {
        background-image: none;
        align-items: center;
        justify-content: center;
        border: none;
        padding: 5px;
        background-color: #FFF;
    }

    .menu-inferior .navbar-toggler-icon {
        background-image: none;
        display: flex;
        align-items: center;
        justify-content: center;
    }

        .menu-inferior .navbar-toggler-icon::before {
            content: "\f0c9";
            font-family: "Font Awesome 7 Free";
            font-weight: 900;
            font-size: 1.5rem;
            color: rgba(146, 146, 146, 1);
        }

    .menu-movil-panel {
        position: fixed;
        padding-bottom: 55px;
        left: 0;
        right: 0;
        bottom: 0;
        top: 100%;
        background: #fff;
        z-index: 998;
        transition: top 250ms ease-in-out;
        overflow-y: auto;
    }

        .menu-movil-panel.open .menu-movil-panel__close {
            position: sticky;
            top: 0;
            right: 0;
            z-index: 999;
            padding: 20px 20px 0 20px;
            background-color: #FFF;
        }

    .menu-movil-panel__body {
        padding: 20px 20px 150px 20px;
    }

        .menu-movil-panel__body .modal-right {
            position: initial;
            box-shadow: none;
            height: auto;
            width: 100%;
        }

        .menu-movil-panel__body .modal-right__body {
            flex: none;
            padding: 20px 0 0 0;
        }

        .menu-movil-panel__body .modal-right__header {
            padding: 0;
        }

        .menu-movil-panel__body .modal-right__close {
            display: none;
        }

        .menu-movil-panel__body .modal-backdrop {
            display: none;
        }

        .menu-movil-panel__body .modal-right__footer {
            position: fixed;
            right: 0;
            left: 0;
            bottom: 65px;
            background: #FFF;
        }

        .menu-movil-panel__body .navbar-nav {
            margin-top: 20px;
            font-weight: 500;
            gap: 50px;
        }

            .menu-movil-panel__body .navbar-nav .categoria-nombre {
                text-transform: uppercase;
            }

            .menu-movil-panel__body .navbar-nav .subcategorias > div {
                display: block;
                width: 90%;
                margin-left: auto;
                background: #F7F6F2;
                margin-top: -10px;
                padding: 20px 10px 10px 10px;
                border-radius: 10px;
            }

            .menu-movil-panel__body .navbar-nav .subcategorias div.lista-subcategorias {
                column-count: 1;
            }

            .menu-movil-panel__body .navbar-nav .nav-item.active {
                color: #2F6BAF !important;
                text-shadow: 0 0 1px #2F6BAF;
                border-bottom: 1px solid #2F6BAF;
            }
}

@media (max-width: 767px) {

    .menu-movil-panel.open {
        top: 0;
        bottom: 0;
    }

    .menu-movil {
        display: block;
    }

    .menu-desktop {
        display: none;
    }

    .menu-inferior {
        z-index: 999;
        padding: 15px 10px;
        display: block;
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        background-color: rgba(255, 255, 255, 1);
        box-shadow: 0px 10px 40px 0px rgba(0, 0, 0, 0.15);
    }

    .menu-superior ul.nav-mi-cuenta {
        display: none;
    }
}

@media (max-width: 575px) {

    header .container .desplegable .dropdown-menu {
        transform: none !important;
        width: 100% !important;
        box-shadow: none !important;
        padding: 0 10px !important;
    }

        header .container .desplegable .dropdown-menu.contenedor-subcategoria {
            width: 90% !important;
            margin-top: -15px;
            padding: 0 !important;
            margin-left: auto;
        }

    .lista-subcategorias {
        padding-top: 10px;
    }


        .lista-subcategorias .dropdown-item {
            padding: 0 !important;
        }

    div.contenedor-subcategoria .caja {
        padding: 10px;
        border-radius: 10px;
        background: #F7F6F2;
        height: 100%;
    }

    header nav li.nav-item.desplegable a.nav-link,
    header nav li.nav-item.desplegable a.nav-link:hover,
    header nav li.nav-item.desplegable a.nav-link.active {
        color: #000 !important;
        border-bottom: none !important;
        text-shadow: none !important;
    }

    .categorias .dropdown-item {
        color: rgba(145, 145, 145, 1);
    }

        .categorias .dropdown-item.active {
            color: #000;
        }

    .lista-subcategorias .dropdown-item {
        color: #000;
        font-weight: 700;
        margin-bottom: 10px;
    }

        .lista-subcategorias .dropdown-item:hover {
            color: #FF7D6A;
        }
}


.pagina-categoria h1 {
    font-size: 40px;
    font-weight: 700;
    border-bottom: 1px solid #D9D9D9
}

.pagina-categoria h2 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 20px;
}

ul.arbol-categorias {
    padding: 10px;
    border-radius: 10px;
    box-shadow: 0px 10px 40px 0px #00000026;
}

    ul.arbol-categorias,
    ul.arbol-categorias ul {
        list-style-type: none;
    }

        ul.arbol-categorias ul {
            margin-top: 20px;
        }

        ul.arbol-categorias a {
            font-weight: 700;
            color: var(--black-primary);
            text-decoration: none;
        }

        ul.arbol-categorias li {
            margin-bottom: 10px;
            font-weight: 700;
            padding: 10px;
            padding-top: 20px;
        }

        ul.arbol-categorias ul li {
            font-weight: 400;
            padding: 0;
        }

            ul.arbol-categorias ul li a {
                display: block;
            }

        ul.arbol-categorias span {
            position: relative;
            padding-left: 45px;
        }

            .img-categoria span.icono::before,
            ul.arbol-categorias span::before {
                content: "";
                width: 32px;
                height: 32px;
                border-radius: 10px;
                display: inline-block;
                position: absolute;
                left: 0;
                top: 50%;
                transform: translateY(-50%);
            }

        .img-categoria span.icono.categoria-0::before,
        ul.arbol-categorias li.categoria-0 span::before {
            background-color: #FAB96D;
        }

        .img-categoria span.icono.categoria-1::before,
        ul.arbol-categorias li.categoria-1 span::before {
            background-color: #FF7D6A;
        }

        .img-categoria span.icono.categoria-2::before,
        ul.arbol-categorias li.categoria-2 span::before {
            background-color: #00A2A3;
        }

        .img-categoria span.icono.categoria-3::before,
        ul.arbol-categorias li.categoria-3 span::before {
            background-color: #2F6BAF;
        }

        .img-categoria span.icono.categoria-4::before,
        ul.arbol-categorias li.categoria-4 span::before {
            background-color: #FF7D6A;
        }

        .img-categoria span.icono.categoria-5::before,
        ul.arbol-categorias li.categoria-5 span::before {
            background-color: #00A2A3;
        }

        .img-categoria span.icono.categoria-6::before,
        ul.arbol-categorias li.categoria-6 span::before {
            background-color: #2F6BAF;
        }

        ul.arbol-categorias li span:has(img) {
            padding-left: 0;
            display: inline-flex;
            align-items: center;
            gap: 10px;
        }

            ul.arbol-categorias li span:has(img)::before {
                content: none;
            }

        ul.arbol-categorias li.selected {
            background: #F7F6F2;
            border-radius: 10px;
        }

        ul.arbol-categorias ul li a:hover,
        ul.arbol-categorias ul li.selected a {
            color: #FF7D6A;
            font-weight: 800;
        }

ul.formatos {
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 0;
    gap: 5px;
    margin-bottom: 5px;
    justify-content: end;
}

    ul.formatos li {
    }

        ul.formatos li a {
            color: #2F6BAF;
            text-decoration: none;
            font-weight: 400;
            font-size: 12px;
            padding: 5px 20px;
        }

            ul.formatos li a.active {
                color: #FFFFFF;
                background-color: #2F6BAF;
                border-radius: 50px;
                font-weight: 700;
            }

ul.productos {
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 0;
}

#popUpProducto ul.productos {
    display: block;
}

ul.productos li {
    width: calc(25% - 10px);
    min-height: 315px;
    background: #FFF;
    border-radius: 10px;
    margin: 5px;
    box-sizing: border-box;
    border: 1px solid #ECECEC;
}

@media (max-width: 1024px) {
    ul.productos li {
        width: calc(33% - 10px);
    }
}

@media (max-width: 650px) {
    ul.productos li {
        width: calc(50% - 10px);
    }
}

ul.productos li a.img-producto {
    display: block;
    height: 260px;
    min-height: 260px;
    align-content: center;
    text-align: center;
}

    /*@media (max-width: 767px) {
    ul.productos li a.img-producto {
        height: 200px;
    }
}*/


    ul.productos li a.img-producto .overlay {
        position: absolute;
        font-family: var(--font-primary);
        inset: 0;
        background-color: rgba(255, 255, 255, 0.8);
        color: #000;
        font-weight: 500;
        font-size: 20px;
        text-align: center;
        opacity: 0;
        transition: opacity 0.25s ease;
        z-index: 9;
    }

    ul.productos li a.img-producto:hover .overlay {
        opacity: 1;
    }

ul.productos li img {
    padding: 20px 20px 20px 20px;
    margin: 0 auto;
    max-height: 100%;
}

ul.productos li div.precio-normal {
    font-size: 14px;
    font-weight: 700;
    margin-top: 10px;
}

ul.productos li div.precio {
    font-size: 14px;
    font-weight: 400;
    margin-top: 10px;
}

    ul.productos li div.precio .con-descuento {
        color: #F70000;
        font-weight: 700;
        margin-left: 10px;
    }

ul.productos li div.etiquetas-superiores {
    font-size: 12px;
    font-weight: 400;
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    gap: 5px;
}

    ul.productos li div.etiquetas-superiores .formato {
        padding: 0 5px;
        border-radius: 5px;
        background-color: #2F6BAF;
        color: #FFF;
    }

    ul.productos li div.etiquetas-superiores .descuento {
        padding: 0 5px;
        border-radius: 5px;
        background-color: #F70000;
        color: #FFF;
    }

ul.productos li div.titulo {
    padding: 10px;
    position: absolute;
    width: 100%;
    bottom: 0;
    background-color: rgba(255,255,255, 0.8);
}

    ul.productos li div.titulo a {
        font-size: 14px;
        text-decoration: none;
        color: #000;
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
    }

        ul.productos li div.titulo a span {
            font-weight: 700;
        }

#popUpProducto .modal-header {
    border-bottom: none;
}

.modal-header .btn-close,
#popUpProducto .btn-close {
    background-color: #D9D9D9;
    border-radius: 25px;
    color: #000;
    font-size: 10px;
}

#popUpProducto .modal-header .modal-title {
    color: #00A2A3;
    font-size: 16px;
    font-weight: 400;
    flex-grow: 1;
}

    #popUpProducto .modal-header .modal-title span {
        font-weight: 700;
    }

#popUpProducto .modal-body {
    padding: 0 20px 20px 20px;
}

    #popUpProducto .modal-body div.precio-normal {
        font-size: 18px;
        font-weight: 700;
        margin-top: 10px;
    }

    #popUpProducto .modal-body div.precio {
        color: #5D5D5D;
        font-size: 18px;
        font-weight: 400;
        margin-top: 10px;
    }

        #popUpProducto .modal-body div.precio .con-descuento {
            color: #5D5D5D;
            font-weight: 700;
            margin-left: 10px;
        }

    #popUpProducto .modal-body .formato span {
        padding: 5px 10px;
        display: inline-block;
        border-radius: 5px;
        background-color: #2F6BAF;
        color: #FFF;
        margin-bottom: 10px;
        font-size: 12px;
        font-style: italic;
    }

    #popUpProducto .modal-body .descuento span {
        padding: 5px 10px;
        display: inline-block;
        border-radius: 5px;
        background-color: #F70000;
        color: #FFF;
        margin-bottom: 10px;
        font-size: 14px;
    }

    #popUpProducto .modal-body .img-producto {
        padding: 0 20px;
        text-align: center;
        margin-bottom: 20px;
    }

    #popUpProducto .modal-body .descripcion {
        color: #5D5D5D;
        margin-bottom: 10px;
    }

    #popUpProducto .modal-body .isbn,
    #popUpProducto .modal-body .editorial {
        color: #5D5D5D;
        margin-bottom: 10px;
    }

        #popUpProducto .modal-body .isbn span,
        #popUpProducto .modal-body .editorial span {
            font-weight: 700;
        }

    #popUpProducto .modal-body h2 {
        font-size: 35px;
        font-weight: 700;
    }

    #popUpProducto .modal-body h3 {
        font-size: 32px;
        font-weight: 700;
    }

    #popUpProducto .modal-body .unidades-carrito {
        color: #00A2A3;
        font-weight: 700;
        margin-right: 10px;
    }

    #popUpProducto .modal-body .asignado-carrito {
        color: #5D5D5D;
        font-weight: 400;
        font-size: 12px;
    }

    #popUpProducto .modal-body .form-label {
        font-size: 14px;
        color: #5D5D5D;
    }

    #popUpProducto .modal-body .dropdown-item {
        font-size: 14px;
        color: #5D5D5D;
    }

    #popUpProducto .modal-body .enlace-add {
        font-size: 14px;
    }

    #popUpProducto .modal-body .estudiante-carrito {
        font-weight: 500;
        font-size: 14px;
        flex: 1;
    }

    #popUpProducto .modal-body .contenedor-add-carrito {
        padding: 10px 0;
    }

i.icono {
    display: inline-block;
    background-size: auto;
    background-repeat: no-repeat;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-right: 5px;
    vertical-align: middle;
}

.icono-map {
    width: 48px !important;
    height: 48px !important;
    background-image: url('/images/iconos/icon-map-48.svg');
}

.icono-pin {
    width: 24px !important;
    height: 24px !important;
    background-image: url('/images/iconos/icon-pin-24.svg');
}

.icono-ojo {
    width: 24px !important;
    height: 24px !important;
    background-image: url('/images/iconos/icon-eye-24.svg');
}

.icono-borrar {
    width: 16px !important;
    height: 16px !important;
    background-image: url('/images/iconos/icon-pedido-cancelado.svg');
}

.icono-ojo-tachado {
    width: 24px !important;
    height: 24px !important;
    background-image: url('/images/iconos/icon-eye-off-24.svg');
}

.icono-checkbox {
    width: 24px !important;
    height: 24px !important;
    background-image: url('/images/iconos/icon-checkbox-24.svg');
}

.icono-check {
    background-image: url('/images/iconos/icon-check-16.svg');
}

    .icono-check.white {
        background-image: url('/images/iconos/icon-check-white-16.svg');
    }

.icono-edit {
    background-image: url('/images/iconos/icon-edit-16.svg');
}

    .icono-edit.big {
        background-image: url('/images/iconos/icon-edit-24.svg');
    }

    .icono-edit.bigger {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-edit-32.svg');
    }

    .icono-edit.disabled.bigger {
        background-image: url('/images/iconos/icon-edit-32-disabled.svg');
    }

.icono-volver {
    width: 24px !important;
    height: 24px !important;
    background-image: url('/images/iconos/icon-arrow-left-24.svg');
}

.icono-info.grey {
    width: 24px !important;
    height: 24px !important;
    background-image: url('/images/iconos/icon-info-grey-24.svg');
}

.icono-info {
    width: 24px !important;
    height: 24px !important;
    background-image: url('/images/iconos/icon-info-24.svg');
}

    .icono-info.blue {
        width: 24px !important;
        height: 24px !important;
        background-image: url('/images/iconos/icon-info-blue-24.svg');
    }

.icono-chevron-down {
    width: 18px !important;
    height: 18px !important;
    background-image: url('/images/iconos/icon-chevron-down-18.svg');
}

.icono-chevron-up.blue {
    width: 18px !important;
    height: 18px !important;
    background-image: url('/images/iconos/icon-chevron-up-blue-18.svg');
}

.icono-help {
    width: 24px !important;
    height: 24px !important;
    background-image: url('/images/iconos/icon-help-24.svg');
}

    .icono-help.blue {
        width: 24px !important;
        height: 24px !important;
        background-image: url('/images/iconos/icon-help-blue-24.svg');
    }

.icono-trash {
    background-image: url('/images/iconos/icon-trash-16.svg');
}

    .icono-trash.big {
        background-image: url('/images/iconos/icon-trash-24.svg');
    }

    .icono-trash.bigger {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-trash-32.svg');
    }

    .icono-trash.disabled.bigger {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-trash-32-grey.svg');
    }

.icono-trash-borde.big {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-trash-border-24.svg');
}

.icono-plus {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-plus-16.svg');
}

    .icono-plus.big {
        width: 24px;
        height: 24px;
        background-image: url('/images/iconos/icon-plus-24.svg');
    }

    .icono-plus.bigger {
        width: 32px;
        height: 32px;
        background-image: url('/images/iconos/icon-plus-32.svg');
    }

.icono-less.bigger {
    width: 32px;
    height: 32px;
    background-image: url('/images/iconos/icon-less-32.svg');
}

.icono-euro.big {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-euro-green-24.svg');
}

.icono-play.bigger {
    width: 80px;
    height: 80px;
    background-image: url('/images/iconos/icon-play-80.svg');
}

.icono-shuffle.bigger {
    width: 50px;
    height: 50px;
    background-image: url('/images/iconos/icon-shuffle-50.svg');
}

.icono-lock.bigger {
    width: 50px;
    height: 50px;
    background-image: url('/images/iconos/icon-lock-50.svg');
}

.icono-pack.bigger {
    width: 50px;
    height: 50px;
    background-image: url('/images/iconos/icon-pack-50.svg');
}

.icono-truck.big {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-truck-green-24.svg');
}

.icono-truck.bigger {
    width: 50px;
    height: 50px;
    background-image: url('/images/iconos/icon-truck-50.svg');
}

.icono-shuffle.big {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-shuffle-green-24.svg');
}

.icono-minimo.big {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-minimo-24.svg');
}

.icono-visa.big {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-visa-24.svg');
}

.icono-mastercard.big {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-mastercard-24.svg');
}

.icono-paypal.big {
    width: 24px;
    height: 24px;
    background-image: url('/images/iconos/icon-paypal-24.svg');
}

.icono-visa {
    width: 32px !important;
    height: 32px !important;
    background-image: url('/images/logo-visa.svg');
}

.icono-amex {
    width: 32px !important;
    height: 21px !important;
    background-image: url('/images/logo-amex.svg');
}

.icono-card {
    width: 32px !important;
    height: 32px !important;
    background-image: url('/images/logo-card.svg');
}

.icono-mastercard {
    width: 32px !important;
    height: 25px !important;
    background-image: url('/images/logo-mastercard.svg');
}

.navbar-nav .icono {
    width: 48px;
    height: 48px;
}

.navbar .navbar-brand.inactive img {
    filter: grayscale(1) brightness(1) opacity(0.3);
}

.navbar .menu-superior {
    flex: 1;
    flex-direction: column;
    gap: 10px;
}

    .navbar .menu-superior .btn-outline-secondary.btn-sm {
        min-width: auto;
        padding: 10px 10px;
        border-radius: 10px;
        border-width: 2px;
    }

        .navbar .menu-superior .btn-outline-secondary.btn-sm.active {
            background-color: #2F6BAF;
            color: #FFF;
            border-color: #2F6BAF;
        }

        .navbar .menu-superior .btn-outline-secondary.btn-sm:hover {
            background-color: #2F6BAF;
            color: #FFF;
            border-color: #2F6BAF;
        }

.icono-user {
    border: 2px solid #00A2A3;
    border-radius: 10px;
    background-position: center center;
    background-image: url('/images/iconos/icon-user.svg');
}

.icono-cart {
    border: 2px solid #FF7D6A;
    border-radius: 10px;
    background-position: center center;
    background-image: url('/images/iconos/icon-cart.svg');
}

.menu-inferior .icono-carrito {
    width: 32px;
    height: 32px;
    border: none;
    background-image: url('/images/iconos/icon-carrito-32.svg');
}

    .menu-inferior .icono-carrito.active {
        background-image: url('/images/iconos/icono-carrito-blue-32.svg');
    }

.menu-inferior .icono-user {
    width: 32px;
    height: 32px;
    border: none;
    background-image: url('/images/iconos/icon-user-32.svg');
}

    .menu-inferior .icono-user.active {
        background-image: url('/images/iconos/icono-user-blue-32.svg');
    }

.menu-inferior .icono-burger {
    width: 32px;
    height: 32px;
    border: none;
    background-image: url('/images/iconos/icon-burger-32.svg');
}

    .menu-inferior .icono-burger.active {
        background-image: url('/images/iconos/icon-burger-blue-32.svg');
    }


.icono-x {
    width: 24px !important;
    height: 24px !important;
    border: none;
    background-image: url('/images/iconos/icon-x-24.svg');
}

.icono-back {
    width: 16px;
    height: 16px;
    border: none;
    background-image: url('/images/iconos/icon-back-16.svg');
}


.icono-back.white {
    background-image: url('/images/iconos/icon-back-white-16.svg');
}

.pasos-wizard {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px 0;
}

    .pasos-wizard .line-container {
        width: 450px;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .pasos-wizard .line {
        width: 100%;
        height: 1px;
        border-top: 1px solid var(--green-light);
        position: relative;
    }

    .pasos-wizard .paso {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        flex-direction: column;
        align-items: center;
    }

        .pasos-wizard .paso .numero {
            width: 30px;
            height: 30px;
            background-color: var(--grey-medium);
            color: var(--green-light);
            border: 1px solid var(--green-light);
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            font-weight: 600;
            position: relative;
            z-index: 1;
        }

            .pasos-wizard .paso .numero.ok {
                background-color: var(--green-light);
            }

                .pasos-wizard .paso .numero.ok i.icono {
                    margin-right: 0;
                }

        .pasos-wizard .paso.selected .numero {
            background-color: var(--green-light);
            color: var(--grey-medium);
        }

        .pasos-wizard .paso .texto {
            font-size: 13px;
            color: black;
            text-align: center;
            position: absolute;
            top: 100%;
            color: var(--green-light);
        }

        .pasos-wizard .paso.selected .texto {
            font-weight: 700;
        }

        .pasos-wizard .paso.start {
            left: 0;
            transform: translateX(-50%) translateY(-50%);
        }

        .pasos-wizard .paso.middle {
            left: 50%;
            transform: translateX(-50%) translateY(-50%);
        }

        .pasos-wizard .paso.end {
            right: 0;
            transform: translateX(50%) translateY(-50%);
        }


@media (max-width: 650px) {
    .pasos-wizard .paso .texto {
        font-size: 12px;
    }

    .pasos-wizard .line-container {
        width: 70%;
    }
}

.alta-cliente {
    width: 50%;
    margin: 0 auto;
    color: #5D5D5D;
    font-size: 14px;
}

@media (max-width: 767px) {
    main {
        padding-bottom: 200px;
    }
}

@media (max-width: 650px) {
    .alta-cliente {
        width: 100% !important;
    }
}

@media (max-width: 1200px) {
    .alta-cliente {
        width: 85%;
    }
}

.alta-cliente h1 {
    font-family: var(--font-primary);
    margin-top: 20px;
    margin-bottom: 20px;
    text-align: center;
    font-weight: 700;
    color: #000;
}

.alta-cliente .ficha .btn-primary {
    padding: 10px 0;
    min-width: 245px;
}

.alta-cliente .ficha .btn-outline-secondary {
    border-color: rgb(0, 162, 163);
    color: rgb(0, 162, 163);
}

.contenedor-add-carrito-compacto {
    padding: 10px;
}

.mis-datos .caja-pedido .btn-outline-secondary {
    border-color: rgb(0, 162, 163);
    color: rgb(0, 162, 163);
}

    .mis-datos .caja-pedido .btn-outline-secondary:hover {
        background-color: rgb(0, 162, 163);
        color: #FFF;
    }

.contenedor-add-carrito-compacto .btn-outline-secondary {
    border-color: rgb(0, 162, 163);
    color: rgb(0, 162, 163);
    min-width: auto;
    width: 100%;
}

    .contenedor-add-carrito-compacto .btn-outline-secondary:hover {
        background-color: rgb(0, 162, 163);
        border-color: rgb(0, 162, 163);
        color: #FFF;
    }

.alta-cliente .ficha .btn-outline-secondary:hover {
    border-color: #D9D9D9;
    color: #FFF;
}

.enlace {
    color: #00A2A3;
}

.alta-cliente .btn-circular {
    width: 50px;
    height: 50px;
    text-align: center;
    align-content: center;
    border-radius: 50px;
    background-color: rgb(0, 162, 163);
    color: #FFF;
    font-size: 25px;
}

.alta-cliente .ficha {
    color: #5D5D5D;
    font-size: 14px;
    padding: 10px 20px;
    margin-top: 20px;
}

    .alta-cliente .ficha.edition h3 {
        border-bottom: 1px solid #D9D9D9;
    }

    .alta-cliente .ficha h3 {
        color: #5D5D5D;
        font-size: 20px;
        font-weight: 700;
        margin-bottom: 20px;
        padding-bottom: 20px;
        flex-grow: 1;
    }

.invalid-feedback,
.invalid-feedback.is-invalid {
    display: block;
}



.form-check.check-verde input.form-check-input {
    border-color: #00A2A3;
    color: #00A2A3;
    width: 24px;
    height: 24px;
    float: none !important;
    margin-left: 0 !important;
    background-color: white;
    border-radius: 5px;
}

.form-check.check-verde .form-check-input:checked {
    background-image: url('/images/iconos/icon-checkbox-24.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 20px 20px;
    border-color: #00A2A3;
    background-color: white;
    border-radius: 5px;
}

.form-check input.form-check-input:focus {
    box-shadow: none !important;
}

.form-check.check-verde input.form-check-input:focus {
    border-color: #00A2A3 !important;
}

.form-check.check-verde .form-check-label {
    padding-left: 10px;
    color: #5D5D5D;
    font-size: 14px;
}

.alta-cliente .form-check-label div {
    font-size: 12px;
    font-style: italic;
}

.num-carrito {
    position: absolute;
    width: 18px;
    height: 18px;
    top: -8px;
    right: -8px;
    background-color: #FF7D6A;
    border-radius: 20px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
}

ul.lista-carrito {
    list-style-type: none;
    padding: 0;
}

li.item-carrito {
}

    li.item-carrito .estudiante {
        color: #00A2A3;
    }


.modal-backdrop {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.45);
    z-index: 1040; /* Below the panel */
}

.modal-right {
    position: fixed;
    right: 0;
    top: 0;
    height: 100vh;
    width: min(520px, 100vw);
    max-width: 100vw;
    background: #fff;
    box-shadow: -4px 0 16px rgba(0, 0, 0, 0.2);
    z-index: 1050;
    display: flex;
    flex-direction: column;
}

    .modal-right .dropdown-item {
        color: #5D5D5D;
        font-size: 12px;
        padding: 10px 20px;
    }

    .modal-right .form-label {
        font-weight: 500;
        font-size: 12px;
        margin-bottom: 0;
    }

    .modal-right .form-select {
        font-size: 12px;
    }

    .modal-right .dropdown-item.active,
    .modal-right .dropdown-item:active,
    .modal-right .dropdown-item:hover {
        font-weight: 500;
        color: #000;
        background-color: #F7F6F2;
        border-radius: 10px;
    }

.modal-right__header {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid #e5e5e5;
}

    .modal-right__header h2 {
        flex: 1;
        font-weight: 700;
        font-size: 24px;
        margin: 0;
    }

    .modal-right__header .enlace-borrar {
        text-decoration: none;
        color: #F70000;
        display: flex;
        align-items: center;
    }

.modal-right__close {
    border: none;
    padding: 8px !important;
    background-color: #D9D9D9;
    border-radius: 25px;
    color: #000;
    font-size: 10px;
}

.modal-right__body {
    flex: 1 1 auto;
    padding: 20px;
    overflow-y: auto;
}

.modal-right__footer {
    border-top: 1px solid #e5e5e5;
    padding: 12px 16px;
    color: #5D5D5D;
    font-weight: 700;
    font-size: 16px;
}

    .modal-right__footer .precio-final {
        color: #000000;
        font-weight: 700;
        font-size: 20px;
    }


.modal-right__section {
    margin-bottom: 12px;
}

.modal-right__items {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 20px;
}

.modal-right__categoria-titulo {
    font-size: 14px;
    margin-bottom: 20px;
}

.modal-right__item {
    font-size: 14px;
    padding: 15px 12px;
    border-bottom: 1px solid #D9D9D9;
}

    .modal-right__item .etiquetas-superiores {
        font-size: 11px;
        position: absolute;
        top: 0;
        right: 0;
        display: flex;
        gap: 5px;
    }

    .modal-right__item .descuento {
        font-size: 10px;
        padding: 0 2px;
        border-radius: 5px;
        background-color: #F70000;
        color: #FFF;
    }

    .modal-right__item .formato {
        padding: 0 5px;
        border-radius: 5px;
        background-color: #2F6BAF;
        color: #FFF;
    }

    .modal-right__item img.img-fluid {
        border-radius: 10px;
    }

.modal-right__item-nombre {
    font-weight: 600;
}

    .modal-right__item-nombre .precio .tachado {
        font-weight: 400;
    }

.modal-right__item-detalle {
    color: #666;
    font-size: 0.95rem;
}

    .modal-right__item-detalle.estudiante {
        margin-top: 10px;
        margin-bottom: 10px;
        padding-bottom: 10px;
        border-bottom: 1px solid #D9D9D9;
    }

        .modal-right__item-detalle.estudiante .asignado {
            color: #00A2A3;
        }

            .modal-right__item-detalle.estudiante .asignado .etiqueta {
                font-weight: 700;
            }

            .modal-right__item-detalle.estudiante .asignado .texto {
                padding-left: 10px;
                font-style: italic;
            }


        .modal-right__item-detalle.estudiante .sin-asignar .texto {
            margin-left: 10px;
            padding: 5px 10px;
            border-radius: 10px;
            display: inline-block;
            color: #FFF;
            background-color: #F79400;
            font-style: italic;
        }

    .modal-right__item-detalle .cantidad {
        flex: 1;
        color: #00A2A3;
        font-weight: 700;
        font-size: 20px;
    }

.modal-right__loading {
    color: #333;
}

.botones-cantidad {
    font-size: 20px;
    display: inline-flex;
    align-items: center;
    font-weight: 400;
    border-radius: 50px;
    border: 1px solid #E2E2E2;
}

    .botones-cantidad .boton-menos,
    .botones-cantidad .boton-mas {
        cursor: pointer;
        padding: 0;
    }

#carrito-compra h1 {
    color: #000;
    font-weight: 700;
    font-size: 32px;
    padding-bottom: 10px;
    padding-top: 20px;
}

.resumen-carrito h1 {
    padding-top: 10px !important;
}

#carrito-compra h1.subrayado {
    border-bottom: 1px solid #E2E2E2;
}

#carrito-compra .carrito-items {
    font-size: 14px;
}

    #carrito-compra .carrito-items .dropdown-item {
        color: #5D5D5D;
        font-size: 12px;
        padding: 10px 20px;
    }

    #carrito-compra .carrito-items .form-label {
        font-weight: 500;
        font-size: 12px;
        margin-bottom: 0;
    }

    #carrito-compra .carrito-items .form-select {
        font-size: 12px;
    }

    #carrito-compra .carrito-items .dropdown-item.active,
    #carrito-compra .carrito-items .dropdown-item:active,
    #carrito-compra .carrito-items .dropdown-item:hover {
        font-weight: 500;
        color: #000;
        background-color: #F7F6F2;
        border-radius: 10px;
    }

    #carrito-compra .carrito-items .dropdown.combo .enlace-add {
        font-size: 12px;
    }

    #carrito-compra .carrito-items .lista-carrito .item-carrito {
        padding: 10px;
    }

        #carrito-compra .carrito-items .lista-carrito .item-carrito:nth-child(2n+1) {
            background-color: #F9F9F9;
            border-radius: 10px;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .etiquetas-superiores {
            font-size: 10px;
            position: absolute;
            top: 0;
            right: 0;
            display: flex;
            gap: 5px;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .descuento {
            font-size: 11px;
            padding: 0 2px;
            border-radius: 5px;
            background-color: #F70000;
            color: #FFF;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .formato {
            padding: 0 5px;
            border-radius: 5px;
            background-color: #2F6BAF;
            color: #FFF;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .img-producto {
            text-align: center;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito img.img-fluid {
            border-radius: 10px;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .titulo {
            font-weight: 700;
            font-size: 16px;
            margin-bottom: 10px;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .sin-asignar {
            font-weight: 400;
            margin-left: 10px;
            padding: 5px 10px;
            border-radius: 10px;
            display: inline-block;
            color: #FFF;
            background-color: #F79400;
            font-style: italic;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .isbn {
            color: #5D5D5D;
            margin-bottom: 10px;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .editorial {
            color: #5D5D5D;
            margin-bottom: 10px;
        }

            #carrito-compra .carrito-items .lista-carrito .item-carrito .isbn span,
            #carrito-compra .carrito-items .lista-carrito .item-carrito .editorial span {
                font-weight: 700;
            }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .precio {
            flex: 1;
            text-align: center;
            font-weight: 700;
            font-size: 20px;
        }

            #carrito-compra .carrito-items .lista-carrito .item-carrito .precio .tachado {
                font-weight: 400;
                font-size: 16px;
            }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .estudiante {
            color: #00A2A3;
        }

            #carrito-compra .carrito-items .lista-carrito .item-carrito .estudiante span {
                font-weight: 700;
            }

#carrito-compra .ficha.edition h3 {
    border-bottom: 1px solid #D9D9D9;
    margin: 20px 0;
}

.resumen-carrito {
    border: 1px solid #E2E2E2;
    border-radius: 10px;
    padding: 10px;
}

    .resumen-carrito .recuadro {
        padding: 10px 20px;
        background-color: #F9F9F9;
        border-radius: 10px;
    }

    .resumen-carrito .texto-opcional {
        color: #5D5D5D;
        font-style: italic;
        font-size: 14px;
        margin-bottom: 20px;
    }

    .resumen-carrito .totales {
        font-weight: 700;
        color: #5D5D5D;
    }

        .resumen-carrito .totales .precio {
            color: #000;
        }

        .resumen-carrito .totales .por-calcular {
            font-size: 12px;
            font-weight: 400;
            color: #000;
        }

    .resumen-carrito .codigo-cupon {
        font-size: 12px;
    }

.cupon-anadido {
    font-size: 12px;
    padding: 5px 10px;
    border-radius: 5px;
    background-color: #2F6BAF;
    color: #FFF;
    border: 1px solid #E2E2E2;
    font-weight: 500;
}

.resumen-carrito .codigo-cupon input {
    border-radius: 50px;
    border: 1px solid #2F6BAF;
}

.resumen-carrito .codigo-cupon input {
    border-radius: 50px;
    border: 1px solid #2F6BAF;
    font-size: 12px;
    padding: 10px;
}

    .resumen-carrito .codigo-cupon input::placeholder {
        font-style: italic;
        color: #979797;
    }


.resumen-carrito .separador {
    border-top: 1px solid #E2E2E2;
    margin: 20px 0;
}

.resumen-carrito .btn-primary.cupon {
    min-width: auto;
    height: 100%;
    padding: 5px 20px;
    border-radius: 8px;
    background-color: #2F6BAF;
}

#carrito-compra .accordion .accordion-item {
    border: none;
}

#carrito-compra .direcciones,
#carrito-compra .direcciones label {
    color: #5D5D5D;
    font-size: 14px;
}

    #carrito-compra .direcciones .azul {
        color: #2F6BAF;
    }

    #carrito-compra .direcciones .direccion {
        background-color: #F9F9F9;
        border-radius: 10px;
        padding: 10px;
        color: #5D5D5D;
        font-size: 14px;
    }

#carrito-compra .form-check-input:checked + label {
}

#carrito-compra .direcciones .direccion .nombre {
    font-weight: 700;
    padding-bottom: 10px;
    margin-bottom: 10px;
    font-size: 20px;
    border-bottom: 1px solid #D9D9D9;
}

.aviso-error {
    color: #FF3D00;
    font-weight: 400;
    font-size: 14px;
    margin-bottom: 10px;
}

@media (max-width: 575px) {

    #carrito-compra {
        padding-bottom: 300px;
    }

        #carrito-compra .carrito-items .lista-carrito .item-carrito .precio {
            text-align: left;
            font-size: 14px;
        }

        #carrito-compra .carrito-items .lista-carrito .item-carrito {
            background-color: #F9F9F9;
            border-radius: 10px;
        }

    .resumen-carrito {
        position: fixed;
        right: 0;
        left: 0;
        bottom: 65px;
        background: #FFF;
        border: none;
        border-radius: 0;
        box-shadow: 0px 10px 40px 0px #00000040;
        z-index: 99;
    }

        .resumen-carrito .en-carrito {
            padding: 0 10px;
            color: #5D5D5D;
        }

        .resumen-carrito .precio-label {
            color: #5D5D5D;
            font-weight: 700;
        }

        .resumen-carrito .precio-final {
            font-weight: 700;
            font-size: 20px;
        }

    #carrito-compra h1.subrayado {
        padding-top: 0;
    }

    .resumen-carrito .totales .precio {
        font-size: 20px;
    }
}

@media (max-width: 767px) {
    .btn-primary.cupon {
        min-width: auto;
        height: 100%;
        padding: 5px 20px;
        border-radius: 8px;
        background-color: #2F6BAF;
    }
}

.caret-left {
    padding-left: 0;
    color: #2F6BAF;
}

    .caret-left::after {
        margin-left: 0;
        margin-right: .75rem;
        order: -1;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%232F6BAF' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    }

    .caret-left:not(.collapsed)::after {
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%232F6BAF' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    }

.form-check {
    display: flex;
}

    .form-check.radio-item {
        padding: 10px;
        cursor: pointer;
    }

    .form-check.radio-checked {
        background-color: #F9F9F9;
        border-radius: 10px;
    }

    .form-check.radio-item .form-check-label {
        cursor: pointer;
    }

    .form-check.radio-item .form-check-input {
        cursor: pointer;
        width: 24px;
        height: 24px;
        flex: 0 0 24px;
        position: relative;
        border-color: #000;
        margin-left: 5px;
        border-width: 2px;
    }

        .form-check.radio-item .form-check-input:checked {
            background-color: transparent;
            border-color: #000;
        }

            .form-check.radio-item .form-check-input:checked::before {
                content: "";
                width: 16px;
                height: 16px;
                background-color: rgba(0, 119, 163, 1);
                border-radius: 50%;
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
            }

.btn-primary {
    border-radius: 50px;
    border: none;
    padding: 10px 20px;
    background-color: #00A2A3;
    color: #FFF;
    min-width: 245px;
    font-weight: 700;
}

    .btn-primary:focus,
    .btn-primary:active {
        background-color: #00A2A3;
    }

    .btn-primary:hover {
        background-color: #00A2A3;
        color: #FFF;
        box-shadow: 0px 6px 10px 0px #00000026;
    }

.btn-secondary {
    border-radius: 50px;
    border: 1px solid #00A2A3;
    padding: 10px 0;
    background-color: #FFF;
    color: #00A2A3;
    min-width: 245px;
    font-weight: 700;
}

    .btn-secondary:focus,
    .btn-secondary:active {
        background-color: #FFF;
    }

    .btn-secondary:hover {
        background-color: #00A2A3;
        border-color: #00A2A3;
        color: #FFF;
        box-shadow: 0px 6px 10px 0px #00000026;
    }

.btn-outline-secondary {
    border-radius: 50px;
    border: 1px solid #2F6BAF;
    padding: 10px 0;
    background-color: #FFF;
    color: #2F6BAF;
    min-width: 245px;
    font-weight: 700;
}

    .btn-outline-secondary.active {
        background-color: #2F6BAF !important;
        color: #FFF !important;
    }

    .btn-outline-secondary:focus,
    .btn-outline-secondary:active {
        background-color: #FFF;
    }

    .btn-outline-secondary:hover {
        background-color: #2F6BAF;
        color: #FFF;
        border-color: #2F6BAF;
        box-shadow: 0px 6px 10px 0px #00000026;
    }

.btn-outline-primary {
    border-radius: 50px;
    border: 1px solid #00A2A3;
    padding: 10px 20px;
    background-color: #FFF;
    color: #00A2A3;
    min-width: 245px;
    font-weight: 700;
}

    .btn-outline-primary:focus,
    .btn-outline-primary:active {
        background-color: #FFF;
        color: #00A2A3;
        border-color: #00A2A3;
    }

    .btn-outline-primary:hover {
        background-color: #00A2A3 !important;
        border-color: #00A2A3 !important;
        color: #FFF !important;
        box-shadow: 0px 6px 10px 0px #00000026;
    }

        .btn-outline-primary:hover a {
            color: #FFF !important;
        }

    .btn-primary:disabled,
    .btn-outline-primary:disabled,
    .btn-outline-secondary:disabled {
        background-color: #D9D9D9;
        border-color: #D9D9D9;
        color: #FFF;
    }

.btn-primary.btn-sm,
.btn-secondary.btn-sm,
.btn-outline-secondary.btn-sm {
    min-width: auto;
    padding: 5px 40px;
}



@media (max-width: 576px) {
    .btn-primary.btn-movil-sm,
    .btn-secondary.btn-movil-sm,
    .btn-outline-secondary.btn-movil-sm {
        min-width: auto !important;
        padding: 5px 40px;
    }
}

.mi-cuenta h1 {
    text-align: center;
    font-weight: 700;
    font-size: 40px;
    margin-bottom: 20px;
}

.mi-cuenta .nombre-cliente {
    margin-bottom: 20px;
}

    .mi-cuenta .nombre-cliente .iniciales {
        font-size: 24px;
        display: inline-block;
        width: 55px;
        height: 55px;
        background-color: #00A2A3;
        color: #FFF;
        border-radius: 50px;
        font-weight: 700;
        text-align: center;
        align-content: center;
    }

    .mi-cuenta .nombre-cliente .nombre {
        display: block;
        font-weight: 700;
        font-size: 20px;
    }

.mi-cuenta .card-body {
    padding: 5px;
}

.mi-cuenta .card {
    border-radius: 10px;
    border-color: #ECECEC;
}

    .mi-cuenta .card ul {
        margin: 0;
    }

        .mi-cuenta .card ul li a {
            color: #000000;
            font-weight: 400;
            text-decoration: none;
            padding: 20px;
            display: block;
            border-left: solid 10px #FFF;
        }

            .mi-cuenta .card ul li a.active,
            .mi-cuenta .card ul li a:hover {
                font-weight: 700;
                background-color: #F7F6F2;
                border-radius: 10px;
                border-left: solid 10px #2F6BAF;
            }

    .mi-cuenta .card .icono {
        border: none;
        width: 24px;
        height: 24px;
    }

.menu-inferior .icono-home {
    width: 32px;
    height: 32px;
    background-image: url('/images/iconos/icon-home-32.svg');
}

    .menu-inferior .icono-home.active {
        background-image: url('/images/iconos/icon-home-blue-32.svg');
    }

.mi-cuenta .icono-user {
    background-image: url('/images/iconos/icon-user-24-grey.svg');
}

.mi-cuenta .icono-student {
    background-image: url('/images/iconos/icon-student-24-grey.svg');
}

.mi-cuenta .icono-pinhouse {
    background-image: url('/images/iconos/icon-pinhouse-24-grey.svg');
}

.mi-cuenta .icono-euro {
    background-image: url('/images/iconos/icon-euro-24-grey.svg');
}

.mi-cuenta .icono-pedidos {
    background-image: url('/images/iconos/icon-pedidos-24-grey.svg');
}

.mi-cuenta .icono-exit {
    background-image: url('/images/iconos/icon-exit-24-grey.svg');
}

.mi-cuenta .card ul li a.active .icono-user,
.mi-cuenta .card ul li a:hover .icono-user {
    background-image: url('/images/iconos/icon-user-24-blue.svg');
}

.mi-cuenta .card ul li a.active .icono-student,
.mi-cuenta .card ul li a:hover .icono-student {
    background-image: url('/images/iconos/icon-student-24-blue.svg');
}

.mi-cuenta .card ul li a.active .icono-pinhouse,
.mi-cuenta .card ul li a:hover .icono-pinhouse {
    background-image: url('/images/iconos/icon-pinhouse-24-blue.svg');
}

.mi-cuenta .card ul li a.active .icono-euro,
.mi-cuenta .card ul li a:hover .icono-euro {
    background-image: url('/images/iconos/icon-euro-24-blue.svg');
}

.mi-cuenta .card ul li a.active .icono-pedidos,
.mi_cuenta .card ul li a:hover .icono-pedidos {
    background-image: url('/images/iconos/icon-pedidos-24-blue.svg');
}

.mi-cuenta .card ul li a.active .icono-exit,
.mi-cuenta .card ul li a:hover .icono-exit {
    background-image: url('/images/iconos/icon-exit-24-blue.svg');
}

.mis-datos .cabecera .icono {
    border: none;
    width: 48px;
    height: 48px;
}

.mis-datos .cabecera .icono-user {
    background-image: url('/images/iconos/icon-user-48.svg');
}

.mis-datos .cabecera .icono-student {
    background-image: url('/images/iconos/icon-student-48.svg');
}

.mis-datos .cabecera .icono-pinhouse {
    background-image: url('/images/iconos/icon-pinhouse-48.svg');
}

.mis-datos .cabecera .icono-euro {
    background-image: url('/images/iconos/icon-euro-48.svg');
}

.mis-datos .cabecera .icono-pedidos {
    background-image: url('/images/iconos/icon-pedidos-48.svg');
}

.mis-datos {
    padding: 20px 10px;
    border-radius: 10px;
    border: 1px solid #ECECEC;
}

@media (max-width: 767px) {
    .enlace-volver {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        background-color: white;
        padding: 10px 20px;
        z-index: 99;
    }

    .mis-datos {
        border: none;
        padding: 0;
    }

        .mis-datos .ficha {
            padding: 10px !important;
        }

        .mis-datos .valor-campo {
            overflow: hidden;
            text-overflow: ellipsis;
        }

    .mi-cuenta .card ul li a:hover {
        font-weight: 400;
        color: #000;
        background-color: #FFF;
        border-color: #FFF;
    }

    .mi-cuenta .card ul li a.open {
        color: #2F6BAF;
    }

    .mi-cuenta .card ul li ul li a {
        padding: 10px;
    }
}

.mis-datos .ficha {
    color: #5D5D5D;
    font-size: 14px;
    padding: 10px 20px;
    margin-top: 20px;
    border-radius: 10px;
    border: 1px solid #ECECEC;
}

    .mis-datos .ficha .btn-primary {
        background-color: #2F6BAF;
    }



.mis-datos .cabecera {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #ECECEC;
}

    .mis-datos .cabecera h2 {
        font-family: var(--font-primary);
        font-size: 20px;
        margin-bottom: 10px;
        font-weight: 700;
    }

    .mis-datos .cabecera p {
        font-family: var(--font-primary);
        color: #5D5D5D;
        font-weight: 400;
        margin: 0;
    }

    .mis-datos .cabecera .cabecera-icono {
        align-content: center;
    }

.mis-datos .ficha h3 {
    color: #5D5D5D;
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 20px;
    padding-bottom: 20px;
    flex-grow: 1;
}

.mis-datos .ficha h3,
.mis-datos .ficha .ficha-titulo-input {
    /*        font-weight: 400;
        font-style: italic;*/
    border-bottom: 1px solid #D9D9D9;
    margin-bottom: 20px;
    padding-bottom: 20px;
}

.mis-datos .ficha input,
.mis-datos .form-select {
    color: #5D5D5D;
    font-size: 14px;
}

.mis-datos .nav-link {
    border: 2px solid #D9D9D9;
    background-color: #FFF;
    color: #D9D9D9;
    border-radius: 10px !important;
    font-weight: 700;
    font-size: 14px;
    flex-grow: 1;
    padding: 2px 0;
}

    .mis-datos .nav-link.active {
        border: 2px solid #2F6BAF;
        background-color: #2F6BAF;
        color: #FFF;
    }

.mis-datos .boton-volver {
    font-size: 14px;
    margin-bottom: 10px;
    cursor: pointer;
    color: #5D5D5D;
}

.mis-datos .caja-pedido {
    border: 1px solid #ECECEC;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
}

    .mis-datos .caja-pedido .cabecera {
        border-bottom: 1px solid #D9D9D9;
        padding-bottom: 10px;
        margin-bottom: 10px;
    }

        .mis-datos .caja-pedido .cabecera h3 {
            margin-bottom: 0;
            font-weight: 700;
            font-size: 20px;
            color: #5D5D5D;
            flex: 1;
        }

.mis-datos .botones-estado {
    display: flex;
    gap: 5px;
}

@media (max-width: 576px) {
    .mis-datos .botones-estado {
        flex-direction: column;
    }

    .mis-datos .caja-pedido .d-flex {
        /*        flex-direction: column;*/
    }
}

@media (max-width: 450px) {
    .literal-pedido {
        display: none;
    }
}



.mis-datos .caja-pedido .cuerpo {
    color: #5D5D5D;
    font-size: 14px;
}

.mis-datos .caja-pedido .total-pedido {
    font-size: 16px;
    font-weight: 700;
    color: #5D5D5D;
}

.mis-datos .caja-pedido .libros {
    display: flex;
    gap: 10px;
    justify-content: center;
}

.carrusel-libros {
    margin-top: 10px;
    gap: 20px;
    justify-content: start;
}

    .carrusel-libros img {
        max-height: 115px;
        margin: 0 auto;
    }

    .carrusel-libros .titulo {
        font-weight: 700;
        font-size: 12px;
        margin-top: 10px;
        text-align: center;
    }

    .carrusel-libros .item-carrusel-libros {
        width: 98px !important;
        flex: 0 0 98px;
    }

    .carrusel-libros .slick-slide {
        text-align: center;
    }

    .carrusel-libros.sin-carrusel .slick-slide {
        width: 98px !important;
        margin-right: 20px;
    }

.pedido-creado .carrusel-libros.sin-carrusel .slick-slide {
    margin-right: 0;
}

.pedido-creado .carrusel-libros.sin-carrusel .slick-track {
    display: flex !important;
    justify-content: center;
    float: none;
    margin-left: auto !important;
    margin-right: auto !important;
    width: auto !important;
    gap: 50px;
}

.mis-datos .caja-pedido .libros:has(> .libro:nth-child(3)):not(:has(> .libro:nth-child(4))) {
    gap: 5px;
}

.carrusel-libros .libro {
    width: 98px;
    height: 115px;
    border: 1px solid #ECECEC;
    border-radius: 8px;
    align-content: center;
    text-align: center;
}

/*.mis-datos .caja-pedido .carrusel-libros .slick-track {
    margin-left: 0;
}*/

.slick-track {
    margin-left: 0 !important;
}

.mis-datos .caja-pedido .carrusel-libros .item-carrusel-libros .titulo,
.mis-datos .caja-pedido .carrusel-libros .item-carrusel-libros {
    width: 98px;
}

.mis-datos .caja-pedido .libros .libro {
    height: 115px;
    width: 85px;
    border: 1px solid #ECECEC;
    border-radius: 8px;
    align-content: center;
    text-align: center;
}

.mis-datos .caja-pedido .carrusel-libros .slick-prev::before,
.mis-datos .caja-pedido .carrusel-libros .slick-next::before {
    content: "" !important;
    display: block;
    width: 24px;
    height: 24px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.mis-datos .caja-pedido .carrusel-libros .slick-prev,
.mis-datos .caja-pedido .carrusel-libros .slick-next {
    width: 32px;
    height: 32px;
    z-index: 2;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.mis-datos .caja-pedido .carrusel-libros .slick-prev {
    left: -5px;
}

.mis-datos .caja-pedido .carrusel-libros .slick-next {
    right: -5px;
}

.mis-datos .caja-pedido .carrusel-libros .slick-prev::before {
    background-image: url('/images/iconos/icon-chevron-left-24.svg');
}

.mis-datos .caja-pedido .carrusel-libros .slick-next::before {
    background-image: url('/images/iconos/icon-chevron-right-24.svg');
}

.mis-datos .carrusel-libros {
    position: relative;
    padding: 0 20px;
    width: 100%;
    box-sizing: border-box;
}

.mis-datos .caja-pedido .carrusel-libros .libro img {
    border-radius: 8px;
}

.mis-datos .caja-pedido .libros .libro img {
    border-radius: 8px;
}


/* Si hay 3 libros: Primer libro: -4 grados */
.mis-datos .caja-pedido .libros:has(> .libro:nth-child(3)):not(:has(> .libro:nth-child(4))) > .libro:nth-child(1) {
    transform: rotate(-4deg);
}

/* Si hay 3 libros: Segundo libro: sin rotación */
.mis-datos .caja-pedido .libros:has(> .libro:nth-child(3)):not(:has(> .libro:nth-child(4))) > .libro:nth-child(2) {
    transform: rotate(0deg);
}

/* Si hay 3 libros: Tercer libro: +4 grados */
.mis-datos .caja-pedido .libros:has(> .libro:nth-child(3)):not(:has(> .libro:nth-child(4))) > .libro:nth-child(3) {
    transform: rotate(4deg);
}

.mis-datos .caja-pedido .pasos-wizard {
    justify-content: start;
    width: 348px;
    margin-left: 8px;
}

@media (max-width: 576px) {
    .mis-datos .caja-pedido .pasos-wizard {
        width: 100%;
    }
}

.mis-datos .caja-pedido .pasos-wizard .line {
    border-color: #2F6BAF;
}

.mis-datos .caja-pedido .pasos-wizard .paso .numero {
    width: 16px;
    height: 16px;
    border-color: #2F6BAF;
}

.mis-datos .caja-pedido .pasos-wizard .paso.selected .numero {
    background-color: #2F6BAF;
}

.mis-datos .caja-pedido .estado-pedido {
    background-color: grey;
    color: #FFF;
    font-size: 12px;
    border-radius: 5px;
    padding: 5px 10px;
}

    .mis-datos .caja-pedido .estado-pedido.cancelado {
        background-color: #FF3D00;
    }

    .mis-datos .caja-pedido .estado-pedido.errorpago {
        background-color: #FF3D00;
    }

    .mis-datos .caja-pedido .estado-pedido.enviado {
        background-color: #FAB96D;
    }

    .mis-datos .caja-pedido .estado-pedido.completado {
        background-color: #00A2A3;
    }

    .mis-datos .caja-pedido .estado-pedido.proceso {
        background-color: #A7C5E7;
        color: #000;
    }

    .mis-datos .caja-pedido .estado-pedido.devolucioncompletada {
        background-color: #919191;
    }

    .mis-datos .caja-pedido .estado-pedido.devolucionenproceso {
        background-color: #E4C82E;
    }

.dropdown .dropdown-header {
    font-weight: 700;
    color: #2F6BAF;
}

.form-switch {
    align-items: center;
}

    .form-switch .form-check-input {
        height: 22px !important;
        width: 36px !important;
    }

        .form-switch .form-check-input:checked {
            background-color: #00A2A3;
        }

.mis-datos .ficha .dropdown-item {
    color: #5D5D5D;
    font-size: 14px;
    padding: 10px 20px;
}

    .mis-datos .ficha .dropdown-item.active,
    .mis-datos .ficha .dropdown-item:active,
    .mis-datos .ficha .dropdown-item:hover {
        font-weight: 500;
        color: #000;
        background-color: #F7F6F2;
        border-radius: 10px;
    }

ul.errores-validacion {
    color: #dc3545;
}

.pedido-creado p {
    color: #5D5D5D;
    font-weight: 400;
}

    .pedido-creado p span {
        color: #00A2A3;
        font-weight: 700;
    }

.password-toggle {
    border-left: 0;
}

.input-group .form-control.is-invalid {
    z-index: 1;
}

.input-group .password-toggle {
    background-color: #FFF;
    color: #5D5D5D;
    border: none;
    padding: 0;
    border-radius: 10px;
    border: 1px solid #D9D9D9;
    width: 45px;
    min-width: 45px;
    border-left: none;
}

    .input-group .password-toggle:active {
        border-color: #D9D9D9;
    }

input.form-control::placeholder,
textarea::placeholder {
    font-size: 14px;
}

.input-group input.form-control {
    border-right: none;
    font-size: 14px;
    color: #5D5D5D;
}

input.form-control,
.form-select,
textarea {
    font-size: 14px;
    border: 1px solid #D9D9D9;
    border-radius: 10px;
    padding: 10px 15px;
    color: #5D5D5D;
}

    input.form-control.input-cupon {
        border: 1px solid #2F6BAF;
        background-color: white;
        border-radius: 50px;
    }

        input.form-control.input-cupon:focus {
            border: 1px solid #2F6BAF !important;
            background-color: white;
            border-radius: 50px;
        }

        input.form-control.input-cupon::placeholder {
            font-style: italic;
            color: #979797;
            font-weight: 400;
            font-size: 12px;
        }

.select-estudiante {
    background-color: transparent;
    font-size: 14px;
    font-weight: 400;
}

    .select-estudiante span.select-placeholder {
        font-style: italic;
        font-size: 14px;
        font-weight: 400;
        color: #A0A0A0;
    }

    .select-estudiante span.select-value {
        font-size: 14px;
        font-weight: 500;
        color: #000;
    }

.dropdown-item.active,
.dropdown-item:active,
.dropdown-item:hover {
    font-size: 14px;
    font-weight: 500;
    color: #5D5D5D;
    background-color: #F7F6F2;
    border-radius: 10px;
}

.lista-subcategorias .dropdown-item.active {
    font-size: 16px;
    font-weight: 700;
}



.form-select.is-invalid, .form-control.is-invalid, .was-validated .form-control:invalid {
    border-color: #FF3D00;
}

.input-group .password-toggle.is-invalid {
    border-color: #FF3D00;
}

#home .caja-gris {
    background-color: #ECECEC;
    border-radius: 10px;
    height: 100%;
    overflow: hidden;
}

@media (min-width: 1024px) {
    #home .caja-gris {
        min-height: 400px;
    }
}

#home .caja-gris .carousel,
#home .caja-gris .carousel-inner,
#home .caja-gris .carousel-item {
    height: 100%;
}

    #home .caja-gris .carousel-item img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

#home .parrafo {
    font-size: 14px;
    margin-top: 10px;
}

#bloque-destacados h2,
#home h2 {
    font-size: 40px;
    font-weight: 700;
    margin-bottom: 0;
}

.avisos-home {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}


#home .linea-pasos {
    min-height: 455px;
    flex-shrink: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-image: url('/images/linea-pasos.svg');
    position: relative;
    margin-top: -20px;
}

    #home .linea-pasos .paso {
        position: absolute;
        width: 350px;
        background-color: white;
    }

        #home .linea-pasos .paso .numero {
            color: #2F6BAF;
            font-size: 200px;
            line-height: 200px;
            font-weight: 700;
        }

        #home .linea-pasos .paso .titulo {
            color: #00A2A3;
            font-size: 32px;
            font-weight: 700;
        }

        #home .linea-pasos .paso.paso-1 {
            left: 0;
            top: 90px;
            width: 300px;
        }

        #home .linea-pasos .paso.paso-2 {
            left: 35%;
            top: 150px;
        }

        #home .linea-pasos .paso.paso-3 {
            right: 0;
            top: 90px;
        }

@media (max-width: 1400px) {
    #home .linea-pasos .paso .numero {
        font-size: 150px;
    }

    #home .linea-pasos .paso {
        max-width: 300px;
    }

        #home .linea-pasos .paso .titulo {
            font-size: 24px;
        }
}

@media (max-width: 1000px) {
    #home .linea-pasos {
        background-image: url('/images/linea-pasos-movil.svg');
        padding-top: 20px;
        margin: 0 auto;
        margin-top: 20px;
        background-repeat: no-repeat;
        background-position-x: 30px;
        background-position-y: 90px;
        background-size: 90% auto;
        max-width: 400px;
        min-height: 559px;
        position: relative;
    }

        #home .linea-pasos .paso {
            max-width: 300px;
        }

            #home .linea-pasos .paso.paso-1 {
                left: 0;
                top: 0;
            }

            #home .linea-pasos .paso.paso-2 {
                right: 0;
                top: 35%;
                left: auto;
                bottom: auto;
            }

            #home .linea-pasos .paso.paso-3 {
                left: 0;
                right: auto;
                top: auto;
                bottom: 0;
            }

            #home .linea-pasos .paso .numero {
                font-size: 100px;
                line-height: 100px;
                text-align: center;
                min-width: 100px;
                display: block;
            }

            #home .linea-pasos .paso .titulo {
                font-size: 24px;
            }
}

@media (max-width: 400px) {
    #home .linea-pasos {
        width: 100%;
    }

        #home .linea-pasos .paso .numero {
            min-width: 50px;
        }
}

#home .listado-etapas .etapa {
    border: 1px solid black;
    border-radius: 10px;
    height: 100%;
    padding: 20px;
}

    #home .listado-etapas .etapa.etapa-0 ul li,
    #home .listado-etapas .etapa.etapa-0 {
        border-color: #FAB96D;
    }

    #home .listado-etapas .etapa.etapa-1 ul li,
    #home .listado-etapas .etapa.etapa-1 {
        border-color: #FF7D6A;
    }

    #home .listado-etapas .etapa.etapa-2 ul li,
    #home .listado-etapas .etapa.etapa-2 {
        border-color: #00A2A3;
    }

    #home .listado-etapas .etapa.etapa-3 ul li,
    #home .listado-etapas .etapa.etapa-3 {
        border-color: #2F6BAF;
    }

    #home .listado-etapas .etapa.etapa-4 ul li,
    #home .listado-etapas .etapa.etapa-4 {
        border-color: #FF7D6A;
    }

    #home .listado-etapas .etapa.etapa-5 ul li,
    #home .listado-etapas .etapa.etapa-5 {
        border-color: #00A2A3;
    }

    #home .listado-etapas .etapa.etapa-6 ul li,
    #home .listado-etapas .etapa.etapa-6 {
        background-color: #2F6BAF;
    }

#home .listado-etapas .tab-disabled .etapa ul li a {
    color: #929292 !important;
    cursor: default !important;
    pointer-events: none;
}

#home .listado-etapas .btn-outline-secondary.btn-sm {
    min-width: auto;
    padding: 10px 10px;
    border-radius: 10px;
    border-width: 2px;
    flex: 1;
}

    #home .listado-etapas .btn-outline-secondary.btn-sm.active {
        background-color: #2F6BAF;
        color: #FFF;
        border-color: #2F6BAF;
    }

#home .listado-etapas .tab-disabled .etapa .etapa-nombre {
    color: #929292 !important;
}

.tab-disabled .img-categoria span.icono::before, .tab-disabled ul.arbol-categorias li span::before {
    background-color: #929292 !important;
}

#home .listado-etapas .tab-disabled .etapa ul li, #home .listado-etapas .tab-disabled .etapa {
    border-color: #929292 !important;
}

    #home .listado-etapas .tab-disabled .etapa ul li:hover {
        box-shadow: none !important;
    }

#home .listado-etapas .etapa.etapa-0 ul li a {
    color: #FAB96D;
}

#home .listado-etapas .etapa.etapa-1 ul li a {
    color: #FF7D6A;
}

#home .listado-etapas .etapa.etapa-2 ul li a {
    color: #00A2A3;
}

#home .listado-etapas .etapa.etapa-3 ul li a {
    color: #2F6BAF;
}

#home .listado-etapas .etapa.etapa-4 ul li a {
    color: #FF7D6A;
}

#home .listado-etapas .etapa.etapa-5 ul li a {
    color: #00A2A3;
}

#home .listado-etapas .etapa.etapa-6 ul li a {
    color: #2F6BAF;
}

#home .listado-etapas .etapa .etapa-nombre {
    font-weight: 700;
    font-size: 32px;
}

#home .listado-etapas .etapa .img-categoria {
    align-content: center;
    position: relative;
}

    #home .listado-etapas .etapa .img-categoria:has(span) {
        padding-left: 30px;
    }

#home .listado-etapas .tab-content {
    padding-top: 20px;
}

#home .listado-etapas .nav-tabs {
    border: none;
    display: flex;
    gap: 10px;
}

    #home .listado-etapas .nav-tabs .nav-link {
        border: 2px solid #2F6BAF;
        border-radius: 10px !important;
        color: #2F6BAF;
        font-weight: 700;
        flex-grow: 1;
    }

        #home .listado-etapas .nav-tabs .nav-link.active {
            background-color: #2F6BAF;
            color: #FFF;
        }

#home .listado-etapas .etapa ul {
    list-style-type: none;
    padding: 0;
    margin-top: 20px;
    display: grid;
    grid-auto-flow: row;
    gap: .5rem;
}

    /* 1, 2 o 3 → una fila */
    #home .listado-etapas .etapa ul:not(:has(li:nth-child(4))) {
        grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    }

    /* 4 elementos → 2 columnas, 2 filas */
    #home .listado-etapas .etapa ul:has(li:nth-child(4)):not(:has(li:nth-child(5))) {
        grid-template-columns: repeat(2, 1fr);
    }

    /* 5 o 6 elementos → 3 columnas, 2 filas */
    #home .listado-etapas .etapa ul:has(li:nth-child(5)) {
        grid-template-columns: repeat(3, 1fr);
    }

@media (max-width: 576px) {
    /* 1 o 2 → 1 columna */
    #home .listado-etapas .etapa ul:not(:has(li:nth-child(3))) {
        grid-template-columns: repeat(1, 1fr) !important;
        gap: 20px !important;
    }

    /* 3 elementos */
    #home .listado-etapas .etapa ul:has(li:nth-child(3)):not(:has(li:nth-child(4))) {
        grid-template-columns: repeat(2, 1fr);
    }

        #home .listado-etapas .etapa ul:has(li:nth-child(3)):not(:has(li:nth-child(4))) > li:nth-child(3) {
            grid-column: 1 / -1;
            justify-self: center;
            width: 50%;
        }

    /* 4, 5 o 6 elementos → 2 columnas */
    #home .listado-etapas .etapa ul:has(li:nth-child(4)) {
        grid-template-columns: repeat(2, 1fr) !important
    }
}

#home .listado-etapas .etapa ul:has(li:nth-child(4)) {
    row-gap: 20px;
}

#home .listado-etapas .etapa ul li {
    border: 1px solid black;
    border-radius: 50px;
    background-color: #F7F6F2;
    transition: transform 0.2s ease;
}

    #home .listado-etapas .etapa ul li:hover {
        box-shadow: 0px 10px 40px 0px #00000026;
    }

    #home .listado-etapas .etapa ul li a {
        font-weight: 500;
        display: block;
        text-decoration: none;
        text-align: center;
        padding: 20px;
    }

    #home .listado-etapas .etapa ul li:nth-child(1) {
        transform: rotate(0deg);
    }

    #home .listado-etapas .etapa ul li:nth-child(2) {
        transform: rotate(-4deg);
    }

    #home .listado-etapas .etapa ul li:nth-child(3) {
        transform: rotate(2deg);
    }

    #home .listado-etapas .etapa ul li:nth-child(4) {
        transform: rotate(4deg);
    }

#home .listado-etapas .etapa ul:has(li:nth-child(4)):not(:has(li:nth-child(5))) li:nth-child(4) {
    transform: rotate(0deg);
}

#home .listado-etapas .etapa ul li:nth-child(5) {
    transform: rotate(0deg);
}

#home .listado-etapas .etapa ul li:nth-child(6) {
    transform: rotate(0deg);
}

#home .carrusel-col,
.productos-vistos .carrusel-col {
    min-width: 0;
}

.productos-vistos {
    margin-top: 20px;
    border-top: 1px solid #D9D9D9;
}

#productos-destacados .slick-list,
#videos-destacados .slick-list {
    padding-right: 60px;
}

#videos-destacados a.enlace-video {
    display: block;
    height: 350px;
    width: 100%;
    background-color: #ECECEC;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #00A2A3;
    font-size: 20px;
    text-align: center;
    font-weight: 700;
}

@media (max-width: 576px) {
    #home .img-col {
        display: none;
    }
}

ul.slick-dots {
    list-style-type: none;
    margin-left: auto;
    position: initial;
    width: auto;
    display: flex;
    gap: 5px;
    justify-content: end;
}

    ul.slick-dots:has(> li:only-child) {
        display: none !important;
    }

    ul.slick-dots li {
        min-height: auto !important;
        border: none;
        width: auto;
        margin: 0;
    }

        ul.slick-dots li button:before {
            display: none;
        }

        ul.slick-dots li button {
            background-color: #A7C5E7;
            border: none;
            width: 18px;
            height: 18px;
            padding: 0;
            border-radius: 5px;
            font-size: 0;
        }

        ul.slick-dots li.slick-active button {
            background-color: #2F6BAF;
            color: #2F6BAF;
        }

#home #bloque-actividades {
    background-color: #FEF6EB;
}

.container.main-container {
    padding: 0;
}

@media (max-width: 576px) {

    #home .parrafo {
        font-size: 16px;
    }

    section#bloque-iconos-movil {
        padding: 20px 50px !important;
    }

    section#bloque-principal .caja-gris {
        border-radius: 0 !important;
    }

    #home h2 {
        font-size: 36px;
    }

    #home > section#bloque-principal {
        padding: 0 10px 10px 10px;
    }
}


@media (max-width: 1024px) {
    .container.main-container {
        max-width: 100%;
    }

    header .container.main-container {
        padding: 0 20px;
    }

    section.bloque-principal,
    #home > section {
        padding: 20px 20px;
    }

        #home > section#bloque-principal {
            padding: 0 20px 20px 20px;
        }
}

@media (min-width: 1025px) {
    header .container.main-container {
        /*        padding: 0 20px;*/
        padding: 0;
    }

    section.bloque-principal,
    #home > section {
        /*        padding: 0 20px;*/
        padding: 0;
    }

        #home > section#bloque-principal {
            padding: 0 20px 20px 20px;
        }
}

@media (min-width: 1400px) {
    header .container.main-container {
        padding: 0 80px;
    }

    section.bloque-principal,
    #home > section {
        padding: 40px 0;
        /*padding: 40px 80px;*/
    }


    /*        #home > section#bloque-principal {
            padding: 10px 40px 80px 40px;
        }*/

    .container.main-container {
        max-width: 1440px;
        padding: 0 80px;
    }
}

#home .accordion-item {
    border: 1px solid #D9D9D9;
    border-radius: 10px;
    margin-top: 10px;
}

    #home .accordion-item .accordion-header,
    #home .accordion-item .accordion-button,
    #home .accordion-item .accordion-body {
        border-radius: 10px;
    }


    #home .accordion-item .accordion-button {
        font-weight: 700;
        font-size: 14px;
        color: #000;
    }

    #home .accordion-item .accordion-button {
        background-color: #FFF;
        box-shadow: none;
    }

@media (min-width: 1200px) {
    #home #accordion-faqs {
        width: 60%;
        margin: 0 auto;
    }
}

#home #bloque-contacto {
    background-color: #FEF6EB;
}

#home .caja-naranja {
    background-color: #FAB96D99;
    border-radius: 10px;
    padding: 10px 20px;
}

#home #bloque-contacto input.form-control,
#home #bloque-contacto .form-select,
#home #bloque-contacto textarea {
    border: none;
    color: #929292;
}

    #home #bloque-contacto input.form-control::placeholder,
    #home #bloque-contacto textarea::placeholder {
        font-style: italic;
        color: #929292;
    }

#home #bloque-contacto .btn {
    font-size: 14px;
}

#login .recuadro {
    border: 1px solid #D9D9D9;
    border-radius: 10px;
    padding: 20px;
    max-width: 500px;
    margin: 0 auto;
    margin-bottom: 50px;
}

    #login .recuadro h1 {
        font-weight: 700;
        font-size: 24px;
        margin-bottom: 20px;
    }

    #login .recuadro form {
        padding: 20px 0;
        border-top: 1px solid #D9D9D9;
    }

    #login .recuadro a {
        text-decoration: none;
        color: #00A2A3;
    }

    #login .recuadro .linea {
        border-top: 1px solid #D9D9D9;
        position: relative;
    }

        #login .recuadro .linea div {
            position: absolute;
            top: -14px;
            left: calc(50% - 25px);
            background-color: white;
            width: 50px;
        }


.input-etiqueta-solapada {
    position: relative;
}

    .input-etiqueta-solapada label {
        position: absolute;
        top: -10px;
        left: 15px;
        background: white;
        padding: 0 5px;
        font-size: 12px;
        opacity: 0;
        transition: all 0.2s ease;
        padding: 0 10px;
        font-size: 14px;
        background-color: #FFF;
        z-index: 99;
    }

    .input-etiqueta-solapada textarea:focus,
    .input-etiqueta-solapada input:focus {
        border: 1px solid #00A2A3;
        outline: none;
        box-shadow: none;
    }

    .input-etiqueta-solapada .input-group input {
        border-right: 0;
    }

    .input-etiqueta-solapada .input-group .password-toggle {
        border-left: 0;
    }

    .input-etiqueta-solapada .input-group button {
        border-top-right-radius: 10px !important;
        border-bottom-right-radius: 10px !important;
    }

    .input-etiqueta-solapada .input-group:focus-within input,
    .input-etiqueta-solapada .input-group:focus-within .password-toggle {
        border-color: #00A2A3;
    }

    .input-etiqueta-solapada textarea:focus + label,
    .input-etiqueta-solapada .input-group:focus-within label,
    .input-etiqueta-solapada input:focus + label,
    .input-etiqueta-solapada input:focus ~ label {
        opacity: 1;
        color: #00A2A3 !important;
    }

    .input-etiqueta-solapada textarea:focus::placeholder,
    .input-etiqueta-solapada input:focus::placeholder,
    .input-etiqueta-solapada .input-group:focus-within input::placeholder {
        opacity: 0;
    }

.invalid-feedback {
    color: #FF3D00;
}

input:focus-visible,
input:focus,
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px white inset !important;
    font-size: 14px !important;
    box-shadow: 0 0 0 1000px white inset !important;
    outline: none !important;
    font-family: var(--font-primary) !important;
}

.selector-idiomas {
    list-style-type: none;
    display: flex;
    gap: 5px;
    font-weight: 400;
    margin: 0;
}

    .selector-idiomas span {
        font-weight: 600;
    }

    .selector-idiomas a {
        text-decoration: none;
        color: #FFF;
    }

/* Detalle producto en móvil: se comporta como contenido normal con scroll de página */
.detalle-producto-movil {
    position: static !important;
    display: block !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

    /* Neutraliza estructura Bootstrap modal dentro del contenedor cuando es móvil */
    .detalle-producto-movil .modal-dialog {
        position: static !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
    }

    .detalle-producto-movil .modal-content {
        height: auto !important;
        max-height: none !important;
        border: 0 !important;
        border-radius: 0 !important;
    }

    .detalle-producto-movil .modal-body {
        overflow: visible !important;
        max-height: none !important;
        padding-bottom: 24px; /* opcional para respirar */
    }

/* Si Bootstrap dejó el <body> bloqueado por el modal, lo revertimos al pasar a móvil */
body.detalle-producto-movil-open {
    overflow-y: auto !important;
}

@media (min-width: 576px) and (max-width: 1200px) {
    #popUpProducto .modal-dialog {
        max-width: 90%;
    }
}

.modal-confirm-backdrop {
    z-index: 1140;
}

.modal-confirm {
    display: block;
    z-index: 1150;
}

#popup-correos h2 {
    font-weight: 700;
    font-size: 24px;
    color: #000;
    margin-bottom: 5px;
}

#popup-correos .modal-header {
    border-bottom: none;
}

#popup-correos .modal-body .contenedor-lista {
    height: 420px;
    overflow-y: auto;
    padding-left: 20px;
}

#popup-correos .modal-body .contenedor-mapa {
    height: 420px;
}

@media (max-width: 767px) {
    .btn-movil-100 {
        min-width: auto !important;
        width: 100%;
    }


    #popup-correos .modal-body .contenedor-lista {
        height: auto !important;
        overflow-y: visible !important;
        padding-left: 0 !important;
    }

    #popup-correos .modal-body .contenedor-mapa {
    }

    #popup-correos.modal-fullscreen-mobile .modal-dialog {
        margin: 0;
        max-width: 100%;
        width: 100%;
        height: 100%;
    }

    #popup-correos.modal-fullscreen-mobile .modal-content {
        height: 100%;
        border: none;
        border-radius: 0;
    }

    #popup-correos.modal-fullscreen-mobile .modal-body {
        overflow-y: auto;
        flex: 1 1 auto;
    }

    #popup-correos.modal-fullscreen-mobile,
    #popup-correos.modal-fullscreen-mobile + .modal-backdrop {
        bottom: 65px;
    }

        #popup-correos.modal-fullscreen-mobile .modal-body {
            padding-bottom: 200px !important;
        }

    #popup-correos .confirmar-punto {
        position: fixed;
        right: 0;
        left: 0;
        bottom: 75px;
        background: #FFF;
        padding: 10px 0;
        z-index: 1070;
    }

    .menu-inferior {
        z-index: 1060;
    }

    .menu-movil-panel.open {
        z-index: 1070;
    }
}

/* ===== Password Recovery Pages ===== */

.account-recovery-page {
    max-width: 520px;
    margin: 0 auto;
    padding: 0 0 50px 0;
    text-align: center;
}

    .account-recovery-page h1 {
        font-weight: 700;
        font-size: 24px;
        margin-bottom: 16px;
    }

    .account-recovery-page .descripcion {
        color: #5D5D5D;
        font-size: 14px;
        line-height: 1.6;
        margin-bottom: 32px;
    }

    .account-recovery-page .acciones-recovery {
        display: flex;
        /*flex-direction: column;*/
        gap: 7px;
    }

    .account-recovery-page .texto-inferior {
        font-size: 13px;
        color: #999;
        margin-top: 16px;
        font-weight: 600;
    }

    .account-recovery-page .account-recovery-icon {
        font-size: 48px;
        color: #00A2A3;
    }

    .account-recovery-page .text-start {
        text-align: left !important;
    }

    .account-recovery-page a:not(.btn-primary) {
        text-decoration: none;
        color: #00A2A3;
    }
