html, body {
    margin:0;
    padding:0;
    background-color: #fff;
    width: 100%;
    height:100%;
    font-family: 'Outfit', sans-serif;
}

img {
    max-width: 100%;
}

.ppal {
    min-height:100dvh;
    display:flex;
    align-items: stretch;
}

.ppal .container-fluid {
    padding: 50px;
    background-color: #0c0c0c;
}

.cols_ppal {
    display: flex;
  align-items: stretch;
  flex: 1;              /* ocupa todo el alto disponible del padre */
  min-height: 100%;
}

.col_ppal {
    padding: 40px;
    width: 45%;
    background: linear-gradient(to bottom, #ffffffed, #ffffffd6), #fff url(../img/bg-txt-wahl.jpg) no-repeat center bottom;
    background-size: cover;
    gap: 30px;
    display:flex;
    flex-direction: column;
    justify-content: center;
}

.col_img {
    width: 55%;
    background: linear-gradient(45deg, #000000b8 20%, transparent), #000 url(../img/bg-img-wahl.jpg) no-repeat right center;
    background-size: cover;
    display:flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 30px;
    gap:25px;
}

.row_logo, .row_head {
    display:flex;
    justify-content: center;
    align-items: center;
    padding: 10px;
}

.row_logo img, .row_head img {
    width: 150px;
}

h1 {
    color: #cd9c22;
    font-weight: 700;
    font-size: 2.3rem;
    line-height:1;
}

p {
    font-size:.9rem;
}

.row_form {
    padding: 10px 40px;
}

.row_form h5 {
    margin-bottom:30px;
    font-size: 1.1rem;
    text-align: center;
}
.row_form form input {
    border-radius: 0;
    border-collapse: collapse;
}

.row_form .col-md-12 {
    margin-top: -1px;
}

.row_form .form-floating {
    box-shadow: 0 10px 20px #00000008;
}

.row_form form input:focus {
  outline: none; /* quita el borde azul predeterminado */
  border:1px solid #dee2e6;
  border-left: 4px solid #cd9c22; /* añade un borde azul */
  box-shadow: none;
}

.row_form form label {
    color: #9c9c9d;
}

.row_form .form-check-label {
    font-size: .9rem;
}

.row_footer p {
    text-align: center;
    color:#ffffffbd;
}

.row_center {
    display:flex;
    justify-content: center;
}

.iconos_wahl {
    display: flex;
    gap:15px;
    align-items: center;
    margin: 0;
}

.iconos_wahl span {
    background: #cc9c239c;
    padding: 10px;
}

.iconos_wahl img {
    width: 30px;
    height: 30px;
}

.content_info {
    padding: 40px;
    /* backdrop-filter: blur(3px); */
    color: #fff;
    /* background-color: #ffffff21; */
    border: 1px solid #f0f0f024;
}

.content_info h2 {
    text-align: center;
    margin-bottom:25px;
    font-size: 1.5rem;
}

.fechas {
    align-items: center;
    gap:25px;
    justify-content: center;
}

.int_info a {
    color: #fff;
}

.int_info small {
    display:block;
    font-style: italic;
}

.mobile {
    display:none;
}

.alert { 
    position: relative; 
    border-radius: 5px; 
    margin-top: 10px;
}

.alert .auto-dismiss-bar {
  position: absolute; 
  left: 0; 
  bottom: 0; 
  height: 3px; 
  width: 100%;
  background: #0f5132;             /* éxito */
  transform-origin: left;
  animation: countdown 6s linear forwards;
}
.row_form .alert.alert-success {
    background-color: #e8f3ee
}
.alert.alert-danger .auto-dismiss-bar { 
    background: #842029; 
} /* error */

@keyframes countdown {
  from { transform: scaleX(1); }
  to   { transform: scaleX(0); }
}

@media (max-width:767px) {
    .desktop {
        display:none;
    }

    .mobile {
        display:inherit;
    }

    .ppal .container-fluid {
        padding: 20px;
    }

    .cols_ppal {
        flex-direction: column-reverse;
    }

    .col_ppal, .col_img {
        width:100%;
    }

    .row_head img {
        filter: contrast(0) brightness(1500);
    }

    .col_img {
        background:linear-gradient(45deg, #00000099 20%, #0000009e), #000 url(../img/bg-img-wahl.jpg) no-repeat right center;
        background-size: cover;
    }

    .content_info, .col_ppal {
        padding: 20px;
    }

    h1 {
        font-size: 1.7rem;
        text-align:center;
        color:#fff;
    }

    p {
        text-align:center;
    }

    .fechas {
        flex-direction: column;
        align-items: flex-start;
    }

    .iconos_wahl {
        font-size:.7rem;
    }

    .iconos_wahl img {
        width:25px;
    }

    .row_form {
        padding: 10px;
    }
}