/*
Theme Name: Vinebuilders Child
Template: vinebuilders-theme
Version: 1.0.1
*/

/* ===========================
   Vinebuilders Site-Wide Brand Styles
   Brand: #C52184  | Hover: #A01865 | Active: #8B1557
   =========================== */

/* ----- LINKS (global) ----- */
a {
  color: #C52184;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.15s ease;
}
a:hover {
  color: #A01865;
  text-decoration: underline;
}
a:active {
  color: #8B1557;
}




/* ----- BUTTONS (global) -----
   Covers: native <button>, <input type=submit/button>,
   Gutenberg .wp-block-button/.wp-element-button,
   Elementor .elementor-button,
   common .btn/.button, and Fluent Forms .ff-btn/.ff-btn-submit
*/
button,
input[type="submit"],
input[type="button"],
.wp-block-button__link,
.wp-element-button,
.button,
.btn,

.ff-btn,
.ff-btn-submit,
button.ff-btn {
  background-color: #C52184 !important;
  border: 1px solid #C52184 !important;
  color: #ffffff !important;
  border-radius: 12px;
  padding: 12px 18px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.05s ease;
}
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.wp-block-button__link:hover,
.wp-element-button:hover,
.button:hover,
.btn:hover,

.ff-btn:hover,
.ff-btn-submit:hover,
button.ff-btn:hover {
  background-color: #57d628 !important;
  border-color: #57d628 !important;
}
button:active,
input[type="submit"]:active,
input[type="button"]:active,
.wp-block-button__link:active,
.wp-element-button:active,
.button:active,
.btn:active,

.ff-btn:active,
.ff-btn-submit:active,
button.ff-btn:active {
  background-color: #8B1557 !important;
  border-color: #8B1557 !important;
  transform: translateY(1px);
}

/* Make Gutenberg buttons inherit radius if theme resets it */
.wp-block-button .wp-block-button__link,
.wp-element-button {
  border-radius: 12px !important;
}

/* ----- FORM INPUTS (global) ----- */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="date"],
input[type="number"],
input[type="password"],
select,
textarea {
  border: 1px solid #e5e7eb;
  background: #ffffff;
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 1rem;
  box-shadow: 0 1px 0 rgba(0,0,0,0.01);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: #A01865;
  box-shadow: 0 0 0 3px rgba(160, 24, 101, 0.2);
}

/* ===========================
   FLUENT FORMS – Site-wide UI
   =========================== */
.ff-el-group { margin-bottom: 16px; }
label.ff-el-form-control { font-weight: 600; color: #111827; margin-bottom: 6px; }
.ff-el-is-required > label .ff-el-required { color: #C52184; }
.ff-el-help { font-size: 0.92rem; color: #6b7280; }

/* File upload area + button */
.ff-file-upload {
  background: #f7f7f9;
  border: 1px dashed #e5e7eb;
  border-radius: 12px;
  padding: 14px;
}
.ff_file_upload_btn {
  background-color: #C52184 !important;
  border-color: #C52184 !important;
  color: #ffffff !important;
  border: none;
  padding: 10px 14px;
  border-radius: 10px;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.ff_file_upload_btn:hover { background-color: #A01865 !important; border-color: #A01865 !important; }
.ff_file_upload_btn:active { background-color: #8B1557 !important; border-color: #8B1557 !important; }

/* Messages */
.ff-message-success {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
  border-radius: 12px;
  padding: 12px 14px;
}
.ff-message-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
  border-radius: 12px;
  padding: 12px 14px;
}
.ff_error_message { color: #b91c1c; font-size: 0.92rem; margin-top: 6px; }

/* Section headers */
.ff-section_header {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 12px 0 6px;
  color: #111827;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 6px;
}

/* Placeholder color */
.ff-el-form-control[placeholder] { color: #9ca3af; }

/* Mobile: make FF submit buttons full-width */
@media (max-width: 640px) {
  .ff-btn-submit,
  .ff_submit_btn_wrapper .ff-btn-submit { width: 100%; }
}

/* ===========================
   FLUENT FORMS — Submit Button (strong override, site-wide)
   =========================== */
.fluentform .ff_submit_btn_wrapper button.ff-btn.ff-btn-submit.ff-btn-md.ff_btn_style,
form.fluent_form .ff_submit_btn_wrapper button.ff-btn.ff-btn-submit.ff-btn-md.ff_btn_style,
.fluentform .ff-btn-submit,
form.fluent_form .ff-btn-submit {
  background: #C52184 !important;
  background-color: #C52184 !important;
  background-image: none !important;
  border-color: #C52184 !important;
  color: #ffffff !important;
  box-shadow: none !important;
  filter: none !important;
}
.fluentform .ff_submit_btn_wrapper button.ff-btn.ff-btn-submit.ff-btn-md.ff_btn_style:hover,
form.fluent_form .ff_submit_btn_wrapper button.ff-btn.ff-btn-submit.ff-btn-md.ff_btn_style:hover,
.fluentform .ff-btn-submit:hover,
form.fluent_form .ff-btn-submit:hover {
  background: #A01865 !important;
  background-image: none !important;
  border-color: #A01865 !important;
}
.fluentform .ff_submit_btn_wrapper button.ff-btn.ff-btn-submit.ff-btn-md.ff_btn_style:active,
form.fluent_form .ff_submit_btn_wrapper button.ff-btn.ff-btn-submit.ff-btn-md.ff_btn_style:active,
.fluentform .ff-btn-submit:active,
form.fluent_form .ff-btn-submit:active {
  background: #8B1557 !important;
  background-image: none !important;
  border-color: #8B1557 !important;
  transform: translateY(1px);
}

/* Ultimate Member buttons (match brand) */
.um input[type="submit"].um-button,
.um a.um-button,
.um .um-button {
  background: #C52184 !important;
  border-color: #C52184 !important;
  color: #fff !important;
  border-radius: 12px;
  box-shadow: none !important;
}
.um input[type="submit"].um-button:hover,
.um a.um-button:hover,
.um .um-button:hover {
  background: #A01865 !important;
  border-color: #A01865 !important;
}
.um input[type="submit"].um-button:active,
.um a.um-button:active,
.um .um-button:active {
  background: #8B1557 !important;
  border-color: #8B1557 !important;
  transform: translateY(1px);
}

/* VB Upload Forms - layout reset */
.vb-upload-form{
  max-width: 760px;
  margin: 0 auto;
}

.vb-upload-form p,
.vb-upload-form label{
  display:block;
  margin: 0 0 8px;
  font-weight: 600;
}

.vb-upload-form input[type="text"],
.vb-upload-form input[type="url"],
.vb-upload-form input[type="date"],
.vb-upload-form input[type="time"],
.vb-upload-form textarea,
.vb-upload-form select,
.vb-upload-form input[type="file"]{
  width: 100%;
  max-width: 100%;
  display: block;
  box-sizing: border-box;
  margin: 0 0 14px;
}

.vb-upload-form textarea{
  min-height: 120px;
}

.vb-upload-form button,
.vb-upload-form input[type="submit"]{
  margin-top: 10px;
}






/* -------------------------------------------------------
   VB Dynamic Forms (sermon / event / announcement / email)
   Targets: <form class="vb-dynamic-form"> generated in MU plugin
-------------------------------------------------------- */

.vb-dynamic-form {
  max-width: 760px;
  margin: 0 auto;
  padding: 18px;
  border: 1px solid #eee;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}

.vb-dynamic-form label {
  display: block;
  margin: 14px 0 6px;
  font-weight: 600;
  color: #222;
  font-size: 14px;
}

.vb-dynamic-form input[type="text"],
.vb-dynamic-form input[type="url"],
.vb-dynamic-form input[type="date"],
.vb-dynamic-form input[type="time"],
.vb-dynamic-form input[type="email"],
.vb-dynamic-form input[type="tel"],
.vb-dynamic-form select,
.vb-dynamic-form textarea {
  width: 100%;
  max-width: 100%;
  padding: 10px 12px;
  border: 1px solid #ddd;
  border-radius: 10px;
  background: #fff;
  font-size: 14px;
  outline: none;
  box-sizing: border-box;
}

.vb-dynamic-form textarea {
  min-height: 110px;
  resize: vertical;
}

.vb-dynamic-form input:focus,
.vb-dynamic-form select:focus,
.vb-dynamic-form textarea:focus {
  border-color: #C52184;
  box-shadow: 0 0 0 3px rgba(197,33,132,0.15);
}

/* File input: keep it from looking tiny/odd */
.vb-dynamic-form input[type="file"] {
  width: 100%;
  padding: 8px;
  border: 1px dashed #ddd;
  border-radius: 10px;
  background: #fafafa;
  box-sizing: border-box;
}

/* Checkbox rows (your email toggles) */
.vb-dynamic-form input[type="checkbox"] {
  transform: scale(1.1);
  margin-right: 10px;
}

.vb-dynamic-form label {
  display: block;
}
.vb-dynamic-form label input[type="checkbox"] {
  margin-right: 8px;
}


/* Submit button */
.vb-dynamic-form button[type="submit"] {
  margin-top: 16px;
  background: #C52184;
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 10px 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.05s ease, opacity 0.2s ease;
}

.vb-dynamic-form button[type="submit"]:hover {
  opacity: 0.92;
}

.vb-dynamic-form button[type="submit"]:active {
  transform: translateY(1px);
}

/* Status line you already output: <p class="vb-form-status"> */
.vb-form-status {
  margin-top: 10px;
  font-weight: 600;
}

/* Make it look nice inside Elementor containers */
.elementor-widget-shortcode .vb-dynamic-form {
  margin-top: 10px;
}

