* {
    margin: 0;
    padding: 0;
  }
  
  @font-face {
    font-family: 'davibank';
    src: url('../fonts/Davivienda-Regular.otf');
    font-weight: normal;
  }

  @font-face {
    font-family: 'davibank-light';
    src: url('../fonts/Davivienda-Light.otf');
    font-weight: lighter;
  }
  
  body {
    background: #e3e3e3;
    color: #4B5860;
    font-family: 'davibank';
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
  }


  section{
    width: 100%;
    margin: auto;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0px 20px;
  }

  /* Header */
  .steps-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100%;
    background-color: #e3e3e3;
  }

  .content-header{
    width: 100%;
    display: flex;
    padding: 20px 60px 40px 60px;
  }

  .steps-header .content-header div{
    width: 33%;
  }

  .steps-header .content-header .button-box {
    padding: 10px;
  }

  .steps-header .content-header .hablemos {
    padding: 10px;
    text-align: center;
  }

  .steps-header .content-header .hablemos h3{
    font-family: 'davibank-light';
    font-weight: 100;
    text-align: center;
  }

  .steps-header .content-header .counter {
    font-family: 'davibank-light';
    padding-left: 10px;
    font-size: 30px;
    font-weight: 100;
  }
  
  .counter {
    font-weight: 600;
    width: 100%;
    text-align: right;
    padding: 10px;
  }
  
  /* Steps */
  .steps {
    display: flex;
    gap: 10px;
  }
  
  .step {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #e0e0e0;
    color: #555;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .step.active {
    background: #000;
    color: #fff;
  }
  
  .step.completed {
    background: #4caf50;
    color: #fff;
  }
  
  /* Content */

  .steps-content {
    width: 90%;
  } 
  
  .step-content {
    display: none;
    background-color: #e3e3e3;
  }
  
  .step-content.active {
    display: block;
  }
  
  
  .step-content h2 {
    font-family: 'davibank-light';
    font-weight: 100;
  }
  
  .step-content h3 {
    font-family: 'davibank-light';
    font-weight: 100;
  }

  .step-content h3 {
    margin-bottom: 16px;
  }

  .step-content h4{
    font-family: 'davibank-light';
    font-weight: 100;
  }


  /*Contenido */

  .slide{
    width: 100%;
    background: #e3e3e3;
  }

  .content{
    display: flex;
    flex-direction: row;
    vertical-align: middle;
    align-items: center;
  }

  .content-2{
    display: flex;
    flex-direction: row;
    vertical-align: middle;
    align-items: center;
  }

  .content .principal-title-box{
    width: 60%;
    align-items: center;
    vertical-align: middle;
  }

  .content .principal-title-box .principal-title h1{
    /* font-size: 40px; */
    font-family: 'davibank-light';
    font-weight: 100;
  }

  .content .principal-title-box .secondary-text p{
    /* font-size: 21px; */
    margin: 10px 0px;
  }

  .content .image-principal-box{
    width: 40%;
  }

  .image-principal-box img{
    width: 100%;
    margin-top: 40px;
  }

  .content-options{
    padding: 20px 0px;
    display: flex;
    flex-direction: row;
  }

  .content-options div {
    width: 25%;
    text-align: center;
  }

  .content-options div p{
    min-height: 50px;
  }

  .content-options div img {
    width: 180px;
  }

  .content-beneficios{
    width: 100%;
    display: flex;
    flex-direction: column;
  }

  .content-beneficios div{
    width: 100%;
    text-align: center;
  }

  .content-beneficios div h4{
    width: 100%;
    text-align: center;
  }

  .content-beneficios .btn-final{
    width: 100%;
    text-align: left;
  }



  .content-2 .principal-title-box2{
    width: 50%;
    align-items: center;
    vertical-align: middle;
  }

  .content-2 .principal-title-box2 .principal-title h1{
    /* font-size: 40px; */
    font-family: 'davibank-light';
    font-weight: 100;
  }

  .content-2 .principal-title-box2 .secondary-text p{
    /* font-size: 21px; */
    margin: 10px 0px;
  }

  .content-2 .image-principal-box2{
    width: 50%;
  }

  .image-principal-box2 img{
    width: 100%;
  }

  .content-tablas {
    margin-top: 20px;
    display: flex;
    flex-direction: row;
    text-align: left;
  }

  .content-tablas .column{
    display: flex;
    flex-direction: column;
    width: 50%;
  }

  .content-tablas .column .row{
    display: flex;
    flex-direction: row;
    width: 100%;
    text-align: left;
    margin-top: 10px;
    align-items: center;
  }
  

  .content-tablas .column .row div:nth-child(1){
    width: 10%;
    text-align: left;
  }
  
  .content-tablas .column .row div:nth-child(2){
    width: 90%;
    text-align: left;
  }

  .content-tablas .column .row div img{
    margin: 0;
  }

  .content-tablas .column .row div p{
    margin: 0;
    padding-left: 10px;
    font-size: 14px;
  }



  
  /*Botones*/

  .btn-empezar{
    font-family: 'davibank';
    width: 212px;
    height: 35px;
    border: 1px solid #ED1C27;
    border-radius: 50px;
    background-color: #ffffff;
    color: #ED1C27;
    margin-top: 40px;
    transition-duration: 0.3s;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .btn-empezar span {
    position: relative;
    top: 2px; /* micro ajuste óptico */
  }

  .btn-empezar:hover{
    background-color: #ED1C27;
    color: #ffffff;
    cursor: pointer;
    transition-duration: 0.3s;
    filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.1));
  }

  .back {
    font-family: 'davibank';
    display: inline-flex;
    align-items: center;      
    gap: 8px;                 
    border: none;
    background: none;
    cursor: pointer;
    color: #4B5860;
  }



  .btn-abrir-cuenta{
    font-family: 'davibank';
    text-decoration: none;
    width: 130px;
    border: 1px solid #ED1C27;
    border-radius: 50px;
    background-color: #ffffff;
    color: #ED1C27;
    margin-top: 25px;
    transition-duration: 0.3s;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 10px 24px;
    line-height: 1;
    font-size: 16px;
  }

  .btn-abrir-cuenta:hover{
    background-color: #ED1C27;
    color: #ffffff;
    cursor: pointer;
    transition-duration: 0.3s;
    filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.1));
  }

  
  .navigation{
    width: 100%;
    text-align: center;
  }


  /* Estilo del botón cuando está bloqueado */
  .navigation .continuar:disabled {
  font-family: 'davibank';
  background-color: #ccc; /* Color gris */
  width: 150px;
  border: 1px solid #ccc;
  border-radius: 50px;
  height: 35px;
  margin-top: 20px;
  font-size: 16px;
  cursor: not-allowed;    /* Cambia el cursor a un símbolo de "prohibido" */
  opacity: 0.5;
  filter: grayscale(1);   /* Lo vuelve totalmente gris */
}


  .navigation .continuar:not(:disabled){
    font-family: 'davibank';
    width: 150px;
    background-color: #e3e3e3;
    color: #4B5860;
    border: 1px solid #4B5860;
    border-radius: 50px;
    font-size: 16px;
    height: 35px;
    cursor: pointer;
    margin-top: 20px;
    transition-duration: 0.3s;
  }



  .navigation .continuar span {
    position: relative;
    top: 2px; /* micro ajuste óptico */
  }

  .btn-final span {
    position: relative;
    top: 2px; /* micro ajuste óptico */
  }

  .navigation .continuar:hover{
    background-color: #c8cccf;
    transition-duration: 0.3s;
    filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.1));
  }

 /*Estilos del input radio*/

  /* Ocultar el radio button original */
  .custom-radio input[type="radio"] {
    display: none;
  }

  /* Estilo base del círculo (Estado Normal - Derecha) */
  .custom-radio {
    cursor: pointer;
    display: inline-block;
    position: relative;
    width: 30px;
    height: 30px;
    background-color: white;
    border-radius: 50%;
    border: 1px solid #d1d1d1; 
    transition: all 0.2s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  }

  /* Estilo del estado Activo (Izquierda) */
  .custom-radio input[type="radio"]:checked + .radio-visual {
    background-color: #e51c23; /* Color rojo del centro */
    width: 18px;
    height: 18px;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  /* El anillo exterior rojo y el espacio blanco */
  .custom-radio:has(input[type="radio"]:checked) {
    border: 2px solid #e51c23; 
    background-color: white;  
    box-shadow: 0 0 5px rgba(229, 28, 35, 0.4); 
  }
  
  .content-options div p {
    transition: color 0.3s ease;
  }

  /* Estilos por defecto para que la transición sea suave */
  .content-options div img {
    transition: transform 0.3s ease;
    display: block;
    margin: 0 auto;
  }
  
  .content-options div p {
    transition: color 0.3s ease;
  }
  
  /* --- Estilos cuando la opción está seleccionada --- */
  
  .content-options div.selected img {
    transform: scale(1.15);
  }
  
  .content-options div.selected p {
    color: #ED1C27;
  }
  
 .content-options > div img {
    transition: transform 0.3s ease;
  }
  
  .content-options > div:hover img {
    transform: scale(1.1); 
  }
  
  .content-options div.selected img {
    transform: scale(1.15); 
    filter: drop-shadow(0 5px 15px rgba(0,0,0,0.1)); 
  }

  /* Estado inicial: todo normal */
.content-options > div {
    opacity: 1;
    transition: opacity 0.4s ease, transform 0.3s ease;
    padding: 0px 10px;
  }
  
  /* 1. CUANDO HAY UNA SELECCIÓN:
     Bajamos la opacidad de TODOS los ítems dentro del contenedor */
  .content-options.has-selection > div {
    opacity: 0.6;
  }
  
  /* 2. EL ÍTEM SELECCIONADO:
     Forzamos que se mantenga al 100% y aplicamos los estilos previos */
  .content-options.has-selection > div.selected {
    opacity: 1;
  }
  
  /* Estilos de realce para el seleccionado (imagen y texto) */
  .content-options div.selected img {
    transform: scale(1.15);
  }
  
  .content-options div.selected p {
    color: #e51c23;
  }
  
  /* 3. HOVER OPCIONAL: 
     Podemos hacer que al pasar el mouse por un ítem no seleccionado, 
     su opacidad suba un poco para dar feedback */
  .content-options.has-selection > div:hover:not(.selected) {
    opacity: 0.8;
  }
  


/* Textos */
:root {
    font-size: 16px;
  }
  
  
  h1 {
    font-size: clamp(2rem, 3.2vw, 2.75rem);
    line-height: 1.2;
  }
  
  h2 {
    font-size: clamp(1.75rem, 2.8vw, 2.375rem);
    line-height: 1.25;
  }
  
  h3 {
    font-size: clamp(1.5rem, 2.2vw, 1.875rem);
    line-height: 1.3;
  }
  
  h4 {
    font-size: clamp(1.25rem, 1.6vw, 1.375rem);
    line-height: 1.3;
  }
  
  h5 {
    font-size: clamp(1.125rem, 1.4vw, 1.25rem);
    line-height: 1.35;
  }
  
  h6 {
    font-size: clamp(0.9375rem, 1.2vw, 1rem);
    line-height: 1.4;
  }
  
  p,
  .body,
  .elementor-widget-text-editor {
    font-size: clamp(1rem, 1.2vw, 1.125rem);
    line-height: 1.55;
  }
  
  
  /* Body S */
  .small-text {
    font-size: 0.9375rem; /* 15px */
    line-height: 1.5;
  }
  
  /* Body XS / UI */
  .ui-text {
    font-size: 0.875rem; /* 14px */
    line-height: 1.45;
  }
  
  /* Caption */
  .caption {
    font-size: 0.75rem; /* 12px */
    line-height: 1.4;
  }
  
  /* Overline */
  .overline {
    font-size: 0.75rem;
    line-height: 1.333;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }


  .mobile{
    display: none;
  }




  /* Animaciones*/
  .fade-in {
    animation: fadeIn 300ms ease forwards;
  }
  
  .fade-out {
    animation: fadeOut 300ms ease forwards;
  }
  
  @keyframes fadeIn {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  
  @keyframes fadeOut {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
  }





  /* Responsive */

  @media only screen and (max-width: 800px) {

    section{
        width: 100% !important;
        justify-content: flex-start;
    }

    .desk{
        display: none !important;
    }

    .mobile{
        display: block !important;
    }


    .step-content{
        padding: 20px !important;
    }

    .content{
        flex-direction: column-reverse;
    }

    .content .principal-title-box{
        width: 95%;
    }

    .content .image-principal-box{
        width: 100%;
    }

    .image-principal-box img{
        margin: 40px 0px;
    }

    .btn-empezar{
        margin-top: 20px;
    }

    .steps-header .content-header{
        padding: 10px 15px !important;
        flex-wrap: wrap;
        align-items: center;
    }

    .steps-header .content-header div{
        padding: 0px !important;
    }
    
    .steps-header .content-header div:nth-child(1){
        width: 50%;
    }

    .steps-header .content-header div:nth-child(2){
        width: 50%;
    }

    .steps-header .content-header div:nth-child(3){
        margin-top: 20px;
        width: 100%;
    }

    .steps-content {
        padding: 0px 10px;
        width: 100%;
    }

    .content-options {
        flex-wrap: wrap;
    }

    .content-options div{
        width: 50%;
        margin: auto;
        margin-bottom: 20px;
    }

    .content-options div p {
        min-height: auto !important;
    }

    .content-2{
        flex-direction: column;
    }

    .content-2 .principal-title-box2, .content-2 .image-principal-box2 {
        width: 100%;
        margin: auto;
        margin-top: 20px;
    }

    .content-2 .image-principal-box2 .content-beneficios div h4{
        margin-top: 30px;
        text-align: center;
    }

    .content-tablas {
        margin-top: 10px;
        flex-direction: column;
    }

    .content-tablas .column{
        width: 95%;
        margin: auto;
    }

    .content-beneficios .btn-final {
        text-align: center;
    }

    .steps-header .content-header .counter {
      font-family: 'davibank-light';
      padding-left: 10px;
      font-size: 20px;
      font-weight: 100;
    }

  }

  @media only screen and (max-width: 600px) {
    .content-options {
        flex-direction: column;
    }

    .content-options div {
        width: 90%;
    }
  }
   