.booking-main { background: linear-gradient(180deg, var(--sage), var(--paper) 500px); padding: 38px 0 84px; }
.booking-container { width: min(980px, calc(100% - 64px)); margin-inline: auto; }
.booking-back { display: inline-flex; gap: 10px; align-items: center; margin-bottom: 28px; font-size: 13px; color: var(--forest); }
.booking-back:hover { text-decoration: underline; text-underline-offset: 4px; }
.booking-card { background: var(--paper); border: 1px solid #d3d9c7; border-radius: 14px; padding: 64px 64px 54px; box-shadow: 0 14px 50px #344d3c08; }
.booking-intro { text-align: center; }
.booking-intro .eyebrow { color: var(--sage-dark); font-size: 10px; margin-bottom: 17px; }
.booking-intro h1 { font-size: clamp(42px, 5vw, 62px); line-height: 1.12; }
.booking-intro > p:not(.eyebrow) { max-width: 700px; margin: 24px auto 0; font-size: 15px; line-height: 1.9; color: var(--muted); }
.booking-intro a, .booking-submit-area a, .booking-help a, .booking-fallback a { color: var(--forest); font-weight: 600; text-decoration: underline; text-decoration-color: #acb69d; text-underline-offset: 4px; }
.booking-divider { display: block; width: 100px; height: 2px; background: #a6b397; margin: 38px auto; }
.booking-required { font-size: 11px; color: var(--muted); margin-bottom: 22px; }
.booking-required span, .booking-field label > span, .booking-consent > p > span { color: #965744; }
.booking-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.booking-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px 28px; }
.booking-field { min-width: 0; }
.booking-field-wide { grid-column: 1 / -1; }
.booking-field label { display: block; margin-bottom: 9px; font-size: 13px; font-weight: 600; line-height: 1.5; }
.booking-field input, .booking-field select, .booking-field textarea { font-size: 16px; background-color: #fffef9; border: 1px solid #b9c5ac; border-radius: 5px; min-height: 50px; padding: 12px 14px; line-height: 1.4; }
.booking-field select { padding-right: 36px; }
.booking-field input[type="date"], .booking-field input[type="time"] { min-width: 0; display: block; appearance: auto; }
.booking-field input::-webkit-calendar-picker-indicator { cursor: pointer; width: 21px; height: 21px; opacity: .75; padding: 2px; }
.booking-field textarea { min-height: 135px; }
.booking-field input:focus-visible, .booking-field select:focus-visible, .booking-field textarea:focus-visible { outline: 2px solid var(--sage-dark); outline-offset: 3px; }
.booking-field input::placeholder, .booking-field textarea::placeholder { color: #74816c; }
.booking-hint { margin-top: 8px; font-size: 11px; color: var(--muted); line-height: 1.6; }
.booking-consents { display: grid; gap: 28px; margin-top: 36px; padding-top: 32px; border-top: 1px solid var(--line); }
.booking-consent > p { font-size: 13px; font-weight: 600; margin-bottom: 9px; }
.booking-consent label { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; color: #55634e; line-height: 1.85; cursor: pointer; }
.booking-consent input[type="checkbox"] { flex: 0 0 19px; width: 19px; height: 19px; min-height: 0; margin: 4px 0 0; padding: 0; accent-color: var(--forest); }
.booking-submit-area { text-align: center; margin-top: 40px; }
.booking-submit { min-width: 280px; min-height: 56px; border-radius: 32px; letter-spacing: .06em; font-size: 12px; }
.booking-submit:disabled { opacity: .65; transform: none; }
.booking-submit-area > p { max-width: 460px; margin: 18px auto 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.booking-privacy-link { padding: 8px 0; background: none; text-decoration: underline; text-underline-offset: 3px; color: var(--muted); font-size: 11px; }
.booking-help { text-align: center; font-size: 13px; color: var(--muted); margin-top: 26px; }
.booking-feedback { background: #fff4ed; color: #7c3e2d; border: 1px solid #ddbaa5; border-radius: 6px; padding: 18px 20px; margin-top: 28px; font-size: 14px; line-height: 1.7; scroll-margin-top: 125px; }
.booking-success { text-align: center; max-width: 600px; margin-inline: auto; padding: 8px 0 24px; scroll-margin-top: 140px; }
.booking-success > svg { width: 56px; height: 56px; color: var(--sage-dark); margin-bottom: 24px; }
.booking-success h2 { font-size: 38px; margin-bottom: 22px; }
.booking-success p { color: var(--muted); font-size: 15px; line-height: 1.8; }
.booking-success .button { margin-top: 28px; }
.booking-fallback { text-align: center; font-size: 15px; line-height: 1.8; }
.booking-fallback p { margin-bottom: 18px; }
.booking-fallback > span { margin-inline: 8px; }
.booking-trap, .booking-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 760px) {
  .booking-main { padding-top: 26px; padding-bottom: 55px; }
  .booking-container { width: calc(100% - 36px); }
  .booking-back { margin-bottom: 21px; font-size: 12px; }
  .booking-card { padding: 38px 24px 32px; border-radius: 10px; }
  .booking-intro h1 { font-size: 43px; }
  .booking-intro > p:not(.eyebrow) { font-size: 14px; margin-top: 20px; }
  .booking-divider { margin-block: 29px; }
  .booking-grid { grid-template-columns: minmax(0, 1fr); gap: 23px; }
  .booking-field-wide { grid-column: 1; }
  .booking-consents { margin-top: 28px; padding-top: 25px; gap: 25px; }
  .booking-consent label { font-size: 13px; gap: 10px; }
  .booking-submit { min-width: 0; width: 100%; gap: 16px; }
  .booking-help { font-size: 12px; padding-inline: 6px; }
  .booking-success h2 { font-size: 32px; }
}
@media (max-width: 380px) {
  .booking-container { width: calc(100% - 24px); }
  .booking-card { padding-inline: 18px; }
  .booking-intro h1 { font-size: 38px; }
}
