@charset "utf-8";

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

.gallery-hero{

position:relative;

min-height:84vh;

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

text-align:center;

padding:160px 20px 120px;

background: linear-gradient(rgba(20,14,10,0.45), rgba(20,14,10,0.30)),
url("../images/gallery-hero.webp")
center center/cover no-repeat;

overflow:hidden;
}

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

    background:
    linear-gradient(
    to top,
    rgba(0,0,0,0.45),
    rgba(0,0,0,0.12)
    );
}

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

    max-width:850px;

    color:var(--white);
}

.hero-subtitle{
    font-size:13px;

    letter-spacing:4px;

    text-transform:uppercase;

    margin-bottom:22px;

    color:#E7D2BC;
}

.gallery-hero h1{
    font-family:'Cormorant Garamond',serif;

    font-size:64px;

    line-height:1.05;

    margin-bottom:28px;
}

.gallery-hero p{
    font-size:18px;

    line-height:1.9;

    color:rgba(255,255,255,0.9);

    max-width:720px;

    margin:auto;
}


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

.gallery-filter-section{
    padding-bottom:70px;
}

.gallery-filter{
    display:flex;

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

    gap:14px;

    flex-wrap:wrap;
}

.gallery-filter button{
    border:none;

    background:#f5f1eb;

    padding:14px 24px;

    border-radius:999px;

    cursor:pointer;

    transition:0.35s ease;

    font-size:14px;

    color:var(--text);
}

.gallery-filter button.active,
.gallery-filter button:hover{
    background:#1d1d1d;

    color:white;
}


/* =========================================================
LUXURY GALLERY GRID
========================================================= */

.gallery-masonry{

display:grid;

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

gap:24px;

max-width:1400px;

margin:auto;
}

/* IMAGE CARD */

.gallery-item{

position:relative;

overflow:hidden;

border-radius:28px;

display:block;

height:100%;

background:#ddd;
}

/* NORMAL */

.gallery-item img{

width:100%;

height:100%;

display:block;

object-fit:cover;

transition:0.7s ease;
}

/* DIFFERENT HEIGHTS */

.gallery-item.tall{

grid-row:span 2;

height:740px;
}

.gallery-item.wide{

height:360px;
}

.gallery-item:not(.tall):not(.wide){

height:360px;
}

/* HOVER */

.gallery-item:hover img{

transform:scale(1.04);
}

@media(max-width:992px){

.gallery-masonry{

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

.gallery-item.tall{

height:620px;
}

}

@media(max-width:768px){

.gallery-masonry{

grid-template-columns:1fr;

gap:18px;
}

.gallery-item,
.gallery-item.tall,
.gallery-item.wide{

height:auto;
}

.gallery-item img{

aspect-ratio:4/5;
}
}

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

.gallery-overlay{

position:absolute;

inset:0;

display:flex;

align-items:flex-end;

padding:26px;

background:
linear-gradient(
to top,
rgba(15,12,10,0.42),
rgba(0,0,0,0.05)
);

opacity:0;

transition:0.4s ease;

z-index:2;
}

.gallery-item:hover .gallery-overlay{

opacity:1;
}

.gallery-overlay span{

color:white;

font-size:22px;

font-family:'Cormorant Garamond',serif;

letter-spacing:.3px;

line-height:1.2;

text-shadow:
0 2px 10px rgba(0,0,0,.35);
}

@media(max-width:768px){

.gallery-overlay{

opacity:1;

padding:22px;
}

.gallery-overlay span{

font-size:20px;
}

}

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

.faq-grid{
    max-width:950px;

    margin:auto;

    display:grid;

    gap:22px;
}

.faq-item{
    background:var(--white);

    padding:38px;

    border-radius:28px;

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

.faq-item h3{
    font-size:22px;

    margin-bottom:16px;

    color:var(--text);
}

.faq-item p{
    line-height:1.9;

    color:var(--text-light);
}


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

@media(max-width:768px){

    .gallery-hero{
        min-height:65vh;

        padding:120px 20px 90px;
    }

    .gallery-hero h1{
        font-size:46px;
    }

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

    .gallery-section{
        padding-bottom:90px;
    }

    .gallery-overlay{
        opacity:1;
    }
}


@media(max-width:540px){

    .gallery-hero h1{
        font-size:40px;
    }

    .gallery-filter{
        gap:10px;
    }

    .gallery-filter button{
        padding:12px 18px;

        font-size:13px;
    }

    .faq-item{
        padding:30px;
    }
}@charset "utf-8";
/* CSS Document */

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

.lightbox{

position:fixed;

inset:0;

background:rgba(10,10,10,0.92);

display:flex;

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

z-index:9999;

opacity:0;
visibility:hidden;

transition:0.35s ease;

padding:40px;
}

.lightbox.active{

opacity:1;
visibility:visible;
}

.lightbox img{

width:auto;
height:auto;

max-width:min(1400px,88vw);
max-height:82vh;

object-fit:contain;

border-radius:22px;

box-shadow:
0 30px 80px rgba(0,0,0,0.45);

animation:lightboxZoom .35s ease;
}

.lightbox-inner{

position:relative;

display:flex;

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

width:100%;
height:100%;
}

/* CLOSE */

.lightbox-close{

position:absolute;

top:24px;
right:34px;

background:none;

border:none;

font-size:52px;

color:white;

cursor:pointer;

transition:0.3s ease;

z-index:2;
}

.lightbox-close:hover{

opacity:.7;
}

/* ARROWS */

.lightbox-prev,
.lightbox-next{

position:absolute;

top:50%;

transform:translateY(-50%);

background:rgba(255,255,255,0.08);

border:none;

width:58px;
height:58px;

border-radius:50%;

color:white;

font-size:28px;

cursor:pointer;

backdrop-filter:blur(6px);

transition:0.3s ease;
}

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

background:rgba(255,255,255,0.18);
}

.lightbox-prev{

left:30px;
}

.lightbox-next{

right:30px;
}

/* MOBILE */

@media(max-width:768px){

.lightbox{

padding:20px;
}

.lightbox img{

max-width:100%;
max-height:80vh;

border-radius:14px;
}

.lightbox-prev,
.lightbox-next{

width:46px;
height:46px;

font-size:22px;
}

.lightbox-close{

font-size:42px;

top:18px;
right:22px;
}

}

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

.booking-banner{
    position:relative;

    padding:170px 20px;
    margin-top: 80px;
    text-align:center;

    background:
    linear-gradient(
    rgba(16,12,8,0.68),
    rgba(16,12,8,0.45)
    ),
    url("../images/facilities-booking.webp")
    center center/cover no-repeat;

    overflow:hidden;
}

.booking-banner::after{
    content:"";

    position:absolute;
    inset:0;

    background:
    radial-gradient(
    circle at center,
    rgba(255,220,180,0.08),
    transparent 60%
    );

    pointer-events:none;
}

.booking-overlay{
    position:absolute;
    inset:0;

    background:
    linear-gradient(
    to top,
    rgba(0,0,0,0.35),
    rgba(0,0,0,0.05)
    );
}

.booking-content{
    position:relative;
    z-index:2;

    max-width:900px;

    margin:auto;

    color:var(--white);
}

.booking-subtitle{
    font-size:13px;

    letter-spacing:5px;

    text-transform:uppercase;

    color:#D5B08A;

    margin-bottom:24px;
}

.booking-content h2{
    font-family:'Cormorant Garamond',serif;

    font-size:58px;

    line-height:1.05;

    font-weight:500;

    margin-bottom:30px;

    text-shadow:0 10px 30px rgba(0,0,0,0.35);
}

.booking-content p{
    max-width:760px;

    margin:auto auto 42px;

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

    line-height:1.9;

    font-size:18px;
}

/* BOOKING BUTTONS */

.booking-buttons{
    display:flex;

    justify-content:center;

    gap:24px;

    flex-wrap:wrap;

    margin-top:40px;
}

/* BOTH BUTTONS */

.booking-buttons a{
    min-width:320px;

    height:58px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:20px;

    font-size:15px;

    font-weight:600;

    letter-spacing:2px;

    text-transform:uppercase;

    transition:all 0.35s ease;
}

/* PRIMARY */

.booking-buttons .btn-primary{
    background:#C8A27A;

    color:#fff;

    border:1px solid #C8A27A;
}

.booking-buttons .btn-primary:hover{
    transform:translateY(-2px);

    background:#BE9871;
}

/* SECONDARY */

.booking-buttons .btn-secondary{
    background:rgba(255,255,255,0.04);

    border:1px solid rgba(255,255,255,0.35);

    color:#fff;

    backdrop-filter:blur(10px);
}

/* HOVER */

.booking-buttons .btn-primary:hover{
    transform:translateY(-2px);

    opacity:0.92;
}

.booking-buttons .btn-secondary:hover{
    background:rgba(255,255,255,0.10);

    border-color:rgba(255,255,255,0.55);

    transform:translateY(-2px);
}

/* MOBILE */

@media(max-width:768px){

    .booking-buttons{
        flex-direction:column;

        align-items:center;
    }

    .booking-buttons a{
        width:100%;

        max-width:340px;

        min-width:auto;

        height:66px;

        font-size:14px;
    }

}

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

.gallery-lifestyle{

padding:100px 0;
margin-top: 100px;
margin-bottom: 100px;
background: var(--bg-soft);
}

/* IMPORTANT */

.gallery-lifestyle .container{

max-width:1400px;

margin:auto;

padding:0 40px;
}

.gallery-lifestyle-grid{

display:grid;

grid-template-columns:1.05fr 1fr;

gap:90px;

align-items:center;
}

.gallery-lifestyle-image img{

width:100%;

height:560px;

object-fit:cover;

border-radius:36px;

display:block;
}

.gallery-lifestyle-content{

max-width:580px;
}

.gallery-lifestyle-content h2{

font-family:'Cormorant Garamond',serif;

font-size:72px;

line-height:1.02;

margin-bottom:30px;

font-weight:500;

color:var(--text);
}

.gallery-lifestyle-content p{

font-size:18px;

line-height:2;

color:var(--text-light);

margin-bottom:28px;
}

/* MOBILE */

@media(max-width:992px){

.gallery-lifestyle-grid{

grid-template-columns:1fr;

gap:60px;
}

.gallery-lifestyle-image img{

height:460px;
}

.gallery-lifestyle-content{

max-width:100%;
}

.gallery-lifestyle-content h2{

font-size:54px;
}
}

@media(max-width:768px){

.gallery-lifestyle{

padding:100px 0;
}

.gallery-lifestyle .container{

padding:0 24px;
}

.gallery-lifestyle-image img{

height:380px;

border-radius:26px;
}

.gallery-lifestyle-content h2{

font-size:42px;
}

.gallery-lifestyle-content p{

font-size:16px;

line-height:1.9;
}
}