.availability-section{padding:82px 7vw;background:var(--cream)}
.availability-heading{max-width:720px;margin:0 auto 30px;text-align:center}
.availability-heading .eyebrow{color:var(--coral)}
.availability-heading h2{font:400 clamp(36px,4vw,53px)/1.13 var(--serif);letter-spacing:-.025em;margin:15px 0}
.availability-heading p{max-width:600px;margin:0 auto;color:var(--muted);line-height:1.8;font-size:13px}
.availability-card{max-width:760px;margin:0 auto;background:var(--sand);border:1px solid var(--line);padding:28px 32px 26px}
.availability-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:16px;margin-bottom:20px}
.availability-toolbar h3{margin:0;text-align:center;font:400 27px var(--serif)}
.availability-month-button{width:42px;height:42px;border:1px solid var(--line);background:var(--cream);color:var(--ink);font-size:21px;cursor:pointer}
.availability-month-button:hover:not(:disabled){border-color:var(--sea);color:var(--sea)}
.availability-month-button:disabled{opacity:.35;cursor:not-allowed}
.availability-legend{display:flex;justify-content:center;gap:23px;flex-wrap:wrap;margin:0 0 22px;color:var(--muted);font-size:10px}
.availability-legend span{display:inline-flex;align-items:center;gap:8px}
.availability-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--cream);border:1px solid #b9c9c2}
.availability-legend .legend-busy{background:#e9dcd5;border-color:#c79b88}
.availability-legend .legend-selected{background:var(--ink);border-color:var(--ink)}
.availability-weekdays,.availability-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.availability-weekdays{margin-bottom:6px}
.availability-weekdays span{text-align:center;color:var(--muted);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:8px 0}
.availability-day,.availability-empty{min-height:47px}
.availability-day{position:relative;border:1px solid transparent;background:transparent;color:var(--ink);font:400 13px var(--sans);cursor:pointer}
.availability-day.available{background:var(--cream);border-color:#d4ded8}
.availability-day.pending{background:#f0efea;color:#a1aaa5;cursor:wait}
.availability-day.available:hover:not(:disabled){border-color:var(--sea);box-shadow:inset 0 0 0 1px var(--sea)}
.availability-day.unavailable{background:#eee4df;color:#927568;text-decoration:line-through;cursor:not-allowed}
.availability-day.past{color:#9aa5a1;cursor:not-allowed}
.availability-day.in-range{background:#dce9e3;border-color:#b4ccc0}
.availability-day.selected{background:var(--ink);border-color:var(--ink);color:white;text-decoration:none}
.availability-day:disabled{opacity:1}
.availability-status{min-height:40px;margin:20px 0 0;text-align:center;color:var(--muted);font-size:11px;line-height:1.6}
.availability-updated{display:block;margin-top:7px;color:#81918a;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.availability-actions{display:flex;justify-content:center;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}
.availability-inquiry[hidden],.availability-retry[hidden]{display:none}
.availability-retry{border:0;background:transparent;color:var(--sea);text-decoration:underline;font:inherit;cursor:pointer}
.availability-disclaimer{max-width:760px;margin:17px auto 0;color:var(--muted);text-align:center;font-size:10px;line-height:1.6}
@media(max-width:560px){.availability-section{padding:65px 6vw}.availability-card{padding:22px 13px}.availability-toolbar{gap:8px}.availability-toolbar h3{font-size:23px}.availability-month-button{width:38px;height:38px}.availability-weekdays,.availability-days{gap:3px}.availability-day,.availability-empty{min-height:42px}.availability-legend{gap:13px}}
