.contact-main { max-width:760px; margin:auto; padding-bottom:40px; }
.back-link { font-size:12px; color:var(--muted); text-decoration:none; white-space:nowrap; }
.back-link:hover { color:var(--pink); }
.contact-intro { margin:58px 0 30px; }
.contact-intro h1 { font-size:clamp(29px,5vw,42px); margin:12px 0 16px; }
.contact-intro p { margin:0; font-size:14px; max-width:580px; }
.contact-card { padding:32px; background:var(--panel); border:1px solid var(--line); border-radius:18px; }
.contact-card-heading { padding-bottom:12px; border-bottom:1px solid var(--line); }
.contact-card-heading h2 { font-size:18px; }
.contact-card-heading p { margin:8px 0 0; font-size:11px; }
.required-mark,.optional-mark { display:inline-block; font-size:10px; font-weight:600; letter-spacing:.03em; margin-left:8px; vertical-align:middle; }
.required-mark { color:var(--pink); }
.optional-mark { color:var(--muted); }
.contact-card-heading .required-mark { margin:0 4px 0 0; }
.contact-status { margin:17px 0; overflow-wrap:anywhere; }
.contact-status:empty { margin:12px 0; min-height:0; }
#check-availability { margin-top:-12px; margin-bottom:16px; color:var(--pink); font-size:12px; }
.contact-field { margin:0 0 24px; }
.contact-field>label { display:block; font-size:13px; font-weight:650; margin-bottom:9px; }
.contact-field input,.contact-field select,.contact-field textarea { display:block; width:100%; min-width:0; padding:12px 14px; background:var(--bg); color:var(--text); border:1px solid #514b60; border-radius:9px; font:inherit; font-size:16px; }
.contact-field select { min-height:51px; }
.contact-field textarea { line-height:1.8; resize:vertical; min-height:185px; }
.contact-field textarea::placeholder { color:#aaa3b5; }
.contact-field textarea:focus-visible,.consent-label input:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
.field-note { margin:7px 0 0; font-size:11px; }
.message-details { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:4px 16px; }
.character-count { color:var(--muted); font-size:10px; font-variant-numeric:tabular-nums; margin-left:auto; }
.contact-privacy { padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.contact-privacy>p { margin:0 0 12px; font-size:12px; }
.consent-label { display:flex; align-items:flex-start; gap:11px; font-size:12px; cursor:pointer; }
.consent-label input { flex:none; width:18px; height:18px; padding:0; margin:3px 0 0; accent-color:var(--pink); border-radius:3px; }
.consent-label span { min-width:0; }
.consent-label .required-mark { white-space:nowrap; }
.contact-actions { display:flex; align-items:center; gap:18px; margin-top:25px; }
.contact-actions .primary { min-width:178px; }
.contact-actions button:disabled { cursor:default; }
.contact-actions p { margin:0; font-size:11px; }
.contact-return { margin:24px 0 0; font-size:12px; }
.contact-success { padding:15px 0 8px; }
.contact-success .success-heading { color:var(--text); font-size:18px; font-weight:650; margin-top:0; }
.contact-success p { font-size:13px; }
.contact-success .secondary { margin-top:12px; font-size:13px; }
@media(max-width:700px) { .contact-intro { margin-top:36px; } .contact-card { padding:24px; } }
@media(max-width:440px) { .contact-page .site-header { flex-wrap:wrap; } .back-link { font-size:11px; } .contact-card { padding:21px 18px; } .contact-actions { align-items:stretch; flex-direction:column; gap:10px; } .contact-actions p { text-align:center; } .consent-label { font-size:11px; } }
