/*  Contact hero  */
.contact-hero{ padding-top:88px; padding-bottom:1px; }
.contact-hero h1{ font-size:clamp(32px,4vw,46px); margin-top:2px; }
.contact-hero .lede{ margin-top:14px; font-size:17px; max-width:52ch; color:#3B453D; }

/*  Layout  */
.contact-inner{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:56px;
  align-items:start;
  padding-top:16px;
  padding-bottom:4px;
}

/*  Contact info cards  */
.contact-info{ display:flex; flex-direction:column; gap:12px; }

.contact-card{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.contact-card:not(.contact-card-static):hover{
  border-color:var(--sage);
  box-shadow:0 10px 24px rgba(23,31,26,.08);
  transform:translateY(-2px);
}

.contact-card-icon{
  flex-shrink:0;
  width:42px; height:42px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:var(--mint);
  color:var(--sage-deep);
}

.contact-card-body{ display:flex; flex-direction:column; gap:3px; flex:1; min-width:0; }
.contact-label{
  font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#6B7568;
}
.contact-card-value{
  font-size:15.5px; font-weight:600; color:var(--ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

.contact-card-arrow{
  flex-shrink:0;
  font-size:16px;
  color:var(--sage-deep);
  transition:transform .18s ease;
}
.contact-card:hover .contact-card-arrow{ transform:translateX(4px); }

.contact-card-static{ cursor:default; }
.contact-card-static:hover{ transform:none; box-shadow:none; }

.contact-response{
  display:flex; align-items:center; gap:8px;
  margin-top:8px;
  padding:14px 16px;
  font-size:13.5px; font-weight:600; color:var(--sage-deep);
  background:var(--paper-dim);
  border-radius:var(--radius);
}
.contact-response-dot{
  width:8px; height:8px; border-radius:50%; background:var(--sage);
  box-shadow:0 0 0 4px rgba(78,110,76,.16);
  flex-shrink:0;
}

/*  Contact form  */
.contact-form{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:40px;
}

.contact-form .form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:20px;
}
.contact-form .form-row:has(.full){ grid-template-columns:1fr; }

.contact-form .field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.contact-form label{
  font-size:13px; font-weight:600; letter-spacing:.01em; color:#3B453D;
}

.contact-form input,
.contact-form textarea{
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper);
  font-size:15px;
  font-family:inherit;
  transition:border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.contact-form input:hover,
.contact-form textarea:hover{
  border-color:#B9B29B;
}

.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:var(--sage-deep);
  background:var(--white);
  box-shadow:0 0 0 3px rgba(78,110,76,.15);
}

.contact-form textarea{
  min-height:140px;
  resize:vertical;
}

.contact-form .btn{
  width:100%;
  margin-top:4px;
  padding:15px 24px;
}

/*  Responsive  */
@media (max-width:900px){
  .contact-inner{ grid-template-columns:1fr; gap:36px; }
  .contact-info{ flex-direction:row; flex-wrap:wrap; }
  .contact-card{ flex:1 1 220px; }
  .contact-response{ flex:1 1 100%; }
  .contact-hero .lede {font-size: 16px;}
}

@media (max-width:640px){
  .contact-hero{ padding-top:64px; padding-bottom:28px; }
  .contact-info{ flex-direction:column; }
  .contact-card{ flex:1 1 auto; }
  .contact-form{ padding:28px 24px; }
  .contact-form .form-row{ grid-template-columns:1fr; gap:16px; }
}

@media (max-width:420px){
  .contact-card{ padding:16px; gap:12px; }
  .contact-card-icon{ width:38px; height:38px; }
}