.booking-section { scroll-margin-top: 80px; }
.booking-layout { display:grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap:clamp(32px,6vw,100px); align-items:start; }
.booking-intro h2 { max-width:14ch; text-wrap:balance; }
.booking-card { background:#f8f9f5; color:#17271d; border:1px solid rgba(23,39,29,.12); border-radius:18px; padding:clamp(20px,3vw,38px); box-shadow:0 24px 70px rgba(0,0,0,.14); }
.booking-card :focus-visible { outline:2px solid #567a40; outline-offset:3px; }
.booking-steps { display:flex; gap:8px; list-style:none; padding:0 0 20px; margin:0 0 26px; border-bottom:1px solid #d9dfd3; }
.booking-steps li { flex:1; font:500 11px/1.3 'DM Mono',monospace; color:#7b857a; text-transform:uppercase; }
.booking-steps li.active { color:#17271d; font-weight:700; }
.booking-steps li.active::before { content:''; display:block; width:20px; height:3px; margin-bottom:9px; border-radius:3px; background:#779b5a; }
.booking-panel[hidden], .booking-form label[hidden], .booking-feedback[hidden], .booking-retry[hidden] { display:none !important; }
.booking-panel h3 { font:700 clamp(23px,2.5vw,30px)/1.2 Manrope,sans-serif; margin:0 0 8px; }
.booking-panel > p { color:#526254; margin:0 0 22px; line-height:1.6; }
.booking-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; min-height:54px; }
.booking-options:empty { min-height:0; }
.booking-option { cursor:pointer; text-align:left; border:1px solid #c9d3c4; background:#fff; color:#17271d; border-radius:8px; padding:15px; min-height:54px; font:600 14px/1.3 'DM Sans',sans-serif; transition:background .2s,border-color .2s,transform .2s; }
.booking-option:hover:not(:disabled), .booking-option:focus-visible { background:#e8f0dc; border-color:#719052; transform:translateY(-2px); }
.booking-option.selected { background:#e8f0dc; border-color:#567a40; box-shadow:inset 0 0 0 1px #567a40; }
.booking-option:disabled { opacity:.38; cursor:not-allowed; }
.booking-feedback { margin-top:12px; padding:22px; border:1px solid #d7dfd1; border-radius:9px; background:#fff; color:#526254; line-height:1.6; }
.booking-retry { margin-top:16px; padding:0; border:0; background:none; color:#45653c; font:700 13px 'DM Sans',sans-serif; cursor:pointer; }
.booking-retry span { margin-left:5px; }
.booking-times { grid-template-columns:repeat(4,minmax(0,1fr)); }
.booking-times .booking-option { text-align:center; }
.booking-back { border:0; background:none; padding:0; margin:0 0 20px; color:#45653c; cursor:pointer; font:600 13px 'DM Sans',sans-serif; }
.booking-form { display:grid; gap:16px; }
.booking-form > label { display:grid; gap:6px; font:600 13px 'DM Sans',sans-serif; }
.booking-form label span { font-weight:400; }
.booking-form input:not([type=radio]) { width:100%; box-sizing:border-box; border:1px solid #c7d0c3; background:#fff; border-radius:7px; padding:13px 14px; font:400 16px 'DM Sans',sans-serif; color:#17271d; }
.booking-form input:focus-visible { outline:2px solid #719052; outline-offset:2px; }
.booking-form input[aria-invalid="true"] { border-color:#9a382e; }
.booking-field-error { min-height:1.25em; color:#9a382e; font:500 12px/1.4 'DM Sans',sans-serif; }
.booking-field-error:empty { display:none; }
.booking-form fieldset { border:0; padding:0; margin:0; display:flex; gap:16px; flex-wrap:wrap; }
.booking-form legend { font:600 13px 'DM Sans',sans-serif; margin-bottom:8px; }
.booking-form fieldset label { display:flex; align-items:center; gap:5px; cursor:pointer; }
.booking-form .button { justify-self:start; margin-top:8px; }
.booking-form .button:disabled { opacity:.65; cursor:wait; }
.booking-status { color:#9a382e !important; margin:0 !important; min-height:1.4em; }
.booking-status:empty { min-height:0; }
.booking-success .eyebrow { color:#608349; }
.booking-success h3 { margin:10px 0 20px; }
.booking-success-icon { display:grid; place-items:center; width:48px; height:48px; margin-bottom:26px; border-radius:50%; background:#dcebcf; color:#2f5d2f; font:700 25px 'DM Sans',sans-serif; }
.booking-success-when { padding:16px 18px; border:1px solid #d7dfd1; border-radius:9px; background:#fff; color:#17271d !important; font-weight:700; }
@media(max-width:850px) { .booking-layout { grid-template-columns:1fr; } .booking-intro h2 { max-width:none; } }
@media(max-width:500px) { .booking-card { padding:22px 16px; border-radius:14px; } .booking-steps { gap:5px; } .booking-steps li { font-size:9px; } .booking-times { grid-template-columns:repeat(3,minmax(0,1fr)); } .booking-options:not(.booking-times) { grid-template-columns:1fr; } .booking-form .button { width:100%; justify-content:center; } }
@media(prefers-reduced-motion:reduce) { .booking-option { transition:none; } }

.booking-interest { display: inline-block; margin: 18px 0 0; padding: 9px 14px; border: 1px solid #5f7f4d; color: #d7e9bd; font: 500 .78rem/1.4 "DM Mono", monospace; letter-spacing: .03em; }
.booking-interest strong { color: #fff; font-weight: 500; }
.booking-interest[hidden] { display: none; }
