/* Contact: one writing surface, using the site's existing palette. */
.contact-page .contact-layout { max-width:1180px; display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(32px,5vw,76px); padding:64px 28px 80px; }
.contact-back { font-size:.78rem; color:var(--muted); text-decoration:none; }
.contact-intro { padding:28px 0; }
.contact-intro h1 { font-size:clamp(1.9rem,3.1vw,2.75rem); margin:22px 0; line-height:1.7; letter-spacing:.06em; }
.contact-lead { color:var(--muted); font-size:.88rem; line-height:2.1; }
.contact-stars { display:block; width:min(100%,300px); margin:30px 0; color:var(--gold); }
.contact-note { padding-left:16px; border-left:1px solid #dcc49a66; color:var(--muted); font-size:.8rem; line-height:1.9; }
.contact-panel { align-self:start; border:1px solid #c4cfe433; border-radius:24px; background:linear-gradient(140deg,#1d2943ed,#121a2cf5); padding:32px; box-shadow:0 24px 60px #0003,inset 0 1px 0 #fff1; }
.contact-panel-heading { border-bottom:1px solid var(--line); padding-bottom:20px; margin-bottom:26px; }
.contact-panel-heading h2 { margin:0 0 6px; font-size:1.25rem; }
.contact-panel-heading p { color:var(--muted); font-size:.77rem; margin:0; }
.contact-form { display:grid; gap:26px; }
.contact-field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.contact-field { min-width:0; }
.contact-field > label,.contact-category > legend { display:block; margin:0 0 10px; font-size:.85rem; font-weight:500; color:var(--text); }
.contact-optional,.contact-required { display:inline-block; font-size:.65rem; line-height:1.6; margin-left:8px; vertical-align:1px; font-weight:400; }
.contact-optional { color:var(--muted); }
.contact-required { color:var(--gold); }
.contact-field input,.contact-field textarea { display:block; width:100%; min-height:48px; border:1px solid #c4cfe43b; border-radius:10px; background:#0a1122a6; padding:13px 14px; color:var(--text); font:400 16px/1.7 var(--sans); box-shadow:inset 0 1px 4px #0002; }
.contact-field input::placeholder,.contact-field textarea::placeholder { color:#9ba8bf; opacity:1; font-size:.78rem; }
.contact-field textarea { resize:vertical; min-height:166px; }
.contact-field input:focus,.contact-field textarea:focus { border-color:var(--gold); }
.contact-field .contact-hint { margin:8px 0 0; color:var(--muted); font-size:.72rem; line-height:1.8; }
.contact-category { border:0; margin:0; padding:0; min-width:0; }
.contact-choices { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.contact-choices label { display:flex; align-items:center; gap:9px; min-height:48px; padding:10px 12px; border:1px solid #c4cfe433; border-radius:10px; cursor:pointer; font-size:.78rem; background:#0a112244; }
.contact-choices label:hover { border-color:#dcc49a88; }
.contact-choices label:has(input:checked) { border-color:var(--gold); background:#dcc49a12; color:var(--gold); }
.contact-choices input { width:16px; height:16px; min-height:0; flex:0 0 16px; margin:0; padding:0; accent-color:var(--gold); }
.contact-send { border-top:1px solid var(--line); padding-top:22px; }
.contact-send p { color:var(--muted); font-size:.72rem; line-height:1.9; margin:0 0 18px; }
.contact-send .btn { width:100%; justify-content:space-between; min-height:54px; }
.contact-confirm-note { color:var(--muted); text-align:center; font-size:.7rem; margin:-14px 0 0; }
.contact-page .contact-footer { max-width:1180px; }
.contact-footer > p { color:var(--gold); font-family:var(--serif); letter-spacing:.12em; margin:0 0 12px; }
@media(max-width:850px) {
  .contact-page .contact-layout { grid-template-columns:1fr; max-width:700px; padding-top:30px; gap:26px; }
  .contact-intro { padding:0; }
  .contact-intro h1 { margin:12px 0 16px; }
  .contact-intro h1 br { display:none; }
  .contact-stars { display:none; }
  .contact-note { margin:18px 0 0; }
  .contact-note br { display:none; }
}
@media(max-width:480px) {
  .contact-page .contact-layout { padding:26px 18px 48px; }
  .contact-page .site-header { padding-inline:18px; gap:8px; }
  .contact-page .brand { font-size:.77rem; }
  .contact-back { font-size:.7rem; }
  .contact-panel { border-radius:18px; padding:24px 20px; }
  .contact-field-row { grid-template-columns:1fr; gap:20px; }
  .contact-choices { gap:8px; }
  .contact-choices label { padding:10px; font-size:.74rem; }
  .contact-intro h1 { font-size:1.85rem; }
}
@media(max-width:340px) { .contact-choices { grid-template-columns:1fr; } }
