@charset "utf-8";
/* CSS Document */

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

.location-hero{

    position:relative;

    min-height:100vh;

    display:flex;
    align-items:center;

    overflow:hidden;

    color:#fff;

}

/* Background */

.location-hero__bg{

    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

}

/* Overlay */

.location-hero__overlay{

    position:absolute;
    inset:0;

    background:

    linear-gradient(

        90deg,

        rgba(7,15,28,.76) 0%,

        rgba(7,15,28,.55) 38%,

        rgba(7,15,28,.25) 70%,

        rgba(7,15,28,.08) 100%

    );

}

/* Container */

.location-hero .container{

    position:relative;

    z-index:5;

    width:min(92%,1280px);

    margin:auto;

    padding-top:150px;
    padding-bottom:90px;

    display:grid;

    grid-template-columns:1fr 360px;

    gap:80px;

    align-items:center;

}

/* Left */

.location-hero__content{

    max-width:760px;

}

/* Breadcrumb */

.breadcrumb{

    margin-bottom:45px;

    font-size:.92rem;

    color:rgba(255,255,255,.75);

}

.breadcrumb a{

    color:#fff;

    text-decoration:none;

}

.breadcrumb span{

    margin:0 8px;

}

/* H1 */

.location-hero__content h1{

    font-size:clamp(58px, 6vw, 72px);
	font-family: var(--font-heading);

    line-height:1.08;

    font-weight:300;

    margin-bottom:1.25rem;

    color:#fff;

}

.location-hero__content h1 em{

    display: block;
    margin-top: 10px;
    color: #ead6ae;
    font-style: italic;
    font-weight: 400;

}

/* Intro */

.location-hero__content p{

    max-width:650px;

    font-size:16px;

    line-height:2;

    color:rgba(255,255,255,.90);

    margin-bottom:45px;

}

/* Buttons */

.hero-buttons{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

}

.btn-primary{

    padding:18px 36px;

    background:#D8B16A;

    color:#fff;

    text-decoration:none;

    border-radius:999px;

    font-weight:600;

    transition:.35s;

}

.btn-primary:hover{

    transform:translateY(-4px);

}

.btn-secondary{

    padding:18px 36px;

    border-radius:999px;

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

    backdrop-filter:blur(12px);

    color:#fff;

    text-decoration:none;

    transition:.35s;

}

.btn-secondary:hover{

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

}

/* ======================================
   GLASS LOCATION CARD
====================================== */

.hero-location-card{

    background:rgba(18,22,30,.42);

    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);

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

    border-radius:28px;

    padding:35px;

    color:#fff;

    box-shadow:

    0 25px 60px rgba(0,0,0,.28);

    transform:translateY(55px);

}

.hero-location-card h3{

    margin-bottom:25px;

    font-size:1.4rem;

}

.hero-location-card ul{

    list-style:none;

    margin:0;

    padding:0;

}

.hero-location-card li{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:16px 0;

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

}

.hero-location-card li:last-child{

    border-bottom:none;

}

.hero-location-card strong{

    color:#D8B16A;

    font-size:1rem;

}

.hero-location-card span{

    color:rgba(255,255,255,.82);

}

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

@media(max-width:991px){

.location-hero{

    min-height:auto;

}

.location-hero .container{

    grid-template-columns:1fr;

    gap:45px;

    padding-top:140px;
    padding-bottom:80px;

}

.location-hero__content{

    text-align:center;

    max-width:700px;

    margin:auto;

}

.location-hero__content p{

    margin-left:auto;
    margin-right:auto;

}

.hero-buttons{

    justify-content:center;

}

.hero-location-card{

    transform:none;

    max-width:520px;

    margin:auto;

}

}

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

@media(max-width:768px){

.location-hero{

    min-height:100vh;

}

.location-hero .container{

    width:92%;

    padding-top:120px;
    padding-bottom:60px;

}

.breadcrumb{

    text-align:center;

    margin-bottom:28px;

}

.location-hero__content h1{

    font-size:2.8rem;

}

.location-hero__content p{

    font-size:1rem;

    line-height:1.8;

}

.hero-buttons{

    display: none;

}

.btn-primary,
.btn-secondary{

    width:100%;

    text-align:center;

}

.hero-location-card{

    width:100%;

    padding:28px;
	display: none;

}

.hero-location-card li{

    flex-direction:column;

    align-items:flex-start;

    gap:6px;

}

}
/* ==========================================
   LOCATION INTRO
========================================== */

.location-intro{

    padding:120px 0;
    background:#fff;

}

.location-intro__container{

    width:min(92%,1200px);
    margin:auto;

    display:grid;
    grid-template-columns:55% 45%;
    gap:70px;
    align-items:center;

}

.location-intro__content h2{

  margin: 0;
  color: var(--bav-blue-deep);
  font-family: var(--font-heading);
  font-size: clamp(50px, 5vw, 66px);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.035em;

}

.location-intro__content h2 em{

     display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.location-intro__content p{

    color:#666;

    line-height:1.95;

    margin-bottom:22px;

    font-size:1.05rem;

}

.location-intro__image{

    overflow:hidden;

    border-radius:28px;

    margin:0;

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

}

.location-intro__image img{

    width:100%;

    aspect-ratio:4/5;

    object-fit:cover;

    display:block;

    transition:.8s;

}

.location-intro__image:hover img{

    transform:scale(1.05);

}

/* Stats */

.location-stats{

    margin-top:55px;

    display:grid;

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

    gap:18px;

}

.location-stat{

    padding:26px 18px;

    background:#faf8f3;

    border:1px solid #ece5d8;

    border-radius:18px;

    text-align:center;

    transition:.35s;

}

.location-stat:hover{

    transform:translateY(-5px);

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

}

.location-stat strong{

    display:block;

    font-size:2rem;

    font-weight:600;

    color:var(--accent);

    margin-bottom:8px;

    font-family:var(--font-heading);

}

.location-stat span{

    color:#666;

    font-size:.95rem;

    line-height:1.5;

}

/* Tablet */

@media(max-width:991px){

.location-intro{

    padding:90px 0;

}

.location-intro__container{

    grid-template-columns:1fr;

    gap:50px;

}

.location-intro__visual{

    order:2;
    width:100%;
    max-width:100%;
    margin-top:40px;

}

.location-intro__image{

    max-width:560px;
    margin:0 auto;

}

.location-intro__content{

    text-align:center;

}

.location-stats{

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

}

}

/* Mobile */

@media (max-width:768px){

.location-intro{

    padding:70px 0;

}

.location-intro__container{

    gap:45px;

}

/* Content */

.location-intro__content{

    order:1;
    text-align:center;

}

.location-intro__content h2{

    font-size:2.2rem;
    line-height:1.18;
    margin:15px 0 25px;

}

.location-intro__content p{

    font-size:1rem;
    line-height:1.8;

}

/* Image */

.location-intro__visual{

    order:2;
    width:100%;

}

.location-intro__image{

    border-radius:22px;
    max-width:100%;
    margin:0 auto;

}

.location-intro__image img{

    width:100%;
    aspect-ratio:16 / 10;
    height:auto;
    object-fit:cover;

}

/* Stats */

.location-stats{

    margin-top:45px;

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

    gap:14px;

}

.location-stat{

    padding:20px 14px;

}

.location-stat strong{

    font-size:1.5rem;

}

.location-stat span{

    font-size:.85rem;

}

}


/* ==========================================
   A PERFECT DAY
========================================== */

.seminyak-journey{

    padding:130px 0;
    background:#faf8f4;

}

.seminyak-journey .container{

    width:min(92%,1100px);
    margin:auto;

}

/* HEADER */

.seminyak-journey__header{

    max-width:820px;
    margin:0 auto 90px;
    text-align:center;

}

.seminyak-journey__header h2{

  margin: 0;
  color: var(--bav-blue-deep);
  font-family: var(--font-heading);
  font-size: clamp(50px, 5vw, 66px);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.035em;

}

.seminyak-journey__header h2 em{

     display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.journey-intro{

    max-width:720px;
    margin:auto;
    color:#666;
    line-height:1.9;

}

/* TIMELINE */

.journey{

    position:relative;

}

.journey::before{

    content:"";
    position:absolute;
    left:120px;
    top:20px;
    bottom:20px;
    width:1px;
    background:#e6dfd5;

}

.journey-item{

    display:grid;
    grid-template-columns:170px 1fr;
    gap:60px;
    padding:45px 0;
    position:relative;

}

.journey-item::before{

    content:"";
    position:absolute;
    left:113px;
    top:58px;

    width:16px;
    height:16px;

    border-radius:50%;

    background:var(--accent);

    border:4px solid #faf8f4;

}

/* LEFT */

.journey-time{

    text-align:right;
    padding-right:35px;

}

.journey-icon{

    font-size:1.5rem;
    margin-bottom:10px;

}

.journey-label{

    font-family:"Cormorant Garamond",serif;
    font-size:2rem;
    line-height:1.1;

}

/* CONTENT */

.journey-content{

    max-width:700px;

}

.journey-content h3{

    font-size:clamp(1.8rem,2vw,2rem);
    font-weight:300;
    line-height:1.2;
    margin:0;

}

.journey-content h3 em{

    display:block;
    margin-top:6px;

    font-family:"Cormorant Garamond",serif;
    font-style:italic;
    color:var(--accent);

}

.journey-badge{

    display:inline-flex;

    margin:25px 0;

    padding:10px 18px;

    background:#f7f1e8;

    border:1px solid #eadfce;

    border-radius:999px;

    font-size:.9rem;

    font-weight:600;

    color:var(--accent);

}

.journey-content p{

    color:#666;
    line-height:1.9;
    max-width:620px;

}

.journey-home{

    border-top:1px solid #e8e2d8;
    margin-top:40px;
    padding-top:60px;

}

/* MOBILE */

@media(max-width:991px){

.journey::before{

left:24px;

}

.journey-item{

grid-template-columns:1fr;

padding-left:70px;

gap:20px;

}

.journey-item::before{

left:17px;

}

.journey-time{

text-align:left;

padding-right:0;

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

}

.journey-icon{

margin:0;

}

.journey-label{

font-size:1.8rem;

}

}

@media(max-width:768px){

.seminyak-journey{

padding:90px 0;

}

.seminyak-journey__header{

margin-bottom:60px;

}

.journey-content h3{

font-size:1.8rem;

}

}

/* ==========================================
   DISCOVER SEMINYAK
========================================== */

.discover-seminyak{

    padding:130px 0;

    background:#fff;

}

.discover-seminyak .container{

    width:min(92%,1200px);

    margin:auto;

    text-align:center;

}

.discover-intro{

    max-width:760px;

    margin:35px auto 90px;

    color:#666;

    line-height:1.9;

}

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

.discover-header{

    max-width:820px;
    margin:0 auto 90px;
    text-align:center;

}

.discover-header .section-eyebrow{

    display:inline-block;
    margin-bottom:18px;

}

.discover-header h2{

  margin: 0;
  color: var(--bav-blue-deep);
  font-family: var(--font-heading);
  font-size: clamp(50px, 5vw, 66px);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.035em;

}

.discover-header h2 em{

     display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.discover-intro{

    max-width:760px;
    margin:0 auto;
    color:#666;
    line-height:1.95;
    font-size:1.05rem;

}

/* Items */

.discover-item{

    width:min(92%,1200px);

    margin:0 auto 120px;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

}

.discover-item:last-child{

    margin-bottom:0;

}

.discover-item--reverse .discover-item__image{

    order:2;

}

.discover-item--reverse .discover-item__content{

    order:1;

}

/* Image */

.discover-item__image{

    overflow:hidden;

    border-radius:28px;

}

.discover-item__image img{

    width:100%;

    aspect-ratio:4/3;

    object-fit:cover;

    display:block;

    transition:.7s;

}

.discover-item:hover img{

    transform:scale(1.05);

}

/* Content */

.discover-item__content{

    text-align:left;

}

.discover-item__content span{

    display:inline-block;

    margin-bottom:15px;

    font-family:"Cormorant Garamond",serif;

    font-size:1rem;

    color:var(--accent);

}

.discover-item__content h3{

    font-size:clamp(1.8rem,3vw,2.2rem);
    line-height:1.35;
    font-weight:300;
    margin:18px 0 25px;

}

.discover-item__content h3 em{

    display:block;
    font-family:"Cormorant Garamond",serif;
    font-style:italic;
    color:var(--accent);

}

.discover-item__content p{

    color:#666;

    line-height:1.95;

    margin-bottom:25px;

}

.discover-item__content small{

    display:inline-block;

    padding:10px 18px;

    border-radius:999px;

    background:#faf8f3;

    color:#666;

    font-size:.9rem;

}



/* Mobile */

@media(max-width:991px){

.discover-item{

    grid-template-columns:1fr;

    gap:40px;

    margin-bottom:80px;

}

.discover-item__image{

    order:-1!important;

}

.discover-item__content{

    text-align:center;

}

}

@media(max-width:768px){

.discover-seminyak{

    padding:80px 0;

}

.discover-item{

    margin-bottom:70px;

}

.discover-item__image img{

    height:300px;

    aspect-ratio:auto;

}

.discover-item__content h3{

    font-size:1.9rem;

}

.discover-item__content span{

    font-size:2.4rem;

}

}

/* ==========================================
   LOCAL FAVORITES
========================================== */

.local-favorites{

    padding:120px 0;
    background:#faf8f4;

}

.local-favorites .container{

    width:min(92%,1200px);
    margin:auto;
    text-align:center;

}

.favorites-intro{

    max-width:760px;
    margin:35px auto 70px;
    color:#666;
    line-height:1.9;

}

.local-favorites h2{

  margin: 0;
  color: var(--bav-blue-deep);
  font-family: var(--font-heading);
  font-size: clamp(50px, 5vw, 66px);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.035em;

}

.local-favorites h2 em{

    display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.favorites-grid{

    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;

}

.favorite-card{

    background:#faf8f4;
    border-radius:24px;
    padding:38px;
    text-align:left;
    transition:.35s;
    border:1px solid #ece5db;

}

.favorite-card:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 50px rgba(0,0,0,.08);

}

.favorite-label{

    display:inline-block;
    padding:7px 16px;
    background:#fff;
    color:var(--accent);
    border-radius:999px;
    font-size:.8rem;
    font-weight:600;
    letter-spacing:.5px;
    margin-bottom:20px;

}

.favorite-card h3{

    font-size:1.5rem;
    margin-bottom:15px;

}

.favorite-card p{

    color:#666;
    line-height:1.85;
    margin:0;

}

@media(max-width:991px){

.favorites-grid{

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

}

}

@media(max-width:768px){

.local-favorites{

    padding:80px 0;

}

.favorites-grid{

    grid-template-columns:1fr;
    gap:20px;

}

.favorite-card{

    padding:30px;

}

}

/* ==========================================
   RETURN HOME
========================================== */

.return-home{

    padding:130px 0;

    background:#fff;

}

.return-home .container{

    width:min(92%,1200px);

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

}

.return-home__image{

    overflow:hidden;

    border-radius:30px;

}

.return-home__image img{

    width:100%;

    aspect-ratio:4/5;

    object-fit:cover;

    display:block;

}

.return-home__content h2{

    margin:20px 0 30px;

}

.return-home__content p{

    color:#666;

    line-height:1.9;

    margin-bottom:22px;

}

.return-features{

    margin:40px 0;

    display:grid;

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

    gap:18px;

}

.return-features div{

    display:flex;

    align-items:center;

    gap:15px;

    padding:18px 22px;

    background:#fff;

    border-radius:18px;

    border:1px solid #ece6dc;

}

.return-features span{

    font-weight:500;

}

@media(max-width:991px){

.return-home .container{

grid-template-columns:1fr;

gap:50px;

}

.return-home__image{

order:-1;

max-width:520px;

margin:auto;

}

.return-home__content{

text-align:center;

}

.return-features{

grid-template-columns:1fr;

}

}

@media(max-width:768px){

.return-home{

padding:80px 0;

}

.return-home__image img{

height:340px;

}

}

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

.location-faq{

    padding:120px 0;

    background:#faf8f4;

}

.location-faq .container{

    width:min(92%,900px);

    margin:auto;

    text-align:center;

}

.faq-intro{

    max-width:700px;

    margin:35px auto 70px;

    color:#666;

    line-height:1.9;

}

.faq-wrapper{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.faq-item{

    background:#fff;

    border:1px solid #ece6db;

    border-radius:20px;

    overflow:hidden;

    transition:.35s;

}

.faq-item:hover{

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

}

.faq-item summary{

    list-style:none;

    cursor:pointer;

    padding:28px 32px;

    font-size:1.15rem;

    font-weight:500;

    color:#333;

    text-align:left;

    position:relative;

}

.faq-item summary::-webkit-details-marker{

    display:none;

}

.faq-item summary::after{

    content:"+";

    position:absolute;

    right:30px;

    top:50%;

    transform:translateY(-50%);

    font-size:1.6rem;

    color:var(--accent);

    transition:.3s;

}

.faq-item[open] summary::after{

    content:"−";

}

.faq-item p{

    padding:0 32px 30px;

    margin:0;

    text-align:left;

    color:#666;

    line-height:1.9;

}

@media(max-width:768px){

.location-faq{

    padding:80px 0;

}

.faq-item summary{

    padding:22px 24px;

    font-size:1.05rem;

}

.faq-item p{

    padding:0 24px 24px;

}

}

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

.location-cta{

    position:relative;

    padding:160px 0;

    overflow:hidden;

    color:#fff;

    text-align:center;

}

.location-cta__bg{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

}

.location-cta__overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(

        rgba(10,20,28,.72),

        rgba(10,20,28,.72)

    );

}

.location-cta .container{

    position:relative;

    z-index:2;

    width:min(92%,850px);

    margin:auto;

}

.location-cta h2{

    margin:20px 0 30px;

    font-size:clamp(2.8rem,5vw,4.8rem);

    font-weight:300;

    line-height:1.1;

}

.location-cta h2 em{

    display:block;

    font-family:"Cormorant Garamond",serif;

    font-style:italic;

    color:var(--accent);

}

.location-cta p{

    max-width:700px;

    margin:0 auto 45px;

    font-size:1.1rem;

    line-height:2;

    color:rgba(255,255,255,.90);

}

/* Features */

.cta-features{

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:16px;

    margin-bottom:50px;

}

.cta-features span{

    padding:12px 22px;

    border-radius:999px;

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

    backdrop-filter:blur(10px);

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

    font-size:.95rem;

}

/* Buttons */

.cta-buttons{

    display:flex;

    justify-content:center;

    gap:18px;

    flex-wrap:wrap;

}

.cta-buttons .btn-primary{

    padding:18px 40px;

}

.cta-buttons .btn-secondary{

    padding:18px 40px;

}

@media(max-width:768px){

.location-cta{

padding:100px 0;

}

.cta-buttons{

flex-direction:column;

}

.cta-buttons a{

width:100%;

}

.cta-features{

gap:12px;

}

.cta-features span{

width:100%;

}

}