.contacto-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}
.contacto-bajada { margin-top: 1rem; color: var(--texto-suave); font-size: 1.02rem; }
.contacto-directo { list-style: none; margin-top: 1.6rem; display: flex; flex-direction: column; gap: .9rem; }
.contacto-directo li { display: flex; align-items: center; gap: .7rem; font-size: .98rem; }
.contacto-directo .icono { width: 20px; height: 20px; color: var(--acento-oscuro); flex-shrink: 0; }
.contacto-directo a { color: var(--texto); }
.contacto-directo a:hover { color: var(--acento-oscuro); }

.contacto-form {
    background: var(--superficie);
    border: 1px solid var(--borde);
    border-radius: var(--radio-grande);
    padding: clamp(1.6rem, 4vw, 2.4rem);
    box-shadow: var(--sombra-card);
}
.form-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-campo { margin-bottom: 1rem; }
.form-campo label { display: block; margin-bottom: .35rem; font-family: var(--fuente-titulo); font-size: .88rem; font-weight: 600; }
.campo-opcional { color: var(--texto-suave); font-weight: 400; }
.form-campo input,
.form-campo textarea {
    width: 100%;
    padding: .78rem .9rem;
    font: inherit;
    color: var(--texto);
    background: var(--fondo);
    border: 1px solid var(--borde);
    border-radius: var(--radio-chico);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.form-campo input:focus,
.form-campo textarea:focus {
    border-color: var(--acento-oscuro);
    box-shadow: 0 0 0 3px rgba(168, 90, 8, .28);
}
.form-campo textarea { min-height: 140px; resize: vertical; }
.contacto-form .boton { width: 100%; margin-top: .3rem; }
.form-resultado { margin-top: 1rem; padding: .75rem .9rem; border-radius: var(--radio-chico); font-size: .92rem; }
.form-resultado.exito { background: rgba(46, 125, 87, .12); color: var(--c-exito); }
.form-resultado.error { background: rgba(178, 60, 48, .1); color: var(--c-error); }
.form-nota { margin-top: .9rem; font-size: .82rem; color: var(--texto-suave); }

@media (max-width: 820px) { .contacto-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .form-fila { grid-template-columns: 1fr; gap: 0; } }
