/* Safaroka V1.9.88 — Premium Booking Checkout UI/UX */
.smart-booking-page{padding:116px 0 68px;background:linear-gradient(180deg,#f7faf8 0%,#f3f6f4 100%)}
.smart-booking-page .booking-shell{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"main side";gap:28px;align-items:start;max-width:1180px!important}
.smart-booking-page .booking-card{grid-area:main;min-width:0;padding:0!important;overflow:hidden;border:1px solid #dce7e2!important;border-radius:24px!important;background:#fff;box-shadow:0 18px 50px rgba(21,63,52,.08)!important}
.smart-booking-page .booking-intro{grid-area:side;position:sticky;top:104px;padding:0!important}

.booking-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:26px 28px 20px;border-bottom:1px solid #edf2ef}
.booking-card-head>div>span{display:block;color:#08705a;font-size:9px;font-weight:900;letter-spacing:.14em}
.booking-card-head h2{margin:4px 0 5px;color:#143e34;font-size:25px;line-height:1.15;letter-spacing:-.02em}
.booking-card-head p{margin:0;max-width:560px;color:#6a7b74;font-size:12px;line-height:1.55}
.booking-secure-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:999px;background:#eef8f4;color:#08705a;font-size:10px;font-weight:800;white-space:nowrap}

.booking-progress{display:flex;align-items:center;padding:16px 28px;border-bottom:1px solid #edf2ef;background:#fbfcfb}
.booking-progress span{display:flex;align-items:center;gap:7px;color:#83918c;font-size:10px;font-weight:800;white-space:nowrap}
.booking-progress span b{width:23px;height:23px;display:grid;place-items:center;border-radius:999px;background:#edf2ef;color:#74847e;font-size:10px}
.booking-progress span.active{color:#0b6f59}.booking-progress span.active b{background:#08705a;color:#fff}
.booking-progress i{height:1px;flex:1;min-width:18px;margin:0 9px;background:#dfe8e4}

.smart-booking-page .booking-selection{margin:22px 28px 0!important;padding:16px 18px!important;border:1px solid #dceae4!important;border-radius:16px!important;background:linear-gradient(135deg,#f4faf7,#fbfcfb)!important}
.smart-booking-page .booking-selection small{font-size:8.5px!important;letter-spacing:.13em!important}
.smart-booking-page .booking-selection b{margin:4px 0 2px!important;font-size:16px!important;line-height:1.3!important}
.smart-booking-page .booking-selection span{font-size:11.5px!important}

.smart-booking-page .booking-promo-box{margin:12px 28px 0!important;padding:12px 14px!important;border-radius:14px!important;box-shadow:none!important}
.smart-booking-page .booking-promo-box>span{width:36px!important;height:36px!important;border-radius:11px!important}
.smart-booking-page .booking-promo-box small{font-size:8px!important}.smart-booking-page .booking-promo-box b{font-size:12px!important}.smart-booking-page .booking-promo-box p{font-size:10.5px!important;margin-top:3px!important}

.smart-booking-page .booking-form{display:block!important;padding:8px 28px 28px}
.smart-booking-page .booking-calculator-block{margin:16px 0 0!important;padding:20px 0!important;border:0!important;border-radius:0!important;background:transparent!important}
.smart-booking-page .booking-calculator-block+.booking-calculator-block{border-top:1px solid #edf2ef!important}
.booking-block-title,.booking-contact-title{gap:11px!important;margin-bottom:15px!important}
.booking-block-title>span,.booking-contact-title>span{width:30px!important;height:30px!important;background:#08705a!important;box-shadow:0 6px 14px rgba(8,112,90,.16)}
.booking-block-title b,.booking-contact-title b{font-size:14px!important}.booking-block-title small,.booking-contact-title small{font-size:10.5px!important}

.pax-selector{max-width:none!important;grid-template-columns:44px minmax(120px,180px) 44px!important;width:max-content;padding:5px;border:1px solid #d7e4de;border-radius:15px;background:#f8fbf9}
.pax-selector button{height:40px!important;border:0!important;border-radius:10px!important;background:#fff!important;box-shadow:0 2px 7px rgba(27,67,56,.07);font-size:21px!important;font-weight:700}
.pax-selector button:hover{background:#eef8f4!important}.pax-selector strong{font-size:18px!important}

.room-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.room-choice>span{position:relative;padding:16px 16px 15px!important;border:1px solid #dce6e2!important;border-radius:16px!important;background:#fff!important;box-shadow:0 4px 14px rgba(31,67,57,.035);transition:border-color .18s,box-shadow .18s,background .18s,transform .18s!important}
.room-choice>span:before{content:"";position:absolute;right:14px;top:14px;width:17px;height:17px;border:1.5px solid #cbd9d3;border-radius:999px;background:#fff}
.room-choice.active>span:before,.room-choice:has(input:checked)>span:before{border:5px solid #08705a}
.room-choice:hover>span{transform:translateY(-1px)}
.room-choice:hover>span,.room-choice.active>span,.room-choice:has(input:checked)>span{border-color:#80b7a7!important;box-shadow:0 7px 20px rgba(8,112,90,.08)!important;background:#f8fcfa!important}
.room-choice b{padding-right:28px;font-size:14px!important}.room-choice small{margin:4px 0 13px!important;font-size:10px!important}.room-choice strong{font-size:19px!important;letter-spacing:-.01em}.room-choice strong em{margin-left:3px;font-size:9px!important;font-weight:700}
.room-sharing-note{margin:12px 0 0!important;padding:10px 12px;border-radius:11px;background:#f8faf9;color:#708079!important;font-size:10px!important}

.live-booking-summary{margin:18px 0 24px!important;padding:20px!important;border:1px solid rgba(211,177,85,.34);border-radius:18px!important;background:linear-gradient(145deg,#075b49,#043f34)!important;box-shadow:0 14px 34px rgba(4,63,52,.15)!important}
.booking-summary-head{padding-bottom:14px!important}.booking-summary-head small{color:#c6dfd7!important}.booking-summary-head b{font-size:14px!important}.booking-summary-head .booking-download{min-height:38px!important;border-radius:11px!important;font-size:10px!important;font-weight:850!important}
.live-booking-summary dl>div{padding:8px 0!important}.live-booking-summary dt{font-size:11px!important}.live-booking-summary dd{font-size:12px!important}.live-booking-summary .total{margin-top:5px!important;padding-top:14px!important;border-top-color:rgba(231,196,103,.28)!important}.live-booking-summary .total dt{font-size:12px!important}.live-booking-summary .total dd{color:#f1cf73!important;font-size:22px!important;letter-spacing:-.02em}

.booking-contact-title{margin:4px 0 14px!important;padding-top:20px;border-top:1px solid #edf2ef}
.smart-booking-page .booking-form>label,.smart-booking-page .consult-two{margin-top:12px}
.smart-booking-page .consult-form label{gap:7px!important;color:#3f5a51!important;font-size:11.5px!important}
.smart-booking-page .consult-form input,.smart-booking-page .consult-form textarea{border-color:#d6e1dc!important;border-radius:12px!important;padding:12px 13px!important;background:#fcfdfc!important;transition:border-color .18s,box-shadow .18s,background .18s}
.smart-booking-page .consult-form input:focus,.smart-booking-page .consult-form textarea:focus{background:#fff!important;border-color:#4f9d87!important;box-shadow:0 0 0 3px rgba(8,112,90,.08)!important}
.smart-booking-page .booking-submit{margin-top:16px;min-height:52px!important;border-radius:13px!important;font-size:13px!important;box-shadow:0 10px 24px rgba(5,96,78,.18)}
.booking-disclaimer{margin:11px 2px 0!important;padding:11px 12px;border-radius:10px;background:#f8faf9;color:#72817b!important;font-size:10px!important;line-height:1.55!important}
.booking-disclaimer b{color:#486158}

.smart-booking-page .booking-intro>.eyebrow{display:block;margin-bottom:8px;color:#08705a;font-size:9px;font-weight:900;letter-spacing:.14em}
.smart-booking-page .booking-intro h1{margin:0 0 9px!important;max-width:none!important;font-size:30px!important;line-height:1.13!important;letter-spacing:-.025em!important}
.smart-booking-page .booking-intro>p{margin:0!important;font-size:12.5px!important;line-height:1.65!important;color:#6d7d77!important}
.booking-trip-facts{grid-template-columns:1fr!important;gap:8px!important;margin:18px 0 12px!important}
.booking-trip-facts article{grid-template-columns:36px 1fr!important;gap:10px!important;padding:11px 12px!important;border-color:#dce7e2!important;border-radius:14px!important;background:#fff!important;box-shadow:0 5px 16px rgba(25,63,52,.035)}
.booking-trip-facts article>span{width:36px!important;height:36px!important;border-radius:11px!important}.booking-trip-facts small{font-size:7.5px!important}.booking-trip-facts b{font-size:11.5px!important}.booking-trip-facts em{font-size:9.5px!important}
.booking-assurance{display:flex;gap:9px;align-items:flex-start;padding:13px 14px!important;border:1px solid #d8e6e0;border-radius:14px;background:#edf7f3;color:#08705a}
.booking-assurance>svg{flex:0 0 auto;margin-top:1px}.booking-assurance p{margin:0!important}.booking-assurance b,.booking-assurance span{display:block}.booking-assurance b{font-size:11px;color:#18493c}.booking-assurance span{margin-top:3px;font-size:9.5px;line-height:1.5;color:#63766e}

@media(max-width:1050px){
 .smart-booking-page .booking-shell{grid-template-columns:1fr;grid-template-areas:"side" "main";gap:18px;max-width:820px!important}
 .smart-booking-page .booking-intro{position:static;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);column-gap:20px;align-items:start}
 .smart-booking-page .booking-intro>.eyebrow,.smart-booking-page .booking-intro>h1,.smart-booking-page .booking-intro>p{grid-column:1}
 .booking-trip-facts{grid-column:1/-1;grid-template-columns:1fr 1fr!important}
 .booking-assurance{grid-column:2;grid-row:1/4;margin-top:0}
}
@media(max-width:700px){
 .smart-booking-page{padding:94px 0 38px}
 .smart-booking-page .booking-shell{width:calc(100% - 24px)!important;gap:14px}
 .smart-booking-page .booking-intro{display:block}
 .smart-booking-page .booking-intro h1{font-size:26px!important}
 .booking-trip-facts{grid-template-columns:1fr!important}
 .booking-card-head{padding:20px 18px 16px}.booking-card-head h2{font-size:21px}.booking-secure-chip{display:none}
 .booking-progress{padding:13px 18px}.booking-progress span{font-size:9px}.booking-progress span b{width:21px;height:21px}.booking-progress i{margin:0 6px}
 .smart-booking-page .booking-selection,.smart-booking-page .booking-promo-box{margin-left:18px!important;margin-right:18px!important}
 .smart-booking-page .booking-form{padding:7px 18px 20px}
 .room-choice-grid{grid-template-columns:1fr 1fr!important}
 .live-booking-summary{padding:17px!important}.booking-summary-head{align-items:flex-start!important;flex-direction:column!important}.booking-summary-head .booking-download{width:100%!important;justify-content:center!important}
}
@media(max-width:460px){
 .booking-progress span{font-size:0}.booking-progress span b{font-size:10px}.booking-progress i{min-width:12px}
 .room-choice-grid{grid-template-columns:1fr!important}
 .pax-selector{width:100%!important;grid-template-columns:44px 1fr 44px!important}
 .consult-two{grid-template-columns:1fr!important}
 .smart-booking-page .booking-card{border-radius:18px!important}
}


/* Safaroka V1.9.89 — mixed room allocation */
.allocation-title{display:grid!important;grid-template-columns:30px minmax(0,1fr) auto;align-items:start}
.room-allocation-reset{align-self:center;border:0;background:transparent;color:#08705a;font-size:10px;font-weight:850;cursor:pointer;padding:7px 2px}
.room-allocation-reset:hover{text-decoration:underline}
.room-allocation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.room-allocation-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;border:1px solid #dce6e2;border-radius:16px;background:#fff;box-shadow:0 4px 14px rgba(31,67,57,.035);transition:border-color .18s,box-shadow .18s,background .18s,transform .18s}
.room-allocation-card:hover{transform:translateY(-1px);border-color:#b6d3c9;box-shadow:0 7px 20px rgba(8,112,90,.07)}
.room-allocation-card.active{border-color:#72ad9b;background:#f7fcfa;box-shadow:0 7px 20px rgba(8,112,90,.09)}
.room-allocation-info{min-width:0}.room-allocation-info>b{display:block;color:#173f35;font-size:14px;line-height:1.25}.room-allocation-info>small{display:block;margin-top:4px;color:#71827b;font-size:10px}.room-allocation-info>strong{display:block;margin-top:12px;color:#08705a;font-size:18px;letter-spacing:-.01em}.room-allocation-info>strong em{margin-left:3px;color:#73847d;font-size:9px;font-style:normal;font-weight:700}
.room-allocation-control{display:grid;grid-template-columns:34px 48px 34px;align-items:center;padding:4px;border:1px solid #d9e5e0;border-radius:13px;background:#f8fbf9}
.room-allocation-control button{width:34px;height:34px;border:0;border-radius:9px;background:#fff;color:#0a6f59;box-shadow:0 2px 7px rgba(27,67,56,.07);font-size:18px;font-weight:800;cursor:pointer}
.room-allocation-control button:hover{background:#edf8f4}.room-allocation-control span{text-align:center}.room-allocation-control span b{display:block;color:#173f35;font-size:15px;line-height:1}.room-allocation-control span small{display:block;margin-top:3px;color:#84918c;font-size:8px}
.room-allocation-hint{grid-column:1/-1;display:block;padding-top:10px;border-top:1px solid #edf2ef;color:#71827b;font-size:9.5px}.room-allocation-card.active .room-allocation-hint{color:#17624f;font-weight:750}
.room-allocation-status{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:11px 13px;border-radius:12px;border:1px solid #e3e9e6;background:#fafcfb}
.room-allocation-status>span{display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto;border-radius:9px;background:#eef3f1;color:#667c74}.room-allocation-status b,.room-allocation-status small{display:block}.room-allocation-status b{font-size:10.5px;color:#486158}.room-allocation-status small{margin-top:2px;font-size:9.5px;color:#788780}.room-allocation-status.complete{border-color:#cce6dc;background:#f1faf6}.room-allocation-status.complete>span{background:#dff3eb;color:#08705a}.room-allocation-status.complete b{color:#0a6f59}.room-allocation-status.incomplete{border-color:#eadfc1;background:#fffaf0}.room-allocation-status.incomplete>span{background:#f7edcf;color:#8b6b1e}
.booking-price-breakdown{margin:0 0 10px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.07)}
.booking-price-breakdown>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0}.booking-price-breakdown>div+div{border-top:1px solid rgba(255,255,255,.10)}.booking-price-breakdown span{color:#d4e6e0;font-size:10px;line-height:1.35}.booking-price-breakdown b{color:#fff;font-size:10.5px;white-space:nowrap}.booking-breakdown-empty{color:#bcd3cb!important;font-size:10px!important}
.booking-download.is-disabled{opacity:.45;pointer-events:none}.booking-submit.is-disabled,.booking-submit:disabled{opacity:.48;cursor:not-allowed;box-shadow:none!important}
@media(max-width:700px){.room-allocation-grid{grid-template-columns:1fr}.allocation-title{grid-template-columns:30px minmax(0,1fr) auto}.room-allocation-card{padding:14px}.room-allocation-control{grid-template-columns:32px 44px 32px}.room-allocation-control button{width:32px;height:32px}}
@media(max-width:420px){.room-allocation-card{grid-template-columns:1fr}.room-allocation-control{width:max-content}.room-allocation-hint{grid-column:1}.allocation-title{grid-template-columns:30px 1fr}.room-allocation-reset{grid-column:2;justify-self:start;padding-left:0}}
