.t13-appointment { padding: 40px 0 64px; background: #faf8fb; }
.t13-appointment .container { max-width: 900px; }
.t13-appointment-heading { max-width: 720px; margin: 0 auto 28px; text-align: center; }
.t13-appointment-heading h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: 0 0 16px; line-height: 1.3; }
.t13-appointment-heading p { line-height: 1.8; }
.t13-appointment-form { position: relative; padding: 32px; background: #fff; border: 1px solid #e9e2ed; border-radius: 16px; box-shadow: 0 12px 32px rgba(60, 41, 70, .06); }
.t13-appointment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin: 24px 0; }
.t13-appointment-field { min-width: 0; }
.t13-appointment-wide { grid-column: 1 / -1; }
.t13-appointment-field label, .t13-appointment-field legend { display: block; font-size: 1rem; font-weight: 500; margin: 0 0 8px; }
.t13-appointment-field input:not([type=checkbox]), .t13-appointment-field select, .t13-appointment-field textarea { display: block; width: 100%; min-width: 0; min-height: 48px; padding: 11px 13px; border: 1px solid #aca2b2; border-radius: 6px; background: #fff; color: #231b29; font: inherit; font-size: 16px; }
.t13-appointment-field textarea { resize: vertical; }
.t13-appointment-field input[type=color] { padding: 6px; }
.t13-appointment-field input:focus-visible, .t13-appointment-field select:focus-visible, .t13-appointment-field textarea:focus-visible { outline: 2px solid #6f4c81; outline-offset: 2px; }
.t13-appointment-field fieldset { margin: 0; min-width: 0; }
.t13-appointment-field .t13-appointment-choice { display: flex; gap: 10px; align-items: baseline; font-weight: 400; padding: 6px 0; }
.t13-appointment-choice input { flex: none; width: 18px; height: 18px; }
.t13-appointment-hint { color: #62576a; font-size: .9rem; line-height: 1.8; }
.t13-appointment-submit { margin-top: 20px; min-height: 48px; padding: 12px 24px; background: #3c2946; color: #fff; white-space: normal; }
.t13-appointment-submit[aria-disabled=true] { opacity: .65; cursor: wait; }
.t13-appointment-feedback { margin-bottom: 24px; padding: 16px; border-radius: 6px; line-height: 1.7; }
.t13-appointment-feedback.success { color: #14532d; background: #effbf3; border: 1px solid #86bc98; }
.t13-appointment-feedback.error { color: #8c2424; background: #fff3f3; border: 1px solid #d29a9a; }
.t13-appointment-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.t13-appointment-captcha { margin: 0 0 24px; }
.t13-appointment-captcha-image { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.t13-appointment-captcha-image img { display: block; width: 180px; height: 64px; max-width: 100%; object-fit: contain; border: 1px solid #aca2b2; border-radius: 6px; filter: brightness(.6) contrast(5); }
.t13-appointment-captcha .t13-appointment-captcha-image input.t13-appointment-refresh { width: auto; min-height: 44px; padding: 10px 14px; cursor: pointer; background: #f7f4f8; font-size: .9rem; }
.t13-appointment-captcha > input { max-width: 280px; letter-spacing: .12em; }
.t13-appointment-captcha .t13-appointment-hint { margin-top: 8px; }
@media (max-width: 575px) {
  .t13-appointment { padding: 24px 0 40px; }
  .t13-appointment-form { padding: 22px 18px; }
  .t13-appointment-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .t13-appointment-submit { width: 100%; }
}
