* {
    box-sizing: border-box;
}

:root {
    --iu-azul: #005b7f;
    --iu-azul-oscuro: #003f59;
    --iu-turquesa: #007a9e;
    --iu-fondo: #f4f6f8;
    --iu-blanco: #ffffff;
    --iu-borde: #d9e1e7;
    --iu-texto: #1f2933;
}

body {
    margin: 0;
    background: var(--iu-fondo);
    color: var(--iu-texto);
}

.barra-superior {
    position: sticky;
    top: 0;
    z-index: 1000;
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 0 28px;
    background: var(--iu-blanco);
    border-bottom: 1px solid var(--iu-borde);
    box-shadow: 0 4px 14px rgba(0, 52, 73, 0.08);
}

.marca-enlace {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--iu-azul-oscuro);
    text-decoration: none;
    white-space: nowrap;
}

.marca-enlace strong,
.marca-enlace small {
    display: block;
}

.marca-enlace strong {
    font-size: 16px;
}

.marca-enlace small {
    margin-top: 2px;
    color: #667085;
    font-size: 12px;
}

.marca-icono {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: linear-gradient(135deg, var(--iu-azul), var(--iu-turquesa));
    color: var(--iu-blanco);
    font-weight: 800;
    letter-spacing: 1px;
}

.menu-principal {
    display: flex;
    align-items: center;
    gap: 4px;
}

.opcion-menu,
.desplegable-boton {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 13px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #344054;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.opcion-menu:hover,
.desplegable-boton:hover,
.opcion-menu.activo,
.grupo-menu.activo > .desplegable-boton {
    background: #e8f3f7;
    color: var(--iu-azul);
}

.grupo-menu {
    position: relative;
}

.submenu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 220px;
    display: none;
    padding: 8px;
    background: var(--iu-blanco);
    border: 1px solid var(--iu-borde);
    border-radius: 10px;
    box-shadow: 0 14px 35px rgba(15, 23, 42, 0.16);
}

.grupo-menu.abierto .submenu {
    display: block;
}

.submenu a {
    display: block;
    padding: 10px 12px;
    border-radius: 7px;
    color: #344054;
    text-decoration: none;
    font-size: 14px;
}

.submenu a:hover {
    background: #eef6f9;
    color: var(--iu-azul);
}

.boton-menu {
    display: none;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 8px;
    background: #e8f3f7;
    color: var(--iu-azul);
    font-size: 22px;
    cursor: pointer;
}

@media (max-width: 980px) {
    .barra-superior {
        flex-wrap: wrap;
        padding: 13px 18px;
    }

    .boton-menu {
        display: block;
    }

    .menu-principal {
        width: 100%;
        display: none;
        flex-direction: column;
        align-items: stretch;
        padding: 8px 0 4px;
    }

    .menu-principal.abierto {
        display: flex;
    }

    .opcion-menu,
    .desplegable-boton {
        width: 100%;
        justify-content: space-between;
    }

    .submenu {
        position: static;
        min-width: 0;
        margin: 4px 0 4px 14px;
        box-shadow: none;
        border-left: 3px solid var(--iu-turquesa);
    }
}

@media (max-width: 520px) {
    .marca-enlace strong {
        font-size: 14px;
    }

    .marca-enlace small {
        font-size: 11px;
    }
}
