/* Contact page. Loaded after pages.css and reuses its tokens. */
.contact{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(16px,3vw,28px);align-items:start}
.contact h2{font-weight:400;font-size:clamp(1.55rem,3vw,2.1rem);line-height:1.12;letter-spacing:-.025em;margin-bottom:1.1rem}
.cform{display:grid;gap:1.1rem}
.field{display:grid;gap:.4rem}
.field label,.hp label{font-size:.88rem;font-weight:600}
.field input,.field select,.field textarea{width:100%;font:500 1rem var(--font);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--r1);padding:.8em 1em;transition:border-color .15s,box-shadow .15s}
.field textarea{resize:vertical;min-height:9rem;line-height:1.55}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--ink)}
.field[data-invalid] input,.field[data-invalid] select,.field[data-invalid] textarea{border-color:#b3261e}
.field__hint{margin:0;font-size:.84rem;color:var(--gray)}
.field__err{margin:0;font-size:.86rem;font-weight:600;color:#b3261e;min-height:0}
.field__err:empty{display:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform .btn{justify-self:start}
.cform .btn[disabled]{opacity:.6;cursor:progress}
.cform__status{margin:0;font-weight:600;min-height:0}
.cform__status:empty{display:none}
.notice{margin:0 0 1.2rem;padding:.85em 1.1em;border-radius:var(--r1);font-size:.95rem;font-weight:600}
.notice--ok{background:#e4f4e6;color:#14532d}
.notice--bad{background:#fde7e5;color:#7f1d1d}
.notice a{color:inherit}
.aside p{color:var(--gray)}
.steps{margin:0 0 1.2rem;padding-left:1.3em;display:grid;gap:.6rem;color:var(--gray)}
.steps li::marker{color:var(--coral);font-weight:800}
@media(max-width:820px){.contact{grid-template-columns:1fr}.cform .btn{width:100%;justify-self:stretch}}
