.required-mark{display:inline-block;margin-left:.45em;padding:.12em .5em;border-radius:999px;background:#a96d6d;color:#fff;font-size:.72em;font-weight:700;vertical-align:middle}.optional-mark{margin-left:.45em;color:#6e7f88;font-size:.82em;font-weight:500}.field-note{display:block;margin-top:7px;color:#6e7f88}.sample-form input[type="file"]{padding:10px;background:#fff}.form-message{min-height:1.5em;margin:4px 0 0;color:#a15050;font-weight:600}.privacy-notice{line-height:1.8}.privacy-notice strong{display:inline-block;margin-bottom:6px;color:#334955}.privacy-notice a,.privacy-consent a{color:#527789;text-decoration:underline}.privacy-consent{display:flex;align-items:flex-start;gap:10px;padding:16px 18px;border:1px solid #d7e0e3;border-radius:12px;background:#fffdf8;line-height:1.7}.privacy-consent input{width:auto;margin-top:.35em;flex:0 0 auto}.sample-form button[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}

.booking-calendar{margin:8px 0 22px;border:1px solid #d7e0e3;border-radius:18px;background:#fffdf8;overflow:hidden}.booking-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:#eaf1f3}.booking-calendar-head button{border:1px solid #c5d3d9;background:#fff;color:#527789;border-radius:10px;width:40px;height:36px;font-size:1.15rem;cursor:pointer}.booking-calendar-head button:disabled{opacity:.35;cursor:not-allowed}.booking-calendar-title{font-weight:700;color:#334955}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays span{padding:10px 4px;text-align:center;font-size:.75rem;color:#6e7f88;border-bottom:1px solid #e2e8ea}.calendar-day{min-height:70px;border:0;border-right:1px solid #edf1f2;border-bottom:1px solid #edf1f2;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#334955;cursor:pointer}.calendar-day:nth-child(7n){border-right:0}.calendar-day.empty{background:#faf8f3;cursor:default}.calendar-day.unavailable{background:#f5f6f5;color:#a0aaae;cursor:not-allowed}.calendar-day.available:hover{background:#edf4f6}.calendar-day.selected{background:#6f93a6;color:#fff}.calendar-day .day-num{font-weight:700}.calendar-day .day-status{font-size:.67rem}.calendar-day.selected .day-status{color:#fff}.calendar-help{padding:13px 16px;margin:0;color:#6e7f88;font-size:.82rem;background:#fbfaf6}.reservation-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.reservation-fields input[readonly]{background:#f7f8f6}.availability-message{margin:0 0 14px;color:#6e7f88;font-size:.88rem}.availability-message.error{color:#a15050;font-weight:600}@media(max-width:680px){.calendar-day{min-height:58px}.calendar-day .day-status{font-size:.6rem}.reservation-fields{grid-template-columns:1fr}}


/* 2026-09-02 form control height alignment */
.sample-form input[type="text"],
.sample-form input[type="email"],
.sample-form input[type="tel"],
.sample-form input[type="file"],
.sample-form select{height:64px;min-height:64px;padding:0 22px;line-height:1.4}
.sample-form input[type="file"]{padding:12px 14px}
.sample-form input[type="file"]::file-selector-button{height:38px;margin-right:14px;padding:0 16px;border:1px solid #c8d5db;border-radius:9px;background:#edf3f5;color:#334955;cursor:pointer}
.reservation-fields input[readonly]{height:64px}
@media(max-width:680px){.sample-form input[type="text"],.sample-form input[type="email"],.sample-form input[type="tel"],.sample-form input[type="file"],.sample-form select,.reservation-fields input[readonly]{height:58px;min-height:58px}}

/* 20260906-4 weekend/holiday booking display */
.calendar-day.holiday{background:#fff7ea;color:#8a6440}
.calendar-day.holiday.available:hover{background:#f9ead3}
.calendar-day.holiday.selected{background:#6f93a6;color:#fff}

/* 20260906-4 broad reservation slots */
#preferredSlot{font-weight:600}
