#reservation-form { padding:0; gap:24px; }
#reservation-form label { font-size:14px; font-weight:400; text-transform:none; letter-spacing:0; }
#reservation-form input, #reservation-form select { font-size:16px; font-weight:400; border-radius:4px; min-height:48px; background:transparent; }
.calendar { padding:16px; border:1px solid var(--line); border-radius:6px; }
.calendar-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.calendar-header h2 { font:500 17px/1.4 Arial,sans-serif; letter-spacing:0; }
.calendar button { min-height:44px; min-width:44px; padding:0; border:0; border-radius:4px; box-shadow:none; background:transparent; color:var(--ink); font:400 16px/1 Arial,sans-serif; letter-spacing:0; }
.calendar-header button { font-size:26px; }
.calendar-week, .calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; text-align:center; }
.calendar-week { margin-bottom:8px; font-size:12px; color:var(--muted); }
.calendar-days button { min-width:0; background:#eee9e0; }
.calendar button:disabled { color:#aaa39a; background:transparent; cursor:default; }
.calendar button:not(:disabled):hover { background:#e1d9cc; }
.calendar button[aria-pressed=true] { background:#28362b; color:white; }
.calendar-note { margin:16px 0 0; color:var(--muted); font-size:13px; text-align:center; }
#date-summary { margin:0; font-size:15px; }
#checkout-status { margin:-12px 0 0; }
.inquiry-alternative { margin:24px 0 0; font-size:14px; text-align:center; color:var(--muted); }
@media(max-width:380px) { .calendar { padding:10px; } .calendar-days { gap:2px; } }

#period-field[hidden] { display:none; }

.time-note { margin:0; font-size:13px; color:var(--muted); }
.time-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.time-choice { position:relative; cursor:pointer; }
#reservation-form .time-choice input { position:absolute; opacity:0; width:1px; height:1px; min-height:0; }
.time-choice span { display:flex; align-items:center; justify-content:center; min-height:44px; border:1px solid var(--line); border-radius:4px; font-size:14px; }
.time-choice input:checked + span { background:#28362b; color:white; border-color:#28362b; }
.time-choice input:disabled + span { text-decoration:line-through; color:#8b837b; background:#f0ede7; border-color:transparent; cursor:not-allowed; }
.time-choice input:focus-visible + span { outline:2px solid var(--gold); outline-offset:3px; }
.holiday-source { text-align:center; font-size:12px; color:var(--muted); margin:20px 0 0; }
@media(max-width:420px) { .time-options { grid-template-columns:repeat(3,minmax(0,1fr)); } }

.inquiry-button { display:flex; align-items:center; justify-content:center; min-height:48px; padding:12px 16px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--ink); text-align:center; text-decoration:none; font-size:14px; }
.inquiry-button:hover { border-color:var(--gold); background:#f4f0e9; }

.request-success h2 { margin:0 0 12px; font-size:32px; }
.request-success p { font-size:16px; }
