/* ============================================================
   Send Us a Message — Section + CF7 Form Styles
   Matches the dark red section at the bottom of keenerlaw.com
   Color: dark red #9f0b19 background, white text, white form
   Enqueue this file or paste into barristar-child/style.css
   ============================================================ */

/* ── Section wrapper ── */
.kl-msg-section {
  background: #9f0b19;
  padding: 56px 0;
  font-family: 'Open Sans', sans-serif;
}

.kl-msg-section__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 768px) {
  .kl-msg-section__inner {
    padding: 0 28px;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start;
  }
}
@media (min-width: 1100px) {
  .kl-msg-section__inner { padding: 0 40px; }
}

/* ── Left copy ── */
.kl-msg-section__eyebrow {
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(255,255,255,.65) !important;
  margin: 0 0 10px;
}
.kl-msg-section__title {
  font-family: 'Playfair Display', serif;
  font-size: 32px; font-weight: 700;
  color: #ffffff !important;
  margin: 0 0 16px; line-height: 1.2;
}
.kl-msg-section__lede {
  font-size: 16px; font-weight: 400;
  color: rgba(255,255,255,.85) !important;
  line-height: 1.75; margin: 0 0 20px;
}
.kl-msg-section__phone {
  display: block;
  font-family: 'Playfair Display', serif;
  font-size: 28px; font-weight: 700;
  color: #ffffff !important;
  text-decoration: none; margin-bottom: 6px;
}
.kl-msg-section__phone:hover { color: #d4c291 !important; }
.kl-msg-section__hours {
  font-size: 13px; color: rgba(255,255,255,.6) !important; margin: 0;
}

/* ── Right: form wrapper ── */
.kl-msg-section__form { }

/* ── CF7 form fields ── */
.kl-msg-form { display: flex; flex-direction: column; gap: 0; }

.kl-msg-form__row {
  margin-bottom: 16px;
}
.kl-msg-form__row--2col {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 480px) {
  .kl-msg-form__row--2col { grid-template-columns: 1fr 1fr; }
}

.kl-msg-form__field { display: flex; flex-direction: column; gap: 5px; }

/* Labels */
.kl-msg-form label,
.kl-msg-form .wpcf7-form-control-wrap label {
  display: block !important;
  font-family: 'Open Sans', sans-serif !important;
  font-size: 11px !important; font-weight: 700 !important;
  text-transform: uppercase !important; letter-spacing: 0.08em !important;
  color: rgba(255,255,255,.75) !important;
  margin-bottom: 4px !important;
}

/* Inputs */
.kl-msg-form input[type="text"],
.kl-msg-form input[type="tel"],
.kl-msg-form input[type="email"],
.kl-msg-form textarea,
.kl-msg-section__form .wpcf7-form input[type="text"],
.kl-msg-section__form .wpcf7-form input[type="tel"],
.kl-msg-section__form .wpcf7-form input[type="email"],
.kl-msg-section__form .wpcf7-form textarea {
  width: 100% !important;
  padding: 12px 14px !important;
  font-family: 'Open Sans', sans-serif !important;
  font-size: 15px !important;
  color: #06163a !important;
  background: #ffffff !important;
  border: 2px solid transparent !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  transition: border-color .2s !important;
  outline: none !important;
}
.kl-msg-form input:focus,
.kl-msg-form textarea:focus,
.kl-msg-section__form .wpcf7-form input:focus,
.kl-msg-section__form .wpcf7-form textarea:focus {
  border-color: #d4c291 !important;
}
.kl-msg-form textarea,
.kl-msg-section__form .wpcf7-form textarea {
  resize: vertical !important;
  min-height: 110px !important;
}

/* Submit button */
.kl-msg-form__submit-row { margin-top: 4px; }
.kl-msg-form input[type="submit"],
.kl-msg-form .wpcf7-submit,
.kl-msg-section__form .wpcf7-form input[type="submit"],
.kl-msg-section__form .wpcf7-form .wpcf7-submit {
  width: 100% !important;
  background: #06163a !important;
  color: #ffffff !important;
  border: 2px solid transparent !important;
  border-radius: 50px !important;
  font-family: 'Open Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 15px 24px !important;
  cursor: pointer !important;
  transition: background .25s, color .25s !important;
  margin-top: 0 !important;
}
.kl-msg-form input[type="submit"]:hover,
.kl-msg-form .wpcf7-submit:hover,
.kl-msg-section__form .wpcf7-form input[type="submit"]:hover,
.kl-msg-section__form .wpcf7-form .wpcf7-submit:hover {
  background: #ffffff !important;
  color: #9f0b19 !important;
}

/* CF7 success/error messages */
.kl-msg-section__form .wpcf7-response-output {
  margin: 12px 0 0 !important;
  padding: 12px 16px !important;
  border: 1px solid rgba(255,255,255,.3) !important;
  font-size: 14px !important;
  color: #ffffff !important;
  background: rgba(255,255,255,.1) !important;
}

/* Remove default CF7 red borders on invalid */
.kl-msg-section__form .wpcf7-not-valid {
  border-color: #d4c291 !important;
}
.kl-msg-section__form .wpcf7-not-valid-tip {
  color: #d4c291 !important;
  font-size: 12px !important;
}

/* ── Mobile ── */
@media (max-width: 767px) {
  .kl-msg-section        { padding: 40px 0; }
  .kl-msg-section__title { font-size: 26px; }
  .kl-msg-section__phone { font-size: 24px; }
}
