.tbw-booking{max-width:900px;margin:0 auto;color:var(--tbw-front-text)}.tbw-booking__intro{max-width:720px;margin:0 auto 28px;text-align:center;line-height:1.65}.tbw-booking-search{display:grid;grid-template-columns:1fr 1.2fr 1fr auto;gap:14px;align-items:end;padding:22px 0 28px;border-bottom:1px solid var(--tbw-front-border)}.tbw-booking-search label,.tbw-booking-form label{display:grid;gap:7px}.tbw-booking-search label>span,.tbw-booking-form label>span{font-size:13px;color:var(--tbw-front-muted)}.tbw-booking-search select,.tbw-booking-search input,.tbw-booking-form input,.tbw-booking-form textarea{width:100%;font:inherit;border:1px solid var(--tbw-front-border);border-radius:7px;background:var(--tbw-front-surface);padding:11px 12px;color:var(--tbw-front-text)}.tbw-booking-search select,.tbw-booking-search input{height:44px}.tbw-booking-search button,.tbw-booking-submit{border:0;background:var(--tbw-front-primary);color:var(--tbw-front-on-primary);font:inherit;min-height:44px;padding:0 22px;cursor:pointer;border-radius:7px;font-weight:650}.tbw-booking-search button:hover,.tbw-booking-submit:hover{background:var(--tbw-front-primary-hover)}.tbw-booking__message,.tbw-booking__success{margin:24px 0;padding:17px 18px;background:var(--tbw-front-panel);border-left:3px solid var(--tbw-front-border);line-height:1.55}.tbw-booking__message.is-error{border-color:var(--tbw-front-error);background:var(--tbw-front-error-bg)}.tbw-booking__success{border-color:var(--tbw-front-success-border);background:var(--tbw-front-success-bg)}.tbw-booking__success strong{font-size:20px}.tbw-booking__success p{margin:7px 0 0}.tbw-booking-details{margin-top:28px;padding:28px;background:var(--tbw-front-panel);border:1px solid var(--tbw-front-border);border-radius:12px}.tbw-booking-details h2{text-align:left!important;font-size:26px!important;margin:0 0 20px!important}.tbw-booking-details__summary{display:flex;justify-content:space-between;gap:18px;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--tbw-front-border)}.tbw-booking-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tbw-booking-form .is-wide{grid-column:1/-1}.tbw-booking-form textarea{resize:vertical}.tbw-booking-privacy{display:flex!important;grid-template-columns:auto 1fr!important;align-items:start;gap:9px!important;margin:18px 0;font-size:13px;line-height:1.45}.tbw-booking-privacy input{width:auto!important;margin-top:3px}.tbw-booking-submit{min-width:220px}.tbw-booking-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.tbw-booking a{text-decoration:underline}@media(max-width:760px){.tbw-booking-search{grid-template-columns:1fr}.tbw-booking-form__grid{grid-template-columns:1fr}.tbw-booking-form .is-wide{grid-column:auto}.tbw-booking-details{padding:20px 16px}.tbw-booking-details__summary{display:grid;gap:4px}}
.tbw-booking-manage{max-width:760px}.tbw-booking-form select{width:100%;font:inherit;border:1px solid var(--tbw-front-border);border-radius:7px;background:var(--tbw-front-surface);padding:11px 12px;color:var(--tbw-front-text);height:44px}.tbw-manage-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px}.tbw-manage-link{font-size:14px;color:var(--tbw-front-text)}.tbw-manage-link--danger{color:var(--tbw-front-error)}.tbw-booking-submit--danger{background:var(--tbw-front-error)}.tbw-booking-submit--danger:hover{background:var(--tbw-front-error)}
.tbw-booking-availability{min-height:20px;margin:8px 0 0;font-size:13px;color:var(--tbw-front-muted)}.tbw-booking-availability.is-error{color:var(--tbw-front-error)}.tbw-booking-search button:disabled{opacity:.55;cursor:not-allowed}.tbw-booking-date-display{cursor:pointer;background:var(--tbw-front-surface)}.ui-datepicker{display:none;width:308px;padding:12px;background:var(--tbw-front-surface);border:1px solid var(--tbw-front-border);box-shadow:0 14px 36px rgba(0,0,0,.16);z-index:10050!important;font-size:14px}.ui-datepicker .ui-datepicker-header{position:relative;display:flex;align-items:center;justify-content:center;min-height:34px;margin-bottom:8px}.ui-datepicker .ui-datepicker-title{font-weight:700}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--tbw-front-border);background:var(--tbw-front-surface);cursor:pointer;text-decoration:none}.ui-datepicker .ui-datepicker-prev{left:0}.ui-datepicker .ui-datepicker-next{right:0}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{font-size:0}.ui-datepicker .ui-datepicker-prev span:after{content:"‹";font-size:24px;line-height:1}.ui-datepicker .ui-datepicker-next span:after{content:"›";font-size:24px;line-height:1}.ui-datepicker table{width:100%;border-collapse:collapse}.ui-datepicker th{padding:7px 3px;font-size:12px;font-weight:600;color:var(--tbw-front-muted);text-align:center}.ui-datepicker td{padding:2px;text-align:center}.ui-datepicker td a,.ui-datepicker td span{display:flex;align-items:center;justify-content:center;width:36px;height:34px;margin:auto;text-decoration:none;color:var(--tbw-front-primary)}.ui-datepicker td a:hover{background:var(--tbw-front-surface-soft)}.ui-datepicker td.ui-datepicker-today a{outline:1px solid var(--tbw-front-focus)}.ui-datepicker td.ui-datepicker-current-day a{background:var(--tbw-front-primary);color:var(--tbw-front-on-primary)}.ui-datepicker td.ui-state-disabled span{color:var(--tbw-front-faint);background:var(--tbw-front-panel);cursor:not-allowed}.ui-datepicker td.tbw-date-unavailable span{color:var(--tbw-front-faint);background:var(--tbw-front-panel);text-decoration:line-through}.ui-datepicker .ui-datepicker-other-month span{background:transparent;color:var(--tbw-front-faint)}.ui-datepicker .ui-state-disabled{opacity:1}@media(max-width:420px){.ui-datepicker{width:calc(100vw - 32px);box-sizing:border-box}.ui-datepicker td a,.ui-datepicker td span{width:34px}}

/* Compact homepage reservation search; booking is completed on the reservation page. */
.tbw-reservation-mini{box-sizing:border-box;width:100%;max-width:1100px;margin:0 auto;padding:22px 26px 15px;background:var(--tbw-front-panel);border:1px solid var(--tbw-front-border);border-radius:12px;color:var(--tbw-front-text);box-shadow:0 12px 34px rgba(27,35,29,.06)}
.tbw-reservation-mini *{box-sizing:border-box}



.tbw-reservation-mini .tbw-booking-search{grid-template-columns:minmax(108px,.8fr) minmax(155px,1.15fr) minmax(135px,.9fr) minmax(160px,auto);gap:12px;align-items:end;padding:0;border:0}
.tbw-reservation-mini .tbw-booking-search label{margin:0;min-width:0;gap:6px}
.tbw-reservation-mini .tbw-booking-search label>span{font-size:12px;font-weight:650;color:var(--tbw-front-text)}
.tbw-reservation-mini .tbw-booking-search select,.tbw-reservation-mini .tbw-booking-search input{height:48px;min-height:48px;border:1px solid var(--tbw-front-border);border-radius:7px;padding:9px 12px;line-height:1.3;min-width:0;font-size:16px;background-color:var(--tbw-front-surface);color:var(--tbw-front-text)}
.tbw-reservation-mini .tbw-booking-search-submit{min-height:48px;margin:0;padding:10px 18px;border:0;border-radius:7px;background:var(--tbw-front-primary);color:var(--tbw-front-on-primary);font-size:15px;font-weight:650;white-space:nowrap}
.tbw-reservation-mini .tbw-booking-search-submit:hover{background:var(--tbw-front-primary-hover)}
.tbw-reservation-mini .tbw-booking-search-submit:focus-visible,.tbw-reservation-mini .tbw-booking-search input:focus-visible,.tbw-reservation-mini .tbw-booking-search select:focus-visible{outline:3px solid var(--tbw-front-focus);outline-offset:2px}
.tbw-reservation-mini .tbw-booking-availability{margin:7px 0 0;min-height:0;font-size:12px;line-height:1.5}
.tbw-reservation-mini .tbw-booking-availability:empty{display:none}
@media(max-width:780px){.tbw-reservation-mini{padding:20px 18px 14px}.tbw-reservation-mini .tbw-booking-search{grid-template-columns:repeat(2,minmax(0,1fr))}.tbw-reservation-mini .tbw-booking-search-submit{width:100%}}
@media(max-width:475px){.tbw-reservation-mini{padding:18px 15px 13px}.tbw-reservation-mini .tbw-booking-search{grid-template-columns:minmax(0,1fr)}.tbw-reservation-mini .tbw-booking-search-submit{width:100%}}

/* 1.0.5: visually consistent main/mini reservation controls; no theme-specific selectors. */
.tbw-booking-search input:focus-visible,.tbw-booking-search select:focus-visible,
.tbw-booking-form input:focus-visible,.tbw-booking-form select:focus-visible,
.tbw-booking-form textarea:focus-visible,.tbw-booking-submit:focus-visible {
  outline:3px solid var(--tbw-front-focus);outline-offset:2px;
}
