.contact-main { width: min(100% - 40px, 660px); margin: 0 auto; padding: 60px 0 72px; }
.contact-intro { margin-bottom: 36px; }
.contact-intro h1 { font-size: clamp(1.5rem, 5vw, 2rem); margin-bottom: 22px; }
.contact-intro .section-kicker { margin-bottom: 13px; }
.form-guide, .field-hint { font-size: .875rem; color: var(--muted); line-height: 1.8; }
.form-guide { padding-bottom: 25px; border-bottom: 1px solid var(--line); margin-bottom: 30px; }
.field { margin: 0 0 27px; min-width: 0; }
label, legend { font-weight: 600; font-size: 1rem; line-height: 1.8; }
label { display: block; margin-bottom: 8px; }
.requirement { display: inline-block; margin-left: .6em; color: var(--muted); font-size: .8125rem; font-weight: 400; }
.field-hint { margin: 5px 0 10px; }
input, select, textarea, button { font: inherit; letter-spacing: normal; }
input, select, textarea { display: block; width: 100%; min-width: 0; max-width: 100%; border: 1px solid #919b94; border-radius: 2px; background: #fff; color: var(--ink); padding: 10px 12px; line-height: 1.6; min-height: 48px; }
select { padding-right: 22px; }
textarea { resize: vertical; }
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
fieldset { min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.contact-method { margin-bottom: 32px; }
.contact-method > .field-hint { margin-top: 9px; }
.contact-method .field { margin-top: 18px; margin-bottom: 0; }
.additional-fields { padding: 23px 0 0; margin: 10px 0 30px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.additional-fields legend { padding-right: 12px; }
.additional-fields .field { margin-top: 15px; }
.field-error { color: #96392c; font-size: .875rem; line-height: 1.8; margin: 7px 0 0; }
[aria-invalid="true"] { border-color: #96392c; border-width: 2px; }
.form-notice { border-left: 3px solid var(--accent); background: #f4f5f3; padding: 18px 20px; margin: 20px 0 28px; font-size: 1rem; }
.form-notice:focus { outline: 2px solid var(--accent); outline-offset: 3px; }
.error-summary { border-color: #96392c; }
.error-summary ul { padding-left: 22px; margin: 10px 0 0; }
.error-summary a { display: inline-block; padding: 3px 0; }
.submit-area { border-top: 1px solid var(--line); padding-top: 24px; }
.submit-area button { display: block; min-height: 50px; width: 100%; max-width: 300px; padding: 12px 20px; margin-top: 20px; border: 1px solid var(--ink); border-radius: 2px; background: var(--ink); color: white; cursor: pointer; }
.submit-area button:hover { background: #424c45; }
.submit-area button:disabled { opacity: .55; cursor: not-allowed; }
#service-context:empty { display: none; }
.selected-service { font-weight: 500; margin: 12px 0 5px; }
.service-field summary { padding: 10px 0; font-size: .875rem; cursor: pointer; text-decoration: underline; text-underline-offset: .25em; }
.radio-choice { display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 10px 0; font-weight: 400; }
.radio-choice input { width: 20px; height: 20px; min-height: 20px; flex: 0 0 20px; padding: 0; margin: 5px 0 0; accent-color: var(--ink); }
.radio-choice span { min-width: 0; }
.service-field:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 700px) {
  .contact-main { padding-top: 35px; }
  .contact-intro { margin-bottom: 26px; }
  .contact-main h2 { font-size: 1rem; }
  .form-notice { padding: 15px; }
  .submit-area button { max-width: none; }
}
