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


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


html{
    scroll-behavior:smooth;
}


body{

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

    color:#222;

    line-height:1.6;

}



h1,
h2,
h3{

    font-family:'Playfair Display',serif;

}


img{

    max-width:100%;

    height:auto;

}



.container{

    width:90%;

    max-width:1200px;

    margin:0 auto;

}



a{

    text-decoration:none;

}



button{

    cursor:pointer;

}

/* =========================
   TOP CONTACT BAR
========================= */


.top-bar {

    background:#111;

    height:38px;

    display:flex;

    align-items:center;

    color:#fff;

    font-size:13px;

}



.top-bar-wrapper {

    display:flex;

    align-items:center;

    justify-content:space-between;

}

.top-address i,
.top-phone i {

    font-size:14px;
    color:#ffffff;

}

.top-address,
.top-phone {

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

}



.top-bar a {

    color:#fff;

    text-decoration:none;

}



.top-bar a:hover {

    color:#c8202f;

}



/* Mobile */

@media(max-width:768px){

    .top-bar{

        display:none;

    }

}

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

.site-header {

    position:fixed;
    top:38px;
    left:0;
    width:100%;
    height:85px;
    display:flex;
    align-items:center;
    z-index:9999;
    padding:0;
    background:rgb(0 0 0 / 56%);
    transition:.4s ease;
}


.site-header.scrolled {

    height:80px;
    background:#ffffff;
    box-shadow:0 5px 20px rgba(0,0,0,.15);

}

.header-wrapper{

    width:90%;
    max-width:1200px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:100%;

}

.header-logo{

    display:flex;
    align-items:center;

}

.header-logo img {
    width:125px;
    height:auto;
    display:block;
}

.site-header.scrolled .header-logo img {
    width:100px;
}

@media(max-width:768px){



    .site-header{

        top:0;
        background: rgb(0 0 0 / 29%);
        height:82px;

    }

    .header-logo img {
        width:100px;
    }

}


/* Navigation */

.main-navigation {

    position:relative;

    display:block;

    background:transparent;

    padding:0;

    width:auto;

}

.main-navigation ul{
    display:flex;
    align-items:center;
    gap:32px;
    list-style: none;
}



.main-navigation a{


    color:#ffffff;
    font-size:14px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.5px;
    transition:.3s;


}



.site-header.scrolled 
.main-navigation a{

    color:#222;

}



.main-navigation a:hover{

    color:#b51f2a;

}

@media(max-width:1100px){

.main-navigation.active{

    display:block;

}

}



/* Book Now Button */


.book-now-btn {
    background:#b51f2a;
    color:#ffffff;
    padding:14px 32px;
    border-radius:30px;
    font-size:14px;
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
    box-shadow:0 8px 20px rgba(181,31,42,.25);
    transition:.3s;
}

.book-now-btn:hover,
.book-now-btn:focus{
    background:#8d1721;
    color:#fff;
}

.site-header.scrolled {

    background:#ffffff;
    backdrop-filter:blur(10px);
    top: 0;

}

.main-navigation a.active {

    color:#b51f2a;

}


.header-book{

    display:flex;

    align-items:center;

}


.book-now-btn{

    display:flex;

    align-items:center;

    justify-content:center;

    height:44px;

    padding:0 30px;

}

/* Accessibility Focus */


a:focus,
button:focus{


    outline:3px solid #000;

    outline-offset:3px;


}





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

.mobile-menu-btn {

    display:none;

    background:transparent;

    border:0;

    cursor:pointer;

    position:relative;

    z-index:10001;

    outline:none;

}


.mobile-menu-btn span {

    display:block;

    width:30px;

    height:3px;

    background:#ffffff;

    margin:6px 0;

    transition:.3s;

}


.site-header.scrolled .mobile-menu-btn span {

    background:#222;

}

.mobile-menu-btn.open span:nth-child(1){

transform:rotate(45deg) translate(6px,6px);

}


.mobile-menu-btn.open span:nth-child(2){

opacity:0;

}


.mobile-menu-btn.open span:nth-child(3){

transform:rotate(-45deg) translate(6px,-6px);

}


@media(max-width:1100px){


    .mobile-menu-btn{

        display:block;

    }


    .main-navigation{

        position:absolute;

        top:80px;

        left:0;

        width:100%;

        background:rgba(0,0,0,0.95);

        padding:30px;

        display:none;

    }



    .main-navigation.active{

        display:block;

    }



    .main-navigation ul{
    flex-direction:column;
    align-items:flex-start;
    gap:25px;;
    list-style:none;
    }

    .main-navigation li{
    width:100%;
    }



    .main-navigation a{

        color:#fff !important;

        display:block;

        padding:8px 0;

        font-size:16px;

    }



}

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


.hero-slider{

    background: #000;

    position:relative;

    height:100vh;

    min-height:650px;

    overflow:hidden;

}



.hero-slide{

    position:absolute;

    inset:0;

    opacity:0;

    transition:opacity 1s ease;

}



.hero-slide.active{

    opacity:1;

}



.hero-slide img{

    width:100%;

    height:100%;

    object-fit:cover;

}




/* Dark Overlay */


.hero-slide::after{

    content:"";

    position:absolute;

    inset:0;

    background:
    linear-gradient(
    90deg,
    rgba(0,0,0,.65),
    rgba(0,0,0,.25)
    );

}

.hero-overlay{

    position:absolute;

    inset:0;

    display:flex;

    align-items:center;

}

.hero-overlay .container{

    width:90%;

    max-width:1200px;

    margin:0 auto;

}


.hero-content {

    position: relative;

    z-index:3;

    width:100%;

    max-width:650px;

    padding-top:0px;

}

.hero-content h1,
.hero-content h2 {

    color:#fff;

    font-size:56px;

    line-height:1.15;

    font-weight:700;

    max-width:650px;

    margin-bottom:25px;

}

.hero-subtitle{

    display:block;

    color:#ffffff;

    font-size:15px;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:3px;

    margin-bottom:18px;

    position:relative;

    padding-left:45px;

}

.hero-subtitle::before{

    content:"";

    position:absolute;

    left:0;

    top:50%;

    width:30px;

    height:2px;

    background:#dc3e4a;

    transform:translateY(-50%);

}

@media(max-width:768px){

.hero-subtitle{

    font-size:12px;

    letter-spacing:2px;

}

}


.hero-content p {

    color:#fff;

    font-size:18px;

    line-height:1.6;

    max-width:560px;

    margin-bottom:35px;

}


.hero-btn{

    display:inline-block;

    background:#b51f2a;

    color:#fff;

    padding:15px 35px;

    border-radius:30px;

    font-weight:700;

    text-transform:uppercase;

}




/* Arrows */


.hero-prev,
.hero-next{


    position:absolute;

    top:50%;

    transform:translateY(-50%);

    z-index:5;


    width:50px;

    height:50px;

    border-radius:50%;


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

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

    color:#fff;

    font-size:25px;


}



.hero-prev {
    left:25px;
}

.hero-next {
    right:25px;
}



.hero-prev:hover,
.hero-next:hover{

    background:#b51f2a;

}



/* Dots */


.hero-dots{


    position:absolute;

    bottom:35px;

    left:50%;

    transform:translateX(-50%);

    display:flex;

    gap:10px;

    z-index:5;


}



.dot{

    width:12px;

    height:12px;

    border-radius:50%;

    border:0;

    background:#ffffff;

    opacity:.5;

}



.dot.active{

    opacity:1;

    background:#b51f2a;

}




@media(max-width:768px){

.book-now-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 14px;
}


.hero-content {

    left:0%;

    width:88%;

}


.hero-content h1,
.hero-content h2 {

    font-size:34px;

}


.hero-content p {

    font-size:15px;

}


}

@media(max-width:1100px){

    .hero-prev, .hero-next {
    position: absolute;
    top: 83%;
    transform: translateY(-50%);
    z-index: 5;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .6);
    background: rgba(0, 0, 0, .3);
    color: #fff;
    font-size: 25px;
}
}

/* =========================
CREATIVE ABOUT SECTION
========================= */


.about-section{

    padding:60px 0;

    background:#faf8f6;

}



.about-creative-wrapper{

    display:flex;

    align-items:center;

    gap:80px;

}




.about-visual{

    width:50%;

    position:relative;

    padding-bottom:50px;

}



.about-main-image img{

    width:100%;

    height:763px;

    object-fit:cover;

}



.about-small-image{

    position:absolute;

    right:-40px;

    bottom:0;

    width:230px;

    padding:12px;

    background:#fff;

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

}



.about-small-image img{

    height:180px;

    width:100%;

    object-fit:cover;

}





.about-badge{

    position:absolute;

    left:-30px;

    top:60px;

    background:#b51f2a;

    color:white;

    padding:25px;

    display:flex;

    flex-direction:column;

    text-align:center;

}



.about-badge strong{

    font-size:30px;

}





.about-details{

    width:50%;

}



.about-eyebrow{

    color:#b51f2a;

    text-transform:uppercase;

    letter-spacing:3px;

    font-size:13px;

    font-weight:700;

}




.about-details h2{

    font-size:48px;

    line-height:1.15;

    margin:20px 0;

}



.about-details p{

    color:#555;

    font-size:17px;

    line-height:1.8;
    text-align: justify;

}



.about-more-content[hidden]{

    display:none;

}



.about-more-content p{

    margin-top:16px;

}



.about-toggle-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    margin-top:16px;

    padding:10px 22px;

    border:2px solid #b51f2a;

    border-radius:30px;

    color:#ffffff;

    background:#b51f2a;

    font-family:inherit;

    font-size:15px;

    font-weight:700;

    line-height:1.4;

    cursor:pointer;

    transition:background-color .3s ease,
               color .3s ease,
               transform .3s ease;

}



.about-toggle-btn:hover{

    color:#b51f2a;

    background:#ffffff;

    transform:translateY(-2px);

}



.about-toggle-btn:focus-visible{

    outline:3px solid #075494;

    outline-offset:3px;

}


.about-btn {
    background: #b51f2a;
    color: #fff;
    padding: 11px 18px;
    border-radius: 30px;
    display: inline-flex;
    font-weight: 600;
}


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

.about-points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 30px 0;
    padding: 0;
    list-style: none;
    width: 559px;
}

.about-point {
    position: relative;
    display: flex;
    min-height: 105px;
    align-items: center;
    gap: 15px;
    overflow: hidden;
    padding: 18px;
    border: 1px solid #e4e4e4;
    border-radius: 14px;
    background-color: #ffffff;
    box-shadow: 0 10px 30px rgba(28, 42, 68, 0.07);
    transition:
        border-color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease;
}

/* First Item Full Width */

.about-point-featured {
    grid-column: 1 / -1;
    min-height: 92px;
    background:
        linear-gradient(
            110deg,
            rgba(181, 31, 42, 0.08),
            rgba(255, 255, 255, 1) 55%
        );
}

/* Red Decorative Line */

.about-point::before {
    position: absolute;
    top: 18px;
    bottom: 18px;
    left: 0;
    width: 4px;
    border-radius: 0 5px 5px 0;
    background-color: #b51f2a;
    content: "";
}

/* Icon */

.about-point-icon {
    display: inline-flex;
    width: 52px;
    min-width: 52px;
    height: 52px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #ffffff;
    background-color: #b51f2a;
    box-shadow: 0 8px 20px rgba(181, 31, 42, 0.22);
    font-size: 20px;
    line-height: 1;
}

/* Text */

.about-point strong {
    color: #1c2a44;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
}

/* Hover */

.about-point:hover {
    border-color: rgba(181, 31, 42, 0.35);
    box-shadow: 0 14px 35px rgba(28, 42, 68, 0.12);
    transform: translateY(-4px);
}

/* Tablet and Mobile */

@media (max-width: 600px) {
    .about-points {
        grid-template-columns: 1fr;
        gap: 12px;
        margin: 25px 0;
        width: 100%;
    }

    .about-point-featured {
        grid-column: auto;
    }

    .about-point {
        min-height: 82px;
        padding: 15px 16px;
    }

    .about-point-icon {
        width: 46px;
        min-width: 46px;
        height: 46px;
        font-size: 18px;
    }

    .about-point strong {
        font-size: 14px;
    }
}

/* Reduced Motion */

@media (prefers-reduced-motion: reduce) {
    .about-point {
        transition: none;
    }

    .about-point:hover {
        transform: none;
    }
}

/* =========================
CREATIVE ABOUT SECTION
RESPONSIVE
========================= */


@media(max-width:1100px){


.about-creative-wrapper{

    gap:40px;

}



.about-details h2{

    font-size:40px;

}



.about-main-image img{

    height:480px;

}



.about-small-image{

    right:-20px;

    width:200px;

}



.about-small-image img{

    height:150px;

}



.about-badge{

    left:-15px;

    top:40px;

    padding:20px;

}



.about-badge strong{

    font-size:26px;

}


}






@media(max-width:900px){


.about-section{

    padding:90px 0;

}





.about-creative-wrapper{

    flex-direction:column;

    gap:50px;

}





.about-visual,
.about-details{

    width:100%;

}





.about-visual{

    padding-bottom:40px;

}





.about-main-image img{

    height:500px;

}





.about-small-image{

    right:20px;

    bottom:0;

    width:220px;

}





.about-details h2{

    font-size:36px;

    line-height:1.2;

}





.about-details p{

    font-size:16px;

}


}







@media(max-width:600px){


.about-section{

    padding:70px 0;

}





.about-creative-wrapper{

    gap:35px;

}





.about-main-image img{

    height:320px;

}





.about-small-image{

    width:150px;

    padding:8px;

    right:10px;

}





.about-small-image img{

    height:110px;

}





.about-badge{

    left:10px;

    top:20px;

    padding:15px;

}





.about-badge strong{

    font-size:22px;

}





.about-eyebrow{

    font-size:12px;

    letter-spacing:2px;

}





.about-details h2{

    font-size:30px;

    margin:15px 0;

}





.about-details p{

    font-size:15px;

    line-height:1.7;

}





.about-btn{

    padding:13px 30px;

}


}

/* =========================
AMENITIES SECTION
========================= */


.amenities-section{

    padding:60px 0;

    background:#fff;

}



.section-heading{

    text-align:center;

    max-width:750px;

    margin:0 auto 60px;

}



.section-heading span{

    color:#b51f2a;

    text-transform:uppercase;

    letter-spacing:3px;

    font-size:14px;

    font-weight:700;

}



.section-heading h2{

    font-size:44px;

    line-height:1.2;

    margin:15px 0 20px;

}



.section-heading p{

    color:#555;

    font-size:17px;

}





.amenities-grid{

    display:grid;

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

    gap:30px;

}


/* =========================
   PREMIUM AMENITY CARD
========================= */


.amenity-card{

    position:relative;

    background:#ffffff;

    padding:45px 30px 35px;

    text-align:center;

    border-radius:8px;

    overflow:hidden;

    border:1px solid #eeeeee;

    transition:.35s ease;

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

}



/* Top Graphic Accent */

.amenity-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:5px;

    background:#b51f2a;

}

.amenity-icon::before{

    content:"";

    position:absolute;

    inset:-8px;

    border:1px solid rgba(181,31,42,.25);

    border-radius:50%;

}



/* Background Decorative Circle */

.amenity-card::after{

    content:"";

    position:absolute;

    width:120px;

    height:120px;

    right:-45px;

    bottom:-45px;

    border-radius:50%;

    background:rgba(181,31,42,.06);

}





.amenity-card:hover{

    transform:translateY(-12px);

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

}




/* Icon Graphic */


.amenity-icon{

    position:relative;

    z-index:2;

    width:80px;

    height:80px;

    margin:0 auto 25px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#b51f2a;

    color:#fff;

    border-radius:50%;

    font-size:30px;

    box-shadow:

    0 10px 25px rgba(181,31,42,.35);

    transition:.35s ease;

}





.amenity-card:hover .amenity-icon{

    transform:rotateY(180deg);

}





.amenity-card h3{

    position:relative;

    z-index:2;

    font-size:24px;

    color:#222;

    margin-bottom:15px;

}





.amenity-card p{

    position:relative;

    z-index:2;

    color:#666;

    font-size:15px;

    line-height:1.7;

}

/* =========================
AMENITIES SECTION RESPONSIVE
========================= */


@media(max-width:1100px){


.amenities-section{

    padding:90px 0;

}



.section-heading h2{

    font-size:38px;

}





.amenities-grid{

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

    gap:25px;

}





.amenity-card{

    padding:40px 25px 30px;

}





.amenity-icon{

    width:75px;

    height:75px;

    font-size:28px;

}



}





@media(max-width:900px){


.section-heading{

    margin-bottom:45px;

}





.section-heading h2{

    font-size:34px;

}





.section-heading p{

    font-size:16px;

}





.amenities-grid{

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

}



.amenity-card h3{

    font-size:22px;

}



}





@media(max-width:600px){


.amenities-section{

    padding:70px 0;

}





.section-heading{

    padding:0 10px;

    margin-bottom:35px;

}





.section-heading span{

    font-size:12px;

    letter-spacing:2px;

}





.section-heading h2{

    font-size:30px;

    line-height:1.25;

    margin:12px 0 15px;

}





.section-heading p{

    font-size:15px;

    line-height:1.7;

}





.amenities-grid{

    grid-template-columns:1fr;

    gap:20px;

}





.amenity-card{

    padding:35px 22px 30px;

}





.amenity-icon{

    width:70px;

    height:70px;

    font-size:25px;

    margin-bottom:22px;

}





.amenity-icon::before{

    inset:-7px;

}





.amenity-card h3{

    font-size:21px;

    margin-bottom:12px;

}





.amenity-card p{

    font-size:15px;

    line-height:1.6;

}





/* Disable hover lift on mobile */

.amenity-card:hover{

    transform:none;

}



}

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


.experience-section{

    position:relative;

    min-height:750px;

    display:flex;

    align-items:center;

    background:url("../images/exterior.webp") #000;

    background-size:cover;

    background-position:center;

    background-attachment:fixed;

    color:#fff;

}



.experience-overlay{

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        90deg,
        rgba(0,0,0,.75),
        rgba(0,0,0,.45)
    );

}





.experience-section .container{

    position:relative;

    z-index:2;

}





.experience-content{

    max-width:1000px;

}





.experience-badge{

    display:inline-flex;

    padding:12px 28px;

    border-radius:30px;

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

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

    color:#d9b52c;

    font-size:14px;

    letter-spacing:3px;

    font-weight:700;

    margin-bottom:35px;

}





.experience-content h2{

    max-width:850px;

    font-size:58px;

    line-height:1.15;

    font-family:'Playfair Display',serif;

    color:#fff;

    margin-bottom:30px;

}

.experience-content > p{

    max-width:850px;

    font-size:18px;

    line-height:1.8;

    color:#f5f5f5;

    margin-bottom:45px;

}

/* Cards */


.experience-cards{

    display:flex;

    gap:25px;

    margin-bottom:45px;

}

.experience-card{

    flex:1;

    padding:30px 25px;

    border-radius:18px;

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

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

    backdrop-filter:blur(8px);

}

.experience-card h3{

    color:#d9b52c;

    font-size:22px;

    margin-bottom:15px;

}

.experience-card p{

    color:#fff;

    line-height:1.6;

}

/* Buttons */


.experience-buttons{

    display:flex;

    gap:20px;

}

.experience-primary-btn{

    background:#d9b52c;

    color:#111;

    padding:16px 35px;

    border-radius:40px;

    font-weight:700;

}

.experience-outline-btn{

    color:#fff;

    border:2px solid #fff;

    padding:14px 35px;

    border-radius:40px;

    font-weight:700;

}

@media(max-width:900px){


.experience-section{

    min-height:auto;

    padding:90px 0;

    background-attachment:scroll;

}



.experience-content h2{

    font-size:38px;

}



.experience-cards{

    flex-direction:column;

}



.experience-buttons{

    flex-direction:column;

}


}

/* =========================
   ATTRACTIONS SECTION
========================= */


.attractions-section{

    padding:60px 0;

    background:#faf8f6;

}



.attractions-slider-wrapper{

    position:relative;

    width:100%;

}




/* Slider Window */

.attractions-scroll{

    width:100%;

    overflow:hidden;

    position:relative;

}





/* Moving Track */

.attractions-track{

    display:flex;

    gap:30px;

    transition:transform .6s ease;

    will-change:transform;

}





/* Attraction Card */


.attraction-card{

    flex:0 0 calc((100% - 60px) / 3);

    height:450px;

    position:relative;

    overflow:hidden;

    border-radius:15px;

    background:#111;

}





.attraction-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.6s ease;

}





.attraction-card:hover img{

    transform:scale(1.1);

}





/* Dark Overlay */

.attraction-card::after{

    content:"";

    position:absolute;

    inset:0;

    background:

    linear-gradient(
        transparent,
        rgba(0,0,0,.85)
    );

}





/* Content */


.attraction-content{

    position:absolute;

    left:30px;

    right:30px;

    bottom:30px;

    z-index:2;

    color:#ffffff;

}





.attraction-content h3{

    color:#ffffff;

    font-size:28px;

    line-height:1.2;

    margin-bottom:15px;

}





.attraction-content p{

    color:#eeeeee;

    font-size:16px;

    line-height:1.7;

    margin:0;

}






/* =========================
   PREV NEXT BUTTONS
========================= */


.attraction-prev,
.attraction-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:55px;

    height:55px;

    border-radius:50%;

    border:none;

    background:#b51f2a;

    color:#ffffff;

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    z-index:10;

    font-size:18px;

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

    transition:.3s ease;

}





.attraction-prev:hover,
.attraction-next:hover{

    background:#8d1721;

}





.attraction-prev{

    left:-28px;

}





.attraction-next{

    right:-28px;

}

/* =========================
ATTRACTIONS SECTION RESPONSIVE
========================= */


/* =========================
MOBILE ATTRACTIONS FIX
========================= */

@media(max-width:600px){


.attractions-slider-wrapper{

    width:100%;

    overflow:hidden;

}



.attractions-scroll{

    width:100%;

    overflow:hidden;

}





.attractions-track{

    display:flex;

    gap:0;

    width:100%;

}





.attraction-card{

    flex:0 0 100% !important;

    width:100% !important;

    max-width:100% !important;

    height:380px;

}





.attraction-content{

    left:20px;

    right:20px;

}





/* Buttons center left-right */

.attraction-prev,
.attraction-next{

    top:50%;

    transform:translateY(-50%);

    width:45px;

    height:45px;

}





.attraction-prev{

    left:12px;

}



.attraction-next{

    right:12px;

}


}


/* =========================
TABLET LANDSCAPE
========================= */

@media(max-width:1100px){


.attractions-section{

    padding:90px 0;

}



.attractions-track{

    gap:25px;

}





.attraction-card{

    flex:0 0 calc((100% - 25px) / 2);

    height:430px;

}





.attraction-content{

    left:25px;

    right:25px;

    bottom:25px;

}





.attraction-content h3{

    font-size:25px;

}





.attraction-content p{

    font-size:15px;

}


}





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


@media(max-width:900px){


.attractions-section{

    padding:80px 0;

}





.attractions-scroll{

    width:100%;

    overflow:hidden;

}





.attractions-track{

    gap:0;

}





.attraction-card{

    flex:0 0 100%;

    width:100%;

    height:420px;

}





.attraction-content{

    left:25px;

    right:25px;

    bottom:25px;

}





.attraction-content h3{

    font-size:24px;

}



}





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


@media(max-width:600px){


.attractions-section{

    padding:70px 0;

}





.attractions-track{

    gap:0;

}





.attraction-card{

    flex:0 0 100%;

    height:380px;

    border-radius:0;

}





.attraction-card img{

    height:100%;

}





.attraction-content{

    left:20px;

    right:20px;

    bottom:22px;

}





.attraction-content h3{

    font-size:22px;

    margin-bottom:10px;

}





.attraction-content p{

    font-size:14px;

    line-height:1.6;

}





/* PREVIOUS NEXT BUTTON */


.attraction-prev,
.attraction-next{

    position:absolute;

    top:50%;

    bottom:auto;

    transform:translateY(-50%);

    width:45px;

    height:45px;

    z-index:20;

}


.attraction-prev{

    left:15px;

}


.attraction-next{

    right:15px;

}



}


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


@media(max-width:400px){


.attraction-card{

    height:350px;

}


.attraction-content h3{

    font-size:20px;

}

.attraction-content p{

    font-size:13px;

}

.attraction-prev,
.attraction-next{

    width:40px;

    height:40px;

}





.attraction-prev{

    left:10px;

}





.attraction-next{

    right:10px;

}



}

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


.rooms-section{

    padding:60px 0;

    background:#faf8f6;

}





.rooms-grid{

    display:grid;

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

    gap:30px;

}





.room-card{

    background:#fff;

    border-radius:15px;

    overflow:hidden;

    border:1px solid #eee;

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

    transition:.4s ease;

}





.room-card:hover{

    transform:translateY(-10px);

}





.room-image{

    height:300px;

    overflow:hidden;

}





.room-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.5s ease;

}





.room-card:hover img{

    transform:scale(1.08);

}





.room-content{

    padding:30px;

}





.room-content h3{

    font-size:28px;

    margin-bottom:15px;

}





.room-content p{

    color:#666;

    line-height:1.7;

}





.room-features{

    margin:25px 0;

}





.room-features span{

    display:flex;

    align-items:center;

    gap:10px;

    margin-bottom:12px;

    font-size:15px;

}





.room-features i{

    color:#b51f2a;

}





.room-btn{

    display:inline-flex;

    padding:14px 35px;

    background:#b51f2a;

    color:#fff;

    border-radius:30px;

    font-weight:700;

}





.room-btn:hover{

    background:#8d1721;

    color:#fff;

}

@media(max-width:900px){


.rooms-grid{

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

}


}



@media(max-width:600px){


.rooms-grid{

    grid-template-columns:1fr;

}



.room-image{

    height:260px;

}


.room-content h3{

    font-size:24px;

}


}

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


.gallery-section{

    padding:60px 0;

    background:#fff;

}





.gallery-grid{

    display:grid;

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

    grid-auto-rows:220px;

    gap:25px;

}





.gallery-item{

    position:relative;

    overflow:hidden;

    border-radius:15px;

    display:block;

    background:#111;

}





.gallery-item img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.6s ease;

}





.gallery-item:hover img{

    transform:scale(1.12);

}





/* Large Feature Image */


.gallery-item:nth-child(1){

    grid-column:span 2;

    grid-row:span 2;

}





/* Tall Image */


.gallery-item:nth-child(4){

    grid-row:span 2;

}





/* Image Overlay */


.gallery-overlay{

    position:absolute;

    inset:0;

    background:rgba(181,31,42,.65);

    display:flex;

    align-items:center;

    justify-content:center;

    opacity:0;

    transition:.4s ease;

}





.gallery-overlay i{

    width:55px;

    height:55px;

    border-radius:50%;

    background:#fff;

    color:#b51f2a;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:20px;

}





.gallery-item:hover .gallery-overlay{

    opacity:1;

}






/* =========================
LIGHTBOX
========================= */


.gallery-lightbox{

    position:fixed;

    inset:0;

    background:rgb(0 0 0 / 95%);

    z-index:99999;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:20px;

}





.gallery-lightbox img {
    max-width: 76%;
    max-height: 70%;
    object-fit: contain;
    border-radius: 10px;
}





/* All Lightbox Buttons */


.gallery-lightbox button{

    position:absolute;

    border:none;

    cursor:pointer;

    display:flex;

    align-items:center;

    justify-content:center;

}





/* Close Button */


.gallery-close{

    top:30px;

    right:40px;

    width:45px;

    height:45px;

    border-radius:50%;

    background:#fff;

    color:#b51f2a;

    font-size:30px;

    line-height:1;

}


/* Previous / Next */


.gallery-prev,
.gallery-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:55px;

    height:55px;

    border-radius:50%;

    background:#b51f2a;

    color:#fff;

    border:none;

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    z-index:5;

}





.gallery-prev{

    left:calc(50% - 520px);

}





.gallery-next{

    right:calc(50% - 520px);

}





.gallery-prev:hover,
.gallery-next:hover{

    background:#fff;

    color:#b51f2a;

}


@media(max-width:900px){


.gallery-prev{

    left:20px;

}



.gallery-next{

    right:20px;

}



}


@media(max-width:600px){


.gallery-prev,
.gallery-next{

    width:42px;

    height:42px;

}



}





@media(max-width:600px){


.gallery-lightbox img{

    max-width:95%;

    max-height:75%;

}





.gallery-prev,
.gallery-next{

    width:42px;

    height:42px;

    top: 300px !important;

}





.gallery-prev{

    left:15px;

}





.gallery-next{

    right:15px;

}





.gallery-close{

    top:15px;

    right:15px;

}


}







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


@media(max-width:900px){


.gallery-section{

    padding:90px 0;

}





.gallery-grid{

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

    grid-auto-rows:200px;

    gap:20px;

}





.gallery-item:nth-child(1){

    grid-column:span 2;

    grid-row:span 2;

}





.gallery-item:nth-child(4){

    grid-row:span 2;

}



}







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


@media(max-width:600px){


.gallery-section{

    padding:70px 0;

}





.gallery-grid{

    grid-template-columns:1fr;

    grid-auto-rows:auto;

    gap:20px;

}





.gallery-item,
.gallery-item:nth-child(1),
.gallery-item:nth-child(4){

    grid-column:auto;

    grid-row:auto;

    height:280px;

}





.gallery-overlay{

    opacity:1;

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

}





.gallery-overlay i{

    width:45px;

    height:45px;

    font-size:16px;

}





.gallery-lightbox img{

    max-width:95%;

    max-height:75%;

}





.gallery-lightbox button{

    top:20px;

    right:20px;

}

}







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


@media(max-width:400px){


.gallery-item,
.gallery-item:nth-child(1),
.gallery-item:nth-child(4){

    height:240px;

}


}

/* =========================
LOCATION SECTION
========================= */


.location-section{

    padding:60px 0;

    background:#faf8f6;

    color:#222;

}





.location-wrapper{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:70px;

}





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


.location-content{

    width:50%;

}





.location-tag{

    display:inline-block;

    color:#b51f2a;

    font-size:14px;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:3px;

    margin-bottom:20px;

}





.location-content h2{

    color:#222;

    font-family:'Playfair Display',serif;

    font-size:44px;

    line-height:1.2;

    margin-bottom:25px;

}





.location-content > p{

    color:#555;

    font-size:17px;

    line-height:1.8;

    margin-bottom:35px;

}





/* =========================
LOCATION POINTS
========================= */


.location-points{

    margin-bottom:35px;

}





.location-item{

    display:flex;

    align-items:flex-start;

    gap:20px;

    margin-bottom:25px;

}





.location-item i{

    width:48px;

    height:48px;

    flex-shrink:0;

    border-radius:50%;

    background:#b51f2a;

    color:#ffffff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:18px;

}





.location-item h3{

    color:#222;

    font-size:18px;

    font-weight:700;

    margin:0 0 6px;

}





.location-item p{

    color:#666;

    font-size:15px;

    line-height:1.6;

    margin:0;

}





/* =========================
LOCATION BUTTON
========================= */


.location-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:15px 35px;

    background:#b51f2a;

    color:#ffffff;

    border-radius:30px;

    font-size:15px;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:.5px;

    transition:.3s ease;

}





.location-btn:hover{

    background:#8d1721;

    color:#ffffff;

}






/* =========================
MAP
========================= */


.location-map{

    width:50%;

    height:520px;

    overflow:hidden;

    border-radius:18px;

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

}





.location-map iframe{

    width:100%;

    height:100%;

    border:0;

}






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


@media(max-width:1100px){


.location-wrapper{

    gap:40px;

}



.location-content h2{

    font-size:38px;

}



.location-map{

    height:450px;

}


}







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


@media(max-width:900px){


.location-wrapper{

    flex-direction:column;

}



.location-content,
.location-map{

    width:100%;

}





.location-content h2{

    font-size:34px;

}





.location-map{

    height:350px;

}



}






@media(max-width:600px){


.location-section{

    padding:80px 0;

}





.location-content > p{

    font-size:16px;

}





.location-item{

    gap:15px;

}





.location-item i{

    width:42px;

    height:42px;

}





.location-map{

    height:300px;

}


}

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


.faq-section{

    padding:60px 0;

    background:#ffffff;

}





.faq-wrapper{

    display:flex;

    align-items:flex-start;

    gap:70px;

}





.faq-intro{

    width:40%;

}





.faq-intro span{

    color:#b51f2a;

    text-transform:uppercase;

    font-size:14px;

    letter-spacing:3px;

    font-weight:700;

}





.faq-intro h2{

    font-size:44px;

    line-height:1.2;

    margin:20px 0;

}





.faq-intro p{

    color:#666;

    font-size:17px;

    line-height:1.8;

}





.faq-btn{

    display:inline-flex;

    margin-top:25px;

    padding:15px 35px;

    background:#b51f2a;

    color:#fff;

    border-radius:30px;

    font-weight:700;

}






/* Accordion */


.faq-accordion{

    width:60%;

}





.faq-item{

    border-bottom:1px solid #ddd;

}





.faq-question{

    width:100%;

    padding:25px 0;

    background:none;

    border:none;

    display:flex;

    align-items:center;

    justify-content:space-between;

    text-align:left;

    cursor:pointer;

    font-size:18px;

    font-weight:700;

    color:#222;

}





.faq-question i{

    color:#b51f2a;

    transition:.3s ease;

}





.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:.4s ease;

}





.faq-answer p{

    color:#666;

    line-height:1.7;

    padding-bottom:20px;

}





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

    transform:rotate(45deg);

}

@media(max-width:900px){


.faq-wrapper{

    flex-direction:column;

}



.faq-intro,
.faq-accordion{

    width:100%;

}



.faq-intro h2{

    font-size:34px;

}


}


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


.site-footer{

    background:#111111;

    color:#ffffff;

}




.footer-grid{

    display:grid;

    grid-template-columns:1.5fr 1fr 1.3fr 1fr;

    gap:50px;

    padding:80px 0;

}






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


.footer-logo{

    display:inline-block;

    margin-bottom:25px;

}



.footer-logo img{

    width:180px;

    height:auto;

}





.footer-brand p{

    color:#cccccc;

    font-size:15px;

    line-height:1.8;

    max-width:330px;

}







/* =========================
SOCIAL ICONS
========================= */


.footer-social{

    display:flex;

    gap:12px;

    margin-top:25px;

}




.footer-social a{

    width:42px;

    height:42px;

    border-radius:50%;

    background:#b51f2a;

    color:#ffffff;

    display:flex;

    align-items:center;

    justify-content:center;

    transition:.3s ease;

}




.footer-social a:hover{

    background:#ffffff;

    color:#b51f2a;

}







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


.site-footer h3{

    position:relative;

    color:#ffffff;

    font-size:22px;

    font-weight:700;

    margin-bottom:28px;

}




.site-footer h3::after{

    content:"";

    display:block;

    width:35px;

    height:2px;

    background:#b51f2a;

    margin-top:12px;

}







/* =========================
QUICK LINKS
========================= */


.footer-links ul{

    list-style:none;

    padding:0;

    margin:0;

}




.footer-links li{

    margin-bottom:14px;

}




.footer-links a{

    color:#cccccc;

    font-size:15px;

    transition:.3s ease;

}




.footer-links a:hover{

    color:#b51f2a;

}







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


.footer-contact ul{

    list-style:none;

    padding:0;

    margin:0;

}




.footer-contact li{

    display:flex;

    align-items:flex-start;

    gap:15px;

    margin-bottom:20px;

    color:#cccccc;

    line-height:1.6;

}




.footer-contact i{

    width:38px;

    height:38px;

    flex-shrink:0;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#b51f2a;

    color:#ffffff;

    border-radius:50%;

    font-size:15px;

}





.footer-contact a{

    color:#cccccc;

    transition:.3s ease;

}




.footer-contact a:hover{

    color:#ffffff;

}







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


.footer-book p{

    color:#cccccc;

    line-height:1.7;

    margin-bottom:25px;

}





.footer-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:14px 35px;

    background:#b51f2a;

    color:#ffffff;

    border-radius:30px;

    font-size:15px;

    font-weight:700;

    text-transform:uppercase;

    transition:.3s ease;

}




.footer-btn:hover{

    background:#ffffff;

    color:#b51f2a;

}







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


.footer-bottom{

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

    padding:25px 0;

}





.footer-bottom-content{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:20px;

}





.footer-bottom p{

    margin:0;

    color:#999999;

    font-size:14px;

}





.footer-policy{

    display:flex;

    gap:25px;

}




.footer-policy a{

    color:#999999;

    font-size:14px;

    transition:.3s ease;

}




.footer-policy a:hover{

    color:#ffffff;

}


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


@media(max-width:1100px){


.footer-grid{

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

}



}




@media(max-width:700px){


.footer-grid{

    grid-template-columns:1fr;

    gap:40px;

    padding:60px 0;

}





.footer-brand p{

    max-width:100%;

}





.footer-bottom-content{

    flex-direction:column;

    text-align:center;

}





.footer-policy{

    flex-wrap:wrap;

    justify-content:center;

    gap:15px;

}



}

/* =========================
BACK TO TOP BUTTON
========================= */


.back-to-top{

    position:fixed;

    right:30px;

    bottom:30px;

    width:50px;

    height:50px;

    border-radius:50%;

    border:none;

    background:#b51f2a;

    color:#ffffff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:18px;

    cursor:pointer;

    z-index:9999;

    opacity:0;

    visibility:hidden;

    transform:translateY(20px);

    transition:.4s ease;

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

}





.back-to-top:hover{

    background:#8d1721;

}





.back-to-top.show{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

@media(max-width:600px){


.back-to-top{

    width:45px;

    height:45px;

    right:20px;

    bottom:20px;

}


}
/* Accessible keyboard skip link */
.skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 20000;
    padding: 12px 18px;
    color: #ffffff;
    background: #111111;
    border-radius: 4px;
    transform: translateY(-160%);
    transition: transform 0.2s ease;
}

.skip-link:focus {
    color: #ffffff;
    transform: translateY(0);
}
