.booking-calendar{padding:32px;border:1px solid #dce5de;border-radius:12px;background:#fff}.booking-calendar-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.booking-calendar-top h2{margin:0;font-size:32px}.booking-calendar-top .stay-eyebrow{margin-bottom:8px}.booking-month-nav{display:flex;gap:8px}.booking-month-nav button{border:1px solid #dce5de;background:#fff;color:#163b2c;width:40px;height:40px;border-radius:8px}.booking-month-nav button:disabled{opacity:.35}.booking-months{display:grid;grid-template-columns:1fr 1fr;gap:36px}.booking-month h3{font-size:19px;text-transform:capitalize;text-align:center;margin:0 0 16px}.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.booking-weekday{text-align:center;color:#7a857e;font-size:12px;padding-bottom:8px}.booking-day{border:0;border-radius:6px;min-height:42px;background:#edf5ef;color:#163b2c;font:inherit;cursor:pointer}.booking-day:hover:enabled{background:#d1e8d9}.booking-day:disabled{cursor:default;opacity:.45;background:#f0f0f0;color:#868e88;text-decoration:line-through}.booking-day.is-busy:enabled{background:#f1f1ee;color:#64736a}.booking-day.is-in-range{background:#d1e8d9}.booking-day.is-selected{background:#00884f!important;color:white!important}.booking-calendar-status{font-size:13px;color:#52675a;min-height:22px;margin:16px 0}.booking-calendar-form{display:grid;grid-template-columns:1fr 1fr 120px;gap:16px;border-top:1px solid #dce5de;padding-top:20px}.booking-calendar-form span,.booking-calendar-form label{display:block;font-size:13px;color:#52675a}.booking-calendar-form strong{display:block;font-size:17px;margin-top:6px;color:#163b2c}.booking-calendar-form select{display:block;width:100%;border:1px solid #ccd9ce;border-radius:6px;padding:6px 10px;background:white;color:#163b2c;font-size:16px;margin-top:6px}.booking-calendar-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px}.booking-calendar-bottom p{font-size:23px;font-weight:700;margin:0 0 6px}.booking-calendar-bottom small{font-size:12px;color:#64736a}.booking-calendar [aria-disabled=true]{opacity:.45;cursor:default;pointer-events:none}.booking-category-note{font-size:14px;color:#52675a;background:#eef4ef;padding:12px 16px;border-radius:6px}.booking-calendar-fallback{margin:20px 0 0;font-size:13px}.booking-calendar-fallback a{color:#52675a}.booking-calendar button:focus-visible{outline:3px solid #bc8950;outline-offset:2px}
.booking-calendar-bottom>div{flex:1;min-width:0}.booking-calendar-bottom small{display:block;max-width:680px;line-height:1.6}.booking-calendar-bottom small a{color:#41634f;text-decoration:underline;text-underline-offset:3px}.booking-calendar-bottom>.btn{flex-shrink:0;max-width:100%;white-space:normal}
.booking-calendar-form input[type=date]{display:block;width:100%;min-width:0;border:1px solid #ccd9ce;border-radius:6px;padding:8px 10px;background:white;color:#163b2c;font:inherit;font-size:16px;margin-top:6px;min-height:40px}.booking-calendar-form select{min-height:40px}.booking-calendar-form input:focus-visible{outline:3px solid #bc8950;outline-offset:2px}
.booking-calendar-fallback{margin:0 0 20px}.booking-calendar-fallback[hidden]{display:none!important}.booking-calendar-fallback .btn{color:#fff;font-size:16px}
.booking-calendar-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;margin:0;padding:24px;text-align:center;background:#eef4ef;border-radius:8px}.booking-calendar-fallback p{margin:0;color:#52675a;font-size:16px;line-height:1.5}.booking-calendar[data-calendar-state=fallback] .booking-months,.booking-calendar[data-calendar-state=error] .booking-months,.booking-calendar[data-calendar-state=fallback] .booking-month-nav,.booking-calendar[data-calendar-state=error] .booking-month-nav,.booking-calendar[data-calendar-state=fallback] .booking-calendar-form,.booking-calendar[data-calendar-state=error] .booking-calendar-form,.booking-calendar[data-calendar-state=fallback] .booking-calendar-bottom,.booking-calendar[data-calendar-state=error] .booking-calendar-bottom,.booking-calendar[data-calendar-state=fallback] .booking-calendar-status,.booking-calendar[data-calendar-state=error] .booking-calendar-status{display:none!important}.booking-calendar[data-calendar-state=fallback] .booking-months-wrap,.booking-calendar[data-calendar-state=error] .booking-months-wrap{min-height:210px}
.booking-months-wrap{position:relative;min-height:300px}.booking-calendar-loader{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:rgba(255,255,255,.9);border-radius:8px;color:#163b2c;text-align:center;padding:20px;font-size:16px}.booking-calendar-loader[hidden]{display:none!important}[data-calendar-loading] .booking-months{opacity:.2;pointer-events:none}[data-calendar-loading] .booking-day:disabled{text-decoration:none}.booking-calendar-spinner{width:34px;height:34px;border:3px solid #dce5de;border-top-color:#00884f;border-radius:50%;animation:booking-calendar-spin .8s linear infinite}@keyframes booking-calendar-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking-calendar-spinner{animation:none}}
@media(max-width:767px){.booking-calendar{padding:20px}.booking-months{gap:24px;grid-template-columns:1fr}.booking-calendar-top h2{font-size:27px}.booking-calendar-form{grid-template-columns:1fr 1fr}.booking-calendar-form label{min-width:0}.booking-calendar-form label:last-child{grid-column:1/-1;max-width:140px}.booking-calendar-bottom{align-items:stretch;flex-direction:column;gap:16px}.booking-calendar-bottom .btn{width:100%}.booking-day{min-height:42px}}
