.contact-form { min-width: 0; }
.floating-cta[hidden] { display: none; }
.contact-form label.field-email .field-hint { font-size: 12px; font-weight: 400; color: var(--muted); }
.contact-form .booking-actions { display: grid; gap: 10px; }
.contact-form .field-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; font-weight: 400; line-height: 1.5; }
.contact-form .field-consent input { width: 20px; min-width: 20px; min-height: 20px; height: 20px; margin: 2px 0; padding: 0; }
.field-consent a { text-decoration: underline; }
.booking-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.booking-retry { min-height: 44px; border: 1px solid var(--line); background: #fff; color: var(--navy); border-radius: var(--radius); cursor: pointer; font: inherit; padding: 8px; }
.booking-retry[hidden] { display: none; }
.booking-actions .button:disabled { cursor: not-allowed; opacity: .65; }
.calendar-message { grid-column: 1 / -1; margin: 8px 0; font-size: 14px; line-height: 1.5; color: var(--muted); }
.form-status[data-kind="error"] { color: #9f2727; }
.form-status[data-kind="success"] { color: #236143; font-weight: 600; }
.contact-form input:not([type="checkbox"]), .contact-form select { min-height: 44px; }
.contact-form .slot-button, .contact-form .day-button { min-height: 44px; }
.contact-form .calendar-nav { width: 44px; height: 44px; flex: 0 0 44px; }
.contact-form :focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
@media (min-width: 861px) {
  .contact-form { grid-template-areas: "intro name" "calendar email" "calendar contact" "calendar format" "calendar message" "calendar consent" "calendar actions" "calendar status"; }
  .contact-form label.field-name { grid-area: name; }
  .contact-form label.field-email { grid-area: email; }
  .contact-form label.field-contact { grid-area: contact; }
  .contact-form label.field-format { grid-area: format; }
  .contact-form label.field-message { grid-area: message; }
  .contact-form label.field-consent { grid-area: consent; }
  .contact-form .booking-actions { grid-area: actions; }
  .contact-form .booking-actions .button { grid-area: auto; width: 100%; }
  .contact-form .day-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .contact-form .slot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-height: 300px; }
}
@media (min-width: 861px) and (max-width: 1120px) { .contact { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 620px) {
  .contact-form { padding: 16px; }
  .contact-form .day-grid, .contact-form .slot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .contact-form * { transition: none; } }
