/* ==========================================================================
   Gravity Forms — Mullins Roofing skin

   Written to work with EITHER Gravity Forms styling framework:
   the legacy "gravity-theme" CSS and the newer "orbital" theme framework
   (GF 2.8+). Selectors are therefore scoped to `.gform_wrapper` only, and
   layout-critical properties carry !important because GF's own framework
   rules are highly specific and/or driven by custom properties.
   ========================================================================== */

/* --- GF theme custom properties (orbital) ------------------------------- */
.gform_wrapper{
  --gf-color-primary:#235399;
  --gf-color-primary-rgb:35,83,153;
  --gf-color-primary-contrast:#ffffff;
  --gf-color-primary-darker:#1B4076;
  --gf-color-danger:#A4341F;
  --gf-ctrl-radius:11px;
  --gf-ctrl-btn-radius:11px;
  --gf-ctrl-bg-color:#F7F8FA;
  --gf-ctrl-border-color-rest:#E1E5EB;
  --gf-ctrl-border-color-focus:#235399;
  --gf-ctrl-color:#10151D;
  --gf-ctrl-placeholder-color:#9AA3B0;
  --gf-label-color-primary:#6B7482;
  --gf-form-gap-y:26px;
  --gf-form-gap-x:20px;
  --gf-local-radius:11px;
  margin:0;
}

/* --- Card shell: the form band on home / about / services / service pages */
.mr-formsec .gform_wrapper{
  background:#ffffff !important;
  border:1px solid var(--mr-line);
  border-radius:18px;
  box-shadow:0 24px 60px rgba(16,21,29,.09);
  padding:44px 44px 40px !important;
}
.mr-formsec .gform_confirmation_wrapper{
  max-width:none;background:transparent !important;border:none;box-shadow:none;padding:0 !important;
}
/* Quote page: the page already provides the surrounding layout */
.mr-quote .gform_wrapper{background:transparent !important;border:none;box-shadow:none;padding:0 !important}

/* --- Grid --------------------------------------------------------------- */
.gform_wrapper .gform_fields{
  grid-row-gap:26px;
  grid-column-gap:20px;
}
.gform_wrapper .gfield.gf_left_half,
.gform_wrapper .gfield.gf_right_half{float:none;width:auto;padding:0;clear:none}

/* --- Labels ------------------------------------------------------------- */
.gform_wrapper .gfield_label:not(.gform-field-label--type-inline),
.gform_wrapper .gform-field-label:not(.gform-field-label--type-inline):not(.gform-field-label--type-sub){
  display:flex !important;
  align-items:center;
  gap:5px;
  font-family:var(--mr-body-font) !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:.13em !important;
  text-transform:uppercase !important;
  color:var(--mr-muted) !important;
  line-height:1.4;
  margin:0 0 9px !important;
}
.gform_wrapper .gfield_required{
  color:var(--mr-blue) !important;
  font-size:11px;
  font-weight:700;
  margin-left:0;
}
/* "(Required)" wording → a simple asterisk */
.gform_wrapper .gfield_required .gfield_required_text,
.gform_wrapper .gfield_required.gfield_required_text{
  font-size:0 !important;letter-spacing:0 !important;
}
.gform_wrapper .gfield_required .gfield_required_text::after,
.gform_wrapper .gfield_required.gfield_required_text::after{
  content:"*";font-size:12px;
}
.gform_wrapper .gfield_description,
.gform_wrapper .gform-field-description{
  font-size:14px !important;
  line-height:1.6;
  color:var(--mr-muted) !important;
  padding:0;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
}
.gform_wrapper .gfield_description.description_above,
.gform_wrapper .gform-field-description--above{margin-bottom:14px}
.gform_wrapper .gform-field-label--type-sub,
.gform_wrapper .ginput_complex label{
  font-size:10px !important;letter-spacing:.12em !important;color:var(--mr-muted-2) !important;
}
.gform_wrapper .gform_required_legend{display:none !important}

/* --- Text inputs -------------------------------------------------------- */
.gform_wrapper input[type=text],
.gform_wrapper input[type=email],
.gform_wrapper input[type=tel],
.gform_wrapper input[type=url],
.gform_wrapper input[type=number],
.gform_wrapper input[type=password],
.gform_wrapper textarea,
.gform_wrapper select{
  width:100% !important;
  box-sizing:border-box;
  border:1px solid var(--mr-line-2) !important;
  border-radius:11px !important;
  background-color:var(--mr-gray-2) !important;
  padding:15px 16px !important;
  font-family:var(--mr-body-font) !important;
  font-size:16px !important;
  font-weight:500 !important;
  line-height:1.4 !important;
  color:var(--mr-ink) !important;
  outline:none;
  box-shadow:none;
  min-height:0;
  height:auto !important;
  transition:border-color .22s,background-color .22s,box-shadow .22s;
}
.gform_wrapper textarea{min-height:118px !important;line-height:1.6 !important;resize:vertical}
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus{
  border-color:var(--mr-blue) !important;
  background-color:#ffffff !important;
  box-shadow:0 0 0 4px rgba(35,83,153,.12) !important;
}
.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder{color:#9AA3B0 !important;opacity:1}
.gform_wrapper select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236B7482' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 16px center !important;
  background-size:12px !important;
  padding-right:42px !important;
}

/* --- Radio / checkbox: chip row (.mr-gf-chips) -------------------------- */
.gform_wrapper .mr-gf-chips .gfield_radio,
.gform_wrapper .mr-gf-chips .gfield_checkbox{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  row-gap:10px !important;
  grid-template-columns:none !important;
  --gf-ctrl-choice-gap:10px;
}
.gform_wrapper .mr-gf-chips .gchoice{margin:0 !important;padding:0 !important;display:block !important}
.gform_wrapper .mr-gf-chips .gchoice input[type=radio],
.gform_wrapper .mr-gf-chips .gchoice input[type=checkbox]{
  position:absolute !important;opacity:0 !important;width:1px !important;height:1px !important;margin:0 !important;
}
.gform_wrapper .mr-gf-chips .gchoice label{
  display:inline-flex !important;
  align-items:center;
  margin:0 !important;
  max-width:none !important;
  padding:12px 20px !important;
  border-radius:999px !important;
  cursor:pointer;
  font-family:var(--mr-body-font) !important;
  font-size:14px !important;
  font-weight:600 !important;
  letter-spacing:.01em !important;
  text-transform:none !important;
  color:var(--mr-body) !important;
  background:var(--mr-gray-2) !important;
  border:1px solid var(--mr-line-2) !important;
  transition:background .22s,color .22s,border-color .22s,box-shadow .22s,transform .22s;
}
.gform_wrapper .mr-gf-chips .gchoice label:hover{border-color:#B9C3D2 !important;transform:translateY(-1px)}
.gform_wrapper .mr-gf-chips .gchoice input:checked + label,
.gform_wrapper .mr-gf-chips .gchoice:has(input:checked) label{
  background:var(--mr-blue) !important;
  border-color:var(--mr-blue) !important;
  color:#ffffff !important;
  box-shadow:0 8px 20px rgba(35,83,153,.24);
}
.gform_wrapper .mr-gf-chips .gchoice input:focus-visible + label{outline:3px solid var(--mr-blue-300);outline-offset:3px}

/* --- Kill GF's faux radio/checkbox controls inside our custom choices --- */
.gform_wrapper .mr-gf-chips .gchoice label::before,
.gform_wrapper .mr-gf-chips .gchoice label::after,
.gform_wrapper .mr-gf-options .gchoice label::before,
.gform_wrapper .mr-gf-options .gchoice label::after{
  content:none !important;display:none !important;
}
.gform_wrapper .mr-gf-chips .gchoice,
.gform_wrapper .mr-gf-options .gchoice{
  min-height:0 !important;height:auto !important;
  padding:0 !important;margin:0 !important;border:none !important;background:none !important;
  gap:0 !important;line-height:normal !important;
}
.gform_wrapper .mr-gf-chips .gchoice label,
.gform_wrapper .mr-gf-options .gchoice label{
  min-height:0 !important;height:auto !important;
  padding-inline-start:22px !important;
  text-indent:0 !important;
  box-sizing:border-box;
  display:block !important;
  align-items:initial !important;
  gap:0 !important;
  vertical-align:top;
}
/* orbital reserves space for its own control on inline labels */
.gform_wrapper .mr-gf-chips .gform-field-label--type-inline,
.gform_wrapper .mr-gf-options .gform-field-label--type-inline{
  --gf-ctrl-choice-size:0px;
  --gf-ctrl-choice-gap:0px;
}
.gform_wrapper .mr-gf-chips .gchoice label{padding-inline-start:20px !important}

/* --- Radio: stacked option tiles (.mr-gf-options) ---------------------- */
.gform_wrapper .mr-gf-options .gfield_radio{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  row-gap:12px !important;
  grid-template-columns:none !important;
  --gf-ctrl-choice-gap:12px;
}
.gform_wrapper .mr-gf-options .gchoice{margin:0 !important;padding:0 !important;display:block !important}
.gform_wrapper .mr-gf-options .gchoice input[type=radio]{
  position:absolute !important;opacity:0 !important;width:1px !important;height:1px !important;margin:0 !important;
}
.gform_wrapper .mr-gf-options .gchoice label{
  display:block !important;
  margin:0 !important;
  max-width:none !important;
  cursor:pointer;
  padding:17px 22px !important;
  font-family:var(--mr-body-font) !important;
  font-size:17px !important;
  font-weight:700 !important;
  line-height:1.4 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  color:var(--mr-ink) !important;
  background:#ffffff !important;
  border:1px solid var(--mr-line) !important;
  border-left:3px solid #C9D3E0 !important;
  transition:border-left-color .2s,border-color .2s,background .2s,transform .2s var(--mr-ease);
}
.gform_wrapper .mr-gf-options .gchoice label:hover{border-left-color:var(--mr-blue) !important;transform:translateX(2px)}
.gform_wrapper .mr-gf-options .gchoice input:checked + label,
.gform_wrapper .mr-gf-options .gchoice:has(input:checked) label{
  background:#F4F6FA !important;
  border-color:var(--mr-blue) !important;
  border-left-color:var(--mr-blue) !important;
}
.gform_wrapper .mr-gf-options .gchoice input:focus-visible + label{outline:3px solid var(--mr-blue-300);outline-offset:3px}
.gform_wrapper .mr-gf-options .gchoice label .mr-opt-hint{
  display:block;margin-top:5px;
  font-size:14px !important;font-weight:500 !important;line-height:1.5;color:var(--mr-muted) !important;
}

/* --- File upload -------------------------------------------------------- */
.gform_wrapper .gform_drop_area{
  border:1.5px dashed #CBD3DD !important;
  border-radius:14px !important;
  background:var(--mr-gray-2) !important;
  padding:34px 28px !important;
  display:flex;flex-direction:column;align-items:center;gap:11px;
  text-align:center;margin:0 !important;
  transition:border-color .22s,background .22s;
}
.gform_wrapper .gform_drop_area:hover,
.gform_wrapper .gform_drop_area.gform_drop_area_hover{border-color:var(--mr-blue) !important;background:#F1F5FB !important}
.gform_wrapper .gform_drop_instructions{
  display:block;font-size:15px !important;font-weight:600 !important;color:var(--mr-body) !important;margin:0 !important;
}
.gform_wrapper .gform_button_select_files{
  background:var(--mr-blue) !important;color:#fff !important;border:none !important;
  font-family:var(--mr-body-font) !important;
  font-size:11px !important;font-weight:700 !important;letter-spacing:.13em !important;
  text-transform:uppercase !important;border-radius:8px !important;padding:11px 20px !important;
  cursor:pointer;height:auto !important;transition:background .25s;
}
.gform_wrapper .gform_button_select_files:hover{background:var(--mr-blue-dark) !important}
.gform_wrapper .gform_fileupload_rules{font-size:13px !important;color:var(--mr-muted-2) !important}
.gform_wrapper .ginput_preview{
  font-size:14px;color:var(--mr-body);padding:10px 0;border-bottom:1px solid var(--mr-line);
}

/* --- Buttons ------------------------------------------------------------ */
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer{
  display:flex !important;align-items:center;gap:16px;flex-wrap:wrap;
  border-top:1px solid #EEF0F3;
  margin:26px 0 0 !important;padding:26px 0 0 !important;
}
.gform_wrapper .gform_button,
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_previous_button,
.gform_wrapper .gform-button{
  display:inline-flex !important;align-items:center;gap:11px;
  width:auto !important;
  font-family:var(--mr-body-font) !important;
  font-size:12px !important;font-weight:700 !important;
  letter-spacing:.14em !important;text-transform:uppercase !important;
  padding:18px 32px !important;margin:0 !important;
  border:none !important;border-radius:11px !important;cursor:pointer;
  height:auto !important;min-height:0 !important;
  transition:background .3s,color .3s,border-color .3s,transform .3s var(--mr-ease),box-shadow .3s;
}
.gform_wrapper .gform_button,
.gform_wrapper .gform_next_button{background:var(--mr-blue) !important;color:#fff !important}
.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_next_button:hover{
  background:var(--mr-blue-dark) !important;color:#fff !important;
  transform:translateY(-2px);box-shadow:0 14px 30px rgba(35,83,153,.32);
}
.gform_wrapper .gform_previous_button{
  background:transparent !important;
  border:1.5px solid #CBD1D9 !important;
  color:var(--mr-ink) !important;
  padding:16.5px 28px !important;
}
.gform_wrapper .gform_previous_button:hover{border-color:var(--mr-blue) !important;color:var(--mr-blue) !important}
.mr-form__note{
  font-size:14px;color:var(--mr-muted-2);line-height:1.55;
  font-weight:400;letter-spacing:0;text-transform:none;
}
.gform_wrapper .gform_page_footer .mr-form__note{display:none}

/* --- Multi-page step indicator ----------------------------------------- */
.gform_wrapper .gf_page_steps{
  display:flex !important;flex-wrap:wrap;gap:8px;
  border:none !important;margin:0 0 32px !important;padding:0 0 26px !important;
  border-bottom:1px solid var(--mr-line) !important;
}
.gform_wrapper .gf_step{
  flex:1 1 120px;min-width:0;margin:0 !important;padding:0 !important;opacity:1 !important;
  display:flex !important;flex-direction:column;gap:9px;
  font-family:var(--mr-body-font) !important;
}
.gform_wrapper .gf_step::after{
  content:"";order:-1;display:block;height:3px;background:var(--mr-line);
  transition:background .4s var(--mr-ease);
}
.gform_wrapper .gf_step_active::after,
.gform_wrapper .gf_step_completed::after{background:var(--mr-blue)}
.gform_wrapper .gf_step_number{display:none !important}
.gform_wrapper .gf_step_label{
  font-size:12px !important;font-weight:700 !important;letter-spacing:.12em !important;
  text-transform:uppercase !important;color:var(--mr-muted) !important;
}
.gform_wrapper .gf_step_active .gf_step_label{color:var(--mr-blue) !important}
.gform_wrapper .gf_step_completed .gf_step_label{color:var(--mr-ink) !important}

/* --- Percentage progress bar ------------------------------------------- */
.gform_wrapper .gf_progressbar_wrapper{
  border:none !important;margin:0 0 32px !important;padding:0 0 26px !important;
  border-bottom:1px solid var(--mr-line);
}
.gform_wrapper .gf_progressbar_title{
  font-size:12px !important;font-weight:700 !important;letter-spacing:.14em !important;
  text-transform:uppercase !important;color:var(--mr-blue) !important;margin-bottom:12px !important;
}
.gform_wrapper .gf_progressbar{background:var(--mr-line) !important;border-radius:0 !important;height:3px !important;padding:0 !important}
.gform_wrapper .gf_progressbar_percentage{
  height:3px !important;border-radius:0 !important;background:var(--mr-blue) !important;
  transition:width .45s var(--mr-ease);
}
.gform_wrapper .gf_progressbar_percentage span{display:none !important}

/* --- Validation -------------------------------------------------------- */
.gform_wrapper .gform_validation_errors{
  border:1px solid #E7C9C2 !important;border-radius:14px !important;
  background:#FCF4F2 !important;box-shadow:none !important;
  padding:20px 24px !important;margin:0 0 28px !important;
}
.gform_wrapper .gform_validation_errors > h2{
  font-family:var(--mr-body-font) !important;
  font-size:15px !important;font-weight:700 !important;color:#8A2C18 !important;
  margin:0 !important;line-height:1.5;letter-spacing:0;text-transform:none;
}
.gform_wrapper .gform_validation_errors > h2 .gform-icon{color:#8A2C18 !important}
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea,
.gform_wrapper .gfield_error select{border-color:#C2593F !important;background-color:#FDF7F5 !important}
.gform_wrapper .gfield_error .gfield_label,
.gform_wrapper .gfield_error .gform-field-label{color:#8A2C18 !important}
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message{
  border:none !important;background:transparent !important;padding:8px 0 0 !important;
  font-size:13px !important;font-weight:600 !important;color:#A4341F !important;
  letter-spacing:0;text-transform:none;
}

/* --- Confirmation ------------------------------------------------------ */
.mr-gf-thanks{
  background:#fff;border:1px solid var(--mr-line);border-radius:18px;
  box-shadow:0 24px 60px rgba(16,21,29,.09);
  padding:64px 44px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.mr-gf-thanks__tick{
  width:58px;height:58px;border-radius:50%;background:var(--mr-blue);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:26px;
}
.mr-gf-thanks__h{
  font-family:var(--mr-display);font-weight:400;font-size:30px;
  text-transform:uppercase;letter-spacing:.04em;color:var(--mr-ink);
}
.mr-gf-thanks p{color:var(--mr-body);font-size:16px;line-height:1.7;max-width:480px;margin:0}
.mr-gf-thanks--wizard{text-align:left;align-items:flex-start;border-top:3px solid var(--mr-blue)}
.mr-gf-thanks--wizard p{max-width:520px}

/* --- Honeypot ---------------------------------------------------------- */
.gform_wrapper .gform_validation_container,
.gform_wrapper .gfield--type-honeypot{display:none !important;position:absolute !important;left:-9999px}

/* --- Responsive -------------------------------------------------------- */
@media (max-width:760px){
  .mr-formsec .gform_wrapper{padding:28px 22px 26px !important;border-radius:14px}
  .gform_wrapper .gform_fields{grid-row-gap:22px}
  .gform_wrapper .gf_page_steps{gap:6px}
  .gform_wrapper .gf_step{flex:1 1 60px}
  .gform_wrapper .gf_step_label{font-size:0 !important;letter-spacing:0 !important}
  .gform_wrapper .gform_footer,
  .gform_wrapper .gform_page_footer{gap:12px}
  .gform_wrapper .gform_button,
  .gform_wrapper .gform_next_button{width:100% !important;justify-content:center}
  .mr-gf-thanks{padding:44px 24px;border-radius:14px}
  .gform_wrapper .mr-gf-options .gchoice label{font-size:16px !important;padding:18px 18px !important}
}
