/* Shared booking calendar (all villa pages) */
.cal-wrap{margin-top:.5rem}
.cal-date-display{display:flex;gap:.5rem;margin-bottom:.5rem}
.cal-date-box{flex:1;padding:.5rem .6rem;border:.5px solid var(--border);background:var(--ink3)}
.cal-date-box-label{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem}
.cal-date-box-val{font-size:.8rem;color:var(--cream);font-weight:300;min-height:1em}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.cal-title{font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--cream2)}
.cal-nav{background:none;border:.5px solid var(--border);color:var(--gold,#c9a96e);width:36px;height:36px;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center}
.cal-nav:hover{border-color:var(--gold,#c9a96e)}
.cal-nav:disabled{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center;padding:.3rem 0}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font:inherit;font-size:.78rem;font-weight:300;color:var(--cream2);cursor:pointer;position:relative;transition:background .15s,color .15s;border:.5px solid transparent;background:none;padding:0;min-height:36px}
.cal-day.empty{cursor:default;pointer-events:none}
.cal-day:hover:not(.booked):not(.past):not(.empty){background:rgba(184,147,90,.12);border-color:var(--border)}
.cal-day.past{color:var(--muted);opacity:.35;cursor:default;pointer-events:none}
.cal-day.booked{color:var(--muted);opacity:.45;cursor:not-allowed;text-decoration:line-through;background:rgba(120,40,40,.15)}
.cal-day.booked.co-ok{cursor:pointer;opacity:.9;text-decoration:none;background:rgba(184,147,90,.1);border-color:var(--border)}
.cal-day.today{border-color:rgba(184,147,90,.4)}
.cal-day.checkin,.cal-day.checkout{background:var(--emerald,#2d7a5f)!important;color:#fff!important;border-color:var(--emerald,#2d7a5f)!important;font-weight:500;text-decoration:none;opacity:1}
.cal-day.checkin{border-radius:2px 0 0 2px}.cal-day.checkout{border-radius:0 2px 2px 0}
.cal-day.inrange{background:rgba(45,122,95,.15)!important;border-color:rgba(45,122,95,.2)!important}
.cal-legend{display:flex;gap:.75rem;margin-top:.6rem;flex-wrap:wrap}
.cal-legend-item{display:flex;align-items:center;gap:.3rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cal-legend-dot{width:8px;height:8px;border-radius:1px}
.cal-legend-dot.avail{background:rgba(184,147,90,.2);border:.5px solid var(--border)}
.cal-legend-dot.booked{background:rgba(120,40,40,.35)}
.cal-legend-dot.sel{background:var(--emerald,#2d7a5f)}
.cal-status,.cal-note{margin-top:.5rem;font-size:.75rem;padding:.5rem .75rem;border-left:2px solid var(--emerald,#2d7a5f);color:var(--cream2);background:rgba(45,122,95,.08);line-height:1.5}
.cal-status{display:none}
.cal-status.warn{border-left-color:#a04040;background:rgba(160,64,64,.08)}
.cal-status.info,.cal-note{border-left-color:var(--brass,#b8935a);background:rgba(201,160,80,.08)}
.cal-note{display:none}
.cal-loading{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:.75rem 0;text-align:center}
.booking-note-quote{font-size:.72rem;color:var(--muted);margin:-.4rem 0 1rem}
