/* Phone-friendly contact form, matching the preview's white/red visual system. */
.contact-dialog { width: min(440px, calc(100% - 24px)); max-height: calc(100dvh - 24px); padding: 0; overflow: hidden; }
.contact-dialog #contact-content { max-height: calc(100dvh - 28px); overflow-y: auto; overscroll-behavior: contain; padding: 30px; scroll-padding: 52px 20px 20px; }
.contact-dialog .dialog-close { z-index: 2; background: #fff; border-radius: 50%; box-shadow: 0 1px 5px #17263c0a; }
.contact-dialog h2 { margin-bottom: 12px; }
.contact-dialog .contact-intro { margin: 0 0 21px; color: #4c5867; font-size: 14px; line-height: 1.6; }
.contact-method { min-width: 0; margin: 0 0 20px; padding: 0; border: 0; }
.contact-method legend { margin-bottom: 9px; padding: 0; font-size: 13px; color: #3f4c5b; }
.contact-options { display: grid; grid-template-columns: 1fr 1.3fr; gap: 8px; }
.contact-dialog .contact-options label { position: relative; display: flex; margin: 0; min-height: 48px; cursor: pointer; }
.contact-dialog .contact-options input { position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; padding: 0; opacity: 0; }
.contact-options span { display: flex; align-items: center; justify-content: center; width: 100%; padding: 10px 7px; border: 1px solid #c7d0d9; border-radius: 7px; font-size: 13px; color: #445060; text-align: center; }
.contact-options input:checked + span { color: #ab1525; background: #fff5f6; border-color: #d82034; font-weight: 600; box-shadow: inset 0 0 0 1px #d82034; }
.contact-options input:focus-visible + span { outline: 3px solid #263fe0; outline-offset: 3px; }
.contact-dialog #booking-form > label { font-size: 14px; }
.contact-dialog #booking-form > input { font-size: 16px; min-height: 50px; height: 50px; margin-bottom: 17px; }
.contact-dialog #booking-phone { margin-bottom: 5px; }
.contact-field-help { margin: 0 0 19px; color: #5c6674; font-size: 12px; line-height: 1.5; }
.contact-dialog #booking-form > .button, .contact-dialog .contact-reopen, .contact-dialog .contact-confirm, .contact-dialog .contact-ai { display: flex; width: 100%; min-height: 50px; justify-content: center; align-items: center; text-align: center; font-size: 14px; padding: 12px 14px; }
.contact-dialog .contact-note { margin: 12px 0 0; color: #5b6673; font-size: 12px; line-height: 1.65; }
.contact-note a { text-decoration: underline; text-underline-offset: 2px; }
.contact-dialog .dialog-alternative { font-size: 13px; margin-top: 20px; padding-top: 17px; }
.contact-dialog .dialog-alternative small { font-size: 12px; line-height: 1.5; }
.contact-dialog .contact-confirm { margin-top: 22px; color: #25394f; background: white; border: 1px solid #c7d0d9; }
.contact-dialog .contact-confirm:hover { background: #f4f6f8; }
.contact-dialog .contact-reopen.secondary { background: #fff; border: 1px solid #c7d0d9; color: #25394f; }
.contact-next { margin-top: 23px; padding-top: 20px; border-top: 1px solid #e1e6eb; }
.contact-next h3 { margin: 0 0 9px; font-size: 20px; line-height: 1.3; letter-spacing: -.02em; }
.contact-next .contact-intro { margin-bottom: 15px; }
.contact-back { display: block; width: 100%; min-height: 44px; border: 0; background: none; margin: 12px 0 0; padding: 11px 4px; color: #344a62; text-align: center; text-decoration: underline; font: inherit; font-size: 13px; cursor: pointer; }
.contact-dialog [tabindex="-1"]:focus { outline: none; }
@media (max-width: 550px) {
  .contact-dialog #contact-content { padding: 26px 20px; }
  .contact-dialog h2 { font-size: 27px; max-width: 280px; }
  .contact-dialog .booking-topic { margin-bottom: 10px; }
  .contact-dialog .contact-intro { margin-bottom: 17px; font-size: 14px; }
}
@media (max-width: 360px) {
  .contact-dialog #contact-content { padding: 26px 17px; }
  .contact-options span { font-size: 12px; padding-left: 4px; padding-right: 4px; }
}
