/* =========================================================================
   Formidable Forms — cinematic light skin (staging). Loaded only on pages
   whose content contains a [formidable] shortcode. Live's form markup keeps
   its Bootstrap hooks (.row/.col-sm-6/.form-control); these rules style them.
   ========================================================================= */
.frm_forms{ --frm-ink:#16302C; --frm-muted:#5B6664; --frm-line:#CBD3D1; --frm-bg:#fff; --frm-focus:#0E9E8E; --frm-err:#B42318;
  width:100%; max-width:820px; margin:0 auto; text-align:left; color:var(--frm-ink); font-family:var(--font-body,"Inter",sans-serif); }
.frm_forms form{ margin:0; }
.frm_forms fieldset{ border:0; margin:0; padding:0; min-width:0; }
.frm_forms .frm_screen_reader,.frm_forms legend.frm_screen_reader{ position:absolute!important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.frm_forms .frm_form_title{ font-family:var(--font-display); font-size:1.4rem; margin:0 0 12px; }

/* grid: 12 cols, halves side by side on desktop */
.frm_forms .frm_fields_container{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:18px; row-gap:18px; }
.frm_forms .frm_fields_container > *{ grid-column:1 / -1; min-width:0; }
.frm_forms .frm_fields_container > .frm6,.frm_forms .frm_fields_container > .frm_half,.frm_forms .frm_fields_container > .col-sm-6{ grid-column:span 6; }
.frm_forms .frm_fields_container > .frm4,.frm_forms .frm_fields_container > .frm_third{ grid-column:span 4; }
.frm_forms .frm_fields_container > .frm3,.frm_forms .frm_fields_container > .frm_fourth{ grid-column:span 3; }
.frm_forms .row{ display:grid; grid-template-columns:1fr 1fr; column-gap:18px; row-gap:18px; margin:0; }
.frm_forms .row > [class*="col-"]{ padding:0; width:auto; max-width:none; min-width:0; }
@media (max-width:640px){
  .frm_forms .frm_fields_container > *{ grid-column:1 / -1!important; }
  .frm_forms .row{ grid-template-columns:1fr; }
}

/* labels + descriptions */
.frm_forms .frm_form_field{ margin:0; }
.frm_forms .frm_primary_label{ display:block; margin:0 0 7px; font-size:14px!important; font-weight:600; line-height:1.35; color:var(--frm-ink); letter-spacing:0; }
.frm_forms .frm_required{ color:#A5121A; margin-left:2px; }
.frm_forms .frm_description{ margin-top:6px; font-size:13px; color:var(--frm-muted); line-height:1.45; }

/* inputs */
.frm_forms input[type=text],.frm_forms input[type=email],.frm_forms input[type=tel],.frm_forms input[type=url],.frm_forms input[type=number],.frm_forms input[type=date],.frm_forms input[type=password],.frm_forms select,.frm_forms textarea{
  display:block; width:100%; max-width:100%; box-sizing:border-box; min-height:48px; padding:12px 14px; margin:0;
  font:inherit; font-size:15px; line-height:1.4; color:var(--frm-ink); background:var(--frm-bg);
  border:1px solid var(--frm-line); border-radius:12px; box-shadow:0 1px 0 rgba(20,20,15,.03);
  transition:border-color .2s ease, box-shadow .2s ease; -webkit-appearance:none; appearance:none; }
.frm_forms textarea{ min-height:140px; resize:vertical; }
.frm_forms select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2316302C' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px; }
.frm_forms input::placeholder,.frm_forms textarea::placeholder{ color:#7A8584; }
.frm_forms input:focus,.frm_forms select:focus,.frm_forms textarea:focus{ outline:none; border-color:var(--frm-focus); box-shadow:0 0 0 3px rgba(14,158,142,.18); }

/* radios + checkboxes */
.frm_forms .frm_opt_container{ display:flex; flex-direction:column; gap:8px; }
.frm_forms .horizontal_radio .frm_opt_container{ flex-direction:row; flex-wrap:wrap; gap:8px 22px; }
.frm_forms .frm_radio label,.frm_forms .frm_checkbox label{ display:flex; align-items:flex-start; gap:10px; margin:0; font-size:14px; font-weight:400; line-height:1.5; color:var(--frm-ink); cursor:pointer; }
.frm_forms input[type=radio],.frm_forms input[type=checkbox]{ flex:0 0 auto; width:18px; height:18px; margin:2px 0 0; accent-color:var(--frm-focus); }

/* section heading (Pro "divider") */
.frm_forms .frm_section_heading h3,.frm_forms .frm_pos_top h3,.frm_forms .frm_fields_container h3{ font-family:var(--font-display); font-size:1.25rem!important; line-height:1.3; margin:10px 0 0; padding-top:14px; border-top:1px solid var(--frm-line); color:var(--frm-ink); }

/* submit */
.frm_forms .frm_submit{ margin-top:6px; }
.frm_forms .frm_button_submit,.frm_forms button[type=submit]{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:14px 32px;
  font:inherit; font-size:16px; font-weight:600; letter-spacing:0; color:#04121A; background:#00E0C6;
  border:0; border-radius:36px; cursor:pointer; box-shadow:0 10px 28px -12px rgba(0,224,198,.8);
  transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease; }
.frm_forms .frm_button_submit:hover{ transform:translateY(-1px); box-shadow:0 14px 32px -12px rgba(0,224,198,.9); }
.frm_forms .frm_button_submit:focus-visible{ outline:3px solid #0E9E8E; outline-offset:3px; }
.frm_forms .frm_loading_form .frm_button_submit{ opacity:.7; cursor:progress; }

/* validation + messages */
.frm_forms .frm_blank_field input,.frm_forms .frm_blank_field textarea,.frm_forms .frm_blank_field select{ border-color:var(--frm-err); }
.frm_forms .frm_error{ margin-top:6px; font-size:13px; color:var(--frm-err); }
.frm_forms .frm_error_style{ margin:0 0 18px; padding:12px 16px; border-radius:12px; background:#FEF3F2; color:var(--frm-err); font-size:14px; }
.frm_message,.frm_forms .frm_message{ margin:0 auto 18px; max-width:820px; padding:16px 18px; border-radius:12px; background:#E6F7F4; border:1px solid rgba(14,158,142,.35); color:#0B5F55; font-size:15px; }
.frm_message p{ margin:0; }

/* reCAPTCHA */
.frm_forms .frm-g-recaptcha{ margin:2px 0; min-height:78px; }

/* spam trap */
.frm_forms .frm_verify,.frm_forms [id$="_container"]:has(> .frm_verify),.frm_forms [id$="_container"]:has(> label > .frm_verify){ position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden; }

/* Pro fields: file upload, repeater section, dates */
.frm_forms .frm_dropzone{ border:1.5px dashed var(--frm-line); border-radius:12px; background:#F7FAF9; padding:18px; text-align:center; color:var(--frm-muted); font-size:14px; }
.frm_forms .frm_dropzone .frm_upload_icon,.frm_forms .frm_dropzone .dz-message{ color:var(--frm-muted); }
.frm_forms .frm_dropzone .frm_compact_text,.frm_forms .frm_dropzone .frm_upload_text button{ color:var(--frm-focus); font-weight:600; }
.frm_forms .frm_repeat_sec,.frm_forms .frm_section_heading{ grid-column:1 / -1; }
.frm_forms .frm_repeat_sec .frm_fields_container,.frm_forms .frm_section_heading .frm_fields_container{ margin-top:6px; }
.frm_forms .frm_add_form_row,.frm_forms .frm_remove_form_row{ display:inline-flex; align-items:center; gap:6px; margin:10px 12px 0 0; padding:8px 16px; border:1px solid var(--frm-line); border-radius:999px; background:#fff; color:var(--frm-ink); font-size:14px; font-weight:600; text-decoration:none; }
.frm_forms .frm_add_form_row:hover,.frm_forms .frm_remove_form_row:hover{ border-color:var(--frm-focus); color:var(--frm-focus); }

.frm_forms .frm_dropzone{ cursor:pointer; transition:border-color .2s ease, background-color .2s ease; }
.frm_forms .frm_dropzone:hover,.frm_forms .frm_dropzone.dz-drag-hover{ border-color:var(--frm-focus); background:#EEF8F6; }
.frm_forms .frm_dropzone .dz-message{ display:flex; flex-direction:column; align-items:center; gap:8px; margin:0; }
.frm_forms .frm_dropzone svg.frmsvg{ width:30px; height:30px; flex:0 0 auto; fill:var(--frm-focus); color:var(--frm-focus); }
.frm_forms .frm_dropzone .frm_compact_text{ display:none; }
.frm_forms .frm_dropzone .frm_upload_text button{ background:none; border:0; padding:0; font:inherit; font-size:15px; font-weight:600; color:#0B6F64; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.frm_forms .frm_dropzone .frm_small_text p{ margin:0; font-size:13px!important; color:var(--frm-muted); }
.frm_forms .frm_dropzone .dz-preview{ margin-top:10px; font-size:14px; color:var(--frm-ink); }
