.availability-open{overflow:hidden}
.availability-calendar{box-sizing:border-box;width:min(460px,calc(100vw - 28px));max-height:calc(100dvh - 32px);margin:auto;padding:34px;border:1px solid #d5c1a1;border-radius:4px;background:#f5efe6;color:#1e1712;box-shadow:0 24px 90px #1e17124d;font-family:'DM Sans',sans-serif;overflow-y:auto;overscroll-behavior:contain}
.availability-calendar::backdrop{background:#201912a6;backdrop-filter:blur(5px)}
.availability-calendar button{font:inherit;cursor:pointer;touch-action:manipulation}
.availability-calendar :focus-visible,.availability-open-button:focus-visible{outline:2px solid #9a7432;outline-offset:3px}
.availability-calendar .availability-close{position:absolute;right:12px;top:9px;border:0;background:none;color:#5c5048;font-size:26px;width:44px;height:44px}
.availability-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:#89662b;margin:0 0 18px}
.availability-calendar h2{font-family:'Playfair Display',Georgia,serif;font-size:36px;font-weight:500;line-height:1.2;margin:0 0 16px;letter-spacing:-.03em}
.availability-calendar h2 em{color:#9a7432;font-weight:500}
#availability-description{font-size:13px;line-height:1.7;color:#5c5048;margin:0 0 24px}
.availability-navigation{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;border-top:1px solid #d8cbbb;padding-top:14px;margin-bottom:10px}
.availability-navigation h3{font:500 19px 'Playfair Display',Georgia,serif;text-align:center;margin:0}
.availability-navigation button{height:44px;background:none;border:1px solid #d8cbbb;color:#1e1712;border-radius:50%;font-size:20px}
.availability-calendar button:disabled{cursor:default}
.availability-navigation button:disabled{opacity:.3}
.availability-weekdays,.availability-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.availability-weekdays{font-size:10px;letter-spacing:.06em;color:#786a5e;margin-bottom:8px}
.availability-days button{min-height:44px;padding:0;border:1px solid #c6ad85;border-radius:2px;color:#1e1712;background:#e8dcc8;font-size:13px;transition:background .15s,color .15s}
.availability-days button:not(:disabled):hover,.availability-days button[aria-pressed=true]{background:#29221e;color:#faf6ee;border-color:#29221e}
.availability-days button:disabled{background:#eee8e0;color:#a49b90;border-color:transparent}
.availability-days button[aria-current=date]{text-decoration:underline;text-underline-offset:4px}
.availability-legend{display:flex;flex-wrap:wrap;gap:18px;margin:18px 0;font-size:10px;color:#5c5048}
.availability-legend span{display:flex;align-items:center;gap:7px}
.availability-legend i{width:10px;height:10px;background:#e8dcc8;border:1px solid #c6ad85}
.availability-legend span+span i{background:#eee8e0;border-color:#eee8e0}
.availability-hours{font-size:11px;line-height:1.7;border-top:1px solid #d8cbbb;padding-top:15px;color:#5c5048;margin:0 0 8px}
.availability-note{font-size:11px;line-height:1.7;color:#786a5e;margin:0}
.availability-open-button{display:block;background:none;border:0;border-bottom:1px solid #9a7432;padding:5px 0;margin-top:8px;color:#89662b;font:12px 'DM Sans',sans-serif;cursor:pointer}
input[data-calendar-ready]{cursor:pointer}
@media(max-width:400px){.availability-calendar{padding:28px 18px}.availability-calendar h2{font-size:32px}.availability-days{gap:2px}}
@media(prefers-reduced-motion:reduce){.availability-days button{transition:none}}
