/* ================= GLOBAL ================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Poppins',sans-serif;
    background:#f4f1ea;
    color:#233228;
}

/* ================= NAVBAR ================= */

.navbar{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:8px 6%;
    background:rgba(10,25,18,0.78);
    backdrop-filter:blur(10px);
    z-index:999;
    transition:.4s;
}

.logo-section{
    display:flex;
    align-items:center;
    text-decoration:none;
    flex-shrink:0;
    position:relative;
    width:220px;
    height:66px;
    overflow:visible;
}

.logo-section img{
    position:absolute;
    top:50%;
    left:50%;
    display:block;
    width:234px;
    max-width:none;
    height:auto;
    max-height:none;
    object-fit:contain;
    transform:translate(-50%,-50%);
}

nav ul{
    display:flex;
    list-style:none;
    gap:28px;
}

nav ul li a{
    text-decoration:none;
    color:#f4efe7;
    font-size:15px;
    transition:.3s;
}

nav ul li a:hover{
    color:#b6d1b0;
}

/* ================= HERO ================= */

#hero{
    position:relative;
    height:100vh;
    overflow:hidden;
}

.hero-bg{
    position:absolute;
    width:100%;
    height:100%;
    object-fit:cover;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:
    linear-gradient(
        rgba(0,0,0,.45),
        rgba(0,0,0,.60)
    );
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:20px;
}

.hero-content{
    color:white;
    max-width:850px;
}

.hero-brand-icon{
    --hero-icon-size:95px;
    width:var(--hero-icon-size);
    height:var(--hero-icon-size);
    margin:0 auto 24px;
    overflow:hidden;
}

.hero-brand-icon img{
    display:block;
    width:calc(var(--hero-icon-size) * 3.547);
    max-width:none;
    height:auto;
    object-fit:contain;
    transform:translate(-2.865%,-26.953%);
    clip-path:inset(0 74% 0 0);
}

.hero-content h1{
    font-family:'Cinzel',serif;
    font-size:70px;
    line-height:1.1;
    margin-bottom:20px;
    text-shadow:0 5px 20px rgba(0,0,0,.4);
}

.hero-content p{
    font-size:20px;
    color:#ece6da;
    margin-bottom:35px;
}

/* BUTTONS */

.hero-buttons{
    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
}

.btn,
.btn2{
    padding:15px 32px;
    border-radius:35px;
    text-decoration:none;
    transition:.4s;
    font-weight:500;
}

.btn{
    background:#284434;
    color:white;
}

.btn:hover{
    background:#3d5c4a;
    transform:translateY(-3px);
}

.btn2{
    border:2px solid white;
    color:white;
}

.btn2:hover{
    background:white;
    color:#203026;
}

/* ================= ABOUT ================= */

#about{
    padding:82px 8%;
    background:#f7f4ee;
}

.about-container{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:55px;
    flex-wrap:wrap;
}

.about-image{
    flex:1;
    min-width:320px;
}

.about-image img{
    width:100%;
    border-radius:24px;
    box-shadow:
    0 18px 45px
    rgba(0,0,0,.15);
}

.about-text{
    flex:1;
    min-width:320px;
}

.about-text h2{
    font-family:'Cinzel',serif;
    font-size:42px;
    color:#213629;
    margin-bottom:22px;
}

.about-text p{
    margin-bottom:18px;
    color:#58685c;
    line-height:1.9;
    font-size:16px;
}

/* ================= SECTION TITLE ================= */

.section-title{
    text-align:center;
    margin-bottom:55px;
}

.section-title h2{
    font-family:'Cinzel',serif;
    font-size:42px;
    color:#213629;
    margin-bottom:12px;
}

.section-title p{
    color:#67766b;
    font-size:16px;
}

/* ================= ROOMS ================= */

#rooms{
    padding:82px 8%;
    background:#eef3ec;
}

.room-container{
    display:flex;
    justify-content:center;
    gap:35px;
    flex-wrap:wrap;
}

.room-card{
    background:white;
    width:450px;
    border-radius:24px;
    overflow:hidden;
    box-shadow:
    0 18px 40px rgba(0,0,0,.12);
    transition:.45s;
}

.room-card:hover{
    transform:
    translateY(-10px);
    box-shadow:
    0 30px 55px rgba(0,0,0,.18);
}

.room-card img{
    width:100%;
    height:300px;
    object-fit:cover;
    transition:.6s;
}

.room-card:hover img{
    transform:scale(1.08);
}

.room-content{
    padding:28px;
}

.room-content h3{
    font-family:'Cinzel',serif;
    font-size:28px;
    color:#213629;
    margin-bottom:15px;
}

.room-content p{
    color:#657166;
    line-height:1.8;
    margin-bottom:18px;
}

.room-content ul{
    list-style:none;
}

.room-content ul li{
    margin-bottom:12px;
    color:#3c4d40;
    padding-left:5px;
}

/* ================= GALLERY ================= */

#gallery{
    padding:110px 8%;
    background:#f8f5ef;
}

.gallery-carousel{
    position:relative;
    width:100%;
    height:420px;
    display:flex;
    justify-content:center;
    align-items:center;
    overflow:hidden;
}

.gallery-track{
    position:relative;
    width:100%;
    height:100%;
}

.gallery-track img{
    position:absolute;
    top:50%;
    left:50%;
    width:520px;
    height:330px;
    object-fit:cover;
    border-radius:26px;
    box-shadow:0 20px 50px rgba(0,0,0,.22);
    transform:translate(-50%,-50%) scale(.6);
    opacity:0;
    transition:all .7s ease;
    cursor:pointer;
}

.gallery-track img.active{
    transform:translate(-50%,-50%) scale(1);
    opacity:1;
    z-index:5;
}

.gallery-track img.prev{
    transform:translate(-105%,-50%) scale(.72);
    opacity:.55;
    z-index:3;
}

.gallery-track img.next{
    transform:translate(5%,-50%) scale(.72);
    opacity:.55;
    z-index:3;
}

.gallery-track img.far-prev{
    transform:translate(-150%,-50%) scale(.48);
    opacity:.25;
    z-index:1;
}

.gallery-track img.far-next{
    transform:translate(50%,-50%) scale(.48);
    opacity:.25;
    z-index:1;
}

.gallery-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:52px;
    height:52px;
    border:none;
    border-radius:50%;
    background:#274233;
    color:white;
    font-size:34px;
    cursor:pointer;
    z-index:10;
}

.gallery-prev{
    left:20px;
}

.gallery-next{
    right:20px;
}

.gallery-counter{
    position:absolute;
    bottom:8px;
    left:50%;
    transform:translateX(-50%);
    background:#274233;
    color:white;
    padding:8px 18px;
    border-radius:30px;
    font-weight:600;
    z-index:10;
}

@media(max-width:768px){
    .gallery-carousel{
        height:330px;
    }

    .gallery-track img{
        width:78%;
        height:230px;
    }

    .gallery-btn{
        width:42px;
        height:42px;
        font-size:28px;
    }
}

/* ================= NEARBY PLACES ================= */

#places{
    padding:110px 8%;
    background:#edf4ee;
}

.places-container{
    display:flex;
    justify-content:center;
    gap:28px;
    flex-wrap:wrap;
}

.place-card{
    width:320px;
    overflow:hidden;
    border-radius:24px;
    background:white;
    box-shadow:
    0 18px 45px rgba(0,0,0,.10);
    transition:.45s;
    cursor:pointer;
}

.place-card:hover{
    transform:
    translateY(-10px);
    box-shadow:
    0 28px 55px rgba(0,0,0,.18);
}

.place-card img{
    width:100%;
    height:240px;
    object-fit:cover;
    transition:.7s;
}

.place-card:hover img{
    transform:scale(1.1);
}

.place-card h3{
    padding:22px;
    font-family:'Cinzel',serif;
    color:#233629;
    font-size:24px;
    text-align:center;
}

/* ================= SCROLL ANIMATION BASE ================= */

.room-card,
.place-card,
.gallery-container img{
    opacity:0;
    transform:
    translateY(40px);
    animation:
    fadeUp 1s forwards;
}

.room-card:nth-child(1){
    animation-delay:.2s;
}

.room-card:nth-child(2){
    animation-delay:.4s;
}

.place-card:nth-child(1){
    animation-delay:.1s;
}

.place-card:nth-child(2){
    animation-delay:.2s;
}

.place-card:nth-child(3){
    animation-delay:.3s;
}

.place-card:nth-child(4){
    animation-delay:.4s;
}

.place-card:nth-child(5){
    animation-delay:.5s;
}

.place-card:nth-child(6){
    animation-delay:.6s;
}

/* ================= ANIMATION ================= */

@keyframes fadeUp{

    from{
        opacity:0;
        transform:
        translateY(40px);
    }

    to{
        opacity:1;
        transform:
        translateY(0);
    }

}

/* ================= BOOKING ================= */

#booking{
    padding:82px 8%;
    background:#f8f5ef;
}

.booking-container{
    display:block;
}

.booking-form{
    width:100%;
    max-width:900px;
    margin:auto;
}
.booking-form input,
.booking-form select,
.booking-form textarea{
    width:100%;
    padding:15px 18px;
    margin-top:10px;
    margin-bottom:22px;
    border:none;
    border-radius:16px;
    background:#eef3ec;
    font-size:15px;
    color:#2b382f;
    outline:none;
}

.booking-form textarea{
    height:130px;
    resize:none;
}

.booking-form label{
    color:#3e5144;
    font-weight:500;
}

.booking-form button{
    width:100%;
    padding:16px;
    border:none;
    border-radius:30px;
    background:#274233;
    color:white;
    font-size:16px;
    cursor:pointer;
    transition:.4s;
}

.booking-form button:hover{
    background:#3f5e4d;
    transform:translateY(-3px);
}

/* ================= BOOKING CALENDAR FINAL ================= */

.booking-calendar{
    background:#ffffff;
    padding:30px;
    border-radius:26px;
    margin:18px 0 28px;
    box-shadow:0 18px 45px rgba(0,0,0,.10);
    width:100%;
}

.calendar-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:20px 0 25px;
}

.calendar-header h3{
    flex:1;
    text-align:center;
    font-size:30px;
    font-weight:700;
    color:#1f3528;
    margin:0;
}

.calendar-header button{
    width:48px;
    height:48px;
    min-width:48px;
    border-radius:50%;
    background:#274233;
    color:white;
    border:none;
    font-size:24px;
    cursor:pointer;
    padding:0;
    margin:0;
}

.calendar-weekdays{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:10px;
    margin-bottom:14px;
}

.calendar-weekdays span{
    text-align:center;
    color:#666;
    font-size:14px;
    font-weight:600;
}

.guest-calendar{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:12px;
}

.day-cell{
    min-height:78px;
    border-radius:18px;
    background:#f7f7f7;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    cursor:pointer;
    transition:.25s;
}

.day-cell:hover{
    background:#e8f0e8;
    transform:translateY(-3px);
}

.day-number{
    font-size:20px;
    font-weight:700;
    color:#1f3528;
}

.day-price{
    font-size:12px;
    color:#555;
    margin-top:4px;
}

.day-cell.selected{
    background:#274233;
    transform:scale(1.06);
}

.day-cell.selected .day-number,
.day-cell.selected .day-price{
    color:white;
}

.day-cell.in-range{
    background:#dce9df;
}

.price-summary{
    margin-top:20px;
    background:#f4f7f4;
    padding:20px;
    border-radius:18px;
}

.price-summary p{
    margin:8px 0;
    font-weight:500;
}

@media(max-width:768px){
    .booking-calendar{
        padding:18px;
    }

    .guest-calendar{
        gap:6px;
    }

    .day-cell{
        min-height:58px;
        border-radius:12px;
    }

    .day-number{
        font-size:15px;
    }

    .day-price{
        font-size:10px;
    }
}

/* ================= PAYMENT INFO ================= */

.payment-info{
    flex:1;
    min-width:320px;
    background:#274233;
    color:white;
    padding:38px;
    border-radius:28px;
    box-shadow:
    0 18px 45px rgba(0,0,0,.14);
}

.payment-info h3{
    font-family:'Cinzel',serif;
    font-size:28px;
    margin-bottom:16px;
}

.payment-info p{
    color:#e3e6de;
    line-height:1.9;
    margin-bottom:18px;
}

.qr{
    width:180px;
    margin-top:18px;
    border-radius:18px;
    background:white;
    padding:10px;
}

/* ================= CONTACT ================= */

#contact{
    padding:78px 8% 68px;
    background:#edf4ee;
}

.contact-container{
    display:flex;
    gap:40px;
    justify-content:center;
    flex-wrap:wrap;
}

.contact-info{
    flex:1;
    min-width:320px;
    background:white;
    padding:35px;
    border-radius:25px;
    box-shadow:
    0 18px 45px rgba(0,0,0,.10);
}

.contact-info h3{
    font-family:'Cinzel',serif;
    font-size:32px;
    color:#213629;
    margin-bottom:20px;
}

.contact-info p{
    color:#536358;
    line-height:2;
    font-size:16px;
}

/* MAP */

.map{
    flex:1;
    min-width:340px;
}

.map iframe{
    width:100%;
    height:340px;
    border:none;
    border-radius:25px;
    box-shadow:
    0 18px 45px rgba(0,0,0,.12);
}

/* ================= FOOTER ================= */

footer{
    background:#132019;
    color:white;
    text-align:center;
    padding:45px 20px;
}

footer img{
    width:70px;
    height:auto;
    max-height:70px;
    object-fit:contain;
    margin-bottom:14px;
}

footer h3{
    font-family:'Cinzel',serif;
    font-size:28px;
    margin-bottom:10px;
}

footer p{
    color:#d4ddd3;
    margin-top:8px;
}

.footer-policy-links{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:6px 12px;
    margin:16px auto 10px;
}

.footer-policy-links a{
    color:#e1e9e2;
    font-size:12px;
    text-decoration:none;
}

.footer-policy-links a:hover,
.footer-policy-links a:focus{
    color:#d6b75f;
}

.footer-policy-links span{
    color:#77857b;
}

.booking-policy-acknowledgement{
    display:block;
    margin-top:10px;
    color:#68766d;
    font-size:11px;
    line-height:1.65;
}

.booking-policy-acknowledgement a{
    color:#245b3b;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:2px;
}

/* ================= RESPONSIVE ================= */

@media(max-width:992px){

    .hero-brand-icon{
        --hero-icon-size:82px;
    }

    .hero-content h1{
        font-size:52px;
    }

    .navbar{
        flex-direction:column;
        gap:12px;
        padding:15px;
    }

    nav ul{
        flex-wrap:wrap;
        justify-content:center;
        gap:16px;
    }

    .about-container,
    .booking-container,
    .contact-container{
        flex-direction:column;
    }

}

@media(max-width:768px){

    .hero-content h1{
        font-size:38px;
    }

    .hero-content p{
        font-size:16px;
    }

    .section-title h2{
        font-size:34px;
    }

    .room-card,
    .place-card{
        width:100%;
    }

    .booking-form,
    .payment-info{
        padding:28px;
    }

    footer h3{
        font-size:24px;
    }

    .footer-policy-links{
        flex-direction:column;
        gap:7px;
    }

    .footer-policy-links span{
        display:none;
    }

}

/* =========================================================
   NEARBY PLACES — CINEMATIC COVERFLOW
========================================================= */

#places{padding:82px 7% 52px;scroll-margin-top:110px;overflow:hidden;background:#edf4ee;}

.nearby-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.65fr);gap:48px;max-width:1280px;margin:0 auto 46px;align-items:end;}
.nearby-kicker{display:inline-block;margin-bottom:12px;color:#a37d1d;font-size:11px;font-weight:800;letter-spacing:2.2px;text-transform:uppercase;}
.nearby-heading h2{max-width:760px;margin:0;color:#173525;font-family:'Cinzel',serif;font-size:clamp(38px,4.6vw,64px);line-height:1.08;}
.nearby-heading p{margin:0;color:#6d7b72;font-size:13px;line-height:1.85;}

.destinations-scroll-shell{position:relative;max-width:1280px;margin:0 auto;}
.destinations-scroll-controls{position:relative;z-index:20;display:flex;width:min(720px,64vw);align-items:center;justify-content:space-between;margin:0 auto 14px;}
.destination-counter{color:#7b887f;font-size:12px;letter-spacing:1px;}
.destination-counter strong{color:#173525;font-family:'Cinzel',serif;font-size:24px;}
.destinations-scroll-controls>div{display:flex;gap:8px;}
.destinations-scroll-controls button{display:grid;width:46px;height:46px;place-items:center;border:1px solid #cbd7cd;border-radius:50%;background:#fff;color:#173525;font-size:18px;cursor:pointer;transition:.2s ease;}
.destinations-scroll-controls button:hover{border-color:#173525;background:#173525;color:#fff;}

.destinations-scroll-track{position:relative;height:650px;overflow:hidden;padding:0;perspective:1400px;touch-action:pan-y;outline:none;}
.destination-slide{position:absolute;top:0;left:50%;display:flex;width:min(720px,64vw);min-width:0;height:620px;min-height:0;flex-direction:column;overflow:hidden;border:1px solid rgba(23,53,37,.12);border-radius:30px;background:#fff;box-shadow:0 28px 70px rgba(20,45,30,.24);opacity:0;pointer-events:none;transform:translateX(-50%) scale(.66);transition:transform .68s cubic-bezier(.22,.7,.2,1),opacity .2s ease,filter .3s ease;will-change:transform,opacity;}
.destination-slide.is-active{z-index:5;opacity:1;pointer-events:auto;transform:translateX(-50%) scale(1);filter:none;}
.destination-slide.is-previous{z-index:3;opacity:.34;pointer-events:auto;transform:translateX(-108%) scale(.78) rotateY(7deg);filter:saturate(.65) brightness(.78);}
.destination-slide.is-next{z-index:3;opacity:.34;pointer-events:auto;transform:translateX(8%) scale(.78) rotateY(-7deg);filter:saturate(.65) brightness(.78);}
.destination-slide.is-hidden-left{z-index:1;opacity:0;transform:translateX(-145%) scale(.58);}
.destination-slide.is-hidden-right{z-index:1;opacity:0;transform:translateX(45%) scale(.58);}

.destination-slide-image{position:relative;width:100%;height:365px;flex:0 0 365px;overflow:hidden;background:#dce5de;}
.destination-slide-image img{display:block;width:100%;height:100%;object-fit:cover;opacity:1;transition:opacity .38s ease,transform .5s ease;}
.destination-slide-image img.is-changing{opacity:0;}
.destination-slide.is-active:hover .destination-slide-image img{transform:scale(1.025);}
.destination-slide-image>span{position:absolute;top:16px;left:16px;z-index:3;display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:rgba(255,255,255,.92);color:#173525;font-family:'Cinzel',serif;font-size:15px;}
.destination-image-dots{position:absolute;left:50%;bottom:14px;z-index:4;display:flex;gap:5px;transform:translateX(-50%);}
.destination-image-dot{width:5px;height:5px;border:0;border-radius:50%;background:rgba(255,255,255,.48);box-shadow:0 1px 4px rgba(0,0,0,.22);transition:background .25s ease,transform .25s ease;}
.destination-image-dot.is-active{background:#fff;transform:scale(1.25);}

.destination-photo-planned{display:flex;height:365px;flex:0 0 365px;align-items:flex-end;padding:24px;color:#fff;isolation:isolate;}
.destination-photo-planned::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.3;background-image:linear-gradient(135deg,transparent 35%,rgba(255,255,255,.22) 35%,rgba(255,255,255,.22) 36%,transparent 36%);background-size:24px 24px;}
.destination-photo-planned em{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:rgba(255,255,255,.72);font-size:9px;font-weight:800;letter-spacing:1px;white-space:nowrap;text-transform:uppercase;font-style:normal;}
.destination-waterfall{background:linear-gradient(145deg,#164536,#4e8a72);}
.destination-heritage{background:linear-gradient(145deg,#76512f,#ba8954);}
.destination-trek{background:linear-gradient(145deg,#263d31,#60796a);}
.destination-temple{background:linear-gradient(145deg,#8b661d,#d3aa46);}
.destination-falls{background:linear-gradient(145deg,#315c67,#6b9da5);}

.destination-slide-content{display:flex;min-height:0;flex:1;flex-direction:column;align-items:center;padding:28px 34px 30px;background:#fff;color:#173525;text-align:center;}
.destination-slide-content small{display:block;margin-bottom:9px;color:#a37d1d;font-size:9px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;}
.destination-slide-content h3{margin:0 0 10px;color:#173525;font-family:'Cinzel',serif;font-size:clamp(26px,2.6vw,36px);line-height:1.25;}
.destination-slide-content p{max-width:610px;margin:0 auto 16px;color:#718077;font-size:12px;line-height:1.65;}
.destination-slide-content a{display:inline-flex;align-items:center;justify-content:center;margin-top:auto;color:#173525;text-decoration:none;font-size:11px;font-weight:800;}

.destination-progress{width:min(720px,64vw);height:3px;margin:2px auto 0;overflow:hidden;border-radius:10px;background:#d5ded7;}
.destination-progress span{display:block;width:0;height:100%;border-radius:10px;background:#b28a2d;}
.destination-progress span.is-playing{animation:destinationTimer 15s linear forwards;}
.destination-progress span.is-paused{animation-play-state:paused;}
@keyframes destinationTimer{from{width:0;}to{width:100%;}}

.nearby-photo-note{max-width:1280px;margin:22px auto 0;color:#849087;font-size:10px;line-height:1.6;text-align:center;}

@media(max-width:950px){
    .nearby-heading{grid-template-columns:1fr;gap:18px;}
}

@media(max-width:760px){
    #places{padding:78px 15px 60px;scroll-margin-top:136px;}
    .nearby-heading{margin-bottom:30px;}
    .nearby-heading h2{font-size:38px;}
    .destinations-scroll-controls,.destination-progress{width:min(100%,calc(100vw - 30px));}
    .destinations-scroll-track{height:590px;}
    .destination-slide{width:min(100%,calc(100vw - 30px));height:560px;border-radius:24px;}
    .destination-slide.is-previous{opacity:.3;transform:translateX(-112%) scale(.76);}
    .destination-slide.is-next{opacity:.3;transform:translateX(12%) scale(.76);}
    .destination-slide-image,.destination-photo-planned{height:300px;flex-basis:300px;}
    .destination-slide-content{padding:23px 22px 25px;}
    .destination-slide-content h3{font-size:27px;}
    .destination-slide-content p{font-size:11px;}
    .destinations-scroll-controls button{width:42px;height:42px;}
}
.day-cell.disabled-day{
    opacity:0.35;
    cursor:not-allowed;
    background:#eeeeee;
}

.day-cell.disabled-day:hover{
    transform:none;
    border-color:transparent;
    background:#eeeeee;
}

.floating-whatsapp{
    position:fixed;
    right:22px;
    bottom:22px;
    background:#25D366;
    color:white;
    padding:14px 20px;
    border-radius:35px;
    text-decoration:none;
    font-weight:600;
    box-shadow:0 10px 30px rgba(0,0,0,.25);
    z-index:9999;
}

.floating-whatsapp:hover{
    transform:translateY(-3px);
}

.floating-call{
    position:fixed;
    right:22px;
    bottom:85px;
    background:#274233;
    color:white;
    padding:14px 20px;
    border-radius:35px;
    text-decoration:none;
    font-weight:600;
    box-shadow:0 10px 30px rgba(0,0,0,.25);
    z-index:9999;
}

.floating-call:hover{
    transform:translateY(-3px);
}


.gallery-lightbox{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.90);
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:10000;
}

.lightbox-img{
    max-width:88%;
    max-height:85%;
    border-radius:22px;
    box-shadow:0 25px 70px rgba(0,0,0,.5);
}

.lightbox-close{
    position:absolute;
    top:25px;
    right:35px;
    width:48px;
    height:48px;
    border:none;
    border-radius:50%;
    background:white;
    color:#183326;
    font-size:34px;
    cursor:pointer;
}


.contact-info,
.map iframe{
    min-height:340px;
}

/* ================= BLOCKED DATES ================= */

.day-cell.blocked-day{
    background:#2f3430;
    color:white;
    cursor:not-allowed;
    opacity:1;
    border:2px solid #1b1f1c;
}

.day-cell.blocked-day:hover{
    background:#2f3430;
    transform:none;
}

.day-cell.blocked-day .day-number{
    color:white;
}

.blocked-text{
    font-size:11px;
    font-weight:700;
    letter-spacing:.5px;
    color:#ffb3b3;
    margin-top:5px;
}

/* =========================================================
   PREMIUM STAY SPACES
========================================================= */

.premium-stays{
    padding:82px 7%;
    background:
        linear-gradient(
            180deg,
            #eef3ec 0%,
            #f7f4ee 100%
        );
}

.premium-title{
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
}

.section-kicker{
    display:inline-block;
    margin-bottom:10px;
    color:#9c7b22;
    font-size:12px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
}

.premium-room-grid{
    display:grid;
    grid-template-columns:
        repeat(2,minmax(0,1fr));
    gap:30px;
    max-width:1380px;
    margin:0 auto;
}

.premium-room-card{
    overflow:hidden;
    background:#ffffff;
    border:1px solid rgba(33,54,41,.10);
    border-radius:28px;
    box-shadow:
        0 24px 65px rgba(25,47,34,.10);
    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.premium-room-card:hover{
    transform:translateY(-7px);
    box-shadow:
        0 34px 80px rgba(25,47,34,.16);
}

.premium-room-media{
    position:relative;
    min-height:390px;
    overflow:hidden;
    background:
        linear-gradient(
            135deg,
            #314d3d,
            #142b20
        );
}

.premium-room-cover{
    width:100%;
    height:390px;
    object-fit:cover;
    display:block;
    transition:transform .7s ease;
}

.premium-room-placeholder{
    background:
        radial-gradient(circle at 72% 28%,rgba(255,255,255,.08),transparent 28%),
        linear-gradient(135deg,#314d3d,#142b20);
}

.premium-room-card:hover .premium-room-cover{
    transform:scale(1.04);
}

.premium-room-media::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            180deg,
            rgba(5,18,11,.05) 25%,
            rgba(5,18,11,.75) 100%
        );
}

.room-floor-label{
    position:absolute;
    top:22px;
    left:22px;
    z-index:2;
    padding:9px 14px;
    border-radius:30px;
    background:rgba(255,255,255,.92);
    color:#163525;
    font-size:12px;
    font-weight:800;
    letter-spacing:.5px;
}

.photo-placeholder-note{
    position:absolute;
    bottom:22px;
    left:22px;
    z-index:2;
    color:#ffffff;
    font-size:12px;
    font-weight:600;
    letter-spacing:.4px;
}

.premium-room-body{
    padding:30px;
}

.premium-room-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
    margin-bottom:15px;
}

.room-category{
    display:block;
    margin-bottom:7px;
    color:#9c7b22;
    font-size:11px;
    font-weight:800;
    letter-spacing:1px;
    text-transform:uppercase;
}

.premium-room-heading h3{
    margin:0;
    color:#173525;
    font-family:'Cinzel',serif;
    font-size:27px;
    line-height:1.25;
}

.capacity-badge{
    flex-shrink:0;
    padding:8px 12px;
    border-radius:30px;
    background:#edf4ee;
    color:#24563a;
    font-size:11px;
    font-weight:800;
}

.premium-room-description{
    margin:0 0 24px;
    color:#627066;
    font-size:14px;
    line-height:1.8;
}

.room-feature-strip{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 0;
    padding:12px 15px;
    border:1px solid #e3ebe4;
    border-radius:15px;
    background:#f9fbf9;
    margin-bottom:26px;
    color:#31483a;
    font-size:12px;
    font-weight:700;
}

.room-feature-strip span{
    display:inline-flex;
    align-items:center;
    white-space:nowrap;
}

.room-feature-strip span:not(:last-child)::after{
    content:'\2022';
    margin:0 10px;
    color:#b39442;
    font-size:10px;
}

.floor-preview{
    padding-top:24px;
    border-top:1px solid #e3e9e4;
}

.floor-preview-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:12px;
    margin-bottom:14px;
}

.floor-preview-heading h4{
    margin:0;
    color:#213629;
    font-size:15px;
}

.floor-preview-heading span{
    color:#849087;
    font-size:11px;
}

.floor-preview-grid{
    display:grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap:10px;
}

.floor-photo-placeholder{
    min-height:94px;
    padding:12px;
    border:1px dashed #aebdb2;
    border-radius:14px;
    background:
        linear-gradient(
            145deg,
            #f7f8f5,
            #edf1eb
        );
    color:#415347;
    font-family:inherit;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
    transition:
        transform .2s ease,
        border-color .2s ease,
        background .2s ease;
}

.floor-photo-placeholder span{
    display:block;
    margin-bottom:7px;
    color:#9c7b22;
    font-size:10px;
}

.floor-photo-placeholder:hover{
    transform:translateY(-3px);
    border-color:#315c41;
    background:#eef5ef;
}

.premium-room-actions{
    display:flex;
    gap:12px;
    margin-top:24px;
}

.room-gallery-button,
.room-book-button{
    flex:1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:12px 16px;
    border-radius:13px;
    font-family:inherit;
    font-size:13px;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
}

.room-gallery-button{
    border:1px solid #244c35;
    background:#ffffff;
    color:#244c35;
}

.room-book-button{
    border:1px solid #244c35;
    background:#244c35;
    color:#ffffff;
}

/* =========================================================
   IBBANI EXPERIENCE MODAL
========================================================= */

.stay-benefits-modal{
    display:none;
    position:fixed;
    inset:0;
    z-index:10020;
    padding:24px;
    background:rgba(5,18,11,.78);
    align-items:center;
    justify-content:center;
}

.stay-benefits-modal.show{
    display:flex;
}

.stay-benefits-dialog{
    position:relative;
    width:min(100%,880px);
    max-height:88vh;
    overflow-y:auto;
    overscroll-behavior:contain;
    border:1px solid rgba(179,148,66,.28);
    border-radius:24px;
    background:#fffdf8;
    box-shadow:0 30px 90px rgba(0,0,0,.34);
}

.stay-benefits-close{
    position:absolute;
    top:18px;
    right:18px;
    width:40px;
    height:40px;
    border:0;
    border-radius:50%;
    background:#173525;
    color:#ffffff;
    font-size:24px;
    line-height:1;
    cursor:pointer;
}

.stay-benefits-close:focus-visible,
.stay-benefits-book-button:focus-visible{
    outline:3px solid rgba(179,148,66,.55);
    outline-offset:3px;
}

.stay-benefits-header{
    padding:28px 76px 24px 32px;
    border-bottom:1px solid #e6e9e2;
}

.stay-benefits-header h2{
    margin:3px 0 6px;
    color:#173525;
    font-family:'Cinzel',serif;
    font-size:27px;
    line-height:1.25;
}

.stay-benefits-details{
    margin:0;
    color:#68766c;
    font-size:12px;
    font-weight:700;
}

.stay-benefits-header h3{
    margin:5px 0 7px;
    color:#173525;
    font-family:'Cinzel',serif;
    font-size:22px;
    line-height:1.3;
}

.experience-intro{
    max-width:680px;
    margin-top:20px;
}

.experience-intro > span{
    color:#9c7b22;
    font-size:10px;
    font-weight:800;
    letter-spacing:1.8px;
}

.experience-intro p,
.experience-copy p,
.experience-reward-row p{
    margin:0;
    color:#68756c;
    font-size:12px;
    line-height:1.65;
}

.experience-story{
    padding:10px 32px 28px;
}

.experience-chapter{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    align-items:center;
    gap:28px;
    padding:22px 0;
    border-bottom:1px solid #e8ebe5;
}

.experience-chapter-reverse .experience-media{
    order:2;
}

.experience-media{
    aspect-ratio:16/9;
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:18px;
    border:1px dashed rgba(156,123,34,.55);
    border-radius:17px;
    background:linear-gradient(145deg,#eef3ec,#e2ebe3);
    color:#52665a;
    text-align:center;
}

.experience-media span{
    padding:7px 11px;
    border-radius:20px;
    background:rgba(255,253,248,.78);
    font-size:10px;
    font-weight:700;
    letter-spacing:.5px;
}

.experience-number{
    display:block;
    margin-bottom:5px;
    color:#9c7b22;
    font-size:10px;
    font-weight:800;
    letter-spacing:1.5px;
}

.experience-copy h4,
.experience-rewards h4{
    margin:0 0 7px;
    color:#213629;
    font-family:'Cinzel',serif;
    font-size:18px;
    line-height:1.35;
}

.experience-copy .experience-secondary{
    margin-top:7px;
    color:#7b837d;
    font-size:10.5px;
}

.experience-copy .experience-highlight{
    margin-top:9px;
    padding-left:10px;
    border-left:2px solid #b39442;
    color:#33513e;
    font-weight:700;
}

.experience-copy .experience-service{
    margin-top:8px;
    color:#244c35;
    font-weight:800;
}

.experience-guide-labels{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:10px;
}

.experience-guide-labels span{
    padding:5px 8px;
    border:1px solid #dce5dc;
    border-radius:14px;
    background:#f2f6f1;
    color:#52665a;
    font-size:9px;
    font-weight:700;
}

.experience-rewards{
    margin-top:22px;
    padding:22px;
    border:1px solid rgba(179,148,66,.26);
    border-radius:18px;
    background:#f4f6ef;
}

.experience-rewards h4{
    margin-top:5px;
}

.experience-reward-row{
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    gap:14px;
    padding:9px 0;
    border-top:1px solid #dfe6dd;
}

.experience-reward-row strong{
    color:#294735;
    font-size:11px;
}

.stay-benefits-footer{
    position:sticky;
    bottom:0;
    padding:16px 28px 22px;
    border-top:1px solid #e6e9e2;
    background:#fffdf8;
}

.stay-benefits-book-button{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:49px;
    padding:12px 20px;
    border-radius:13px;
    background:#244c35;
    color:#ffffff;
    font-size:13px;
    font-weight:800;
    text-decoration:none;
}

/* =========================================================
   FLOOR GALLERY MODAL
========================================================= */

.floor-gallery-modal{
    display:none;
    position:fixed;
    inset:0;
    z-index:10000;
    padding:24px;
    background:rgba(5,18,11,.78);
    align-items:center;
    justify-content:center;
}

.floor-gallery-modal.show{
    display:flex;
}

.floor-gallery-dialog{
    width:min(100%,1000px);
    max-height:90vh;
    overflow-y:auto;
    border-radius:24px;
    background:#ffffff;
    box-shadow:0 30px 90px rgba(0,0,0,.34);
}

.floor-gallery-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    padding:26px;
    border-bottom:1px solid #e2e9e3;
}

.floor-gallery-header h2{
    margin:0 0 7px;
    color:#173525;
    font-family:'Cinzel',serif;
    font-size:25px;
}

.floor-gallery-header p{
    margin:0;
    color:#758078;
    font-size:13px;
}

.floor-gallery-close{
    width:42px;
    height:42px;
    flex-shrink:0;
    border:none;
    border-radius:50%;
    background:#173525;
    color:#ffffff;
    font-size:25px;
    cursor:pointer;
}

.floor-gallery-content{
    display:grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap:14px;
    padding:26px;
}

.modal-photo-placeholder{
    min-height:190px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:20px;
    border:1px dashed #aab8ad;
    border-radius:17px;
    background:
        linear-gradient(
            145deg,
            #f5f7f3,
            #e8eee8
        );
    color:#36493d;
    text-align:center;
}

.modal-photo-placeholder strong{
    display:block;
    margin-bottom:6px;
    color:#9c7b22;
    font-size:12px;
}

.modal-photo-placeholder span{
    color:#66746a;
    font-size:12px;
}

@media(max-width:1000px){

    .premium-room-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){

    .premium-stays{
        padding:80px 18px;
    }

    .premium-room-media,
    .premium-room-cover{
        height:290px;
        min-height:290px;
    }

    .premium-room-body{
        padding:22px;
    }

    .premium-room-heading{
        flex-direction:column;
    }

    .room-feature-strip{
        padding:11px 13px;
        font-size:11.5px;
    }

    .floor-preview-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .floor-preview-grid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

    .premium-room-actions{
        flex-direction:column;
    }

    .floor-gallery-content{
        grid-template-columns:1fr;
        padding:20px;
    }

    .floor-gallery-header{
        padding:20px;
    }

    .stay-benefits-modal{
        padding:15px;
    }

    .stay-benefits-dialog{
        width:100%;
        max-height:88vh;
        border-radius:20px;
    }

    .stay-benefits-header{
        padding:23px 62px 15px 20px;
    }

    .stay-benefits-header h2{
        font-size:22px;
    }

    .stay-benefits-header h3{
        font-size:18px;
    }

    .experience-intro{
        margin-top:16px;
    }

    .experience-story{
        padding:5px 20px 22px;
    }

    .experience-chapter{
        grid-template-columns:1fr;
        gap:13px;
        padding:18px 0;
    }

    .experience-chapter-reverse .experience-media{
        order:0;
    }

    .experience-copy h4{
        font-size:16px;
    }

    .experience-media{
        border-radius:14px;
    }

    .experience-rewards{
        padding:17px;
    }

    .experience-reward-row{
        grid-template-columns:1fr;
        gap:2px;
        padding:8px 0;
    }

    .stay-benefits-footer{
        padding:14px 20px 18px;
    }
}

#floorGalleryModal{
    display:none !important;
}

#floorGalleryModal.show{
    display:flex !important;
}

/* =========================================================
   PREMIUM BOOKING WIZARD
========================================================= */

.booking-wizard-section{
    padding:82px 7%;
    background:
        linear-gradient(
            180deg,
            #f7f4ee 0%,
            #eef3ec 100%
        );
}

.booking-kicker{
    display:inline-block;
    margin-bottom:10px;
    color:#9c7b22;
    font-size:12px;
    font-weight:800;
    letter-spacing:2px;
    text-transform:uppercase;
}

.booking-wizard-card{
    max-width:980px;
    margin:0 auto;
    background:#ffffff;
    border-radius:28px;
    box-shadow:
        0 28px 80px rgba(23,53,37,.13);
    border:1px solid rgba(33,54,41,.10);
    overflow:hidden;
}

.booking-progress{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px 34px 22px;
    background:#173525;
}

.booking-progress-item{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    min-width:62px;
    color:#aab8ae;
}

.booking-progress-item span{
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.18);
    font-size:12px;
    font-weight:800;
}

.booking-progress-item small{
    font-size:10px;
    font-weight:700;
    letter-spacing:.6px;
}

.booking-progress-item.active,
.booking-progress-item.completed{
    color:#ffffff;
}

.booking-progress-item.active span{
    background:#c9a227;
    color:#173525;
    border-color:#c9a227;
}

.booking-progress-item.completed span{
    background:#ffffff;
    color:#173525;
    border-color:#ffffff;
}

.booking-progress-line{
    width:90px;
    height:2px;
    background:rgba(255,255,255,.17);
    margin:0 10px 18px;
}

.booking-progress-line.completed{
    background:#c9a227;
}

.booking-wizard-form{
    padding:34px;
}

.booking-step{
    display:none;
    animation:wizardFade .3s ease;
}

.booking-step.active{
    display:block;
}

@keyframes wizardFade{
    from{
        opacity:0;
        transform:translateX(12px);
    }
    to{
        opacity:1;
        transform:translateX(0);
    }
}

.booking-step-heading{
    margin-bottom:26px;
}

.booking-step-heading > span{
    display:block;
    margin-bottom:7px;
    color:#9c7b22;
    font-size:11px;
    font-weight:800;
    letter-spacing:1px;
    text-transform:uppercase;
}

.booking-step-heading h3{
    margin:0 0 8px;
    color:#173525;
    font-family:'Cinzel',serif;
    font-size:28px;
}

.booking-step-heading p{
    margin:0;
    color:#718077;
    font-size:13px;
    line-height:1.6;
}

.wizard-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.wizard-field{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.wizard-field-full{
    grid-column:1 / -1;
}

.wizard-field label{
    color:#2a3d31;
    font-size:12px;
    font-weight:800;
}

.wizard-field input,
.wizard-field select{
    width:100%;
    min-height:50px;
    padding:13px 14px;
    border-radius:12px;
    border:1px solid #cfd8d1;
    background:#fbfcfa;
    color:#203128;
    font-family:inherit;
    font-size:14px;
}

.wizard-field input:focus,
.wizard-field select:focus{
    outline:none;
    border-color:#315c41;
    box-shadow:0 0 0 3px rgba(49,92,65,.08);
}

.wizard-field small{
    color:#78857c;
    font-size:11px;
    line-height:1.5;
}

.wizard-navigation{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:28px;
}

.wizard-navigation-end{
    justify-content:flex-end;
}

.wizard-next,
.wizard-back,
.wizard-pay-button{
    min-height:48px;
    padding:12px 20px;
    border-radius:12px;
    font-family:inherit;
    font-size:13px;
    font-weight:800;
    cursor:pointer;
}

.wizard-next,
.wizard-pay-button{
    border:1px solid #173525;
    background:#173525;
    color:#ffffff;
}

.wizard-back{
    border:1px solid #cdd6cf;
    background:#ffffff;
    color:#314438;
}

.wizard-next span,
.wizard-pay-button span{
    margin-left:7px;
}

.wizard-calendar{
    background:#f9fbf9;
    border:1px solid #e0e8e1;
    border-radius:18px;
    padding:20px;
}

.date-selection-preview{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:14px;
    margin-top:18px;
    padding:16px;
    border-radius:14px;
    background:#f5f8f5;
    border:1px solid #e0e7e1;
}

.date-selection-preview div{
    min-width:0;
}

.date-selection-preview small{
    display:block;
    margin-bottom:5px;
    color:#7c887f;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.7px;
}

.date-selection-preview strong{
    color:#26392e;
    font-size:13px;
}

.date-selection-preview > span{
    color:#9c7b22;
    font-weight:800;
}

.wizard-summary{
    margin:0;
    padding:22px;
    border-radius:18px;
    background:#f9fbf9;
    border:1px solid #e0e7e1;
}

.wizard-summary-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    margin-bottom:20px;
}

.wizard-summary-header span{
    color:#9c7b22;
    font-size:10px;
    font-weight:800;
    letter-spacing:.8px;
    text-transform:uppercase;
}

.wizard-summary-header h3{
    margin:4px 0 0;
    color:#173525;
    font-size:20px;
}

.secure-booking-badge{
    padding:7px 10px;
    border-radius:20px;
    background:#eaf4ed;
    color:#26613f !important;
    white-space:nowrap;
}

.wizard-summary-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-bottom:20px;
}

.summary-detail{
    padding:12px;
    border-radius:12px;
    background:#ffffff;
    border:1px solid #e4e9e5;
}

.summary-detail-wide{
    grid-column:1 / -1;
}

.summary-detail small{
    display:block;
    margin-bottom:5px;
    color:#7b887f;
    font-size:10px;
    text-transform:uppercase;
}

.summary-detail strong{
    display:block;
    color:#21352a;
    font-size:13px;
    overflow-wrap:anywhere;
}

.wizard-price-breakdown{
    padding:16px 0;
    border-top:1px solid #dde5de;
    border-bottom:1px solid #dde5de;
}

.wizard-price-breakdown h4{
    margin:0 0 10px;
    color:#26392e;
    font-size:13px;
}

#priceBreakdown{
    color:#66766c;
    font-size:12px;
    line-height:1.7;
}

.wizard-payment-summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:18px;
}

.wizard-payment-summary > div{
    padding:13px;
    border-radius:12px;
    background:#ffffff;
    border:1px solid #e4e9e5;
}

.wizard-payment-summary span{
    display:block;
    margin-bottom:5px;
    color:#7b887f;
    font-size:10px;
}

.wizard-payment-summary strong{
    color:#21352a;
    font-size:15px;
}

.advance-value{
    color:#9c7b22 !important;
}

.wizard-final-note{
    margin-top:15px;
    color:#77847b;
    font-size:11px;
    line-height:1.6;
    text-align:center;
}

@media(max-width:700px){

    .booking-wizard-section{
        padding:80px 14px;
    }

    .booking-wizard-card{
        border-radius:20px;
    }

    .booking-progress{
        padding:20px 12px 16px;
    }

    .booking-progress-item{
        min-width:44px;
    }

    .booking-progress-item span{
        width:30px;
        height:30px;
    }

    .booking-progress-item small{
        font-size:8px;
    }

    .booking-progress-line{
        width:38px;
        margin-left:5px;
        margin-right:5px;
    }

    .booking-wizard-form{
        padding:22px 18px;
    }

    .booking-step-heading h3{
        font-size:23px;
    }

    .wizard-fields{
        grid-template-columns:1fr;
    }

    .wizard-field-full{
        grid-column:auto;
    }

    .wizard-navigation{
        flex-direction:column-reverse;
    }

    .wizard-navigation-end{
        flex-direction:column;
    }

    .wizard-next,
    .wizard-back,
    .wizard-pay-button{
        width:100%;
    }

    .wizard-calendar{
        padding:12px 8px;
    }

    .date-selection-preview{
        grid-template-columns:1fr;
        text-align:left;
    }

    .date-selection-preview > span{
        display:none;
    }

    .wizard-summary-grid{
        grid-template-columns:1fr;
    }

    .summary-detail-wide{
        grid-column:auto;
    }

    .wizard-payment-summary{
        grid-template-columns:1fr;
    }

    .wizard-summary-header{
        flex-direction:column;
    }
}

/* =========================================================
   BOOKING WIZARD VALIDATION
========================================================= */

.wizard-error-message{
    display:none;
    margin:-8px 0 20px;
    padding:12px 15px;
    border-radius:10px;
    background:#fff2f2;
    border:1px solid #efcaca;
    color:#a93a3a;
    font-size:12px;
    font-weight:600;
    line-height:1.5;
}

.wizard-error-message.show{
    display:block;
}

.wizard-input-error{
    border-color:#d65a5a !important;
    box-shadow:
        0 0 0 3px rgba(214,90,90,.08)
        !important;
}

.wizard-pay-button:disabled{
    opacity:.7;
    cursor:not-allowed;
}

/* ================= HERO V3 SMALL POLISH ================= */

.hero-content h1{
    max-width:900px;
    margin-left:auto;
    margin-right:auto;
}

.hero-tagline{
    margin-top:12px;
    margin-bottom:8px;
    font-family:'Cinzel', serif;
    font-size:clamp(20px,2.2vw,30px);
    color:#f3ead4;
    letter-spacing:.8px;
}

.hero-description{
    max-width:720px;
    margin:0 auto 26px;
    line-height:1.7;
}

.hero-booking-status{
    display:inline-block;
    margin-top:18px;
    color:rgba(255,255,255,.85);
    font-size:12px;
    text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.35);
    padding-bottom:3px;
}

.hero-booking-status:hover{
    color:#ffffff;
}

@media(max-width:700px){

    .hero-content h1{
        font-size:clamp(42px,12vw,62px);
    }

    .hero-tagline{
        font-size:20px;
    }

    .hero-description{
        font-size:13px;
        padding:0 10px;
    }

    .hero-booking-status{
        font-size:11px;
    }
}

/* =========================================================
   PREMIUM ABOUT SECTION
========================================================= */

.about-premium{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:70px;
    align-items:center;
}

.about-premium .about-image{
    position:relative;
}

.about-premium .about-image img{
    width:100%;
    height:600px;
    object-fit:cover;
    border-radius:28px;
    display:block;
    box-shadow:0 25px 60px rgba(20,45,30,.14);
}

.about-image-badge{
    position:absolute;
    left:24px;
    bottom:24px;
    padding:9px 14px;
    border-radius:30px;
    background:rgba(255,255,255,.92);
    color:#173525;
    font-size:11px;
    font-weight:800;
    letter-spacing:.4px;
}

.about-kicker{
    display:inline-block;
    margin-bottom:10px;
    color:#a37d1d;
    font-size:11px;
    font-weight:800;
    letter-spacing:2px;
    text-transform:uppercase;
}

.about-premium .about-text h2{
    margin:0 0 18px;
    font-family:'Cinzel',serif;
    color:#173525;
    font-size:clamp(38px,4.5vw,62px);
    line-height:1.05;
}

.about-premium .about-text p{
    color:#67746b;
    font-size:14px;
    line-height:1.85;
    margin-bottom:16px;
}

.about-lead{
    color:#32463a !important;
    font-size:16px !important;
    font-weight:500;
}

.about-highlights{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:26px 0;
}

.about-highlight{
    padding:16px;
    border-radius:15px;
    background:#f7faf7;
    border:1px solid #e0e7e1;
}

.about-highlight strong{
    display:block;
    margin-bottom:5px;
    color:#21372a;
    font-size:13px;
}

.about-highlight span{
    color:#77847b;
    font-size:11.5px;
    line-height:1.5;
}

.about-closing{
    margin-top:8px;
    color:#34473b !important;
}

.about-explore-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:12px 22px;
    border-radius:12px;
    background:#173525;
    color:#ffffff;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
}

.about-explore-btn:hover{
    background:#0f281b;
}

@media(max-width:900px){

    .about-premium{
        grid-template-columns:1fr;
        gap:34px;
    }

    .about-premium .about-image img{
        height:430px;
    }
}

@media(max-width:600px){

    .about-premium{
        gap:28px;
    }

    .about-premium .about-image img{
        height:340px;
        border-radius:20px;
    }

    .about-highlights{
        grid-template-columns:1fr;
    }

    .about-premium .about-text h2{
        font-size:38px;
    }

    .about-explore-btn{
        width:100%;
    }
}

/* =========================================================
   COMPACT GOOGLE REVIEWS
========================================================= */

.guest-memories-section{
    padding:96px 7% 72px;
    background:#f5f1e8;
    color:#173525;
}

.guest-memories-section::before{display:none;}

.reviews-layout{
    display:grid;
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
    gap:54px;
    max-width:1280px;
    margin:0 auto;
    align-items:stretch;
}

.reviews-story-panel{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:46px;
    border-radius:28px;
    background:#173525;
    color:#fff;
    box-shadow:0 24px 60px rgba(20,45,30,.16);
}

.reviews-kicker{
    margin-bottom:13px;
    color:#d9b85e;
    font-size:11px;
    font-weight:800;
    letter-spacing:2.2px;
    text-transform:uppercase;
}

.reviews-story-panel h2{
    margin:0 0 20px;
    font-family:'Cinzel',serif;
    font-size:clamp(34px,3.4vw,46px);
    line-height:1.12;
}

.reviews-intro{
    margin:0;
    color:rgba(255,255,255,.72);
    font-size:13px;
    line-height:1.85;
}

.google-rating{
    display:flex;
    align-items:center;
    gap:14px;
    margin:30px 0 24px;
    padding:16px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:16px;
    background:rgba(255,255,255,.07);
}

.google-mark{
    display:grid;
    width:46px;
    height:46px;
    place-items:center;
    flex:0 0 auto;
    border-radius:50%;
    background:#fff;
    color:#4285f4;
    font-family:Arial,sans-serif;
    font-size:23px;
    font-weight:800;
}

.rating-line{display:flex;align-items:center;gap:10px;}
.rating-line strong{font-size:24px;line-height:1;}
.rating-stars,.review-stars{color:#d7aa36;letter-spacing:2px;}
.rating-caption{display:block;margin-top:5px;color:rgba(255,255,255,.64);font-size:10.5px;}

.google-reviews-button{
    display:inline-flex;
    width:max-content;
    align-items:center;
    gap:10px;
    padding:13px 18px;
    border-radius:12px;
    background:#fff;
    color:#173525;
    text-decoration:none;
    font-size:12px;
    font-weight:800;
    transition:.2s ease;
}

.google-reviews-button:hover{transform:translateY(-2px);background:#f4df9e;}

.guest-review-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.guest-review-card{
    display:flex;
    min-height:230px;
    flex-direction:column;
    justify-content:space-between;
    padding:25px;
    border:1px solid #ded8cc;
    border-radius:20px;
    background:#fff;
    box-shadow:0 16px 38px rgba(35,55,43,.08);
}

.guest-review-featured{
    min-height:280px;
    grid-column:1 / -1;
    padding:32px;
    background:linear-gradient(145deg,#fff,#fbf7ee);
}

.review-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.review-source{color:#879188;font-size:9px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;}

.guest-review-card blockquote{
    margin:24px 0;
    color:#293d31;
    font-family:Georgia,'Times New Roman',serif;
    font-size:18px;
    line-height:1.55;
}

.guest-review-featured blockquote{max-width:650px;font-size:clamp(23px,2.4vw,30px);}

.reviewer{display:flex;align-items:center;gap:11px;}
.reviewer-initial{display:grid;width:40px;height:40px;place-items:center;flex:0 0 auto;border-radius:50%;background:#e5eee7;color:#173525;font-size:13px;font-weight:800;}
.reviewer strong,.reviewer span{display:block;}
.reviewer strong{margin-bottom:3px;color:#21372a;font-size:12px;}
.reviewer div span{color:#89928c;font-size:10px;}

.reviews-signature{
    margin:44px auto 0;
    text-align:center;
    color:#6e796f;
    font-family:Georgia,'Times New Roman',serif;
    font-size:16px;
    font-style:italic;
}

@media(max-width:950px){
    .reviews-layout{grid-template-columns:1fr;gap:24px;}
}

@media(max-width:600px){
    .guest-memories-section{padding:74px 15px 60px;scroll-margin-top:136px;}
    .reviews-story-panel{padding:30px 24px;border-radius:22px;}
    .reviews-story-panel h2{font-size:36px;}
    .google-reviews-button{width:100%;justify-content:center;}
    .guest-review-grid{display:grid;grid-template-columns:1fr;gap:12px;padding:2px 0 0;}
    .guest-review-card,.guest-review-featured{width:100%;min-width:0;min-height:0;padding:24px;}
    .guest-review-featured blockquote{font-size:23px;}
    .reviews-signature{margin-top:28px;font-size:14px;line-height:1.7;}
}

/* =========================================================
   MOBILE NAVIGATION
========================================================= */

.mobile-menu-btn{
    display:none;
}


/* =========================================================
   TABLET / MOBILE
========================================================= */

@media(max-width:850px){

    .navbar{
        width:100%;
        height:60px;
        min-height:60px;
        padding:6px 14px;

        display:flex;
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
        gap:12px;

        position:fixed;
        z-index:9999;
    }


    /* BRAND */

    .logo-section{
        display:flex;
        align-items:center;
        text-decoration:none;
        flex-shrink:0;
        width:160px;
        height:48px;
    }

    .logo-section img{
        width:170px;
        height:auto;
        max-height:none;
        object-fit:contain;
        flex-shrink:0;
        transform:translate(-50%,-50%);
    }


    /* HAMBURGER */

    .mobile-menu-btn{
        width:42px;
        height:42px;

        display:flex;
        flex-direction:column;
        justify-content:center;
        align-items:center;
        gap:5px;

        flex-shrink:0;

        background:transparent;
        border:none;

        cursor:pointer;

        position:relative;
        z-index:10001;
    }

    .mobile-menu-btn span{
        width:24px;
        height:2px;

        background:#ffffff;

        border-radius:10px;

        transition:
            transform .25s ease,
            opacity .25s ease;
    }


    /* TURN ☰ INTO X */

    .mobile-menu-btn.open span:nth-child(1){
        transform:
            translateY(7px)
            rotate(45deg);
    }

    .mobile-menu-btn.open span:nth-child(2){
        opacity:0;
    }

    .mobile-menu-btn.open span:nth-child(3){
        transform:
            translateY(-7px)
            rotate(-45deg);
    }


    /* MOBILE MENU */

    .navbar nav{
        position:absolute;

        top:100%;
        left:0;

        width:100%;

        max-height:0;
        overflow:hidden;

        background:#10271d;

        opacity:0;
        visibility:hidden;

        transition:
            max-height .35s ease,
            opacity .25s ease,
            visibility .25s ease;

        box-shadow:
            0 20px 35px
            rgba(0,0,0,.18);
    }

    .navbar nav.mobile-open{
        max-height:520px;

        opacity:1;
        visibility:visible;
    }


    .navbar nav ul{
        display:flex;
        flex-direction:column;

        width:100%;

        gap:0;

        margin:0;
        padding:10px 18px 18px;

        list-style:none;
    }


    .navbar nav ul li{
        width:100%;
    }


    .navbar nav ul li a{
        width:100%;

        display:flex;
        align-items:center;

        padding:14px 4px;

        color:#f4efe7 !important;

        text-decoration:none;

        font-size:14px;

        border-bottom:
            1px solid
            rgba(255,255,255,.08);
    }


    .navbar nav ul li:last-child a{
        border-bottom:none;
    }

    .floating-call,
    .floating-whatsapp{
        right:max(10px,env(safe-area-inset-right));
        display:grid;
        width:40px;
        height:40px;
        place-items:center;
        padding:0;
        font-size:0;
        border-radius:50%;
        box-shadow:0 7px 18px rgba(10,32,21,.22);
        transition:opacity .18s ease,transform .18s ease;
    }

    .floating-call.floating-ui-hidden,
    .floating-whatsapp.floating-ui-hidden{
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transform:translateY(6px);
    }

    .floating-call::before,
    .floating-whatsapp::before{
        content:"";
        display:block;
        width:19px;
        height:19px;
        background-position:center;
        background-repeat:no-repeat;
        background-size:contain;
    }

    .floating-call::before{
        background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M6.6 2.5 9 7 7.2 8.6c1.1 2.2 2.9 4 5.1 5.1l1.6-1.8 4.5 2.4v3c0 1.2-1 2.2-2.2 2.2C8.7 19.5 2.5 13.3 2.5 5.8c0-1.2 1-2.2 2.2-2.2h1.9Z'/%3E%3C/svg%3E");
    }

    .floating-whatsapp::before{
        width:21px;
        height:21px;
        background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M20 11.5a8 8 0 0 1-11.8 7L4 20l1.5-4A8 8 0 1 1 20 11.5Z'/%3E%3Cpath fill='white' d='M8.2 7.4c.2-.4.5-.4.8-.4h.4c.2 0 .4.1.5.4l.8 1.9c.1.3.1.5-.1.7l-.7.8c.8 1.7 1.8 2.7 3.5 3.5l.8-.9c.2-.2.5-.3.7-.1l1.9.9c.3.1.4.3.4.6v.4c0 .4-.1.7-.5 1-1 .6-2.2.7-3.4.3-3.2-1.1-5.7-3.6-6.8-6.8-.4-1.1-.3-1.9.3-2.3.4-.2.8-.2 1.4 0Z'/%3E%3C/svg%3E");
    }

    .floating-call{bottom:calc(58px + env(safe-area-inset-bottom));}
    .floating-whatsapp{bottom:calc(10px + env(safe-area-inset-bottom));}

    .day-cell.blocked-day{
        background:#fdebed;
        border:1px solid #efb8be;
        color:#982431;
        opacity:1;
    }

    .day-cell.blocked-day:hover{
        background:#fdebed;
        border-color:#efb8be;
        transform:none;
    }

    .day-cell.blocked-day .day-number{
        color:#982431;
        font-weight:800;
    }

    .day-cell.blocked-day .blocked-text{
        position:relative;
        width:10px;
        height:10px;
        margin-top:2px;
        color:transparent;
        font-size:0;
        line-height:0;
    }

    .day-cell.blocked-day .blocked-text::before{
        content:"";
        position:absolute;
        left:2px;
        bottom:0;
        width:7px;
        height:6px;
        border:1.3px solid #982431;
        border-radius:1.5px;
    }

    .day-cell.blocked-day .blocked-text::after{
        content:"";
        position:absolute;
        top:0;
        left:3.5px;
        width:4px;
        height:5px;
        border:1.3px solid #982431;
        border-bottom:0;
        border-radius:5px 5px 0 0;
    }

    #about,
    #rooms,
    #memories,
    #places,
    #booking,
    #contact{
        scroll-margin-top:68px;
    }

    #about{padding-top:66px;padding-bottom:66px;}
    #rooms{padding-top:66px;padding-bottom:66px;}
    #memories{padding-top:82px;padding-bottom:76px;}
    #places{padding-top:66px;padding-bottom:54px;}
    #booking{padding-top:66px;padding-bottom:66px;}
    #contact{padding-top:66px;padding-bottom:66px;}

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:430px){

    .navbar{
        padding:7px 12px;
    }

    .logo-section img{
        width:157.3px;
        height:auto;
        max-height:none;
    }

    .logo-section{
        width:148px;
        height:45px;
    }

}

/* =========================================================
   FINAL MOBILE HERO OVERRIDE
========================================================= */

@media(max-width:700px){

    .hero-brand-icon{
        --hero-icon-size:68px;
        margin-bottom:24px;
    }

    #hero{
        width:100% !important;
        max-width:100% !important;
        min-height:calc(100vh - 60px) !important;
        overflow:hidden !important;
    }

    #hero .hero-overlay{
        width:100% !important;
        max-width:100% !important;
        padding:30px 16px 36px !important;

        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
    }

    #hero .hero-content{
        width:100% !important;
        max-width:340px !important;

        margin:0 auto !important;
        padding:0 !important;

        text-align:center !important;
        overflow:visible !important;
    }

    #hero .hero-content h1{
        width:100% !important;
        max-width:100% !important;

        margin:0 auto 14px !important;

        font-size:clamp(34px,12vw,42px) !important;
        line-height:1.02 !important;

        letter-spacing:-1px !important;

        white-space:normal !important;
        overflow:visible !important;
        word-break:normal !important;
    }

    #hero .hero-tagline{
        width:100% !important;
        max-width:300px !important;

        margin:0 auto 16px !important;

        font-size:16px !important;
        line-height:1.35 !important;

        white-space:normal !important;
    }

    #hero .hero-description{
        width:100% !important;
        max-width:315px !important;

        margin:0 auto 22px !important;
        padding:0 !important;

        font-size:13px !important;
        line-height:1.65 !important;

        white-space:normal !important;
    }

    #hero .hero-buttons{
        width:100% !important;
        max-width:300px !important;

        margin:0 auto !important;

        display:flex !important;
        flex-direction:column !important;
        gap:12px !important;
    }

    #hero .hero-buttons a{
        width:100% !important;
        max-width:100% !important;

        margin:0 !important;
    }

    #hero .hero-booking-status{
        width:auto !important;
        max-width:300px !important;

        margin:16px auto 0 !important;

        display:inline-block !important;

        font-size:10px !important;
        line-height:1.5 !important;

        white-space:normal !important;
    }

}

/* =========================================================
   MOBILE ABOUT SECTION
========================================================= */

@media(max-width:700px){

    #about{
        padding:56px 16px !important;
    }

    #about .about-premium{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:26px !important;

        width:100% !important;
        max-width:100% !important;
    }

    #about .about-image{
        width:100% !important;
        min-width:0 !important;
    }

    #about .about-image img{
        width:100% !important;
        height:320px !important;

        object-fit:cover !important;

        border-radius:20px !important;
    }

    #about .about-image-badge{
        left:14px !important;
        bottom:14px !important;

        padding:8px 11px !important;

        font-size:10px !important;
    }

    #about .about-text{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    #about .about-kicker{
        font-size:10px !important;
        letter-spacing:1.7px !important;
    }

    #about .about-text h2{
        margin:0 0 16px !important;

        font-size:38px !important;
        line-height:1.08 !important;

        text-align:left !important;
    }

    #about .about-text p{
        font-size:13px !important;
        line-height:1.75 !important;

        margin-bottom:14px !important;
    }

    #about .about-lead{
        font-size:14px !important;
    }

    #about .about-highlights{
        display:grid !important;
        grid-template-columns:1fr !important;

        gap:10px !important;

        margin:22px 0 !important;
    }

    #about .about-highlight{
        padding:14px !important;
        border-radius:13px !important;
    }

    #about .about-highlight strong{
        font-size:12.5px !important;
    }

    #about .about-highlight span{
        font-size:11px !important;
    }

    #about .about-closing{
        margin-top:6px !important;
    }

    #about .about-explore-btn{
        width:100% !important;
        min-height:48px !important;

        display:flex !important;
        align-items:center !important;
        justify-content:center !important;

        margin-top:8px !important;
    }

    .premium-stays,
    .booking-wizard-section,
    #contact{
        width:100%;
        max-width:100%;
    }

    #rooms.premium-stays{
        padding:58px 18px 62px;
    }

    #booking.booking-wizard-section{
        padding:58px 14px 62px;
    }

    #contact{
        padding:58px 16px 62px;
    }

    .premium-room-grid,
    .premium-room-card,
    .premium-room-body,
    .room-feature-grid,
    .floor-preview-grid,
    .booking-wizard-card,
    .booking-wizard-form,
    .booking-step,
    .wizard-fields,
    .booking-calendar,
    .wizard-calendar,
    .guest-calendar,
    .contact-container,
    .contact-info,
    .map,
    .payment-info{
        min-width:0;
        max-width:100%;
    }

    .calendar-weekdays,
    .guest-calendar{
        grid-template-columns:repeat(7,minmax(0,1fr));
        gap:3px;
    }

    .calendar-weekdays span{
        min-width:0;
        font-size:9px;
    }

    .day-cell{
        min-width:0;
        min-height:44px;
        border-radius:8px;
    }

    .day-number{font-size:12px;}
    .day-price{font-size:7px;letter-spacing:-.2px;}

    .contact-info,
    .map,
    .payment-info{
        width:100%;
    }

    .contact-info p,
    .contact-info a,
    footer p{
        overflow-wrap:anywhere;
    }

}

@media(max-width:350px){
    .navbar{padding-left:10px;padding-right:10px;}
    .logo-section{width:145px;height:44px;}
    .logo-section img{width:154.1px;height:auto;max-height:none;}
    .mobile-menu-btn{width:40px;height:40px;}
    .booking-progress{padding-left:6px;padding-right:6px;}
    .booking-progress-line{width:20px;margin-left:2px;margin-right:2px;}
    .booking-progress-item{min-width:38px;}
    .floor-preview-grid{grid-template-columns:1fr;}
}

/* Shop IBBANI hero-only launcher */
.ibbani-shop-launcher{
    position:fixed;
    left:max(28px,env(safe-area-inset-left));
    bottom:28px;
    z-index:9998;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    color:#173d2c;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:scale(.96);
    transform-origin:left bottom;
    transition:opacity .24s ease,transform .24s ease;
}

.ibbani-shop-launcher.is-hero-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:scale(1);
}

.ibbani-shop-launcher__button{
    position:relative;
    display:flex;
    min-width:58px;
    height:58px;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:0 17px 0 13px;
    border:1px solid rgba(157,126,57,.58);
    border-radius:18px;
    background:#f8f2e7;
    color:#173d2c;
    box-shadow:0 12px 30px rgba(20,48,34,.22);
    cursor:pointer;
    transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease;
}

.ibbani-shop-launcher__button:hover{
    transform:translateY(-2px);
    box-shadow:0 15px 34px rgba(20,48,34,.26);
}

.ibbani-shop-launcher__icon{
    width:29px;
    height:29px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.ibbani-shop-launcher__leaf{
    fill:#9d7e39;
    stroke:#9d7e39;
    stroke-width:1;
}

.ibbani-shop-launcher__label{
    font:600 11px/1 'Poppins',sans-serif;
    letter-spacing:.09em;
    white-space:nowrap;
}

.ibbani-shop-launcher__new{
    position:absolute;
    top:-8px;
    left:11px;
    padding:3px 6px;
    border:1px solid rgba(157,126,57,.5);
    border-radius:999px;
    background:#f8f2e7;
    color:#826829;
    font:600 8px/1 'Poppins',sans-serif;
    letter-spacing:.1em;
}

.ibbani-shop-launcher__card{
    position:relative;
    width:min(350px,calc(100vw - 56px));
    margin-bottom:11px;
    padding:20px 55px 17px 20px;
    border:1px solid rgba(157,126,57,.4);
    border-radius:19px;
    background:#f8f2e7;
    box-shadow:0 18px 46px rgba(20,48,34,.22);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(8px);
    transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s;
}

.ibbani-shop-launcher.is-expanded .ibbani-shop-launcher__card{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
    transition-delay:0s;
}

.ibbani-shop-launcher.is-expanded .ibbani-shop-launcher__button{
    opacity:0;
    pointer-events:none;
    transform:scale(.94);
}

.ibbani-shop-launcher__card-badge{
    display:inline-block;
    margin-bottom:8px;
    padding:4px 8px;
    border:1px solid rgba(157,126,57,.48);
    border-radius:999px;
    color:#826829;
    font:600 9px/1.2 'Poppins',sans-serif;
    letter-spacing:.14em;
}

.ibbani-shop-launcher__title{
    display:block;
    font:700 18px/1.3 'Cinzel',serif;
    letter-spacing:.02em;
}

.ibbani-shop-launcher__copy{
    display:block;
    margin-top:7px;
    color:#466354;
    font:400 12px/1.5 'Poppins',sans-serif;
}

.ibbani-shop-launcher__cta{
    display:flex;
    min-height:44px;
    align-items:center;
    margin-top:5px;
    color:#826829;
    font:600 11px/1.3 'Poppins',sans-serif;
    letter-spacing:.075em;
    text-decoration:none;
}

.ibbani-shop-launcher__cta:hover{
    color:#5f4a19;
    text-decoration:underline;
    text-underline-offset:4px;
}

.ibbani-shop-launcher__close{
    position:absolute;
    top:7px;
    right:7px;
    display:grid;
    width:44px;
    height:44px;
    padding:0;
    place-items:center;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#173d2c;
    font:400 25px/1 'Poppins',sans-serif;
    cursor:pointer;
}

.ibbani-shop-launcher__button:focus-visible,
.ibbani-shop-launcher__cta:focus-visible,
.ibbani-shop-launcher__close:focus-visible{
    outline:3px solid #9d7e39;
    outline-offset:2px;
}

@media(max-width:700px){
    .ibbani-shop-launcher{
        left:max(14px,env(safe-area-inset-left));
        bottom:calc(18px + env(safe-area-inset-bottom));
    }

    .ibbani-shop-launcher__button{
        width:58px;
        min-width:58px;
        padding:0;
        border-radius:18px;
    }

    .ibbani-shop-launcher__label{display:none;}
    .ibbani-shop-launcher__new{left:8px;}

    .ibbani-shop-launcher__card{
        position:absolute;
        bottom:-13px;
        left:0;
        width:min(270px,calc(100vw - 28px));
        margin-bottom:0;
        padding:10px 48px 4px 14px;
        border-radius:17px;
    }

    .ibbani-shop-launcher__card-badge{
        position:absolute;
        top:7px;
        right:48px;
        margin:0;
        padding:3px 6px;
        font-size:8px;
    }

    .ibbani-shop-launcher__title{
        max-width:175px;
        padding-top:18px;
        font-size:13px;
        line-height:1.2;
    }

    .ibbani-shop-launcher__copy{
        margin-top:4px;
        font-size:10px;
        line-height:1.25;
    }

    .ibbani-shop-launcher__cta{margin-top:0;font-size:10px;}
    .ibbani-shop-launcher__close{top:3px;right:3px;}
}

@media(prefers-reduced-motion:reduce){
    .ibbani-shop-launcher,
    .ibbani-shop-launcher__button,
    .ibbani-shop-launcher__card{
        transform:none;
        transition:none;
    }
}

/* ================= ROOM GALLERY REAL PHOTOS ================= */

.modal-gallery-photo{
    width:100%;
    height:190px;
    display:block;
    object-fit:cover;
    border-radius:17px;
    cursor:zoom-in;
    background:#eef1ec;
    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.modal-gallery-photo:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(0,0,0,.12);
}

@media(max-width:1000px){
    .floor-gallery-content{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .floor-gallery-content{
        grid-template-columns:1fr;
        gap:12px;
        padding:16px;
    }

    .modal-gallery-photo{
        height:auto;
        aspect-ratio:4 / 3;
    }
}

/* =========================================================
   SHOP IBBANI HOMEPAGE SECTION
   Added 2026-08-15
========================================================= */

.ibbani-shop-section{
    scroll-margin-top:88px;
    padding:78px 7%;
    background:
        radial-gradient(circle at 12% 18%,rgba(199,154,59,.10),transparent 30%),
        linear-gradient(180deg,#fffdf8 0%,#f7f1e5 100%);
    border-top:1px solid rgba(23,61,44,.08);
    border-bottom:1px solid rgba(23,61,44,.08);
}

.ibbani-shop-section__inner{
    width:min(1120px,100%);
    margin:0 auto;
}

.ibbani-shop-section__intro{
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    gap:42px;
    align-items:end;
    margin-bottom:30px;
}

.ibbani-shop-section__kicker{
    display:block;
    margin-bottom:9px;
    color:#9d7e39;
    font:600 11px/1.3 'Poppins',sans-serif;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.ibbani-shop-section h2{
    margin:0;
    color:#173d2c;
    font-family:'Cinzel',serif;
    font-size:clamp(30px,4vw,46px);
    line-height:1.08;
}

.ibbani-shop-section__intro p{
    margin:0;
    max-width:650px;
    color:#5f685f;
    font:400 14px/1.75 'Poppins',sans-serif;
}

.ibbani-shop-section__cards{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.ibbani-shop-section__card{
    display:grid;
    grid-template-columns:48px 1fr;
    gap:18px;
    min-height:170px;
    padding:26px;
    border:1px solid rgba(157,126,57,.22);
    border-radius:22px;
    background:rgba(255,255,255,.72);
    box-shadow:0 14px 34px rgba(24,61,44,.08);
}

.ibbani-shop-section__number{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border-radius:50%;
    color:#173d2c;
    background:#efe4c7;
    border:1px solid rgba(157,126,57,.28);
    font:600 12px/1 'Poppins',sans-serif;
    letter-spacing:.08em;
}

.ibbani-shop-section__card small{
    display:block;
    margin-bottom:5px;
    color:#9d7e39;
    font:600 10px/1.4 'Poppins',sans-serif;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.ibbani-shop-section__card h3{
    margin:0 0 8px;
    color:#173d2c;
    font-family:'Cinzel',serif;
    font-size:21px;
    line-height:1.25;
}

.ibbani-shop-section__card p{
    margin:0;
    color:#667067;
    font:400 13px/1.65 'Poppins',sans-serif;
}

.ibbani-shop-section__cta{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:24px;
    padding:12px 20px;
    border:1px solid #173d2c;
    border-radius:999px;
    color:#fff;
    background:#173d2c;
    text-decoration:none;
    font:600 11px/1 'Poppins',sans-serif;
    letter-spacing:.08em;
    transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}

.ibbani-shop-section__cta:hover{
    transform:translateY(-2px);
    background:#0f3022;
    box-shadow:0 10px 22px rgba(23,61,44,.18);
}

#mainNavigation a[href="#shop-ibbani"]{
    color:#8d6d2c;
}

@media (max-width:850px){
    .ibbani-shop-section{
        padding:58px 20px;
        scroll-margin-top:74px;
    }

    .ibbani-shop-section__intro{
        grid-template-columns:1fr;
        gap:13px;
        margin-bottom:22px;
    }

    .ibbani-shop-section__cards{
        grid-template-columns:1fr;
        gap:13px;
    }

    .ibbani-shop-section__card{
        min-height:0;
        padding:20px;
    }
}

@media (max-width:520px){
    .ibbani-shop-section{
        padding:48px 16px;
    }

    .ibbani-shop-section__card{
        grid-template-columns:40px 1fr;
        gap:13px;
        border-radius:18px;
    }

    .ibbani-shop-section__number{
        width:38px;
        height:38px;
    }

    .ibbani-shop-section__card h3{
        font-size:18px;
    }

    .ibbani-shop-section__cta{
        width:100%;
        justify-content:center;
        margin-top:18px;
    }
}

/* =========================================================
   SHOP IBBANI COMING SOON OVERRIDE
   Added 2026-08-15
========================================================= */

.ibbani-shop-section{
    scroll-margin-top:88px;
    padding:78px 7%;
    background:
        radial-gradient(circle at 12% 18%, rgba(199,154,59,.10), transparent 30%),
        linear-gradient(180deg, #fffdf8 0%, #f7f1e5 100%);
    border-top:1px solid rgba(23,61,44,.08);
    border-bottom:1px solid rgba(23,61,44,.08);
}

.ibbani-shop-section__inner{
    width:min(920px,100%);
    margin:0 auto;
}

.ibbani-shop-section__coming{
    text-align:center;
    padding:52px 28px;
    border:1px solid rgba(157,126,57,.20);
    border-radius:26px;
    background:rgba(255,255,255,.72);
    box-shadow:0 14px 34px rgba(24,61,44,.08);
}

.ibbani-shop-section__kicker{
    display:inline-block;
    margin-bottom:10px;
    color:#9d7e39;
    font:600 11px/1.4 'Poppins', sans-serif;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.ibbani-shop-section h2{
    margin:0 0 12px;
    color:#173d2c;
    font-family:'Cinzel', serif;
    font-size:clamp(34px,4vw,52px);
    line-height:1.08;
}

.ibbani-shop-section p{
    max-width:640px;
    margin:0 auto;
    color:#626b62;
    font:400 15px/1.75 'Poppins', sans-serif;
}

.ibbani-shop-loading{
    display:inline-flex;
    gap:10px;
    align-items:center;
    justify-content:center;
    margin-top:26px;
}

.ibbani-shop-loading span{
    width:12px;
    height:12px;
    border-radius:50%;
    background:linear-gradient(145deg,#f1d57f,#b88125);
    box-shadow:0 4px 10px rgba(141,101,33,.18);
    animation:ibbaniShopPulse 1.2s infinite ease-in-out;
}

.ibbani-shop-loading span:nth-child(2){
    animation-delay:.18s;
}

.ibbani-shop-loading span:nth-child(3){
    animation-delay:.36s;
}

.ibbani-shop-section__status{
    margin-top:16px;
    color:#8b6b2a;
    font:600 12px/1.4 'Poppins', sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
}

@keyframes ibbaniShopPulse{
    0%, 80%, 100%{
        transform:scale(.75);
        opacity:.45;
    }
    40%{
        transform:scale(1);
        opacity:1;
    }
}

@media (max-width: 850px){
    .ibbani-shop-section{
        padding:58px 20px;
        scroll-margin-top:74px;
    }

    .ibbani-shop-section__coming{
        padding:40px 20px;
        border-radius:22px;
    }
}

@media (max-width: 520px){
    .ibbani-shop-section{
        padding:48px 16px;
    }

    .ibbani-shop-section__coming{
        padding:34px 16px;
    }

    .ibbani-shop-section h2{
        font-size:36px;
    }

    .ibbani-shop-section p{
        font-size:14px;
    }

    .ibbani-shop-loading span{
        width:10px;
        height:10px;
    }
}


/* GLOBAL FLOATING CONTACT HIDE */
.floating-call.floating-ui-hidden,
.floating-whatsapp.floating-ui-hidden{
opacity:0 !important;
visibility:hidden !important;
pointer-events:none !important;
transform:translateY(6px);
}


/* PRICE BREAKDOWN TWO COLUMN */
@media (min-width: 851px){
#priceBreakdown{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
column-gap:38px;
align-items:start;
}
#priceBreakdown > p{
margin:0;
}
#priceBreakdown > p:nth-child(-n+5){
grid-column:1;
}
#priceBreakdown > p:nth-child(n+6){
grid-column:2;
}
}
@media (max-width:850px){
#priceBreakdown{
display:block;
}
#priceBreakdown > p{
margin:0;
}
}


/* BALANCED PRICE BREAKDOWN COLUMNS */
@media (min-width:851px){
#priceBreakdown{
display:block !important;
column-count:2;
column-gap:48px;
column-fill:balance;
}
#priceBreakdown > p{
margin:0;
break-inside:avoid;
-webkit-column-break-inside:avoid;
}
}
@media (max-width:850px){
#priceBreakdown{
display:block !important;
column-count:1;
}
}


/* MINIMUM BILLING SUMMARY NOTICE */
.minimum-billing-notice{
margin:0 0 16px;
padding:16px 18px;
border:1px solid rgba(177,132,36,.32);
border-left:4px solid #b18424;
border-radius:12px;
background:linear-gradient(135deg,#fffaf0,#fff6df);
box-shadow:0 8px 22px rgba(120,88,25,.07);
}
.minimum-billing-notice strong{
display:block;
margin-bottom:5px;
color:#765512;
font-size:13px;
font-weight:700;
}
.minimum-billing-notice p{
margin:0;
color:#655b45;
font-size:12px;
line-height:1.65;
}
@media(max-width:850px){
.minimum-billing-notice{
padding:14px;
margin-bottom:14px;
}
.minimum-billing-notice strong{
font-size:12px;
}
.minimum-billing-notice p{
font-size:11px;
}
}


/* MINIMUM BILLING ALERT TUNING */
.minimum-billing-notice{
    border:1px solid rgba(184,58,58,.28);
    border-left:4px solid #b83a3a;
    background:#fff5f3;
}
.minimum-billing-notice strong{
    color:#b83a3a;
}
.minimum-billing-notice p{
    color:#5b4b42;
}


/* GOLD ROOM RECOMMENDATION */
.minimum-billing-recommendation{
    display:block;
    margin-top:6px;
    color:#a87917;
    font-weight:650;
    line-height:1.6;
}


/* IBBANI nearby photo navigation 20260816 */

.destination-image-nav{
    position:absolute;
    top:50%;
    z-index:6;
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    border:1px solid rgba(255,255,255,.72);
    border-radius:50%;
    background:rgba(18,43,31,.72);
    color:#fff;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    transform:translateY(-50%);
    box-shadow:0 4px 15px rgba(0,0,0,.22);
    transition:
        background .2s ease,
        transform .2s ease,
        opacity .2s ease;
}

.destination-image-nav-prev{
    left:16px;
}

.destination-image-nav-next{
    right:16px;
}

.destination-image-nav:hover,
.destination-image-nav:focus-visible{
    background:rgba(18,43,31,.94);
    transform:translateY(-50%) scale(1.06);
}

.destination-image-nav:focus-visible{
    outline:3px solid rgba(255,255,255,.92);
    outline-offset:2px;
}

.destination-slide:not(.is-active)
.destination-image-nav{
    opacity:0;
    pointer-events:none;
}

@media (max-width:700px){

    .destination-image-nav{
        width:40px;
        height:40px;
        font-size:21px;
    }

    .destination-image-nav-prev{
        left:10px;
    }

    .destination-image-nav-next{
        right:10px;
    }
}


/* IBBANI full nearby photo viewer 20260816 */

/*
 * Show the complete image in the normal Nearby Places card.
 * No forced crop.
 */
.destination-slide-image{
    background:#12271d;
}

.destination-slide-image img{
    object-fit:contain;
    background:#12271d;
}

.destination-slide.is-active:hover
.destination-slide-image img{
    transform:none;
}

.destination-image-clickable{
    cursor:zoom-in;
}


/* Fullscreen viewer */
.destination-image-viewer{
    position:fixed;
    inset:0;
    z-index:100000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(6,15,11,.94);
    backdrop-filter:blur(8px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
        opacity .22s ease,
        visibility .22s ease;
}

.destination-image-viewer.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.destination-image-viewer-inner{
    position:relative;
    display:flex;
    width:min(94vw,1500px);
    height:min(90vh,950px);
    align-items:center;
    justify-content:center;
}

.destination-image-viewer-photo{
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    border-radius:12px;
    box-shadow:
        0 20px 60px rgba(0,0,0,.42);
}

.destination-image-viewer-close{
    position:absolute;
    top:6px;
    right:6px;
    z-index:4;
    display:grid;
    width:46px;
    height:46px;
    place-items:center;
    border:1px solid rgba(255,255,255,.72);
    border-radius:50%;
    background:rgba(15,40,29,.9);
    color:#fff;
    font-size:20px;
    cursor:pointer;
}

.destination-image-viewer-nav{
    position:absolute;
    top:50%;
    z-index:4;
    display:grid;
    width:54px;
    height:54px;
    place-items:center;
    border:1px solid rgba(255,255,255,.72);
    border-radius:50%;
    background:rgba(15,40,29,.9);
    color:#fff;
    font-size:28px;
    cursor:pointer;
    transform:translateY(-50%);
    box-shadow:
        0 6px 24px rgba(0,0,0,.28);
}

.destination-image-viewer-prev{
    left:10px;
}

.destination-image-viewer-next{
    right:10px;
}

.destination-image-viewer-nav:hover,
.destination-image-viewer-close:hover{
    background:#173f2d;
}

.destination-image-viewer-counter{
    position:absolute;
    left:50%;
    bottom:10px;
    z-index:4;
    transform:translateX(-50%);
    padding:7px 13px;
    border-radius:999px;
    background:rgba(10,28,20,.82);
    color:#fff;
    font-size:14px;
    font-weight:600;
    letter-spacing:.04em;
}

body.destination-image-viewer-open{
    overflow:hidden;
}


@media (max-width:700px){

    .destination-image-viewer{
        padding:10px;
    }

    .destination-image-viewer-inner{
        width:100%;
        height:92vh;
    }

    .destination-image-viewer-nav{
        width:44px;
        height:44px;
        font-size:23px;
    }

    .destination-image-viewer-prev{
        left:4px;
    }

    .destination-image-viewer-next{
        right:4px;
    }

    .destination-image-viewer-close{
        top:4px;
        right:4px;
        width:42px;
        height:42px;
    }

    .destination-image-viewer-photo{
        border-radius:8px;
    }
}

/* IBBANI clearer nearby photo arrows 20260816 */
.destination-image-nav,
.destination-image-viewer-nav {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(10, 45, 30, 0.92);
    border: 2px solid rgba(255,255,255,0.85);
    color: #ffffff;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    display: grid;
    place-items: center;
    box-shadow: 0 8px 24px rgba(0,0,0,0.28);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.destination-image-nav:hover,
.destination-image-viewer-nav:hover,
.destination-image-nav:focus-visible,
.destination-image-viewer-nav:focus-visible {
    background: rgba(18, 92, 58, 0.98);
    transform: scale(1.05);
    box-shadow: 0 10px 28px rgba(0,0,0,0.34);
    outline: none;
}

.destination-image-nav span,
.destination-image-viewer-nav span,
.destination-image-nav svg,
.destination-image-viewer-nav svg {
    width: 22px;
    height: 22px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2.8;
}

@media (max-width: 768px) {
    .destination-image-nav,
    .destination-image-viewer-nav {
        width: 50px;
        height: 50px;
        font-size: 26px;
    }
}

/* IBBANI transparent nearby photo arrows 20260816 */
.destination-image-nav,
.destination-image-viewer-nav{
    background: transparent !important;
    color: #ffffff !important;
    border: 1.5px solid rgba(255,255,255,0.92) !important;
    box-shadow: 0 6px 18px rgba(0,0,0,0.22);
    backdrop-filter: blur(2px);
}

.destination-image-nav:hover,
.destination-image-viewer-nav:hover,
.destination-image-nav:focus-visible,
.destination-image-viewer-nav:focus-visible{
    background: rgba(255,255,255,0.10) !important;
    color: #ffffff !important;
    border-color: rgba(255,255,255,1) !important;
}

.destination-image-nav svg,
.destination-image-viewer-nav svg{
    fill: currentColor !important;
    stroke: currentColor !important;
}

/* IBBANI fully transparent nearby photo arrows 20260816 */
.destination-image-nav,
.destination-image-viewer-nav{
    background: transparent !important;
    background-color: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    color: #ffffff !important;
    border: 2px solid rgba(255,255,255,0.95) !important;
}

.destination-image-nav:hover,
.destination-image-viewer-nav:hover,
.destination-image-nav:focus-visible,
.destination-image-viewer-nav:focus-visible{
    background: transparent !important;
    background-color: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    color: #ffffff !important;
    border-color: rgba(255,255,255,1) !important;
}

.destination-image-nav svg,
.destination-image-viewer-nav svg{
    fill: currentColor !important;
    stroke: currentColor !important;
}


/* =========================================================
   IBBANI COUPON UI V1
========================================================= */

.booking-coupon-box{
    margin-top:18px;
    padding:16px;
    border:1px solid rgba(156,123,34,.30);
    border-radius:14px;
    background:#fffdf8;
}

.booking-coupon-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:11px;
}

.booking-coupon-heading strong{
    display:block;
    margin-top:3px;
    color:#20382a;
    font-size:13px;
}

.booking-coupon-kicker{
    display:block;
    color:#9c7b22;
    font-size:9px;
    font-weight:800;
    letter-spacing:1px;
    text-transform:uppercase;
}

.booking-coupon-entry{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:9px;
}

#couponCodeEntry{
    width:100%;
    min-width:0;
    min-height:46px;
    padding:11px 13px;
    border:1px solid #d4ddd6;
    border-radius:11px;
    background:#ffffff;
    color:#203128;
    font-family:inherit;
    font-size:13px;
    font-weight:700;
    letter-spacing:.5px;
    text-transform:uppercase;
}

#couponCodeEntry::placeholder{
    color:#909b94;
    font-weight:500;
    letter-spacing:0;
    text-transform:none;
}

#couponCodeEntry:focus{
    outline:none;
    border-color:#315c41;
    box-shadow:0 0 0 3px rgba(49,92,65,.08);
}

#applyCouponButton{
    min-width:92px;
    min-height:46px;
    padding:10px 17px;
    border:1px solid #173525;
    border-radius:11px;
    background:#173525;
    color:#ffffff;
    font-family:inherit;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
}

#applyCouponButton:hover{
    background:#0f281b;
}

#applyCouponButton:disabled{
    opacity:.65;
    cursor:not-allowed;
}

.booking-coupon-help{
    margin:9px 0 0;
    color:#78857c;
    font-size:10px;
    line-height:1.5;
}

.booking-coupon-message{
    margin:10px 0 0;
    padding:9px 11px;
    border-radius:9px;
    font-size:10.5px;
    font-weight:700;
    line-height:1.5;
}

.booking-coupon-message.success{
    border:1px solid #c8e1ce;
    background:#edf7ef;
    color:#28613f;
}

.booking-coupon-message.error{
    border:1px solid #efcdcd;
    background:#fff3f3;
    color:#9c4141;
}

.booking-coupon-message.info{
    border:1px solid #e3d8b9;
    background:#fbf7ea;
    color:#725b20;
}


@media(max-width:700px){

    .booking-coupon-box{
        padding:14px;
    }

    .booking-coupon-entry{
        grid-template-columns:1fr;
    }

    #applyCouponButton{
        width:100%;
    }
}


/* Keep currency symbol and amount together */
.wizard-payment-summary strong span{
    display:inline;
    margin:0;
    color:inherit;
    font-size:inherit;
}


/* ================= IBBANI FAQ ================= */

#faq{
    padding:76px 8%;
    background:#f8f5ef;
    scroll-margin-top:110px;
}

#faq .section-title{
    margin-bottom:38px;
}

.faq-container{
    width:min(100%,1050px);
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:start;
}

.faq-item{
    background:#fff;
    border:1px solid rgba(33,54,41,.12);
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(20,45,30,.06);
}

.faq-item summary{
    position:relative;
    padding:20px 54px 20px 22px;
    cursor:pointer;
    list-style:none;
    color:#213629;
    font-size:15px;
    font-weight:700;
    line-height:1.45;
}

.faq-item summary::-webkit-details-marker{
    display:none;
}

.faq-item summary::after{
    content:"+";
    position:absolute;
    right:20px;
    top:50%;
    transform:translateY(-50%);
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#edf4ee;
    color:#245b3b;
    font-size:20px;
}

.faq-item[open] summary::after{
    content:"−";
}

.faq-answer{
    padding:0 22px 20px;
}

.faq-answer p{
    margin:0;
    color:#5d6c62;
    font-size:14px;
    line-height:1.8;
}

@media(max-width:768px){

    #faq{
        padding:58px 6%;
    }

    .faq-container{
        grid-template-columns:1fr;
        gap:11px;
    }

    .faq-item summary{
        padding:18px 50px 18px 18px;
        font-size:14px;
    }

    .faq-answer{
        padding:0 18px 18px;
    }
}



/* ---------- IBBANI PUBLIC MOBILE FLOATING CTA POLISH ---------- */
@media (max-width:600px){

    .floating-call,
    .floating-whatsapp{
        right:max(6px,env(safe-area-inset-right));
        width:36px;
        height:36px;
        box-shadow:0 5px 14px rgba(10,32,21,.20);
    }

    .floating-call::before{
        width:17px;
        height:17px;
    }

    .floating-whatsapp::before{
        width:19px;
        height:19px;
    }

    .floating-call{
        bottom:calc(50px + env(safe-area-inset-bottom));
    }

    .floating-whatsapp{
        bottom:calc(7px + env(safe-area-inset-bottom));
    }

}

/* =========================================================
   IBBANI INSTAGRAM LINKS
   Added 2026-08-29
========================================================= */

.nav-instagram-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    white-space: nowrap;
}

.nav-instagram-link svg {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nav-instagram-label {
    display: none;
}

.contact-instagram-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.contact-instagram-label {
    color: #536358;
}

.contact-instagram-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #173525;
    font-weight: 600;
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: color 0.2s ease, transform 0.2s ease;
}

.contact-instagram-link svg {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    fill: none;
    stroke: #a37d1d;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-instagram-link:hover,
.contact-instagram-link:focus {
    color: #a37d1d;
    transform: translateY(-1px);
}

.footer-instagram-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px auto 2px;
    padding: 11px 16px;
    border: 1px solid rgba(214, 183, 95, 0.42);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.04);
    color: #f4efe7;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.4;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.footer-instagram-link svg {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    fill: none;
    stroke: #d6b75f;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.footer-instagram-link strong {
    color: #d6b75f;
    font-weight: 600;
}

.footer-instagram-link:hover,
.footer-instagram-link:focus {
    background: rgba(214, 183, 95, 0.10);
    border-color: #d6b75f;
    color: #ffffff;
    transform: translateY(-2px);
}

@media (max-width: 850px) {
    .nav-instagram-link {
        justify-content: flex-start;
        gap: 10px;
    }

    .nav-instagram-label {
        display: inline;
    }

    .navbar nav.mobile-open {
        max-height: 580px;
    }
}

@media (max-width: 520px) {
    .contact-instagram-row {
        align-items: flex-start;
        gap: 4px 7px;
    }

    .contact-instagram-link {
        max-width: 100%;
        font-size: 14px;
    }

    .footer-instagram-link {
        width: min(100%, 340px);
        padding: 11px 14px;
    }

    .footer-instagram-link strong {
        width: 100%;
    }
}
/* ================= NEARBY PLACES PHOTO NAV BUTTONS ================= */

.destination-slide-image {
    position: relative !important;
}

/* Base style for card arrow navigation */
.destination-image-nav,
.destination-image-nav-prev,
.destination-image-nav-next {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 20 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    border: 1px solid rgba(255, 255, 255, 0.6) !important;
    border-radius: 50% !important;
    background: rgba(0, 0, 0, 0.35) !important;
    backdrop-filter: blur(4px) !important;
    color: #ffffff !important;
    font-size: 18px !important;
    cursor: pointer !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transition: all 0.25s ease !important;
}

.destination-image-nav-prev {
    left: 14px !important;
    right: auto !important;
}

.destination-image-nav-next {
    right: 14px !important;
    left: auto !important;
}

/* Hover & Active Effects */
.destination-image-nav-prev:hover,
.destination-image-nav-next:hover,
.destination-image-nav:hover {
    background: rgba(23, 53, 37, 0.9) !important;
    border-color: #ffffff !important;
    transform: translateY(-50%) scale(1.08) !important;
}