.rental-calendar{margin:0 0 5rem;border:1px solid #3b3221;background:linear-gradient(145deg,#15130f,#0d0d0d 65%);padding:2.5rem;color:#ede8dc}.calendar-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2rem}.calendar-heading h2{font-size:clamp(1.6rem,3vw,2.3rem);font-weight:400;line-height:1.2;margin:0 0 .85rem}.calendar-heading h2 em{color:#d9bc7a}.calendar-heading p,.calendar-note{font-size:.8rem;line-height:1.7;color:#b5b1a8;margin:0}.calendar-status{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:#d9bc7a;padding:.7rem .85rem;border:1px solid #51452d;white-space:nowrap}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-top:1px solid #302a1e}.calendar-toolbar p{font-size:.75rem;color:#b5b1a8;margin:0}.calendar-toolbar>div{display:flex;gap:.5rem}.calendar-toolbar button{width:44px;height:44px;background:#151515;color:#d9bc7a;border:1px solid #3b3221;font-size:1.7rem;cursor:pointer}.calendar-months{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem}.calendar-month h3{font-size:1rem;font-weight:500;margin:.5rem 0 1.5rem;color:#ede8dc}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays{margin-bottom:.8rem}.calendar-weekdays span{text-align:center;font-size:.65rem;color:#9d988e}.calendar-day{position:relative;min-height:44px;aspect-ratio:1.12;border:1px solid transparent;background:transparent;color:#ede8dc;font:inherit;font-size:.85rem;cursor:pointer;border-radius:2px}.calendar-day:hover:not(:disabled){border-color:#c4a35a;background:#272215}.calendar-day.is-selected{background:#c4a35a;color:#080808;font-weight:700}.calendar-day.is-selected:hover{background:#d9bc7a;color:#080808}.calendar-day.is-in-range{background:rgba(196,163,90,.13);color:#e5cca0}.calendar-day.is-today:after{content:"";position:absolute;bottom:5px;left:calc(50% - 2px);width:4px;height:4px;background:currentColor;border-radius:50%}.rental-calendar button:disabled{opacity:.3;cursor:default}.calendar-bottom{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #302a1e}.calendar-selection{font-size:.8rem;line-height:1.7;color:#e5cca0;max-width:440px}.calendar-actions{display:flex;align-items:center;gap:1rem}.calendar-reset{border:0;background:none;color:#b5b1a8;min-height:44px;font:inherit;font-size:.7rem;cursor:pointer;text-decoration:underline;text-underline-offset:4px}.calendar-continue{min-height:44px;white-space:nowrap}.calendar-note{margin-top:1.3rem;max-width:720px}#inquiry-form{scroll-margin-top:110px}
@media(max-width:700px){.rental-calendar{padding:1.3rem;margin-bottom:3rem}.calendar-heading{display:block}.calendar-status{display:inline-block;margin-top:1rem}.calendar-months{grid-template-columns:minmax(0,1fr);gap:0}.calendar-month:nth-child(2){display:none}.calendar-bottom{flex-direction:column;align-items:flex-start;gap:1rem}.calendar-actions{width:100%;justify-content:space-between;gap:.7rem}.calendar-continue{padding:.8rem 1rem;font-size:.6rem}.calendar-day{min-height:40px}.calendar-month h3{margin-top:1rem}.calendar-heading .replica-eyebrow{font-size:.58rem;letter-spacing:.15em}}
/* Compact calendar: retain comfortable controls without oversized square date cells. */
.rental-calendar{max-width:880px;margin:0 auto 3rem;padding:1.5rem}
.calendar-heading{gap:1rem;margin-bottom:1rem}
.calendar-heading h2{font-size:clamp(1.35rem,2.3vw,1.8rem);margin-bottom:.5rem}
.calendar-heading .replica-eyebrow{margin-bottom:.65rem}
.calendar-heading p,.calendar-note{font-size:.75rem;line-height:1.5}
.calendar-status{padding:.55rem .7rem;font-size:.58rem;letter-spacing:.08em}
.calendar-toolbar{padding:.55rem 0}
.calendar-months{gap:2rem}
.calendar-month h3{font-size:.9rem;margin:.5rem 0 .8rem}
.calendar-weekdays{margin-bottom:.35rem}
.calendar-weekdays,.calendar-days{gap:2px}
.calendar-day{aspect-ratio:auto;height:44px;min-height:44px;font-size:.8rem}
.calendar-bottom{gap:1rem;margin-top:1rem;padding-top:1rem}
.calendar-selection{font-size:.75rem;line-height:1.5}
.calendar-note{margin-top:.75rem}
@media(max-width:700px){.rental-calendar{padding:1rem;margin-bottom:2.5rem}.calendar-heading{margin-bottom:.75rem}.calendar-status{margin-top:.65rem}.calendar-months{gap:0}.calendar-bottom{gap:.5rem}.calendar-day{height:42px;min-height:42px}.calendar-heading h2{font-size:1.4rem}}

/* Live occupancy: a partial day remains selectable; exact windows appear below. */
#rental-calendar .calendar-months{grid-template-columns:minmax(0,1fr)}
#rental-calendar .calendar-day.availability-full{background:#a82131;color:#fff;border-color:#e45b69;opacity:1;cursor:not-allowed}
#rental-calendar .calendar-day.availability-partial{background:linear-gradient(135deg,#a82131 0%,#a82131 49%,#171717 51%,#171717 100%);color:#fff;border-color:#9b4650}
#rental-calendar .calendar-day.availability-unknown{color:#aaa}
#rental-calendar .calendar-day.is-selected:not(.availability-full){outline:2px solid #d9bc7a;outline-offset:-2px;font-weight:800}
#rental-calendar .calendar-day.is-in-range:not(.availability-full){box-shadow:inset 0 -3px #d9bc7a}
#rental-calendar .calendar-time-detail{padding:12px 14px;background:#1e1a15;border:1px solid #4b402d;color:#f3ead9;font-size:.8rem;line-height:1.6;margin:14px 0 0}
#rental-calendar .calendar-availability-key{font-size:.7rem;color:#c7bfb3;line-height:1.6;margin:12px 0}


/* Explicit occupancy colors remain legible for disabled past days too. */
#rental-calendar .calendar-day.availability-free{background:#113b27;color:#eafff1;border-color:#247c4b;opacity:1}
#rental-calendar .calendar-day.availability-full{background:#751b23;color:#fff;border-color:#dc4654;opacity:1}
#rental-calendar .calendar-day.availability-partial{background:linear-gradient(135deg,#751b23 0%,#751b23 49%,#113b27 51%,#113b27 100%);color:#fff;border-color:#aaa;opacity:1}
#rental-calendar .calendar-day.availability-unknown{background:#252525;color:#ccc;border-color:#555;opacity:1}
#rental-calendar .calendar-day.is-selected:not(.availability-full){outline:3px solid #fff;outline-offset:-3px}
#rental-calendar .calendar-day.is-in-range:not(.availability-full){box-shadow:inset 0 -4px #fff}
#rental-calendar .calendar-day.is-past{text-decoration:line-through;text-decoration-thickness:1px;cursor:not-allowed}
#rental-calendar .calendar-day:hover:not(:disabled){filter:brightness(1.2)}
#rental-calendar .calendar-availability-key{display:flex;flex-wrap:wrap;gap:10px 14px;color:#eee;font-size:12px}
.calendar-availability-key>span{display:inline-flex;gap:6px;align-items:center}.availability-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid #ffffff55;flex-shrink:0}.swatch-free{background:#247c4b}.swatch-full{background:#dc4654}.swatch-partial{background:linear-gradient(135deg,#dc4654 49%,#247c4b 51%)}.swatch-unknown{background:#555}

/* Occupancy follows the actual hours, including the handover buffer. */
#rental-calendar{border-radius:16px;background:linear-gradient(145deg,#181818,#101010);border-color:#333}
#rental-calendar .calendar-status{border-radius:20px;white-space:normal;line-height:1.5;color:#bce7cc;border-color:#345344;background:#16322255}
#rental-calendar .calendar-toolbar button{border-radius:10px;color:#fff;border-color:#393939;transition:background .15s}
#rental-calendar .calendar-toolbar button:hover:not(:disabled){background:#292929}
#rental-calendar .calendar-days{gap:5px}
#rental-calendar .calendar-day{height:49px;min-height:49px;padding:6px 4px 15px;border-radius:8px;background:#181818;color:#ededed;border:1px solid #303030;opacity:1;transition:border-color .15s,background .15s}
#rental-calendar .calendar-day.availability-full{background:#28181b;border-color:#583039}
#rental-calendar .calendar-day.availability-partial{background:#1c2320;border-color:#455249}
#rental-calendar .calendar-day.availability-free{background:#16231c;border-color:#2b4434}
#rental-calendar .calendar-day.availability-unknown{background:#202020;border-color:#363636;color:#aaa}
#rental-calendar .calendar-day.is-selected:not(.availability-full){background:#292929;color:#fff;outline:2px solid #fff;outline-offset:-2px}
#rental-calendar .calendar-day.is-in-range:not(.availability-full){background:#232b27;box-shadow:inset 0 0 0 1px #7e9b8b}
#rental-calendar .calendar-day.is-today:after{top:4px;right:4px;left:auto;bottom:auto;width:4px;height:4px;background:#fff}
#rental-calendar .calendar-day-timeline{position:absolute;bottom:7px;left:5px;right:5px;height:5px;overflow:hidden;border-radius:4px;background:#e45161}
#rental-calendar .calendar-day-timeline i{position:absolute;top:0;bottom:0;background:#4acf8b}
#rental-calendar .availability-free .calendar-day-timeline{background:#4acf8b}
#rental-calendar .availability-unknown .calendar-day-timeline{background:#686868}
#rental-calendar .calendar-day.is-past .calendar-day-number{color:#aaa;text-decoration:line-through}
#rental-calendar .calendar-day.is-past{text-decoration:none}
#rental-calendar .calendar-time-detail{background:#191919;border-color:#363636;border-radius:10px;color:#ddd;font-size:.73rem}
#rental-calendar .calendar-availability-key{font-size:11px;gap:7px 12px;color:#bcbcbc}
#rental-calendar .availability-swatch{width:15px;height:5px;border:0;border-radius:3px}
#rental-calendar .swatch-free{background:#4acf8b}#rental-calendar .swatch-full{background:#e45161}#rental-calendar .swatch-partial{background:linear-gradient(90deg,#e45161 50%,#4acf8b 50%)}
@media(max-width:420px){#rental-calendar .calendar-days{gap:3px}#rental-calendar .calendar-day{height:46px;min-height:46px;border-radius:6px}}
@media(prefers-reduced-motion:reduce){#rental-calendar .calendar-day,#rental-calendar .calendar-toolbar button{transition:none}}

