.crm-fields { border: 0; padding: 0; margin: 0; display: grid; gap: 14px; min-width: 0; }
.crm-payment { border: 1px solid #d9e0d6; border-radius: 14px; padding: 16px; display: grid; gap: 12px; }
.crm-payment legend { font-weight: 750; padding: 0 5px; }
.crm-payment label { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; cursor: pointer; }
.crm-payment label span { flex: 1; }
.crm-payment label strong { font-weight: 800; white-space: nowrap; }
.crm-payment label small { display: block; }
.crm-payment input { accent-color: #46af48; flex: none; margin-top: 4px; }
.bank-instructions { background: #f1f7f0; padding: 16px; border-radius: 14px; }
.bank-instructions img { max-width: 100%; height: auto; }
.hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.booking-sheet { min-width: 0; overflow-wrap: anywhere; }
.booking-sheet [hidden] { display: none !important; }
.booking-sheet [data-checkout-contact] { display: grid; gap: 14px; }
.booking-sheet [data-contact-status]:empty { display: none; }
.booking-sheet [data-contact-status] { margin: 0; }
.booking-sheet [data-booking-status]:empty { display: none; }
.booking-sheet [data-booking-status], .booking-sheet [data-booking-offer] > p { margin: 0; }
.booking-sheet .booking-field input, .booking-sheet .booking-field select { box-sizing: border-box; display: block; width: 100%; max-width: 100%; }
.booking-legal { margin: 0; font-size: 14px; }
.booking-legal a { color: inherit; }
.booking-money { white-space: nowrap; }
.booking-quote { background: #f1f7f0; border-radius: 16px; padding: 18px; margin: 20px 0 0; }
.booking-quote p { margin: 0 0 4px; }
.booking-quote strong { display: block; font-size: clamp(1.7rem, 7vw, 2.25rem); line-height: 1.1; white-space: normal; overflow-wrap: anywhere; }
.booking-quote small { display: block; margin-top: 8px; }
@media (max-width: 640px) {
  .booking-page { padding-top: 8px; }
  .booking-page .booking-sheet { padding-top: 16px; }
  .booking-page   .booking-page .crm-payment { padding: 12px; gap: 8px; }
  .booking-page .crm-payment label { min-height: 36px; }
  .booking-page .booking-quote { margin: 12px 0 0; }
  .booking-page [data-booking-confirm] .sheet-submit { position: static; }
  .booking-page [data-booking-confirm] [data-booking-final] button { scroll-margin-block-end: calc(76px + env(safe-area-inset-bottom)); }
}
.booking-contact-summary { display: grid; gap: 2px; padding: 12px 14px; background: #f4f5f1; border-radius: 14px; font-size: 15px; }
.booking-contact-summary__label { font-size: 12px; font-weight: 750; letter-spacing: 1px; text-transform: uppercase; color: #27762d; }
.booking-contact-summary strong { font-size: 17px; }
.booking-contact-summary a { color: #27762d; font-weight: 700; text-underline-offset: 3px; justify-self: start; min-height: 32px; display: inline-flex; align-items: center; }
.booking-about { margin: 4px 0 8px; }
.booking-about summary { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: #27762d; font-weight: 700; cursor: pointer; list-style: none; text-decoration: underline; text-underline-offset: 3px; }
.booking-about summary::-webkit-details-marker { display: none; }
.booking-about summary::after { content: "▾"; font-size: 14px; line-height: 1; transition: transform .15s; }
.booking-about[open] summary::after { transform: rotate(180deg); }
.booking-about__body { margin-top: 8px; padding: 14px 16px; background: #f4f5f1; border-radius: 14px; font-size: 15px; display: grid; gap: 8px; }
.booking-about__body p { margin: 0; }
.booking-about__meta { color: #5b6157; font-size: 14px; }
