* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-size: 10px;
    font-weight: 400;
    font-style: normal;
}
:root {
    --primario: #004A75;
    --secundario: #99b7c8;
    --terciario: #333D47;
    --altura-header: 100px;
    --altura-footer: 60px;
    --altura-main: calc(100vh - var(--altura-header) - var(--altura-footer));
    --bordes: #CCDBE3;
}
.preloader-interior {
    display: none;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    background: white;
    transition: all ease .3s;
    border-radius: 4px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    z-index: 2;
    gap: 15px;
}
.preloader-interior h3{
    font-weight: 600;
    font-size: 1.4em;
    line-height: 17px;
    text-align: center;
    letter-spacing: 0.01em;
    color: #28282A;
}
.preloader-interior .preloader-general {
    background: transparent;
    position: relative;
}
.preloader-interior .preloader-general[data-tipo=screen]::after {
    border: 4px solid transparent;
    border-bottom-color: #F93549;
    width: 40px;
    height: 40px;
} 
a {
    text-decoration: none;
}
p {
    font-weight: 400;
    font-size: 1.6em;
    line-height: 20px;
    letter-spacing: 0.0075em;
    color: var(--terciario);
}
body {
    background: #F0F4F7;
}
header {
    width: 100%;
    height: var(--altura-header);
    background-color: #fff;
    display: flex;
    justify-content: space-between;
    box-shadow: 0px 2px 8px 0px #00000014;
    padding: 30px 45px;
}
header .logo-header {
    width: 134px;
    margin-right: -134px;
}
header .pasos {
    display: flex;
    margin: 0 auto;
}
header .marcador-pasos {
    display: flex;
    align-items: center;
    justify-content: center;
}
header .circulo-paso {
    display: flex;
    width: 24px;
    height: 24px;
    background: var(--secundario);
    border-radius: 90px;
    transition: all ease .3s;
}
header .separador-paso {
    width: 36px;
    height: 2px;
    background: var(--secundario);
    transition: all ease .3s;
} 
header .separador-nulo {
    background: transparent !important;
}
header .pasos h3 {
    font-weight: 600;
    font-size: 1.2em;
    line-height: 17px;
    text-align: center;
    letter-spacing: 0.0167em;
    color: var(--terciario);
    position: absolute;
    min-width: 117px;
    margin: 3px 0 0;
    top: 25px;
    display: none;
}
header .marcador-pasos.activo .circulo-paso ,
header .marcador-pasos.activo .separador-paso {
    background: var(--primario);
}
header .marcador-pasos.activo + h3 {
    display: block;
}
header .marcador-pasos.realizado + h3 {
    display: none !important;
}
main {
    min-height: var(--altura-main);
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 50px 1.5rem 0;
}
section.login-ingreso {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 660px;
    margin: 0 auto;
    padding: 40px;
    background: #FFFFFF;
    border-radius: 4px;
    position: relative;
}
section.login-ingreso p,
section.login-ingreso p strong{
    font-weight: 400;
    font-size: 2em;
    line-height: 24px;
    letter-spacing: 0.015em;
    color: var(--terciario);
}
section.login-ingreso p strong{
    font-weight: 600;
    font-size: 2rem;
}
fieldset {
    border:none;
}
.form__grupo select option {
    font-size: 1.6rem;
}
.botonera {
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}
.btn {
    border-radius: 8px;
    padding: 12px 23px;
    font-size: 1.4em;
}
.btn.btn--primario {
    color: white;
    background: var(--primario);
    border: 1px solid var(--primario);
}
.btn.btn--secundario {
    color: white;
    background: var(--secundario);
    border: 1px solid var(--secundario);
}
.btn--primario.btn--borde {
    color: var(--primario);
    background: white !important;
    border: 1px solid var(--primario);
}
.btn--secundario:hover {
    background: var(--secundario);
    border-color: var(--secundario);
    box-shadow: 0 5px 10px rgba(153, 183, 200, 0.3);
}
.btn--primario.btn--borde:hover {
    box-shadow: 0 5px 10px rgba(153, 183, 200, 0.3);
}
.form__grupo {
    margin-bottom: 25px;
    flex-direction: column;
}
.form__grupo label {
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 17px;
    letter-spacing: 0.0214em;
    color: var(--terciario);
    margin-bottom: 10px;
}
.form__grupo label img{
    vertical-align: middle;
}
.form__grupo select,
.form__grupo textarea,
.form__grupo input {
    padding: 12px;
    background: #FFFFFF;
    border: 1px solid var(--bordes);
    box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.05);
    border-radius: 8px;
}
footer {
    display: flex;
    align-items: center;
    gap: 40px;
    padding: 0 60px;
    height: var(--altura-footer);
    border-top: 1px solid var(--bordes)
}
footer .direccion-footer {
    font-weight: 600;
    font-size: 1.1em;
    line-height: 14px;
    text-align: center;
    letter-spacing: 0.2px;
    color: #6F6F71;
}
.pasos li {
    list-style-type: none;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: center;
}
.contenedor-codigo {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    margin: 50px 0;
}
.item_codigo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 400;
    font-size: 2.4em;
    line-height: 29px;
    text-align: center;
    letter-spacing: 0.015em;
    color: var(--terciario);
}
.grupo_codigo {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}
.grupo_codigo small.error {
    width: 100%;
    font-weight: 600;
    font-size: 1.2em;
    line-height: 17px;
    text-align: center;
    letter-spacing: 0.0167em;
    color: #A3182F;
    margin-top: 10px;
    display: none;
}
.item_codigo {
    width: 48px;
    height: 70px;
    background: #FFFFFF;
    border: 1px solid var(--bordes);
    box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.05);
    border-radius: 8px;
}
.reenvio_codigo {
    display: flex;
    align-items: center;
    gap: 6px;
    width: max-content;
    margin: 0 auto 12px;
    font-weight: 400;
    font-size: 1.4em;
    line-height: 18px;
    color: #99B7C8;
}
.tiempo_codigo {
    display: flex;
    flex-direction: column;
}
progress {
    width: 100%;
    background-color: #F3F3F3;
    border-radius: 24px;
    height: 2px;
    -webkit-appearance: none;
    appearance: none;
    border: none;
    overflow: hidden;
}
/* Estilo para navegadores WebKit (Chrome, Safari) */
progress::-webkit-progress-bar {
    background-color: #f3f3f3;
    border-radius: 10px;
}

progress::-webkit-progress-value {
    background-color: var(--primario); /* Color de la barra */
    border-radius: 10px;
    transition: width 0.4s ease;
}
/* Estilo para Firefox */
progress::-moz-progress-bar {
    background-color: var(--primario);
    border-radius: 10px;
    transition: width 0.4s ease;
}
.tiempo_codigo span {
    display: flex;
    align-items: center;
    gap: 8px;
}
.tiempo_codigo .reloj {
    font-weight: 600;
    font-size: 1.4em;
    line-height: 17px;
    letter-spacing: 0.0214em;
    color: var(--terciario);
}
.form__grupo progress {
    margin-top: 10px;
    height: 8px;
    border-radius: 100px;
}
.tiempo_codigo progress::-webkit-progress-value ,
.tiempo_codigo progress::-moz-progress-value {
    background-color: #6692AC !important;
}
.tiempo_codigo progress {
    margin-top: 4px !important;
}
.alerta--info {
    background: #F4F9FC;
}
.alerta-clave {
    margin: 0 0 20px;
    padding: 15px 25px;
}
.alerta-clave p{
    font-weight: 600 !important;
    font-size: 1.4rem !important;
    line-height: 17px;
    letter-spacing: 0.0214em;
    color: #002033;
    margin-bottom: 10px;
}
.alerta-clave li{
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 17px;
    letter-spacing: 0.0214em;
    color: #28282A;
    margin-bottom: 10px;
}
#respuesta_exito_clave h3 {
    font-weight: 400;
    font-size: 1.8em;
    line-height: 22px;
    letter-spacing: 0.0111em;
    color: #3D3D3F;
    display: flex;
    align-items: center;
    gap: 15px;
}
#ejemplo_ci {
    position: relative;
}
.ejemplo_img_ci {
    padding: 20px;
    background: var(--terciario);
    border-radius: 4px;
    z-index: 2;
    position: absolute;
    bottom: calc(100% + 10px);
    left: -20px;
    transition: all ease .3s;
    opacity: 0;
}
@media(min-width:768px){
    #ejemplo_ci:hover .ejemplo_img_ci{
        opacity: 1;
    }
    #ejemplo_ci:hover .ejemplo_img_ci::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 17px;
        border-width: 10px;
        border-style: solid;
        border-color: black transparent transparent transparent;
    }
}
.item_codigo.invalido {
    border-color: #ea4537;
}
input#numero-3 {
    margin-right: 40px;
}
.error_mensaje {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    flex-wrap: wrap;
}
.error_mensaje h3{
    font-weight: 600;
    font-size: 1.8em;
    line-height: 22px;
    letter-spacing: 0.0111em;
    color: var(--terciario);
    margin-top: 0;
}
section.login-ingreso .error_mensaje p{
    font-weight: 400;
    font-size: 1.6em;
    line-height: 20px;
    letter-spacing: 0.0075em;
    color: var(--terciario);
}
.form__grupo .error {
    font-weight: 400;
    font-size: 1.2em;
    line-height: 17px;
    letter-spacing: 0.0167em;
    color: #990E25;
    display: none;
}
.form__grupo .invalido[type=text] {
    border-color: #ddd !important;
}
form.validado .form__grupo input.invalido,
.form__grupo input.invalido:not(:placeholder-shown) {
    border-color: #ea4537 !important;
}
/* form.validado .form__grupo input.invalido ~ small , */
.form__grupo input.invalido:not(:placeholder-shown) ~ small {
    display: inline !important;
    margin-top: 8px;
}
section.login-ingreso .error_mensaje p b {
    font-size: 1.6rem;
}
section.login-ingreso .error_mensaje p a {
    font-size: 1.6rem;
    color: var(--primario) !important;
    text-decoration: underline;
    font-weight: 600;
}
.alerta {
    color: var(--terciario) !important;
    font-weight: 400 !important;
    font-size: 1.2em;
    padding: 17px;
}
.alerta strong {
    color: var(--terciario) !important;
    font-weight: 600 !important;
    font-size: 1.2rem;
}
.barra-contenedor {
width: 100%;
height: 20px;
background-color: #F3F3F3;
border-radius: 100px;
overflow: hidden;
margin-top: 10px;
height: 8px;
}

.barra-relleno {
  width: 0%;
  height: 100%;
  background-color: #ccc;
  transition: width 0.3s ease, background-color 0.3s ease;
  border-radius: 6px;
}

.pass {
  font-weight: bold;
  font-size: 14px;
}
.pass--rojo { color: #db2e44; }
.pass--amarillo { color: #fdc128; }
.pass--celeste { color: #23a3b8; }
.pass--verde { color: #26a94c; }

#textoSeguridad {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 5px;
}
.texto-calidad {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 5px;
    line-height: 17px;
    font-size: 1.2rem;
    font-weight: 600;
    color: #838383;
}
#textoSeguridad .pass {
    font-weight: 600;
    font-size: 1.2rem;
    line-height: 15px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}
.marcador-pasos.realizado .circulo-paso {
    background: #E3F4D9 !important;
    align-items: center;
    justify-content: center;
}
.marcador-pasos.realizado .circulo-paso img{
    display: block !important;
    width: 11px;
}
a.mostrar-contrasena {
    position: absolute;
    right: 25px;
    top: 40px;
    z-index: 1;
}
.pasos-movil {
    display: none;
    padding: 15px 16px;
    background: #FFFFFF;
    width: 100%;
    margin-bottom: 15px;
}
.pasos-movil h3 {
    font-weight: 600;
    font-size: 1.6em;
    line-height: 20px;
    letter-spacing: 0.025em;
    color:var(--terciario);
    margin: 0 0 5px;
}
.pasos-movil p {
    font-weight: 400;
    font-size: 1.4em;
    line-height: 17px;
    letter-spacing: 0.0286em;
    color: var(--terciario);
    margin-bottom: 10px;
}
.pasos-movil p span{
    font-size: 1.4rem;
}
.btn--paso{
    pointer-events: none;
}
.btn--paso.activo{
    pointer-events: all;
    background: var(--primario);
}
@media(max-width: 991px){   
    header .logo-header {
        margin-right: auto;
    }
}
@media(max-width: 767px){  
    header {
        border-bottom: 1px solid #CCDBE3;
        padding: 30px 15px;
        height: 86px;
    }
    footer .direccion-footer {
        text-align: left;
        margin-bottom: 20px;
    }
    .pasos-movil {
        display: block;
    } 
    header .pasos {
        display: none;
    }
    .botonera {
        flex-direction: column-reverse;
    }
    .botonera .btn {
        width: 100%;
    }
    input#numero-3 {
        margin-right: 0;
    }
    .grupo_codigo {
        gap: initial;
        justify-content: space-between;
        width: 100%;
    }
        .item_codigo {
        width: 15%;
    }
    section.login-ingreso {
        padding: 40px 25px;
    }
    footer {
        margin-top: 50px;
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 20px 1.5rem;
        height: auto;
    }
    footer .direccion-footer{
        text-align: left;
    }
    main {
        flex-direction: column;
        justify-content: left;
        padding-top: 0;
    }
}
.overlay.modal-ci {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #00000080;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 0 1.5rem;
    padding-top: var(--altura-header);
}
.interior-modal-ci {
    background: white;
    padding: 80px 25px 50px;
    border-radius: 8px;
    position: relative;
    max-width: 100%;
    margin-top: var(--altura-header);
}
img.cerrar-modal-ci {
    position: absolute;
    right: 17px;
    top: 25px;
}
#aviso {
    display: none !important;
}