/* Reservation presentation; booking controls and validation remain in rezervace.php. */
body.bbs-reservation { background:#101110; color:#f4f3ef; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; padding-top:84px; }
.bbs-reservation .navbar-topbar { display:none; }
.bbs-reservation .navbar { min-height:84px; }
.bbs-reservation .navbar-main { min-height:84px; padding:0 4.5%; max-width:1600px; margin:auto; }
.bbs-reservation .reservation-page { max-width:1280px; padding:0 4.5% 64px; }
.bbs-reservation .reservation-page * { box-sizing:border-box; }
.bbs-reservation .reservation-page [hidden] { display:none!important; }
.bbs-reservation .reservation-page::before, .bbs-reservation .reservation-hero::after { display:none; }
.bbs-reservation .reservation-hero { display:block; margin:0; padding:70px 0 48px; border:0; border-radius:0; background:none; box-shadow:none; }
.bbs-reservation .reservation-kicker { display:block; padding:0; margin:0 0 24px; background:none; border:0; border-radius:0; color:#a7aaa4; font-size:10px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; }
.bbs-reservation .reservation-hero h1 { max-width:800px; font-size:clamp(46px,6.3vw,80px); font-weight:500; line-height:1.04; letter-spacing:-.065em; margin:0 0 24px; }
.bbs-reservation .reservation-hero h1 span { color:#ff9c35; }
.bbs-reservation .reservation-hero p { max-width:520px; color:#a7aaa4; font-size:16px; line-height:1.7; margin:0; }
.bbs-reservation .reservation-hero-panel, .bbs-reservation .reservation-metrics { display:none; }
.bbs-reservation .rezervace-info { padding:0; }
.bbs-reservation .rezervace-grid { display:block; }
.bbs-reservation .rezervace-form-card { padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.bbs-reservation .rezervace-form-header { display:none; }
.bbs-reservation .rez-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-top:1px solid #ffffff24; border-bottom:1px solid #ffffff24; padding:20px 0; margin:0 0 32px; }
.bbs-reservation .rez-progress-step { background:none; border:0; border-radius:0; padding:8px 12px; color:#999d96; box-shadow:none; }
.bbs-reservation .rez-progress-step strong { background:#252825; border:0; border-radius:50%; color:#a7aaa4; width:30px; height:30px; }
.bbs-reservation .rez-progress-step.is-active { color:#f4f3ef; background:none; }
.bbs-reservation .rez-progress-step.is-active strong, .bbs-reservation .rez-progress-step.is-done strong { background:#ff9c35; color:#101110; }
.bbs-reservation .rez-progress-step span { font-size:13px; }
.bbs-reservation .rezervace-form { padding:0; }
.bbs-reservation .rez-step { padding:0; background:none; border:0; box-shadow:none; }
.bbs-reservation .rezervace-step-header { margin:0 0 24px; padding:0; border:0; background:none; }
.bbs-reservation .rezervace-step-header h4 { color:#f4f3ef; font-size:24px; font-weight:500; letter-spacing:-.035em; }
.bbs-reservation .rezervace-step-header p, .bbs-reservation .rez-inline-note, .bbs-reservation .rezervace-form small { color:#a7aaa4; font-size:12px; line-height:1.7; }
.bbs-reservation .rezervace-step-header i, .bbs-reservation .form-group > label i { display:none; }
.bbs-reservation .rez-selection-shell { padding:0; border:0; background:none; border-radius:0; box-shadow:none; margin-bottom:28px; }
.bbs-reservation .rez-selection-top { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; }
.bbs-reservation .rez-selection-fields { grid-column:1; grid-row:1; }
.bbs-reservation .rez-selection-summary { grid-column:2; grid-row:1; background:#171917; padding:24px; border:1px solid #ffffff24; border-radius:7px; }
.bbs-reservation .rez-selection-fields .form-row { display:block; }
.bbs-reservation .rez-selection-badge { background:none; border:0; padding:0; color:#ffb463; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.bbs-reservation .rez-selection-summary h5 { font-size:22px; font-weight:500; line-height:1.25; color:#f4f3ef; }
.bbs-reservation .rez-selection-summary p, .bbs-reservation .rez-package-features { color:#a7aaa4; font-size:13px; line-height:1.7; }
.bbs-reservation .rez-package-features h6 { color:#f4f3ef; font-weight:500; }
.bbs-reservation .rez-selection-stats { gap:14px; }
.bbs-reservation .rez-mini-stat { background:none; border:0; padding:0; box-shadow:none; }
.bbs-reservation .rez-mini-stat span { color:#a7aaa4; font-size:10px; }
.bbs-reservation .rez-mini-stat strong { color:#f4f3ef; font-size:15px; }
.bbs-reservation #rez-selected-price { color:#ffb463; font-size:22px; }
.bbs-reservation .rez-guest-notice { background:none; border:0; border-left:2px solid #ff9c35; border-radius:0; padding:8px 16px; margin:0 0 28px; }
.bbs-reservation .rez-guest-notice strong { color:#f4f3ef; font-size:13px; }
.bbs-reservation .rez-guest-notice p { color:#a7aaa4; font-size:12px; }
.bbs-reservation .form-row { gap:24px; }
.bbs-reservation .form-group { min-width:0; margin-bottom:20px; }
.bbs-reservation .form-group label, .bbs-reservation .summary-row label { color:#d8dad4; font-size:13px; font-weight:500; }
.bbs-reservation .reservation-page input:not([type=checkbox]):not([type=radio]), .bbs-reservation .reservation-page select, .bbs-reservation .reservation-page textarea, .bbs-reservation .auto-select-btn { background:#191c19; border:1px solid #ffffff29; border-radius:5px; color:#f4f3ef; padding:14px; font-family:inherit; font-size:16px; box-shadow:none; min-height:50px; width:100%; }
.bbs-reservation .reservation-page input::placeholder, .bbs-reservation .reservation-page textarea::placeholder { color:#80867c; }
.bbs-reservation .reservation-page :is(input,select,textarea):focus { outline:2px solid #ff9c35; outline-offset:2px; border-color:transparent; }
.bbs-reservation .reservation-page .profil-btn { background:#ff9c35; color:#101110; border:1px solid #ff9c35; border-radius:5px; box-shadow:none; padding:15px 24px; font-family:inherit; font-size:14px; font-weight:600; min-height:48px; }
.bbs-reservation .reservation-page .profil-btn.secondary { background:transparent; border-color:#ffffff35; color:#f4f3ef; }
.bbs-reservation .reservation-page .profil-btn:hover { transform:none; filter:brightness(1.08); }
.bbs-reservation .reservation-page button:focus-visible, .bbs-reservation .reservation-page a:focus-visible { outline:2px solid #ffb463; outline-offset:4px; }
.bbs-reservation .rezervace-buttons { border-top:1px solid #ffffff24; padding-top:24px; margin-top:24px; }
.bbs-reservation .calendar-container, .bbs-reservation .rezervace-summary, .bbs-reservation .summary-section, .bbs-reservation .rez-selected-slot, .bbs-reservation .time-slots-container, .bbs-reservation .rez-success-recap-item, .bbs-reservation .rez-next-steps { background:#171917; border:1px solid #ffffff24; border-radius:7px; box-shadow:none; }
.bbs-reservation .calendar-header { background:none; border-bottom:1px solid #ffffff24; }
.bbs-reservation .calendar-header h4, .bbs-reservation .summary-section h5, .bbs-reservation .time-slots-container h5, .bbs-reservation .success-content h4 { color:#f4f3ef; }
.bbs-reservation .calendar-nav { background:#252825; color:#f4f3ef; border:1px solid #ffffff24; box-shadow:none; }
.bbs-reservation .calendar-day.selected, .bbs-reservation .time-slot.selected { background:#ff9c35; color:#101110; border-color:#ff9c35; }
.bbs-reservation .summary-row { border-color:#ffffff1a; }
.bbs-reservation .rezervace-summary-intro { color:#a7aaa4; font-size:13px; }
.bbs-reservation .reservation-help { display:flex; justify-content:space-between; align-items:center; gap:20px; border-top:1px solid #ffffff24; margin-top:48px; padding:28px 0; }
.bbs-reservation .reservation-help p { color:#a7aaa4; font-size:13px; margin:0; }
.bbs-reservation .reservation-help a { color:#f4f3ef; font-size:18px; text-decoration:none; white-space:nowrap; }
@media(max-width:700px) {
 .bbs-reservation .reservation-page { padding:0 20px 36px; }
 .bbs-reservation .reservation-hero { padding:42px 0 32px; }
 .bbs-reservation .reservation-hero h1 { font-size:48px; }
 .bbs-reservation .rez-selection-top { grid-template-columns:minmax(0,1fr); gap:4px; }
 .bbs-reservation .rez-selection-summary { grid-column:1; grid-row:2; padding:18px; }
 .bbs-reservation .rez-progress-step { padding:4px; flex-direction:column; gap:8px; text-align:center; }
 .bbs-reservation .rez-progress-step span { font-size:10px; }
 .bbs-reservation .form-row { flex-direction:column; gap:0; }
 .bbs-reservation .rez-selection-stats { grid-template-columns:1fr; }
 .bbs-reservation .rez-mini-stat { display:flex; justify-content:space-between; align-items:center; }
 .bbs-reservation .rezervace-buttons { gap:10px; }
 .bbs-reservation .rezervace-buttons .profil-btn { padding:14px; }
 .bbs-reservation .reservation-help { align-items:flex-start; flex-direction:column; gap:12px; }
 .bbs-reservation .calendar-container { padding:10px; }
}
.bbs-reservation .rez-mini-stat { border-radius:0; overflow:visible; }
.bbs-reservation .rezervace-form-card::before, .bbs-reservation .rezervace-form-card::after { display:none; }
.bbs-reservation .rezervace-step-header, .bbs-reservation .rezervace-step-header h4 { text-align:left; }
.bbs-reservation .reservation-page .input-error { border-color:#ef7770!important; }
@media(max-width:700px) {
 .bbs-reservation .form-row { display:flex; }
 .bbs-reservation .form-row > .form-group { width:100%; flex:1 1 auto; max-width:none; }
 .bbs-reservation .rezervace-buttons { display:flex; flex-direction:row; }
 .bbs-reservation .rezervace-buttons .profil-btn { flex:1; width:auto; }
}
/* Native dropdowns use the same dark palette, including their popup menus. */
.bbs-reservation .reservation-page select {
 color-scheme:dark;
 accent-color:#ff9c35;
}
.bbs-reservation .reservation-page select option,
.bbs-reservation .reservation-page select optgroup {
 background-color:#191c19;
 color:#f4f3ef;
}
.bbs-reservation .reservation-page select option:disabled { color:#858b81; }
.bbs-reservation .package-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.bbs-reservation .package-choice { position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:14px; min-height:112px; padding:17px; background:#191c19; color:#f4f3ef; border:1px solid #ffffff29; border-radius:6px; text-align:left; font-family:inherit; cursor:pointer; transition:border-color .15s,background .15s; }
.bbs-reservation .package-choice:hover { border-color:#a7aaa4; background:#202420; }
.bbs-reservation .package-choice[aria-pressed="true"] { border-color:#ff9c35; background:#292318; box-shadow:inset 0 0 0 1px #ff9c35; }
.bbs-reservation .package-choice-name { font-size:14px; font-weight:500; line-height:1.4; padding-right:14px; }
.bbs-reservation .package-choice-price { color:#a7aaa4; font-size:13px; }
.bbs-reservation .package-choice[aria-pressed="true"] .package-choice-price { color:#ffb463; }
.bbs-reservation .package-choice[aria-pressed="true"]::after { content:''; position:absolute; top:17px; right:13px; width:7px; height:12px; border:solid #ffb463; border-width:0 2px 2px 0; transform:rotate(45deg); }
.bbs-reservation .rez-selection-summary { position:sticky; top:108px; }
@media(max-width:700px) {
 .bbs-reservation .package-choice { padding:14px; min-height:112px; }
 .bbs-reservation .package-choice-name { font-size:13px; }
 .bbs-reservation .rez-selection-summary { position:static; }
}
@media(max-width:350px) {
 .bbs-reservation .package-choice-grid { grid-template-columns:1fr; }
 .bbs-reservation .package-choice { min-height:90px; }
}
.bbs-reservation .package-choice-detail { font-size:11px; color:#a7aaa4; line-height:1.4; }
.bbs-reservation .package-choice-detail:empty { display:none; }
.bbs-reservation .package-choice-price { margin-top:auto; }

/* Match the pricing page header on small screens as well. */
@media(max-width:600px) {
 body.bbs-reservation { padding-top:72px; }
 .bbs-reservation .navbar, .bbs-reservation .navbar-main { min-height:72px; }
}

/* The dialog is outside main; keep its appearance independent of page panels. */
#booking-status {
  color-scheme: dark; margin: auto; width: min(460px, calc(100% - 32px));
  max-height: calc(100dvh - 32px); box-sizing: border-box; overflow: auto;
  padding: 32px 32px 30px; border: 1px solid #383b34; border-radius: 28px;
  background: radial-gradient(ellipse at 50% 0, #30271c 0, #191b18 55%);
  color: #f5f3ee; text-align: center; box-shadow: 0 32px 100px #0009;
  font-family: inherit;
}
#booking-status:focus { outline: none; }
#booking-status::backdrop { background: rgb(4 6 4 / 80%); backdrop-filter: blur(9px); }
#booking-status .booking-status-brand { font-size: 12px; font-weight: 800; letter-spacing: .18em; color: #f5f3ee; margin-bottom: 30px; }
#booking-status .booking-status-brand span { color: #ff9c35; }
#booking-status .booking-status-symbol { width: 88px; height: 88px; margin: 0 auto 26px; display: grid; place-items: center; border: 1px solid #ff9c352e; border-radius: 50%; background: #ff9c350b; color: #ffac50; }
#booking-status .booking-spinner { display: block; width: 40px; height: 40px; box-sizing: border-box; border: 3px solid #ff9c3526; border-top-color: #ffac50; border-radius: 50%; animation: booking-spin .8s linear infinite; }
#booking-status svg { display: none; width: 48px; height: 48px; }
#booking-status[data-state="success"] .booking-status-check,
#booking-status[data-state="error"] .booking-status-error { display: block; }
#booking-status:not([data-state="loading"]) .booking-spinner { display: none; }
#booking-status[data-state="success"] .booking-status-symbol { color: #b3d29a; background: #b3d29a0b; border-color: #b3d29a33; }
#booking-status h2 { font-size: clamp(25px, 5vw, 30px); font-weight: 700; line-height: 1.2; letter-spacing: -.035em; margin: 0 0 14px; color: #f5f3ee; }
#booking-status p { font-size: 15px; color: #b9bcb5; line-height: 1.7; margin: 0; }
#booking-status-close { display: block; width: 100%; margin: 28px 0 0; padding: 15px 20px; border: 1px solid #ffac50; border-radius: 14px; background: #ff9c35; color: #171917; font: inherit; font-weight: 700; cursor: pointer; box-shadow: none; }
#booking-status-close:hover { background: #ffb361; transform: none; }
#booking-status-close:focus-visible { outline: 2px solid #f5f3ee; outline-offset: 4px; }
#booking-status [hidden] { display: none !important; }
@keyframes booking-spin { to { transform: rotate(360deg); } }
@media (max-width: 480px) { #booking-status { padding: 28px 24px; border-radius: 24px; } }
@media (prefers-reduced-motion: reduce) { #booking-status .booking-spinner { animation-duration: 2s; } }
