.booking-page main{padding:65px 0 90px}.booking-heading{max-width:840px;margin:30px 0 48px}.booking-heading h1{font:600 clamp(42px,5.2vw,70px)/1.1 var(--display);letter-spacing:-1.3px}.booking-heading>p:last-child{max-width:780px;color:var(--muted);font-size:20px}.booking-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:65px}.booking-panel{padding:36px;min-width:0}.booking-panel h2{font-size:30px;margin-bottom:22px}.booking-format{padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:28px}.booking-panel fieldset{min-width:0;border:0;padding:0;margin:0 0 30px}.booking-panel legend{font-weight:800;font-size:22px;line-height:1.4;margin-bottom:20px;padding:0}.booking-panel legend>span{font-family:var(--display);font-size:24px;color:var(--green);margin-right:10px}.booking-location-options label{display:flex;align-items:center;gap:14px;border:1px solid #bbc6b4;border-radius:3px;padding:17px;cursor:pointer}.booking-location-options label+label{margin-top:12px}.booking-location-options label:has(input:checked){border-color:var(--green);background:#f3f6ef;box-shadow:inset 3px 0 var(--green)}.booking-location-options label.night-option:has(input:checked){box-shadow:inset 3px 0 #71325d;border-color:#71325d;background:#faf7fa}.booking-location-options input{width:20px;height:20px;flex-shrink:0;accent-color:var(--green)}.booking-location-options .night-option input{accent-color:#71325d}.booking-location-options strong{display:block;font-size:18px;line-height:1.4;margin-bottom:9px}.booking-location-options small{display:block;color:var(--muted);font-size:16px;margin-top:6px}.booking-metro{display:inline-block;padding:3px 9px;background:#edf2e6;color:var(--green);font-weight:700;font-size:16px;border-radius:2px}.booking-metro.night{background:#71325d;color:#fff}.booking-panel input:not([type=radio]):not([type=range]),.booking-panel select{min-height:50px;font:400 18px/1.5 var(--body);max-width:100%;min-width:0}.booking-panel .field{min-width:0;font-weight:600}.booking-hint{font-size:16px;color:var(--muted);line-height:1.6;margin-top:14px}.booking-hint a,.booking-legal a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.booking-guests-label{display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:600;margin-top:24px}.booking-guests-label output{font-size:26px;font-weight:800;color:var(--green)}#booking-guests{width:100%;min-height:32px;accent-color:var(--green);margin:10px 0 0}.booking-range-limits{display:flex;justify-content:space-between;gap:15px;font-size:16px;color:var(--muted)}.booking-demo-note{background:var(--cream);border-left:3px solid var(--lime);font-size:16px;padding:16px;margin-top:6px}.booking-submit{margin-top:24px;font-size:18px}.booking-legal{font-size:16px;color:var(--muted);line-height:1.6;margin-top:18px}.booking-result{border-left:3px solid var(--green);overflow-wrap:anywhere}.booking-result h3{font-size:22px}.booking-result p{font-size:18px}.booking-aside{padding-top:8px;min-width:0}.booking-aside h2{font-size:clamp(29px,3vw,40px)}.booking-aside>p:not(.eyebrow){color:var(--muted)}.booking-benefits{list-style:none;padding:0!important;margin:30px 0}.booking-benefits li{border-top:1px solid #cdd2bf;padding-top:18px;margin-top:18px}.booking-benefits strong{display:block;font-size:20px}.booking-benefits span{display:block;color:var(--muted);font-size:18px;margin-top:5px}.booking-contact,.booking-contact.night{background:white;color:var(--ink);padding:28px;border-top:3px solid var(--green)}.booking-contact.night{border-top-color:#71325d}.booking-contact h3{margin-top:18px;font-size:25px}.booking-contact>a{font-size:22px}.booking-contact>.text-link{display:flex;font-size:16px}.booking-service-note{padding:22px;background:var(--cream);border-top:3px solid var(--green)}.booking-service-note h3{font-size:25px;margin-bottom:16px}.booking-service-note p{color:var(--muted);margin-bottom:22px}.booking-service-note .btn{white-space:normal}.booking-help{margin-top:28px!important}
@media(max-width:1050px){.booking-layout{gap:32px;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr)}.booking-panel{padding:28px}.booking-panel .form-grid{grid-template-columns:1fr}.booking-contact{padding:22px}}
@media(max-width:850px){.booking-layout{grid-template-columns:1fr;gap:40px}.booking-panel .form-grid{grid-template-columns:1fr 1fr}.booking-aside{max-width:650px}.booking-heading h1{font-size:54px}.booking-aside h2 br{display:none}}
@media(max-width:580px){.booking-page main{padding:38px 0 55px}.booking-heading{margin:25px 0 30px}.booking-heading h1{font-size:42px;overflow-wrap:normal}.booking-heading>p:last-child{font-size:18px}.booking-panel{padding:25px 20px}.booking-panel .form-grid{grid-template-columns:1fr}.booking-submit{width:100%}.booking-location-options label{padding:14px 12px;gap:12px}.booking-panel legend{font-size:20px}.booking-panel h2{font-size:28px}.booking-contact>a{font-size:20px}.booking-panel select{font-size:16px}.booking-service-note{padding:18px}.booking-service-note .btn{width:100%}}
.booking-excursion-card{display:flex;align-items:center;gap:18px;padding:24px;background:white;border:1px solid var(--green);border-left:4px solid var(--green);border-radius:3px;color:var(--green);font-size:18px;line-height:1.6}
.booking-excursion-card::after{content:'↗';flex-shrink:0;font-size:26px}
.booking-excursion-card:hover{background:#edf2e6}
/* All forms are HTML. Native select state controls visibility without JS.
   Browsers without :has show all labelled forms as a usable fallback. */
.booking-form-title{font-size:25px;margin-bottom:26px;color:var(--green)}
.booking-service-form+.booking-service-form{border-top:1px solid var(--line);padding-top:30px;margin-top:30px}
.booking-panel textarea{width:100%;font:400 18px/1.5 var(--body);padding:12px;border:1px solid #bbc6b4;border-radius:3px;resize:vertical}
.booking-comment{margin-bottom:24px}.booking-contact+.booking-contact{margin-top:24px}
@supports selector(:has(*)) {
 .booking-service-form{display:none}
 .booking-service-form+.booking-service-form{border:0;padding:0;margin:0}
 .booking-panel:has(#booking-service option[value="visit"]:checked) #booking-visit-form{display:block}
 .booking-layout:has(#booking-service option[value="visit"]:checked):has(#booking-visit-form input[name="location"][value="sokol"]:checked) .booking-contact[data-location="night"]{display:none}
 .booking-layout:has(#booking-service option[value="visit"]:checked):has(#booking-visit-form input[name="location"][value="night"]:checked) .booking-contact[data-location="sokol"]{display:none}
 .booking-panel:has(#booking-service option[value="birthday"]:checked) #booking-birthday-form{display:block}
 .booking-layout:has(#booking-service option[value="birthday"]:checked):has(#booking-birthday-form input[name="location"][value="sokol"]:checked) .booking-contact[data-location="night"]{display:none}
 .booking-layout:has(#booking-service option[value="birthday"]:checked):has(#booking-birthday-form input[name="location"][value="night"]:checked) .booking-contact[data-location="sokol"]{display:none}
 .booking-panel:has(#booking-service option[value="school"]:checked) #booking-school-form{display:block}
 .booking-layout:has(#booking-service option[value="school"]:checked):has(#booking-school-form input[name="location"][value="sokol"]:checked) .booking-contact[data-location="night"]{display:none}
 .booking-layout:has(#booking-service option[value="school"]:checked):has(#booking-school-form input[name="location"][value="night"]:checked) .booking-contact[data-location="sokol"]{display:none}
 .booking-panel:has(#booking-service option[value="vip"]:checked) #booking-vip-form{display:block}
 .booking-layout:has(#booking-service option[value="vip"]:checked):has(#booking-vip-form input[name="location"][value="sokol"]:checked) .booking-contact[data-location="night"]{display:none}
 .booking-layout:has(#booking-service option[value="vip"]:checked):has(#booking-vip-form input[name="location"][value="night"]:checked) .booking-contact[data-location="sokol"]{display:none}
 .booking-panel:has(#booking-service option[value="photo"]:checked) #booking-photo-form{display:block}
}
