* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Montserrat', 'Lato';
}

body p,
body .col-lg-6,
body .table>:not(caption)>*>*,
body .list-group-item:first-child,
body .list-group-item+.list-group-item,
body .col-lg-11 {
    font-size: 18px !important;
}

.menu {
    background-color: #05234b;
    color: #fff;
    height: 90px;
}

.menu__container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 90%;
    height: 100%;
    max-width: 100% !important;
    margin: 0 auto;
}

.menu__links {
    height: 100%;
    transition: transform .5s;
    display: flex;
}

.menu__item {
    list-style: none;
    position: relative;
    height: 100%;
    --clip: polygon(0 0, 100% 0, 100% 0, 0 0);
    --transform: rotate(-90deg);
}

.menu__item:hover {
    --clip: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
    --transform: rotate(0);
}

.menu__link {
    color: #fff;
    text-decoration: none;
    padding: 0 16px;
    display: flex;
    height: 100%;
    align-items: center;
    font-size: 14px;
}

.menu__link:hover {
    background-color: #5e7094;
}

.menu__arrow {
    transform: var(--transform);
    transition: transform .3s;
    display: block;
    margin-left: 3px;
}

.menu__nesting {
    list-style: none;
    transition: clip-path 0.3s;
    clip-path: var(--clip);
    position: absolute;
    right: 0;
    top: 100%;
    width: 500%; /* Asegura que no se expanda indefinidamente */
    max-width: 500px; /* Ajusta al tamaño que prefieras */
    max-height: 750px;
    overflow-y: auto;
    overflow-x: hidden;
    background-color: #041c3d !important;
    z-index: 10 !important;
    padding: 20px;
    scrollbar-width: thin;
    scrollbar-color: #798499 transparent;
    transform: translateY(0);
    word-wrap: break-word;
    word-break: break-word;
    white-space: normal;
}


/* WebKit Scrollbar aplicado solo al menú */
.menu__nesting::-webkit-scrollbar {
    width: 10px;
}

.menu__nesting::-webkit-scrollbar-track {
    background-color: #1e2a3a;
}

.menu__nesting::-webkit-scrollbar-thumb {
    background-color: #798499;
    border-radius: 6px;
    border: 2px solid #1e2a3a;
}

.menu__link--inside {
    padding: 12px 20px;
    display: block;
    color: #fff;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;
    max-width: 100%;
}

.menu__link--inside:hover {
    background-color: #5e7094;
}

.menu__hamburguer {
    height: 100%;
    display: flex;
    align-items: center;
    padding: 0 15px;
    cursor: pointer;
    display: none;
}

.menu__img {
    display: block;
    width: 36px;
}

@media (max-width: 800px) {
    .menu__hamburguer {
        display: flex;
    }

    .menu__item {
        --clip: 0;
        overflow: hidden;
    }

    .menu__item--active {
        --background: #5e7094;
    }

    .menu__item--show {
        background-color: var(--background);
    }

    .menu__links {
        position: fixed;
        max-width: 400px;
        width: 100%;
        top: 70px;
        bottom: 0;
        right: 0;
        background-color: #000;
        overflow-y: auto;
        display: grid;
        grid-auto-rows: max-content;
        transform: translateX(100%);
    }

    .menu__links--show {
        transform: unset;
        width: 100%;
    }

    .menu__link {
        padding: 25px 0;
        padding-left: 30px;
        height: auto;
    }

    .menu__arrow {
        margin-left: auto;
        margin-right: 20px;
    }

    .menu__nesting {
        display: grid;
        position: unset;
        width: 100%;
        transform: translateY(0);
        height: 0;
        transition: height .3s;
    }
}

.menu .menu__links,
.menu dl,
.menu ol,
.menu ul {
    margin-bottom: 0;
}

.menu__nesting.menu__submenu {
    max-width: 100% !important;
    border: 2px solid #fdfdfd;
    border-radius: 8px;
}

.menu__link.item__submenu {
    padding: 8px 0 !important;
}

.menu__nesting.last__menu {
    max-width: 220px !important;
}

.menu__nesting.menu__submenu li {
    padding-top: 0px;
    padding-bottom: 0px;
}

.menu__nesting li {
    padding-top: 10px;
    padding-bottom: 10px;
}

.navbar-brand img {
    margin: 0 5px !important;
}

.iconos svg {
    stroke: #fdfdfd;
}

#ultimoMenu {
    right: 0 !important;
    left: -100% !important;
}

@media (max-width: 1490px) {
    .menu__link {
        font-size: 14px;
    }

    .menu__nesting.last__menu {
        max-width: 180px !important;
    }
}

@media (max-width: 1360px) {
    .menu {
        height: 80px;
    }
}

@media (max-width: 1410px) {
    .col.text-end.p-0 {
        display: flex !important;
        max-width: fit-content;
    }

    .menu__links {
        display: none !important;
    }

    .align-items-center {
        width: fit-content !important;
    }

    .navbar-brand img {
        margin: 0 10px !important;
    }
}

.carousel.pointer-event {
    z-index: 1 !important;
}
