.availability-card[hidden]{display:none!important}
.availability-card{margin:32px 0;padding:clamp(20px,3.5vw,38px);border:1px solid #c7a9e5;border-radius:30px;background:linear-gradient(135deg,#fffdfd 5%,#f2eaff 75%,#edf6d6);box-shadow:0 18px 60px #4e206f0c;color:#29133d}
.availability-card .booking-heading{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;margin-bottom:26px}
.availability-card h3{font:700 clamp(25px,3vw,34px)/1.14 Arial,sans-serif;letter-spacing:-.045em;margin:10px 0 12px}
.availability-card h3 em{font:italic 1.06em Georgia,serif;color:#7934bd}
.availability-card .booking-heading p{font:15px/1.6 Arial,sans-serif;margin:0;color:#6b5776;max-width:520px}
.booking-capacity{flex-shrink:0;padding:10px 15px;border:1px solid #bba2d8;border-radius:24px;background:#fff9;font:13px/1.4 Arial,sans-serif;white-space:nowrap}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(235px,.75fr);gap:24px;align-items:start}
.booking-month{background:#fff9;border:1px solid #e1d3ee;padding:22px;border-radius:24px;min-width:0}
.booking-month-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}
.booking-month-bar h4{font:700 20px/1.2 Arial,sans-serif;text-transform:capitalize;margin:0;color:#29133d}
.booking-month-switch{width:36px;height:36px;border-radius:50%;border:1px solid #c8b1df;background:#fff;color:#69309d;display:grid;place-items:center;cursor:pointer}
.booking-month-switch svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.booking-month-switch:disabled{opacity:.3;cursor:default}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.booking-weekdays{margin-bottom:8px;text-align:center;font:12px/1.5 Arial,sans-serif;color:#8b7699}
.availability-card .booking-day{padding:10px 2px;min-height:64px;min-width:0;border-radius:14px;border:1px solid transparent;background:#f2eef6;color:#aaa1b2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;font:14px Arial,sans-serif;cursor:default;opacity:1;box-shadow:none;transform:none}
.booking-day strong{font:700 19px/1 Arial,sans-serif}
.booking-day small{font:10px/1.2 Arial,sans-serif;white-space:nowrap}
.availability-card .booking-day.available{border-color:#d4c5e2;background:#fff;color:#42225c;cursor:pointer}
.availability-card .booking-day.available:hover{border-color:#8b49c4;background:#eee3fa}
.availability-card .booking-day.in-range{background:#e9f7bf;border-color:#d1e5a1;color:#425128}
.availability-card .booking-day.selected{background:#7835bd;color:white;border-color:#7835bd;box-shadow:0 6px 14px #7835bd25}
.booking-day:focus-visible,.booking-month-switch:focus-visible{outline:3px solid #b6de37;outline-offset:3px}
.booking-legend{display:flex;gap:14px;flex-wrap:wrap;font:11px/1.5 Arial,sans-serif;color:#705b7e;margin-top:18px}
.booking-legend span{display:flex;gap:6px;align-items:center}
.booking-legend i{width:9px;height:9px;border-radius:50%;border:1px solid #c8b3d8;background:#fff}
.booking-legend i.chosen{background:#7835bd;border-color:#7835bd}
.booking-legend i.busy{background:#ded7e6;border-color:#ded7e6}
.booking-selection{padding:25px;border-radius:24px;background:linear-gradient(150deg,#321543,#562273);color:#fff;min-width:0;overflow-wrap:anywhere}
.booking-tag{display:inline-block;font:11px/1.2 Arial,sans-serif;letter-spacing:.12em;color:#d2f985;margin-bottom:24px}
.booking-selection>div>span{display:block;font:13px/1.4 Arial,sans-serif;color:#e2d2ee;margin-bottom:8px}
.booking-selection strong{font:700 clamp(24px,2.5vw,32px)/1.15 Arial,sans-serif;letter-spacing:-.03em}
.booking-duration{display:block;border-left:1px solid #b68bd4;padding:16px 0 16px 14px;margin:12px 0;color:#d2f985;font:12px/1.4 Arial,sans-serif}
.booking-selection p{font:14px/1.5 Arial,sans-serif;margin:22px 0 0;color:#fff}
.booking-selection .small{font:12px/1.6 Arial,sans-serif!important;color:#dfd0e9!important;margin-top:12px}
@media(max-width:700px){.booking-layout{grid-template-columns:1fr;gap:16px}.availability-card .booking-heading{display:block}.booking-capacity{display:inline-block;margin-top:15px}.booking-month{padding:16px}.booking-selection{padding:22px}.booking-selection strong{font-size:27px}.booking-month-bar h4{font-size:18px}.availability-card .booking-day{min-height:54px;border-radius:10px;padding:8px 0}.booking-day strong{font-size:17px}.booking-day small{font-size:8px}.booking-weekdays,.booking-days{gap:4px}.booking-legend{gap:10px;font-size:10px}.availability-card{margin:24px 0;border-radius:24px;padding:16px}.booking-selection .small{font-size:12px!important}}

@media(max-width:700px){.booking-month-bar{gap:6px}.booking-month-bar h4{font-size:14px;white-space:nowrap}.booking-month-switch{width:29px;height:29px}.availability-card .booking-day{min-height:43px;gap:0}.booking-day small{display:none}.booking-day strong{font-size:16px}.booking-day.available::after{content:"";display:block;width:4px;height:4px;border-radius:50%;background:#a6c83d;margin-top:5px}.booking-day.selected::after{background:#d2f985}}
