/* booking.html — visual layer only. Load LAST. */
.booking-hero,.booking-wrap{--bk-cu:#b4561f;--bk-cu2:#f0a35e;--bk-navy:#0b1530}
@keyframes bkIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes bkSlide{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes bkFloat{50%{transform:translateY(16px) scale(1.06)}}
@keyframes bkPulse{50%{box-shadow:0 0 0 9px rgba(240,163,94,.2),0 0 22px rgba(255,184,107,.6)}}
@keyframes bkRing{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.9);opacity:0}}
.booking-hero{position:relative;overflow:hidden;padding-bottom:90px!important;background:radial-gradient(600px 300px at 85% 0,rgba(240,163,94,.4),transparent 60%),linear-gradient(135deg,#0b1530,#14244d)!important}
.booking-hero::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;inset-inline-start:6%;top:-100px;background:radial-gradient(circle,rgba(255,184,107,.65),transparent 65%);animation:bkFloat 7s ease-in-out infinite;pointer-events:none}
.booking-hero h1{font-size:clamp(1.8rem,5vw,2.6rem)!important;animation:bkIn .7s both}.booking-hero p{animation:bkIn .7s .1s both}
.booking-wrap{position:relative;margin-top:-52px!important}
.booking-wrap .step-indicator{padding:14px 18px;border-radius:20px;background:#fff;box-shadow:0 14px 40px rgba(11,21,48,.12)}
.booking-wrap .step-indicator__dot{width:36px;height:36px;font-weight:800;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.booking-wrap .step-indicator__item.is-active .step-indicator__dot{background:linear-gradient(135deg,var(--bk-cu),var(--bk-cu2))!important;color:#fff!important;transform:scale(1.15);animation:bkPulse 2.4s infinite}
.booking-wrap .step-indicator__item.is-done .step-indicator__dot{background:linear-gradient(135deg,#0f766e,#27d17f)!important;color:#fff!important}
.booking-wrap .step-indicator__line{height:4px;background:#e6ebf4}
.booking-card{border-radius:28px!important;border:0!important;box-shadow:0 30px 70px rgba(11,21,48,.14)!important;background:rgba(255,255,255,.96)!important}
.booking-step.is-active{animation:bkSlide .5s cubic-bezier(.2,.8,.2,1) both}
.booking-step h2{font-size:clamp(1.3rem,3.6vw,1.7rem)}
.days-list{padding:4px}
.day-block{border-radius:20px!important;border:2px solid #eef1f8!important;background:#fff!important;transition:transform .25s,box-shadow .25s,border-color .25s}
.day-block:hover:not(.is-empty){transform:translateY(-3px);border-color:var(--bk-cu2)!important;box-shadow:0 14px 30px rgba(180,86,31,.14)}
.day-block__date{font-size:1rem;color:var(--bk-navy)}
.slot-chip{border-radius:99px!important;padding:9px 18px!important;font-weight:700;transition:transform .2s,box-shadow .2s,border-color .2s}
.slot-chip:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 18px rgba(180,86,31,.18);border-color:var(--bk-cu)!important}
.slot-chip.is-selected{background:linear-gradient(135deg,var(--bk-cu),var(--bk-cu2))!important;border-color:var(--bk-cu)!important;color:#fff!important;box-shadow:0 10px 22px rgba(180,86,31,.4)!important;transform:scale(1.06)}
.booking-card .input,.booking-card .select,.booking-card textarea{min-height:52px;border-radius:16px;border:2px solid #e5e9f2;transition:.25s}
.booking-card .input:focus,.booking-card .select:focus,.booking-card textarea:focus{outline:0;border-color:var(--bk-cu);box-shadow:0 0 0 5px rgba(180,86,31,.14)}
.booking-card .field label{font-weight:700;color:var(--bk-navy)}
details.booking-more{margin-top:12px;padding:4px 16px;border:2px dashed #dfe5f1;border-radius:18px}
details.booking-more>summary{cursor:pointer;padding:10px 0;color:var(--bk-navy)}
.booking-summary{border-radius:22px!important;background:linear-gradient(160deg,#fff4e8,#fff)!important;border:1px solid #fed7aa}
.summary-dl dd{color:var(--bk-cu)}
.booking-nav{position:sticky;bottom:0;padding:14px 0;background:linear-gradient(transparent,#fff 45%);z-index:5}
.booking-nav .btn{min-height:50px;border-radius:99px;font-weight:800;padding-inline:26px}
.booking-nav .btn-cta,.booking-nav .btn-primary{box-shadow:0 14px 30px rgba(180,86,31,.4);transition:transform .25s}
.booking-nav .btn-cta:hover,.booking-nav .btn-primary:hover{transform:translateY(-3px) scale(1.02)}
.booking-success{border-radius:28px!important;background:linear-gradient(160deg,#ecfdf5,#fff)!important}
.booking-success__icon{position:relative;background:linear-gradient(135deg,#0f766e,#27d17f)!important;color:#fff!important;box-shadow:0 14px 30px rgba(15,118,110,.4)}
.booking-success__icon::after{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid #27d17f;animation:bkRing 1.8s ease-out infinite}
@media(max-width:600px){.booking-wrap{margin-top:-36px!important}.booking-card{border-radius:24px!important}}
@media(prefers-reduced-motion:reduce){.booking-hero *,.booking-hero::after,.booking-wrap *{animation:none!important;transition:none!important}}
