.booking-shell{min-height:70vh}
.booking-intro{padding:68px 0;background:linear-gradient(125deg,#f7f5ef 58%,#e0ece5 58%)}
.booking-intro-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:60px;align-items:center}
.booking-intro h1{font-family:Georgia,"Noto Serif SC",serif;color:var(--green);font-size:clamp(2.35rem,5vw,4.5rem);line-height:1.14;font-weight:500;margin:16px 0 20px;max-width:790px}
.booking-intro p{font-size:1.08rem;color:#40514c;max-width:720px;margin:0}
.hours-card{background:var(--green);color:#fff;border-radius:16px;padding:28px;box-shadow:var(--shadow)}
.hours-card>strong{font-family:Georgia,"Noto Serif SC",serif;font-size:1.45rem}
.hours-card p{color:#fff;margin:18px 0;line-height:1.5}
.hours-card small{color:#c9ddd5}
.booking-main{padding:58px 0 90px}
.booking-layout{display:grid;grid-template-columns:minmax(0,760px) 300px;gap:42px;align-items:start}
.booking-form,.booking-side{background:#fff;border:1px solid rgba(16,63,53,.12);border-radius:16px;padding:34px;box-shadow:0 14px 45px rgba(16,63,53,.07)}
.form-heading h2,.booking-side h2{font-family:Georgia,"Noto Serif SC",serif;color:var(--green);font-size:1.75rem;margin:0 0 8px}
.form-heading p{color:var(--muted);margin:0 0 26px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{display:flex;flex-direction:column;gap:7px;font-weight:700;color:var(--green)}
.field.full{grid-column:1/-1}
.field input,.field select,.field textarea{width:100%;border:1px solid #b9c8c1;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-weight:400;padding:12px 13px;min-height:48px}
.field textarea{resize:vertical;min-height:112px}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(31,101,86,.18);border-color:var(--green2)}
.field small{font-weight:400;color:var(--muted);line-height:1.5}
.form-error{display:none;margin:22px 0 0;padding:13px 15px;border-radius:8px;background:#fff0ed;color:#8b2f20;border:1px solid #efc6bd}
.form-error.show{display:block}
.submit-button{width:100%;margin-top:24px;font-size:1rem}
.privacy-note{color:var(--muted);font-size:.86rem;line-height:1.55;margin:16px 0 0}
.booking-side{position:sticky;top:104px}
.booking-side ol{padding-left:1.3rem;color:#40514c}
.booking-side li{margin:14px 0}
.booking-side p{border-top:1px solid var(--line);padding-top:20px;margin-top:24px;color:#40514c}
.booking-side a{color:var(--green);font-weight:800}
@media(max-width:850px){.booking-intro-grid,.booking-layout{grid-template-columns:1fr}.booking-side{position:static}.booking-intro{padding:48px 0}.booking-main{padding:38px 0 70px}}
@media(max-width:600px){.field-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.booking-form,.booking-side{padding:24px}.booking-intro h1{font-size:2.5rem}}
