.contact-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 64px; }
.contact-panel { min-width: 0; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-panel .form-group { margin-bottom: 22px; }
.contact-panel label { display: block; margin-bottom: 8px; font-weight: 650; color: var(--vis-navy-900); }
.contact-panel input, .contact-panel select, .contact-panel textarea { display: block; width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--vis-slate-500); border-radius: var(--vis-radius); background: var(--vis-white); color: var(--vis-ink); font: inherit; font-size: 16px; }
.contact-panel textarea { resize: vertical; }
.contact-panel :is(input, select, textarea):focus-visible { outline: 3px solid var(--vis-cyan-deep); outline-offset: 2px; }
.contact-panel .hint-block, .contact-privacy, .contact-captcha-notice { font-size: 14px; line-height: 1.6; color: var(--vis-slate-600); }
.contact-panel .help-block { color: var(--vis-danger); font-size: 14px; }
.contact-error { color: var(--vis-danger); padding: 12px 16px; border: 1px solid var(--vis-danger); border-radius: var(--vis-radius); margin-bottom: 20px; }
.contact-error:empty, .contact-error[hidden], #contact-reference-field[hidden] { display: none; }
.contact-success { background: var(--vis-info-bg); color: var(--vis-navy-900); padding: 20px; border-radius: var(--vis-radius); }
.contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact-panel a, .contact-information a { color: var(--vis-cyan-deep); text-decoration: underline; text-underline-offset: 3px; }
.contact-panel .btn { color: var(--vis-navy-900); }
.contact-panel .btn:disabled { opacity: .65; cursor: not-allowed; }
.contact-information { overflow-wrap: anywhere; color: var(--vis-text-2); }
.contact-information h2 { font-size: 24px; }
@media (max-width: 760px) { .contact-layout { grid-template-columns: 1fr; gap: 36px; } .contact-fields { grid-template-columns: 1fr; gap: 0; } }
