/* Request-to-book dialog (booking.js). Uses the approved palette/type from property.css; only the new step is styled here. */
.request-dialog{width:min(640px,96vw);max-width:640px;height:auto;max-height:94dvh;padding:44px 40px 30px;overflow-y:auto;background:var(--panel);border:1px solid #4a5146}
.request-dialog::backdrop{background:#000c;backdrop-filter:blur(4px)}
.request-dialog h2{font-size:clamp(26px,3vw,34px);margin:0 0 10px}
.request-dialog .eyebrow{margin:0 0 6px}
/* property.css styles every dialog button as a photo-viewer arrow; undo that inside this dialog. */
.request-dialog button{position:static;width:auto;height:auto;font-size:inherit;border:0;background:none;color:inherit}
.request-dialog .request-close{position:absolute;right:12px;top:8px;width:44px;height:44px;font-size:27px;border:1px solid var(--line);background:#102024;color:var(--cream);cursor:pointer}
.request-dialog form{display:grid;gap:18px}
.request-summary{margin:0;font-size:17px;color:var(--gold)}

.cal{border:1px solid var(--line);padding:12px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-title{font-weight:400;font-size:18px}
.request-dialog .cal-nav{width:44px;height:44px;font:22px Arial,sans-serif;color:var(--cream);cursor:pointer;border:1px solid transparent}
.request-dialog .cal-nav:hover:not(:disabled){border-color:var(--gold)}
.request-dialog .cal-nav:disabled{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.cal-dow{font:10px Arial,sans-serif;letter-spacing:.12em;color:var(--muted);padding:4px 0}
.request-dialog .cal-day{height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;font:14px Arial,sans-serif;color:var(--cream);cursor:pointer;border:1px solid transparent}
.request-dialog .cal-day small{font-size:10px;color:var(--muted)}
.request-dialog .cal-day:hover:not(:disabled){border-color:var(--gold)}
.request-dialog .cal-day:disabled{opacity:.35;cursor:default}
.request-dialog .cal-day.is-booked{text-decoration:line-through;background:repeating-linear-gradient(135deg,transparent 0 4px,#ffffff14 4px 5px)}
.request-dialog .cal-day.in-range{background:#edca9126}
.request-dialog .cal-day.is-picked{background:var(--gold);color:#0a1314;opacity:1;text-decoration:none}
.request-dialog .cal-day.is-picked small{color:#0a1314}
.cal-legend{margin:8px 0 0;font:11px/1.5 Arial,sans-serif;color:var(--muted);display:flex;align-items:center;gap:8px}
.cal-key{display:inline-block;width:14px;height:14px;border:1px solid var(--line);background:repeating-linear-gradient(135deg,transparent 0 4px,#ffffff2a 4px 5px)}

.quote{display:grid;gap:7px;border-top:1px solid var(--line);padding-top:14px;font:14px/1.5 Arial,sans-serif}
.quote-line{display:flex;justify-content:space-between;gap:12px}
.quote-line[hidden]{display:none}
.quote-total{border-top:1px solid var(--line);padding-top:9px;margin-top:3px;font-size:16px;font-weight:700;color:var(--gold)}
.quote-note{margin:4px 0 0;color:var(--muted);font-size:13px}
.quote-note.error{color:#f0a49a}
.cancel-note{margin:0;padding:10px 12px;border:1px solid var(--line);font-size:13px}
.cancel-note[hidden]{display:none}
.cancel-note a,.request-dialog .agree a{color:var(--gold)}

.request-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}
.request-fields .wide{grid-column:1/-1}
.request-dialog textarea{width:100%;background:#0b1416;color:var(--cream);border:1px solid #53615a;padding:12px 8px;border-radius:0;font:14px Arial,sans-serif;resize:vertical}
.request-dialog .agree{flex-direction:row;align-items:flex-start;gap:12px;font:14px/1.5 Arial,sans-serif;letter-spacing:0;text-transform:none}
.request-dialog .agree input{width:20px;min-height:20px;height:20px;padding:0;margin:1px 0 0;flex:none;accent-color:var(--gold)}
.request-dialog button.button{display:inline-flex;min-height:48px;padding:15px 23px;border:1px solid var(--gold);background:var(--gold);color:#0a1314;font:12px/1.4 Arial,sans-serif;letter-spacing:.08em;cursor:pointer}
.request-dialog button.button:disabled{opacity:.45;cursor:not-allowed}
#form-status{margin:0;font:14px/1.5 Arial,sans-serif}
#form-status.error{color:#f0a49a}
#request-status{font:14px/1.5 Arial,sans-serif;color:var(--gold)}
.request-dialog .fine{margin:0}

@media(max-width:760px){
  .request-dialog{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0;padding:52px 18px 24px;border:0}
  .request-fields{grid-template-columns:1fr}
  .request-dialog .cal-day{height:44px}
}

/* Booking status page (/booking/) */
.booking-facts{display:grid;grid-template-columns:auto 1fr;gap:8px 22px;max-width:620px;padding:22px;border:1px solid var(--line);background:var(--panel);font:15px/1.5 Arial,sans-serif}
.booking-facts dt{color:var(--muted);letter-spacing:.06em}
.booking-facts dd{margin:0}

/* Booked nights read as blocked at a glance (past days are only dimmed). */
.cal-day.is-booked:disabled{opacity:.7;color:var(--muted);background:repeating-linear-gradient(135deg,#ffffff0a 0 4px,#ffffff30 4px 6px)}
.cal-key{background:repeating-linear-gradient(135deg,#ffffff0a 0 4px,#ffffff30 4px 6px)}
