/* =====================================================
   LBDRC Donate Page — Gravity Forms Styling
   Works in both the resource topic template and Elementor.
   ===================================================== */

/* ── Form wrapper ── */
.lbdrc-rt-content .gform_wrapper,
.elementor-widget-container .gform_wrapper,
#gform_wrapper_7 {
  margin-top: 16px;
}

.lbdrc-rt-content .gform_wrapper .gform_fields,
.elementor-widget-container .gform_wrapper .gform_fields,
#gform_wrapper_7 .gform_fields {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

/* ── Kill all default GF borders, shadows, backgrounds ── */
#gform_wrapper_7 .gfield,
#gform_wrapper_7 .gsection {
  border: none !important;
  box-shadow: none !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ── Section headings ── */
#gform_wrapper_7 .gsection {
  margin-top: 8px !important;
}

#gform_wrapper_7 .gsection_title {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1A1128 !important;
  letter-spacing: -0.02em !important;
  padding: 0 !important;
  border: none !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* ── Labels ── */
#gform_wrapper_7 .gfield_label,
#gform_wrapper_7 .gform-field-label {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #1A1128 !important;
  margin-bottom: 4px !important;
}

#gform_wrapper_7 .gform-field-label--type-sub {
  font-size: 11px !important;
  font-weight: 500 !important;
  color: #9B94AE !important;
  margin-top: 4px !important;
}

#gform_wrapper_7 .gfield_required_asterisk {
  color: #662D91 !important;
}

/* ── All text/email/select inputs — full width ── */
#gform_wrapper_7 input[type="text"],
#gform_wrapper_7 input[type="email"],
#gform_wrapper_7 input[type="tel"],
#gform_wrapper_7 input[type="number"],
#gform_wrapper_7 select,
#gform_wrapper_7 textarea {
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  color: #1A1128 !important;
  background: #ffffff !important;
  border: 1.5px solid #EEEBF4 !important;
  border-radius: 12px !important;
  padding: 12px 16px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  outline: none !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
  box-shadow: none !important;
}

#gform_wrapper_7 input[type="text"]:focus,
#gform_wrapper_7 input[type="email"]:focus,
#gform_wrapper_7 input[type="tel"]:focus,
#gform_wrapper_7 input[type="number"]:focus,
#gform_wrapper_7 select:focus,
#gform_wrapper_7 textarea:focus {
  border-color: #662D91 !important;
  box-shadow: 0 0 0 3px rgba(102,45,145,0.08) !important;
}

#gform_wrapper_7 input::placeholder { color: #DDD8E8 !important; }

#gform_wrapper_7 select {
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239B94AE' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 16px !important;
  padding-right: 40px !important;
}

/* ── Donation amount radio buttons (pill style) ── */
#gform_wrapper_7 .donation-btn .gfield_radio {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
}

#gform_wrapper_7 .donation-btn .gchoice {
  position: relative !important;
}

#gform_wrapper_7 .donation-btn .gchoice input[type="radio"] {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

#gform_wrapper_7 .donation-btn .gchoice label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 12px !important;
  border: 1.5px solid #EEEBF4 !important;
  border-radius: 14px !important;
  background: white !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #1A1128 !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
  text-align: center !important;
  margin: 0 !important;
}

#gform_wrapper_7 .donation-btn .gchoice label:hover {
  border-color: #662D91 !important;
  background: #F9F5FD !important;
  color: #662D91 !important;
}

#gform_wrapper_7 .donation-btn .gchoice input[type="radio"]:checked + label {
  border-color: #662D91 !important;
  background: #662D91 !important;
  color: white !important;
}

/* Other amount input */
#gform_wrapper_7 .ginput_amount {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
}

/* ── Checkboxes ── */
#gform_wrapper_7 .gfield_checkbox {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#gform_wrapper_7 .gfield_checkbox .gchoice {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  padding: 4px 0 !important;
}

#gform_wrapper_7 .gfield_checkbox input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  border: 1.5px solid #EEEBF4 !important;
  border-radius: 6px !important;
  background: white !important;
  flex-shrink: 0 !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
  margin: 1px 0 0 0 !important;
  padding: 0 !important;
  position: relative !important;
}

#gform_wrapper_7 .gfield_checkbox input[type="checkbox"]:checked {
  background: #662D91 !important;
  border-color: #662D91 !important;
}

#gform_wrapper_7 .gfield_checkbox input[type="checkbox"]:checked::after {
  content: '' !important;
  position: absolute !important;
  top: 3px !important;
  left: 6px !important;
  width: 5px !important;
  height: 9px !important;
  border: solid white !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
  display: block !important;
}

#gform_wrapper_7 .gfield_checkbox .gform-field-label--type-inline {
  font-size: 14px !important;
  color: #5C5473 !important;
  line-height: 1.55 !important;
  cursor: pointer !important;
}

/* ── Name fields side by side ── */
#gform_wrapper_7 .ginput_container_name.gform-grid-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
}

#gform_wrapper_7 .ginput_container_name .name_first,
#gform_wrapper_7 .ginput_container_name .name_last {
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
}

/* ── Address fields ── */
#gform_wrapper_7 .ginput_container_address.gform-grid-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
}

#gform_wrapper_7 .ginput_container_address .ginput_left,
#gform_wrapper_7 .ginput_container_address .ginput_right,
#gform_wrapper_7 .ginput_container_address .ginput_full {
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
}

/* ── Total display ── */
#gform_wrapper_7 .gfield_total .ginput_total {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  color: #662D91 !important;
  display: block !important;
  padding: 8px 0 4px !important;
}

/* ── Stripe card field ── */
#gform_wrapper_7 .ginput_stripe_creditcard {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

#gform_wrapper_7 .ginput_stripe_creditcard .ginput_full {
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
}

#gform_wrapper_7 .StripeElement--card {
  border: 1.5px solid #EEEBF4 !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
  transition: border-color 0.15s !important;
}

#gform_wrapper_7 .StripeElement--focus {
  border-color: #662D91 !important;
  box-shadow: 0 0 0 3px rgba(102,45,145,0.08) !important;
}

/* ── Submit button ── */
#gform_wrapper_7 .gform_footer {
  padding: 12px 0 0 !important;
  margin: 0 !important;
  border: none !important;
}

#gform_wrapper_7 .gform_button,
#gform_wrapper_7 input[type="submit"] {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  background: #662D91 !important;
  color: white !important;
  border: none !important;
  border-radius: 14px !important;
  padding: 16px 40px !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  width: 100% !important;
  text-align: center !important;
  box-shadow: none !important;
}

#gform_wrapper_7 .gform_button:hover,
#gform_wrapper_7 input[type="submit"]:hover {
  background: #4A1F6B !important;
  color: white !important;
}

/* ── Validation errors ── */
#gform_wrapper_7 .gfield_error input,
#gform_wrapper_7 .gfield_error select {
  border-color: #dc2626 !important;
}

#gform_wrapper_7 .validation_message {
  font-size: 12px !important;
  color: #dc2626 !important;
  margin-top: 4px !important;
}

#gform_wrapper_7 .gform_validation_errors {
  background: #FEF2F2 !important;
  border: 1px solid rgba(220,38,38,0.2) !important;
  border-radius: 14px !important;
  padding: 16px 20px !important;
  margin-bottom: 16px !important;
}

#gform_wrapper_7 .gform_validation_errors h2 {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #dc2626 !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Kill GF legacy chrome ── */
#gform_wrapper_7.gform_legacy_markup_wrapper .gform-body,
#gform_wrapper_7.gform_legacy_markup_wrapper .gform_body {
  padding: 0 !important;
  margin: 0 !important;
}

#gform_wrapper_7 .gf_clear,
#gform_wrapper_7 .gf_clear_complex {
  display: none !important;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  #gform_wrapper_7 .donation-btn .gfield_radio {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  #gform_wrapper_7 .ginput_container_name.gform-grid-row {
    grid-template-columns: 1fr !important;
  }
  #gform_wrapper_7 .gform_button,
  #gform_wrapper_7 input[type="submit"] {
    padding: 14px 24px !important;
  }
}
