.ab-booking-v8{
    --ab-ink:#0c1b2a;
    --ab-muted:#687583;
    --ab-line:rgba(12,27,42,.10);
    --ab-soft:#f6f8fa;
    position:relative;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--ab-line);
    border-radius:28px;
    padding:26px;
    box-shadow:0 24px 70px rgba(13,31,48,.12);
    opacity:0;
    transform:translateY(24px) scale(.985);
    animation:abBookingEnter .72s cubic-bezier(.2,.8,.2,1) .08s forwards;
}

@keyframes abBookingEnter{
    to{opacity:1;transform:translateY(0) scale(1)}
}

.ab-booking-v8__eyebrow{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:18px;
    font-size:11px;
    font-weight:800;
    letter-spacing:.15em;
    text-transform:uppercase;
    color:var(--ab-muted);
}

.ab-booking-v8__pulse{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#16a36a;
    box-shadow:0 0 0 6px rgba(22,163,106,.10);
}

.ab-booking-v8__heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    margin-bottom:24px;
}

.ab-booking-v8__heading h2{
    margin:0 0 6px;
    color:var(--ab-ink);
    font-size:clamp(24px,2.3vw,34px);
    line-height:1.05;
    letter-spacing:-.035em;
}

.ab-booking-v8__heading p,
.ab-booking-v8__step-head p{
    margin:0;
    color:var(--ab-muted);
    line-height:1.55;
}

.ab-booking-v8__from{
    text-align:right;
    white-space:nowrap;
}

.ab-booking-v8__from small,
.ab-booking-v8__from span{
    display:block;
    color:var(--ab-muted);
    font-size:11px;
}

.ab-booking-v8__from strong{
    display:block;
    color:var(--ab-ink);
    font-size:20px;
}

.ab-booking-v8__progress{
    display:flex;
    align-items:center;
    margin-bottom:28px;
}

.ab-booking-v8__progress button{
    appearance:none;
    border:0;
    background:none;
    padding:0;
    display:flex;
    align-items:center;
    gap:7px;
    color:#98a2ad;
    font:inherit;
    font-size:11px;
    font-weight:750;
    cursor:pointer;
}

.ab-booking-v8__progress button span{
    display:grid;
    place-items:center;
    width:27px;
    height:27px;
    border:1px solid var(--ab-line);
    border-radius:50%;
    background:#fff;
    transition:.28s ease;
}

.ab-booking-v8__progress button.is-active{
    color:var(--ab-ink);
}

.ab-booking-v8__progress button.is-active span,
.ab-booking-v8__progress button.is-done span{
    background:var(--ab-ink);
    border-color:var(--ab-ink);
    color:#fff;
}

.ab-booking-v8__progress i{
    height:1px;
    flex:1;
    margin:0 10px;
    background:var(--ab-line);
}

.ab-booking-v8__viewport{
    overflow:hidden;
    margin:0 -4px;
}

.ab-booking-v8__track{
    display:flex;
    width:300%;
    align-items:flex-start;
    transition:transform .58s cubic-bezier(.22,.75,.18,1);
    will-change:transform;
}

.ab-booking-v8__slide{
    width:33.333333%;
    padding:4px;
    opacity:.25;
    transform:scale(.985);
    transition:opacity .35s ease,transform .45s ease;
}

.ab-booking-v8__slide.is-current{
    opacity:1;
    transform:scale(1);
}

.ab-booking-v8__step-head{
    margin-bottom:20px;
}

.ab-booking-v8__step-head>span{
    display:block;
    margin-bottom:7px;
    color:#8b96a2;
    font-size:10px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.ab-booking-v8__step-head h3{
    margin:0 0 7px;
    color:var(--ab-ink);
    font-size:21px;
    letter-spacing:-.02em;
}

.ab-booking-v8__date{
    display:block;
    padding:16px;
    border:1px solid var(--ab-line);
    border-radius:18px;
    background:var(--ab-soft);
}

.ab-booking-v8__date span{
    display:block;
    margin-bottom:8px;
    color:var(--ab-muted);
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.ab-booking-v8__date input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    color:var(--ab-ink);
    font:inherit;
    font-size:16px;
    font-weight:700;
}

.ab-booking-v8__assurance{
    display:flex;
    gap:11px;
    align-items:flex-start;
    margin-top:14px;
    padding:13px 15px;
    border-radius:15px;
    background:#f3faf6;
    color:#38604b;
}

.ab-booking-v8__assurance>span{
    display:grid;
    place-items:center;
    flex:0 0 23px;
    height:23px;
    border-radius:50%;
    background:#dff3e7;
    font-weight:900;
}

.ab-booking-v8__assurance p{
    margin:0;
    font-size:12px;
    line-height:1.5;
}

.ab-booking-v8__guests{
    display:grid;
    gap:10px;
}

.ab-booking-v8__guest{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    padding:14px 15px;
    border:1px solid var(--ab-line);
    border-radius:17px;
    transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}

.ab-booking-v8__guest:hover{
    transform:translateY(-1px);
    box-shadow:0 8px 24px rgba(12,27,42,.06);
}

.ab-booking-v8__guest>div:first-child strong,
.ab-booking-v8__guest>div:first-child span{
    display:block;
}

.ab-booking-v8__guest>div:first-child strong{
    color:var(--ab-ink);
    font-size:14px;
}

.ab-booking-v8__guest>div:first-child span{
    margin-top:3px;
    color:var(--ab-muted);
    font-size:11px;
}

.ab-booking-v8__counter{
    display:flex;
    align-items:center;
    gap:12px;
}

.ab-booking-v8__counter button{
    width:38px;
    height:38px;
    border:1px solid var(--ab-line);
    border-radius:12px;
    background:#fff;
    color:var(--ab-ink);
    font-size:20px;
    cursor:pointer;
    transition:.2s ease;
}

.ab-booking-v8__counter button:hover{
    transform:scale(1.06);
    background:var(--ab-ink);
    color:#fff;
}

.ab-booking-v8__counter strong{
    min-width:20px;
    text-align:center;
    color:var(--ab-ink);
}

.ab-booking-v8__experience{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:12px;
    padding:15px;
    border:1px solid var(--ab-line);
    border-radius:18px;
    background:var(--ab-soft);
}

.ab-booking-v8__experience-icon{
    display:grid;
    place-items:center;
    width:43px;
    height:43px;
    border-radius:14px;
    background:var(--ab-ink);
    color:#fff;
    font-size:11px;
    font-weight:900;
}

.ab-booking-v8__experience small,
.ab-booking-v8__experience strong,
.ab-booking-v8__experience span{
    display:block;
}

.ab-booking-v8__experience small{
    color:var(--ab-muted);
    font-size:10px;
}

.ab-booking-v8__experience strong{
    margin-top:2px;
    color:var(--ab-ink);
    font-size:13px;
}

.ab-booking-v8__experience span{
    margin-top:3px;
    color:var(--ab-muted);
    font-size:11px;
}

.ab-booking-v8__check{
    display:grid!important;
    place-items:center;
    width:29px;
    height:29px;
    border-radius:50%;
    background:#e3f5ea;
    color:#168451!important;
    font-weight:900;
}

.ab-booking-v8__options{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-top:10px;
}

.ab-booking-v8__options div{
    padding:12px;
    border:1px dashed rgba(12,27,42,.15);
    border-radius:15px;
}

.ab-booking-v8__options span,
.ab-booking-v8__options strong{
    display:block;
}

.ab-booking-v8__options span{
    color:var(--ab-muted);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.ab-booking-v8__options strong{
    margin-top:4px;
    color:var(--ab-ink);
    font-size:11px;
    line-height:1.35;
}

.ab-booking-v8__validation{
    margin-top:14px;
    padding:11px 13px;
    border-radius:13px;
    background:#fff3f2;
    color:#a53c35;
    font-size:12px;
    font-weight:650;
    animation:abShake .28s ease;
}

@keyframes abShake{
    25%{transform:translateX(-4px)}
    50%{transform:translateX(4px)}
    75%{transform:translateX(-2px)}
}

.ab-booking-v8__summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-top:22px;
    padding-top:19px;
    border-top:1px solid var(--ab-line);
}

.ab-booking-v8__summary small,
.ab-booking-v8__summary>div:first-child span{
    display:block;
    color:var(--ab-muted);
    font-size:10px;
}

.ab-booking-v8__summary>div:first-child strong{
    display:block;
    margin:2px 0;
    color:var(--ab-ink);
    font-size:22px;
    letter-spacing:-.025em;
}

.ab-booking-v8__actions{
    display:flex;
    gap:8px;
}

.ab-booking-v8__back,
.ab-booking-v8__next,
.ab-booking-v8__add{
    min-height:46px;
    border-radius:14px;
    padding:0 16px;
    font:inherit;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;
}

.ab-booking-v8__back{
    border:1px solid var(--ab-line);
    background:#fff;
    color:var(--ab-ink);
}

.ab-booking-v8__next,
.ab-booking-v8__add{
    border:1px solid var(--ab-ink);
    background:var(--ab-ink);
    color:#fff;
}

.ab-booking-v8__next:hover,
.ab-booking-v8__add:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(12,27,42,.18);
}

.ab-booking-v8__next span{
    margin-left:7px;
}

.ab-booking-v8__add{
    display:flex;
    align-items:center;
    gap:10px;
}

.ab-booking-v8__add strong{
    font-size:19px;
}

.ab-booking-v8__success{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:12px;
    margin-top:15px;
    padding:14px;
    border-radius:17px;
    background:#eef9f3;
    animation:abSuccessIn .38s cubic-bezier(.2,.8,.2,1);
}

@keyframes abSuccessIn{
    from{opacity:0;transform:translateY(8px)}
    to{opacity:1;transform:translateY(0)}
}

.ab-booking-v8__success>span{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:50%;
    background:#d9f1e4;
    color:#147c4c;
    font-weight:900;
}

.ab-booking-v8__success strong{
    display:block;
    color:var(--ab-ink);
    font-size:12px;
}

.ab-booking-v8__success p{
    margin:2px 0 0;
    color:var(--ab-muted);
    font-size:10px;
    line-height:1.4;
}

.ab-booking-v8__success button{
    border:0;
    background:none;
    color:var(--ab-ink);
    font:inherit;
    font-size:11px;
    font-weight:850;
    cursor:pointer;
    text-decoration:underline;
}

@media (min-width:981px){
    .tour-booking-card:has(.ab-booking-v8){
        position:sticky;
        top:100px;
        align-self:start;
    }
}

@media (max-width:760px){
    .ab-booking-v8{
        border-radius:22px;
        padding:19px 16px;
        box-shadow:0 15px 45px rgba(13,31,48,.10);
    }

    .ab-booking-v8__heading{
        align-items:flex-end;
    }

    .ab-booking-v8__heading h2{
        font-size:25px;
    }

    .ab-booking-v8__from strong{
        font-size:17px;
    }

    .ab-booking-v8__progress button{
        font-size:0;
    }

    .ab-booking-v8__progress button span{
        font-size:11px;
    }

    .ab-booking-v8__progress i{
        margin:0 7px;
    }

    .ab-booking-v8__options{
        grid-template-columns:1fr;
    }

    .ab-booking-v8__summary{
        align-items:flex-end;
    }

    .ab-booking-v8__summary>div:first-child strong{
        font-size:19px;
    }

    .ab-booking-v8__back,
    .ab-booking-v8__next,
    .ab-booking-v8__add{
        min-height:48px;
        padding:0 13px;
    }
}

@media (max-width:430px){
    .ab-booking-v8__heading{
        display:block;
    }

    .ab-booking-v8__from{
        display:flex;
        align-items:baseline;
        gap:5px;
        margin-top:13px;
        text-align:left;
    }

    .ab-booking-v8__from small,
    .ab-booking-v8__from strong,
    .ab-booking-v8__from span{
        display:inline;
    }

    .ab-booking-v8__summary{
        display:block;
    }

    .ab-booking-v8__actions{
        margin-top:12px;
    }

    .ab-booking-v8__next,
    .ab-booking-v8__add{
        flex:1;
        justify-content:center;
    }
}

@media (prefers-reduced-motion:reduce){
    .ab-booking-v8,
    .ab-booking-v8__track,
    .ab-booking-v8__slide,
    .ab-booking-v8__success{
        animation:none!important;
        transition:none!important;
        opacity:1;
        transform:none;
    }
}

/* V8_SAFARI_VARIANT_FRONTEND */

.ab-v8-variant-zone{
    margin:24px 0;
    padding:22px;
    border:1px solid rgba(15,23,42,.10);
    border-radius:22px;
    background:#fff;
}

.ab-v8-variant-head{
    display:flex;
    justify-content:space-between;
    gap:18px;
    align-items:flex-end;
    margin-bottom:16px;
}

.ab-v8-variant-head small,
.ab-v8-variant-description small,
.ab-v8-itinerary-title small{
    display:block;
    font-size:11px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    opacity:.58;
    margin-bottom:5px;
}

.ab-v8-variant-head h3,
.ab-v8-variant-description h3,
.ab-v8-itinerary-title h3{
    margin:0;
}

.ab-v8-variant-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
    gap:10px;
}

.ab-v8-variant-card{
    appearance:none;
    width:100%;
    text-align:left;
    border:1px solid rgba(15,23,42,.12);
    border-radius:16px;
    background:#fff;
    padding:14px;
    cursor:pointer;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.ab-v8-variant-card:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 30px rgba(15,23,42,.08);
}

.ab-v8-variant-card.is-selected{
    border-color:#0f172a;
    box-shadow:0 0 0 1px #0f172a;
}

.ab-v8-variant-card span{
    display:block;
    font-size:12px;
    opacity:.62;
    margin-bottom:5px;
}

.ab-v8-variant-card strong{
    display:block;
    font-size:15px;
}

.ab-v8-variant-card em{
    display:block;
    font-style:normal;
    margin-top:8px;
    font-weight:700;
}

.ab-v8-variant-detail{
    margin-top:20px;
    border-top:1px solid rgba(15,23,42,.09);
    padding-top:20px;
}

.ab-v8-variant-description p{
    line-height:1.7;
    opacity:.76;
}

.ab-v8-variant-price-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin:18px 0;
}

.ab-v8-variant-price-grid div{
    padding:13px;
    border-radius:14px;
    background:rgba(15,23,42,.035);
}

.ab-v8-variant-price-grid span,
.ab-v8-variant-price-grid strong{
    display:block;
}

.ab-v8-variant-price-grid span{
    font-size:12px;
    opacity:.6;
    margin-bottom:4px;
}

.ab-v8-itinerary{
    margin-top:24px;
}

.ab-v8-itinerary-day{
    position:relative;
    padding:0 0 22px 30px;
    border-left:1px solid rgba(15,23,42,.14);
}

.ab-v8-itinerary-day:last-child{
    border-left-color:transparent;
}

.ab-v8-itinerary-day::before{
    content:"";
    position:absolute;
    width:11px;
    height:11px;
    border-radius:50%;
    background:#0f172a;
    left:-6px;
    top:5px;
}

.ab-v8-itinerary-day small{
    font-weight:700;
    opacity:.58;
}

.ab-v8-itinerary-day h4{
    margin:3px 0 6px;
}

.ab-v8-itinerary-day p{
    margin:0;
    line-height:1.65;
    opacity:.76;
}

.ab-v8-package-lists{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    margin-top:20px;
}

.ab-v8-package-lists ul{
    padding-left:18px;
    line-height:1.7;
}

@media(max-width:700px){
    .ab-v8-variant-zone{padding:16px}
    .ab-v8-variant-head{display:block}
    .ab-v8-variant-head>span{display:block;margin-top:6px}
    .ab-v8-variant-price-grid{grid-template-columns:1fr}
    .ab-v8-package-lists{grid-template-columns:1fr}
}

/* ==========================================================
   AB_SIGNATURE_BOOKING_V1
   Premium booking UX — isolated final layer
   ========================================================== */

#ab-booking-v8.ab-booking-v8{
    --abx-ink:#10251f;
    --abx-green:#173f34;
    --abx-green-2:#205747;
    --abx-orange:#ef7f2d;
    --abx-orange-dark:#d9681d;
    --abx-cream:#fbfaf6;
    --abx-soft:#f5f7f4;
    --abx-line:rgba(16,37,31,.10);
    --abx-muted:#6d7873;

    position:relative;
    overflow:hidden;
    opacity:1;
    transform:none;
    animation:none;
    isolation:isolate;

    padding:0;
    border:1px solid var(--abx-line);
    border-radius:30px;
    background:#fff;

    box-shadow:
        0 30px 80px rgba(18,43,35,.10),
        0 4px 18px rgba(18,43,35,.045);
}

#ab-booking-v8::before{
    content:"";
    position:absolute;
    z-index:-1;
    top:-150px;
    right:-150px;
    width:330px;
    height:330px;
    border-radius:50%;
    background:radial-gradient(
        circle,
        rgba(239,127,45,.10),
        rgba(239,127,45,0) 70%
    );
    pointer-events:none;
}

#ab-booking-v8 .ab-booking-v8__topline{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:24px 26px 0;
}

#ab-booking-v8 .ab-booking-v8__eyebrow{
    margin:0;
    color:var(--abx-green);
    font-size:10px;
    font-weight:900;
    letter-spacing:.15em;
}

#ab-booking-v8 .ab-booking-v8__pulse{
    background:var(--abx-orange);
    box-shadow:0 0 0 6px rgba(239,127,45,.11);
}

#ab-booking-v8 .ab-booking-v8__trust{
    display:flex;
    align-items:center;
    gap:6px;
    color:#527064;
    font-size:10px;
    font-weight:800;
}

#ab-booking-v8 .ab-booking-v8__trust span{
    display:grid;
    place-items:center;
    width:19px;
    height:19px;
    border-radius:50%;
    background:#eaf5ef;
    color:#168252;
}

#ab-booking-v8 .ab-booking-v8__heading{
    margin:0;
    padding:17px 26px 24px;
    align-items:flex-end;
}

#ab-booking-v8 .ab-booking-v8__heading h2{
    max-width:360px;
    margin-bottom:7px;
    color:var(--abx-ink);
    font-size:clamp(28px,2.5vw,38px);
    line-height:.98;
    letter-spacing:-.045em;
}

#ab-booking-v8 .ab-booking-v8__heading p{
    max-width:370px;
    color:var(--abx-muted);
    font-size:12px;
}

#ab-booking-v8 .ab-booking-v8__from{
    padding:10px 12px;
    border:1px solid var(--abx-line);
    border-radius:15px;
    background:rgba(255,255,255,.75);
}

#ab-booking-v8 .ab-booking-v8__from small{
    text-transform:uppercase;
    letter-spacing:.09em;
}

#ab-booking-v8 .ab-booking-v8__from strong{
    margin:2px 0;
    color:var(--abx-green);
    font-size:21px;
    letter-spacing:-.035em;
}

/* Progress */

#ab-booking-v8 .ab-booking-v8__progress{
    position:relative;
    margin:0;
    padding:17px 26px;
    border-top:1px solid var(--abx-line);
    border-bottom:1px solid var(--abx-line);
    background:var(--abx-cream);
}

#ab-booking-v8 .ab-booking-v8__progress button{
    position:relative;
    z-index:2;
    gap:8px;
    color:#919a96;
    font-size:10px;
    font-weight:850;
    letter-spacing:.02em;
}

#ab-booking-v8 .ab-booking-v8__progress button b{
    font:inherit;
}

#ab-booking-v8 .ab-booking-v8__progress button span{
    width:30px;
    height:30px;
    border:1px solid rgba(16,37,31,.13);
    background:#fff;
    color:#8b9691;
    box-shadow:0 2px 7px rgba(16,37,31,.04);
}

#ab-booking-v8 .ab-booking-v8__progress button.is-active{
    color:var(--abx-green);
}

#ab-booking-v8 .ab-booking-v8__progress button.is-active span{
    border-color:var(--abx-orange);
    background:var(--abx-orange);
    color:#fff;
    box-shadow:0 7px 16px rgba(239,127,45,.20);
}

#ab-booking-v8 .ab-booking-v8__progress button.is-done span{
    border-color:var(--abx-green);
    background:var(--abx-green);
}

#ab-booking-v8 .ab-booking-v8__progress i{
    background:rgba(16,37,31,.11);
}

/* Slides */

#ab-booking-v8 .ab-booking-v8__viewport{
    margin:0;
    padding:0;
    overflow:hidden;
}

#ab-booking-v8 .ab-booking-v8__track{
    transition:transform .42s cubic-bezier(.22,.75,.18,1);
}

#ab-booking-v8 .ab-booking-v8__slide{
    padding:27px 26px 8px;
    opacity:.15;
    transform:none;
}

#ab-booking-v8 .ab-booking-v8__slide.is-current{
    opacity:1;
}

#ab-booking-v8 .ab-booking-v8__step-head{
    margin-bottom:20px;
}

#ab-booking-v8 .ab-booking-v8__step-head>span{
    margin-bottom:8px;
    color:var(--abx-orange);
    font-size:9px;
    font-weight:900;
}

#ab-booking-v8 .ab-booking-v8__step-head h3{
    margin-bottom:6px;
    color:var(--abx-ink);
    font-size:22px;
    line-height:1.08;
    letter-spacing:-.035em;
}

#ab-booking-v8 .ab-booking-v8__step-head p{
    max-width:520px;
    color:var(--abx-muted);
    font-size:12px;
    line-height:1.55;
}

/* Date */

#ab-booking-v8 .ab-booking-v8__date{
    position:relative;
    padding:17px 18px;
    border:1px solid rgba(16,37,31,.12);
    border-radius:18px;
    background:#fff;
    box-shadow:0 7px 24px rgba(16,37,31,.045);
    transition:border-color .18s ease,box-shadow .18s ease;
}

#ab-booking-v8 .ab-booking-v8__date:focus-within{
    border-color:rgba(239,127,45,.60);
    box-shadow:0 0 0 4px rgba(239,127,45,.08);
}

#ab-booking-v8 .ab-booking-v8__date>span{
    margin-bottom:2px;
    color:var(--abx-ink);
    font-size:10px;
    font-weight:900;
}

#ab-booking-v8 .ab-booking-v8__field-hint{
    display:block;
    margin-bottom:12px;
    color:var(--abx-muted);
    font-size:10px;
}

#ab-booking-v8 .ab-booking-v8__date input{
    min-height:42px;
    padding:0 12px;
    border:1px solid var(--abx-line);
    border-radius:12px;
    background:var(--abx-soft);
    color:var(--abx-ink);
    cursor:pointer;
}

#ab-booking-v8 .ab-booking-v8__assurance{
    margin-top:12px;
    border:1px solid rgba(22,132,81,.08);
    background:#f2faf5;
}

/* Guests */

#ab-booking-v8 .ab-booking-v8__guests{
    gap:9px;
}

#ab-booking-v8 .ab-booking-v8__guest{
    min-height:68px;
    padding:12px 14px;
    border:1px solid var(--abx-line);
    border-radius:17px;
    background:#fff;
    box-shadow:none;
}

#ab-booking-v8 .ab-booking-v8__guest:hover{
    transform:none;
    border-color:rgba(239,127,45,.28);
    box-shadow:0 8px 22px rgba(16,37,31,.04);
}

#ab-booking-v8 .ab-booking-v8__guest>div:first-child strong{
    color:var(--abx-ink);
    font-size:13px;
}

#ab-booking-v8 .ab-booking-v8__guest>div:first-child span{
    color:var(--abx-muted);
}

#ab-booking-v8 .ab-booking-v8__counter{
    gap:8px;
    padding:4px;
    border:1px solid var(--abx-line);
    border-radius:14px;
    background:var(--abx-soft);
}

#ab-booking-v8 .ab-booking-v8__counter button{
    width:35px;
    height:35px;
    border:0;
    border-radius:10px;
    background:#fff;
    color:var(--abx-green);
    box-shadow:0 2px 7px rgba(16,37,31,.06);
    font-size:18px;
    font-weight:600;
}

#ab-booking-v8 .ab-booking-v8__counter button:hover{
    transform:none;
    background:var(--abx-green);
    color:#fff;
}

#ab-booking-v8 .ab-booking-v8__counter strong{
    min-width:23px;
    color:var(--abx-ink);
    font-size:14px;
}

/* Review */

#ab-booking-v8 .ab-booking-v8__experience{
    padding:14px;
    border:1px solid rgba(23,63,52,.11);
    background:#f7f9f7;
}

#ab-booking-v8 .ab-booking-v8__experience-icon{
    width:45px;
    height:45px;
    border-radius:14px;
    background:var(--abx-green);
}

#ab-booking-v8 .ab-booking-v8__options{
    gap:9px;
}

#ab-booking-v8 .ab-booking-v8__options div{
    position:relative;
    padding:13px 14px;
    border:1px solid var(--abx-line);
    border-radius:15px;
    background:#fff;
}

#ab-booking-v8 .ab-booking-v8__options span{
    color:var(--abx-orange-dark);
    font-weight:900;
}

#ab-booking-v8 .ab-booking-v8__options strong{
    color:var(--abx-ink);
}

#ab-booking-v8 .ab-booking-v8__options small{
    display:inline-block;
    margin-top:7px;
    padding:4px 7px;
    border-radius:999px;
    background:#f4f1eb;
    color:#7a6d5f;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.07em;
}

#ab-booking-v8 .ab-booking-v8__review-note{
    display:flex;
    gap:9px;
    align-items:flex-start;
    margin-top:10px;
    padding:11px 12px;
    border-radius:14px;
    background:#f2faf5;
    color:#426256;
}

#ab-booking-v8 .ab-booking-v8__review-note>span{
    display:grid;
    place-items:center;
    flex:0 0 21px;
    height:21px;
    border-radius:50%;
    background:#dcefe4;
    color:#157a4b;
    font-size:10px;
    font-weight:900;
}

#ab-booking-v8 .ab-booking-v8__review-note p{
    margin:0;
    font-size:10px;
    line-height:1.5;
}

/* Price / action dock */

#ab-booking-v8 .ab-booking-v8__summary{
    position:relative;
    margin:18px 26px 25px;
    padding:17px;
    border:0;
    border-radius:20px;
    background:var(--abx-green);
    color:#fff;
    box-shadow:0 14px 34px rgba(23,63,52,.16);
}

#ab-booking-v8 .ab-booking-v8__summary small,
#ab-booking-v8 .ab-booking-v8__summary>div:first-child span{
    color:rgba(255,255,255,.67);
}

#ab-booking-v8 .ab-booking-v8__summary>div:first-child strong{
    color:#fff;
    font-size:23px;
}

#ab-booking-v8 .ab-booking-v8__actions{
    align-items:center;
}

#ab-booking-v8 .ab-booking-v8__back,
#ab-booking-v8 .ab-booking-v8__next,
#ab-booking-v8 .ab-booking-v8__add{
    min-height:48px;
    border-radius:14px;
    padding:0 17px;
}

#ab-booking-v8 .ab-booking-v8__back{
    border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.08);
    color:#fff;
}

#ab-booking-v8 .ab-booking-v8__next,
#ab-booking-v8 .ab-booking-v8__add{
    border-color:var(--abx-orange);
    background:var(--abx-orange);
    color:#fff;
    box-shadow:0 8px 20px rgba(0,0,0,.12);
}

#ab-booking-v8 .ab-booking-v8__next:hover,
#ab-booking-v8 .ab-booking-v8__add:hover{
    transform:translateY(-1px);
    background:var(--abx-orange-dark);
    border-color:var(--abx-orange-dark);
    box-shadow:0 10px 24px rgba(0,0,0,.15);
}

/* Validation / success */

#ab-booking-v8 .ab-booking-v8__validation{
    margin:14px 26px 0;
}

#ab-booking-v8 .ab-booking-v8__success{
    margin:0 26px 25px;
    border:1px solid rgba(22,132,81,.10);
    background:#edf8f1;
}

#ab-booking-v8 .ab-booking-v8__success button{
    color:var(--abx-green);
}

/* Safari packages */

#ab-booking-v8 .ab-v8-variant-zone{
    margin:0 26px 22px;
    padding:17px;
    border:1px solid var(--abx-line);
    border-radius:19px;
    background:#fafbf9;
}

#ab-booking-v8 .ab-v8-variant-card{
    border-color:var(--abx-line);
    background:#fff;
}

#ab-booking-v8 .ab-v8-variant-card.is-selected{
    border-color:var(--abx-orange);
    box-shadow:0 0 0 2px rgba(239,127,45,.10);
}

#ab-booking-v8 .ab-v8-variant-card.is-selected em{
    color:var(--abx-orange-dark);
}

/*
 * V11 owns the outer Tour Detail layout.
 * Never make the booking card sticky here.
 */
.albadi-tour-detail-v8 .tour-booking-card:has(#ab-booking-v8){
    position:relative!important;
    top:auto!important;
    align-self:start!important;
    max-height:none!important;
    overflow:visible!important;
    transform:none!important;
    contain:none!important;
}

/* Mobile */

@media (max-width:760px){
    #ab-booking-v8.ab-booking-v8{
        border-radius:23px;
    }

    #ab-booking-v8 .ab-booking-v8__topline{
        padding:19px 17px 0;
    }

    #ab-booking-v8 .ab-booking-v8__trust{
        font-size:9px;
    }

    #ab-booking-v8 .ab-booking-v8__heading{
        display:block;
        padding:15px 17px 19px;
    }

    #ab-booking-v8 .ab-booking-v8__heading h2{
        font-size:29px;
    }

    #ab-booking-v8 .ab-booking-v8__from{
        display:flex;
        align-items:baseline;
        gap:5px;
        width:max-content;
        margin-top:13px;
        text-align:left;
    }

    #ab-booking-v8 .ab-booking-v8__from small,
    #ab-booking-v8 .ab-booking-v8__from strong,
    #ab-booking-v8 .ab-booking-v8__from span{
        display:inline;
    }

    #ab-booking-v8 .ab-booking-v8__progress{
        padding:14px 17px;
    }

    #ab-booking-v8 .ab-booking-v8__progress button{
        font-size:0;
    }

    #ab-booking-v8 .ab-booking-v8__progress button b{
        display:none;
    }

    #ab-booking-v8 .ab-booking-v8__progress button span{
        font-size:10px;
    }

    #ab-booking-v8 .ab-booking-v8__slide{
        padding:22px 17px 5px;
    }

    #ab-booking-v8 .ab-booking-v8__summary{
        display:block;
        margin:16px 17px 19px;
    }

    #ab-booking-v8 .ab-booking-v8__actions{
        width:100%;
        margin-top:13px;
    }

    #ab-booking-v8 .ab-booking-v8__next,
    #ab-booking-v8 .ab-booking-v8__add{
        flex:1;
        justify-content:center;
    }

    #ab-booking-v8 .ab-booking-v8__validation{
        margin-left:17px;
        margin-right:17px;
    }

    #ab-booking-v8 .ab-booking-v8__success{
        grid-template-columns:auto 1fr;
        margin-left:17px;
        margin-right:17px;
    }

    #ab-booking-v8 .ab-booking-v8__success button{
        grid-column:2;
        justify-self:start;
    }

    #ab-booking-v8 .ab-v8-variant-zone{
        margin-left:17px;
        margin-right:17px;
    }
}

@media (max-width:420px){
    #ab-booking-v8 .ab-booking-v8__topline{
        align-items:flex-start;
    }

    #ab-booking-v8 .ab-booking-v8__trust{
        max-width:105px;
        line-height:1.25;
    }

    #ab-booking-v8 .ab-booking-v8__guest{
        padding:11px;
    }

    #ab-booking-v8 .ab-booking-v8__counter button{
        width:33px;
        height:33px;
    }
}

@media (prefers-reduced-motion:reduce){
    #ab-booking-v8 *,
    #ab-booking-v8 *::before,
    #ab-booking-v8 *::after{
        scroll-behavior:auto!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
    }
}

/* ==========================================================
   AB_BOOKING_STEP1_UI
   Clean single-action booking wizard
   ========================================================== */

#ab-booking-v8{
    --book-orange:#f47c35;
    --book-green:#103f34;
    --book-text:#102d26;
    --book-muted:#73807c;
}

/* Header */

#ab-booking-v8 .ab-booking-v8__heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:18px;
}

#ab-booking-v8 .ab-booking-v8__heading>div:first-child{
    min-width:0;
}

#ab-booking-v8 .ab-booking-v8__heading h2{
    font-size:clamp(25px,2vw,34px);
}

/* Progress should remain readable inside narrow sidebar */

#ab-booking-v8 .ab-booking-v8__progress{
    gap:0;
}

#ab-booking-v8 .ab-booking-v8__progress button{
    flex:0 0 auto;
}

#ab-booking-v8 .ab-booking-v8__progress i{
    min-width:16px;
}

/* Guests */

#ab-booking-v8 .ab-booking-v8__guest{
    min-width:0;
}

#ab-booking-v8 .ab-booking-v8__guest>div:first-child{
    min-width:0;
}

#ab-booking-v8 .ab-booking-v8__counter{
    flex:0 0 auto;
}

/* ----------------------------------------------------------
   SUMMARY / CTA
   Critical fix: no more squeezed Back + Continue + Add
   ---------------------------------------------------------- */

#ab-booking-v8 .ab-booking-v8__summary{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:15px;
    align-items:stretch;
}

#ab-booking-v8 .ab-booking-v8__summary>div:first-child{
    min-width:0;
}

#ab-booking-v8 .ab-booking-v8__summary>div:first-child strong{
    display:block;
    font-size:clamp(22px,2vw,28px);
    line-height:1;
}

#ab-booking-v8 .ab-booking-v8__actions{
    display:grid;
    grid-template-columns:auto minmax(150px,1fr);
    width:100%;
    gap:9px;
}

#ab-booking-v8 .ab-booking-v8__back{
    min-width:76px;
}

#ab-booking-v8 .ab-booking-v8__next,
#ab-booking-v8 .ab-booking-v8__add{
    width:100%;
    min-width:0;
    justify-content:center;
    white-space:nowrap;
}

/*
 * hidden must ALWAYS win.
 * This prevents CSS display:flex/grid from resurrecting the Add button
 * while the user is still on Date/Guests.
 */
#ab-booking-v8 [hidden]{
    display:none!important;
}

/* Next CTA */

#ab-booking-v8 .ab-booking-v8__next{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:13px;
}

/* Final Add CTA */

#ab-booking-v8 .ab-booking-v8__add{
    align-items:center;
    justify-content:center;
    gap:9px;
    font-size:13px;
}

#ab-booking-v8 .ab-booking-v8__add:not([hidden]){
    display:flex;
}

/* Back is intentionally secondary */

#ab-booking-v8 .ab-booking-v8__back{
    font-size:11px;
}

/* Review options */

#ab-booking-v8 .ab-booking-v8__options{
    grid-template-columns:1fr;
}

/* Success state */

#ab-booking-v8 .ab-booking-v8__success{
    grid-template-columns:36px minmax(0,1fr);
    gap:11px;
}

#ab-booking-v8 .ab-booking-v8__success>button{
    grid-column:2;
    justify-self:start;
    margin-top:2px;
}

/* Sidebar-specific compactness */

@media (min-width:901px) and (max-width:1280px){

    #ab-booking-v8 .ab-booking-v8__topline{
        padding-left:20px;
        padding-right:20px;
    }

    #ab-booking-v8 .ab-booking-v8__heading{
        padding-left:20px;
        padding-right:20px;
    }

    #ab-booking-v8 .ab-booking-v8__progress{
        padding-left:20px;
        padding-right:20px;
    }

    #ab-booking-v8 .ab-booking-v8__slide{
        padding-left:20px;
        padding-right:20px;
    }

    #ab-booking-v8 .ab-booking-v8__summary{
        margin-left:20px;
        margin-right:20px;
    }

    #ab-booking-v8 .ab-booking-v8__validation,
    #ab-booking-v8 .ab-booking-v8__success{
        margin-left:20px;
        margin-right:20px;
    }

    #ab-booking-v8 .ab-booking-v8__heading{
        grid-template-columns:1fr;
    }

    #ab-booking-v8 .ab-booking-v8__from{
        width:max-content;
        text-align:left;
    }

    #ab-booking-v8 .ab-booking-v8__progress button{
        font-size:9px;
    }

    #ab-booking-v8 .ab-booking-v8__progress button span{
        width:27px;
        height:27px;
    }
}

/* Mobile */

@media (max-width:760px){

    #ab-booking-v8 .ab-booking-v8__heading{
        grid-template-columns:1fr;
    }

    #ab-booking-v8 .ab-booking-v8__summary{
        display:grid;
    }

    #ab-booking-v8 .ab-booking-v8__actions{
        grid-template-columns:auto minmax(0,1fr);
        margin-top:0;
    }

    #ab-booking-v8 .ab-booking-v8__next,
    #ab-booking-v8 .ab-booking-v8__add{
        min-height:52px;
    }
}

/* Very small phones */

@media (max-width:390px){

    #ab-booking-v8 .ab-booking-v8__actions{
        grid-template-columns:1fr;
    }

    #ab-booking-v8 .ab-booking-v8__back{
        width:100%;
    }
}
