@charset "utf-8";

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

.location-hero{
    position:relative;

    min-height:84vh;

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

    text-align:center;

    padding:140px 20px 100px;

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

    overflow:hidden;
	animation:heroZoom 14s ease-in-out infinite alternate;
}

@keyframes heroZoom{

    from{
        transform:scale(1);
    }

    to{
        transform:scale(1.08);
    }

}

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

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

.location-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;
}

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

    font-size:52px;

    line-height:1.05;

    margin-bottom:28px;
}

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

    line-height:1.9;

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

    max-width:720px;

    margin:auto auto 38px;
}

.hero-buttons{
    display:flex;

    gap:18px;

    justify-content:center;

    flex-wrap:wrap;
}


/* =========================================================
LOCATION GRID
========================================================= */

.location-grid{
    display:grid;

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

    gap:34px;

    max-width:1200px;

    margin:auto;
}

.location-card{
    background:var(--white);

    border-radius:26px;

    overflow:hidden;

    box-shadow:0 14px 40px rgba(0,0,0,0.045);

    transition:0.45s ease;
}

.location-card:hover{
    transform:translateY(-10px);

    box-shadow:0 28px 70px rgba(0,0,0,0.08);
}

.location-image{
    overflow:hidden;
}

.location-image img{
    height:340px;

    object-fit:cover;

    transition:0.6s ease;
}

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

.location-content{
    padding:34px;
}

.location-time{
    display:inline-block;

    margin-bottom:18px;

    font-size:12px;

    letter-spacing:2px;

    text-transform:uppercase;

    color:#B58A5A;
}

.location-content h3{
    font-family:'Cormorant Garamond',serif;

    font-size:38px;

    margin-bottom:18px;

    color:var(--text);
}

.location-content p{
    line-height:1.9;

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


/* =========================================================
DISTANCE SECTION
========================================================= */

.distance-grid{
    display:grid;

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

    gap:24px;

    max-width:1100px;

    margin:auto;
}

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

    padding:42px 24px;

    border-radius:28px;

    text-align:center;

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

    transition:0.35s ease;
}

.distance-item:hover{
    transform:translateY(-5px);

    box-shadow:0 18px 45px rgba(0,0,0,0.06);
}

.distance-item h3{
    font-family:'Cormorant Garamond',serif;

    font-size:48px;

    color:var(--primary-dark);

    margin-bottom:12px;
}

.distance-item p{
    color:var(--text-light);

    font-size:15px;
}


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

.map-wrapper{
    max-width:1200px;

    margin:0 auto 40px;

    border-radius:36px;

    overflow:hidden;

    box-shadow:0 20px 60px rgba(0,0,0,0.08);
}

.map-wrapper iframe{
    width:100%;

    height:520px;

    border:0;
}

.map-contact{
    text-align:center;
}

.map-contact p{
    margin-bottom:28px;

    font-size:17px;

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


/* =========================================================
REVERSE GRID
========================================================= */

.reverse-grid{
    grid-template-columns:1fr 1.1fr;
}


/* =========================================================
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);

    transition:0.35s ease;
}

.faq-item:hover{
    transform:translateY(-4px);

    box-shadow:0 18px 45px rgba(0,0,0,0.06);
}

.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:1100px){

    .location-hero h1{
        font-size:60px;
    }

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

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


@media(max-width:768px){

    .location-hero{
        min-height:78vh;

        padding:120px 20px 90px;
    }

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

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

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

    .location-image img{
        height:300px;
    }

    .location-content{
        padding:28px;
    }

    .location-content h3{
        font-size:34px;
    }

    .map-wrapper iframe{
        height:420px;
    }
}


@media(max-width:540px){

    .hero-buttons{
        flex-direction:column;
    }

    .location-hero h1{
        font-size:42px;
    }

    .distance-item h3{
        font-size:40px;
    }

    .faq-item{
        padding:30px;
    }

}

/* =========================================================
LOCATION INTRO IMPROVED
========================================================= */

.location-intro-section{
    padding-top:120px;
    padding-bottom:120px;
}

.intro-grid{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:80px;
    align-items:center;

    max-width:1280px;
    margin:auto;
}

.intro-image{
    position:relative;
}

.intro-image img{
    width:100%;
    height:620px;

    object-fit:cover;

    border-radius:34px;

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

.intro-content{
    max-width:560px;
}

.intro-content .section-subtitle{
    margin-bottom:22px;
}

.intro-content .section-title{
    font-size:48px;
    line-height:1.15;

    margin-bottom:34px;

    letter-spacing:-1px;
}

.intro-content p{
    font-size:16px;
    line-height:1.95;

    color:var(--text-light);

    margin-bottom:24px;
}

.intro-content .btn-primary{
    margin-top:16px;
}

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

@media(max-width:1100px){

    .intro-grid{
        grid-template-columns:1fr;
        gap:60px;
    }

    .intro-content{
        max-width:100%;
    }

    .intro-content .section-title{
        font-size:42px;
    }

    .intro-image img{
        height:520px;
    }
}

@media(max-width:768px){

    .location-intro-section{
        padding-top:90px;
        padding-bottom:90px;
    }

    .intro-grid{
        gap:40px;
    }

    .intro-image img{
        height:420px;
        border-radius:26px;
    }

    .intro-content .section-title{
        font-size:44px;
        line-height:1.05;
    }

    .intro-content p{
        font-size:16px;
        line-height:1.85;
    }
}

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

.booking-banner{
    position:relative;

    padding:170px 20px;

    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{
    display:flex;

    justify-content:center;

    gap:18px;

    flex-wrap:wrap;
}

.booking-banner .btn-primary{
    padding:17px 40px;

    border-radius:999px;

    font-size:15px;

    letter-spacing:1px;

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

.booking-banner .btn-secondary{
    background:rgba(255,255,255,0.08);

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

    backdrop-filter:blur(8px);
}

/* MOBILE */

@media(max-width:768px){

    .booking-banner{
        padding:120px 20px;
    }

    .booking-content h2{
        font-size:52px;
    }

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

@media(max-width:540px){

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

    .booking-buttons{
        flex-direction:column;
    }
}

/* =========================================================
WHY SEMINYAK SECTION
========================================================= */

.why-seminyak-section .experience-grid{
    display:grid;

    grid-template-columns:
    520px
    1fr;

    align-items:center;

    gap:90px;

    max-width:1200px;

    margin:auto;
}

.why-seminyak-section .experience-image img{
    width:100%;

    height:480px;

    object-fit:cover;

    border-radius:28px;
}

.why-seminyak-section .experience-content{
    max-width:620px;
}

.why-seminyak-section .section-title{
    max-width:620px;

    font-size:48px;

    line-height:1.02;

    margin-bottom:28px;
}

.why-seminyak-section p{
    font-size:16px;

    line-height:1.9;

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

/* MOBILE */

@media(max-width:768px){

    .why-seminyak-section .experience-grid{
        grid-template-columns:1fr;

        gap:36px;
    }

    .why-seminyak-section .experience-image{
        order:-1;
    }

    .why-seminyak-section .experience-image img{
        height:320px;

        border-radius:22px;
    }

    .why-seminyak-section .section-title{
        font-size:42px;

        line-height:1.08;
    }

    .why-seminyak-section p{
        font-size:16px;
    }

}