.booking-disclosure{margin:0 0 2rem;padding:1rem;background:#edf2ef;border:1px solid rgba(8,31,41,.16)}
.booking-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem 0;cursor:pointer;list-style:none;color:#0b3448}
.booking-disclosure summary::-webkit-details-marker{display:none}
.booking-disclosure summary::after{content:"+";order:2;color:#a95b2e;font-size:1.5rem;line-height:1}
.booking-disclosure[open] summary::after{content:"−"}
.booking-disclosure summary strong,.booking-disclosure summary small{display:block}
.booking-disclosure summary strong{font-family:Georgia,serif;font-size:clamp(1.2rem,2vw,1.55rem);font-weight:500}
.booking-disclosure summary small{margin-top:.25rem;color:#536871;font-size:.94rem}
.booking-disclosure summary:focus-visible{outline:2px solid #ba6b35;outline-offset:4px}
.booking-disclosure-action{order:1;margin-left:auto;color:#0b4964;font-weight:600;text-decoration:underline;text-underline-offset:.2em;white-space:nowrap}
.booking-calendar{max-width:none;width:100%;margin:0 auto 1rem;padding:1rem 1.2rem;background:#fffefa;border:1px solid rgba(8,31,41,.14)}
.booking-calendar-header{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:.75rem;margin-bottom:.6rem}
.booking-calendar-header h3{margin:0;text-align:center;font-family:inherit;font-size:1rem;font-weight:600}
.booking-month-button{width:42px;height:42px;border:0;border-radius:50%;background:transparent url('/assets/cirrane-open-ring.svg') center/contain no-repeat;color:#082b3a;font-size:1.5rem;line-height:1;cursor:pointer}
.booking-month-button:hover:not(:disabled),.booking-month-button:focus-visible{background-color:#e4ede8;outline:2px solid #ba6b35;outline-offset:2px}
.booking-month-button:disabled{opacity:.35;cursor:not-allowed}
.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem;max-width:560px;margin:0 auto}
.booking-weekday,.booking-day{display:grid;place-items:center;min-height:36px}
.booking-weekday{color:#566971;font-size:.74rem;font-weight:700}
.booking-day{width:min(42px,90%);aspect-ratio:1;justify-self:center;border:0;border-radius:50%;background:transparent;color:#183b49;font:inherit;font-size:.9rem;cursor:pointer}
.booking-day:disabled{color:#a4acae;cursor:default}
.booking-day.has-slots{background:transparent url('/assets/cirrane-open-ring.svg') center/contain no-repeat}
.booking-day.has-slots:hover,.booking-day.has-slots:focus-visible{outline:2px solid #ba6b35;outline-offset:1px;background-color:#f3e6da}
.booking-day[aria-pressed="true"]{background-color:#0b3448;background-image:url('/assets/cirrane-open-ring.svg');color:#fff}
.booking-status{min-height:1.25rem;margin:.6rem 0;color:#536871;text-align:center;font-size:.9rem}
.booking-time-list{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem}
.booking-time-button{min-width:106px;padding:.55rem .7rem;border:1px solid #315369;border-radius:999px;color:#0b3448;background:#fff;font:inherit;font-size:.9rem;cursor:pointer}
.booking-time-button:hover,.booking-time-button:focus-visible,.booking-time-button[aria-pressed="true"]{background:#0b3448;color:white;outline:2px solid #ba6b35;outline-offset:2px}
.booking-form{margin:1rem auto 0;padding-top:1rem;border-top:1px solid rgba(8,31,41,.16)}
.booking-selected-time{margin:0 0 .8rem;color:#0b3448;font-weight:700;text-align:center}
.booking-form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.booking-form-fields label{display:grid;gap:.3rem;color:#183b49;font-size:.92rem;font-weight:600}
.booking-form-fields label span{font-weight:400}
.booking-form-fields input{width:100%;min-height:44px;padding:.6rem;border:1px solid #aab7ba;border-radius:2px;background:white;color:#152f39;font:inherit}
.booking-form-fields input:focus-visible{outline:2px solid #ba6b35;outline-offset:2px}
.booking-form-fields .booking-email,.booking-form-fields .booking-system{grid-column:1/-1}
.booking-submit{display:block;margin:1rem auto .5rem}
.booking-form-note{margin:.5rem 0 0;color:#536871;font-size:.85rem;text-align:center}
.booking-success{padding:1.5rem .75rem;text-align:center}
.booking-success h3{margin:.35rem 0;font-size:1.5rem}
.booking-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
[hidden]{display:none!important}
@media(max-width:640px){.booking-disclosure{padding:.8rem}.booking-disclosure summary{gap:.65rem;padding:.2rem 0}.booking-disclosure summary small{max-width:28ch;font-size:.84rem}.booking-disclosure-action{font-size:.9rem}.booking-calendar{padding:.65rem .45rem}.booking-weekday,.booking-day{min-height:40px}.booking-form-fields{grid-template-columns:1fr}.booking-form-fields .booking-email,.booking-form-fields .booking-system{grid-column:auto}.booking-time-button{flex:1 1 42%}}
@media(prefers-reduced-motion:reduce){.booking-calendar *,.booking-calendar *::before,.booking-calendar *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
