.booking-modal{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(7,59,72,.72);backdrop-filter:blur(6px)}
.booking-modal.is-open{display:flex}
.booking-dialog{width:min(760px,100%);max-height:min(92vh,860px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 24px 80px rgba(7,59,72,.32);position:relative}
.booking-head{padding:28px 30px 18px;border-bottom:1px solid #C8E5EC;background:#F0F9FB;transition:background .2s ease,border-color .2s ease}
.booking-head h2{font-family:'Manrope',sans-serif;font-size:clamp(28px,5vw,40px);line-height:1.1;color:#0D2B32;margin:0 42px 8px 0}
.booking-head p{font-size:15px;color:#2D5A65;line-height:1.55;margin:0}
.booking-close{position:absolute;top:18px;right:18px;width:38px;height:38px;border:1px solid #C8E5EC;background:#fff;border-radius:50%;font-size:24px;line-height:1;color:#0B5E6E;cursor:pointer}
.booking-switch{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:24px 30px 0;background:#fff;transition:background .2s ease}
.booking-switch-btn{position:relative;display:grid;place-items:center;border:1.5px solid #C8E5EC;background:#fff;color:#0B5E6E;border-radius:10px;padding:21px 16px 15px;font:inherit;font-size:16px;font-weight:900;line-height:1.25;cursor:pointer;text-align:center}
.booking-switch-btn.is-active{background:#0B5E6E;border-color:#0B5E6E;color:#fff;box-shadow:0 8px 20px rgba(11,94,110,.18)}
.booking-choice-badge{position:absolute;top:-12px;left:12px;display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;line-height:1;letter-spacing:.04em;text-transform:uppercase;background:#fff;color:#0B5E6E;border:1.5px solid #C8E5EC;box-shadow:0 5px 14px rgba(7,59,72,.12)}
.booking-choice-badge svg{width:12px;height:12px;flex-shrink:0}
.booking-form{padding:26px 30px 30px;display:grid;gap:20px}
.booking-form-panel{display:none}
.booking-form-panel.is-active{display:grid}
.booking-type-home .booking-head{background:#FFF3DC;border-color:#F0C27C}
.booking-type-home .booking-switch,.booking-type-home .booking-form-panel.is-active{background:#FFF8EC}
.booking-type-home .booking-switch-btn.is-active,.booking-type-home .booking-submit{background:#B86E06;border-color:#B86E06;color:#fff;box-shadow:0 8px 20px rgba(184,110,6,.22)}
.booking-type-home .booking-switch-btn[data-booking-type="home"] .booking-choice-badge{background:#FFF3DC;border-color:#D58B1C;color:#8B5204}
.booking-type-home .booking-submit:hover{background:#9D5D05}
.booking-type-commercial .booking-head{background:#EAF6FB;border-color:#B8DDEA}
.booking-type-commercial .booking-switch,.booking-type-commercial .booking-form-panel.is-active{background:#F2FAFD}
.booking-type-commercial .booking-switch-btn.is-active,.booking-type-commercial .booking-submit{background:#0B5E6E;border-color:#0B5E6E;color:#fff;box-shadow:0 8px 20px rgba(11,94,110,.22)}
.booking-type-commercial .booking-switch-btn[data-booking-type="commercial"] .booking-choice-badge{background:#EAF6FB;border-color:#0B5E6E;color:#073B48}
.booking-type-commercial .booking-submit:hover{background:#073B48}
.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.booking-field{display:grid;gap:7px}
.booking-field label,.booking-group legend{font-size:14px;font-weight:800;color:#0D2B32}
.booking-note{font-size:12px;color:#6A9AA5;line-height:1.45}
.booking-field input,.booking-field textarea,.booking-field select{width:100%;border:1.5px solid #C8E5EC;border-radius:8px;padding:12px 13px;font:inherit;font-size:15px;color:#0D2B32;background:#fff;outline:none}
.booking-field input:focus,.booking-field textarea:focus,.booking-field select:focus{border-color:#0B5E6E;box-shadow:0 0 0 3px rgba(11,94,110,.12)}
.booking-field textarea{min-height:92px;resize:vertical}
.booking-group{border:0;margin:0;padding:0;display:grid;gap:10px}
.booking-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.booking-options--compact{grid-template-columns:repeat(4,1fr)}
.booking-options label{display:flex;align-items:flex-start;gap:9px;border:1.5px solid #C8E5EC;border-radius:8px;padding:11px 12px;font-size:14px;color:#2D5A65;line-height:1.35;background:#fff;cursor:pointer}
.booking-options input{margin-top:2px;accent-color:#0B5E6E;flex-shrink:0}
.booking-consent{font-size:12px;color:#6A9AA5;text-align:center;line-height:1.55;margin-top:-6px}
.booking-submit{width:100%;border:0;border-radius:8px;background:#E8900A;color:#fff;font-size:16px;font-weight:800;padding:15px 20px;cursor:pointer}
.booking-submit:hover{background:#B86E06}
.booking-status{display:none;border-radius:8px;padding:12px 14px;font-size:14px;line-height:1.55}
.booking-status.is-visible{display:block}
.booking-status--success{background:#E9F9EF;color:#126834;border:1px solid #A8E5BE}
.booking-status--error{background:#FFF0F0;color:#8A1F1F;border:1px solid #F2B8B8}
.booking-honeypot{display:none}
body.booking-lock{overflow:hidden}
@media(max-width:720px){
  .booking-modal{padding:10px;align-items:flex-end}
  .booking-dialog{max-height:94vh;border-radius:14px 14px 0 0}
  .booking-head,.booking-form,.booking-switch{padding-left:18px;padding-right:18px}
  .booking-switch{grid-template-columns:1fr}
  .booking-grid,.booking-options,.booking-options--compact{grid-template-columns:1fr}
}
