/* Maintained booking layout. Native schedule inputs work on touch and keyboard. */
:root{--book-ink:#2c1747;--book-muted:#665d70;--book-paper:#fffdf8;--book-line:#e4dfe7;--book-lime:#d2f36b}
body{margin:0;background:#faf8f3;color:var(--book-ink);font-family:Arial,sans-serif}
.booking-page{max-width:1120px;margin:0 auto;padding:120px 24px 64px}
.skip-link{position:fixed;top:8px;left:16px;transform:translateY(-200%);z-index:1000}.skip-link:focus{transform:translateY(0)}
.booking-quote-review{margin:0 0 22px}.booking-quote-review strong{display:block;color:var(--book-ink);font-size:1.2rem;margin-bottom:5px}
.booking-intro{max-width:750px;margin-bottom:24px}.booking-intro h1{font-size:clamp(1.9rem,4vw,2.7rem);line-height:1.1;letter-spacing:-.03em;margin:10px 0 14px}.booking-intro p{color:var(--book-muted);line-height:1.65;margin:0}.booking-eyebrow{font-size:.73rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#68518a}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px;align-items:start}
.booking-form,.booking-confirm,.booking-summary{border:1px solid var(--book-line);border-radius:22px;background:var(--book-paper);padding:28px;box-shadow:0 8px 35px #38225305}
.booking-progress{display:flex;gap:20px;border-bottom:1px solid var(--book-line);padding-bottom:18px;margin-bottom:24px;font-size:.88rem;color:var(--book-muted)}.booking-progress strong{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:6px;border-radius:50%;background:#eee9f1}.booking-progress .is-active{font-weight:700;color:var(--book-ink)}.booking-progress .is-active strong{background:var(--book-ink);color:#fff}
.booking-service-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px}.booking-service-tabs button{flex:1;min-width:110px;padding:12px 10px;border:1px solid var(--book-line);border-radius:12px;background:#fff;color:var(--book-ink);font:inherit;font-size:.85rem;cursor:pointer}.booking-service-tabs button[aria-pressed=true]{background:var(--book-ink);color:#fff;border-color:var(--book-ink)}
.booking-field{display:flex;flex-direction:column;gap:8px;margin:0 0 18px;font-size:.86rem;font-weight:700}.booking-field input,.booking-field select,.booking-field textarea{width:100%;min-height:48px;box-sizing:border-box;padding:13px 12px;font:inherit;font-size:1rem;font-weight:400;color:var(--book-ink);border:1px solid #c9c0d1;border-radius:10px;background:#fff}.booking-field textarea{resize:vertical;min-height:80px}.booking-field input:focus,.booking-field select:focus,.booking-field textarea:focus{outline:3px solid #d6cbea;outline-offset:1px;border-color:#655080}
.booking-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.booking-mode{display:flex;gap:22px;margin:6px 0 22px;padding:0;border:0}.booking-mode legend{font-size:.86rem;font-weight:700;margin-bottom:10px}.booking-mode label,.booking-checkbox{display:flex;gap:8px;align-items:center;font-size:.92rem;line-height:1.5}.booking-checkbox{margin:8px 0 18px}.booking-checkbox input,.booking-mode input{width:18px;height:18px;accent-color:var(--book-ink);flex-shrink:0}
.booking-help{font-size:.82rem;color:var(--book-muted);line-height:1.6;margin:-7px 0 18px}.booking-field small{font-weight:400;color:var(--book-muted);line-height:1.5}.booking-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:20px}.booking-button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:13px 22px;border-radius:12px;border:1px solid var(--book-ink);font:inherit;font-weight:700;background:var(--book-ink);color:#fff;text-decoration:none;cursor:pointer;box-sizing:border-box}.booking-button--secondary{background:transparent;color:var(--book-ink)}.booking-button--lime{background:var(--book-lime);border-color:var(--book-lime);color:var(--book-ink)}.booking-button:disabled{opacity:.55;cursor:wait}.booking-button:focus-visible{outline:3px solid #9375b6;outline-offset:3px}
.booking-summary{position:sticky;top:20px;padding:0;overflow:hidden}.booking-summary img{width:100%;height:185px;display:block;object-fit:contain;background:#f0edf4}.booking-summary__body{padding:24px}.booking-summary h2{font-size:1.1rem;margin:0 0 8px}.booking-summary p{line-height:1.55;color:var(--book-muted);font-size:.9rem}.booking-fare{font-size:2.15rem;font-weight:700;line-height:1.15;margin:12px 0 8px;color:var(--book-ink)}.booking-fare-label{font-size:.73rem;text-transform:uppercase;letter-spacing:.09em}.booking-summary ul{padding-left:18px;color:var(--book-muted);font-size:.85rem;line-height:1.6}.booking-summary a{color:var(--book-ink)}.booking-summary hr{border:0;border-top:1px solid var(--book-line);margin:22px 0}.booking-summary__trust{font-size:.8rem;color:var(--book-muted);line-height:1.65}
.booking-error{border:1px solid #c57b78;background:#fff0ee;padding:12px;border-radius:10px;color:#812d29;font-size:.9rem;line-height:1.5;margin:16px 0}.booking-notice{background:#f3f0f6;border-radius:12px;padding:14px;font-size:.85rem;line-height:1.65;color:var(--book-muted)}.booking-confirm h2{font-size:1.7rem;line-height:1.2;margin:12px 0}.booking-confirm p,.booking-confirm li{line-height:1.65}.booking-reference{padding:16px;border-radius:12px;background:#f3f0f6;display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0}.booking-reference strong{overflow-wrap:anywhere}.booking-confirm .booking-actions{align-items:stretch}.booking-confirm__status{font-weight:700}.booking-footer{max-width:1120px;margin:0 auto;padding:24px;display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid var(--book-line);font-size:.85rem}.booking-footer a{color:var(--book-muted)}
.booking-page [hidden]{display:none!important}.booking-form h2{font-size:1.35rem;margin:0 0 20px}.booking-required{font-size:.8rem;color:var(--book-muted);margin-top:16px}.booking-honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:760px){.booking-page{padding:96px 16px 40px}.booking-layout{grid-template-columns:1fr}.booking-form,.booking-confirm{padding:20px}.booking-summary{position:static}.booking-summary img{height:150px}.booking-intro{margin-bottom:20px}.booking-summary__body{padding:20px}.booking-actions .booking-button{flex:1}.booking-progress{gap:14px;font-size:.83rem}}
@media(max-width:430px){.booking-row{grid-template-columns:1fr;gap:0}.booking-service-tabs button{min-width:86px;font-size:.79rem;padding:11px 6px}.booking-progress{gap:12px}.booking-mode{gap:16px}.booking-summary img{height:125px}}
