/* Contact-Us.php — builds on the tokens and .tq-btn from site.css */
.tq-contact {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
  padding: 44px 20px 90px;
}

.tq-contact-form-card,
.tq-info-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(16, 24, 40, .06);
}
.tq-contact-form-card { padding: 32px; scroll-margin-top: 130px; }
.tq-contact-form-card h2,
.tq-info-card h2 {
  font: 700 22px/1.3 "Montserrat", sans-serif;
  color: var(--tq-text);
  margin: 0 0 6px;
}
.tq-contact-lead { color: var(--tq-muted); font-size: 14px; margin: 0 0 22px; }
.tq-req { color: #dc2626; }

/* Alerts */
.tq-alert {
  border-radius: 10px;
  padding: 14px 16px;
  margin: 0 0 20px;
  font-size: 15px;
  line-height: 1.5;
  border: 1px solid transparent;
}
.tq-alert[hidden] { display: none; }
.tq-alert-success { background: #ecfdf3; border-color: #abefc6; color: #067647; }
.tq-alert-error { background: #fef3f2; border-color: #fecdca; color: #b42318; }

/* Form */
.tq-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.tq-field { display: flex; flex-direction: column; margin-bottom: 18px; }
.tq-field label {
  font: 600 13px/1.4 "Montserrat", sans-serif;
  color: var(--tq-text);
  margin-bottom: 6px;
}
.tq-field input,
.tq-field textarea {
  width: 100%;
  font: 400 15px/1.5 "Open Sans", sans-serif;
  color: var(--tq-text);
  background: #f9fafb;
  border: 1px solid #d0d5dd;
  border-radius: 8px;
  padding: 11px 14px;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.tq-field textarea { resize: vertical; min-height: 140px; }
.tq-field input:focus,
.tq-field textarea:focus {
  outline: none;
  background: #fff;
  border-color: var(--tq-accent);
  box-shadow: 0 0 0 3px rgba(71, 138, 201, .2);
}
.tq-field.has-error input,
.tq-field.has-error textarea { border-color: #f04438; background: #fff; }
.tq-field.has-error input:focus,
.tq-field.has-error textarea:focus { box-shadow: 0 0 0 3px rgba(240, 68, 56, .15); }
.tq-field-error { color: #b42318; font-size: 13px; min-height: 0; margin-top: 5px; }
.tq-field-error:empty { display: none; }

.tq-submit { border: 0; cursor: pointer; min-width: 170px; padding: 14px 26px; font-size: 15px; }
.tq-submit:disabled { opacity: .65; cursor: progress; }

/* Honeypot: hidden from people, visible to naive bots */
.tq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Info column */
.tq-contact-info { display: flex; flex-direction: column; gap: 20px; }
.tq-info-card { padding: 28px; }
.tq-info-list { list-style: none; margin: 16px 0 0; padding: 0; }
.tq-info-list li { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; }
.tq-info-list li + li { border-top: 1px solid #eef0f3; }
.tq-info-icon {
  flex: 0 0 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(71, 138, 201, .12);
  display: flex;
  align-items: center;
  justify-content: center;
}
.tq-info-icon svg { width: 20px; height: 20px; fill: var(--tq-accent); }
.tq-info-list div { font-size: 15px; color: var(--tq-text); line-height: 1.5; padding-top: 1px; word-break: break-word; }
.tq-info-list a { color: var(--tq-text); text-decoration: none; font: inherit; }
.tq-info-list a:hover { color: var(--tq-accent); }
.tq-info-label {
  display: block;
  font: 600 11px/1.6 "Montserrat", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tq-muted);
}

.tq-map {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(16, 24, 40, .06);
  aspect-ratio: 4 / 3;
  background: #e5e7eb;
}
.tq-map iframe { width: 100%; height: 100%; border: 0; display: block; }

@media (max-width: 900px) {
  .tq-contact { grid-template-columns: 1fr; padding: 28px 16px 64px; }
  .tq-contact-form-card { padding: 22px; }
  .tq-info-card { padding: 22px; }
}
@media (max-width: 560px) {
  .tq-form-row { grid-template-columns: 1fr; gap: 0; }
  .tq-submit { width: 100%; }
}
.tq-turnstile { margin: 4px 0 18px; min-height: 65px; }
