/* =========================================================
   CONTACT US PAGE — page-specific only.
   Loaded solely by contact-us.php via $pageExtraCss.
   ========================================================= */

/* ---- Map strip ---- */
.ct-map{
  width:100%;
  height:420px;
  line-height:0;
}
.ct-map iframe{ width:100%; height:100%; border:0; display:block; }
@media (max-width:640px){ .ct-map{ height:300px; } }

/* ---- Section scaffolding ---- */
.ct-section{ padding:72px 0 96px; }
.ct-kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.76rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--green-700); margin-bottom:12px;
}
.ct-kicker::before{ content:''; width:22px; height:2px; background:var(--gold-500); }
.ct-heading{
  font-size:clamp(1.4rem,2.2vw,1.85rem);
  font-weight:800; color:var(--green-900); margin:0 0 28px;
}

.ct-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:32px;
  align-items:start;
}
@media (max-width:900px){ .ct-grid{ grid-template-columns:1fr; } }

/* ---- Shared card shell ---- */
.ct-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  padding:36px 34px;
}
@media (max-width:560px){ .ct-card{ padding:26px 22px; } }

/* =========================================================
   FORM
   ========================================================= */
.ct-field{ margin-bottom:18px; }
.ct-field label{
  display:block;
  font-size:.8rem;
  font-weight:700;
  color:var(--green-800);
  margin-bottom:7px;
}
.ct-field input,
.ct-field select{
  width:100%;
  font:inherit;
  font-size:.94rem;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:12px 14px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.ct-field input:focus,
.ct-field select:focus{
  outline:none;
  border-color:var(--green-700);
  box-shadow:0 0 0 3px var(--green-100);
}
.ct-field select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234c5c53' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:16px 16px;
  padding-right:38px;
}

.ct-recaptcha{ margin-bottom:20px; }

.ct-submit-btn{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font:inherit;
  font-size:.94rem;
  font-weight:700;
  color:#fff;
  background:var(--green-800);
  border:none;
  border-radius:999px;
  padding:13px 28px;
  cursor:pointer;
  transition:background .18s ease, transform .18s ease;
}
.ct-submit-btn:hover{ background:var(--green-900); transform:translateY(-1px); }
.ct-submit-btn:disabled{ opacity:.65; cursor:not-allowed; transform:none; }
.ct-submit-btn svg{ width:16px; height:16px; }

/* ---- Inline form status banner (replaces a SweetAlert-style popup) ---- */
.ct-form-status{
  display:none;
  align-items:flex-start;
  gap:12px;
  margin-bottom:20px;
  padding:14px 16px;
  border-radius:var(--radius-md);
  font-size:.88rem;
  line-height:1.55;
}
.ct-form-status.is-visible{ display:flex; }
.ct-form-status svg{ width:19px; height:19px; flex-shrink:0; margin-top:1px; }
.ct-form-status.is-success{ background:var(--green-100); color:var(--green-800); }
.ct-form-status.is-error{ background:var(--red-100,#fbeaea); color:var(--red-500,#b3261e); }
.ct-form-status.is-warning{ background:rgba(240,168,0,.12); color:var(--gold-600); }

/* =========================================================
   CONTACT INFO CARD
   ========================================================= */
.ct-card h4{
  font-size:1.15rem; font-weight:800; color:var(--green-900);
  margin:0 0 26px;
}
.ct-info-row{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-bottom:26px;
}
.ct-info-row:last-of-type{ margin-bottom:0; }
.ct-info-icon{
  flex-shrink:0;
  width:44px; height:44px;
  border-radius:12px;
  background:var(--green-100);
  color:var(--green-700);
  display:flex;
  align-items:center;
  justify-content:center;
}
.ct-info-icon svg{ width:20px; height:20px; }
.ct-info-body h5{
  font-size:.92rem; font-weight:700; color:var(--green-900);
  margin:0 0 6px;
}
.ct-info-body p{
  margin:0 0 4px;
  font-size:.88rem; line-height:1.6; color:var(--ink-soft);
}
.ct-info-body a{ color:var(--ink); font-weight:600; transition:color .15s ease; }
.ct-info-body a:hover{ color:var(--green-700); }
.ct-info-hours{
  font-size:.78rem;
  color:var(--ink-soft);
  margin:2px 0 8px;
}
.ct-info-hours:last-child{ margin-bottom:0; }

.ct-divider{ height:1px; background:var(--line); margin:26px 0; }

.ct-social{ display:flex; flex-wrap:wrap; gap:10px; }
.ct-social a{
  width:38px; height:38px;
  border-radius:50%;
  background:var(--green-100);
  color:var(--green-700);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .15s ease, color .15s ease;
}
.ct-social a:hover{ background:var(--green-800); color:#fff; }
.ct-social a svg{ width:17px; height:17px; }
