.contacto { position: relative; isolation: isolate; }
.contacto::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 680px;
    height: 680px;
    bottom: -25%;
    right: -12%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(94, 124, 184, .09), rgba(94, 124, 184, 0) 66%);
    pointer-events: none;
}

.contacto-inner {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 56px;
    align-items: start;
}
.contacto-inner .seccion-titulo { text-align: left; }

.contacto-bajada { margin-top: 1.1rem; color: var(--texto-suave); font-size: 1.04rem; max-width: 42ch; }
.contacto-expansion {
    margin-top: 1.4rem;
    padding: 1rem 1.1rem;
    background: var(--superficie-tenue);
    border-radius: 12px;
    color: var(--texto-suave);
    font-size: .95rem;
    max-width: 44ch;
}
.contacto-correo {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin-top: 1.8rem;
    color: var(--texto);
    font-weight: 500;
}
.contacto-correo .icono { width: 20px; height: 20px; color: var(--acento); }
.contacto-correo:hover { color: var(--acento); }

.contacto-form {
    background: var(--superficie);
    border: 1px solid var(--linea);
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 30px 28px;
}
.form-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-campo { display: flex; flex-direction: column; gap: .4rem; margin-bottom: 16px; }
.form-campo label { font-size: .84rem; font-weight: 500; color: var(--texto); }
.campo-opcional { font-weight: 400; color: var(--texto-tenue); }

.form-campo input,
.form-campo textarea {
    width: 100%;
    min-width: 0;
    font-family: var(--fuente);
    font-size: 1rem;
    color: var(--texto);
    background: var(--fondo);
    border: 1px solid var(--linea);
    border-radius: 12px;
    padding: .7rem .9rem;
    transition: border-color .18s ease;
}
.form-campo input:focus,
.form-campo textarea:focus { outline: none; border-color: var(--acento); }
.form-campo textarea { resize: vertical; min-height: 128px; }

.form-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.contacto-form .boton-principal { width: 100%; margin-top: .4rem; }

.form-nota { font-size: .8rem; color: var(--texto-tenue); margin-top: .9rem; text-align: center; }
.form-nota a { color: var(--texto-suave); text-decoration: underline; text-underline-offset: 2px; }
.form-nota a:hover { color: var(--texto); }
.form-resultado { margin-top: 1rem; padding: .75rem 1rem; border-radius: 12px; font-size: .92rem; font-weight: 500; }
.form-resultado.exito { background: rgba(111, 191, 154, .12); color: var(--exito); }
.form-resultado.error { background: rgba(224, 122, 114, .12); color: var(--error); }

@media (max-width: 860px) {
    .contacto-inner { grid-template-columns: 1fr; gap: 36px; }
    .contacto-bajada, .contacto-expansion { max-width: none; }
}
@media (max-width: 480px) {
    .form-fila { grid-template-columns: 1fr; }
}
