/* ======================================================
   PARADISE ESCAPE
   CONTACT PAGE
   FULL CSS REPLACEMENT
====================================================== */


/* ======================================================
   BASE
====================================================== */

.pe-contact-page{
  --pe-bg:#111210;
  --pe-panel:#181916;
  --pe-panel-2:#1D1E1A;
  --pe-gold:#B79A62;
  --pe-gold-dark:#9E8352;
  --pe-gold-soft:#CDB886;
  --pe-ivory:#F4F0E7;
  --pe-muted:#B9B4AA;
  --pe-border:rgba(183,154,98,.28);

  width:100%;
  margin:0;
  padding:0;
  color:var(--pe-ivory);
  background:var(--pe-bg);
  font-family:"Alone Kaium",Arial,sans-serif;
}

.pe-contact-page *{
  box-sizing:border-box;
}

.pe-contact-page h1,
.pe-contact-page h2,
.pe-contact-page h3{
  margin-top:0;
  font-family:"Marcellus",Georgia,serif;
  font-weight:400;
  color:var(--pe-ivory);
}

.pe-contact-page a{
  text-decoration:none;
}

.pe-contact-kicker{
  margin:0 0 14px;
  color:var(--pe-gold-soft);
  font-size:13px;
  line-height:1.3;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
}


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

.pe-contact-hero{
  position:relative;
  min-height:540px;
  display:flex;
  align-items:center;
  overflow:hidden;
  border:1px solid var(--pe-border);
  border-radius:24px;
  isolation:isolate;
}

.pe-contact-hero-bg{
  position:absolute;
  inset:0;
  z-index:-3;

  background-image:
    var(--pe-contact-hero-image);

  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

.pe-contact-hero-overlay{
  position:absolute;
  inset:0;
  z-index:-2;

  background:
    linear-gradient(
      90deg,
      rgba(10,11,9,.94) 0%,
      rgba(10,11,9,.78) 38%,
      rgba(10,11,9,.40) 67%,
      rgba(10,11,9,.16) 100%
    );
}

.pe-contact-hero-content{
  width:min(650px,64%);
  padding:68px;
}

.pe-contact-hero h1{
  margin:0 0 22px;
  font-size:clamp(52px,5vw,78px);
  line-height:.98;
}

.pe-contact-hero-content > p:not(.pe-contact-kicker){
  max-width:580px;
  margin:0;
  color:var(--pe-ivory);
  font-size:20px;
  line-height:1.65;
}


/* ======================================================
   BUTTONS
====================================================== */

.pe-contact-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}

.pe-contact-btn{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 25px;
  border-radius:9px;
  font-size:16px;
  font-weight:500;
  transition:
    background .2s ease,
    border-color .2s ease,
    color .2s ease;
}

.pe-contact-btn-primary{
  background:var(--pe-gold);
  border:1px solid var(--pe-gold);
  color:#111210;
}

.pe-contact-btn-primary:hover{
  background:var(--pe-gold-dark);
  border-color:var(--pe-gold-dark);
  color:#111210;
}

.pe-contact-btn-outline{
  background:rgba(17,18,16,.34);
  border:1px solid rgba(244,240,231,.38);
  color:var(--pe-ivory);
}

.pe-contact-btn-outline:hover{
  border-color:var(--pe-gold);
  color:var(--pe-gold-soft);
}


/* ======================================================
   HOW CAN WE HELP
====================================================== */

.pe-contact-details{
  padding:105px 32px 0;
}

.pe-contact-section-head{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1fr);
  gap:80px;
  align-items:end;
  margin-bottom:42px;
}

.pe-contact-section-head h2{
  margin:0;
  font-size:clamp(42px,4vw,62px);
  line-height:1;
}

.pe-contact-section-head > p{
  max-width:620px;
  margin:0;
  justify-self:end;
  color:var(--pe-muted);
  font-size:19px;
  line-height:1.65;
}

.pe-contact-info-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.pe-contact-info-card{
  position:relative;
  min-width:0;
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:28px;
  overflow:hidden;
  border:1px solid var(--pe-border);
  border-radius:16px;
  background:var(--pe-panel);
  color:var(--pe-ivory);
  transition:
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.pe-contact-info-card:hover{
  background:#1C1D19;
  border-color:rgba(183,154,98,.62);
  transform:translateY(-2px);
}

.pe-contact-card-label{
  margin-bottom:12px;
  color:var(--pe-gold-soft);
  font-size:12px;
  line-height:1.3;
  letter-spacing:.15em;
}

.pe-contact-info-card strong{
  display:block;
  max-width:100%;
  padding-right:34px;
  overflow-wrap:anywhere;
  color:var(--pe-ivory);
  font-size:19px;
  line-height:1.5;
  font-weight:400;
}

.pe-contact-card-arrow{
  position:absolute;
  top:25px;
  right:25px;
  color:var(--pe-gold-soft);
  font-size:22px;
}


/* ======================================================
   INQUIRY
====================================================== */

.pe-contact-inquiry{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
  gap:72px;
  align-items:start;
  padding:110px 32px 0;
}

.pe-contact-inquiry-copy{
  position:sticky;
  top:120px;
}

.pe-contact-inquiry-copy h2{
  margin:0 0 26px;
  font-size:clamp(48px,4.6vw,68px);
  line-height:1;
}

.pe-contact-inquiry-copy > p:not(.pe-contact-kicker){
  max-width:470px;
  margin:0;
  color:var(--pe-muted);
  font-size:19px;
  line-height:1.7;
}

.pe-contact-mini-note{
  margin-top:34px;
  padding-top:24px;
  border-top:1px solid var(--pe-border);
}

.pe-contact-mini-note span{
  display:block;
  margin-bottom:8px;
  color:var(--pe-muted);
  font-size:15px;
}

.pe-contact-mini-note a{
  color:var(--pe-gold-soft);
  font-size:17px;
  font-weight:500;
}

.pe-contact-form-shell{
  width:100%;
  min-width:0;
  padding:34px;
  border:1px solid var(--pe-border);
  border-radius:20px;
  background:var(--pe-panel);
}

.pe-contact-form-heading{
  margin-bottom:28px;
  padding-bottom:22px;
  border-bottom:1px solid var(--pe-border);
}

.pe-contact-form-heading span{
  color:var(--pe-gold-soft);
  font-size:12px;
  letter-spacing:.17em;
}

.pe-contact-form-heading h3{
  margin:9px 0 0;
  font-size:34px;
  line-height:1.1;
}

.pe-contact-ownerrez-widget{
  width:100%;
  min-width:0;
  overflow:visible;
}

.pe-contact-ownerrez-widget iframe{
  display:block;
  width:100%!important;
  max-width:100%!important;
  border:0!important;
}


/* ======================================================
   GOOGLE MAP
====================================================== */

.pe-contact-location{
  padding:115px 32px 0;
}

.pe-contact-location-head{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:80px;
  align-items:start;
  margin-bottom:38px;
}

.pe-contact-location-title h2{
  margin:0;
  font-size:clamp(48px,4.6vw,68px);
  line-height:1;
}

.pe-contact-location-copy{
  width:100%;
  max-width:650px;
  justify-self:end;
}

.pe-contact-location-copy > p{
  margin:0 0 24px;
  color:var(--pe-muted);
  font-size:19px;
  line-height:1.7;
}

.pe-contact-location address{
  margin:0 0 22px;
  padding:20px 0;
  border-top:1px solid var(--pe-border);
  border-bottom:1px solid var(--pe-border);
  font-style:normal;
}

.pe-contact-location address span{
  display:block;
  margin-bottom:9px;
  color:var(--pe-gold-soft);
  font-size:12px;
  line-height:1.4;
  letter-spacing:.13em;
}

.pe-contact-location address strong{
  color:var(--pe-ivory);
  font-size:17px;
  line-height:1.55;
  font-weight:400;
}

.pe-contact-text-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--pe-gold-soft);
  font-size:17px;
  font-weight:500;
}

.pe-contact-google-map{
  width:100%;
  height:520px;
  overflow:hidden;
  border:1px solid var(--pe-border);
  border-radius:20px;
  background:var(--pe-panel);
}

.pe-contact-google-map iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}


/* ======================================================
   RESORT MAP
====================================================== */

.pe-contact-resort{
  padding:115px 32px 0;
}

.pe-contact-resort-head{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:80px;
  align-items:end;
  margin-bottom:40px;
}

.pe-contact-resort-head h2{
  margin:0;
  font-size:clamp(48px,4.8vw,72px);
  line-height:.98;
}

.pe-contact-resort-head > p{
  max-width:670px;
  margin:0;
  justify-self:end;
  color:var(--pe-muted);
  font-size:19px;
  line-height:1.7;
}


/* frame */

.pe-contact-resort-frame{
  width:100%;
  overflow:hidden;
  border:1px solid var(--pe-border);
  border-radius:20px;
  background:var(--pe-panel);
}


/* clickable image */

.pe-contact-resort-image{
  display:block;
  width:100%;
  padding:14px;
  overflow:hidden;
  background:#10110F;
}


/* IMPORTANT:
   map must never crop */

.pe-contact-resort-image img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  max-height:none;
  margin:0 auto;
  object-fit:contain;
  object-position:center;
  border-radius:11px;
}


/* toolbar */

.pe-contact-resort-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:19px 24px;
  border-top:1px solid var(--pe-border);
}

.pe-contact-resort-toolbar > span{
  color:var(--pe-muted);
  font-size:16px;
}

.pe-contact-resort-toolbar a{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--pe-gold-soft);
  font-size:16px;
  font-weight:500;
}


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

.pe-contact-final{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:80px;
  align-items:center;

  margin:115px 32px 30px;
  padding:58px;

  border:1px solid var(--pe-border);
  border-radius:22px;
  background:var(--pe-panel);
}

.pe-contact-final-heading h2{
  margin:0;
  font-size:clamp(48px,4.8vw,68px);
  line-height:1;
}

.pe-contact-final-content{
  width:100%;
  max-width:580px;
  justify-self:end;
}

.pe-contact-final-content > p{
  margin:0;
  color:var(--pe-muted);
  font-size:20px;
  line-height:1.65;
}


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

@media (max-width:1000px){

  .pe-contact-hero{
    min-height:500px;
  }

  .pe-contact-hero-content{
    width:72%;
    padding:50px;
  }


  .pe-contact-section-head,
  .pe-contact-location-head,
  .pe-contact-resort-head,
  .pe-contact-final{
    grid-template-columns:1fr;
    gap:28px;
  }


  .pe-contact-section-head > p,
  .pe-contact-location-copy,
  .pe-contact-resort-head > p,
  .pe-contact-final-content{
    justify-self:start;
    max-width:720px;
  }


  .pe-contact-inquiry{
    grid-template-columns:1fr;
    gap:38px;
  }

  .pe-contact-inquiry-copy{
    position:static;
  }


  .pe-contact-info-grid{
    grid-template-columns:1fr;
  }

  .pe-contact-info-card{
    min-height:145px;
  }


  .pe-contact-google-map{
    height:470px;
  }

}


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

@media (max-width:700px){

  .pe-contact-kicker{
    font-size:11px;
    letter-spacing:.14em;
  }


  /* HERO */

  .pe-contact-hero{
    min-height:560px;
    align-items:flex-end;
    border-radius:17px;
  }

  .pe-contact-hero-bg{
    background-position:center;
  }

  .pe-contact-hero-overlay{
    background:
      linear-gradient(
        0deg,
        rgba(10,11,9,.97) 0%,
        rgba(10,11,9,.76) 52%,
        rgba(10,11,9,.24) 100%
      );
  }

  .pe-contact-hero-content{
    width:100%;
    padding:32px 24px 34px;
  }

  .pe-contact-hero h1{
    font-size:49px;
  }

  .pe-contact-hero-content > p:not(.pe-contact-kicker){
    font-size:18px;
    line-height:1.55;
  }


  .pe-contact-actions{
    width:100%;
  }

  .pe-contact-btn{
    flex:1 1 150px;
  }


  /* SECTION SPACING */

  .pe-contact-details,
  .pe-contact-inquiry,
  .pe-contact-location,
  .pe-contact-resort{
    padding-top:76px;
    padding-left:0;
    padding-right:0;
  }


  .pe-contact-section-head,
  .pe-contact-location-head,
  .pe-contact-resort-head{
    gap:20px;
    margin-bottom:26px;
  }


  .pe-contact-section-head h2,
  .pe-contact-location-title h2,
  .pe-contact-resort-head h2,
  .pe-contact-inquiry-copy h2{
    font-size:43px;
  }


  .pe-contact-section-head > p,
  .pe-contact-location-copy > p,
  .pe-contact-resort-head > p,
  .pe-contact-inquiry-copy > p:not(.pe-contact-kicker){
    font-size:18px;
    line-height:1.6;
  }


  /* INFO CARDS */

  .pe-contact-info-card{
    min-height:130px;
    padding:23px;
  }

  .pe-contact-info-card strong{
    font-size:17px;
  }


  /* FORM */

  .pe-contact-form-shell{
    padding:22px 16px;
    border-radius:16px;
  }

  .pe-contact-form-heading h3{
    font-size:29px;
  }


  /* GOOGLE MAP */

  .pe-contact-google-map{
    height:390px;
    border-radius:16px;
  }


  /* RESORT MAP */

  .pe-contact-resort-frame{
    border-radius:16px;
  }

  .pe-contact-resort-image{
    padding:5px;
  }

  .pe-contact-resort-image img{
    width:100%;
    max-width:100%;
    height:auto;
    object-fit:contain;
    object-position:center;
    border-radius:10px;
  }

  .pe-contact-resort-toolbar{
    padding:15px;
  }

  .pe-contact-resort-toolbar > span{
    font-size:14px;
  }

  .pe-contact-resort-toolbar a{
    font-size:14px;
  }


  /* FINAL CTA */

  .pe-contact-final{
    margin:76px 0 24px;
    padding:30px 24px;
    gap:22px;
    border-radius:17px;
  }

  .pe-contact-final-heading h2{
    font-size:43px;
  }

  .pe-contact-final-content > p{
    font-size:18px;
  }

}


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

@media (max-width:480px){

  .pe-contact-hero{
    min-height:520px;
  }

  .pe-contact-hero h1{
    font-size:43px;
  }

  .pe-contact-btn{
    width:100%;
    flex:1 1 100%;
  }


  .pe-contact-section-head h2,
  .pe-contact-location-title h2,
  .pe-contact-resort-head h2,
  .pe-contact-inquiry-copy h2,
  .pe-contact-final-heading h2{
    font-size:39px;
  }


  .pe-contact-info-card strong{
    padding-right:22px;
    font-size:16px;
  }


  .pe-contact-google-map{
    height:340px;
  }


  .pe-contact-resort-toolbar{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }

}