/*=========================================
B&B TRAVEL WEBSITE
=========================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
}

html{
    scroll-behavior:smooth;
}

body{
    background:#F5F7FA;
    color:#121212;
    overflow-x:hidden;
}

/*=========================================
COLORS
=========================================

Black        #121212
Dark Teal    #0B4F63
Ocean Blue   #19A7CE
Lime         #A8CF38
White        #FFFFFF

=========================================*/


/*=========================================
HEADER
=========================================*/

header{
    background:#ffffff;
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100px;
    padding:12px 5%;
    display:flex;
    align-items:center;
    gap:30px;
    z-index:1000;
    transition:.4s;
}

header.sticky{
    background:#ffffff;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    height:90px;
}

/*================ LOGO ================*/

.logo{
    display:flex;
    align-items:center;
    flex-shrink:0;
}

.logo img{
    width:135px;
    height:auto;
    display:block;
}

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

nav{
    flex:1;
    display:flex;
    justify-content:center;
}

nav ul{
    display:flex;
    align-items:center;
    justify-content:center;
    list-style:none;
    gap:24px;
    margin:0;
    padding:0;
    white-space:nowrap;
}

nav ul li{
    position:relative;
}

nav ul li a{
    text-decoration:none;
    color:rgb(0, 0, 0);
    font-size:14px;
    font-weight:500;
    white-space:nowrap;
    transition:.3s;
}

header.sticky nav ul li a{
    color:#121212;
}

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

/* Navigation underline */

nav ul li::after{
    content:"";
    position:absolute;
    bottom:-7px;
    left:0;
    width:0;
    height:2px;
    background:#19A7CE;
    transition:.3s;
}

nav ul li:hover::after{
    width:100%;
}

/*================ RIGHT SIDE ================*/

.header-right{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:16px;
    flex-shrink:0;
    white-space:nowrap;
}

.login-btn {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #0B4F63;
    color: #0B4F63;
    padding: 15px 30px;
    border-radius: 35px;
    font-weight: 600;
    transition: .3s;

}


.register-btn{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #0B4F63;
    color: white;
    padding: 16px 30px;
    border-radius: 35px;
    font-weight: 600;
    transition: .3s;
}

header.sticky .login-btn{
    color:#121212;
}
header.sticky .register-btn{
    color:#ffffff;
}

.login-btn:hover,
.register-btn:hover{
    color:#19A7CE;
}

/*================ MY ACCOUNT ================*/

.account{
    position:relative;
    color:rgb(0, 0, 0);
    cursor:pointer;
    font-size:14px;
    font-weight:500;
    white-space:nowrap;
}

header.sticky .account{
    color:#121212;
}

.account i{
    margin-left:5px;
    font-size:12px;
}

/*================ DROPDOWN ================*/

.dropdown{
    position:absolute;
    top:35px;
    right:0;
    width:190px;
    background:white;
    border-radius:10px;
    display:none;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,.15);
}

.dropdown a{
    display:block;
    padding:14px 18px;
    color:#121212;
    text-decoration:none;
    transition:.3s;
}

.dropdown a:hover{
    background:#19A7CE;
    color:white;
}

.account:hover .dropdown{
    display:block;
}

/*================ BOOK BUTTON ================*/

.book-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#0B4F63;
    color:white;
    text-decoration:none;
    padding:14px 25px;
    min-width:125px;
    border-radius:30px;
    transition:.3s;
    font-weight:600;
    white-space:nowrap;
}

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

.hero{

    position:relative;

    width:100%;

    height:100vh;

    background:url("https://images.unsplash.com/photo-1532364158125-02d75a0f7fb9?w=900&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8MzF8fHBsYW5lfGVufDB8fDB8fHww");

    background-position:center;

    background-size:cover;

    display:flex;

    align-items:center;

}

.overlay{

    position:absolute;

    inset:0;

    background:rgba(111, 108, 108, 0.55);

}

.hero-content{

    position:relative;

    width:700px;

    margin-left:8%;

    color:white;

    z-index:2;

}

.hero-content h1{

    font-size:70px;

    font-family:'Playfair Display',serif;

    line-height:1.1;

}

.hero-content h2{

    margin-top:20px;

    color:#A8CF38;

    font-size:36px;

    font-weight:600;

}

.hero-content p{

    margin:35px 0;

    line-height:1.9;

    color:#ddd;

    max-width:600px;

}

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

.hero-buttons{

    display:flex;

    gap:20px;

}

.primary-btn{

    background:#0B4F63;

    color:white;

    text-decoration:none;

    padding:18px 36px;

    border-radius:35px;

    transition:.3s;

}

.primary-btn:hover{

    background: #A8CF38;

}

.secondary-btn{

    border:2px solid white;

    color:white;

    text-decoration:none;

    padding:18px 36px;

    border-radius:35px;

    transition:.3s;

}

.secondary-btn:hover{

    background:white;

    color:#121212;

}

/*=========================================
SEARCH BOX
=========================================*/

.search-box{

    position:relative;

    margin-top:-70px;

    z-index:100;

}

.search-container{

    width:88%;

    margin:auto;

    background:#ffffff;

    border-radius:20px;

    padding:30px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    box-shadow:0 15px 40px rgba(0,0,0,.12);

}

.search-item{

    display:flex;

    align-items:center;

    gap:15px;

    flex:1;

}

.search-item i{

    font-size:22px;

    color:#0B4F63;

}

.search-item label{

    display:block;

    font-size:13px;

    font-weight:600;

    margin-bottom:5px;

    color:#555;

}

.search-item input{

    border:none;

    outline:none;

    width:100%;

    font-size:16px;

    background:transparent;

}

.search-btn{

    background:#0B4F63;

    color:white;

    border:none;

    padding:18px 35px;

    border-radius:12px;

    cursor:pointer;

    font-size:16px;

    font-weight:600;

    transition:.3s;

}

.search-btn:hover{

    background:#19A7CE;

    transform:translateY(-3px);

}

/*=========================================
SEARCH TABS
=========================================*/

.search-tabs {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}


.search-tab {
    border: none;
    background: rgba(255, 255, 255, 0.9);
    color: #555;
    padding: 11px 22px;
    border-radius: 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}


.search-tab i {
    font-size: 15px;
}


.search-tab:hover {
    color: #0B4F63;
    transform: translateY(-1px);
}


.search-tab.active {
    background: #0B4F63;
    color: #fff;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
}


/*=========================================
SEARCH FORMS
=========================================*/

.search-form {
    display: none !important;
}


.search-form.active {
    display: flex !important;
    animation: searchFade 0.25s ease;
}


@keyframes searchFade {

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

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

}


/*=========================================
MOBILE SEARCH TABS
=========================================*/

@media (max-width: 768px) {

    .search-tabs {
        margin-bottom: 10px;
    }

    .search-tab {
        padding: 9px 17px;
        font-size: 13px;
    }

}


/*=========================================
STATS
=========================================*/

.stats{

    width:90%;

    margin:80px auto;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

    text-align:center;

}

.stat{

    background:white;

    border-radius:20px;

    padding:35px;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

    transition:.3s;

}

.stat:hover{

    transform:translateY(-8px);

}

.stat h2{

    font-size:40px;

    color:#0B4F63;

}

.stat p{

    margin-top:10px;

    color:#666;

}

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

.section-heading{

    width:90%;

    margin:100px auto 40px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.section-heading h2{

    font-size:40px;

    color:#121212;

    font-family:'Playfair Display',serif;

}

.section-heading a{

    color:#19A7CE;

    text-decoration:none;

    font-weight:600;

}

/*=========================================
CURRENT OFFERS
=========================================*/

.offer-container{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:30px;

}

.offer-card{

    position:relative;

    overflow:hidden;

    border-radius:20px;

    height:320px;

    box-shadow:0 12px 30px rgba(0,0,0,.12);

}

.offer-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.5s;

}

.offer-card:hover img{

    transform:scale(1.08);

}

.offer-content{

    position:absolute;

    inset:0;

    background:linear-gradient(
        rgba(0,0,0,.2),
        rgba(0,0,0,.75)
    );

    color:white;

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:35px;

}

.offer-content span{

    background:#A8CF38;

    color:#121212;

    width:max-content;

    padding:8px 15px;

    border-radius:20px;

    font-size:14px;

    font-weight:700;

}

.offer-content h3{

    margin:18px 0 10px;

    font-size:32px;

}

.offer-btn{

    margin-top:25px;

    background:#19A7CE;

    color:white;

    text-decoration:none;

    padding:14px 26px;

    border-radius:30px;

    width:max-content;

    transition:.3s;

}

.offer-btn:hover{

    background:#0B4F63;

}

/*=========================================
DESTINATIONS
=========================================*/

.destination-grid{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.destination-card{

    background:white;

    overflow:hidden;

    border-radius:20px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.3s;

}

.destination-card:hover{

    transform:translateY(-10px);

}

.destination-card img{

    width:100%;

    height:250px;

    object-fit:cover;

    transition:.5s;

}

.destination-card:hover img{

    transform:scale(1.08);

}

.destination-info{

    padding:25px;

}

.destination-info h3{

    font-size:24px;

    color:#121212;

}

.destination-info p{

    color:#777;

    margin:10px 0;

}

.destination-info span{

    color:#0B4F63;

    font-weight:700;

}

/*=========================================
HOLIDAY PACKAGES
=========================================*/

.packages{

    padding:90px 0;

}

.package-grid{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.package-card{

    background:white;

    padding:45px 30px;

    border-radius:20px;

    text-align:center;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.4s;

    cursor:pointer;

}

.package-card:hover{

    transform:translateY(-12px);

    background:#0B4F63;

    color:white;

}

.package-card i{

    font-size:55px;

    color:#19A7CE;

    margin-bottom:20px;

}

.package-card:hover i{

    color:#A8CF38;

}

.package-card h3{

    margin-bottom:15px;

    font-size:24px;

}

.package-card p{

    line-height:1.8;

}

/*=========================================
FLIGHTS
=========================================*/

.flights{

    padding:90px 0;

    background:#ffffff;

}

.flight-container{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:35px;

}

.flight-card{

    background:#4A4A4A;

    color:white;

    border-radius:20px;

    padding:50px;

    transition:.4s;

}

.flight-card:hover{

    transform:translateY(-10px);

}

.flight-card i{

    font-size:55px;

    color:#A8CF38;

    margin-bottom:20px;

}

.flight-card h3{

    font-size:30px;

    margin-bottom:15px;

}

.flight-card p{

    line-height:1.8;

    color:#ddd;

    margin-bottom:30px;

}

/*=========================================
HOTELS
=========================================*/

.hotels{

    padding:90px 0;

}

.hotel-grid{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.hotel-card{

    background:white;

    overflow:hidden;

    border-radius:20px;

    box-shadow:0 12px 30px rgba(0,0,0,.08);

    transition:.4s;

}

.hotel-card:hover{

    transform:translateY(-10px);

}

.hotel-card img{

    width:100%;

    height:260px;

    object-fit:cover;

    transition:.5s;

}

.hotel-card:hover img{

    transform:scale(1.08);

}

.hotel-info{

    padding:25px;

}

.hotel-info h3{

    font-size:24px;

    margin-bottom:10px;

}

.hotel-info p{

    color:#666;

    margin-bottom:12px;

}

.hotel-info span{

    color:#0B4F63;

    font-weight:700;

    font-size:18px;

}

/*=========================================
MEMBERSHIP
=========================================*/

.membership{

    padding:100px 0;

    background:#121212;

}

.membership .section-heading{

    color:white;

}

.membership .section-heading h2{

    color:white;

}

.membership-container{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

}

.member-card{

    background:white;

    border-radius:20px;

    text-align:center;

    padding:45px 35px;

    transition:.4s;

}

.member-card:hover{

    transform:translateY(-10px);

}

.member-card h3{

    color:#0B4F63;

    font-size:28px;

}

.member-card h1{

    margin:20px 0;

    font-size:45px;

}

.member-card ul{

    list-style:none;

    margin:30px 0;

}

.member-card ul li{

    padding:10px 0;

    color:#555;

}

.member-card button{

    border:none;

    background:#0B4F63;

    color:white;

    padding:15px 35px;

    border-radius:30px;

    cursor:pointer;

    transition:.3s;

    font-size:16px;

}

.member-card button:hover{

    background:#19A7CE;

}

.featured{

    background:#19A7CE;

    color:white;

    transform:scale(1.05);

}

.featured h3,
.featured h1,
.featured li{

    color:white;

}

.featured button{

    background:#121212;

}

.featured button:hover{

    background:#A8CF38;

    color:#121212;

}

/*=========================================
TESTIMONIALS
=========================================*/

.testimonials{

    padding:100px 0;

    background:#F5F7FA;

}

.testimonial-grid{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.testimonial-card{

    background:white;

    padding:40px;

    border-radius:20px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.3s;

}

.testimonial-card:hover{

    transform:translateY(-10px);

}

.testimonial-card p{

    color:#666;

    line-height:1.8;

    margin-bottom:20px;

}

.testimonial-card h4{

    color:#19A7CE;

    font-size:22px;

    margin-bottom:10px;

}

.testimonial-card span{

    color:#0B4F63;

    font-weight:600;

}

/*=========================================
NEWSLETTER
=========================================*/

.newsletter{

    background:#0B4F63;

    color:white;

    padding:100px 20px;

    text-align:center;

}

.newsletter h2{

    font-size:42px;

    margin-bottom:20px;

    font-family:'Playfair Display',serif;

}

.newsletter p{

    max-width:650px;

    margin:auto;

    color:#ddd;

    line-height:1.8;

}

.newsletter-box{

    margin-top:40px;

    display:flex;

    justify-content:center;

    gap:15px;

}

.newsletter-box input{

    width:420px;

    padding:18px;

    border:none;

    border-radius:40px;

    outline:none;

    font-size:16px;

}

.newsletter-box button{

    background:#A8CF38;

    color:#121212;

    border:none;

    padding:18px 35px;

    border-radius:40px;

    cursor:pointer;

    font-weight:700;

    transition:.3s;

}

.newsletter-box button:hover{

    background:white;

}

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

footer{

    background:#121212;

    color:white;

    padding:80px 8% 30px;

}

.footer-container{

    display:grid;

    grid-template-columns:2fr 1fr 1fr 1fr;

    gap:40px;

}

.footer-logo{

    width:170px;

    margin-bottom:20px;

}

.footer-column h3{

    margin-bottom:20px;

    color:#19A7CE;

}

.footer-column p{

    color:#bbb;

    line-height:1.8;

    margin-bottom:10px;

}

.footer-column a{

    display:block;

    color:#bbb;

    text-decoration:none;

    margin-bottom:12px;

    transition:.3s;

}

.footer-column a:hover{

    color:#19A7CE;

    padding-left:8px;

}

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.1);

    margin-top:50px;

    padding-top:25px;

    text-align:center;

    color:#999;

}

/*=========================================
SCROLLBAR
=========================================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#eee;

}

::-webkit-scrollbar-thumb{

    background:#0B4F63;

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:#19A7CE;

}

/*=========================================
ANIMATIONS
=========================================*/

.hero-content{

    animation:fadeUp 1.2s ease;

}

.search-container{

    animation:fadeUp 1.5s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

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

@media (max-width: 1100px) {

    nav{
        display: none;
    }

    .header-right{
        gap: 12px;
    }

    .package-grid,
    .destination-grid,
    .hotel-grid,
    .membership-container,
    .testimonial-grid{
        grid-template-columns: repeat(2,1fr);
    }

    .stats{
        grid-template-columns: repeat(2,1fr);
    }

    .flight-container,
    .offer-container{
        grid-template-columns: 1fr;
    }

}

@media (max-width: 768px) {

    .hero{
        height: auto;
        padding: 150px 0 100px;
    }

    .hero-content{
        margin: 0 20px;
        width: auto;
        text-align: center;
    }

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

    .hero-content h2{
        font-size: 26px;
    }

    .hero-buttons{
        flex-direction: column;
        align-items: center;
    }

    .search-container{
        flex-direction: column;
    }

    .search-item{
        width: 100%;
    }

    .search-btn{
        width: 100%;
    }

    .stats,
    .package-grid,
    .destination-grid,
    .hotel-grid,
    .membership-container,
    .testimonial-grid{
        grid-template-columns: 1fr;
    }

    .newsletter-box{
        flex-direction: column;
    }

    .newsletter-box input{
        width: 100%;
    }

    .footer-container{
        grid-template-columns: 1fr;
        text-align: center;
    }

    .header-right{
        display: none;
    }

    .logo img{
        width: 160px;
        height: auto;
    }

}

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

.contact-hero{

    position:relative;

    width:100%;

    height:60vh;

    background:url("https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=1600&auto=format&fit=crop&q=80");

    background-position:center;

    background-size:cover;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

}

.contact-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.55);

}

.contact-hero-content{

    position:relative;

    z-index:2;

    color:white;

    max-width:750px;

    padding:20px;

}

.contact-hero-content h1{

    font-size:65px;

    font-family:'Playfair Display',serif;

    margin-bottom:20px;

}

.contact-hero-content p{

    color:#ddd;

    line-height:1.8;

    font-size:17px;

}


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

.contact-info-section{

    padding:90px 0;

}

.contact-info-section .section-heading{

    margin-top:0;

    margin-bottom:50px;

}

.contact-info-section .section-heading p{

    color:#666;

    margin-top:12px;

    line-height:1.8;

}

.contact-info-grid{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:25px;

}

.contact-info-card{

    background:white;

    padding:40px 25px;

    text-align:center;

    border-radius:20px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.4s;

}

.contact-info-card:hover{

    transform:translateY(-10px);

}

.contact-icon{

    width:70px;

    height:70px;

    margin:0 auto 20px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#0B4F63;

    color:white;

    font-size:25px;

    transition:.3s;

}

.contact-info-card:hover .contact-icon{

    background:#19A7CE;

    transform:scale(1.08);

}

.contact-info-card h3{

    font-size:21px;

    margin-bottom:12px;

}

.contact-info-card p{

    color:#777;

    line-height:1.8;

    font-size:14px;

}


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

.contact-section{

    padding:100px 0;

    background:#ffffff;

}

.contact-container{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1.2fr;

    gap:70px;

    align-items:center;

}

.contact-text > span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.contact-text h2{

    font-family:'Playfair Display',serif;

    font-size:48px;

    line-height:1.2;

    margin:18px 0 25px;

}

.contact-text h2 strong{

    color:#0B4F63;

    font-weight:600;

}

.contact-text > p{

    color:#666;

    line-height:1.9;

    margin-bottom:35px;

    max-width:520px;

}

.contact-detail{

    display:flex;

    align-items:center;

    gap:18px;

    margin-bottom:25px;

}

.contact-detail > i{

    width:50px;

    height:50px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#F5F7FA;

    border-radius:50%;

    color:#19A7CE;

    font-size:18px;

}

.contact-detail h4{

    margin-bottom:5px;

    font-size:16px;

}

.contact-detail p{

    color:#777;

}


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

.contact-form-box{

    background:#F5F7FA;

    padding:45px;

    border-radius:25px;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.contact-form-box h3{

    font-size:30px;

    margin-bottom:10px;

    font-family:'Playfair Display',serif;

}

.contact-form-box > p{

    color:#777;

    margin-bottom:30px;

}

.form-row{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:20px;

}

.form-group{

    margin-bottom:22px;

}

.form-group label{

    display:block;

    font-size:14px;

    font-weight:600;

    margin-bottom:8px;

    color:#333;

}

.form-group input,
.form-group select,
.form-group textarea{

    width:100%;

    border:1px solid #ddd;

    outline:none;

    background:white;

    border-radius:10px;

    padding:15px;

    font-family:'Poppins',sans-serif;

    font-size:14px;

    transition:.3s;

}

.form-group input,
.form-group select{

    height:52px;

}

.form-group textarea{

    resize:vertical;

    min-height:150px;

}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{

    border-color:#19A7CE;

    box-shadow:0 0 0 3px rgba(25,167,206,.1);

}

.contact-submit{

    border:none;

    background:#0B4F63;

    color:white;

    padding:16px 30px;

    border-radius:30px;

    cursor:pointer;

    font-size:15px;

    font-weight:600;

    transition:.3s;

    display:inline-flex;

    align-items:center;

    gap:10px;

}

.contact-submit:hover{

    background:#19A7CE;

    transform:translateY(-3px);

}


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

.contact-services{

    padding:100px 0;

    background:#F5F7FA;

}

.contact-services .section-heading{

    margin-top:0;

}

.contact-services-grid{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.contact-service-card{

    background:white;

    padding:40px 30px;

    border-radius:20px;

    text-align:center;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.4s;

}

.contact-service-card:hover{

    transform:translateY(-12px);

}

.contact-service-card i{

    font-size:45px;

    color:#19A7CE;

    margin-bottom:20px;

    transition:.3s;

}

.contact-service-card:hover i{

    color:#A8CF38;

}

.contact-service-card h3{

    font-size:21px;

    margin-bottom:12px;

}

.contact-service-card p{

    color:#777;

    line-height:1.8;

    font-size:14px;

}


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

@media (max-width:1100px){

    .contact-info-grid,
    .contact-services-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .contact-container{

        grid-template-columns:1fr;

        gap:50px;

    }

}

@media (max-width:768px){

    .contact-hero{

        height:55vh;

    }

    .contact-hero-content h1{

        font-size:45px;

    }

    .contact-hero-content p{

        font-size:15px;

    }

    .contact-info-grid,
    .contact-services-grid{

        grid-template-columns:1fr;

    }

    .form-row{

        grid-template-columns:1fr;

        gap:0;

    }

    .contact-form-box{

        padding:30px 20px;

    }

    .contact-text h2{

        font-size:38px;

    }

}

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

.about-hero{

    position:relative;

    width:100%;

    height:70vh;

    background:url("https://images.unsplash.com/photo-1488646953014-85cb44e25828?w=1600&auto=format&fit=crop&q=80");

    background-position:center;

    background-size:cover;

    display:flex;

    align-items:center;

}

.about-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.55);

}

.about-hero-content{

    position:relative;

    z-index:2;

    margin-left:8%;

    max-width:700px;

    color:white;

}

.about-hero-content span{

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.about-hero-content h1{

    font-size:65px;

    line-height:1.1;

    margin:18px 0;

    font-family:'Playfair Display',serif;

}

.about-hero-content p{

    color:#ddd;

    max-width:600px;

    line-height:1.8;

    font-size:17px;

}


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

.about-intro{

    padding:110px 0;

    background:#ffffff;

}

.about-intro-container{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

}

.about-intro-image{

    position:relative;

}

.about-intro-image img{

    width:100%;

    height:520px;

    object-fit:cover;

    border-radius:25px;

    box-shadow:0 15px 40px rgba(0,0,0,.12);

}

.about-intro-content > span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.about-intro-content h2{

    font-size:48px;

    line-height:1.2;

    margin:18px 0 25px;

    font-family:'Playfair Display',serif;

}

.about-intro-content h2 strong{

    color:#0B4F63;

    display:block;

    font-weight:600;

}

.about-intro-content p{

    color:#666;

    line-height:1.9;

    margin-bottom:18px;

}

.about-btn{

    display:inline-flex;

    align-items:center;

    gap:10px;

    margin-top:15px;

    padding:15px 28px;

    border-radius:30px;

    background:#0B4F63;

    color:white;

    text-decoration:none;

    font-weight:600;

    transition:.3s;

}

.about-btn:hover{

    background:#19A7CE;

    transform:translateY(-3px);

}


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

.about-values{

    padding:100px 0;

    background:#F5F7FA;

}

.about-values .section-heading{

    margin-top:0;

}

.about-values .section-heading p{

    color:#666;

    margin-top:10px;

}

.about-values-grid{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.about-value-card{

    background:white;

    padding:40px 30px;

    border-radius:20px;

    text-align:center;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.4s;

}

.about-value-card:hover{

    transform:translateY(-12px);

}

.about-value-icon{

    width:70px;

    height:70px;

    margin:0 auto 20px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#0B4F63;

    color:white;

    font-size:25px;

    transition:.3s;

}

.about-value-card:hover .about-value-icon{

    background:#19A7CE;

    transform:scale(1.08);

}

.about-value-card h3{

    font-size:21px;

    margin-bottom:12px;

}

.about-value-card p{

    color:#777;

    line-height:1.8;

    font-size:14px;

}


/*=========================================
WHY B&B TRAVEL
=========================================*/

.about-why{

    padding:110px 0;

    background:white;

}

.about-why-container{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

}

.about-why-content > span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.about-why-content h2{

    font-family:'Playfair Display',serif;

    font-size:48px;

    line-height:1.2;

    margin:18px 0 25px;

}

.about-why-content h2 strong{

    color:#19A7CE;

    font-weight:600;

}

.about-why-content > p{

    color:#666;

    line-height:1.9;

    margin-bottom:35px;

}

.about-feature{

    display:flex;

    gap:18px;

    margin-bottom:25px;

}

.about-feature > i{

    color:#19A7CE;

    font-size:23px;

    margin-top:4px;

}

.about-feature h3{

    font-size:19px;

    margin-bottom:7px;

}

.about-feature p{

    color:#777;

    line-height:1.7;

    font-size:14px;

}

.about-why-image{

    position:relative;

}

.about-why-image img{

    width:100%;

    height:520px;

    object-fit:cover;

    border-radius:25px;

    box-shadow:0 15px 40px rgba(0,0,0,.12);

}

.about-image-badge{

    position:absolute;

    bottom:30px;

    left:30px;

    background:#A8CF38;

    color:#121212;

    padding:20px 25px;

    border-radius:15px;

    display:flex;

    align-items:center;

    gap:15px;

    box-shadow:0 10px 25px rgba(0,0,0,.15);

}

.about-image-badge strong{

    font-size:35px;

}

.about-image-badge span{

    font-size:13px;

    font-weight:600;

    line-height:1.5;

}


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

.about-stats{

    width:90%;

    margin:0 auto 100px;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.about-stat{

    background:#0B4F63;

    color:white;

    padding:40px 25px;

    border-radius:20px;

    text-align:center;

    transition:.4s;

}

.about-stat:hover{

    transform:translateY(-10px);

    background:#19A7CE;

}

.about-stat i{

    color:#A8CF38;

    font-size:35px;

    margin-bottom:15px;

}

.about-stat h2{

    font-size:38px;

    margin-bottom:8px;

}

.about-stat p{

    color:#ddd;

}


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

.about-services{

    padding:100px 0;

    background:#F5F7FA;

}

.about-services .section-heading{

    margin-top:0;

}

.about-services .section-heading p{

    color:#666;

    margin-top:10px;

}

.about-services-grid{

    width:90%;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.about-service-card{

    background:white;

    padding:45px 35px;

    border-radius:20px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.4s;

}

.about-service-card:hover{

    transform:translateY(-12px);

}

.about-service-card > i{

    font-size:50px;

    color:#19A7CE;

    margin-bottom:25px;

    transition:.3s;

}

.about-service-card:hover > i{

    color:#A8CF38;

}

.about-service-card h3{

    font-size:25px;

    margin-bottom:15px;

}

.about-service-card p{

    color:#777;

    line-height:1.8;

    margin-bottom:25px;

}

.about-service-card a{

    color:#0B4F63;

    text-decoration:none;

    font-weight:600;

    transition:.3s;

}

.about-service-card a i{

    margin-left:7px;

}

.about-service-card a:hover{

    color:#19A7CE;

}


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

.about-cta{

    position:relative;

    min-height:450px;

    background:url("https://images.unsplash.com/photo-1500534623283-312aade485b7?w=1600&auto=format&fit=crop&q=80");

    background-position:center;

    background-size:cover;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

}

.about-cta-overlay{

    position:absolute;

    inset:0;

    background:rgba(11,79,99,.78);

}

.about-cta-content{

    position:relative;

    z-index:2;

    max-width:750px;

    padding:40px 20px;

    color:white;

}

.about-cta-content h2{

    font-family:'Playfair Display',serif;

    font-size:48px;

    line-height:1.2;

    margin-bottom:20px;

}

.about-cta-content p{

    color:#ddd;

    line-height:1.8;

    margin-bottom:30px;

}

.about-cta-buttons{

    display:flex;

    justify-content:center;

    gap:20px;

}


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

@media (max-width:1100px){

    .about-values-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .about-stats{

        grid-template-columns:repeat(2,1fr);

    }

    .about-intro-container,
    .about-why-container{

        grid-template-columns:1fr;

        gap:50px;

    }

    .about-services-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media (max-width:768px){

    .about-hero{

        height:auto;

        min-height:600px;

        padding:150px 0 100px;

    }

    .about-hero-content{

        margin:0 20px;

        text-align:center;

    }

    .about-hero-content h1{

        font-size:45px;

    }

    .about-hero-content p{

        font-size:15px;

    }

    .about-intro-content h2,
    .about-why-content h2{

        font-size:38px;

    }

    .about-intro-image img,
    .about-why-image img{

        height:400px;

    }

    .about-values-grid,
    .about-stats,
    .about-services-grid{

        grid-template-columns:1fr;

    }

    .about-cta-content h2{

        font-size:38px;

    }

    .about-cta-buttons{

        flex-direction:column;

        align-items:center;

    }

}

/*=========================================
POPULAR DESTINATIONS
=========================================*/

.popular-destinations{

    padding:100px 0;

    background:#ffffff;

    overflow:hidden;

}


/*================ HEADING ================*/

.popular-heading{

    width:90%;

    margin:0 auto 45px;

    display:flex;

    align-items:flex-end;

    justify-content:space-between;

}

.popular-heading span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.popular-heading h2{

    margin-top:10px;

    font-family:'Playfair Display',serif;

    font-size:45px;

    color:#A8CF38;

}

.view-all-destinations{

    color:#0B4F63;

    text-decoration:none;

    font-weight:600;

    display:flex;

    align-items:center;

    gap:8px;

    transition:.3s;

}

.view-all-destinations:hover{

    color:#19A7CE;

    transform:translateX(5px);

}


/*=========================================
CAROUSEL WRAPPER
=========================================*/

.destination-carousel-wrapper{

    position:relative;

    width:100%;

}


/*=========================================
CAROUSEL
=========================================*/

.destination-carousel{

    display:flex;

    gap:28px;

    overflow-x:auto;

    scroll-behavior:smooth;

    scroll-snap-type:x mandatory;

    padding:5px 6% 20px;

    cursor:grab;

    scrollbar-width:none;

}

.destination-carousel::-webkit-scrollbar{

    display:none;

}

.destination-carousel:active{

    cursor:grabbing;

}


/*=========================================
DESTINATION CARD
=========================================*/

.popular-destination-card{

    position:relative;

    flex:0 0 360px;

    height:540px;

    overflow:hidden;

    border-radius:25px;

    scroll-snap-align:start;

    text-decoration:none;

    box-shadow:0 10px 30px rgba(0,0,0,.12);

    transition:.4s;

}

.popular-destination-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.6s;

}

.popular-destination-card:hover img{

    transform:scale(1.07);

}


/*=========================================
CARD OVERLAY
=========================================*/

.destination-card-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        to bottom,
        rgba(0,0,0,0) 30%,
        rgba(0,0,0,.15) 45%,
        rgba(0,0,0,.88) 100%
    );

}


/*=========================================
DESTINATION INFORMATION
=========================================*/

.popular-destination-info{

    position:absolute;

    left:32px;

    right:25px;

    bottom:32px;

    color:white;

}

.popular-destination-info h3{

    font-size:32px;

    margin-bottom:12px;

    font-weight:700;

}

.popular-destination-info p{

    font-size:16px;

    margin-bottom:10px;

    color:#eee;

}

.popular-destination-info strong{

    font-size:30px;

    color:white;

}


/*=========================================
CAROUSEL BUTTONS
=========================================*/

.carousel-btn{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:60px;

    height:60px;

    border:none;

    border-radius:50%;

    background:white;

    color:#121212;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:20px;

    cursor:pointer;

    z-index:10;

    box-shadow:0 8px 25px rgba(0,0,0,.18);

    transition:.3s;

}

.carousel-btn:hover{

    background:#0B4F63;

    color:white;

    transform:translateY(-50%) scale(1.08);

}

.carousel-prev{

    left:20px;

}

.carousel-next{

    right:20px;

}


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

@media(max-width:1100px){

    .popular-destination-card{

        flex:0 0 330px;

        height:500px;

    }

}

@media(max-width:768px){

    .popular-destinations{

        padding:70px 0;

    }

    .popular-heading{

        align-items:flex-start;

        flex-direction:column;

        gap:20px;

    }

    .popular-heading h2{

        font-size:38px;

    }

    .popular-destination-card{

        flex:0 0 290px;

        height:450px;

    }

    .popular-destination-info{

        left:25px;

        bottom:25px;

    }

    .popular-destination-info h3{

        font-size:27px;

    }

    .popular-destination-info strong{

        font-size:25px;

    }

    .carousel-btn{

        width:48px;

        height:48px;

        font-size:16px;

    }

    .carousel-prev{

        left:10px;

    }

    .carousel-next{

        right:10px;

    }

}

/*=========================================
TESTIMONIALS
=========================================*/

.testimonials{

    padding:100px 0;

    background:#F5F7FA;

    overflow:hidden;

}


/*=========================================
HEADING
=========================================*/

.testimonial-heading{

    width:90%;

    max-width:1250px;

    margin:0 auto 45px;

}

.testimonial-heading span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.testimonial-heading h2{

    font-family:'Playfair Display',serif;

    font-size:45px;

    color:#A8CF38;

    margin:10px 0;

}

.testimonial-heading p{

    color:#666;

    line-height:1.7;

}


/*=========================================
CAROUSEL WRAPPER
=========================================*/

.testimonial-carousel-wrapper{

    position:relative;

    width:100%;

}


/*=========================================
CAROUSEL
=========================================*/

.testimonial-carousel{

    display:flex;

    gap:30px;

    overflow-x:auto;

    scroll-behavior:smooth;

    scroll-snap-type:x mandatory;

    padding:10px 7% 30px;

    scrollbar-width:none;

    cursor:grab;

}

.testimonial-carousel::-webkit-scrollbar{

    display:none;

}

.testimonial-carousel:active{

    cursor:grabbing;

}


/*=========================================
TESTIMONIAL CARD
=========================================*/

.testimonial-card{

    position:relative;

    flex:0 0 390px;

    min-height:360px;

    padding:35px;

    background:white;

    border-radius:22px;

    scroll-snap-align:start;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    transition:.4s;

}

.testimonial-card:hover{

    transform:translateY(-8px);

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

}


/*=========================================
CUSTOMER
=========================================*/

.testimonial-top{

    display:flex;

    align-items:center;

    gap:15px;

}

.testimonial-top img{

    width:65px;

    height:65px;

    border-radius:50%;

    object-fit:cover;

}

.testimonial-top h3{

    font-size:18px;

    margin-bottom:5px;

}

.testimonial-top span{

    color:#777;

    font-size:13px;

}


/*=========================================
STARS
=========================================*/

.testimonial-stars{

    display:flex;

    gap:4px;

    margin:22px 0 18px;

}

.testimonial-stars i{

    color:#F4B400;

    font-size:15px;

}


/*=========================================
TEXT
=========================================*/

.testimonial-text{

    color:#555;

    font-size:15px;

    line-height:1.9;

    position:relative;

    z-index:2;

}


/*=========================================
QUOTE ICON
=========================================*/

.testimonial-quote{

    position:absolute;

    right:25px;

    bottom:20px;

    font-size:65px;

    color:#0B4F63;

    opacity:.100;

}


/*=========================================
NAVIGATION BUTTONS
=========================================*/

.testimonial-btn{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:58px;

    height:58px;

    border:none;

    border-radius:50%;

    background:white;

    color:#121212;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:18px;

    cursor:pointer;

    z-index:10;

    box-shadow:0 8px 25px rgba(0,0,0,.15);

    transition:.3s;

}

.testimonial-btn:hover{

    background:#0B4F63;

    color:white;

    transform:translateY(-50%) scale(1.08);

}

.testimonial-prev{

    left:20px;

}

.testimonial-next{

    right:20px;

}


/*=========================================
DOTS
=========================================*/

.testimonial-dots{

    display:flex;

    justify-content:center;

    gap:8px;

    margin-top:20px;

}

.testimonial-dot{

    width:9px;

    height:9px;

    border:none;

    border-radius:50%;

    background:#C9D2D6;

    padding:0;

    cursor:pointer;

    transition:.3s;

}

.testimonial-dot.active{

    width:28px;

    border-radius:10px;

    background:#19A7CE;

}


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

@media(max-width:768px){

    .testimonials{

        padding:70px 0;

    }

    .testimonial-heading h2{

        font-size:38px;

    }

    .testimonial-card{

        flex:0 0 290px;

        min-height:380px;

        padding:28px;

    }

    .testimonial-btn{

        width:48px;

        height:48px;

        font-size:15px;

    }

    .testimonial-prev{

        left:8px;

    }

    .testimonial-next{

        right:8px;

    }

}

/*=========================================
FAQ SECTION
=========================================*/

.faq-section{

    padding:110px 0;

    background:#ffffff;

}


/*=========================================
FAQ CONTAINER
=========================================*/

.faq-container{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:380px 1fr;

    gap:90px;

    align-items:start;

}


/*=========================================
FAQ INTRO
=========================================*/

.faq-intro{

    position:sticky;

    top:120px;

}

.faq-intro > span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.faq-intro h2{

    font-family:'Playfair Display',serif;

    font-size:45px;

    line-height:1.2;

    margin:15px 0 20px;

    color:#121212;

}

.faq-intro h2 strong{

    display:block;

    color:#19A7CE;

    font-weight:600;

}

.faq-intro p{

    color:#666;

    line-height:1.8;

    font-size:15px;

    margin-bottom:30px;

}

.faq-contact-btn{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:14px 23px;

    border-radius:30px;

    background:#0B4F63;

    color:white;

    text-decoration:none;

    font-size:14px;

    font-weight:600;

    transition:.3s;

}

.faq-contact-btn:hover{

    background:#19A7CE;

    transform:translateY(-3px);

}


/*=========================================
FAQ LIST
=========================================*/

.faq-list{

    width:100%;

}

.faq-item{

    background:#F5F7FA;

    border-radius:15px;

    margin-bottom:15px;

    overflow:hidden;

    border:1px solid transparent;

    transition:.3s;

}

.faq-item:hover{

    border-color:#DCE7EA;

}


/*=========================================
QUESTION
=========================================*/

.faq-question{

    width:100%;

    border:none;

    background:transparent;

    padding:24px 25px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:20px;

    text-align:left;

    cursor:pointer;

    font-family:'Poppins',sans-serif;

    font-size:16px;

    font-weight:600;

    color:#121212;

}

.faq-question i{

    min-width:32px;

    width:32px;

    height:32px;

    border-radius:50%;

    background:white;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#0B4F63;

    font-size:13px;

    transition:.35s;

}


/*=========================================
ANSWER
=========================================*/

.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:max-height .4s ease;

}

.faq-answer p{

    padding:0 25px 25px;

    color:#666;

    line-height:1.8;

    font-size:14px;

    margin:0;

}


/*=========================================
ACTIVE FAQ
=========================================*/

.faq-item.active{

    background:#0B4F63;

}

.faq-item.active .faq-question{

    color:white;

}

.faq-item.active .faq-question i{

    background:#A8CF38;

    color:#121212;

    transform:rotate(45deg);

}

.faq-item.active .faq-answer p{

    color:#DCE8EB;

}


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

@media(max-width:900px){

    .faq-container{

        grid-template-columns:1fr;

        gap:45px;

    }

    .faq-intro{

        position:static;

        max-width:650px;

    }

}

@media(max-width:600px){

    .faq-section{

        padding:75px 0;

    }

    .faq-intro h2{

        font-size:38px;

    }

    .faq-question{

        padding:20px;

        font-size:14px;

    }

    .faq-question i{

        min-width:28px;

        width:28px;

        height:28px;

    }

    .faq-answer p{

        padding:0 20px 20px;

        font-size:13px;

    }

}

/*=========================================
REGISTER PAGE
=========================================*/

.register-page{

    position:relative;

    min-height:100vh;

    background:url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?w=1600&auto=format&fit=crop&q=80");

    background-size:cover;

    background-position:center;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:50px 6%;

}

.register-overlay{

    position:absolute;

    inset:0;

    background:rgba(11,79,99,.82);

}

.register-container{

    position:relative;

    z-index:2;

    width:100%;

    max-width:1250px;

    display:grid;

    grid-template-columns:1fr 520px;

    gap:70px;

    align-items:center;

}


/* LEFT */

.register-info{

    color:white;

}

.register-info span{

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.register-info h1{

    font-family:'Playfair Display',serif;

    font-size:60px;

    line-height:1.1;

    margin:18px 0;

}

.register-info p{

    color:#E3EEF1;

    line-height:1.9;

    margin-bottom:35px;

    max-width:550px;

}

.register-feature{

    display:flex;

    align-items:center;

    gap:15px;

    margin-bottom:20px;

    font-size:15px;

}

.register-feature i{

    width:36px;

    height:36px;

    border-radius:50%;

    background:#A8CF38;

    color:#121212;

    display:flex;

    align-items:center;

    justify-content:center;

}


/* CARD */

.register-card{

    background:white;

    padding:45px;

    border-radius:25px;

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

}

.register-logo{

    text-align:center;

    margin-bottom:20px;

}

.register-logo img{

    width:150px;

}

.register-card h2{

    text-align:center;

    font-size:34px;

    margin-bottom:10px;

    font-family:'Playfair Display',serif;

}

.register-card > p{

    text-align:center;

    color:#666;

    margin-bottom:30px;

}


/* FORM */

.input-group{

    margin-bottom:20px;

}

.input-group label{

    display:block;

    font-size:14px;

    font-weight:600;

    margin-bottom:8px;

}

.input-group input{

    width:100%;

    height:52px;

    padding:0 16px;

    border:1px solid #DDD;

    border-radius:10px;

    outline:none;

    font-size:14px;

    transition:.3s;

}

.input-group input:focus{

    border-color:#19A7CE;

    box-shadow:0 0 0 3px rgba(25,167,206,.12);

}


/* PASSWORD */

.password-box{

    position:relative;

}

.password-box i{

    position:absolute;

    right:18px;

    top:50%;

    transform:translateY(-50%);

    cursor:pointer;

    color:#888;

}


/* TERMS */

.terms{

    display:flex;

    align-items:center;

    gap:10px;

    margin:10px 0 25px;

    font-size:13px;

    color:#555;

}


/* BUTTON */

.register-btn-main{

    width:100%;

    border:none;

    background:#0B4F63;

    color:white;

    height:54px;

    border-radius:30px;

    font-size:15px;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;

}

.register-btn-main:hover{

    background:#19A7CE;

}


/* DIVIDER */

.divider{

    position:relative;

    text-align:center;

    margin:30px 0;

}

.divider::before{

    content:"";

    position:absolute;

    left:0;

    top:50%;

    width:100%;

    height:1px;

    background:#DDD;

}

.divider span{

    position:relative;

    background:white;

    padding:0 18px;

    color:#777;

}


/* GOOGLE */

.google-register{

    width:100%;

    height:52px;

    border:1px solid #DDD;

    background:white;

    border-radius:30px;

    cursor:pointer;

    font-size:14px;

    font-weight:600;

    transition:.3s;

}

.google-register:hover{

    background:#F5F7FA;

}


/* LOGIN */

.login-link{

    margin-top:25px;

    text-align:center;

    color:#666;

    font-size:14px;

}

.login-link a{

    color:#19A7CE;

    font-weight:600;

    text-decoration:none;

}


/* RESPONSIVE */

@media(max-width:950px){

    .register-container{

        grid-template-columns:1fr;

        gap:40px;

    }

    .register-info{

        text-align:center;

    }

    .register-info p{

        margin:auto auto 30px;

    }

}

@media(max-width:600px){

    .register-card{

        padding:30px 22px;

    }

    .register-info h1{

        font-size:42px;

    }

}

/*=========================================
LOGIN PAGE
=========================================*/

.login-page{

    position:relative;

    min-height:100vh;

    background:url(
        "https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?w=1600&auto=format&fit=crop&q=80"
    );

    background-size:cover;

    background-position:center;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:50px 6%;

}


.login-overlay{

    position:absolute;

    inset:0;

    background:rgba(11,79,99,.82);

}


.login-container{

    position:relative;

    z-index:2;

    width:100%;

    max-width:1200px;

    display:grid;

    grid-template-columns:1fr 480px;

    gap:90px;

    align-items:center;

}


/*=========================================
LEFT CONTENT
=========================================*/

.login-info{

    color:white;

}


.login-info > span{

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}


.login-info h1{

    font-family:'Playfair Display',serif;

    font-size:60px;

    line-height:1.1;

    margin:18px 0;

}


.login-info p{

    max-width:540px;

    color:#E3EEF1;

    line-height:1.9;

    margin-bottom:35px;

}


.login-feature{

    display:flex;

    align-items:center;

    gap:15px;

    margin-bottom:20px;

    font-size:15px;

}


.login-feature i{

    width:38px;

    height:38px;

    border-radius:50%;

    background:#A8CF38;

    color:#121212;

    display:flex;

    align-items:center;

    justify-content:center;

}


/*=========================================
LOGIN CARD
=========================================*/

.login-card{

    background:white;

    padding:45px;

    border-radius:25px;

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

}


.login-logo{

    text-align:center;

    margin-bottom:20px;

}


.login-logo img{

    width:150px;

}


.login-card h2{

    text-align:center;

    font-family:'Playfair Display',serif;

    font-size:35px;

    color:#121212;

    margin-bottom:8px;

}


.login-card > p{

    text-align:center;

    color:#666;

    font-size:14px;

    margin-bottom:32px;

}


/*=========================================
INPUTS
=========================================*/

.login-input-group{

    margin-bottom:22px;

}


.login-input-group label{

    display:block;

    font-size:13px;

    font-weight:600;

    color:#222;

    margin-bottom:8px;

}


.login-input-box{

    position:relative;

}


.login-input-box > i:first-child{

    position:absolute;

    left:17px;

    top:50%;

    transform:translateY(-50%);

    color:#888;

    font-size:14px;

}


.login-input-box input{

    width:100%;

    height:52px;

    border:1px solid #DDD;

    border-radius:10px;

    padding:0 45px;

    outline:none;

    font-family:'Poppins',sans-serif;

    font-size:14px;

    transition:.3s;

}


.login-input-box input:focus{

    border-color:#19A7CE;

    box-shadow:
        0 0 0 3px rgba(25,167,206,.12);

}


/*=========================================
PASSWORD LABEL
=========================================*/

.login-password-label{

    display:flex;

    justify-content:space-between;

    align-items:center;

}


.login-password-label label{

    margin-bottom:8px;

}


.login-password-label a{

    font-size:12px;

    color:#19A7CE;

    text-decoration:none;

    font-weight:600;

}


.login-password-label a:hover{

    text-decoration:underline;

}


/*=========================================
PASSWORD TOGGLE
=========================================*/

.login-input-box
.login-password-toggle{

    position:absolute;

    right:17px;

    left:auto;

    top:50%;

    transform:translateY(-50%);

    color:#888;

    cursor:pointer;

}


.login-input-box
.login-password-toggle:hover{

    color:#0B4F63;

}


/*=========================================
REMEMBER ME
=========================================*/

.login-options{

    display:flex;

    align-items:center;

    margin:5px 0 25px;

}


.login-options label{

    display:flex;

    align-items:center;

    gap:8px;

    color:#666;

    font-size:13px;

    cursor:pointer;

}


.login-options input{

    accent-color:#0B4F63;

}


/*=========================================
LOGIN BUTTON
=========================================*/

.login-btn-main{

    width:100%;

    height:54px;

    border:none;

    border-radius:30px;

    background:#0B4F63;

    color:white;

    font-family:'Poppins',sans-serif;

    font-size:15px;

    font-weight:600;

    cursor:pointer;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    transition:.3s;

}


.login-btn-main:hover{

    background:#19A7CE;

    transform:translateY(-2px);

}


/*=========================================
DIVIDER
=========================================*/

.login-divider{

    position:relative;

    text-align:center;

    margin:30px 0;

}


.login-divider::before{

    content:"";

    position:absolute;

    left:0;

    top:50%;

    width:100%;

    height:1px;

    background:#DDD;

}


.login-divider span{

    position:relative;

    background:white;

    padding:0 18px;

    color:#777;

    font-size:13px;

}


/*=========================================
GOOGLE BUTTON
=========================================*/

.google-login{

    width:100%;

    height:52px;

    border:1px solid #DDD;

    background:white;

    border-radius:30px;

    cursor:pointer;

    font-family:'Poppins',sans-serif;

    font-size:14px;

    font-weight:600;

    color:#333;

    transition:.3s;

}


.google-login i{

    margin-right:10px;

}


.google-login:hover{

    background:#F5F7FA;

    border-color:#CCC;

}


/*=========================================
REGISTER LINK
=========================================*/

.register-account{

    text-align:center;

    margin-top:25px;

    color:#666;

    font-size:13px;

}


.register-account a{

    color:#19A7CE;

    text-decoration:none;

    font-weight:600;

    margin-left:5px;

}


.register-account a:hover{

    text-decoration:underline;

}


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

@media(max-width:950px){

    .login-container{

        grid-template-columns:1fr;

        gap:40px;

        max-width:550px;

    }


    .login-info{

        text-align:center;

    }


    .login-info p{

        margin-left:auto;

        margin-right:auto;

    }


    .login-feature{

        justify-content:center;

    }

}


@media(max-width:600px){

    .login-page{

        padding:35px 20px;

    }


    .login-card{

        padding:30px 22px;

        border-radius:20px;

    }


    .login-info h1{

        font-size:42px;

    }


    .login-info > span{

        font-size:11px;

    }


    .login-feature{

        font-size:13px;

    }

}


/*=========================================
B&B TRAVEL
MEMBERSHIP PAGE
=========================================*/


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

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
}

a{
    text-decoration:none;
}


/*=========================================
COLORS

Black        #121212
Dark Teal    #0B4F63
Ocean Blue   #19A7CE
Lime         #A8CF38
White        #FFFFFF
=========================================*/


/*=========================================
HEADER
=========================================*/

header{

    background:#ffffff;

    position:fixed;

    top:0;
    left:0;

    width:100%;

    height:100px;

    padding:12px 5%;

    display:flex;

    align-items:center;

    gap:30px;

    z-index:1000;

    transition:.4s;
}


/* LOGO */

.logo{

    display:flex;

    align-items:center;

    flex-shrink:0;
}


/* NAV */

nav{

    flex:1;

    display:flex;

    justify-content:center;
}

nav ul li a{

    color:#121212;

    font-size:14px;

    font-weight:500;

    transition:.3s;
}

nav ul li::after{

    content:"";

    position:absolute;

    bottom:-7px;

    left:0;

    width:0;

    height:2px;

    background:#19A7CE;

    transition:.3s;
}


/* HEADER RIGHT */

.header-right{

    display:flex;

    align-items:center;

    justify-content:flex-end;

    gap:16px;

    flex-shrink:0;
}

.login-btn{

    color:#121212;

    font-size:14px;

    font-weight:500;

    transition:.3s;

}
.register-btn{

    color:#ffffff;

    font-size:14px;

    font-weight:500;

    transition:.3s;
}


/* BOOK */

.book-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    background:#0B4F63;

    color:white;

    padding:14px 25px;

    min-width:125px;

    border-radius:30px;

    font-weight:600;

    transition:.3s;
}

.book-btn:hover{

    background:#A8CF38;

    color:#121212;

    transform:translateY(-3px);
}


/*=========================================
MOBILE MENU BUTTON
=========================================*/

.mobile-menu-btn{

    display:none;

    border:none;

    background:#0B4F63;

    color:white;

    width:45px;

    height:45px;

    border-radius:50%;

    font-size:18px;

    cursor:pointer;
}


/*=========================================
MOBILE MENU
=========================================*/

.mobile-menu{

    position:fixed;

    top:0;

    right:-100%;

    width:300px;

    height:100vh;

    background:white;

    z-index:2000;

    padding:90px 30px 30px;

    box-shadow:-10px 0 35px rgba(0,0,0,.15);

    display:flex;

    flex-direction:column;

    gap:20px;

    transition:.4s;
}

.mobile-menu.active{

    right:0;
}

.mobile-menu > a{

    color:#121212;

    font-size:16px;

    font-weight:500;

    padding-bottom:12px;

    border-bottom:1px solid #eee;
}

.mobile-menu > a:hover{

    color:#19A7CE;
}

.mobile-close{

    position:absolute;

    top:25px;

    right:25px;

    border:none;

    background:#F5F7FA;

    width:42px;

    height:42px;

    border-radius:50%;

    cursor:pointer;

    font-size:18px;

    color:#121212;
}

.mobile-menu-buttons{

    display:flex;

    flex-direction:column;

    gap:12px;

    margin-top:15px;
}

.mobile-login,
.mobile-register,
.mobile-book{

    text-align:center;

    padding:13px;

    border-radius:30px;

    font-weight:600;
}

.mobile-login{

    border:1px solid #0B4F63;

    color:#0B4F63;
}

.mobile-register{

    background:#19A7CE;

    color:white;
}

.mobile-book{

    background:#0B4F63;

    color:white;
}


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

.membership-hero{

    position:relative;

    width:100%;

    min-height:75vh;

    background:url(
        "https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=1600&auto=format&fit=crop&q=80"
    );

    background-size:cover;

    background-position:center;

    display:flex;

    align-items:center;
}

.membership-hero-overlay{

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            90deg,
            rgba(11,79,99,.88),
            rgba(0,0,0,.55)
        );
}

.membership-hero-content{

    position:relative;

    z-index:2;

    width:90%;

    max-width:1250px;

    margin:auto;

    color:white;
}

.membership-hero-content > span{

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;
}

.membership-hero-content h1{

    font-family:'Playfair Display',serif;

    font-size:72px;

    line-height:1.1;

    margin:20px 0;

    max-width:750px;
}

.membership-hero-content h1 strong{

    color:#A8CF38;

    display:block;

    font-weight:600;
}

.membership-hero-content p{

    color:#E3EEF1;

    max-width:650px;

    line-height:1.9;

    font-size:17px;

    margin-bottom:35px;
}

.membership-hero-buttons{

    display:flex;

    gap:18px;
}


/*=========================================
BUTTONS
=========================================*/

.primary-btn{

    display:inline-flex;

    align-items:center;

    gap:10px;

    background:#0B4F63;

    color:white;

    padding:16px 30px;

    border-radius:35px;

    font-weight:600;

    transition:.3s;
}

.primary-btn:hover{

    background:#A8CF38;

    color:#121212;

    transform:translateY(-3px);
}

.secondary-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    border:2px solid white;

    color:white;

    padding:15px 30px;

    border-radius:35px;

    font-weight:600;

    transition:.3s;
}


/*=========================================
INTRO
=========================================*/

.membership-intro{

    padding:110px 0;

    background:white;
}

.membership-intro-container{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:1.1fr .9fr;

    gap:90px;

    align-items:center;
}

.membership-intro-content > span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;
}

.membership-intro-content h2{

    font-family:'Playfair Display',serif;

    font-size:48px;

    line-height:1.2;

    margin:18px 0 25px;
}

.membership-intro-content h2 strong{

    color:#0B4F63;

    display:block;

    font-weight:600;
}

.membership-intro-content p{

    color:#666;

    line-height:1.9;

    margin-bottom:18px;

    max-width:600px;
}

.membership-btn{

    display:inline-flex;

    align-items:center;

    gap:10px;

    margin-top:15px;

    background:#0B4F63;

    color:white;

    padding:15px 28px;

    border-radius:30px;

    font-weight:600;

    transition:.3s;
}

.membership-btn:hover{

    background:#19A7CE;

    transform:translateY(-3px);
}


/* INTRO CARD */

.membership-intro-card{

    background:#0B4F63;

    color:white;

    border-radius:25px;

    padding:50px;

    box-shadow:0 20px 45px rgba(11,79,99,.2);

    position:relative;

    overflow:hidden;
}

.membership-intro-card::after{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    border-radius:50%;

    background:#19A7CE;

    opacity:.2;

    right:-70px;

    top:-70px;
}

.intro-card-icon{

    width:70px;

    height:70px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#A8CF38;

    color:#121212;

    border-radius:50%;

    font-size:28px;

    margin-bottom:25px;
}

.membership-intro-card h3{

    font-size:30px;

    margin-bottom:15px;
}

.membership-intro-card > p{

    color:#DCE8EB;

    line-height:1.8;
}

.intro-card-line{

    width:100%;

    height:1px;

    background:rgba(255,255,255,.2);

    margin:35px 0;
}

.intro-card-stats{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:20px;
}

.intro-card-stats strong{

    display:block;

    font-size:30px;

    color:#A8CF38;
}

.intro-card-stats span{

    font-size:13px;

    color:#DCE8EB;
}


/*=========================================
SECTION HEADING
=========================================*/

.membership-section-heading{

    width:90%;

    max-width:1250px;

    margin:0 auto 50px;
}

.membership-section-heading > span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;
}

.membership-section-heading h2{

    font-family:'Playfair Display',serif;

    font-size:45px;

    line-height:1.2;

    margin:12px 0;
}

.membership-section-heading h2 strong{

    color:#A8CF38;

    font-weight:600;
}

.membership-section-heading p{

    color:#666;

    line-height:1.8;
}

.centered{

    text-align:center;
}

.centered p{

    max-width:650px;

    margin:auto;
}


/*=========================================
BENEFITS
=========================================*/

.membership-benefits{

    padding:110px 0;

    background:#F5F7FA;
}

.benefits-grid{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;
}

.benefit-card{

    background:white;

    padding:40px 30px;

    border-radius:20px;

    box-shadow:0 10px 25px rgba(0,0,0,.07);

    transition:.4s;
}

.benefit-card:hover{

    transform:translateY(-10px);

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

.benefit-icon{

    width:65px;

    height:65px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#0B4F63;

    color:white;

    font-size:24px;

    margin-bottom:22px;

    transition:.3s;
}

.benefit-card:hover .benefit-icon{

    background:#19A7CE;

    transform:scale(1.08);
}

.benefit-card h3{

    font-size:23px;

    margin-bottom:12px;
}

.benefit-card p{

    color:#777;

    line-height:1.8;

    font-size:14px;
}


/*=========================================
PLANS
=========================================*/

.membership-plans{

    padding:110px 0;

    background:white;
}

.plans-container{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

    align-items:stretch;
}

.plan-card{

    position:relative;

    background:#F5F7FA;

    border-radius:25px;

    padding:45px 35px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.4s;

    border:2px solid transparent;
}

.plan-card:hover{

    transform:translateY(-10px);

    box-shadow:0 20px 40px rgba(0,0,0,.12);
}

.plan-top{

    text-align:center;
}

.plan-label{

    color:#19A7CE;

    font-size:12px;

    font-weight:700;

    letter-spacing:2px;
}

.plan-top h3{

    font-family:'Playfair Display',serif;

    font-size:34px;

    margin:12px 0;
}

.plan-top p{

    color:#777;

    line-height:1.7;

    font-size:14px;
}

.plan-price{

    display:flex;

    align-items:flex-end;

    justify-content:center;

    margin:30px 0;

    color:#0B4F63;
}

.plan-price .currency{

    font-size:22px;

    font-weight:600;

    margin-bottom:8px;
}

.plan-price strong{

    font-size:58px;

    line-height:1;
}

.plan-price .period{

    color:#777;

    font-size:13px;

    margin:0 0 7px 5px;
}

.plan-card ul{

    list-style:none;

    margin:30px 0;
}

.plan-card ul li{

    display:flex;

    align-items:flex-start;

    gap:12px;

    padding:11px 0;

    color:#555;

    font-size:14px;

    border-bottom:1px solid #E5E9EA;
}

.plan-card ul li i{

    color:#19A7CE;

    margin-top:3px;
}

.plan-card ul li.disabled{

    color:#aaa;
}

.plan-card ul li.disabled i{

    color:#bbb;
}

.plan-btn{

    display:flex;

    justify-content:center;

    align-items:center;

    width:100%;

    background:#0B4F63;

    color:white;

    padding:15px;

    border-radius:30px;

    font-weight:600;

    transition:.3s;
}

.plan-btn:hover{

    background:#19A7CE;

    transform:translateY(-2px);
}


/* FEATURED */

.featured-plan{

    background:#0B4F63;

    color:white;

    transform:scale(1.04);

    border-color:#19A7CE;

}

.featured-plan:hover{

    transform:scale(1.04) translateY(-10px);
}

.featured-plan .plan-label{

    color:#A8CF38;
}

.featured-plan .plan-top p{

    color:#DCE8EB;
}

.featured-plan .plan-price{

    color:white;
}

.featured-plan .plan-price .period{

    color:#C9DDE2;
}

.featured-plan ul li{

    color:#E3EEF1;

    border-color:rgba(255,255,255,.12);
}

.featured-plan ul li i{

    color:#A8CF38;
}

.featured-plan .plan-btn{

    background:#A8CF38;

    color:#121212;
}

.featured-plan .plan-btn:hover{

    background:white;
}

.popular-badge{

    position:absolute;

    top:-15px;

    left:50%;

    transform:translateX(-50%);

    background:#19A7CE;

    color:white;

    padding:8px 20px;

    border-radius:20px;

    font-size:11px;

    font-weight:700;

    letter-spacing:1px;

    white-space:nowrap;
}


/*=========================================
EXPERIENCE
=========================================*/

.member-experience{

    position:relative;

    min-height:550px;

    background:url(
        "https://images.unsplash.com/photo-1500534623283-312aade485b7?w=1600&auto=format&fit=crop&q=80"
    );

    background-size:cover;

    background-position:center;

    display:flex;

    align-items:center;
}

.member-experience-overlay{

    position:absolute;

    inset:0;

    background:rgba(11,79,99,.88);
}

.member-experience-container{

    position:relative;

    z-index:2;

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:100px;

    align-items:center;

    color:white;
}

.member-experience-content > span{

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;
}

.member-experience-content h2{

    font-family:'Playfair Display',serif;

    font-size:50px;

    line-height:1.2;

    margin:18px 0;
}

.member-experience-content h2 strong{

    display:block;

    color:#A8CF38;

    font-weight:600;
}

.member-experience-content p{

    color:#DCE8EB;

    line-height:1.9;

    max-width:550px;

    margin-bottom:30px;
}

.experience-btn{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:15px 28px;

    background:#A8CF38;

    color:#121212;

    border-radius:30px;

    font-weight:700;

    transition:.3s;
}

.experience-btn:hover{

    background:white;

    transform:translateY(-3px);
}

.experience-points{

    display:flex;

    flex-direction:column;

    gap:25px;
}

.experience-point{

    display:flex;

    gap:18px;

    align-items:flex-start;

    padding:25px;

    border-radius:18px;

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.12);
}

.experience-point > i{

    color:#A8CF38;

    font-size:23px;

    margin-top:3px;
}

.experience-point h3{

    margin-bottom:7px;

    font-size:19px;
}

.experience-point p{

    color:#CFE0E4;

    font-size:14px;
}


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

.membership-faq{

    padding:110px 0;

    background:#F5F7FA;
}

.membership-faq-container{

    width:90%;

    max-width:900px;

    margin:auto;
}

.membership-faq-item{

    background:white;

    border-radius:15px;

    margin-bottom:15px;

    overflow:hidden;

    box-shadow:0 6px 20px rgba(0,0,0,.05);

    transition:.3s;
}

.membership-faq-question{

    width:100%;

    border:none;

    background:transparent;

    padding:23px 25px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    text-align:left;

    font-family:'Poppins',sans-serif;

    font-size:15px;

    font-weight:600;

    color:#121212;

    cursor:pointer;
}

.membership-faq-question i{

    width:32px;

    height:32px;

    min-width:32px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#F5F7FA;

    border-radius:50%;

    color:#0B4F63;

    transition:.3s;
}

.membership-faq-answer{

    max-height:0;

    overflow:hidden;

    transition:max-height .4s ease;
}

.membership-faq-answer p{

    padding:0 25px 25px;

    color:#666;

    line-height:1.8;

    font-size:14px;
}

.membership-faq-item.active{

    background:#0B4F63;
}

.membership-faq-item.active
.membership-faq-question{

    color:white;
}

.membership-faq-item.active
.membership-faq-question i{

    background:#A8CF38;

    color:#121212;

    transform:rotate(45deg);
}


/*=========================================
CTA
=========================================*/

.membership-cta{

    position:relative;

    min-height:500px;

    background:url(
        "https://images.unsplash.com/photo-1527631746610-bca00a040d60?w=1600&auto=format&fit=crop&q=80"
    );

    background-size:cover;

    background-position:center;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;
}

.membership-cta-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.62);
}

.membership-cta-content{

    position:relative;

    z-index:2;

    max-width:750px;

    padding:40px 20px;

    color:white;
}

.membership-cta-content > span{

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;
}

.membership-cta-content h2{

    font-family:'Playfair Display',serif;

    font-size:55px;

    line-height:1.2;

    margin:18px 0;
}

.membership-cta-content h2 strong{

    color:#A8CF38;

    display:block;

    font-weight:600;
}

.membership-cta-content p{

    color:#ddd;

    line-height:1.8;

    margin-bottom:30px;
}

.membership-cta-buttons{

    display:flex;

    justify-content:center;

    gap:18px;
}

.footer-column a{

    display:block;

    color:#bbb;

    margin-bottom:12px;

    transition:.3s;
}


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

.membership-hero-content{

    animation:fadeUp 1s ease;
}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(35px);

    }
}


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

@media(max-width:1100px){

    nav{

        display:none;
    }

    .mobile-menu-btn{

        display:flex;

        align-items:center;

        justify-content:center;

        margin-left:auto;
    }

    .header-right{

        display:none;
    }

    .benefits-grid{

        grid-template-columns:repeat(2,1fr);
    }

    .plans-container{

        grid-template-columns:1fr;

        max-width:600px;
    }

    .featured-plan{

        transform:none;
    }

    .featured-plan:hover{

        transform:translateY(-10px);
    }

    .member-experience-container{

        grid-template-columns:1fr;

        gap:50px;
    }

    .footer-container{

        grid-template-columns:2fr 1fr 1fr;
    }

}


@media(max-width:768px){

    header{

        height:80px;

        padding:10px 20px;
    }

    .logo img{

        width:120px;
    }

    .membership-hero{

        min-height:680px;

        padding:130px 0 90px;
    }

    .membership-hero-content{

        text-align:center;
    }

    .membership-hero-content h1{

        font-size:45px;
    }

    .membership-hero-content p{

        font-size:15px;
    }

    .membership-hero-buttons{

        flex-direction:column;

        align-items:center;
    }

    .primary-btn,
    .secondary-btn{

        width:100%;

        max-width:280px;

        justify-content:center;
    }

    .membership-intro{

        padding:75px 0;
    }

    .membership-intro-container{

        grid-template-columns:1fr;

        gap:45px;
    }

    .membership-intro-content h2{

        font-size:38px;
    }

    .membership-intro-card{

        padding:35px 25px;
    }

    .membership-benefits,
    .membership-plans,
    .membership-faq{

        padding:75px 0;
    }

    .membership-section-heading h2{

        font-size:38px;
    }

    .benefits-grid{

        grid-template-columns:1fr;
    }

    .plan-card{

        padding:40px 25px;
    }

    .member-experience{

        padding:80px 0;

        min-height:auto;
    }

    .member-experience-content{

        text-align:center;
    }

    .member-experience-content h2{

        font-size:38px;
    }

    .experience-points{

        gap:15px;
    }

    .experience-point{

        padding:20px;
    }

    .membership-cta{

        min-height:550px;
    }

    .membership-cta-content h2{

        font-size:40px;
    }

    .membership-cta-buttons{

        flex-direction:column;

        align-items:center;
    }

    .footer-container{

        grid-template-columns:1fr;

        text-align:center;
    }

    .footer-logo{

        margin-left:auto;

        margin-right:auto;
    }

}


@media(max-width:480px){

    .membership-hero-content h1{

        font-size:40px;
    }

    .membership-hero-content > span{

        font-size:11px;

        letter-spacing:2px;
    }

    .membership-intro-content h2{

        font-size:34px;
    }

    .membership-section-heading h2{

        font-size:34px;
    }

    .plan-price strong{

        font-size:50px;
    }

    .membership-cta-content h2{

        font-size:35px;
    }

    .mobile-menu{

        width:100%;
    }

}


/*=========================================
OFFERS PAGE
=========================================*/


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

.offers-hero{

    position:relative;

    width:100%;

    min-height:70vh;

    background:url(
        "https://images.unsplash.com/photo-1488646953014-85cb44e25828?w=1600&auto=format&fit=crop&q=80"
    );

    background-position:center;

    background-size:cover;

    display:flex;

    align-items:center;

}

.offers-hero-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        90deg,
        rgba(11,79,99,.88),
        rgba(0,0,0,.45)
    );

}

.offers-hero-content{

    position:relative;

    z-index:2;

    width:90%;

    max-width:1250px;

    margin:auto;

    color:white;

    padding-top:70px;

    animation:fadeUp 1.1s ease;

}

.offers-hero-content > span{

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;

}

.offers-hero-content h1{

    font-family:'Playfair Display',serif;

    font-size:68px;

    line-height:1.08;

    margin:18px 0 22px;

}

.offers-hero-content p{

    max-width:620px;

    color:#E5EEF0;

    line-height:1.9;

    font-size:17px;

    margin-bottom:35px;

}

.offers-hero-buttons{

    display:flex;

    gap:18px;

}

.offers-hero-buttons .primary-btn{

    display:inline-flex;

    align-items:center;

    gap:10px;

}

.offers-hero-buttons .primary-btn i{

    transition:.3s;

}

.offers-hero-buttons .primary-btn:hover i{

    transform:translateY(4px);

}


/*=========================================
OFFERS INTRO
=========================================*/

.offers-intro{

    padding:100px 0 45px;

    background:#ffffff;

}

.offers-intro-heading{

    width:90%;

    max-width:1250px;

    margin:auto;

}

.offers-intro-heading > div{

    max-width:750px;

}

.offers-intro-heading span{

    color:#19A7CE;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.offers-intro-heading h2{

    font-family:'Playfair Display',serif;

    font-size:48px;

    margin:12px 0 18px;

    color:#121212;

}

.offers-intro-heading h2 strong{

    color:#A8CF38;

    font-weight:600;

}

.offers-intro-heading p{

    color:#666;

    line-height:1.9;

    font-size:15px;

}


/*=========================================
FILTER
=========================================*/

.offers-filter-section{

    background:#ffffff;

    padding:10px 0 45px;

}

.offers-filter{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:flex;

    align-items:center;

    gap:12px;

    flex-wrap:wrap;

}

.offer-filter-btn{

    border:1px solid #DCE5E8;

    background:#F5F7FA;

    color:#555;

    padding:12px 23px;

    border-radius:30px;

    font-family:'Poppins',sans-serif;

    font-size:14px;

    font-weight:500;

    cursor:pointer;

    transition:.3s;

}

.offer-filter-btn:hover{

    border-color:#19A7CE;

    color:#0B4F63;

    transform:translateY(-2px);

}

.offer-filter-btn.active{

    background:#0B4F63;

    border-color:#0B4F63;

    color:white;

}


/*=========================================
OFFERS LIST
=========================================*/

.offers-list{

    padding:20px 0 110px;

    background:#F5F7FA;

}

.offers-grid{

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}


/*=========================================
OFFER CARD
=========================================*/

.offer-page-card{

    background:white;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    transition:.4s;

}

.offer-page-card:hover{

    transform:translateY(-10px);

    box-shadow:0 18px 40px rgba(0,0,0,.13);

}


/*=========================================
IMAGE
=========================================*/

.offer-page-image{

    position:relative;

    width:100%;

    height:260px;

    overflow:hidden;

}

.offer-page-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.6s;

}

.offer-page-card:hover .offer-page-image img{

    transform:scale(1.08);

}


/*=========================================
BADGE
=========================================*/

.offer-page-badge{

    position:absolute;

    top:18px;

    left:18px;

    background:#A8CF38;

    color:#121212;

    padding:8px 14px;

    border-radius:20px;

    font-size:13px;

    font-weight:700;

    box-shadow:0 5px 15px rgba(0,0,0,.12);

}


/*=========================================
HEART
=========================================*/

.offer-heart{

    position:absolute;

    top:17px;

    right:17px;

    width:42px;

    height:42px;

    border:none;

    border-radius:50%;

    background:white;

    color:#0B4F63;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:16px;

    cursor:pointer;

    box-shadow:0 6px 18px rgba(0,0,0,.15);

    transition:.3s;

}

.offer-heart:hover{

    background:#19A7CE;

    color:white;

    transform:scale(1.08);

}


/*=========================================
CONTENT
=========================================*/

.offer-page-content{

    padding:27px;

}

.offer-location{

    display:flex;

    align-items:center;

    gap:7px;

    color:#19A7CE;

    font-size:13px;

    font-weight:600;

    margin-bottom:10px;

}

.offer-location i{

    font-size:13px;

}

.offer-page-content h3{

    color:#121212;

    font-size:24px;

    margin-bottom:10px;

    line-height:1.3;

}

.offer-page-content > p{

    color:#777;

    font-size:14px;

    line-height:1.8;

    min-height:50px;

}


/*=========================================
RATING
=========================================*/

.offer-rating{

    display:flex;

    align-items:center;

    gap:10px;

    margin:20px 0;

    padding-bottom:18px;

    border-bottom:1px solid #EEEEEE;

}

.offer-rating span{

    display:flex;

    align-items:center;

    gap:5px;

    color:#121212;

    font-size:14px;

    font-weight:700;

}

.offer-rating span i{

    color:#F4B400;

    font-size:13px;

}

.offer-rating small{

    color:#888;

    font-size:12px;

}


/*=========================================
BOTTOM
=========================================*/

.offer-page-bottom{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:15px;

}

.offer-page-bottom > div{

    display:flex;

    flex-direction:column;

}

.offer-page-bottom small{

    color:#888;

    font-size:11px;

    margin-bottom:2px;

}

.offer-page-bottom strong{

    color:#0B4F63;

    font-size:27px;

    line-height:1.1;

}

.offer-page-bottom span{

    color:#888;

    font-size:11px;

    margin-top:2px;

}

.offer-page-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    background:#0B4F63;

    color:white;

    text-decoration:none;

    padding:12px 20px;

    border-radius:30px;

    font-size:13px;

    font-weight:600;

    white-space:nowrap;

    transition:.3s;

}

.offer-page-btn:hover{

    background:#19A7CE;

    transform:translateY(-3px);

}


/*=========================================
MEMBER OFFER
=========================================*/

.offer-member-section{

    position:relative;

    min-height:450px;

    background:url(
        "https://images.unsplash.com/photo-1500534623283-312aade485b7?w=1600&auto=format&fit=crop&q=80"
    );

    background-position:center;

    background-size:cover;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

}

.offer-member-overlay{

    position:absolute;

    inset:0;

    background:rgba(11,79,99,.86);

}

.offer-member-content{

    position:relative;

    z-index:2;

    width:90%;

    max-width:750px;

    padding:60px 20px;

    color:white;

}

.offer-member-content > span{

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

}

.offer-member-content h2{

    font-family:'Playfair Display',serif;

    font-size:50px;

    line-height:1.2;

    margin:15px 0 20px;

}

.offer-member-content h2 strong{

    color:#A8CF38;

    font-weight:600;

}

.offer-member-content p{

    color:#DCE8EB;

    line-height:1.9;

    max-width:650px;

    margin:0 auto 30px;

}

.offer-member-btn{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:16px 28px;

    background:#A8CF38;

    color:#121212;

    text-decoration:none;

    border-radius:30px;

    font-weight:700;

    transition:.3s;

}

.offer-member-btn:hover{

    background:white;

    transform:translateY(-3px);

}

.offer-member-btn i{

    transition:.3s;

}

.offer-member-btn:hover i{

    transform:translateX(5px);

}


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

@media(max-width:1100px){

    .offers-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .offers-hero-content h1{

        font-size:58px;

    }

}


@media(max-width:768px){

    .offers-hero{

        min-height:650px;

    }

    .offers-hero-content{

        text-align:center;

        padding-top:80px;

    }

    .offers-hero-content h1{

        font-size:45px;

    }

    .offers-hero-content p{

        font-size:15px;

        margin-left:auto;

        margin-right:auto;

    }

    .offers-hero-buttons{

        flex-direction:column;

        align-items:center;

    }

    .offers-hero-buttons a{

        width:100%;

        max-width:300px;

        text-align:center;

    }

    .offers-intro{

        padding:75px 0 35px;

    }

    .offers-intro-heading h2{

        font-size:38px;

    }

    .offers-filter{

        justify-content:center;

    }

    .offer-filter-btn{

        padding:10px 17px;

        font-size:13px;

    }

    .offers-grid{

        grid-template-columns:1fr;

        width:92%;

    }

    .offer-page-image{

        height:240px;

    }

    .offer-member-content h2{

        font-size:38px;

    }

}


@media(max-width:480px){

    .offers-hero-content h1{

        font-size:39px;

    }

    .offers-hero-content > span{

        font-size:11px;

        letter-spacing:2px;

    }

    .offers-filter{

        gap:8px;

    }

    .offer-filter-btn{

        padding:9px 14px;

    }

    .offer-page-content{

        padding:22px;

    }

    .offer-page-content h3{

        font-size:21px;

    }

    .offer-page-bottom{

        align-items:flex-end;

    }

    .offer-page-btn{

        padding:11px 16px;

        font-size:12px;

    }

}


/* =========================================
   USER MENU
========================================= */

#userMenu {
    position: relative;
    display: none;
}

.user-menu-button {
    border: none;
    background: transparent;
    color: white;
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;

    display: flex;
    align-items: center;
    gap: 8px;

    padding: 10px 5px;
}

.user-menu-button .fa-user {
    font-size: 15px;
}

.user-menu-button .fa-chevron-down {
    font-size: 10px;
    transition: transform 0.3s ease;
}

.user-menu.active .fa-chevron-down {
    transform: rotate(180deg);
}


/* DROPDOWN */

.user-dropdown {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;

    width: 220px;

    background: white;
    border-radius: 10px;

    padding: 8px 0;

    box-shadow: 0 10px 30px rgba(0,0,0,0.15);

    display: none;

    z-index: 9999;
}

.user-menu.active .user-dropdown {
    display: block;
}


/* DROPDOWN LINKS */

.user-dropdown a,
.user-dropdown button {
    width: 100%;

    box-sizing: border-box;

    display: flex;
    align-items: center;

    gap: 12px;

    padding: 12px 18px;

    border: none;
    background: none;

    color: #222;

    text-decoration: none;

    font-family: 'Poppins', sans-serif;
    font-size: 13px;

    cursor: pointer;

    text-align: left;
}

.user-dropdown a:hover,
.user-dropdown button:hover {
    background: #f5f5f5;
}

.user-dropdown i {
    width: 18px;
}


/* LOGOUT */

.user-dropdown button {
    border-top: 1px solid #eee;
    margin-top: 5px;
    color: #c0392b;
}

/*====================================================
            REGISTRATION VALIDATION
====================================================*/

.field-error {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    font-weight: 500;
    color: #dc2626;
    line-height: 1.5;
}


/* INVALID INPUT */

.input-error {
    border: 1px solid #dc2626 !important;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.08);
}


/* VALID INPUT */

.input-valid {
    border: 1px solid #16a34a !important;
}


/*====================================================
            PASSWORD REQUIREMENTS
====================================================*/

.password-requirements {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #f8fafc;
}


.password-requirements p {
    margin: 4px 0;
    font-size: 12px;
    font-weight: 500;
    color: #dc2626;
    transition: 0.2s ease;
}


.password-requirements p i {
    margin-right: 6px;
    font-size: 11px;
}


.password-requirements p.valid {
    color: #16a34a;
}


.password-requirements p.invalid {
    color: #dc2626;
}


/*====================================================
                PASSWORD EYE
====================================================*/

.password-box {
    position: relative;
}


.password-box input {
    width: 100%;
    padding-right: 45px;
}


.password-box i {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    color: #777;
    transition: 0.2s ease;
}


.password-box i:hover {
    color: #111;
}


/*====================================================
                    TERMS ERROR
====================================================*/

#termsError {
    margin-top: 5px;
}


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

@media (max-width: 768px) {

    .password-requirements {
        padding: 9px 10px;
    }

    .password-requirements p {
        font-size: 11px;
    }

}

/* =========================================
        LOGIN VALIDATION
========================================= */

.login-error {
    display: block;
    color: #dc2626;
    font-size: 12px;
    font-weight: 500;
    margin-top: 6px;
    min-height: 18px;
}


.login-input-box input.input-invalid {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.08);
}


.login-input-box:has(input.input-invalid) {
    border-color: #dc2626 !important;
}


.login-form-message {
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    margin-top: 12px;
    min-height: 20px;
}


.login-form-message.success {
    color: #16a34a;
}


.login-form-message.error {
    color: #dc2626;
}


.login-password-toggle {
    cursor: pointer;
    transition: 0.2s ease;
}


.login-password-toggle:hover {
    transform: scale(1.08);
}

/* =========================================
        ACCOUNT MENU
========================================= */

.account-menu {
    position: relative;
    display: none;
}


.account-button {
    display: flex;
    align-items: center;
    gap: 9px;

    border: none;
    background: transparent;

    color: #121212;

    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 600;

    cursor: pointer;

    padding: 8px 10px;

    border-radius: 10px;

    transition: 0.25s ease;
}


.account-button:hover {
    background: #f1f3f5;
}


.account-avatar {
    width: 36px;
    height: 36px;

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

    border-radius: 50%;

    background: #121212;
    color: #ffffff;

    font-size: 14px;
}


.account-name {
    max-width: 120px;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


.account-arrow {
    font-size: 11px;

    transition: transform 0.25s ease;
}


.account-menu.open .account-arrow {
    transform: rotate(180deg);
}


/* =========================================
        DROPDOWN
========================================= */

.account-dropdown {
    position: absolute;

    top: calc(100% + 12px);
    right: 0;

    width: 250px;

    background: #ffffff;

    border-radius: 14px;

    padding: 10px;

    box-shadow:
        0 15px 40px rgba(0, 0, 0, 0.14);

    border: 1px solid #eeeeee;

    opacity: 0;
    visibility: hidden;

    transform: translateY(-8px);

    transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s ease;

    z-index: 9999;
}


.account-menu.open .account-dropdown {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);
}


/* =========================================
        DROPDOWN HEADER
========================================= */

.account-dropdown-header {
    display: flex;
    align-items: center;

    gap: 12px;

    padding: 12px;
}


.account-dropdown-avatar {
    width: 42px;
    height: 42px;

    min-width: 42px;

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

    border-radius: 50%;

    background: #121212;
    color: #ffffff;
}


.account-dropdown-header strong {
    display: block;

    font-size: 14px;
    font-weight: 600;

    color: #121212;
}


.account-dropdown-header small {
    display: block;

    margin-top: 2px;

    color: #777777;

    font-size: 11px;

    max-width: 160px;

    overflow: hidden;
    text-overflow: ellipsis;
}


/* =========================================
        DROPDOWN LINKS
========================================= */

.account-dropdown a,
.logout-button {
    width: 100%;

    display: flex;
    align-items: center;

    gap: 11px;

    padding: 11px 12px;

    border: none;

    background: transparent;

    border-radius: 9px;

    color: #333333;

    text-decoration: none;

    font-family: 'Poppins', sans-serif;

    font-size: 13px;

    cursor: pointer;

    text-align: left;

    transition: 0.2s ease;
}


.account-dropdown a:hover,
.logout-button:hover {
    background: #f5f6f7;
}


.account-dropdown a i,
.logout-button i {
    width: 18px;

    font-size: 14px;

    color: #555555;
}


/* =========================================
        DIVIDERS
========================================= */

.account-dropdown-divider {
    height: 1px;

    background: #eeeeee;

    margin: 7px 4px;
}


/* =========================================
        LOGOUT
========================================= */

.logout-button {
    color: #dc2626;
}


.logout-button i {
    color: #dc2626;
}

/*====================================================
        ACCOUNT SYSTEM
====================================================*/

.account-menu{
    display:none;
    position:relative;
}

.logged-out-actions{
    display:flex;
    align-items:center;
    gap:12px;
}

.account-dropdown{
    display:none;
}

.account-dropdown.show{
    display:block;
}

/*====================================================
                    ACCOUNT PAGE
=====================================================*/

.account-page {
    background: #f6f8f8;
    min-height: 100vh;
}


/* ACCOUNT HERO */

.account-hero {
    background: #0b5960;
    padding: 150px 8%;
    color: white;
}

.account-hero span {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 2px;
}

.account-hero h1 {
    font-family: "Playfair Display", serif;
    font-size: 48px;
    margin: 10px 0;
}

.account-hero p {
    font-size: 16px;
    opacity: 0.9;
}


/* ACCOUNT CONTENT */

.account-content {
    padding: 60px 8%;
}

.account-container {
    max-width: 1200px;
    margin: auto;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 30px;
}


/* SIDEBAR */

.account-sidebar {
    background: white;
    border-radius: 16px;
    padding: 25px;
    height: fit-content;
    box-shadow: 0 5px 25px rgba(0,0,0,0.06);
}

.account-sidebar-profile {
    text-align: center;
    padding-bottom: 25px;
}

.large-account-avatar {
    width: 85px;
    height: 85px;
    margin: auto;
    border-radius: 50%;
    background: #0b5960;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
}

.account-sidebar-profile h2 {
    margin-top: 15px;
    font-size: 20px;
}

.account-sidebar-profile p {
    color: #777;
    font-size: 13px;
    word-break: break-word;
}


/* SIDEBAR MENU */

.account-sidebar-menu {
    border-top: 1px solid #eee;
    padding-top: 15px;
}

.account-sidebar-menu a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 10px;
    margin-bottom: 5px;
    color: #444;
    text-decoration: none;
    border-radius: 8px;
    transition: 0.2s;
}

.account-sidebar-menu a:hover,
.account-sidebar-menu a.active {
    background: #eef7f7;
    color: #0b5960;
}

.account-sidebar-menu i {
    width: 20px;
}


/* MAIN CARD */

.account-card {
    background: white;
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 5px 25px rgba(0,0,0,0.06);
}

.account-card-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #eee;
    padding-bottom: 20px;
}

.account-card-heading span {
    font-size: 12px;
    letter-spacing: 1.5px;
    font-weight: 600;
    color: #0b5960;
}

.account-card-heading h2 {
    margin-top: 5px;
    font-size: 28px;
}

.account-card-heading > i {
    font-size: 28px;
    color: #0b5960;
}

.account-description {
    color: #777;
    margin: 20px 0 30px;
    line-height: 1.7;
}


/* FORM */

.account-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.account-form-group {
    margin-bottom: 22px;
}

.account-form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    font-size: 14px;
}

.account-form-group input,
.account-form-group textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 13px 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
    outline: none;
    transition: 0.2s;
}

.account-form-group input:focus,
.account-form-group textarea:focus {
    border-color: #0b5960;
}

.account-form-group input[readonly] {
    background: #f4f4f4;
    cursor: not-allowed;
}

.account-form-group small {
    display: block;
    color: #888;
    margin-top: 6px;
    font-size: 12px;
}


/* SAVE BUTTON */

.account-save-btn {
    border: none;
    background: #0b5960;
    color: white;
    padding: 13px 22px;
    border-radius: 8px;
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s;
}

.account-save-btn:hover {
    transform: translateY(-2px);
    opacity: 0.9;
}

.account-save-message {
    margin-top: 15px;
    font-size: 14px;
    font-weight: 500;
}

.account-save-message.success {
    color: #198754;
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .account-container {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 600px) {

    .account-hero {
        padding: 50px 6%;
    }

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

    .account-content {
        padding: 40px 5%;
    }

    .account-card {
        padding: 25px;
    }

    .account-form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

}

/*====================================================
                B&B TRAVEL
                HOLIDAY PACKAGES
=====================================================*/


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

.packages-hero {

    min-height:620px;

    padding:170px 0 100px;

    position:relative;

    display:flex;

    align-items:center;

    background:
        linear-gradient(
            90deg,
            rgba(11,79,99,.92),
            rgba(11,79,99,.68),
            rgba(11,79,99,.25)
        ),
        url("https://images.unsplash.com/photo-1500534623283-312aade485b7?auto=format&fit=crop&w=2000&q=85");

    background-size:cover;

    background-position:center;

}


.packages-hero-overlay {

    position:absolute;

    inset:0;

    pointer-events:none;

}


.packages-hero-container {

    width:90%;

    max-width:1250px;

    margin:auto;

    position:relative;

    z-index:2;

}


.packages-hero-content {

    max-width:700px;

    color:#FFFFFF;

}


.packages-hero-content > span {

    display:inline-block;

    color:#A8CF38;

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;

    margin-bottom:18px;

}


.packages-hero-content h1 {

    font-family:'Playfair Display',serif;

    font-size:64px;

    line-height:1.12;

    margin:0 0 22px;

}


.packages-hero-content p {

    max-width:620px;

    color:#E8F3F6;

    font-size:16px;

    line-height:1.9;

    margin-bottom:30px;

}


.packages-hero-buttons {

    display:flex;

    align-items:center;

    gap:15px;

}


.packages-primary-btn {

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:8px;

    background:#0B4F63;

    color:#FFFFFF;

    text-decoration:none;

    padding:15px 25px;

    border-radius:35px;

    font-size:13px;

    font-weight:600;

    transition:.3s;

}


.packages-primary-btn:hover {

    background:#A8CF38;

    color:#121212;

    transform:translateY(-3px);

}


.packages-secondary-btn {

    display:inline-flex;

    align-items:center;

    justify-content:center;

    background:transparent;

    border:2px solid #FFFFFF;

    color:#FFFFFF;

    text-decoration:none;

    padding:13px 25px;

    border-radius:35px;

    font-size:13px;

    font-weight:600;

    transition:.3s;

}


.packages-secondary-btn:hover {

    background:#FFFFFF;

    color:#0B4F63;

}



/*====================================================
                    INTRODUCTION
=====================================================*/

.packages-intro {

    padding:90px 0 45px;

    background:#F5F7FA;

}


.packages-intro-container {

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:1.2fr .8fr;

    gap:60px;

    align-items:center;

}


.packages-intro-content > span {

    color:#19A7CE;

    font-size:13px;

    font-weight:700;

    letter-spacing:2px;

}


.packages-intro-content h2 {

    font-family:'Playfair Display',serif;

    font-size:48px;

    line-height:1.2;

    margin:12px 0 15px;

}


.packages-intro-content h2 strong {

    color:#19A7CE;

    font-weight:600;

}


.packages-intro-content p {

    max-width:650px;

    color:#666;

    font-size:14px;

    line-height:1.8;

}


.packages-intro-card {

    background:#FFFFFF;

    padding:35px;

    border-radius:20px;

    box-shadow:0 10px 30px rgba(0,0,0,.07);

    border-left:5px solid #19A7CE;

}


.packages-intro-icon {

    width:60px;

    height:60px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#0B4F63;

    color:#FFFFFF;

    font-size:23px;

    margin-bottom:18px;

}


.packages-intro-card h3 {

    font-size:20px;

    margin-bottom:10px;

}


.packages-intro-card p {

    color:#777;

    font-size:13px;

    line-height:1.7;

}



/*====================================================
                    PACKAGE FILTER
=====================================================*/

.packages-filter-section {

    position:relative;

    z-index:10;

    margin-top:25px;

    padding-bottom:70px;

}


.packages-filter {

    width:90%;

    max-width:1250px;

    margin:auto;

    background:#FFFFFF;

    border-radius:22px;

    padding:28px 30px;

    box-shadow:0 15px 45px rgba(0,0,0,.12);

}


.packages-filter-title {

    margin-bottom:18px;

}


.packages-filter-title span {

    color:#19A7CE;

    font-size:12px;

    font-weight:700;

    letter-spacing:2px;

}


.packages-filter-title h2 {

    margin-top:5px;

    font-size:25px;

    font-family:'Playfair Display',serif;

}


.packages-filter-buttons {

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}


.package-filter-btn {

    border:none;

    background:#0B4F63;

    color:#FFFFFF;

    padding:11px 22px;

    border-radius:30px;

    font-size:12px;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}


.package-filter-btn:hover {

    background:#19A7CE;

    transform:translateY(-2px);

}


.package-filter-btn.active {

    background:#A8CF38;

    color:#121212;

}



/*====================================================
                    PACKAGES SECTION
=====================================================*/

.packages-section {

    padding:0 0 110px;

    background:#F5F7FA;

}


.packages-grid {

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:28px;

}



/*====================================================
                    PACKAGE CARD
=====================================================*/

.package-card {

    background:#FFFFFF;

    border-radius:20px;

    overflow:hidden;

    box-shadow:0 10px 30px rgba(0,0,0,.07);

    transition:.4s;

}


.package-card:hover {

    transform:translateY(-10px);

    box-shadow:0 18px 40px rgba(0,0,0,.12);

}



/* IMAGE */

.package-image {

    height:235px;

    position:relative;

    overflow:hidden;

}


.package-image img {

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.5s;

}


.package-card:hover .package-image img {

    transform:scale(1.06);

}



/* BADGE */

.package-badge {

    position:absolute;

    top:18px;

    left:18px;

    background:#A8CF38;

    color:#121212;

    padding:8px 13px;

    border-radius:7px;

    font-size:11px;

    font-weight:700;

}



/* HEART */

.package-heart {

    position:absolute;

    top:18px;

    right:18px;

    width:38px;

    height:38px;

    border:none;

    border-radius:50%;

    background:#FFFFFF;

    color:#0B4F63;

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    font-size:15px;

    box-shadow:0 5px 15px rgba(0,0,0,.15);

    transition:.3s;

}


.package-heart:hover {

    background:#19A7CE;

    color:#FFFFFF;

}



/* CONTENT */

.package-content {

    padding:25px;

}


.package-location {

    display:flex;

    align-items:center;

    gap:6px;

    color:#19A7CE;

    font-size:11px;

    font-weight:700;

    letter-spacing:1px;

    text-transform:uppercase;

}


.package-location i {

    font-size:11px;

}


.package-content h3 {

    font-family:'Playfair Display',serif;

    font-size:25px;

    line-height:1.25;

    margin:9px 0 10px;

}


.package-content > p {

    color:#777;

    font-size:13px;

    line-height:1.7;

    min-height:45px;

}



/* DETAILS */

.package-details {

    display:flex;

    flex-wrap:wrap;

    gap:8px;

    margin:20px 0;

    padding-top:17px;

    border-top:1px solid #EAEDEF;

}


.package-details span {

    display:flex;

    align-items:center;

    gap:5px;

    color:#666;

    font-size:11px;

}


.package-details i {

    color:#19A7CE;

}



/* BOTTOM */

.package-bottom {

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:15px;

}


.package-price small {

    display:block;

    color:#888;

    font-size:10px;

}


.package-price strong {

    display:block;

    color:#0B4F63;

    font-size:21px;

    margin-top:2px;

}


.package-price span {

    color:#888;

    font-size:10px;

}


.package-btn {

    display:inline-flex;

    align-items:center;

    justify-content:center;

    background:#0B4F63;

    color:#FFFFFF;

    text-decoration:none;

    padding:10px 15px;

    border-radius:8px;

    font-size:11px;

    font-weight:600;

    white-space:nowrap;

    transition:.3s;

}


.package-btn:hover {

    background:#19A7CE;

    transform:translateY(-2px);

}



/*====================================================
                    WHY B&B
=====================================================*/

.packages-benefits-section {

    padding:110px 0;

    background:#FFFFFF;

}


.packages-section-heading {

    width:90%;

    max-width:700px;

    margin:0 auto 55px;

    text-align:center;

}


.packages-section-heading > span {

    color:#19A7CE;

    font-size:13px;

    font-weight:700;

    letter-spacing:2px;

}


.packages-section-heading h2 {

    font-family:'Playfair Display',serif;

    font-size:48px;

    margin:12px 0 15px;

}


.packages-section-heading h2 strong {

    color:#19A7CE;

    font-weight:600;

}


.packages-section-heading p {

    color:#777;

    font-size:14px;

    line-height:1.8;

}


.packages-benefits-grid {

    width:90%;

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:25px;

}


.package-benefit {

    text-align:center;

    background:#F5F7FA;

    padding:35px 25px;

    border-radius:20px;

    transition:.4s;

}


.package-benefit:hover {

    transform:translateY(-8px);

    background:#0B4F63;

    color:#FFFFFF;

}


.package-benefit-icon {

    width:65px;

    height:65px;

    margin:0 auto 20px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#0B4F63;

    color:#FFFFFF;

    font-size:23px;

    transition:.3s;

}


.package-benefit:hover .package-benefit-icon {

    background:#A8CF38;

    color:#121212;

}


.package-benefit h3 {

    font-size:18px;

    margin-bottom:10px;

}


.package-benefit p {

    color:#777;

    font-size:13px;

    line-height:1.7;

}


.package-benefit:hover p {

    color:#DCECEF;

}



/*====================================================
                        CTA
=====================================================*/

.packages-cta {

    min-height:450px;

    padding:90px 0;

    display:flex;

    align-items:center;

    position:relative;

    background:
        linear-gradient(
            rgba(11,79,99,.88),
            rgba(11,79,99,.88)
        ),
        url("https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1800&q=80");

    background-size:cover;

    background-position:center;

}


.packages-cta-overlay {

    position:absolute;

    inset:0;

}


.packages-cta-content {

    width:90%;

    max-width:900px;

    margin:auto;

    text-align:center;

    color:#FFFFFF;

    position:relative;

    z-index:2;

}


.packages-cta-content > span {

    color:#A8CF38;

    font-size:13px;

    font-weight:700;

    letter-spacing:2px;

}


.packages-cta-content h2 {

    font-family:'Playfair Display',serif;

    font-size:50px;

    margin:15px 0;

}


.packages-cta-content h2 strong {

    color:#19A7CE;

    font-weight:600;

}


.packages-cta-content p {

    max-width:650px;

    margin:0 auto 30px;

    color:#E5F1F4;

    font-size:15px;

    line-height:1.8;

}


.packages-cta-buttons {

    display:flex;

    justify-content:center;

    align-items:center;

    gap:15px;

}



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

@media(max-width:1100px) {

    .packages-hero-content h1 {

        font-size:55px;

    }


    .packages-grid {

        grid-template-columns:repeat(2,1fr);

    }


    .packages-benefits-grid {

        grid-template-columns:repeat(2,1fr);

    }

}



@media(max-width:900px) {

    .packages-hero {

        min-height:600px;

        padding:150px 0 90px;

    }


    .packages-intro-container {

        grid-template-columns:1fr;

        gap:35px;

    }

}



@media(max-width:768px) {

    .packages-hero {

        min-height:600px;

        padding:140px 0 80px;

    }


    .packages-hero-content {

        text-align:center;

        margin:auto;

    }


    .packages-hero-content h1 {

        font-size:44px;

    }


    .packages-hero-content p {

        font-size:14px;

        margin-left:auto;

        margin-right:auto;

    }


    .packages-hero-buttons {

        justify-content:center;

        flex-wrap:wrap;

    }


    .packages-intro {

        padding:70px 0 35px;

    }


    .packages-intro-content h2 {

        font-size:38px;

    }


    .packages-filter-section {

        margin-top:15px;

        padding-bottom:60px;

    }


    .packages-filter {

        padding:25px 20px;

    }


    .packages-filter-buttons {

        display:grid;

        grid-template-columns:repeat(2,1fr);

    }


    .package-filter-btn {

        min-height:45px;

    }


    .packages-grid {

        grid-template-columns:1fr;

    }


    .packages-section-heading h2 {

        font-size:38px;

    }


    .packages-benefits-grid {

        grid-template-columns:1fr;

    }


    .packages-cta {

        min-height:500px;

    }


    .packages-cta-content h2 {

        font-size:40px;

    }


    .packages-cta-buttons {

        flex-wrap:wrap;

    }

}



@media(max-width:480px) {

    .packages-hero-content h1 {

        font-size:39px;

    }


    .packages-hero-content > span {

        font-size:11px;

        letter-spacing:2px;

    }


    .packages-intro-content h2 {

        font-size:34px;

    }


    .packages-section-heading h2 {

        font-size:34px;

    }


    .package-image {

        height:210px;

    }


    .package-bottom {

        align-items:flex-start;

    }


    .package-btn {

        padding:9px 12px;

    }


    .packages-cta-content h2 {

        font-size:34px;

    }

}

/* =====================================================
   B&B TRAVEL
   HOLIDAY PACKAGES PAGE
===================================================== */


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

.packages-hero {
    position: relative;
    min-height: 620px;

    display: flex;
    align-items: center;

    background-image:
        url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?w=1800&auto=format&fit=crop&q=85");

    background-size: cover;
    background-position: center;

    overflow: hidden;
}


.packages-hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(5, 66, 82, 0.95) 0%,
            rgba(5, 66, 82, 0.72) 42%,
            rgba(5, 66, 82, 0.20) 75%,
            rgba(5, 66, 82, 0.05) 100%
        );
}


.packages-hero-content {
    position: relative;
    z-index: 2;

    max-width: 1250px;
    width: 100%;

    margin: 0 auto;

    padding: 100px 40px;
}


.packages-eyebrow {
    display: inline-block;

    margin-bottom: 18px;

    font-family: "Poppins", sans-serif;

    font-size: 12px;
    font-weight: 700;

    letter-spacing: 3px;

    color: #b4d334;
}


.packages-hero h1 {
    margin: 0 0 22px;

    max-width: 650px;

    font-family: "Playfair Display", serif;

    font-size: clamp(50px, 6vw, 82px);

    line-height: 0.98;

    color: #ffffff;
}


.packages-hero-content p {
    max-width: 590px;

    margin-bottom: 32px;

    font-family: "Poppins", sans-serif;

    font-size: 15px;
    line-height: 1.8;

    color: rgba(255,255,255,0.88);
}


.packages-hero-buttons {
    display: flex;
    align-items: center;

    gap: 14px;
}


.packages-primary-btn,
.packages-outline-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 10px;

    padding: 13px 23px;

    border-radius: 30px;

    text-decoration: none;

    font-family: "Poppins", sans-serif;

    font-size: 13px;
    font-weight: 600;

    transition: 0.3s ease;
}


.packages-primary-btn {
    background: #b4d334;
    color: #084f63;
}


.packages-primary-btn:hover {
    transform: translateY(-3px);

    background: #c5e34b;
}


.packages-outline-btn {
    border: 1px solid rgba(255,255,255,0.8);

    color: #ffffff;
}


.packages-outline-btn:hover {
    background: #ffffff;
    color: #084f63;
}



/* =====================================================
   INTRO
===================================================== */

.packages-intro {
    padding: 85px 30px 40px;

    background: #f5f7f8;
}


.packages-intro-inner {
    max-width: 1150px;

    margin: auto;
}


.packages-intro-label {
    margin-bottom: 10px;

    font-family: "Poppins", sans-serif;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 2.5px;

    color: #0ba5ce;
}


.packages-intro h2 {
    margin: 0 0 12px;

    font-family: "Playfair Display", serif;

    font-size: 42px;

    color: #123b47;
}


.packages-intro p {
    max-width: 720px;

    margin: 0;

    font-family: "Poppins", sans-serif;

    font-size: 14px;
    line-height: 1.8;

    color: #66777d;
}



/* =====================================================
   COLLECTION
===================================================== */

.holiday-collection {
    padding: 45px 30px 100px;

    background: #f5f7f8;
}


.collection-heading {
    max-width: 1150px;

    margin: 0 auto 45px;

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 40px;
}


.collection-heading span {
    font-family: "Poppins", sans-serif;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 2.5px;

    color: #0ba5ce;
}


.collection-heading h2 {
    margin: 8px 0 0;

    font-family: "Playfair Display", serif;

    font-size: 40px;

    color: #123b47;
}


.collection-heading p {
    max-width: 430px;

    margin: 0;

    font-family: "Poppins", sans-serif;

    font-size: 13px;

    line-height: 1.8;

    color: #6b7c82;
}



/* =====================================================
   FEATURED HOLIDAY
===================================================== */

.featured-holiday {
    max-width: 1150px;

    margin: 0 auto 55px;

    display: grid;

    grid-template-columns: 1.25fr 0.75fr;

    background: #ffffff;

    border-radius: 24px;

    overflow: hidden;

    box-shadow: 0 18px 45px rgba(13, 57, 70, 0.10);
}


.featured-holiday-image {
    min-height: 500px;
}


.featured-holiday-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    transition: transform 0.6s ease;
}


.featured-holiday:hover .featured-holiday-image img {
    transform: scale(1.04);
}


.featured-holiday-content {
    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 55px;
}


.featured-label {
    margin-bottom: 15px;

    font-family: "Poppins", sans-serif;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 2px;

    color: #0ba5ce;
}


.featured-holiday-content h3 {
    margin: 0 0 18px;

    font-family: "Playfair Display", serif;

    font-size: 46px;

    line-height: 1.05;

    color: #123b47;
}


.featured-holiday-content > p {
    margin: 0 0 30px;

    font-family: "Poppins", sans-serif;

    font-size: 13px;

    line-height: 1.8;

    color: #6b7c82;
}


.featured-details {
    display: grid;

    grid-template-columns: 1fr;

    gap: 13px;

    padding: 22px 0;

    border-top: 1px solid #e5eaec;

    border-bottom: 1px solid #e5eaec;
}


.featured-details div {
    display: flex;

    align-items: center;

    gap: 12px;
}


.featured-details i {
    width: 30px;

    color: #0ba5ce;

    font-size: 18px;
}


.featured-details span {
    font-family: "Poppins", sans-serif;

    font-size: 12px;

    color: #526970;
}


.featured-bottom {
    margin-top: 28px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;
}


.featured-bottom small {
    display: block;

    margin-bottom: 3px;

    font-family: "Poppins", sans-serif;

    font-size: 9px;

    color: #8b999d;
}


.featured-bottom strong {
    display: inline-block;

    font-family: "Poppins", sans-serif;

    font-size: 22px;

    color: #07546a;
}


.featured-bottom span {
    font-family: "Poppins", sans-serif;

    font-size: 9px;

    color: #8b999d;
}


.featured-btn {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 13px 18px;

    border-radius: 25px;

    background: #07546a;

    color: #ffffff;

    text-decoration: none;

    font-family: "Poppins", sans-serif;

    font-size: 11px;
    font-weight: 600;

    transition: 0.3s ease;
}


.featured-btn:hover {
    background: #0ba5ce;

    transform: translateY(-2px);
}



/* =====================================================
   HOLIDAY GRID
===================================================== */

.holiday-grid {
    max-width: 1150px;

    margin: auto;

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 25px;
}


.holiday-card {
    background: #ffffff;

    border-radius: 20px;

    overflow: hidden;

    box-shadow: 0 12px 35px rgba(13, 57, 70, 0.08);

    transition: 0.35s ease;
}


.holiday-card:hover {
    transform: translateY(-7px);

    box-shadow: 0 20px 45px rgba(13, 57, 70, 0.14);
}


.holiday-card-wide {
    grid-column: span 2;

    display: grid;

    grid-template-columns: 1.15fr 0.85fr;
}


.holiday-card-image {
    height: 300px;

    position: relative;

    overflow: hidden;
}


.holiday-card-wide .holiday-card-image {
    height: 100%;

    min-height: 330px;
}


.holiday-card-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    transition: transform 0.6s ease;
}


.holiday-card:hover .holiday-card-image img {
    transform: scale(1.05);
}


.holiday-card-tag {
    position: absolute;

    top: 18px;
    left: 18px;

    padding: 7px 11px;

    border-radius: 4px;

    background: #b4d334;

    color: #123b47;

    font-family: "Poppins", sans-serif;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.5px;
}


.holiday-card-content {
    padding: 27px 30px 30px;
}


.holiday-card-wide .holiday-card-content {
    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 45px;
}


.holiday-location {
    display: block;

    margin-bottom: 8px;

    font-family: "Poppins", sans-serif;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 1.5px;

    color: #0ba5ce;
}


.holiday-card h3 {
    margin: 0 0 10px;

    font-family: "Playfair Display", serif;

    font-size: 28px;

    color: #123b47;
}


.holiday-card p {
    margin: 0 0 20px;

    font-family: "Poppins", sans-serif;

    font-size: 12px;

    line-height: 1.75;

    color: #6c7d82;
}


.holiday-meta {
    display: flex;

    flex-wrap: wrap;

    gap: 15px;

    padding: 17px 0;

    border-top: 1px solid #e6ebed;
}


.holiday-meta span {
    display: flex;

    align-items: center;

    gap: 7px;

    font-family: "Poppins", sans-serif;

    font-size: 10px;

    color: #60737a;
}


.holiday-meta i {
    color: #0ba5ce;

    font-size: 14px;
}


.holiday-card-bottom {
    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 15px;

    margin-top: 5px;
}


.holiday-card-bottom small {
    display: block;

    margin-bottom: 2px;

    font-family: "Poppins", sans-serif;

    font-size: 8px;

    color: #8b999d;
}


.holiday-card-bottom strong {
    font-family: "Poppins", sans-serif;

    font-size: 17px;

    color: #07546a;
}


.holiday-card-bottom a {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    padding: 10px 14px;

    border-radius: 20px;

    background: #07546a;

    color: #ffffff;

    text-decoration: none;

    font-family: "Poppins", sans-serif;

    font-size: 10px;
    font-weight: 600;

    transition: 0.3s ease;
}


.holiday-card-bottom a:hover {
    background: #0ba5ce;
}



/* =====================================================
   BENEFITS
===================================================== */

.packages-benefits {
    padding: 100px 30px;

    background: #ffffff;
}


.packages-benefits-heading {
    max-width: 750px;

    margin: 0 auto 55px;

    text-align: center;
}


.packages-benefits-heading span {
    font-family: "Poppins", sans-serif;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 2.5px;

    color: #0ba5ce;
}


.packages-benefits-heading h2 {
    margin: 10px 0 0;

    font-family: "Playfair Display", serif;

    font-size: 40px;

    line-height: 1.2;

    color: #123b47;
}


.benefits-grid {
    max-width: 1100px;

    margin: auto;

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 25px;
}


.benefit-item {
    padding: 30px 20px;

    text-align: center;

    border-right: 1px solid #e5eaec;
}


.benefit-item:last-child {
    border-right: none;
}


.benefit-icon {
    width: 55px;
    height: 55px;

    margin: 0 auto 18px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #e9f8fc;

    color: #0ba5ce;

    font-size: 21px;
}


.benefit-item h3 {
    margin: 0 0 10px;

    font-family: "Poppins", sans-serif;

    font-size: 15px;

    color: #123b47;
}


.benefit-item p {
    margin: 0;

    font-family: "Poppins", sans-serif;

    font-size: 11px;

    line-height: 1.7;

    color: #718187;
}



/* =====================================================
   FINAL CTA
===================================================== */

.packages-cta {
    position: relative;

    min-height: 440px;

    display: flex;

    align-items: center;
    justify-content: center;

    text-align: center;

    background-image:
        url("https://images.unsplash.com/photo-1500534623283-312aade485b7?w=1600&auto=format&fit=crop&q=85");

    background-size: cover;

    background-position: center;
}


.packages-cta-overlay {
    position: absolute;

    inset: 0;

    background: rgba(4, 65, 80, 0.82);
}


.packages-cta-content {
    position: relative;

    z-index: 2;

    max-width: 700px;

    padding: 70px 30px;
}


.packages-cta-content span {
    font-family: "Poppins", sans-serif;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 2.5px;

    color: #b4d334;
}


.packages-cta-content h2 {
    margin: 15px 0;

    font-family: "Playfair Display", serif;

    font-size: 52px;

    line-height: 1.05;

    color: #ffffff;
}


.packages-cta-content p {
    max-width: 570px;

    margin: 0 auto 28px;

    font-family: "Poppins", sans-serif;

    font-size: 13px;

    line-height: 1.8;

    color: rgba(255,255,255,0.85);
}


.packages-cta-btn {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 14px 24px;

    border-radius: 30px;

    background: #b4d334;

    color: #123b47;

    text-decoration: none;

    font-family: "Poppins", sans-serif;

    font-size: 12px;
    font-weight: 700;

    transition: 0.3s ease;
}


.packages-cta-btn:hover {
    background: #ffffff;

    transform: translateY(-3px);
}



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

@media (max-width: 900px) {

    .featured-holiday {
        grid-template-columns: 1fr;
    }


    .featured-holiday-image {
        min-height: 400px;
    }


    .holiday-grid {
        grid-template-columns: 1fr;
    }


    .holiday-card-wide {
        grid-column: span 1;

        display: block;
    }


    .holiday-card-wide .holiday-card-image {
        min-height: 300px;
    }


    .benefits-grid {
        grid-template-columns: repeat(2, 1fr);
    }


    .benefit-item:nth-child(2) {
        border-right: none;
    }


    .collection-heading {
        align-items: flex-start;

        flex-direction: column;
    }

}


@media (max-width: 600px) {

    .packages-hero {
        min-height: 560px;
    }


    .packages-hero-content {
        padding: 80px 25px;
    }


    .packages-hero h1 {
        font-size: 48px;
    }


    .packages-hero-buttons {
        flex-wrap: wrap;
    }


    .packages-intro {
        padding: 65px 25px 30px;
    }


    .packages-intro h2 {
        font-size: 34px;
    }


    .holiday-collection {
        padding: 35px 18px 70px;
    }


    .collection-heading h2 {
        font-size: 34px;
    }


    .featured-holiday-content {
        padding: 35px 25px;
    }


    .featured-holiday-content h3 {
        font-size: 38px;
    }


    .featured-bottom {
        align-items: flex-start;

        flex-direction: column;
    }


    .holiday-card-content {
        padding: 25px;
    }


    .holiday-card h3 {
        font-size: 25px;
    }


    .holiday-card-bottom {
        align-items: flex-start;

        flex-direction: column;
    }


    .packages-benefits {
        padding: 70px 25px;
    }


    .benefits-grid {
        grid-template-columns: 1fr;
    }


    .benefit-item {
        border-right: none;

        border-bottom: 1px solid #e5eaec;
    }


    .benefit-item:last-child {
        border-bottom: none;
    }


    .packages-benefits-heading h2 {
        font-size: 33px;
    }


    .packages-cta-content h2 {
        font-size: 42px;
    }

}

/* =========================================================
   B&B FLIGHTS PAGE
========================================================= */

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #f4f7f9;
    color: #17212b;
}


/* =========================================================
   ACCOUNT DROPDOWN
========================================================= */

.account-menu {
    position: relative;
    display: none;
}

.account-menu.show {
    display: block;
}

.account-button {
    border: none;
    background: transparent;
    color: inherit;
    font-family: "Poppins", sans-serif;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
}

.account-button i:first-child {
    font-size: 16px;
}

.account-button .fa-chevron-down {
    font-size: 10px;
    transition: 0.2s;
}

.account-menu.open .fa-chevron-down {
    transform: rotate(180deg);
}

.account-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 190px;
    background: white;
    border: 1px solid #e3eaed;
    border-radius: 12px;
    padding: 8px;
    box-shadow: 0 12px 30px rgba(0,0,0,0.12);
    z-index: 1000;
}

.account-menu.open .account-dropdown {
    display: block;
}

.account-dropdown a,
.account-dropdown button {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 11px;
    border: none;
    background: transparent;
    text-decoration: none;
    color: #34434b;
    font-family: "Poppins", sans-serif;
    font-size: 12px;
    text-align: left;
    border-radius: 8px;
    cursor: pointer;
}

.account-dropdown a:hover,
.account-dropdown button:hover {
    background: #f1f6f7;
    color: #087e9e;
}

.account-dropdown .logout-button {
    color: #c0392b;
}

.account-dropdown .logout-button:hover {
    color: #c0392b;
    background: #fff1ef;
}


/* =========================================================
   PAGE INTRO
========================================================= */

.flight-intro {
    background: linear-gradient(
        135deg,
        #063d50,
        #08677e
    );

    padding: 140px 6% 190px;
    color: white;
}

.flight-intro-container {
    max-width: 1250px;
    margin: auto;
}

.flight-intro-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.flight-intro-text span {
    display: inline-block;
    color: #a8df32;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
    margin-bottom: 12px;
}

.flight-intro-text h1 {
    font-family: "Playfair Display", serif;
    font-size: clamp(38px, 5vw, 58px);
    line-height: 1.1;
    margin: 0 0 12px;
}

.flight-intro-text p {
    margin: 0;
    max-width: 650px;
    color: rgba(255,255,255,0.78);
    line-height: 1.7;
    font-size: 15px;
}

.flight-status {
    display: flex;
    align-items: center;
    gap: 12px;
    background: rgba(255,255,255,0.09);
    border: 1px solid rgba(255,255,255,0.13);
    padding: 14px 18px;
    border-radius: 14px;
    white-space: nowrap;
}

.flight-status i {
    color: #a8df32;
}

.flight-status strong {
    font-size: 13px;
}


/* =========================================================
   SEARCH PANEL
========================================================= */

.flight-search-area {
    margin-top: -75px;
    padding: 0 6% 45px;
    position: relative;
    z-index: 5;
}

.flight-search-box {
    max-width: 1250px;
    margin: auto;
    background: white;
    border-radius: 22px;
    padding: 25px;
    box-shadow: 0 20px 55px rgba(9, 43, 56, 0.14);
    border: 1px solid #e5ebee;
}

.search-box-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 22px;
    gap: 20px;
}

.trip-tabs {
    display: flex;
    gap: 7px;
}

.trip-tab {
    border: none;
    background: #f0f4f6;
    color: #65717a;
    padding: 10px 18px;
    border-radius: 9px;
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
    transition: 0.25s;
}

.trip-tab:hover {
    background: #e6edf0;
}

.trip-tab.active {
    background: #0b6077;
    color: white;
}

.direct-option {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #68747b;
}

.direct-option input {
    accent-color: #0b6077;
}


/* =========================================================
   SEARCH FIELDS
========================================================= */

.flight-fields {
    display: grid;
    grid-template-columns:
        1.3fr
        1.3fr
        1fr
        1fr
        1.15fr
        auto;
    gap: 10px;
}

.flight-input {
    min-height: 73px;
    border: 1px solid #dce5e9;
    border-radius: 13px;
    padding: 12px 14px;
    display: flex;
    align-items: center;
    gap: 11px;
    background: #fff;
    transition: 0.25s;
}

.flight-input:focus-within {
    border-color: #1498b8;
    box-shadow: 0 0 0 3px rgba(20,152,184,0.09);
}

.flight-input > i {
    color: #0b657d;
    font-size: 19px;
    width: 22px;
    text-align: center;
}

.input-content {
    width: 100%;
}

.input-content label {
    display: block;
    color: #89939a;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    margin-bottom: 4px;
}

.input-content input,
.input-content select {
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    font-family: "Poppins", sans-serif;
    color: #18232a;
    font-size: 13px;
    font-weight: 600;
}

.input-content input::placeholder {
    color: #9aa4aa;
    font-weight: 400;
}


/* =========================================================
   SWAP
========================================================= */

.swap-button {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid #d9e3e7;
    background: white;
    color: #08708c;
    cursor: pointer;
    align-self: center;
    margin-left: -23px;
    margin-right: -23px;
    z-index: 2;
    transition: 0.3s;
}

.swap-button:hover {
    background: #08708c;
    color: white;
    transform: rotate(180deg);
}


/* =========================================================
   SEARCH BUTTON
========================================================= */

.search-flight-button {
    border: none;
    min-width: 130px;
    border-radius: 13px;
    background: #a8df32;
    color: #182100;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: 0.3s;
}

.search-flight-button:hover {
    background: #94c929;
    transform: translateY(-2px);
}


/* =========================================================
   RESULTS
========================================================= */

.flight-results-section {
    max-width: 1250px;
    margin: auto;
    padding: 10px 6% 90px;
}

.flight-results-layout {
    display: grid;
    grid-template-columns: 245px 1fr;
    gap: 25px;
    align-items: start;
}


/* =========================================================
   FILTERS
========================================================= */

.flight-filters {
    background: white;
    border: 1px solid #e4eaed;
    border-radius: 18px;
    padding: 22px;
    position: sticky;
    top: 25px;
}

.filter-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 17px;
    border-bottom: 1px solid #edf1f3;
    margin-bottom: 20px;
}

.filter-heading h3 {
    margin: 0;
    font-size: 16px;
}

.clear-filters {
    border: none;
    background: none;
    color: #087e9e;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

.filter-group {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #edf1f3;
}

.filter-group:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.filter-group h4 {
    margin: 0 0 14px;
    font-size: 12px;
    color: #4d5960;
}

.filter-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 11px;
    font-size: 12px;
    color: #737e84;
}

.filter-option-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.filter-option input {
    accent-color: #087e9e;
}

.filter-price {
    width: 100%;
    accent-color: #087e9e;
}


/* =========================================================
   RESULTS HEADER
========================================================= */

.results-content {
    min-width: 0;
}

.results-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 17px;
}

.results-route {
    display: flex;
    align-items: center;
    gap: 12px;
}

.results-route strong {
    font-size: 20px;
}

.results-route i {
    color: #0a91b2;
    font-size: 14px;
}

.results-header > div > span {
    color: #89949a;
    font-size: 12px;
}

.sort-select {
    border: 1px solid #dce5e8;
    background: white;
    padding: 10px 13px;
    border-radius: 9px;
    font-family: "Poppins", sans-serif;
    font-size: 12px;
    color: #55626a;
    outline: none;
}


/* =========================================================
   FLIGHT CARD
========================================================= */

.flight-result-card {
    background: white;
    border: 1px solid #e3eaed;
    border-radius: 18px;
    margin-bottom: 15px;
    overflow: hidden;
    transition: 0.3s;
}

.flight-result-card:hover {
    border-color: #c9e0e6;
    box-shadow: 0 12px 30px rgba(13,65,80,0.08);
    transform: translateY(-2px);
}

.flight-card-main {
    padding: 20px;
    display: grid;
    grid-template-columns: 1.1fr 2.2fr 0.8fr;
    gap: 25px;
    align-items: center;
}

.airline-info {
    display: flex;
    align-items: center;
    gap: 13px;
}

.airline-logo {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #f1f6f7;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0a6178;
    font-size: 20px;
}

.airline-name strong {
    display: block;
    color: #28343b;
    font-size: 13px;
}

.airline-name span {
    display: block;
    color: #909ba1;
    font-size: 10px;
    margin-top: 3px;
}

.flight-times {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
}

.time-location strong {
    display: block;
    font-size: 21px;
    color: #18252c;
}

.time-location span {
    display: block;
    color: #8b969c;
    font-size: 10px;
    margin-top: 3px;
}

.time-location:last-child {
    text-align: right;
}

.flight-line {
    min-width: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.flight-line span {
    color: #9aa5ab;
    font-size: 9px;
}

.flight-line-track {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 5px;
    color: #0a8dac;
}

.flight-line-track::before,
.flight-line-track::after {
    content: "";
    height: 1px;
    background: #d8e4e8;
    flex: 1;
}

.flight-line-track i {
    font-size: 11px;
}

.flight-price {
    text-align: right;
    border-left: 1px solid #edf1f3;
    padding-left: 20px;
}

.flight-price span {
    display: block;
    color: #89949a;
    font-size: 10px;
    margin-bottom: 3px;
}

.flight-price strong {
    display: block;
    color: #0a718b;
    font-size: 22px;
}

.flight-price small {
    color: #9ba4a9;
    font-size: 9px;
}

.flight-card-bottom {
    background: #fafcfc;
    border-top: 1px solid #edf1f3;
    padding: 11px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.flight-details {
    display: flex;
    align-items: center;
    gap: 18px;
}

.detail-item {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #7b878d;
    font-size: 10px;
}

.detail-item i {
    color: #0b7d98;
}

.flight-card-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.details-button,
.select-button {
    border-radius: 8px;
    padding: 8px 14px;
    font-family: "Poppins", sans-serif;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    transition: 0.25s;
}

.details-button {
    border: 1px solid #dce5e8;
    background: white;
    color: #657179;
}

.details-button:hover {
    border-color: #0a819d;
    color: #08758e;
}

.select-button {
    border: none;
    background: #087e9e;
    color: white;
}

.select-button:hover {
    background: #065f78;
}


/* =========================================================
   SPECIAL OFFER
========================================================= */

.flight-special {
    background: linear-gradient(
        120deg,
        #063d50,
        #087f9d
    );

    border-radius: 18px;
    padding: 28px;
    color: white;
    margin-top: 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}

.special-text span {
    color: #a8df32;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.special-text h2 {
    font-family: "Playfair Display", serif;
    font-size: 26px;
    margin: 7px 0;
}

.special-text p {
    margin: 0;
    color: rgba(255,255,255,0.72);
    font-size: 12px;
}

.special-button {
    flex-shrink: 0;
    background: #a8df32;
    color: #182100;
    padding: 12px 20px;
    border-radius: 25px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
}


/* =========================================================
   BENEFITS
========================================================= */

.flight-benefits {
    background: #eef4f6;
    padding: 75px 6%;
}

.flight-benefits-container {
    max-width: 1250px;
    margin: auto;
}

.benefits-title {
    text-align: center;
    max-width: 650px;
    margin: 0 auto 40px;
}

.benefits-title span {
    color: #087f9d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
}

.benefits-title h2 {
    font-family: "Playfair Display", serif;
    font-size: 38px;
    margin: 8px 0;
    color: #18262d;
}

.benefits-title p {
    color: #738087;
    font-size: 13px;
    line-height: 1.7;
}

.benefits-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.benefit {
    background: white;
    padding: 25px 20px;
    border-radius: 15px;
    border: 1px solid #e1e8eb;
}

.benefit i {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: #eaf6f8;
    color: #087e9e;
    margin-bottom: 15px;
}

.benefit h3 {
    font-size: 14px;
    margin: 0 0 7px;
}

.benefit p {
    color: #7b878d;
    font-size: 11px;
    line-height: 1.7;
    margin: 0;
}


/* =========================================================
   SEARCH MESSAGE
========================================================= */

.search-message {
    display: none;
    margin-top: 15px;
    padding: 12px 16px;
    background: #eff9e4;
    border: 1px solid #d7eab7;
    color: #557522;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
}

.search-message.show {
    display: block;
}


/* =========================================================
   FLIGHT DETAILS MODAL
========================================================= */

.flight-modal {
    position: fixed;
    inset: 0;
    background: rgba(7, 28, 36, 0.72);
    backdrop-filter: blur(5px);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 9999;
}

.flight-modal.show {
    display: flex;
}

.flight-modal-content {
    width: min(650px, 100%);
    max-height: 90vh;
    overflow-y: auto;
    background: white;
    border-radius: 22px;
    box-shadow: 0 25px 80px rgba(0,0,0,0.25);
    animation: flightModalIn 0.25s ease;
}

@keyframes flightModalIn {

    from {
        opacity: 0;
        transform: translateY(20px) scale(0.97);
    }

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

}

.flight-modal-header {
    padding: 22px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #edf1f3;
}

.flight-modal-header h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 25px;
    color: #18323c;
}

.flight-modal-close {
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 50%;
    background: #f1f5f6;
    color: #52636a;
    cursor: pointer;
    font-size: 16px;
}

.flight-modal-close:hover {
    background: #e5edef;
    color: #087e9e;
}

.flight-modal-body {
    padding: 25px;
}

.modal-airline {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-bottom: 22px;
    border-bottom: 1px solid #edf1f3;
}

.modal-airline-icon {
    width: 55px;
    height: 55px;
    border-radius: 14px;
    background: #edf7f9;
    color: #087e9e;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 23px;
}

.modal-airline-name strong {
    display: block;
    font-size: 16px;
    color: #26363d;
}

.modal-airline-name span {
    display: block;
    font-size: 11px;
    color: #8b969c;
    margin-top: 4px;
}

.modal-route {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
    padding: 28px 0;
}

.modal-city strong {
    display: block;
    font-size: 28px;
    color: #172930;
}

.modal-city span {
    display: block;
    font-size: 11px;
    color: #8a969c;
    margin-top: 4px;
}

.modal-city:last-child {
    text-align: right;
}

.modal-route-middle {
    text-align: center;
    min-width: 120px;
}

.modal-route-middle i {
    color: #087e9e;
    margin-bottom: 8px;
}

.modal-route-middle span {
    display: block;
    font-size: 10px;
    color: #8b969c;
}

.modal-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.modal-info-box {
    background: #f7f9fa;
    border-radius: 12px;
    padding: 14px;
}

.modal-info-box span {
    display: block;
    color: #8a969c;
    font-size: 10px;
    margin-bottom: 5px;
}

.modal-info-box strong {
    color: #2a3940;
    font-size: 12px;
}

.modal-price-box {
    margin-top: 18px;
    padding: 18px;
    background: #f0f8f9;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.modal-price-box span {
    font-size: 11px;
    color: #718087;
}

.modal-price-box strong {
    font-size: 22px;
    color: #087e9e;
}

.modal-actions {
    padding: 18px 25px 25px;
    display: flex;
    gap: 10px;
}

.modal-book-button {
    flex: 1;
    border: none;
    background: #087e9e;
    color: white;
    padding: 13px;
    border-radius: 10px;
    font-family: "Poppins", sans-serif;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.modal-book-button:hover {
    background: #065f78;
}

.modal-cancel-button {
    border: 1px solid #dce5e8;
    background: white;
    color: #68757c;
    padding: 13px 20px;
    border-radius: 10px;
    font-family: "Poppins", sans-serif;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}


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

@media (max-width: 1100px) {

    .flight-fields {
        grid-template-columns: repeat(3, 1fr);
    }

    .swap-button {
        display: none;
    }

}

@media (max-width: 900px) {

    .flight-intro-top {
        flex-direction: column;
        align-items: flex-start;
    }

    .flight-results-layout {
        grid-template-columns: 1fr;
    }

    .flight-filters {
        position: static;
    }

    .flight-card-main {
        grid-template-columns: 1fr 2fr 0.8fr;
    }

}

@media (max-width: 700px) {

    .flight-intro {
        padding: 45px 20px 100px;
    }

    .flight-search-area {
        padding: 0 18px 35px;
    }

    .flight-search-box {
        padding: 18px;
    }

    .search-box-top {
        flex-direction: column;
        align-items: flex-start;
    }

    .trip-tabs {
        flex-wrap: wrap;
    }

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

    .flight-results-section {
        padding: 10px 18px 65px;
    }

    .results-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .flight-card-main {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .flight-price {
        text-align: left;
        border-left: none;
        border-top: 1px solid #edf1f3;
        padding-left: 0;
        padding-top: 15px;
    }

    .flight-times {
        width: 100%;
    }

    .flight-card-bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .flight-details {
        flex-wrap: wrap;
    }

    .flight-card-actions {
        width: 100%;
    }

    .details-button,
    .select-button {
        flex: 1;
    }

    .flight-special {
        flex-direction: column;
        align-items: flex-start;
    }

    .flight-benefits {
        padding: 60px 20px;
    }

    .modal-route {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .modal-city:last-child {
        text-align: center;
    }

    .modal-info-grid {
        grid-template-columns: 1fr;
    }

    .modal-actions {
        flex-direction: column;
    }

}

/* =====================================================
   FLIGHT SEARCH - SINGLE LINE
===================================================== */

.flight-fields {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    flex-wrap: nowrap;
}

.flight-input {
    flex: 1;
    min-width: 0;
}

.swap-button {
    flex: 0 0 42px;
}

.search-flight-button {
    flex: 0 0 185px;
    min-width: 160px;
    height: 75px;
    padding: 0 28px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
}

/* Keep the fields compact */
.flight-input .input-content {
    min-width: 0;
}

.flight-input input,
.flight-input select {
    width: 100%;
    min-width: 0;
}

/* When Return is hidden, the remaining fields stay in line */
#returnBox[style*="display: none"] {
    display: none !important;
}


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

@media (max-width: 1100px) {

    .flight-fields {
        flex-wrap: wrap;
    }

    .flight-input {
        flex: 1 1 220px;
    }

    .search-flight-button {
        flex: 1 1 100%;
    }

}

/* =========================================
   BRANCH LOCATIONS
========================================= */

.branch-locations {
    padding: 80px 8%;
    background: #f8faf9;
}

.branch-locations .section-heading {
    text-align: center;
    margin-bottom: 45px;
}

.branch-locations .section-heading h2 {
    margin-bottom: 10px;
}

.branch-locations .section-heading p {
    margin: 0;
}


.branch-locations-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
    max-width: 1300px;
    margin: 0 auto;
}


.branch-card {
    background: #ffffff;
    padding: 35px 25px;
    text-align: center;
    border-radius: 15px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.branch-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}


.branch-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e8f3f1;
    font-size: 24px;
}


.branch-card h3 {
    margin-bottom: 12px;
    font-size: 22px;
}


.branch-card p {
    line-height: 1.7;
    margin-bottom: 22px;
}


.branch-map-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 18px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    transition: 0.3s ease;
}


.branch-map-button:hover {
    transform: translateY(-2px);
}


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

@media (max-width: 1000px) {

    .branch-locations-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}


@media (max-width: 600px) {

    .branch-locations {
        padding: 60px 5%;
    }

    .branch-locations-grid {
        grid-template-columns: 1fr;
    }

}

/* =========================================================
   FLIGHT DETAILS / BOOKING MODALS
========================================================= */

.flight-modal {
    position: fixed;
    inset: 0;

    background: rgba(0, 0, 0, 0.65);

    display: none;

    align-items: center;
    justify-content: center;

    z-index: 9999;

    padding: 20px;
}

.flight-modal.active {
    display: flex;
}

body.modal-open {
    overflow: hidden;
}


.flight-modal-content {
    width: 100%;
    max-width: 720px;

    max-height: 90vh;

    overflow-y: auto;

    background: #ffffff;

    border-radius: 18px;

    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.25);

    animation: flightModalIn 0.25s ease;
}


@keyframes flightModalIn {

    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }

}


.flight-modal-header {
    display: flex;

    align-items: center;
    justify-content: space-between;

    padding: 22px 26px;

    border-bottom: 1px solid #eeeeee;
}


.flight-modal-header h2 {
    margin: 0;

    font-size: 22px;

    color: #173b43;
}


.flight-modal-close {
    width: 38px;
    height: 38px;

    border: none;

    border-radius: 50%;

    background: #f3f5f5;

    color: #173b43;

    cursor: pointer;

    font-size: 17px;

    transition: 0.2s;
}


.flight-modal-close:hover {
    background: #e7eeee;
}


.flight-modal-body {
    padding: 26px;
}


/* AIRLINE */

.modal-airline {
    display: flex;

    align-items: center;

    gap: 14px;

    margin-bottom: 30px;
}


.modal-airline-icon {
    width: 54px;
    height: 54px;

    border-radius: 14px;

    background: #e8f3f2;

    color: #173b43;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 22px;
}


.modal-airline-name {
    display: flex;

    flex-direction: column;

    gap: 3px;
}


.modal-airline-name strong {
    font-size: 18px;

    color: #173b43;
}


.modal-airline-name span {
    font-size: 13px;

    color: #8a969b;
}


/* ROUTE */

.modal-route {
    display: grid;

    grid-template-columns: 1fr auto 1fr;

    align-items: center;

    gap: 20px;

    padding: 22px;

    border-radius: 14px;

    background: #f7f9f9;
}


.modal-city {
    display: flex;

    flex-direction: column;

    gap: 5px;
}


.modal-city strong {
    font-size: 26px;

    color: #173b43;
}


.modal-city span {
    font-size: 13px;

    color: #7d8b90;
}


.modal-route-middle {
    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 6px;

    color: #7d8b90;
}


.modal-route-middle i {
    font-size: 18px;

    color: #173b43;
}


.modal-route-middle span {
    font-size: 12px;
}


/* INFO */

.modal-info-grid {
    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 12px;

    margin-top: 20px;
}


.modal-info-box {
    padding: 16px;

    border: 1px solid #e7ebeb;

    border-radius: 12px;

    display: flex;

    flex-direction: column;

    gap: 5px;
}


.modal-info-box span {
    font-size: 11px;

    color: #89959a;

    text-transform: uppercase;
}


.modal-info-box strong {
    font-size: 14px;

    color: #173b43;
}


/* PRICE */

.modal-price-box {
    margin-top: 20px;

    padding: 18px;

    background: #edf7f5;

    border-radius: 12px;

    display: flex;

    align-items: center;

    justify-content: space-between;
}


.modal-price-box span {
    font-size: 13px;

    color: #68777b;
}


.modal-price-box strong {
    font-size: 22px;

    color: #173b43;
}


/* ACTIONS */

.modal-actions {
    display: flex;

    justify-content: flex-end;

    align-items: center;

    gap: 12px;

    padding: 18px 26px;

    border-top: 1px solid #eeeeee;
}


.modal-cancel-button,
.modal-book-button {
    border: none;

    padding: 12px 22px;

    border-radius: 9px;

    font-family: inherit;

    font-size: 14px;

    font-weight: 600;

    cursor: pointer;

    transition: 0.2s;
}


.modal-cancel-button {
    background: #f0f2f2;

    color: #173b43;
}


.modal-cancel-button:hover {
    background: #e2e6e6;
}


.modal-book-button {
    background: #173b43;

    color: #ffffff;
}


.modal-book-button:hover {
    background: #0f2c32;

    transform: translateY(-1px);
}


/* =========================================================
   CONFIRMATION POPUP
========================================================= */

.booking-confirmation {
    max-width: 560px;
}


.confirmation-icon {
    width: 65px;
    height: 65px;

    margin: 0 auto 18px;

    border-radius: 50%;

    background: #e8f3f2;

    color: #173b43;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 25px;
}


.confirmation-title {
    text-align: center;

    margin: 0;

    font-size: 21px;

    color: #173b43;
}


.confirmation-text {
    text-align: center;

    margin: 8px auto 22px;

    max-width: 430px;

    font-size: 13px;

    line-height: 1.6;

    color: #7d898e;
}


.confirmation-flight {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 12px;

    padding: 18px;

    border-radius: 12px;

    background: #f7f9f9;
}


.confirmation-flight div {
    display: flex;

    flex-direction: column;

    gap: 4px;
}


.confirmation-flight span {
    font-size: 10px;

    color: #89959a;

    text-transform: uppercase;
}


.confirmation-flight strong {
    font-size: 14px;

    color: #173b43;
}


.confirmation-warning {
    display: flex;

    align-items: center;

    gap: 10px;

    margin-top: 16px;

    padding: 13px;

    border-radius: 9px;

    background: #fff8e8;

    color: #766330;

    font-size: 12px;
}


.confirmation-warning i {
    font-size: 15px;
}


/* MOBILE */

@media (max-width: 650px) {

    .flight-modal {
        padding: 12px;
    }


    .flight-modal-body {
        padding: 20px;
    }


    .modal-price-box {
        flex-direction: column;

        align-items: flex-start;

        gap: 5px;
    }


    .modal-actions {
        padding: 16px 20px;

        flex-direction: column-reverse;

        align-items: stretch;
    }


    .modal-cancel-button,
    .modal-book-button {
        width: 100%;
    }


    .confirmation-flight {
        grid-template-columns: 1fr;
    }

}

/* =====================================================
   FLIGHT DETAILS BUTTON
===================================================== */

.flight-card-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
}

.modal-flight-details {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 11px 20px;

    background: #ffffff;
    color: #0f6b63;

    border: 1px solid #0f6b63;
    border-radius: 8px;

    font-family: "Poppins", sans-serif;
    font-size: 13px;
    font-weight: 600;

    cursor: pointer;

    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.modal-flight-details:hover {
    background: #0f6b63;
    color: #ffffff;
    border-color: #0f6b63;

    transform: translateY(-2px);

    box-shadow: 0 6px 15px rgba(15, 107, 99, 0.18);
}

.modal-flight-details:active {
    transform: translateY(0);
}

.modal-flight-details:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(15, 107, 99, 0.15);
}


/* =====================================================
   FLIGHT CARD ACTION AREA
===================================================== */

.flight-card-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.flight-details {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.detail-item {
    display: flex;
    align-items: center;
    gap: 7px;

    color: #68777d;
    font-size: 12px;
    font-weight: 500;
}

.detail-item i {
    color: #0f6b63;
    font-size: 13px;
}


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

@media (max-width: 700px) {

    .flight-card-bottom {
        flex-direction: column;
        align-items: stretch;
    }

    .flight-details {
        gap: 12px;
    }

    .flight-card-actions {
        width: 100%;
        margin-left: 0;
    }

    .modal-flight-details {
        width: 100%;
    }

}

/* =========================================================
   B&B HOTELS PAGE
========================================================= */

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #f4f7f9;
    font-family: "Poppins", sans-serif;
    color: #17252b;
}


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

.hotel-hero {

    min-height: 330px;

    background:
        linear-gradient(
            110deg,
            rgba(4, 58, 76, 0.94),
            rgba(9, 111, 139, 0.76)
        ),
        url("https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=1800&q=85");

    background-size: cover;
    background-position: center;

    display: flex;
    align-items: center;

    padding: 140px 6% 120px;

    position: relative;
}

.hotel-hero-content {

    width: 100%;
    max-width: 1300px;
    margin: auto;
    color: white;
}

.hotel-hero-label {

    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 8px 15px;

    border-radius: 30px;

    background: rgba(168, 223, 50, 0.95);

    color: #203000;

    font-size: 12px;
    font-weight: 800;

    letter-spacing: 1px;

    margin-bottom: 15px;
}

.hotel-hero h1 {

    font-family: "Playfair Display", serif;

    font-size: clamp(40px, 5vw, 62px);

    line-height: 1.05;

    margin: 0 0 12px;
}

.hotel-hero p {

    max-width: 650px;

    margin: 0;

    font-size: 16px;

    line-height: 1.7;

    color: rgba(255,255,255,0.86);
}


/* =========================================================
   SEARCH PANEL
========================================================= */

.hotel-search-wrapper {

    position: relative;

    margin-top: -78px;

    padding: 0 5% 45px;

    z-index: 5;
}

.hotel-search {

    max-width: 1300px;

    margin: auto;

    background: white;

    border-radius: 22px;

    padding: 22px;

    box-shadow:
        0 20px 55px rgba(0,0,0,0.14);

    border: 1px solid rgba(0,0,0,0.04);
}

.hotel-search-title {

    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 18px;
}

.hotel-search-title h2 {

    margin: 0;

    font-size: 20px;

    color: #143642;
}

.hotel-search-title span {

    color: #7b898f;

    font-size: 13px;
}

.hotel-search-grid {

    display: grid;

    grid-template-columns:
        1.6fr
        1fr
        1fr
        1fr
        auto;

    gap: 12px;

    align-items: stretch;
}

.hotel-input {

    min-height: 70px;

    border: 1px solid #dce5e8;

    border-radius: 13px;

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 12px 15px;

    background: #fff;

    transition: 0.25s;
}

.hotel-input:focus-within {

    border-color: #087f9d;

    box-shadow:
        0 0 0 3px rgba(8,127,157,0.09);
}

.hotel-input > i {

    width: 22px;

    text-align: center;

    color: #087f9d;

    font-size: 19px;
}

.hotel-input-content {

    display: flex;
    flex-direction: column;

    width: 100%;
}

.hotel-input label {

    text-transform: uppercase;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .5px;

    color: #7c898e;

    margin-bottom: 4px;
}

.hotel-input input,
.hotel-input select {

    border: none;

    outline: none;

    width: 100%;

    font-family: "Poppins", sans-serif;

    background: transparent;

    color: #202b30;

    font-size: 14px;

    font-weight: 600;
}

.hotel-input input::placeholder {

    color: #9da7aa;

    font-weight: 400;
}

.hotel-search-button {

    border: none;

    border-radius: 13px;

    background: #a8df32;

    color: #172400;

    padding: 0 25px;

    font-family: "Poppins", sans-serif;

    font-weight: 800;

    cursor: pointer;

    font-size: 14px;

    transition: .3s;

    min-width: 135px;
}

.hotel-search-button:hover {

    background: #94c82a;

    transform: translateY(-2px);

    box-shadow:
        0 8px 20px rgba(168,223,50,.3);
}


/* =========================================================
   RESULTS AREA
========================================================= */

.hotel-results-area {

    max-width: 1300px;

    margin: auto;

    padding: 10px 5% 90px;

    display: grid;

    grid-template-columns: 250px 1fr;

    gap: 25px;

    align-items: start;
}


/* =========================================================
   FILTERS
========================================================= */

.hotel-filters {

    background: white;

    border-radius: 18px;

    border: 1px solid #e3eaed;

    padding: 22px;

    position: sticky;

    top: 20px;
}

.filter-heading {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding-bottom: 18px;

    border-bottom: 1px solid #edf1f2;

    margin-bottom: 20px;
}

.filter-heading h3 {

    margin: 0;

    font-size: 17px;

    color: #173640;
}

.clear-filters {

    border: none;

    background: transparent;

    color: #087f9d;

    font-family: "Poppins", sans-serif;

    font-size: 11px;

    font-weight: 700;

    cursor: pointer;
}

.filter-group {

    padding-bottom: 22px;

    margin-bottom: 22px;

    border-bottom: 1px solid #edf1f2;
}

.filter-group:last-child {

    border-bottom: none;

    margin-bottom: 0;

    padding-bottom: 0;
}

.filter-group h4 {

    margin: 0 0 13px;

    color: #273b42;

    font-size: 13px;
}

.price-label {

    display: flex;

    justify-content: space-between;

    color: #68777c;

    font-size: 11px;

    margin-bottom: 10px;
}

.price-slider {

    width: 100%;

    accent-color: #087f9d;

    cursor: pointer;
}

.check-option {

    display: flex;

    align-items: center;

    gap: 9px;

    margin-bottom: 10px;

    color: #68777c;

    font-size: 12px;

    cursor: pointer;
}

.check-option input {

    accent-color: #087f9d;

    width: 15px;

    height: 15px;
}

.star-option {

    display: flex;

    align-items: center;

    gap: 7px;

    margin-bottom: 9px;

    font-size: 12px;

    color: #65747a;

    cursor: pointer;
}

.star-option input {

    accent-color: #087f9d;
}

.stars {

    color: #f4b400;

    letter-spacing: 1px;
}


/* =========================================================
   RESULTS HEADER
========================================================= */

.hotel-results {

    min-width: 0;
}

.results-top {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 18px;

    gap: 20px;
}

.results-top h2 {

    margin: 0;

    font-size: 23px;

    color: #152f38;
}

.results-top p {

    margin: 4px 0 0;

    color: #7a898e;

    font-size: 12px;
}

.sort-box {

    display: flex;

    align-items: center;

    gap: 8px;

    background: white;

    border: 1px solid #dce5e8;

    border-radius: 10px;

    padding: 9px 12px;
}

.sort-box label {

    color: #829095;

    font-size: 11px;
}

.sort-box select {

    border: none;

    outline: none;

    background: white;

    color: #263a41;

    font-family: "Poppins", sans-serif;

    font-size: 12px;

    font-weight: 600;
}


/* =========================================================
   HOTEL CARD
========================================================= */

.hotel-list {

    display: flex;

    flex-direction: column;

    gap: 18px;
}

.hotel-card {

    background: white;

    border: 1px solid #e3eaed;

    border-radius: 18px;

    overflow: hidden;

    display: grid;

    grid-template-columns: 265px 1fr;

    min-height: 220px;

    transition: .3s;

    position: relative;
}

.hotel-card:hover {

    transform: translateY(-4px);

    box-shadow:
        0 15px 35px rgba(0,0,0,0.09);

    border-color: #d5e2e6;
}

.hotel-image {

    position: relative;

    min-height: 220px;

    overflow: hidden;
}

.hotel-image img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: .5s;
}

.hotel-card:hover .hotel-image img {

    transform: scale(1.05);
}

.hotel-badge {

    position: absolute;

    top: 13px;
    left: 13px;

    background: #a8df32;

    color: #172400;

    padding: 6px 11px;

    border-radius: 20px;

    font-size: 10px;

    font-weight: 800;

    text-transform: uppercase;
}

.favorite-button {

    position: absolute;

    top: 12px;
    right: 12px;

    width: 35px;
    height: 35px;

    border-radius: 50%;

    border: none;

    background: rgba(255,255,255,.93);

    color: #52646a;

    cursor: pointer;

    font-size: 14px;

    transition: .25s;
}

.favorite-button:hover,
.favorite-button.saved {

    background: #087f9d;

    color: white;
}

.hotel-details {

    padding: 22px 23px;

    display: flex;

    flex-direction: column;
}

.hotel-top-line {

    display: flex;

    justify-content: space-between;

    align-items: flex-start;

    gap: 15px;
}

.hotel-location {

    color: #087f9d;

    font-size: 10px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: .6px;

    margin-bottom: 5px;
}

.hotel-name {

    margin: 0;

    color: #172f38;

    font-size: 21px;

    font-weight: 700;
}

.hotel-rating {

    display: flex;

    align-items: center;

    gap: 6px;

    flex-shrink: 0;
}

.rating-number {

    width: 35px;
    height: 35px;

    border-radius: 8px;

    background: #087f9d;

    color: white;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 12px;

    font-weight: 800;
}

.rating-text {

    display: flex;

    flex-direction: column;

    align-items: flex-end;

    font-size: 10px;

    color: #79888d;
}

.rating-text strong {

    color: #273c43;

    font-size: 11px;
}

.hotel-description {

    color: #78878c;

    font-size: 12px;

    line-height: 1.65;

    margin: 10px 0 14px;

    max-width: 650px;
}

.hotel-features {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-bottom: auto;
}

.feature {

    display: inline-flex;

    align-items: center;

    gap: 5px;

    background: #f3f7f8;

    border-radius: 7px;

    padding: 6px 9px;

    color: #607177;

    font-size: 10px;
}

.feature i {

    color: #087f9d;
}

.hotel-bottom {

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 15px;

    padding-top: 14px;

    margin-top: 14px;

    border-top: 1px solid #edf1f2;
}

.hotel-price span {

    display: block;

    color: #8a979b;

    font-size: 10px;

    margin-bottom: 2px;
}

.hotel-price strong {

    color: #153b47;

    font-size: 22px;
}

.hotel-price small {

    color: #89969a;

    font-size: 10px;
}


/* =========================================================
   VIEW HOTEL
========================================================= */

.view-hotel {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    border: none;

    background: #087f9d;

    color: white;

    text-decoration: none;

    padding: 11px 18px;

    border-radius: 9px;

    font-size: 11px;

    font-weight: 700;

    transition: .3s;

    cursor: pointer;
}

.view-hotel:hover {

    background: #065f77;

    transform: translateY(-2px);
}


/* =========================================================
   NO RESULTS
========================================================= */

.no-results {

    display: none;

    background: white;

    border-radius: 18px;

    border: 1px solid #e1e9ec;

    padding: 60px 25px;

    text-align: center;
}

.no-results i {

    font-size: 40px;

    color: #a8df32;

    margin-bottom: 15px;
}

.no-results h3 {

    margin: 0 0 8px;

    color: #183640;
}

.no-results p {

    margin: 0;

    color: #7d898d;

    font-size: 13px;
}


/* =========================================================
   DESTINATIONS
========================================================= */

.destinations-section {

    background: #07384b;

    padding: 80px 5%;

    color: white;
}

.destinations-container {

    max-width: 1300px;

    margin: auto;
}

.destinations-heading {

    text-align: center;

    margin-bottom: 35px;
}

.destinations-heading span {

    color: #a8df32;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 2px;
}

.destinations-heading h2 {

    font-family: "Playfair Display", serif;

    font-size: 38px;

    margin: 8px 0;
}

.destinations-heading p {

    color: rgba(255,255,255,.7);

    font-size: 13px;

    margin: 0;
}

.destination-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 18px;
}

.destination-card {

    height: 230px;

    border-radius: 16px;

    overflow: hidden;

    position: relative;

    cursor: pointer;
}

.destination-card img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: .5s;
}

.destination-card:hover img {

    transform: scale(1.08);
}

.destination-overlay {

    position: absolute;

    inset: 0;

    display: flex;

    align-items: flex-end;

    padding: 20px;

    background:
        linear-gradient(
            transparent 35%,
            rgba(0,0,0,.78)
        );
}

.destination-overlay h3 {

    margin: 0;

    font-family: "Playfair Display", serif;

    font-size: 22px;
}

.destination-overlay p {

    margin: 3px 0 0;

    color: rgba(255,255,255,.75);

    font-size: 10px;
}


/* =========================================================
   CTA
========================================================= */

.hotel-cta {

    max-width: 1300px;

    margin: 70px auto;

    padding: 55px;

    border-radius: 22px;

    background:
        linear-gradient(
            120deg,
            #0b7895,
            #07516b
        );

    color: white;

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 25px;
}

.hotel-cta h2 {

    font-family: "Playfair Display", serif;

    font-size: 36px;

    margin: 0 0 8px;
}

.hotel-cta p {

    margin: 0;

    color: rgba(255,255,255,.8);

    font-size: 13px;
}

.hotel-cta a {

    flex-shrink: 0;

    background: #a8df32;

    color: #172400;

    text-decoration: none;

    padding: 14px 23px;

    border-radius: 30px;

    font-weight: 800;

    font-size: 12px;

    transition: .3s;
}

.hotel-cta a:hover {

    background: white;

    transform: translateY(-2px);
}


/* =========================================================
   HOTEL DETAILS MODAL
========================================================= */

.hotel-modal {

    display: none;

    position: fixed;

    inset: 0;

    background: rgba(7, 32, 40, .78);

    backdrop-filter: blur(5px);

    z-index: 5000;

    padding: 30px;

    overflow-y: auto;
}

.hotel-modal.active {

    display: flex;

    align-items: center;

    justify-content: center;
}

.hotel-modal-content {

    width: 100%;

    max-width: 1000px;

    background: white;

    border-radius: 24px;

    overflow: hidden;

    box-shadow:
        0 30px 80px rgba(0,0,0,.3);

    animation: modalOpen .25s ease;
}

@keyframes modalOpen {

    from {
        opacity: 0;
        transform: translateY(20px) scale(.98);
    }

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

.hotel-modal-header {

    position: relative;

    height: 320px;

    overflow: hidden;
}

.hotel-modal-header img {

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.hotel-modal-header::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            transparent 35%,
            rgba(0,0,0,.65)
        );
}

.modal-close {

    position: absolute;

    top: 18px;
    right: 18px;

    z-index: 5;

    width: 40px;
    height: 40px;

    border: none;

    border-radius: 50%;

    background: rgba(255,255,255,.95);

    color: #173640;

    cursor: pointer;

    font-size: 16px;
}

.modal-image-info {

    position: absolute;

    z-index: 3;

    left: 30px;
    bottom: 25px;

    color: white;
}

.modal-image-info .hotel-location {

    color: #a8df32;

    font-size: 11px;
}

.modal-image-info h2 {

    margin: 5px 0 5px;

    font-family: "Playfair Display", serif;

    font-size: 34px;
}

.modal-rating {

    font-size: 12px;

    color: rgba(255,255,255,.85);
}

.hotel-modal-body {

    padding: 30px;
}

.modal-columns {

    display: grid;

    grid-template-columns: 1.5fr .8fr;

    gap: 30px;
}

.modal-section-title {

    color: #173640;

    font-size: 17px;

    margin: 0 0 12px;
}

.modal-description {

    color: #6f7f84;

    font-size: 13px;

    line-height: 1.8;

    margin: 0 0 25px;
}

.modal-facilities {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 10px;

    margin-bottom: 25px;
}

.modal-facility {

    background: #f3f7f8;

    padding: 12px;

    border-radius: 10px;

    color: #52676d;

    font-size: 12px;
}

.modal-facility i {

    color: #087f9d;

    margin-right: 7px;
}

.modal-info-box {

    background: #f4f8f9;

    border-radius: 16px;

    padding: 22px;
}

.modal-price-label {

    color: #839095;

    font-size: 11px;

    margin-bottom: 3px;
}

.modal-price {

    color: #153b47;

    font-size: 29px;

    font-weight: 800;
}

.modal-price small {

    font-size: 11px;

    color: #8a979b;

    font-weight: 400;
}

.modal-info-row {

    display: flex;

    justify-content: space-between;

    gap: 10px;

    padding: 12px 0;

    border-bottom: 1px solid #e1e9eb;

    font-size: 11px;
}

.modal-info-row:last-child {

    border-bottom: none;
}

.modal-info-row span:first-child {

    color: #849197;
}

.modal-info-row strong {

    color: #29434b;
}

.modal-book-button {

    width: 100%;

    border: none;

    background: #087f9d;

    color: white;

    padding: 14px;

    border-radius: 10px;

    font-family: "Poppins", sans-serif;

    font-size: 13px;

    font-weight: 800;

    cursor: pointer;

    margin-top: 18px;

    transition: .3s;
}

.modal-book-button:hover {

    background: #065f77;
}


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

.booking-modal {

    display: none;

    position: fixed;

    inset: 0;

    background: rgba(7, 32, 40, .78);

    backdrop-filter: blur(5px);

    z-index: 6000;

    padding: 25px;

    overflow-y: auto;
}

.booking-modal.active {

    display: flex;

    align-items: center;

    justify-content: center;
}

.booking-box {

    width: 100%;

    max-width: 700px;

    background: white;

    border-radius: 22px;

    padding: 30px;

    box-shadow:
        0 30px 80px rgba(0,0,0,.3);
}

.booking-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 25px;
}

.booking-header h2 {

    margin: 0;

    color: #173640;

    font-family: "Playfair Display", serif;

    font-size: 28px;
}

.booking-close {

    border: none;

    background: #f1f5f6;

    width: 38px;
    height: 38px;

    border-radius: 50%;

    cursor: pointer;

    color: #52646a;
}

.booking-hotel-summary {

    background: #f3f7f8;

    border-radius: 14px;

    padding: 16px;

    margin-bottom: 20px;
}

.booking-hotel-summary strong {

    color: #173640;

    display: block;

    font-size: 16px;

    margin-bottom: 3px;
}

.booking-hotel-summary span {

    color: #738288;

    font-size: 11px;
}

.booking-form-grid {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 15px;
}

.booking-field {

    display: flex;

    flex-direction: column;

    gap: 6px;
}

.booking-field.full {

    grid-column: 1 / -1;
}

.booking-field label {

    font-size: 11px;

    font-weight: 700;

    color: #52666d;
}

.booking-field input,
.booking-field select {

    width: 100%;

    border: 1px solid #dce5e8;

    border-radius: 9px;

    padding: 12px;

    outline: none;

    font-family: "Poppins", sans-serif;

    font-size: 12px;

    color: #243a41;
}

.booking-field input:focus,
.booking-field select:focus {

    border-color: #087f9d;

    box-shadow:
        0 0 0 3px rgba(8,127,157,.08);
}

.booking-total {

    margin-top: 20px;

    padding: 18px;

    background: #07384b;

    color: white;

    border-radius: 14px;

    display: flex;

    align-items: center;

    justify-content: space-between;
}

.booking-total span {

    font-size: 11px;

    color: rgba(255,255,255,.7);
}

.booking-total strong {

    font-size: 23px;

    color: #a8df32;
}

.confirm-booking-button {

    width: 100%;

    border: none;

    background: #a8df32;

    color: #172400;

    padding: 15px;

    border-radius: 10px;

    margin-top: 15px;

    font-family: "Poppins", sans-serif;

    font-weight: 800;

    cursor: pointer;

    font-size: 13px;
}

.confirm-booking-button:hover {

    background: #94c82a;
}


/* =========================================================
   CONFIRMATION
========================================================= */

.confirmation-modal {

    display: none;

    position: fixed;

    inset: 0;

    background: rgba(7, 32, 40, .78);

    backdrop-filter: blur(5px);

    z-index: 7000;

    padding: 25px;
}

.confirmation-modal.active {

    display: flex;

    align-items: center;

    justify-content: center;
}

.confirmation-box {

    width: 100%;

    max-width: 560px;

    background: white;

    border-radius: 22px;

    padding: 40px;

    text-align: center;

    box-shadow:
        0 30px 80px rgba(0,0,0,.3);
}

.confirmation-icon {

    width: 70px;
    height: 70px;

    margin: 0 auto 18px;

    border-radius: 50%;

    background: #a8df32;

    color: #173000;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 30px;
}

.confirmation-box h2 {

    margin: 0 0 8px;

    color: #173640;

    font-family: "Playfair Display", serif;

    font-size: 30px;
}

.confirmation-box p {

    color: #728186;

    font-size: 12px;

    line-height: 1.7;
}

.booking-reference {

    background: #f3f7f8;

    border-radius: 10px;

    padding: 14px;

    margin: 20px 0;

    color: #087f9d;

    font-weight: 800;

    letter-spacing: 1px;
}

.confirmation-close {

    border: none;

    background: #087f9d;

    color: white;

    padding: 13px 25px;

    border-radius: 9px;

    font-family: "Poppins", sans-serif;

    font-weight: 700;

    cursor: pointer;
}


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

@media (max-width: 1100px) {

    .hotel-search-grid {

        grid-template-columns:
            repeat(3, 1fr);
    }

    .hotel-search-button {

        min-height: 65px;
    }

    .hotel-results-area {

        grid-template-columns: 210px 1fr;
    }

    .hotel-card {

        grid-template-columns: 220px 1fr;
    }

    .destination-grid {

        grid-template-columns:
            repeat(2, 1fr);
    }
}

@media (max-width: 800px) {

    .hotel-results-area {

        grid-template-columns: 1fr;
    }

    .hotel-filters {

        position: static;
    }

    .hotel-card {

        grid-template-columns: 1fr;
    }

    .hotel-image {

        height: 240px;
    }

    .hotel-search-grid {

        grid-template-columns:
            repeat(2, 1fr);
    }

    .modal-columns {

        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {

    .hotel-hero {

        min-height: 380px;

        padding:
            70px 20px 110px;
    }

    .hotel-search-wrapper {

        padding:
            0 18px 35px;
    }

    .hotel-search {

        padding: 18px;
    }

    .hotel-search-title {

        display: block;
    }

    .hotel-search-title span {

        display: block;

        margin-top: 5px;
    }

    .hotel-search-grid {

        grid-template-columns: 1fr;
    }

    .hotel-results-area {

        padding:
            10px 18px 70px;
    }

    .results-top {

        display: block;
    }

    .sort-box {

        margin-top: 15px;

        width: fit-content;
    }

    .hotel-top-line {

        display: block;
    }

    .hotel-rating {

        margin-top: 12px;

        justify-content: flex-start;
    }

    .rating-text {

        align-items: flex-start;
    }

    .hotel-bottom {

        align-items: flex-start;

        flex-direction: column;
    }

    .hotel-cta {

        margin:
            50px 18px;

        padding: 40px 25px;

        flex-direction: column;

        text-align: center;
    }

    .destination-grid {

        grid-template-columns: 1fr;
    }

    .destinations-section {

        padding:
            65px 20px;
    }

    .hotel-modal {

        padding: 10px;
    }

    .hotel-modal-header {

        height: 250px;
    }

    .modal-image-info {

        left: 20px;
        bottom: 20px;
    }

    .modal-image-info h2 {

        font-size: 27px;
    }

    .hotel-modal-body {

        padding: 20px;
    }

    .booking-box {

        padding: 22px;
    }

    .booking-form-grid {

        grid-template-columns: 1fr;
    }

    .booking-field.full {

        grid-column: auto;
    }

    .confirmation-box {

        padding: 30px 20px;
    }
}


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

.hotel-card.hidden {

    display: none;
}

.searching {

    opacity: .45;

    pointer-events: none;
}


/* =========================================================
   B&B TRAVEL â€” MASTER RESPONSIVE OVERRIDES
   Added without changing the desktop design above.
   Breakpoints: large tablet / tablet / mobile / small mobile
========================================================= */

/* ---------- GLOBAL RESPONSIVE SAFETY ---------- */

html {
    width: 100%;
    overflow-x: hidden;
}

body {
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
}

img,
video,
iframe {
    max-width: 100%;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

section,
main,
header,
footer,
div {
    min-width: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
span {
    overflow-wrap: break-word;
}

button,
a,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent;
}


/* =========================================================
   LARGE TABLETS / SMALL LAPTOPS
========================================================= */

@media (max-width: 1200px) {

    header {
        height: 88px;
        padding: 10px 4%;
        gap: 18px;
    }

    header.sticky {
        height: 82px;
    }

    .logo img {
        width: 120px;
    }

    nav ul {
        gap: 14px;
    }

    nav ul li a {
        font-size: 13px;
    }

    .header-right {
        gap: 8px;
    }

    .login-btn,
    .register-btn {
        padding: 11px 18px;
        font-size: 13px;
    }

    .book-btn {
        min-width: auto;
        padding: 11px 18px;
        font-size: 13px;
    }

    .hero-content {
        width: min(650px, 82%);
        margin-left: 7%;
    }

    .hero-content h1 {
        font-size: clamp(50px, 6vw, 65px);
    }

    .hero-content h2 {
        font-size: clamp(28px, 3vw, 36px);
    }

    .search-container {
        width: 92%;
        padding: 24px;
    }

    .section-heading,
    .popular-heading {
        width: 92%;
    }

    .stats,
    .offer-container,
    .destination-grid,
    .package-grid,
    .flight-container,
    .hotel-grid,
    .membership-container,
    .testimonial-grid,
    .contact-info-grid,
    .contact-services-grid,
    .about-values-grid,
    .about-services-grid,
    .footer-container {
        width: 92%;
    }

    .hotel-search,
    .flight-search-box {
        width: 100%;
    }

    .flight-results-section,
    .hotel-results,
    .destinations-section,
    .offers-list,
    .holiday-collection,
    .packages-section,
    .membership-plans,
    .membership-benefits,
    .faq-section,
    .account-page {
        padding-left: 4%;
        padding-right: 4%;
    }

    .modal-columns {
        gap: 25px;
    }
}


/* =========================================================
   TABLETS
========================================================= */

@media (max-width: 992px) {

    /* HEADER */

    header {
        height: 78px;
        padding: 10px 24px;
        justify-content: space-between;
    }

    header.sticky {
        height: 74px;
    }

    nav {
        display: none;
    }

    .logo img {
        width: 125px;
    }

    .header-right {
        display: flex;
        margin-left: auto;
    }

    .mobile-menu-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 44px;
        height: 44px;
    }

    /* HEROES */

    .hero {
        min-height: 700px;
        height: auto;
        padding: 150px 0 110px;
    }

    .hero-content {
        width: min(700px, 88%);
        margin: 0 auto;
    }

    .hero-content h1 {
        font-size: clamp(46px, 7vw, 60px);
    }

    .hero-content p {
        max-width: 100%;
    }

    .contact-hero,
    .about-hero,
    .membership-hero,
    .offers-hero,
    .packages-hero {
        min-height: 520px;
        height: auto;
        padding-top: 110px;
        padding-bottom: 90px;
    }

    .contact-hero-content,
    .about-hero-content,
    .offers-hero-content,
    .packages-hero-content,
    .membership-hero-content {
        width: min(760px, 90%);
        max-width: 100%;
        margin: 0 auto;
        text-align: center;
    }

    .contact-hero-content h1,
    .about-hero-content h1,
    .offers-hero-content h1,
    .packages-hero-content h1,
    .membership-hero-content h1 {
        font-size: clamp(44px, 7vw, 58px);
    }

    /* GENERAL GRIDS */

    .stats,
    .destination-grid,
    .package-grid,
    .hotel-grid,
    .membership-container,
    .testimonial-grid,
    .contact-info-grid,
    .contact-services-grid,
    .about-values-grid,
    .about-services-grid,
    .about-stats,
    .offers-grid,
    .holiday-grid,
    .plans-container,
    .benefits-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .flight-container,
    .offer-container {
        grid-template-columns: 1fr;
    }

    /* TWO-COLUMN CONTENT */

    .contact-container,
    .about-intro-container,
    .about-why-container,
    .membership-intro-container,
    .packages-intro-container {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .contact-container,
    .about-intro-container,
    .about-why-container,
    .membership-intro-container,
    .packages-intro-container {
        width: 92%;
    }

    .about-intro-image img,
    .about-why-image img {
        height: 430px;
    }

    .contact-form-box {
        width: 100%;
    }

    /* FLIGHT RESULTS */

    .flight-results-layout {
        grid-template-columns: 210px minmax(0, 1fr);
        gap: 18px;
    }

    .flight-card-main {
        min-width: 0;
    }

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

    /* HOTEL RESULTS */

    .hotel-results-area {
        grid-template-columns: 200px minmax(0, 1fr);
        gap: 18px;
    }

    .hotel-card {
        grid-template-columns: 190px minmax(0, 1fr);
    }

    /* HOLIDAY / PACKAGE CARDS */

    .holiday-card-wide {
        grid-column: span 2;
        grid-template-columns: 1fr;
    }

    .holiday-card-wide .holiday-card-image {
        height: 280px;
    }

    .package-card,
    .plan-card,
    .member-card,
    .testimonial-card {
        padding: 32px 24px;
    }

    /* FOOTER */

    .footer-container {
        grid-template-columns: 2fr 1fr 1fr;
    }

    /* SECTION HEADINGS */

    .section-heading,
    .popular-heading {
        gap: 25px;
    }

    .section-heading h2,
    .popular-heading h2 {
        font-size: clamp(34px, 5vw, 42px);
    }
}


/* =========================================================
   TABLET / LARGE PHONE
========================================================= */

@media (max-width: 768px) {

    /* HEADER */

    header,
    header.sticky {
        height: 72px;
        padding: 9px 18px;
    }

    .logo img {
        width: 118px;
    }

    .header-right {
        display: none;
    }

    .mobile-menu-btn {
        display: inline-flex;
        width: 42px;
        height: 42px;
        font-size: 17px;
    }

    .mobile-menu {
        width: min(320px, 88vw);
        padding: 85px 24px 25px;
    }

    /* HERO */

    .hero {
        min-height: 0;
        padding: 130px 20px 95px;
        background-position: center;
    }

    .hero-content {
        width: 100%;
        margin: 0 auto;
        text-align: center;
    }

    .hero-content h1 {
        font-size: clamp(38px, 10vw, 50px);
        line-height: 1.08;
    }

    .hero-content h2 {
        margin-top: 15px;
        font-size: clamp(22px, 6vw, 28px);
    }

    .hero-content p {
        margin: 22px auto 28px;
        font-size: 14px;
        line-height: 1.75;
    }

    .hero-buttons,
    .about-cta-buttons,
    .membership-hero-buttons,
    .offers-hero-buttons,
    .packages-hero-buttons,
    .membership-cta-buttons {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .primary-btn,
    .secondary-btn,
    .about-btn,
    .packages-primary-btn,
    .packages-secondary-btn,
    .experience-btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }

    /* SEARCH */

    .search-box {
        margin-top: -45px;
    }

    .search-tabs {
        width: 100%;
        padding: 0 15px;
        gap: 6px;
    }

    .search-tab {
        flex: 1;
        justify-content: center;
        padding: 10px 12px;
        font-size: 12px;
    }

    .search-container {
        width: calc(100% - 30px);
        padding: 20px;
        border-radius: 16px;
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }

    .search-form.active {
        flex-direction: column;
        width: 100%;
    }

    .search-item {
        width: 100%;
        min-width: 0;
    }

    .search-item input {
        min-width: 0;
    }

    .search-btn {
        width: 100%;
    }

    /* GENERIC SECTION SPACING */

    .packages,
    .flights,
    .hotels,
    .membership,
    .testimonials,
    .contact-section,
    .contact-services,
    .contact-info-section,
    .about-intro,
    .about-values,
    .about-why,
    .about-services,
    .popular-destinations,
    .newsletter,
    .offers-intro,
    .packages-intro,
    .membership-intro,
    .faq-section {
        padding-top: 65px;
        padding-bottom: 65px;
    }

    .section-heading,
    .popular-heading {
        width: calc(100% - 40px);
        margin: 0 auto 30px;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .section-heading h2,
    .popular-heading h2 {
        font-size: clamp(30px, 8vw, 38px);
        line-height: 1.15;
    }

    /* ALL MAIN GRIDS */

    .stats,
    .destination-grid,
    .package-grid,
    .hotel-grid,
    .membership-container,
    .testimonial-grid,
    .contact-info-grid,
    .contact-services-grid,
    .about-values-grid,
    .about-services-grid,
    .about-stats,
    .offers-grid,
    .holiday-grid,
    .plans-container,
    .benefits-grid,
    .benefits-grid,
    .packages-benefits-grid {
        width: calc(100% - 40px);
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .flight-container,
    .offer-container {
        width: calc(100% - 40px);
        grid-template-columns: 1fr;
        gap: 20px;
    }

    /* CARDS */

    .offer-card {
        height: 300px;
    }

    .offer-content {
        padding: 25px;
    }

    .offer-content h3 {
        font-size: 26px;
    }

    .destination-card img,
    .hotel-card img {
        height: 220px;
    }

    .flight-card {
        padding: 30px 24px;
    }

    .flight-card h3 {
        font-size: 25px;
    }

    .package-card,
    .member-card,
    .testimonial-card,
    .contact-info-card,
    .contact-service-card,
    .about-value-card,
    .about-service-card,
    .plan-card {
        padding: 28px 22px;
    }

    .featured {
        transform: none;
    }

    /* ABOUT */

    .about-hero,
    .contact-hero,
    .membership-hero,
    .offers-hero,
    .packages-hero {
        min-height: 480px;
        padding: 125px 20px 80px;
    }

    .about-hero-content,
    .contact-hero-content,
    .membership-hero-content,
    .offers-hero-content,
    .packages-hero-content {
        width: 100%;
        margin: 0 auto;
        padding: 0;
    }

    .about-hero-content h1,
    .contact-hero-content h1,
    .membership-hero-content h1,
    .offers-hero-content h1,
    .packages-hero-content h1 {
        font-size: clamp(38px, 10vw, 48px);
    }

    .about-hero-content p,
    .contact-hero-content p {
        font-size: 14px;
    }

    .about-intro-container,
    .about-why-container,
    .contact-container,
    .membership-intro-container,
    .packages-intro-container {
        width: calc(100% - 40px);
        gap: 35px;
    }

    .about-intro-content h2,
    .about-why-content h2,
    .contact-text h2 {
        font-size: clamp(32px, 8vw, 40px);
    }

    .about-intro-image img,
    .about-why-image img {
        height: 330px;
    }

    .about-image-badge {
        left: 15px;
        bottom: 15px;
        padding: 15px 18px;
    }

    .about-image-badge strong {
        font-size: 28px;
    }

    /* CONTACT */

    .contact-form-box {
        padding: 28px 20px;
        border-radius: 18px;
    }

    .form-row,
    .account-form-row,
    .booking-form-grid,
    .modal-info-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .contact-submit {
        width: 100%;
        justify-content: center;
    }

    .contact-detail {
        align-items: flex-start;
    }

    /* NEWSLETTER */

    .newsletter {
        padding-left: 20px;
        padding-right: 20px;
    }

    .newsletter h2 {
        font-size: clamp(30px, 8vw, 40px);
    }

    .newsletter-box {
        width: 100%;
        flex-direction: column;
        gap: 12px;
    }

    .newsletter-box input,
    .newsletter-box button {
        width: 100%;
    }

    /* FOOTER */

    footer {
        padding: 60px 20px 25px;
    }

    .footer-container {
        width: 100%;
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
    }

    .footer-logo {
        margin-left: auto;
        margin-right: auto;
    }

    .footer-column a:hover {
        padding-left: 0;
    }

    /* POPULAR DESTINATIONS CAROUSEL */

    .destination-carousel {
        gap: 16px;
        padding: 5px 20px 20px;
    }

    .popular-destination-card {
        flex: 0 0 min(82vw, 320px);
        height: 460px;
    }

    .popular-destination-info {
        left: 22px;
        right: 20px;
        bottom: 22px;
    }

    .popular-destination-info h3 {
        font-size: 27px;
    }

    .popular-destination-info strong {
        font-size: 25px;
    }

    .carousel-btn {
        display: none;
    }

    /* FLIGHT SEARCH */

    .flight-search-area {
        padding: 30px 20px;
    }

    .flight-search-box {
        padding: 18px;
        border-radius: 18px;
    }

    .search-box-top {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }

    .trip-tabs {
        width: 100%;
    }

    .trip-tab {
        flex: 1;
        padding: 10px 8px;
    }

    .flight-fields {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .search-flight-button {
        width: 100%;
    }

    .flight-results-layout {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .flight-filters {
        position: static;
    }

    .flight-result-card {
        min-width: 0;
    }

    .flight-card-main,
    .flight-card-bottom,
    .flight-card-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .flight-card-actions button,
    .details-button,
    .modal-book-button,
    .modal-cancel-button {
        width: 100%;
    }

    /* HOTEL SEARCH / RESULTS */

    .hotel-search-wrapper {
        padding: 0 20px 35px;
    }

    .hotel-search {
        padding: 20px;
    }

    .hotel-search-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .hotel-search-button {
        width: 100%;
    }

    .hotel-results-area {
        grid-template-columns: 1fr;
        padding: 10px 20px 60px;
    }

    .hotel-filters {
        position: static;
    }

    .hotel-card {
        grid-template-columns: 1fr;
    }

    .hotel-image {
        height: 230px;
    }

    .hotel-bottom {
        flex-direction: column;
        align-items: stretch;
        gap: 15px;
    }

    .view-hotel {
        width: 100%;
        text-align: center;
    }

    .results-top,
    .hotel-top-line {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .sort-box {
        width: 100%;
    }

    .sort-select {
        width: 100%;
    }

    /* OFFERS / PACKAGES / HOLIDAYS */

    .offers-list,
    .packages-section,
    .holiday-collection {
        padding-left: 20px;
        padding-right: 20px;
    }

    .offer-page-image,
    .holiday-card-image,
    .holiday-card-wide .holiday-card-image {
        height: 230px;
    }

    .holiday-card-wide {
        grid-column: auto;
        display: block;
    }

    .package-image {
        height: 230px;
    }

    /* MODALS */

    .flight-modal,
    .hotel-modal,
    .booking-modal,
    .confirmation-modal {
        padding: 12px;
    }

    .flight-modal-content,
    .hotel-modal-content,
    .booking-box,
    .confirmation-box {
        width: 100%;
        max-width: 100%;
        border-radius: 18px;
    }

    .modal-columns {
        grid-template-columns: 1fr;
    }

    .hotel-modal-header {
        height: 230px;
    }

    .modal-image-info {
        left: 20px;
        right: 20px;
        bottom: 18px;
    }

    .modal-image-info h2 {
        font-size: 25px;
    }

    .hotel-modal-body,
    .flight-modal-body {
        padding: 20px;
    }

    .booking-box,
    .confirmation-box {
        padding: 25px 20px;
    }

    /* ACCOUNT / AUTH */

    .account-container,
    .login-container,
    .register-container {
        width: calc(100% - 40px);
        max-width: 100%;
    }

    .account-page,
    .login-page,
    .register-page {
        padding-left: 20px;
        padding-right: 20px;
    }

    .account-container {
        grid-template-columns: 1fr;
    }

    .account-sidebar {
        width: 100%;
    }

    .account-content,
    .login-card,
    .register-card {
        width: 100%;
        padding: 28px 20px;
    }

    .login-options {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .google-login,
    .google-register,
    .login-btn-main,
    .register-btn-main {
        width: 100%;
    }
}


/* =========================================================
   SMALL PHONES
========================================================= */

@media (max-width: 576px) {

    header,
    header.sticky {
        padding-left: 14px;
        padding-right: 14px;
    }

    .logo img {
        width: 105px;
    }

    .mobile-menu-btn {
        width: 40px;
        height: 40px;
    }

    .mobile-menu {
        width: 100%;
        right: -100%;
        padding-left: 22px;
        padding-right: 22px;
    }

    .hero {
        padding: 118px 16px 85px;
    }

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

    .hero-content h2 {
        font-size: 21px;
    }

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

    .search-box {
        margin-top: -30px;
    }

    .search-tabs {
        padding: 0 10px;
    }

    .search-tab {
        padding: 9px 8px;
        font-size: 11px;
        gap: 5px;
    }

    .search-tab i {
        font-size: 12px;
    }

    .search-container {
        width: calc(100% - 20px);
        padding: 16px;
    }

    .section-heading,
    .popular-heading {
        width: calc(100% - 32px);
    }

    .stats,
    .destination-grid,
    .package-grid,
    .hotel-grid,
    .membership-container,
    .testimonial-grid,
    .contact-info-grid,
    .contact-services-grid,
    .about-values-grid,
    .about-services-grid,
    .about-stats,
    .offers-grid,
    .holiday-grid,
    .plans-container,
    .benefits-grid,
    .flight-container,
    .offer-container {
        width: calc(100% - 32px);
    }

    .offer-card {
        height: 275px;
    }

    .offer-content {
        padding: 20px;
    }

    .offer-content h3 {
        font-size: 23px;
    }

    .offer-btn {
        padding: 12px 20px;
    }

    .destination-card img,
    .hotel-card img {
        height: 200px;
    }

    .destination-info,
    .hotel-info {
        padding: 20px;
    }

    .destination-info h3,
    .hotel-info h3 {
        font-size: 21px;
    }

    .flight-card {
        padding: 25px 20px;
    }

    .flight-card i,
    .package-card i {
        font-size: 42px;
    }

    .package-card h3,
    .member-card h3 {
        font-size: 22px;
    }

    .member-card h1 {
        font-size: 38px;
    }

    .testimonial-card {
        padding: 25px 20px;
    }

    .contact-hero,
    .about-hero,
    .membership-hero,
    .offers-hero,
    .packages-hero {
        min-height: 430px;
        padding: 115px 16px 70px;
    }

    .contact-hero-content h1,
    .about-hero-content h1,
    .membership-hero-content h1,
    .offers-hero-content h1,
    .packages-hero-content h1 {
        font-size: 36px;
    }

    .about-intro-container,
    .about-why-container,
    .contact-container,
    .membership-intro-container,
    .packages-intro-container {
        width: calc(100% - 32px);
    }

    .about-intro-image img,
    .about-why-image img {
        height: 270px;
        border-radius: 18px;
    }

    .about-image-badge {
        padding: 12px 14px;
        gap: 10px;
    }

    .about-image-badge strong {
        font-size: 23px;
    }

    .about-image-badge span {
        font-size: 11px;
    }

    .contact-form-box {
        padding: 22px 16px;
    }

    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 13px;
    }

    .newsletter {
        padding: 65px 16px;
    }

    footer {
        padding-left: 16px;
        padding-right: 16px;
    }

    .footer-logo {
        width: 145px;
    }

    .popular-destination-card {
        flex-basis: 82vw;
        height: 420px;
    }

    .destination-carousel {
        padding-left: 16px;
        padding-right: 16px;
    }

    .flight-search-area {
        padding-left: 12px;
        padding-right: 12px;
    }

    .flight-search-box {
        padding: 15px;
    }

    .trip-tabs {
        flex-direction: column;
    }

    .trip-tab {
        width: 100%;
    }

    .flight-results-section,
    .hotel-results,
    .destinations-section,
    .offers-list,
    .holiday-collection,
    .packages-section,
    .membership-plans,
    .membership-benefits,
    .faq-section,
    .account-page {
        padding-left: 16px;
        padding-right: 16px;
    }

    .hotel-search-wrapper {
        padding-left: 12px;
        padding-right: 12px;
    }

    .hotel-results-area {
        padding-left: 12px;
        padding-right: 12px;
    }

    .hotel-search {
        padding: 16px;
    }

    .hotel-image {
        height: 200px;
    }

    .hotel-cta {
        margin-left: 12px;
        margin-right: 12px;
        padding: 32px 18px;
    }

    .offer-page-image,
    .holiday-card-image,
    .holiday-card-wide .holiday-card-image,
    .package-image {
        height: 205px;
    }

    .hotel-modal-header {
        height: 205px;
    }

    .modal-image-info h2 {
        font-size: 22px;
    }

    .booking-box,
    .confirmation-box {
        padding: 22px 16px;
    }

    .confirmation-box h2 {
        font-size: 25px;
    }

    .account-container,
    .login-container,
    .register-container {
        width: calc(100% - 32px);
    }
}


/* =========================================================
   VERY SMALL PHONES
========================================================= */

@media (max-width: 400px) {

    .logo img {
        width: 95px;
    }

    .mobile-menu-btn {
        width: 38px;
        height: 38px;
    }

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

    .hero-content h2 {
        font-size: 19px;
    }

    .search-tab {
        font-size: 10px;
        padding-left: 5px;
        padding-right: 5px;
    }

    .search-container {
        padding: 14px;
    }

    .section-heading h2,
    .popular-heading h2 {
        font-size: 29px;
    }

    .contact-hero-content h1,
    .about-hero-content h1,
    .membership-hero-content h1,
    .offers-hero-content h1,
    .packages-hero-content h1 {
        font-size: 32px;
    }

    .popular-destination-card {
        flex-basis: 86vw;
        height: 390px;
    }

    .contact-detail {
        gap: 12px;
    }

    .contact-detail > i {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
    }

    .hotel-search-title {
        font-size: 18px;
    }

    .confirmation-icon {
        width: 60px;
        height: 60px;
        font-size: 25px;
    }
}

/* =========================================================
   HEADER ONLY — MOBILE / TABLET FIX
   ========================================================= */

/* Mobile button hidden on desktop */
.mobile-menu-btn {
    display: none;
}


/* Mobile menu */
.mobile-menu {
    display: none;

    position: fixed;

    top: 0;
    right: 0;

    width: 340px;
    max-width: 85vw;
    height: 100vh;

    background: #ffffff;

    padding: 90px 30px 30px;

    z-index: 99999;

    flex-direction: column;

    box-shadow: -8px 0 30px rgba(0, 0, 0, 0.18);

    overflow-y: auto;
}


/* Close button */

.mobile-menu-close {
    position: absolute;

    top: 22px;
    right: 22px;

    width: 42px;
    height: 42px;

    border: none;
    background: transparent;

    font-size: 25px;

    color: #123f4b;

    cursor: pointer;
}


/* Mobile links */

.mobile-menu > a {
    display: block;

    padding: 17px 5px;

    border-bottom: 1px solid #e5e5e5;

    color: #123f4b;

    text-decoration: none;

    font-family: "Poppins", sans-serif;

    font-size: 17px;
    font-weight: 600;
}


/* Login / Register */

.mobile-menu-actions {
    display: flex;

    flex-direction: column;

    gap: 12px;

    margin-top: 30px;
}

.mobile-menu-actions a {
    display: block;

    width: 100%;

    padding: 13px 20px;

    text-align: center;

    border-radius: 30px;

    text-decoration: none;

    font-family: "Poppins", sans-serif;

    font-weight: 600;

    box-sizing: border-box;
}

.mobile-login-btn {
    color: #0b6074;

    border: 1px solid #0b6074;
}

.mobile-register-btn {
    color: #ffffff;

    background: #0b6074;

    border: 1px solid #0b6074;
}


/* =========================================================
   TABLET + PHONE
   ========================================================= */

@media (max-width: 992px) {

    /* Hide desktop navigation */
    header nav {
        display: none !important;
    }

    /* Header */
    header {
        display: flex;

        align-items: center;

        justify-content: space-between;

        height: 78px;

        padding: 10px 24px;

        box-sizing: border-box;
    }

    /* Logo */
    .logo {
        flex-shrink: 0;
    }

    .logo img {
        width: 125px;
        height: auto;
    }

    /* Right side */
    .header-right {
        display: flex !important;

        align-items: center;

        margin-left: auto;
    }

    /* Hide desktop login/register/book buttons */
    .logged-out-actions,
    .book-btn,
    .account-menu {
        display: none !important;
    }

    /* SHOW HAMBURGER */
    .mobile-menu-btn {
        display: flex !important;

        align-items: center;
        justify-content: center;

        width: 44px;
        height: 44px;

        padding: 0;

        border: none;

        background: transparent;

        color: #123f4b;

        font-size: 25px;

        cursor: pointer;

        flex-shrink: 0;

        position: relative;

        z-index: 100000;
    }

    /* Menu open */
    .mobile-menu.open {
        display: flex;
    }

}


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

@media (max-width: 576px) {

    header {
        height: 76px;

        padding-left: 14px;
        padding-right: 14px;
    }

    .logo img {
        width: 105px;
    }

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

        font-size: 23px;
    }

    .mobile-menu {
        width: 100%;
        max-width: 100%;

        padding-left: 22px;
        padding-right: 22px;
    }

}

/* =====================================================
   MOBILE MENU FINAL FIX
   ===================================================== */

@media screen and (max-width: 992px) {

    .mobile-menu {
        display: flex !important;

        position: fixed !important;

        top: 0 !important;
        right: -100% !important;

        width: 320px !important;
        max-width: 85vw !important;

        height: 100vh !important;

        background: #ffffff !important;

        z-index: 999999 !important;

        flex-direction: column !important;

        padding: 90px 25px 30px !important;

        box-sizing: border-box !important;

        overflow-y: auto !important;

        transition: right 0.3s ease !important;
    }


    .mobile-menu.active {
        right: 0 !important;
    }


    .mobile-menu > a {
        display: block !important;

        padding: 16px 5px !important;

        color: #123f4b !important;

        text-decoration: none !important;

        font-size: 17px !important;

        font-weight: 600 !important;

        border-bottom: 1px solid #eeeeee !important;
    }


    .mobile-close {
        position: absolute !important;

        top: 20px !important;
        right: 20px !important;

        width: 40px !important;
        height: 40px !important;

        border: none !important;

        background: transparent !important;

        color: #123f4b !important;

        font-size: 25px !important;

        cursor: pointer !important;
    }


    .mobile-menu-buttons {
        display: flex !important;

        flex-direction: column !important;

        gap: 12px !important;

        margin-top: 25px !important;
    }


    .mobile-menu-buttons a {
        display: block !important;

        padding: 13px !important;

        text-align: center !important;

        border-radius: 30px !important;

        text-decoration: none !important;

        background: #0b6074 !important;

        color: white !important;
    }

}

