/* =========================================================
   contact.css
   Page-specific styles for Contact Us: page header banner,
   contact info list, and the message form.
   ========================================================= */

/* ===== PAGE HEADER ===== */
.page-header{
  background:linear-gradient(120deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:#fff;
  padding:56px 24px;
  text-align:center;
}
.page-header-inner{max-width:640px;margin:0 auto;}
.page-header-eyebrow{
  display:inline-block;
  background:rgba(255,255,255,0.15);
  border:1px solid rgba(255,255,255,0.3);
  padding:6px 16px;
  border-radius:20px;
  font-size:12.5px;
  font-weight:600;
  margin-bottom:16px;
}
.page-header h1{
  font-size:32px;
  font-weight:800;
  letter-spacing:-0.5px;
  margin-bottom:12px;
}
.page-header p{
  font-size:14.5px;
  line-height:1.6;
  opacity:0.92;
}

/* ===== CONTACT SECTION ===== */
.contact-section{padding:56px 24px 72px;}
.contact-section-inner{
  max-width:1080px;
  margin:0 auto;
  display:grid;
  grid-template-columns:0.9fr 1.3fr;
  gap:36px;
  align-items:start;
}

/* -- info column -- */
.contact-info h2,
.contact-form-card h2{
  font-size:20px;
  font-weight:800;
  color:#111827;
  margin-bottom:8px;
}
.contact-info-lead{
  font-size:13.5px;
  color:var(--muted);
  line-height:1.6;
  margin-bottom:26px;
}
.contact-info-item{
  display:flex;
  gap:14px;
  margin-bottom:22px;
}
.contact-info-icon{
  flex-shrink:0;
  width:42px;height:42px;
  border-radius:12px;
  background:var(--bg);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:19px;
}
.contact-info-item h3{
  font-size:13.5px;
  font-weight:700;
  color:#111827;
  margin-bottom:3px;
}
.contact-info-item p{
  font-size:13px;
  color:var(--muted);
  line-height:1.5;
}
.contact-info-item p a{color:var(--primary);text-decoration:none;font-weight:600;}
.contact-info-item p a:hover{text-decoration:underline;}

.contact-map-placeholder{
  margin-top:8px;
  border:1.5px dashed #d7dcea;
  border-radius:var(--radius);
  padding:32px 16px;
  text-align:center;
  color:var(--muted);
  background:#fff;
}
.contact-map-placeholder span{font-size:28px;display:block;margin-bottom:6px;}
.contact-map-placeholder p{font-size:12.5px;font-weight:600;}

/* -- form column -- */
.contact-form-card{
  background:#fff;
  border:1px solid #e9ecf4;
  border-radius:var(--radius);
  padding:30px 32px 34px;
  box-shadow:0 8px 24px rgba(20,30,60,0.06);
}

.contact-status{
  font-size:13px;
  font-weight:600;
  padding:11px 14px;
  border-radius:9px;
  margin-bottom:20px;
}
.contact-status-success{background:#e8f8ee;color:var(--success);}
.contact-status-error{background:#fde8ee;color:var(--error);}

.contact-row-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.contact-field{margin-bottom:18px;}
.contact-field label{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px;}
.contact-field label .req{color:var(--error);}
.contact-field input,
.contact-field select,
.contact-field textarea{
  width:100%;
  padding:12px 14px;
  border:1.5px solid #e2e5ec;
  border-radius:10px;
  font-size:14px;
  outline:none;
  background:#fff;
  resize:vertical;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(43,87,209,0.1);
}
.contact-field.has-error input,
.contact-field.has-error select,
.contact-field.has-error textarea{border-color:var(--error);}
.contact-error-msg{display:none;color:var(--error);font-size:11.5px;margin-top:5px;}
.contact-field.has-error .contact-error-msg{display:block;}

.contact-submit{
  width:100%;
  padding:14px;
  border:none;
  border-radius:12px;
  background:var(--primary);
  color:#fff;
  font-size:15px;
  font-weight:800;
  letter-spacing:0.2px;
  cursor:pointer;
  transition:background .15s ease, transform .12s ease;
}
.contact-submit:hover{background:var(--primary-dark);}
.contact-submit:active{transform:scale(0.99);}

@media (max-width:820px){
  .contact-section-inner{grid-template-columns:1fr;}
}
@media (max-width:520px){
  .contact-row-2{grid-template-columns:1fr;}
  .page-header h1{font-size:26px;}
  .contact-form-card{padding:24px 20px 28px;}
}
