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

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

.contact-hero{

    position:relative;

    min-height:100vh;

    display:flex;
    align-items:center;

    overflow:hidden;

    color:#fff;

}

/* Background */

.contact-hero__bg{

    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

}

/* Overlay */

.contact-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 */

.contact-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 */

.contact-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 */

.contact-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;

}

.contact-hero__content h1 em{

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

}

/* Intro */

.contact-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-contact-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-contact-card h3{

    margin-bottom:25px;

    font-size:1.4rem;

}

.hero-contact-card ul{

    list-style:none;

    margin:0;

    padding:0;

}

.hero-contact-card li{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:16px 0;

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

}

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

    border-bottom:none;

}

.hero-contact-card strong{

    color:#D8B16A;

    font-size:1rem;

}

.hero-contact-card span{

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

}

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

@media(max-width:991px){

.contact-hero{

    min-height:auto;

}

.contact-hero .container{

    grid-template-columns:1fr;

    gap:45px;

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

}

.contact-hero__content{

    text-align:center;

    max-width:700px;

    margin:auto;

}

.contact-hero__content p{

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

}

.hero-buttons{

    justify-content:center;

}

.hero-contact-card{

    transform:none;

    max-width:520px;

    margin:auto;

}

}

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

@media(max-width:768px){

.contact-hero{

    min-height:100vh;

}

.contact-hero .container{

    width:92%;

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

}

.breadcrumb{

    text-align:center;

    margin-bottom:28px;

}

.contact-hero__content h1{

    font-size:2.8rem;

}

.contact-hero__content p{

    font-size:1rem;

    line-height:1.8;

}

.btn-primary{

    display: none;

}

.btn-primary,
.btn-secondary{

    width:100%;

    text-align:center;

}

.hero-contact-card{

    width:100%;

    padding:28px;
	display: none;

}

.hero-contact-card li{

    flex-direction:column;

    align-items:flex-start;

    gap:6px;

}

}

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

.contact-welcome{

    padding:120px 0;

    background:#fff;

}

.contact-welcome__content{

    max-width:820px;

    margin:auto;

    text-align:center;

}

.contact-welcome .section-eyebrow{

    display:inline-block;

    margin-bottom:22px;

    font-size:.82rem;

    font-weight:600;

    letter-spacing:4px;

    text-transform:uppercase;

    color:#b8925c;

}

.contact-welcome 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;

}

.contact-welcome h2 em{

    display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.contact-welcome p{

    max-width:760px;

    margin:30px auto 24px;

    font-size:1.08rem;

    line-height:1.95;

    color:#666;

}

.contact-divider{

    margin-top:55px;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:18px;

    color:#b8925c;

    font-size:18px;

}

.contact-divider span{

    width:80px;

    height:1px;

    background:#d8c3a5;

    display:block;

}

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

@media(max-width:991px){

.contact-welcome{

padding:100px 0;

}

.contact-welcome h2{

font-size:3rem;

}

}

@media(max-width:768px){

.contact-welcome{

padding:80px 0;

}

.contact-welcome h2{

font-size:2.5rem;

}

.contact-welcome p{

font-size:1rem;

line-height:1.8;

}

.contact-divider span{

width:50px;

}

}

@media(max-width:576px){

.contact-welcome{

padding:70px 0;

}

.contact-welcome h2{

font-size:2.15rem;

}

.contact-welcome .section-eyebrow{

font-size:.75rem;

letter-spacing:3px;

}

}

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

.contact-section{

    padding:120px 0;

    background:

linear-gradient(

180deg,

#fbfaf8,

#f7f4ef

);


}

.contact-section .container{

    max-width:1320px;

    margin:auto;

    padding:0 40px;

}

.contact-grid{

    display:grid;

    grid-template-columns:0.8fr 1.3fr;

    gap:60px;

    align-items:start;

}

.contact-info 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;

}

.contact-info h2 em{

    display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.contact-intro{

    color:#666;

    line-height:1.9;

    margin-bottom:45px;

}

.contact-item{

    display:flex;

    gap:20px;

    margin-bottom:35px;

}

.contact-icon{

    width:58px;

    height:58px;

    border-radius:50%;

    background:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:22px;

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

    flex-shrink:0;

}

.contact-item h3{

    margin:0 0 8px;

    font-size:1rem;

    color:#2d251f;

}

.contact-item p,
.contact-item a{

    color:#666;

    text-decoration:none;

    line-height:1.8;

}

.contact-item a:hover{

    color:#b8925c;

}

.contact-trust{

    margin-top:45px;

    padding-top:30px;

    border-top:1px solid #ddd;

}

.contact-trust div{

    margin-bottom:14px;

    color:#555;

}

/* FORM */

.contact-form-card{

    background:#fff;

    border-radius:24px;

    padding:50px;

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

}

.contact-form-card h3{

    font-family:'Cormorant Garamond',serif;

    font-size:2.2rem;

    margin-bottom:30px;

    color:#2d251f;

}

.contact-form-card form{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.contact-form-card input,
.contact-form-card textarea{

    width:100%;

    padding:18px 22px;

    border:1px solid #ddd;

    border-radius:14px;

    font-family:Manrope,sans-serif;

    font-size:15px;

    transition:.3s;

    background:#fff;

}

.contact-form-card textarea{

    resize:vertical;

    min-height:180px;

}

.contact-form-card input:focus,
.contact-form-card textarea:focus{

    border-color:#b8925c;

    outline:none;

    box-shadow:0 0 0 4px rgba(184,146,92,.12);

}

.contact-form-card button{

    margin-top:10px;

    width:100%;

}

/* RESPONSIVE */

@media(max-width:991px){

.contact-grid{

grid-template-columns:1fr;

gap:70px;

}

.contact-form-card{

padding:40px;

}

}

@media(max-width:768px){

.contact-section{

padding:90px 0;

}

.contact-info h2{

font-size:2.7rem;

}

.contact-form-card{

padding:30px;

}

}

@media(max-width:576px){

.contact-info h2{

font-size:2.2rem;

}

.contact-form-card{

padding:25px;

border-radius:18px;

}

}

/* ==========================================================
   GETTING HERE
========================================================== */

.getting-here{

    padding:120px 0;
    background:#fff;

}

/* Container khusus section ini */

.getting-here .container{

    max-width:1320px;
    margin:0 auto;
    padding:0 50px;

}

/* Heading */

.getting-heading{

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

}

.getting-heading h2{

    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2.6rem,4vw,3.8rem);
    line-height:1.15;
    margin:24px 0 30px;
    color:#2d251f;
    font-weight:500;

}

.getting-heading h2 em{

    display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.getting-heading p{

    max-width:760px;
    margin:auto;
    color:#666;
    line-height:1.9;
    font-size:1.08rem;

}

/* Grid */

.getting-grid{

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

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

    gap:28px;

}

/* Item */

.getting-item{

    display:flex;
    flex-direction:column;
    align-items:center;

    text-align:center;

    padding:30px 18px;

    border-radius:22px;

    transition:.35s;

}

.getting-item:hover{

    background:#faf8f5;

}

/* Icon */

.getting-icon{

    width:82px;
    height:82px;

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

    margin-bottom:22px;

    border-radius:20px;

    background:#fff;

    border:1px solid rgba(184,146,92,.18);

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

    transition:.35s;

}

.getting-icon svg{

    width:34px;
    height:34px;

    stroke:#b8925c;
    stroke-width:1.8;

    fill:none;

    stroke-linecap:round;
    stroke-linejoin:round;

    transition:.35s;

}

.getting-item:hover .getting-icon{

    background:#b8925c;
    border-color:#b8925c;

    transform:translateY(-8px);

    box-shadow:0 18px 45px rgba(184,146,92,.18);

}

.getting-item:hover svg{

    stroke:#fff;

}

/* Text */

.getting-item h3{

    margin-bottom:10px;

    font-size:1rem;

    color:#2d251f;

}

.getting-item strong{

    display:block;

    margin-bottom:12px;

    font-family:'Cormorant Garamond',serif;

    font-size:2rem;

    font-weight:500;

    color:#b8925c;

}

.getting-item p{

    max-width:170px;

    margin:0 auto;

    color:#777;

    line-height:1.8;

    font-size:.95rem;

}

/* Responsive */

@media (max-width:1100px){

.getting-grid{

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

}

}

@media (max-width:768px){

.getting-here{

padding:90px 0;

}

.getting-grid{

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

}

.getting-heading{

margin-bottom:60px;

}

}

@media (max-width:576px){

.getting-grid{

grid-template-columns:1fr;

}

}

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

.contact-map{

    padding:120px 0;

    background:#faf8f5;

}

.contact-map .container{

    max-width:1320px;

    margin:auto;

    padding:0 50px;

}

.contact-map-heading{

    max-width:760px;

    margin:0 auto 70px;

    text-align:center;

}

.contact-map-heading 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;

}

.contact-map-heading h2 em{

    display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.contact-map-heading p{

    font-size:1.05rem;

    color:#666;

    line-height:1.9;

}

.map-wrapper{

    max-width:1180px;

    margin:0 auto;

    overflow:hidden;

    border-radius:24px;

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

}

.map-wrapper iframe{

    width:100%;

    height:560px;

    border:0;

    display:block;

}

.map-info{

    max-width:1180px;

    margin:45px auto 0;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:40px;

    flex-wrap:wrap;

}

.map-info strong{

    display:block;

    margin-bottom:10px;

    color:#2d251f;

}

.map-info p{

    margin:0;

    color:#666;

    line-height:1.8;

}

/* Responsive */

@media(max-width:768px){

.contact-map{

padding:90px 0;

}

.map-wrapper iframe{

height:420px;

}

.map-info{

flex-direction:column;

text-align:center;

}

}

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

@media(max-width:1100px){

.getting-grid{

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

row-gap:60px;

}

}

@media(max-width:768px){

.getting-here{

padding:90px 0;

}

.getting-grid{

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

gap:40px;

}

.getting-heading{

margin-bottom:60px;

}

}

@media(max-width:520px){

.getting-grid{

grid-template-columns:1fr;

}

.getting-item{

max-width:320px;

margin:auto;

}

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

.contact-faq{

    padding:120px 0;

    background:#fff;

}

.faq-heading{

    max-width:760px;

    margin:0 auto 70px;

    text-align:center;

}

.faq-heading 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;

}

.faq-heading h2 em{

    display: block;

    margin-top: 8px;

    color: var(--bav-blue);

    font-weight: 400;

}

.faq-heading p{

    color:#666;

    line-height:1.9;

    font-size:1.05rem;

}

.faq-list{

    max-width:900px;

    margin:auto;

}

.faq-item{

    border-bottom:1px solid rgba(0,0,0,.08);

}

.faq-item summary{

    list-style:none;

    cursor:pointer;

    padding:28px 0;

    font-size:1.15rem;

    font-weight:500;

    color:#2d251f;

    position:relative;

    transition:.3s;

}

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

    display:none;

}

.faq-item summary::after{

    content:"+";

    position:absolute;

    right:0;

    top:50%;

    transform:translateY(-50%);

    font-size:28px;

    color:#b8925c;

    transition:.35s;

}

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

    content:"−";

}

.faq-content{

    padding:0 40px 30px 0;

    color:#666;

    line-height:1.9;

    font-size:1rem;

}

.faq-content strong{

    color:#2d251f;

}

@media (max-width:768px){

.contact-faq{

    padding:90px 0;

}

.contact-faq .container{

    padding:0 22px;

}

.faq-list{

    max-width:100%;

}

.faq-item summary{

    font-size:1.05rem;

    padding:22px 18px;

    line-height:1.55;

}

.faq-item summary::after{

    right:18px;

}

.faq-content{

    padding:0 18px 24px 18px;

    line-height:1.8;

}

}

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

}

}

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

.hp-field{
display:none;
}

.btn-text{
    display:inline;
}

.btn-loading{
    display:none;
}

.btn-submit.loading .btn-text{
    display:none;
}

.btn-submit.loading .btn-loading{
    display:inline;
}

.btn-submit{
    width:100%;
    height:58px;

    background:#1f365c;      /* same navy as header */

    color:#fff;

    border:none;

    border-radius:8px;

    font-size:16px;

    font-weight:600;

    letter-spacing:.5px;

    cursor:pointer;

    transition:all .3s ease;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:10px;
}

.btn-submit:hover{

    background:#c8a76a;

    color:#1f365c;

    transform:translateY(-2px);

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

}

.btn-submit:active{

    transform:translateY(0);

}

.btn-submit:disabled{

    opacity:.75;

    cursor:not-allowed;

}

.btn-submit.loading{

    background:#7d8899;

    pointer-events:none;

}

.spinner{

    width:18px;

    height:18px;

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

    border-top-color:#fff;

    border-radius:50%;

    animation:spin .7s linear infinite;

}

@keyframes spin{

    to{

        transform:rotate(360deg);

    }

}

.popup{

position:fixed;

inset:0;

display:flex;

justify-content:center;

align-items:center;

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

backdrop-filter:blur(5px);

opacity:0;

visibility:hidden;

transition:.35s ease;

z-index:99999;

}

.popup.show{

opacity:1;

visibility:visible;

}

.popup-card{

width:min(92%,430px);

background:#fff;

border-radius:18px;

padding:40px;

text-align:center;

transform:translateY(25px);

transition:.35s;

box-shadow:0 30px 60px rgba(0,0,0,.18);

}

.popup.show .popup-card{

transform:translateY(0);

}

.popup-icon{

width:80px;

height:80px;

border-radius:50%;

margin:auto;

margin-bottom:20px;

display:flex;

justify-content:center;

align-items:center;

font-size:40px;

font-weight:bold;

}

.popup.success .popup-icon{

background:#e9f9ef;

color:#1d8f45;

}

.popup.success .popup-icon::before{

content:"✓";

}

.popup.error .popup-icon{

background:#fdecec;

color:#d93025;

}

.popup.error .popup-icon::before{

content:"✕";

}

.popup-title{

font-family:"Cormorant Garamond",serif;

font-size:2rem;

margin-bottom:15px;

color:#2b2b2b;

}

.popup-message{

line-height:1.8;

color:#666;

margin-bottom:30px;

}

#popupClose{

border:none;

background:#8b6b3f;

color:#fff;

padding:14px 38px;

border-radius:40px;

cursor:pointer;

transition:.3s;

font-weight:600;

}

#popupClose:hover{

background:#6f5432;

}

@media(max-width:768px){

.popup-card{

padding:30px 22px;

}

.popup-title{

font-size:1.7rem;

}

.popup-message{

font-size:.95rem;

}

}