/* Keep the approved sage palette and existing porcelain dialog shell. */
dialog.booking-dialog.request-dialog .dialog-frame { --dialog-width: 720px; }
.booking-dialog .booking-content { color: var(--ink, #173f35); }
.booking-dialog .booking-content .booking-title {
  max-width: 570px;
  font-family: var(--display, GeologicaClinic, sans-serif);
  font-size: clamp(30px, 3.6vw, 46px);
  font-weight: 380;
  line-height: 1.13;
  letter-spacing: -.045em;
  outline: none;
}
.booking-dialog .booking-note { max-width: 560px; margin-top: 23px; color: #536e58; font-size: 18px; line-height: 1.6; }
.booking-dialog .booking-context { margin-top: 17px; padding-left: 13px; border-left: 2px solid #b3c7a5; color: #3c5f46; font-size: 15px; line-height: 1.55; overflow-wrap: anywhere; }
.booking-dialog .booking-context[hidden] { display: none; }
.booking-dialog .booking-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 27px; margin-top: 29px; }
.booking-dialog .booking-call { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 5px; min-height: 68px; max-width: 100%; margin: 0; padding: 17px 24px; font-size: 16px; line-height: 1.4; }
.booking-dialog .booking-phone { font-size: 19px; font-weight: 500; white-space: nowrap; }
.booking-dialog .booking-visit { font-size: 16px; min-height: 46px; }
.booking-dialog .booking-email { margin-top: 23px; color: #536e58; font-size: 15px; line-height: 1.65; }
.booking-dialog .booking-email-link,
.reserve-form a { color: #315a3e; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.booking-dialog :is(a,button):focus-visible,
.reserve-form :is(a,button,input,textarea):focus-visible { outline: 2px solid var(--focus, #4a7452); outline-offset: 4px; }

.reserve-form { max-width: 720px; margin-top: 27px; color: var(--ink, #173f35); }
.reserve-form label { display: block; color: #47664e; font-size: 16px; line-height: 1.55; }
.reserve-form :is(input,textarea) { display: block; width: 100%; min-width: 0; max-width: 100%; margin-top: 7px; padding: 13px 0; border: 0; border-bottom: 1px solid #a8bda1; border-radius: 0; background: transparent; color: #173f35; font: inherit; font-family: var(--font, OnestClinic, sans-serif); font-size: 18px; line-height: 1.55; }
.reserve-form textarea { min-height: 140px; resize: vertical; }
.reserve-form label + label,
.reserve-form .reserve-field + .reserve-field { margin-top: 24px; }
.reserve-form [aria-invalid=true] { border-bottom-color: #9a462d; }
.reserve-form [data-reserve-error] { margin-top: 13px; color: #994528; font-size: 15px; line-height: 1.55; }
.reserve-form [data-reserve-error][hidden] { display: none; }
.reserve-form .button { min-height: 54px; margin-top: 23px; font-size: 17px; }
.reserve-form .button:disabled { opacity: .55; cursor: default; }
.reserve-form .reserve-note,
.reserve-form [data-reserve-status] { margin-top: 17px; color: #536e58; font-size: 15px; line-height: 1.65; max-width: 650px; }
.reserve-form [data-reserve-status]:empty { margin: 0; }

@media (max-width:600px) {
  .booking-dialog .booking-content .booking-title { font-size: clamp(28px, 7.4vw, 35px); }
  .booking-dialog .booking-note { font-size: 17px; margin-top: 20px; }
  .booking-dialog .booking-actions { flex-direction: column; align-items: stretch; gap: 14px; margin-top: 24px; }
  .booking-dialog .booking-call { align-items: center; padding: 15px 17px; }
  .booking-dialog .booking-phone { font-size: 18px; }
  .booking-dialog .booking-visit { align-self: flex-start; }
  .booking-dialog .booking-email { font-size: 14px; }
  .reserve-form :is(input,textarea) { font-size: 17px; }
  .reserve-form .button { width: 100%; }
}
