/* ==========================
        CONTACT HERO
========================== */

.contactHero{

    position:relative;

    width:100%;

    height:85vh;

    overflow:hidden;

}

.contactHeroImg{

    width:100%;

    height:100%;

    object-fit:cover;

}

.contactOverlay{

    position:absolute;

    inset:0;

    background:linear-gradient(

        rgba(0,0,0,.65),

        rgba(0,0,0,.45)

    );

}

.contactHeroText{

    position:absolute;

    top:50%;

    left:8%;

    transform:translateY(-50%);

    color:#fff;

    max-width:620px;

}

.contactHeroText span{

    color:#D8B26E;

    letter-spacing:5px;

    font-size:14px;

    font-weight:600;

}

.contactHeroText h1{

    font-family:'Playfair Display',serif;

    font-size:78px;

    line-height:1.05;

    margin:25px 0;

}

.contactHeroText p{

    line-height:2;

    font-size:18px;

    color:#eee;

}

@media(max-width:768px){

.contactHero{

    height:70vh;

}

.contactHeroText{

    left:25px;

    right:25px;

}

.contactHeroText h1{

    font-size:48px;

}

.contactHeroText p{

    font-size:16px;

}

}

/* ==========================
      CONTACT INFO
========================== */

.contactInfoSection{

    margin-top:-90px;

    position:relative;

    z-index:20;

    padding:0 8% 100px;

}

.contactInfoGrid{

    display:grid;

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

    gap:25px;

}

.contactInfoCard{

    background:#fff;

    padding:40px 30px;

    border-radius:28px;

    text-align:center;

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

    transition:.35s;

}

.contactInfoCard:hover{

    transform:translateY(-12px);

}

.contactIcon{

    width:80px;

    height:80px;

    margin:auto;

    border-radius:50%;

    background:#C8A46A;

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:28px;

    margin-bottom:25px;

}

.contactInfoCard h3{

    font-family:'Playfair Display',serif;

    font-size:28px;

    margin-bottom:15px;

}

.contactInfoCard p{

    color:#777;

    line-height:1.8;

}

@media(max-width:768px){

.contactInfoSection{

    margin-top:-60px;

    padding:0 20px 70px;

}

.contactInfoGrid{

    grid-template-columns:1fr;

    gap:20px;

}

.contactInfoCard{

    padding:35px;

}

}

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

.contactFormWrapper{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:40px;
    align-items:start;
}

.contactFormBox{
    background:#fff;
    padding:50px;
    border-radius:30px;
    box-shadow:0 20px 60px rgba(0,0,0,.08);
}

.contactFormBox{

    background:#fff;

    padding:50px;

    border-radius:30px;

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

}

.contactFormBox span{

    color:#C8A46A;

    letter-spacing:4px;

    font-size:13px;

    font-weight:600;

}

.contactFormBox h2{

    font-family:'Playfair Display',serif;

    font-size:48px;

    margin:20px 0 40px;

}

.inputRow{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:20px;

    margin-bottom:20px;

}

.contactFormBox input,
.contactFormBox select,
.contactFormBox textarea{

    width:100%;
    box-sizing:border-box;

    padding:18px;

    border:1px solid #ddd;
    border-radius:14px;

    font-family:'Poppins',sans-serif;
    font-size:15px;

    outline:none;

}

/* Date Field */

.dateField{

    position:relative;
    width:100%;

}

.dateField input[type="date"]{

    width:100%;
    box-sizing:border-box;

    display:block;

    appearance:none;
    -webkit-appearance:none;

    background:#fff;

}

/* Hide placeholder on desktop */

.dateField span{

    display:none;

}

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

@media (max-width:768px){

    .dateField span{

        display:block;

        position:absolute;

        left:18px;
        top:50%;

        transform:translateY(-50%);

        color:#999;

        font-size:15px;

        pointer-events:none;

        transition:.25s;

        z-index:1;

    }

    .dateField input[type="date"]{

        position:relative;

        z-index:2;

        background:transparent;

    }

    .dateField input[type="date"]:valid + span{

        display:none;

    }

}
.contactFormBox textarea{

    height:170px;

    resize:none;

    margin-top:20px;

}

.contactFormSection{
    padding:80px 8%;
    background:#F8F6F2;
}

.contactFormBox button{

    margin-top:30px;

    background:#C8A46A;

    color:#fff;

    border:none;

    padding:18px 40px;

    border-radius:50px;

    cursor:pointer;

    font-size:16px;

    transition:.3s;

}

.contactFormBox button:hover{

    background:#b88f4f;

}

.contactMap{
    background:#fff;
    border-radius:30px;
    padding:25px;
    box-shadow:0 20px 60px rgba(0,0,0,.08);

    display:flex;
    flex-direction:column;

    width:100%;
    min-height:100%;
}

.mapHeader{
    margin-bottom:18px;
}

.mapHeader h3{
    font-size:30px;
    margin:0;
    font-family:'Playfair Display',serif;
}

.mapHeader p{
    margin-top:8px;
    color:#666;
}

.contactMap iframe{
    width:100%;
    flex:1;
    min-height:650px;
    border:0;
    border-radius:18px;
    display:block;
}

@media(max-width:768px){

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

    .contactMap{
        min-height:420px;
    }

        .mapLabel{
        top:12px;
        left:12px;
        right:12px;
        max-width:none;
        font-size:14px;
        padding:12px 14px;
    }

    .mapLabel strong{
        font-size:16px;
    }

.contactFormWrapper{

    grid-template-columns:1fr;

    gap:30px;

}

.inputRow{

    grid-template-columns:1fr;

}

.contactFormBox{

    padding:30px;

}

.contactFormBox h2{

    font-size:34px;

}

.contactMap{

    border-radius:20px;

    overflow:hidden;

}

.contactMap iframe{

    width:100%;

    height:320px;

    min-height:320px;

    border:0;

}

}

.booking-wrapper{

    max-width:1400px;
    margin:auto;
    display:grid;
    grid-template-columns:1fr 550px;
    gap:50px;
    align-items:start;
    padding:80px 20px;

}

.booking-map{

    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.booking-map iframe{

    width:100%;
    height:650px;
    border:0;

}

.map-info{

    padding:20px;

}

@media(max-width:991px){

.booking-wrapper{

    grid-template-columns:1fr;

}

.booking-map iframe{

    height:350px;

}

}

/* ==========================
      SUCCESS MODAL
========================== */

.successModal{

    position:fixed;

    inset:0;

    display:none;

    justify-content:center;

    align-items:center;

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

    z-index:999999;

}

.successModal.show{

    display:flex !important;

}

.successBox{

    width:420px;

    max-width:90%;

    background:#fff;

    border-radius:25px;

    padding:45px;

    text-align:center;

    animation:popup .35s ease;

    position:relative;

    z-index:1000001;

    opacity:1 !important;

    visibility:visible !important;

    display:block !important;

}

@keyframes popup{

    from{

        transform:scale(.85);

        opacity:0;

    }

    to{

        transform:scale(1);

        opacity:1;

    }

}

.successIcon{

    font-size:70px;

    color:#4CAF50;

    margin-bottom:20px;

}

.successBox h2{

    font-family:'Playfair Display',serif;

    font-size:40px;

    margin-bottom:15px;

}

.successBox p{

    color:#666;

    line-height:1.8;

}

.referenceBox{

    margin:25px 0;

    padding:18px;

    background:#F8F6F2;

    border-radius:15px;

    font-size:15px;

}

.referenceBox strong{

    color:#C8A46A;

    font-size:22px;

}

.successBox button{

    background:#C8A46A;

    color:#fff;

    border:none;

    padding:15px 40px;

    border-radius:50px;

    cursor:pointer;

    font-size:16px;

}

.formMessage{

    display:none;

    margin-bottom:20px;

    padding:16px 20px;

    border-radius:14px;

    background:#EAF8EC;

    border:1px solid #6EC57A;

    color:#246B34;

    font-size:15px;

    line-height:1.6;

}

.formMessage.show{

    display:block;

}

.proofBox{

    margin:25px 0;

    padding:25px;

    border:1px solid #e7e7e7;

    border-radius:18px;

    background:#fafafa;

}

.paymentNotice{

    text-align:center;

    margin-bottom:20px;

}

.paymentNotice h4{

    color:#C8A46A;

    margin-bottom:8px;

}

.gcashQR{

    text-align:center;

    margin-bottom:25px;

}

.gcashQR img{

    width:240px;

    max-width:100%;

    border-radius:15px;

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

}

.uploadLabel{

    display:block;

    font-weight:600;

    margin-bottom:10px;

}

#proofFile{

    width:100%;

    padding:14px;

    border:1px solid #ddd;

    border-radius:12px;

    background:#fff;

}

.proofBox small{

    display:block;

    margin-top:10px;

    color:#777;

}

.scheduleRow{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:18px;
    margin:25px 0;
    align-items:center;
}

.scheduleRow .dateField,
.scheduleRow select{
    width:100%;
}

.scheduleRow input,
.scheduleRow select{
    height:60px;
}

@media(max-width:768px){

.scheduleRow{
    grid-template-columns:1fr;
    gap:15px;
}

}

.availabilityMessage{

    margin-top:12px;

    font-weight:600;

    font-size:15px;

}

.payment-notice{
    background:#fff8ef;
    border:1px solid #e5c78f;
    border-left:5px solid #c79b56;
    border-radius:12px;
    padding:18px 20px;
    margin:20px 0;
}

.payment-notice h4{
    margin:0 0 12px;
    color:#222;
    font-size:18px;
    font-weight:700;
}

.payment-notice p{
    margin:8px 0;
    color:#555;
    font-size:15px;
    line-height:1.6;
}

.payment-notice strong{
    color:#c79b56;
}