/* Contact form (hosted site only; uses the design tokens defined in site.css) */
[hidden]{display:none !important}
.contact-grid{display:grid;grid-template-columns:1fr;gap:40px 64px;align-items:start}
@media (min-width:1000px){.contact-grid{grid-template-columns:minmax(0,720px) minmax(0,300px)}}
.cf-row{display:grid;grid-template-columns:1fr;gap:0 24px}
@media (min-width:680px){.cf-row{grid-template-columns:1fr 1fr}}
.cf-field{display:flex;flex-direction:column;gap:8px;margin:0 0 22px}
.cf-field label{font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cf-field label .req{color:var(--accent)}
.cf-field label .opt{text-transform:none;letter-spacing:0}
.cf-field input,.cf-field textarea{font:inherit;font-size:1rem;color:var(--text);background:var(--bg-2);border:1px solid var(--line);border-radius:2px;padding:13px 14px;width:100%;margin:0;transition:border-color .2s}
.cf-field textarea{resize:vertical;min-height:168px;line-height:1.5}
.cf-field input:hover,.cf-field textarea:hover{border-color:#3D5664}
.cf-field input:focus,.cf-field textarea:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}
.cf-field [aria-invalid="true"]{border-color:#E8836B}
.field-error{color:#F2A08C;font-size:.9rem;line-height:1.4}
.cf-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.cf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:4px}
.cf-actions .mono{font-size:.72rem}
button.btn{border:0;cursor:pointer;font:inherit;font-weight:600}
button.btn:focus-visible{outline:2px solid var(--text);outline-offset:3px}
button.btn[disabled]{opacity:.65;cursor:progress}
.form-alert{border:1px solid var(--line);border-left:3px solid #E8836B;background:var(--bg-2);padding:16px 20px;margin:0 0 28px;max-width:720px}
.form-alert.ok{border-left-color:var(--accent)}
.form-alert strong{display:block;font-size:1.15rem;letter-spacing:-.01em;margin-bottom:4px;color:var(--text)}
.form-alert p{margin:0;color:var(--muted)}
.form-alert:focus{outline:2px solid var(--accent);outline-offset:3px}
.error-summary{list-style:none;margin:-12px 0 28px;padding:0;max-width:720px}
.error-summary li{margin:4px 0}
.error-summary a{color:#F2A08C}
.contact-aside{border-top:1px solid var(--line);padding-top:28px}
@media (min-width:1000px){.contact-aside{border-top:0;border-left:1px solid var(--line);padding:2px 0 0 32px}}
.contact-aside p{color:var(--muted);margin:12px 0 20px;font-size:.96rem}
.btn-outline{display:inline-flex;align-items:center;gap:10px;color:var(--text);font-weight:600;text-decoration:none;border:1px solid var(--accent);padding:14px 22px;border-radius:2px;transition:background .2s,color .2s}
.btn-outline:hover{background:var(--accent);color:var(--bg)}
.btn-outline:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.btn-outline svg{width:18px;height:18px;flex:none}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
