.booking-section { padding-top: 48px; }
.booking-wrap { max-width: 860px; }
.booking-intro { max-width: 680px; margin-bottom: 24px; }
.booking-intro h1 { margin: 10px 0 18px; font-size: clamp(32px, 4.4vw, 54px); line-height: 1.08; letter-spacing: -.045em; }
.booking-intro > p:last-child { color: #566976; font-size: 18px; line-height: 1.55; }
.booking-demo-note { padding: 16px 18px; margin: 0 0 24px; border: 1px solid #dbe4e9; border-radius: 12px; background: #f6f8f9; color: #475d6a; font-size: 14px; line-height: 1.55; }
.booking-demo-note strong { color: #263e4c; }
.booking-demo-note a, .inquiry-intro a { color: #115f95; font-weight: 650; white-space: nowrap; }
.booking-form, .inquiry-form { color: #17313f; }
.booking-form { padding: 28px; border: 1px solid #dae4e9; border-radius: 20px; background: #fff; scroll-margin-top: 96px; }
.booking-form [hidden], .inquiry-form [hidden] { display: none !important; }
.booking-steps { display: flex; gap: 16px; justify-content: space-between; list-style: none; margin: 0 0 32px; padding: 0 0 24px; border-bottom: 1px solid #e3eaee; }
.booking-steps li { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #687a85; font-weight: 550; }
.booking-steps li > span { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; background: #edf2f5; color: #536b79; }
.booking-steps li[aria-current] { color: #105f96; }
.booking-steps li[aria-current] > span { color: #fff; background: #126caa; }
.booking-steps li.is-done > span { color: #165d50; background: #e3f2eb; }
.booking-step h2, .booking-complete h2 { margin: 0 0 20px; font-size: 26px; line-height: 1.2; letter-spacing: -.025em; }
.booking-step h2:focus-visible, .booking-complete h2:focus-visible { outline: 2px solid #116da8; outline-offset: 5px; }
.booking-form fieldset { padding: 0; margin: 0; border: 0; min-width: 0; }
.booking-form legend { padding: 0; margin: 0 0 12px; font-size: 17px; font-weight: 650; }
.booking-vehicles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.booking-choice { display: flex; align-items: center; gap: 10px; min-width: 0; min-height: 92px; padding: 16px 12px; border: 1px solid #d1dfe7; border-radius: 12px; cursor: pointer; background: #fff; }
.booking-choice:has(input:checked) { border-color: #1372af; box-shadow: inset 0 0 0 1px #1372af; background: #f1f8fd; }
.booking-choice:has(input:focus-visible), .booking-transfer-choices label:has(input:focus-visible) { outline: 3px solid #9bcdeb; outline-offset: 3px; }
.booking-choice input, .booking-transfer-choices input { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; accent-color: #116da8; }
.booking-choice > span { min-width: 0; flex: 1; }
.booking-choice strong { display: block; font-size: 15px; line-height: 1.3; }
.booking-choice small { display: block; margin-top: 5px; font-size: 12px; line-height: 1.3; color: #566e7c; font-weight: 450; }
.booking-choice > b { flex-shrink: 0; text-align: right; font-size: 22px; line-height: 1; }
.booking-choice > b small { margin-top: 6px; font-size: 11px; }
.booking-business-link { margin: 16px 0 26px; color: #566d7b; font-size: 14px; line-height: 1.5; }
.booking-business-link a { color: #126ca6; font-weight: 600; }
.booking-form .booking-transfer { margin: 28px 0; }
.booking-transfer-choices { display: flex; gap: 12px; }
.booking-transfer-choices label { flex: 1; display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 12px 14px; border: 1px solid #d1dfe7; border-radius: 10px; font-size: 15px; font-weight: 550; cursor: pointer; }
.booking-transfer-choices label:has(input:checked) { border-color: #1372af; background: #f1f8fd; }
.booking-transfer > p { margin: 12px 0 0; color: #586e7b; font-size: 14px; line-height: 1.5; }
.booking-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.booking-date-row { display: grid; grid-template-columns: minmax(0, 1fr) 108px; gap: 10px; }
.booking-form .field, .inquiry-form .field { display: flex; flex-direction: column; gap: 7px; min-width: 0; margin: 0; }
.booking-form .field > span, .inquiry-form .field > span { color: #334e5d; font-size: 14px; font-weight: 550; line-height: 1.4; }
.booking-form .field > small, .inquiry-form .field > small { color: #657984; font-size: 12px; font-weight: 400; line-height: 1.4; }
.booking-form .field input, .booking-form .field textarea, .inquiry-form .field input, .inquiry-form .field select, .inquiry-form .field textarea { width: 100%; min-width: 0; min-height: 52px; box-sizing: border-box; border: 1px solid #cbd9e1; border-radius: 9px; padding: 13px 12px; background: #fff; color: #17313f; font: inherit; font-size: 16px; line-height: 1.35; box-shadow: none; }
.booking-form .field input:focus, .booking-form .field textarea:focus, .inquiry-form .field input:focus, .inquiry-form .field select:focus, .inquiry-form .field textarea:focus { outline: 3px solid #c1e1f4; outline-offset: 1px; border-color: #1679b9; }
.booking-form .field input::placeholder, .booking-form .field textarea::placeholder, .inquiry-form .field input::placeholder, .inquiry-form .field textarea::placeholder { color: #758894; opacity: 1; }
.booking-form .field textarea, .inquiry-form .field textarea { resize: vertical; }
.booking-form [aria-invalid="true"], .inquiry-form [aria-invalid="true"] { border-color: #ad352e !important; }
.booking-help { margin: 12px 0 20px; color: #5e7380; font-size: 13px; line-height: 1.55; }
.booking-quote { border-radius: 14px; background: #eef6fc; border: 1px solid #d7e8f4; padding: 22px; margin-top: 26px; }
.booking-quote > div { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.booking-quote > div > span { max-width: 240px; font-size: 15px; color: #38566a; line-height: 1.4; }
.booking-quote strong { color: #103a55; font-size: 36px; line-height: 1.15; white-space: nowrap; letter-spacing: -.045em; }
.booking-quote > p { margin: 12px 0; color: #35586e; font-size: 14px; line-height: 1.5; }
.booking-quote > small { color: #3c6657; font-size: 13px; }
.booking-quote .booking-transfer-warning { margin-top: 14px; padding-top: 14px; border-top: 1px solid #c6dce9; color: #65541f; }
.booking-actions { display: flex; justify-content: flex-end; align-items: stretch; gap: 12px; margin-top: 26px; }
.booking-actions .button, .booking-actions .button-secondary, .inquiry-form > .button { min-height: 52px; cursor: pointer; font-size: 15px; line-height: 1.3; text-align: center; }
.booking-actions .button { min-width: 200px; }
.booking-actions .button-secondary { min-width: 120px; }
.booking-error { border: 1px solid #ecc7c1; border-radius: 9px; padding: 12px 15px; margin: 0 0 22px; background: #fff5f2; color: #94372c; font-size: 14px; line-height: 1.5; }
.booking-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
.booking-machine { margin-top: 22px; }
.booking-form .booking-passengers { margin-top: 28px; padding-top: 24px; border-top: 1px solid #e0e8ed; }
.booking-passengers legend { float: left; width: 100%; }
.booking-passengers .booking-help { clear: both; }
.booking-counter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
.booking-review { margin: 0; }
.booking-review > div { display: grid; grid-template-columns: 180px 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid #e2eaee; }
.booking-review dt { color: #637985; font-size: 14px; line-height: 1.5; }
.booking-review dd { margin: 0; color: #17313f; font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.booking-review-price { margin: 24px 0; padding: 22px; border-radius: 12px; background: #eef6fc; }
.booking-review-price > span { display: block; color: #36596d; font-size: 14px; }
.booking-review-price > strong { display: block; margin-top: 8px; color: #103a55; font-size: 36px; line-height: 1.2; }
.booking-review-price > p { margin: 12px 0; font-size: 14px; line-height: 1.5; color: #35586e; }
.booking-review-price > small { color: #3c6657; }
.booking-complete { text-align: center; padding: 24px 0 6px; scroll-margin-top: 96px; }
.booking-complete-mark { width: 56px; height: 56px; margin: 0 auto 22px; display: grid; place-items: center; color: #1d684f; background: #e4f3eb; border-radius: 50%; font-size: 28px; }
.booking-complete p { max-width: 560px; margin: 12px auto 20px; font-size: 16px; line-height: 1.6; color: #536d7b; }
.booking-complete .button, .booking-complete .button-secondary { max-width: 100%; min-height: 52px; font-size: 15px; }
.booking-return { display: block; margin: 22px 0; color: #126ca6; }
.inquiry-section { scroll-margin-top: 96px; }
.inquiry-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 56px; align-items: start; }
.inquiry-intro > p { color: #5d7482; font-size: 17px; line-height: 1.6; }
.inquiry-form { padding: 28px; display: grid; gap: 20px; }
.inquiry-form .booking-demo-note, .inquiry-form .booking-error { margin: 0; }
.inquiry-storage-rate { color: #536e7e; font-size: 14px; line-height: 1.5; margin: 12px 0 0; }
.inquiry-result { background: #f0f7fc; border: 1px solid #cce2f0; border-radius: 12px; padding: 22px; }
.inquiry-result h3 { font-size: 22px; margin: 0 0 12px; }
.inquiry-result p { font-size: 15px; line-height: 1.6; }
.inquiry-result:focus { outline: 2px solid #1679b9; outline-offset: 4px; }
.booking-calendar { border: 1px solid #cbdce6; box-shadow: 0 14px 40px #163b5622; font-family: inherit; }
.booking-calendar .flatpickr-day { height: 40px; line-height: 40px; }
.booking-calendar-close { width: calc(100% - 24px); min-height: 44px; padding: 10px; margin: 4px 12px 12px; border: 1px solid #cedfe9; border-radius: 8px; background: #f3f8fc; color: #165e90; cursor: pointer; font: inherit; font-size: 14px; }
@media (max-width: 760px) {
  .booking-section { padding-top: 28px; }
  .booking-intro { margin-bottom: 20px; }
  .booking-intro h1 { font-size: 36px; max-width: 17ch; }
  .booking-intro > p:last-child { font-size: 16px; }
  .booking-form { padding: 22px 18px; border-radius: 16px; }
  .booking-steps { gap: 8px; margin-bottom: 26px; padding-bottom: 20px; }
  .booking-steps li { gap: 5px; font-size: 12px; }
  .booking-steps li > span { width: 24px; height: 24px; flex-basis: 24px; }
  .booking-step h2 { font-size: 24px; }
  .booking-vehicles { grid-template-columns: 1fr; gap: 10px; }
  .booking-choice { min-height: 74px; padding: 13px 14px; }
  .booking-choice strong { font-size: 15px; }
  .booking-choice > b { font-size: 22px; }
  .booking-choice small { margin-top: 3px; }
  .booking-choice > b small { display: inline; margin-left: 2px; font-size: 11px; }
  .booking-dates { grid-template-columns: 1fr; gap: 20px; }
  .booking-date-row { grid-template-columns: minmax(0, 1fr) 112px; gap: 12px; }
  .booking-transfer-choices { gap: 8px; }
  .booking-transfer-choices label { padding: 12px 10px; gap: 7px; font-size: 14px; }
  .booking-quote { padding: 18px; }
  .booking-quote > div { display: block; }
  .booking-quote > div > span { display: block; max-width: none; }
  .booking-quote strong { display: block; margin-top: 8px; font-size: 36px; }
  .booking-actions { flex-direction: column-reverse; gap: 10px; margin-top: 22px; }
  .booking-actions .button, .booking-actions .button-secondary { min-width: 0; width: 100%; }
  .booking-field-grid { grid-template-columns: 1fr; gap: 18px; }
  .booking-counter-grid { gap: 10px; }
  .booking-counter-grid .field > span { font-size: 12px; }
  .booking-review > div { grid-template-columns: 1fr; gap: 5px; padding: 13px 0; }
  .booking-review dd { font-size: 15px; }
  .booking-review-price { padding: 18px; }
  .booking-complete .button { width: 100%; font-size: 14px; }
  .inquiry-layout { grid-template-columns: 1fr; gap: 20px; }
  .inquiry-form { padding: 22px 18px; }
  .inquiry-intro > p { font-size: 16px; }
}
@media (max-width: 360px) {
  .booking-form { padding: 20px 14px; }
  .booking-steps { gap: 8px; }
  .booking-steps li { flex: 1; min-width: 0; flex-direction: column; gap: 6px; font-size: 11px; text-align: center; }
  .booking-intro h1 { font-size: 31px; }
  .booking-demo-note { padding: 14px; font-size: 13px; }
  .booking-choice { gap: 8px; padding: 12px 10px; }
  .booking-choice strong { font-size: 14px; }
  .booking-choice > b small { display: block; }
  .booking-transfer-choices { flex-direction: column; }
  .booking-date-row { grid-template-columns: minmax(0, 1fr) 96px; gap: 8px; }
  .booking-form .field input { padding-left: 9px; padding-right: 9px; }
  .booking-calendar { width: calc(100vw - 24px) !important; max-width: 308px; }
  .booking-calendar .flatpickr-innerContainer, .booking-calendar .flatpickr-rContainer, .booking-calendar .flatpickr-days, .booking-calendar .dayContainer { width: 100% !important; min-width: 0; max-width: 100%; }
}
@media (prefers-reduced-motion: no-preference) {
  .booking-choice, .booking-transfer-choices label { transition: border-color .16s, background-color .16s; }
}

.booking-consents{margin:24px 0;font-size:14px;line-height:1.7}
.booking-consents>label{display:flex;gap:12px;align-items:flex-start;margin:16px 0}
.booking-consents input[type=checkbox]{appearance:auto;width:22px;height:22px;flex:0 0 22px;margin-top:2px;accent-color:#006daa}
.booking-consents a{text-decoration:underline;color:#00669b}
.booking-submit-consent{margin-top:12px}
.booking-submit-consent small{display:block;margin-top:4px;font-size:13px;line-height:1.6}
.booking-submit-consent>label{padding:8px 0;cursor:pointer}
.booking-honeypot{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.receipt-number{font-size:24px;font-weight:800;color:#006daa;overflow-wrap:anywhere}
