.booking-trigger{width:100%;margin-top:14px}.booking-modal{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:18px;background:rgba(2,10,20,.72);backdrop-filter:blur(9px);opacity:0;visibility:hidden;transition:.28s}.booking-modal.open{opacity:1;visibility:visible}.booking-dialog{width:min(920px,100%);max-height:94vh;overflow:auto;border-radius:28px;background:#fff;box-shadow:0 35px 110px rgba(0,0,0,.32)}.booking-head{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid #e5eaf0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.booking-head small{display:block;margin-bottom:5px;font-size:.65rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#b47a26}.booking-head h2{margin:0;font-family:"Outfit",sans-serif;font-size:1.7rem;font-weight:400;letter-spacing:-.035em;color:#071a31}.booking-close{width:42px;height:42px;border:1px solid #e2e8ef;border-radius:13px;background:#fff;font-size:1.25rem}.booking-body{padding:24px}.booking-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:24px}.booking-step{padding:10px;border-radius:12px;background:#f4f6f8;color:#7a8797;text-align:center;font-size:.68rem;font-weight:800}.booking-step.active{background:#071a31;color:#fff}.booking-pane{display:none}.booking-pane.active{display:block}.booking-pane h3{margin:0 0 6px;font-family:"Outfit",sans-serif;font-size:1.5rem;font-weight:400;color:#071a31}.booking-pane>p{margin:0 0 20px;color:#718096;font-size:.82rem;line-height:1.7}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-field{display:grid;gap:7px}.booking-field.full{grid-column:1/-1}.booking-field label{font-size:.69rem;font-weight:800;color:#48586a}.booking-field input,.booking-field select,.booking-field textarea{width:100%;border:1px solid #dfe5ec;border-radius:13px;padding:13px 14px;outline:0;background:#fbfcfd;font:inherit;font-size:.82rem}.booking-field input:focus,.booking-field select:focus,.booking-field textarea:focus{border-color:#efbd6a;box-shadow:0 0 0 4px rgba(239,189,106,.14);background:#fff}.passenger-count{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px;border:1px solid #e3e8ee;border-radius:16px}.passenger-count strong{display:block;font-size:.86rem;color:#071a31}.passenger-count span{font-size:.7rem;color:#718096}.counter{display:flex;align-items:center;gap:12px}.counter button{width:36px;height:36px;border:1px solid #dfe5ec;border-radius:11px;background:#fff;font-size:1.1rem}.counter output{min-width:24px;text-align:center;font-weight:800}.preference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.preference-option{position:relative}.preference-option input{position:absolute;opacity:0}.preference-option label{display:block;height:100%;padding:15px;border:1px solid #dfe5ec;border-radius:15px;background:#fff;cursor:pointer}.preference-option strong{display:block;font-size:.78rem;color:#071a31}.preference-option span{display:block;margin-top:5px;font-size:.67rem;color:#718096}.preference-option input:checked+label{border-color:#efbd6a;background:#fff8eb;box-shadow:0 0 0 3px rgba(239,189,106,.12)}.payment-options{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.payment-option{position:relative}.payment-option input{position:absolute;opacity:0}.payment-option label{display:block;padding:17px;border:1px solid #dfe5ec;border-radius:16px;cursor:pointer}.payment-option strong{display:block;font-size:.84rem;color:#071a31}.payment-option span{display:block;margin-top:5px;font-size:.67rem;color:#718096}.payment-option input:checked+label{border-color:#efbd6a;background:#fff8eb}.booking-summary{display:grid;gap:10px;padding:18px;border-radius:18px;background:#f6f8fa}.summary-row{display:flex;justify-content:space-between;gap:20px;font-size:.78rem}.summary-row span{color:#718096}.summary-total{padding-top:12px;border-top:1px solid #dfe5ec;font-size:1rem;font-weight:800;color:#071a31}.booking-alert{margin-top:15px;padding:13px 14px;border-radius:13px;background:#fff7e8;color:#745b2c;font-size:.7rem;line-height:1.6}.booking-actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid #e5eaf0}.booking-actions button{min-height:46px;border-radius:13px;padding:11px 17px;font:inherit;font-size:.76rem;font-weight:800}.booking-prev{border:1px solid #dfe5ec;background:#fff;color:#071a31}.booking-next,.booking-submit{border:0;background:#071a31;color:#fff}.booking-success{text-align:center;padding:30px 10px}.booking-success-icon{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 18px;border-radius:24px;background:#e5f7ef;color:#15805b;font-size:2rem}.booking-success h3{font-size:2rem}.booking-success p{max-width:580px;margin:10px auto;color:#718096}.booking-success .btn{margin-top:16px}.booking-note{font-size:.67rem;color:#718096;line-height:1.6}.availability-box{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:15px 16px;border-radius:15px;background:#071a31;color:#fff}.availability-box strong{font-size:.86rem}.availability-box span{font-size:.68rem;color:rgba(255,255,255,.6)}.availability-number{font-family:"Outfit",sans-serif;font-size:1.7rem;font-weight:400;color:#efbd6a}
@media(max-width:700px){.booking-dialog{border-radius:22px}.booking-head,.booking-body{padding:18px}.booking-steps{grid-template-columns:repeat(2,1fr)}.booking-grid,.preference-grid,.payment-options{grid-template-columns:1fr}.booking-field.full{grid-column:auto}.booking-actions{flex-direction:column-reverse}.booking-actions button{width:100%}}
