.booking-panel {
  max-width: 1100px;
  margin-inline: auto;
}
.booking-panel fieldset {
  margin-block: 1.5rem;
  padding: 1rem 0;
  border: 0;
}
.booking-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}
.booking-slots button[aria-pressed="true"] {
  background: var(--bs-primary);
  color: #fff;
}
.booking-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.booking-admin-nav {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.booking-admin-card {
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  padding: 1rem;
  margin: 1rem 0;
}
.booking-admin-table {
  width: 100%;
  border-collapse: collapse;
}
.booking-admin-table td,
.booking-admin-table th {
  padding: 0.5rem;
  text-align: left;
  border-bottom: 1px solid var(--bs-border-color);
}
.booking-admin-scroll {
  overflow: auto;
}
.booking-panel [role="status"]:not(:empty) {
  padding: 0.8rem;
  border-left: 3px solid #3a9b59;
  background: var(--bs-tertiary-bg);
  margin-block: 1rem;
}
.booking-panel [hidden] {
  display: none !important;
}
.booking-confirmation{width:min(36rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;margin:auto;padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--c-line);border-radius:var(--c-radius);color:var(--c-text);background:var(--c-surface);box-shadow:0 24px 70px rgba(15,23,42,.25)}
.booking-confirmation::backdrop{background:rgba(15,23,42,.58)}
.booking-confirmation-symbol{display:block;font-size:2rem;color:var(--c-green);margin-bottom:.8rem}
.booking-confirmation dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem 1rem;margin-block:1.25rem}
.booking-confirmation dd{margin:0;overflow-wrap:anywhere}
.booking-confirmation-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.booking-confirmation-actions>*{min-height:44px;max-width:100%;white-space:normal}
.booking-pending-indicator{display:inline-block;inline-size:1em;block-size:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.15em;margin-inline-end:.5em}
@media(prefers-reduced-motion:no-preference){.booking-confirmation[open]{animation:booking-appear .18s ease-out}.booking-pending-indicator{animation:booking-spin .9s linear infinite}@keyframes booking-appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes booking-spin{to{transform:rotate(360deg)}}}
@media(max-width:380px){.booking-confirmation dl{grid-template-columns:minmax(0,1fr);gap:.25rem}.booking-confirmation dd{margin-bottom:.5rem}.booking-confirmation-actions>*{width:100%}}
.booking-admin-card textarea {
  font-family: monospace;
  font-size: 0.85rem;
}
@media (max-width: 600px) {
  .booking-panel .btn {
    min-height: 44px;
  }
  .booking-admin-nav {
    gap: 0.75rem;
  }
  .booking-admin-table {
    font-size: 0.875rem;
  }
}

/* v7.3.2: one compact same-page process; native date picker retained. */
.booking-page-intro{max-width:60rem;margin-bottom:clamp(1.25rem,3vw,2rem)}
.booking-page-intro h1{font-size:clamp(1.8rem,3vw,2.8rem);margin-block:.5rem .75rem}
.booking-page-intro p{max-width:65ch;color:var(--bs-secondary-color);margin-bottom:.5rem}
.booking-progress{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;padding:0;margin:0 0 1.25rem;counter-reset:none}
.booking-progress li{padding:.8rem;border:1px solid var(--c-line);border-radius:12px;display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:.95rem;background:var(--c-surface-soft)}
.booking-progress span{flex:none;display:grid;place-items:center;width:1.8rem;height:1.8rem;border:1px solid var(--c-line);border-radius:50%}
.booking-progress [aria-current=step]{border-color:var(--c-blue);color:var(--c-blue);box-shadow:inset 0 -2px var(--c-blue)}
.booking-progress .is-complete{border-color:var(--c-green)}
.booking-progress .is-complete span{background:var(--c-green);color:#fff}
.booking-form>fieldset{border:1px solid var(--c-line);border-radius:14px;padding:clamp(1rem,2vw,1.5rem);margin-bottom:1rem;background:var(--c-surface)}
.booking-form legend{float:none;width:auto;padding-inline:.3rem;font-weight:700}
.booking-form #bookingType{border-left:4px solid var(--c-blue)}
#ansBooking .booking-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));gap:.65rem}
#ansBooking .booking-slots button{min-height:48px;border-radius:10px;white-space:normal}
#ansBooking .booking-slots button[aria-pressed=true]{background:#2167aa;color:white;border-color:#2167aa;box-shadow:inset 0 0 0 2px currentColor;font-weight:700}
.booking-form :is(button,input,select,textarea):focus-visible{outline:3px solid var(--c-blue);outline-offset:3px}
@media(max-width:575.98px){.booking-progress{gap:.35rem}.booking-progress li{display:block;padding:.65rem .45rem;font-size:.8rem;line-height:1.35}.booking-progress span{margin-bottom:.4rem}.booking-panel{padding:0}.booking-form>fieldset{padding:1rem}.booking-progress [aria-current=step]{color:var(--c-text)}}

.site-body .booking-page-intro h1{font-size:clamp(1.8rem,3vw,2.8rem)}
.booking-page-intro,.booking-page-body{max-width:68.75rem;margin-inline:auto}

.booking-progress [aria-current=step]{color:var(--c-text)}
.booking-progress .is-complete span{background:color-mix(in srgb,var(--c-green) 14%,var(--c-surface));color:var(--c-text);border-color:var(--c-green)}

/* v7.3.3: native single-modal wizard, inner scrolling and persistent controls. */
#ansBooking .booking-assistant{position:fixed;inset-inline:0;inset-block-end:auto;top:var(--booking-top,1rem);margin:0 auto;width:min(64rem,calc(100% - 2rem));max-width:none;max-height:calc(var(--booking-vh,100dvh) - 1rem);padding:0;border:1px solid var(--c-line);border-radius:var(--c-radius);background:var(--c-surface);color:var(--c-text);box-shadow:0 24px 70px rgba(15,23,42,.25);overflow:hidden}
#ansBooking .booking-assistant[open]{display:flex;flex-direction:column}
#ansBooking .booking-assistant::backdrop{background:rgba(15,23,42,.58)}
#ansBooking .booking-assistant-header,#ansBooking .booking-assistant-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex:none;padding:1rem 1.25rem;background:var(--c-surface)}
#ansBooking .booking-assistant-header{border-bottom:1px solid var(--c-line)}
#ansBooking .booking-assistant-header h2{min-width:0;overflow-wrap:anywhere}
#ansBooking .booking-assistant-header>button{flex:none}
#ansBooking .booking-assistant-nav{border-top:1px solid var(--c-line);justify-content:flex-end;flex-wrap:wrap}
#ansBooking .booking-assistant-nav #bookingBack{margin-inline-end:auto}
#ansBooking .booking-assistant-body{padding:1.25rem;overflow:auto;overscroll-behavior:contain;min-height:0;scroll-padding-block:1rem;overflow-wrap:anywhere}
#ansBooking .booking-form>fieldset{margin:0;border:0;padding:.25rem;background:transparent;min-width:0}
#ansBooking .booking-form{margin:0}
#ansBooking .booking-assistant .booking-progress{margin-bottom:1rem}
#ansBooking .booking-assistant .booking-confirmation{width:100%;max-height:none;overflow:visible;margin:0;padding:.25rem;border:0;box-shadow:none}
#ansBooking .booking-assistant[data-view=result]{width:min(36rem,calc(100% - 2rem))}
#ansBooking .booking-assistant :focus-visible{outline:3px solid var(--c-blue);outline-offset:3px}
#ansBooking .booking-assistant-header h2:focus{outline:none}
#ansBooking .booking-assistant .booking-progress li{font-size:.85rem;padding:.6rem}
#ansBooking .booking-open{min-height:3.25rem;padding-inline:1.5rem}
@media(max-width:575.98px){#ansBooking .booking-assistant[open]{width:calc(100% - 1rem);height:calc(var(--booking-vh,100dvh) - 1rem)}#ansBooking .booking-assistant-header,#ansBooking .booking-assistant-nav{padding:.65rem;gap:.5rem}#ansBooking .booking-assistant-header h2{font-size:1.1rem}#ansBooking .booking-assistant-body{padding:.85rem}#ansBooking .booking-assistant-nav .btn{padding:.6em .7em;font-size:.9rem}#ansBooking .booking-assistant[data-view=result]{height:auto}#ansBooking .booking-progress span{width:1.5rem;height:1.5rem}#ansBooking .booking-assistant .booking-progress li{font-size:.75rem;padding:.4rem}}
