.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--space-6);align-items:start}
.contact-aside{position:sticky;top:110px}
.contact-method{display:flex;align-items:flex-start;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.contact-method__icon{flex:none;width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:800}
.contact-method strong{display:block;font-size:.92rem}.contact-method a,.contact-method span{font-size:.92rem;color:var(--text-2);text-decoration:none;overflow-wrap:anywhere}
.contact-method a:hover{color:var(--accent);text-decoration:underline}
.contact-form{background:var(--surface);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.form-field{margin-bottom:var(--space-3)}
.form-field label{display:block;font-weight:700;font-size:.9rem;margin-bottom:8px}
.form-field input,.form-field textarea{display:block;width:100%;border:1px solid #d6d7dc;background:#fff;border-radius:12px;padding:13px 14px;font:inherit;color:var(--text);transition:border-color .2s,box-shadow .2s}
.form-field textarea{min-height:160px;resize:vertical}
.form-field input:focus,.form-field textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,70,229,.14)}
.form-field [aria-invalid="true"]{border-color:#b42318}
.form-error{display:block;min-height:1.25em;color:#b42318;font-size:.82rem;margin-top:5px}
.form-hint{display:block;color:var(--text-2);font-size:.82rem;margin-top:5px}
.form-status{border-radius:12px;padding:13px 16px;margin:0 0 var(--space-3);font-size:.92rem}
.form-status--loading{background:#eef4ff;color:#174ea6}.form-status--success{background:#ecfdf3;color:#067647}.form-status--error{background:#fef3f2;color:#b42318}
.contact-form button[disabled]{opacity:.7;cursor:wait}
@media(max-width:800px){.contact-layout{grid-template-columns:1fr;gap:var(--space-4)}.contact-aside{position:static}}
@media(max-width:560px){.form-row{grid-template-columns:1fr;gap:0}.contact-form{padding:var(--space-3)}}
