.orwcb-booking{position:relative;max-width:620px;padding:28px;border:1px solid #ddd;border-radius:10px;background:#fff;overflow:visible}
.orwcb-title{font-size:24px;font-weight:700;margin-bottom:20px}
.orwcb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.orwcb-grid label{display:flex;flex-direction:column;gap:7px;font-weight:600}
.orwcb-grid input{width:100%;box-sizing:border-box;padding:12px;border:1px solid #ccc;border-radius:5px;background:#fff;color:#444}
.orwcb-date-wrap{position:relative;display:flex;align-items:stretch}
.orwcb-date-wrap .orwcb-native-date{padding-right:46px;cursor:pointer;background:#fff}
.orwcb-native-date::-webkit-calendar-picker-indicator{opacity:0;pointer-events:none}
.orwcb-native-date[readonly]{cursor:pointer}
.orwcb-calendar-button{position:absolute;right:1px;top:1px;bottom:1px;width:42px;border:0;border-left:1px solid #ddd;background:#f4f5f6;color:#555;border-radius:0 4px 4px 0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.orwcb-calendar-button:hover,.orwcb-calendar-button:focus{background:#eceeef;outline:0}
.orwcb-calendar-button svg{width:17px;height:17px;display:block}
.orwcb-check,.orwcb-book{margin-top:18px;width:100%;padding:14px 18px;border:0;border-radius:5px;cursor:pointer;font-weight:700}
.orwcb-status{margin-top:15px;min-height:22px}
.orwcb-quote{margin-top:24px;padding-top:20px;border-top:1px solid #ddd}
.orwcb-total{font-size:26px;font-weight:800;margin:12px 0}
.orwcb-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Self-contained booking calendar. It intentionally does not depend on jQuery UI,
   so RealHomes/page-builder datepicker styles cannot stop the date fields working. */
.orwcb-calendar-popover[hidden]{display:none!important}
.orwcb-calendar-popover{position:absolute;width:292px;box-sizing:border-box;padding:0;background:#fff;border:1px solid #c9c9c9;border-radius:5px;box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:999999;font-family:inherit;font-size:14px;color:#707070}
.orwcb-calendar-header{position:relative;display:grid;grid-template-columns:38px 1fr 38px;align-items:center;min-height:44px;border-bottom:1px solid #ececec}
.orwcb-calendar-month{text-align:center;font-weight:700;color:#444}
.orwcb-calendar-prev,.orwcb-calendar-next{width:32px;height:32px;margin:auto;border:0;background:transparent;color:#777;cursor:pointer;border-radius:3px;font-size:20px;font-weight:700;line-height:1}
.orwcb-calendar-prev:hover,.orwcb-calendar-next:hover{background:#f1f1f1}
.orwcb-calendar-weekdays,.orwcb-calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}
.orwcb-calendar-weekdays{padding:7px 8px 3px;color:#555;font-weight:700;text-align:center}
.orwcb-calendar-weekdays span{padding:3px 0}
.orwcb-calendar-days{padding:0 8px 7px}
.orwcb-calendar-day{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:32px;padding:0;border:1px solid transparent;background:#fff;color:#747474;font:inherit;cursor:pointer;border-radius:0}
.orwcb-calendar-day:hover:not(:disabled){border-color:#bdbdbd;background:#f7f7f7;color:#333;z-index:2}
.orwcb-calendar-day.is-other-month{color:#aaa}
.orwcb-calendar-day.is-today{border-color:#c5c5c5}
.orwcb-calendar-day.is-disabled{cursor:not-allowed;color:#b8b8b8;background:#fafafa}
.orwcb-calendar-day.is-blocked{background:#dfa0a8;color:#fff;border-color:#dfa0a8}
.orwcb-calendar-day.is-blocked.is-disabled{opacity:.85}
.orwcb-calendar-day.is-turnover-checkout{background:linear-gradient(135deg,#fff 0 49%,#dfa0a8 50% 100%);color:#555;border-color:#d8d8d8}
.orwcb-calendar-day.is-in-range{background:#dedede;color:#555;border-color:#dedede}
.orwcb-calendar-day.is-range-start,.orwcb-calendar-day.is-range-end{background:#777;color:#fff;border-color:#777;font-weight:700;z-index:3}
.orwcb-calendar-day.is-range-start:hover,.orwcb-calendar-day.is-range-end:hover{background:#666;color:#fff;border-color:#666}
.orwcb-calendar-legend{display:flex;align-items:center;gap:12px;padding:8px 13px 11px;color:#555;font-size:12px;border-top:1px solid #eee}
.orwcb-calendar-legend span{display:flex;align-items:center;gap:5px}
.orwcb-legend-swatch{width:14px;height:14px;display:inline-block;border:1px solid #777;box-sizing:border-box}
.orwcb-legend-blocked{background:#c75f6b;border-color:#a74853}
.orwcb-legend-selected{background:#bfbfbf;border-color:#8d8d8d}

@media(max-width:600px){
    .orwcb-grid{grid-template-columns:1fr}
    .orwcb-booking{padding:20px}
    .orwcb-calendar-popover{left:12px!important;right:12px!important;width:auto;max-width:292px}
}

/* v1.1.2: visible-month OwnerRez availability states */
.orwcb-calendar-day.is-loading-day{background:#f6f6f6;color:#bdbdbd;border-color:#f0f0f0}
.orwcb-calendar-popover.is-loading .orwcb-calendar-month::after{content:"";display:inline-block;width:8px;height:8px;margin-left:7px;border:2px solid #c9c9c9;border-top-color:#666;border-radius:50%;vertical-align:1px;animation:orwcb-spin .8s linear infinite}
@keyframes orwcb-spin{to{transform:rotate(360deg)}}

/* v1.1.3: live OwnerRez mirror states */
.orwcb-calendar-day.is-blocked[title*="booking window"]{background:#ead5d8;color:#8d7376;border-color:#ead5d8}
.orwcb-calendar-day.is-blocked[title*="Unable to load"],
.orwcb-calendar-day.is-blocked[title*="availability"]{background:#f1f1f1;color:#aaa;border-color:#e4e4e4}


/* v1.1.4 booking summary / fee preview */
.orwcb-price-breakdown{background:#d9edf7;border:1px solid #bce8f1;color:#31708f;border-radius:5px;padding:18px 15px;margin:10px 0 16px;box-sizing:border-box;width:100%}
.orwcb-price-head{text-align:center;font-size:16px;line-height:1.25;margin-bottom:3px}
.orwcb-price-head strong{font-size:28px;font-weight:500}
.orwcb-price-caption{text-align:center;font-size:11px;margin-bottom:13px;opacity:.9}
.orwcb-charge-title{text-align:center;font-size:13px;font-weight:700;margin-bottom:8px}
.orwcb-charge-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:0!important;border:0!important;background:transparent!important}
.orwcb-charge-table td{padding:5px 8px!important;border:0!important;background:transparent!important;color:#31708f!important;font-size:13px!important;line-height:1.4!important}
.orwcb-charge-table td:first-child{width:65%!important;text-align:left!important;font-weight:400!important}
.orwcb-charge-table td:last-child{width:35%!important;text-align:right!important;font-weight:600!important;white-space:nowrap!important}
.orwcb-charge-table .orwcb-grand-total td{padding-top:9px!important;border-top:1px solid rgba(49,112,143,.35)!important;font-weight:700!important}
.orwcb-charge-table .orwcb-bits-fee small{font-size:10px;font-weight:400}
.orwcb-fee-note{margin-top:9px;font-size:10px;line-height:1.45;text-align:left;opacity:.85}
