/* CONTENEDOR PRINCIPAL | INICIO */
.contenedor-contacto{
    width: 100%;
    min-height: 100vh;
    box-sizing: border-box;
    padding: clamp(40px, 7vw, 90px) clamp(20px, 5vw, 70px);
    background: var(--color-blanco);
    color: var(--color-negro);
}
.contenedor-contacto-interior{
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}
/* CONTENEDOR PRINCIPAL | FINAL */

/* ENCABEZADO | INICIO */
.contenedor-encabezado-contacto{
    width: 100%;
    max-width: 850px;
    margin: 0 auto clamp(45px, 7vw, 75px);
    text-align: center;
}
.etiqueta-encabezado-contacto{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    font-family: var(--fuente-inter);
    font-size: var(--texto-etiquetas-pequenos);
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.etiqueta-encabezado-contacto::before{
    content: "";
    width: 30px;
    height: 2px;
    background: var(--color-amarillo);
}
.h1-contacto{
    margin-bottom: 20px;
    font-family: var(--fuente-inter);
    font-size: var(--texto-h1-generales);
    font-weight: 700;
}
.parrafo-encabezado-contacto{
    max-width: 700px;
    margin: 0 auto;
    font-family: var(--fuente-inter);
    font-size: var(--texto-parrafo-generales);
    line-height: 1.7;
    color: #555555;
}
/* ENCABEZADO | FINAL */

/* ESTRUCTURA | INICIO */
.contenedor-estructura-contacto{
    width: 100%;
    display: grid;
    grid-template-columns: minmax(260px, 0.75fr) minmax(500px, 1.5fr);
    gap: clamp(25px, 5vw, 70px);
    align-items: start;
}
/* ESTRUCTURA | FINAL */

/* INFORMACIÓN LATERAL | INICIO */
.contenedor-informacion-contacto{
    position: sticky;
    top: 30px;
    padding: clamp(25px, 3vw, 40px);
    border-radius: 24px;
    background: var(--color-negro);
    color: var(--color-blanco);
    overflow: hidden;
}
.contenedor-informacion-contacto::after{
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    right: -90px;
    bottom: -90px;
    border-radius: 50%;
    background: var(--color-amarillo);
    opacity: 0.9;
}
.etiqueta-informacion-contacto{
    position: relative;
    z-index: 1;
    margin-bottom: 15px;
    font-family: var(--fuente-inter);
    font-size: var(--texto-etiquetas-pequenos);
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--color-amarillo);
}
.h2-informacion-contacto{
    position: relative;
    z-index: 1;
    margin-bottom: 20px;
    font-family: var(--fuente-inter);
    font-size: clamp(25px, 3vw, 35px);
    line-height: 1.1;
}
.parrafo-informacion-contacto{
    position: relative;
    z-index: 1;
    margin-bottom: 35px;
    font-family: var(--fuente-inter);
    font-size: 16px;
    line-height: 1.7;
    color: #cccccc;
}
.lista-proceso-contacto{
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 22px;
    list-style: none;
}
.elemento-proceso-contacto{
    display: flex;
    align-items: flex-start;
    gap: 14px;
}
.numero-proceso-contacto{
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-amarillo);
    color: var(--color-negro);
    font-family: var(--fuente-inter);
    font-size: 13px;
    font-weight: 800;
}
.texto-proceso-contacto{
    padding-top: 5px;
    font-family: var(--fuente-inter);
    font-size: 14px;
    line-height: 1.5;
    color: #eeeeee;
}
/* INFORMACIÓN LATERAL | FINAL */

/* FORMULARIO | INICIO */
.formulario-contacto{
    width: 100%;
    box-sizing: border-box;
    padding: clamp(25px, 4vw, 50px);
    border: 1px solid #e5e5e5;
    border-radius: 24px;
    background: var(--color-blanco);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.07);
}
.seccion-formulario{
    margin-bottom: 40px;
}
.seccion-formulario:last-of-type{
    margin-bottom: 30px;
}
.encabezado-seccion-formulario{
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
}
.numero-seccion-formulario{
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-amarillo);
    color: var(--color-negro);
    font-family: var(--fuente-inter);
    font-size: 12px;
    font-weight: 800;
}
.h2-formulario{
    font-family: var(--fuente-inter);
    font-size: var(--texto-h2-generales);
    font-weight: 700;
}
.contenedor-campos-formulario{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}
.campo-formulario{
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.campo-formulario-completo{
    grid-column: 1 / -1;
}
.etiqueta-formulario{
    font-family: var(--fuente-inter);
    font-size: 13px;
    font-weight: 700;
    color: var(--color-gris);
}
.input-formulario,
.select-formulario,
.textarea-formulario{
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #dedede;
    border-radius: 11px;
    padding: 15px 16px;
    background: #fafafa;
    color: var(--color-negro);
    font-family: var(--fuente-inter);
    font-size: 15px;
    outline: none;
    transition: 0.25s ease;
}
.input-formulario:hover,
.select-formulario:hover,
.textarea-formulario:hover{
    border-color: #bdbdbd;
    background: var(--color-blanco);
}
.input-formulario:focus,
.select-formulario:focus,
.textarea-formulario:focus{
    border-color: var(--color-negro);
    background: var(--color-blanco);
    box-shadow: 0 0 0 4px rgba(244, 244, 44, 0.25);
}
.textarea-formulario{
    min-height: 145px;
    resize: vertical;
    line-height: 1.6;
}
.texto-ayuda-formulario{
    font-family: var(--fuente-inter);
    font-size: 12px;
    color: #777777;
}
/* FORMULARIO | FINAL */

/* OPCIONES CONTACTO | INICIO */
.contenedor-opciones-contacto{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}
.opcion-contacto{
    position: relative;
}
.input-opcion-contacto{
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.etiqueta-opcion-contacto{
    position: relative;
    width: 100%;
    min-height: 85px;
    box-sizing: border-box;
    padding: 17px;
    display: flex;
    align-items: center;
    gap: 14px;
    border: 1px solid #dedede;
    border-radius: 13px;
    background: #fafafa;
    cursor: pointer;
    transition: 0.25s ease;
}
.etiqueta-opcion-contacto:hover{
    border-color: #aaaaaa;
    background: var(--color-blanco);
    transform: translateY(-2px);
}
.icono-opcion-contacto{
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: var(--color-amarillo);
    color: var(--color-negro);
    font-family: var(--fuente-inter);
    font-size: 19px;
    font-weight: 700;
}
.texto-opcion-contacto{
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.titulo-opcion-contacto{
    font-family: var(--fuente-inter);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-negro);
}
.descripcion-opcion-contacto{
    font-family: var(--fuente-inter);
    font-size: 12px;
    line-height: 1.4;
    color: #777777;
}
.input-opcion-contacto:checked + .etiqueta-opcion-contacto{
    border-color: var(--color-negro);
    background: #fffef0;
    box-shadow: 0 0 0 2px var(--color-amarillo);
}
/* OPCIONES CONTACTO | FINAL */

/* BOTÓN | INICIO */
.contenedor-boton-formulario{
    padding-top: 10px;
}
.boton-enviar-formulario{
    width: 100%;
    min-height: 58px;
    border: none;
    border-radius: 11px;
    padding: 15px 25px;
    background: var(--color-negro);
    color: var(--color-blanco);
    font-family: var(--fuente-inter);
    font-size: var(--texto-botones-generales);
    font-weight: 700;
    cursor: pointer;
    transition: 0.25s ease;
}
.boton-enviar-formulario:hover{
    background: var(--color-amarillo);
    color: var(--color-negro);
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
}
.texto-privacidad-formulario{
    margin-top: 14px;
    text-align: center;
    font-family: var(--fuente-inter);
    font-size: 11px;
    line-height: 1.5;
    color: #888888;
}
/* BOTÓN | FINAL */

/* CONTACTO DIRECTO | INICIO */
.contenedor-contacto-directo{
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}
.titulo-contacto-directo{
    margin-bottom: 12px;
    font-family: var(--fuente-inter);
    font-size: 12px;
    font-weight: 700;
    color: #aaaaaa;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.dato-contacto-directo{
    display: block;
    margin-bottom: 7px;
    font-family: var(--fuente-inter);
    font-size: 14px;
    color: var(--color-blanco);
}
/* CONTACTO DIRECTO | FINAL */

/* RESPONSIVE | INICIO */
@media screen and (max-width: 900px){
    .contenedor-estructura-contacto{
        grid-template-columns: 1fr;
    }
    .contenedor-informacion-contacto{
        position: static;
    }
}

@media screen and (max-width: 700px){
    .contenedor-contacto{
        padding: 35px 15px 50px;
    }
    .contenedor-encabezado-contacto{
        margin-bottom: 35px;
    }
    .h1-contacto{
        letter-spacing: -1px;
    }
    .formulario-contacto{
        padding: 25px 20px;
        border-radius: 18px;
    }
    .contenedor-campos-formulario{
        grid-template-columns: 1fr;
    }
    .campo-formulario-completo{
        grid-column: auto;
    }
    .contenedor-opciones-contacto{
        grid-template-columns: 1fr;
    }
    .contenedor-informacion-contacto{
        border-radius: 18px;
    }
}
/* RESPONSIVE | FINAL */