/* ===================================================================
   CONTACT US — PAGE-SPECIFIC STYLES
=================================================================== */

/* ===== PAGE BANNER ===== */
.contact-intro{
  background:var(--paper);
  padding:20px var(--gap) 50px;
}
.contact-intro-inner{
  max-width:1400px;
  margin:0 auto;
}
.contact-intro .page-logo{
  margin:20px 0 40px;
}
.contact-eyebrow{
  font-family:'Jost', sans-serif;
  letter-spacing:4px;
  font-size:12px;
  color:var(--accent);
  text-transform:uppercase;
  margin-bottom:10px;
}
.contact-heading{
  font-family:'Jost', sans-serif;
  font-weight:400;
  font-size:44px;
  line-height:1.2;
  text-transform:uppercase;
  color:var(--ink);
  margin:0 0 18px;
}
.contact-lede{
  font-family:'Jost', sans-serif;
  font-size:16px;
  line-height:1.85;
  color:#444;
  max-width:640px;
}

/* ===== CONTACT PHOTO ===== */
.contact-photo{
  position:relative;
  width:100%;
  max-width:640px;
  height:320px;
  margin:36px 0 0;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.08);
}
.contact-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.contact-photo .cp-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%);
}
.contact-photo .cp-caption{
  position:absolute;
  left:28px;
  bottom:22px;
  z-index:2;
  color:#fff;
  font-family:'Jost', sans-serif;
  letter-spacing:2px;
  font-size:14px;
  text-transform:uppercase;
}

@media (max-width:576px){
  .contact-photo{height:220px;}
  .contact-photo .cp-caption{font-size:12px; left:18px; bottom:14px;}
}

/* ===== CONTACT DETAILS STRIP ===== */
.contact-details{
  max-width:1400px;
  margin:44px auto 0;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
}
.contact-detail-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  padding:28px 24px;
  text-align:center;
}
.contact-detail-card i{
  font-size:22px;
  color:var(--accent);
  margin-bottom:14px;
  display:block;
}
.contact-detail-card .label{
  font-family:'Jost', sans-serif;
  letter-spacing:2px;
  font-size:11px;
  text-transform:uppercase;
  color:#888;
  margin-bottom:8px;
}
.contact-detail-card .value{
  font-family:'Jost', sans-serif;
  font-size:14px;
  color:var(--ink);
  line-height:1.6;
}
.contact-detail-card .value a{text-decoration:none; color:inherit;}
.contact-detail-card .value a:hover{color:var(--accent);}

@media (max-width:991px){
  .contact-details{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:576px){
  .contact-details{grid-template-columns:1fr;}
  .contact-heading{font-size:32px;}
}

/* ===== CONTACT FORM + MAP SECTION ===== */
.contact-main{
  background:var(--paper);
  padding:0 var(--gap) 90px;
}
.contact-main-inner{
  max-width:1400px;
  margin:0 auto;
}

.contact-form-wrap{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  padding:56px clamp(24px, 5vw, 64px);
  margin-bottom:60px;
}
.contact-form-eyebrow{
  text-align:center;
  font-family:'Jost', sans-serif;
  letter-spacing:4px;
  font-size:12px;
  color:var(--accent);
  text-transform:uppercase;
  margin-bottom:8px;
}
.contact-form-title{
  text-align:center;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size:38px;
  color:var(--ink);
  margin:0 0 8px;
}
.contact-form-sub{
  text-align:center;
  font-family:'Jost', sans-serif;
  font-size:14px;
  color:#777;
  margin-bottom:40px;
}

.contact-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px 24px;
  max-width:880px;
  margin:0 auto;
}
.contact-field{
  position:relative;
  grid-column:span 1;
}
.contact-field.full{grid-column:1 / -1;}
.contact-field input,
.contact-field select,
.contact-field textarea{
  width:100%;
  box-sizing:border-box;
  border:none;
  border-bottom:1px solid rgba(0,0,0,.25);
  background:transparent;
  font-family:'Jost', sans-serif;
  font-size:15px;
  color:var(--ink);
  padding:8px 2px 10px;
  outline:none;
  transition:border-color .25s;
  appearance:none;
}
.contact-field textarea{resize:none; min-height:90px;}
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus{
  border-bottom-color:var(--accent);
}
.contact-field label{
  position:absolute;
  left:2px;
  top:8px;
  font-family:'Jost', sans-serif;
  font-size:15px;
  color:#888;
  letter-spacing:.3px;
  pointer-events:none;
  transition:.2s ease;
}
.contact-field input:focus + label,
.contact-field input:not(:placeholder-shown) + label,
.contact-field select.filled + label,
.contact-field textarea:focus + label,
.contact-field textarea:not(:placeholder-shown) + label{
  top:-14px;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--accent);
}
.contact-field select{cursor:pointer;}

.contact-submit{
  grid-column:1 / -1;
  margin-top:6px;
  background:var(--ink);
  color:#fff;
  border:0;
  padding:16px;
  font-family:'Jost', sans-serif;
  letter-spacing:3px;
  font-size:13px;
  text-transform:uppercase;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  transition:background .3s;
}
.contact-submit:hover{background:var(--accent);}

.contact-success{
  display:none;
  text-align:center;
  padding:20px 0 10px;
}
.contact-success.show{display:block;}
.contact-success i{font-size:44px; color:var(--accent); margin-bottom:16px;}
.contact-success h3{
  font-family:'Cormorant Garamond', serif;
  font-size:28px;
  color:var(--ink);
  margin:0 0 8px;
}
.contact-success p{
  font-family:'Jost', sans-serif;
  font-size:14px;
  color:#777;
}

@media (max-width:576px){
  .contact-form{grid-template-columns:1fr;}
  .contact-field{grid-column:1 / -1;}
  .contact-form-wrap{padding:40px 22px;}
  .contact-form-title{font-size:28px;}
}

/* ===== MAP ===== */
.contact-map{
  position:relative;
  width:100%;
  height:460px;
  border:1px solid rgba(0,0,0,.08);
  overflow:hidden;
}
.contact-map iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
  filter:grayscale(.15) contrast(1.02);
}
