
body{font-family:Georgia,serif}
.custom-nav{background:#000}
.hero{background:#000;color:#fff;padding:140px 0 80px}
.hero h1{font-size:4rem;font-weight:700}
.text-gold{color:#d4a017;letter-spacing:2px}
.btn-gold,.btn-warning{background:#d4a017;border:none}
.card{border:none;box-shadow:0 10px 25px rgba(0,0,0,.08)}
.gift-banner{padding:120px 0;background:url('assets/section4.png') center/cover}
.footer{background:#000;color:#fff;padding:60px 0}


.fade-in-cover{
    opacity:0;
    transform:translateY(15px);
    transition:opacity 1.5s ease, transform 1.5s ease;
}

.fade-in-cover.show{
    opacity:1;
    transform:translateY(0);
}


/* Uniform service cards */
.service-card{
border:2px solid #d4a017;
overflow:hidden;
border-radius:18px;
transition:all .35s ease;
box-shadow:0 10px 25px rgba(0,0,0,.08);
}

.service-image{
height:280px;
overflow:hidden;
}

.service-image img{
width:100%;
height:100%;
object-fit:cover;
transition:transform .4s ease;
}

.service-card:hover{
transform:translateY(-10px) scale(1.03);
box-shadow:0 20px 40px rgba(212,160,23,.35);
}

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


.review-section{
background:#f8f9fa;
}

.review-card{
max-width:800px;
background:#fff;
padding:40px;
border-radius:18px;
box-shadow:0 10px 25px rgba(0,0,0,.08);
}

.review-card p{
font-size:1.1rem;
margin:20px 0;
}

.stars{
font-size:1.5rem;
color:#d4a017;
letter-spacing:4px;
}

.carousel-control-prev-icon,
.carousel-control-next-icon{
filter:invert(1);
}


.review-section{
    background:#000;
    color:#fff;
    padding:120px 0;
}

.review-section h2{
    color:#fff;
}

.review-section p{
    color:#d9d9d9;
}

.review-card{
    max-width:800px;
    background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
    color:#fff;
    padding:40px;
    border-radius:18px;
    border:1px solid rgba(212,160,23,.3);
    box-shadow:0 15px 40px rgba(212,160,23,.15);
}

.review-card p{
    color:#e5e5e5;
    font-size:1.1rem;
    margin:20px 0;
}

.review-card h5{
    color:#d4a017;
    margin-top:15px;
}

.stars{
    font-size:1.5rem;
    color:#d4a017;
    letter-spacing:4px;
}

.carousel-control-prev-icon,
.carousel-control-next-icon{
    filter:none;
}


.hero-image-wrap,.why-image-wrap{
    position:relative;
    padding:30px;
}

.hero-image-wrap::before,
.why-image-wrap::before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    width:88%;
    height:92%;
    border:3px solid #d4a017;
    z-index:0;
}

.hero-image-wrap img,
.why-image{
    position:relative;
    z-index:2;
    display:block;
}

.why-choose-section{background:#f4f4f4;padding:120px 0;}
.why-title{font-size:4rem;font-weight:700;margin-bottom:40px;}
.why-item{display:flex;gap:20px;margin-bottom:35px;}
.why-icon{
width:52px;height:52px;border:1px solid #d4a017;color:#d4a017;
display:flex;align-items:center;justify-content:center;flex-shrink:0;
}



.gallery-mosaic{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:220px;
    gap:18px;
}

.gallery-mosaic img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
    border-radius:18px;
    border:2px solid #d4a017;
    box-shadow:0 10px 25px rgba(0,0,0,.12);
    transition:transform .6s ease, box-shadow .6s ease, filter .6s ease;
    overflow:hidden;
}

.gallery-mosaic:hover img{
    filter:brightness(.75);
}

.gallery-mosaic img:hover{
    transform:scale(1.08);
    filter:brightness(1);
    box-shadow:0 20px 45px rgba(212,160,23,.45);
    z-index:10;
    position:relative;
}

.gallery-mosaic img:nth-child(1){grid-row:span 2;}
.gallery-mosaic img:nth-child(4){grid-row:span 2;}
.gallery-mosaic img:nth-child(6){grid-column:span 2;}
.gallery-mosaic img:nth-child(9){grid-row:span 1;}

@media(max-width:768px){
    .gallery-mosaic{
        grid-template-columns:repeat(2,1fr);
        grid-auto-rows:180px;
    }
}


/* Middle-gap gallery fix */
.gallery-mosaic img:nth-child(6){
    grid-column:3;
    grid-row:2;
}

.gallery-mosaic img:nth-child(7){
    grid-column:span 2;
}


/* Why Choose Us image hover effect */
.why-image-wrap{
    overflow: visible;
}

.why-image{
    transition: transform .45s ease, box-shadow .45s ease;
}

.why-image:hover{
    transform: translateY(-12px) scale(1.03);
    box-shadow: 0 25px 50px rgba(212,160,23,.35);
}


/* Hero cover improvements */
.hero-image-wrap{
    overflow:visible;
}

.hero-image-wrap::before{
    opacity:0;
    transition:opacity .35s ease;
}

.hero-image-wrap.loaded::before{
    opacity:1;
}

.fade-in-cover{
    opacity:0;
    transform:translateY(15px) scale(0.98);
    transition:opacity 1.2s ease, transform 1.2s ease, box-shadow .35s ease;
}

.fade-in-cover.show{
    opacity:1;
    transform:translateY(0) scale(1);
}

.fade-in-cover:hover{
    transform:translateY(-12px) scale(1.04);
    box-shadow:0 28px 60px rgba(212,160,23,.45);
}


/* Hero video background */
.hero{
    position:relative;
    overflow:hidden;
}

.hero-video{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:0;
    filter:brightness(.55);
    transform:scale(1.05);
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.55);
    z-index:1;
}

.hero .container{
    position:relative;
    z-index:2;
}


/* Luxury social buttons */
.social-luxury{
    display:flex;
    gap:18px;
    align-items:center;
    margin-top:20px;
}
.luxury-social{
    width:58px;
    height:58px;
    border:2px solid #d4a017;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#d4a017;
    font-size:1.4rem;
    text-decoration:none;
    background:rgba(0,0,0,.35);
    backdrop-filter:blur(8px);
    transition:all .35s ease;
    box-shadow:0 8px 20px rgba(212,160,23,.15);
}
.luxury-social:hover{
    background:#d4a017;
    color:#000;
    transform:translateY(-6px) scale(1.08);
    box-shadow:0 15px 35px rgba(212,160,23,.45);
}


.contact-section{
    background:#f4f4f4;
    padding:120px 0;
}

.contact-section h2{
    font-size:4rem;
    font-weight:700;
    margin-bottom:20px;
}

.contact-intro{
    max-width:900px;
    font-size:1.15rem;
    line-height:1.8;
}

.contact-item{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.contact-item i{
    font-size:2.5rem;
    color:#d4a017;
}

.contact-item h4{
    font-weight:700;
    margin-bottom:0;
}

.contact-item p{
    margin:0;
    font-size:1.05rem;
}

.map-container{
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 15px 40px rgba(0,0,0,.12);
}

.map-container iframe{
    display:block;
}


/* Luxury About Section Enhancement */
.luxury-heading{
    font-size:3.2rem;
    font-weight:700;
    margin-bottom:24px;
    color:#111;
}

.luxury-about-text{
    max-width:900px;
    margin:0 auto 50px auto;
    font-size:1.15rem;
    line-height:1.9;
    color:#555;
    letter-spacing:.3px;
}


/* Book Now button hover fix */
.btn-gold:hover,
.btn-gold:focus,
.btn-gold:active{
    background:#d4a017 !important;
    border-color:#d4a017 !important;
    color:#000 !important;
    box-shadow:none !important;
}


html{
scroll-behavior:smooth;
}

.promotion-section{
background:#050505;
padding:120px 0;
}

.promo-banner{
background:linear-gradient(145deg,#181818,#101010);
border-radius:32px;
padding:70px 40px;
text-align:center;
border:1px solid rgba(212,160,23,.2);
box-shadow:0 15px 35px rgba(0,0,0,.35);
transition:all .4s ease;
}

.promo-banner:hover{
transform:translateY(-18px) scale(1.05);
box-shadow:0 0 25px rgba(212,160,23,.45),
           0 0 50px rgba(212,160,23,.35),
           0 25px 60px rgba(212,160,23,.25);
border-color:rgba(212,160,23,.7);
}

.promo-tag,.promo-badge{
display:inline-block;
padding:8px 18px;
border-radius:999px;
border:1px solid rgba(212,160,23,.35);
color:#d4a017;
font-size:.8rem;
font-weight:700;
letter-spacing:2px;
}

.promo-banner h2{
color:#fff;
font-size:4rem;
margin:25px 0 10px;
}

.promo-banner p{color:#bdbdbd;}
.promo-banner h3{color:#d4a017;font-weight:700;}

.promo-card{
height:100%;
background:linear-gradient(145deg,#181818,#101010);
padding:35px 25px;
border-radius:28px;
border:1px solid rgba(212,160,23,.2);
box-shadow:0 15px 35px rgba(0,0,0,.35);
transition:all .4s ease;
}

.promo-card h3{color:#fff;margin:20px 0 10px;}
.promo-card p{color:#cfcfcf;}

.promo-card:hover{
transform:translateY(-18px) scale(1.05);
box-shadow:0 0 25px rgba(212,160,23,.45),
           0 0 50px rgba(212,160,23,.35),
           0 25px 60px rgba(212,160,23,.25);
border-color:rgba(212,160,23,.7);
}

.promo-price{
font-size:2rem;
font-weight:700;
color:#d4a017;
}

.promo-price span{
text-decoration:line-through;
color:#8d8d8d;
font-size:1.1rem;
margin-right:8px;
}

.promo-offer{
color:#d4a017;
font-size:1.6rem;
font-weight:700;
}

@media(max-width:768px){
.promo-banner h2{font-size:2.5rem;}
}

/* Mobile layout and overflow fixes */
html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

img, video, iframe {
    max-width: 100%;
}

@media (max-width: 991.98px) {
    .custom-nav .navbar-collapse {
        text-align: center;
    }

    .custom-nav .navbar-nav {
        align-items: center;
    }

    .custom-nav .btn-gold {
        display: block;
        width: fit-content;
        margin: 12px auto 8px;
    }

    .hero .row,
    .why-choose-section .row,
    .contact-section,
    .contact-section .row,
    .contact-item,
    .footer-section,
    .footer-section .container {
        text-align: center;
    }

    .social-luxury {
        justify-content: center;
    }

    .why-item {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .contact-item {
        align-items: center;
    }

    .contact-item p {
        width: 100%;
        overflow-wrap: anywhere;
    }

    .footer-section .container > div {
        width: 100%;
        text-align: center;
    }

    .hero-image-wrap,
    .why-image-wrap {
        max-width: 100%;
        padding-left: 20px;
        padding-right: 20px;
    }

    .gallery-mosaic img:nth-child(6),
    .gallery-mosaic img:nth-child(7) {
        grid-column: auto;
        grid-row: auto;
    }
}

@media (max-width: 575.98px) {
    .container,
    .container-fluid {
        max-width: 100%;
    }

    .navbar-brand {
        max-width: calc(100vw - 90px);
        white-space: normal;
        text-align: left;
    }

    .hero {
        padding-top: 120px;
    }

    .hero-image-wrap,
    .why-image-wrap {
        padding: 18px;
    }

    .hero-image-wrap::before,
    .why-image-wrap::before {
        right: 8px;
        width: calc(100% - 24px);
    }

    .review-card {
        padding: 28px 22px;
        width: calc(100% - 34px);
    }

    .carousel-control-prev,
    .carousel-control-next {
        width: 9%;
    }

    .gallery-mosaic {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Requested updates: hover glow for specials + hero spacing */
.promo-banner,
.promo-card {
    cursor: default;
    -webkit-tap-highlight-color: transparent;
}

/* Make the specials visibly glow as soon as a pointer hovers over them. */
@media (hover: hover) and (pointer: fine) {
    .promo-banner:hover,
    .promo-card:hover {
        transform: translateY(-12px) scale(1.025);
        border-color: rgba(212,160,23,.9);
        box-shadow:
            0 0 18px rgba(212,160,23,.75),
            0 0 42px rgba(212,160,23,.48),
            0 22px 55px rgba(212,160,23,.28);
    }
}

/* Prevent a click/tap from being required to keep the glow state. */
.promo-banner:focus,
.promo-banner:active,
.promo-card:focus,
.promo-card:active {
    outline: none;
}

/* Add breathing room between the social icons and the hero photo/frame. */
@media (min-width: 992px) {
    .hero .row {
        column-gap: 28px;
    }

    .hero .col-lg-6 {
        flex: 0 0 calc(50% - 14px);
        max-width: calc(50% - 14px);
    }
}

@media (max-width: 991.98px) {
    .hero-image-wrap {
        margin-top: 34px;
    }
}


/* Clickable contact details */
.contact-link{
    color:inherit;
    text-decoration:none;
    transition:color .25s ease, text-shadow .25s ease;
}
.contact-link:hover,
.contact-link:focus{
    color:#d4a017;
    text-shadow:0 0 12px rgba(212,160,23,.25);
}


/* Clickable contact icons */
.contact-icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    border-radius: 50%;
}

.contact-icon-link .contact-icon {
    transition: transform .25s ease, filter .25s ease;
}

.contact-icon-link:hover .contact-icon,
.contact-icon-link:focus-visible .contact-icon {
    transform: translateY(-3px) scale(1.1);
    filter: drop-shadow(0 0 8px rgba(212,160,23,.55));
}

@media (max-width: 991.98px) {
    .contact-icon-link {
        margin-left: auto;
        margin-right: auto;
    }
}


/* Floating Book Now button - matches services.html */
.floating-book-now{position:fixed;right:24px;bottom:24px;z-index:1040;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:54px;padding:0 24px;border-radius:999px;background:#d4a017;color:#000;text-decoration:none;font-weight:700;box-shadow:0 12px 30px rgba(0,0,0,.28)}
.floating-book-now:hover,.floating-book-now:focus{color:#000;background:#d4a017}
@media(max-width:767.98px){.floating-book-now{left:16px;right:16px;bottom:max(14px,env(safe-area-inset-bottom));min-height:58px;font-size:1.05rem}.footer-section{padding-bottom:100px}}
