/* AM RVD Forms 1.0.2 — component styles for Gravity Forms forms carrying the CSS class am-rvd-form.
   GF puts the form's cssClass tokens on .gform_wrapper and .gform_confirmation_wrapper, so .am-rvd-form scopes both.
   Field classes: am-heading am-h3 am-cards am-chips am-yn am-rate am-checks am-note (see README).
   !important throughout: host pages (Elementor text widgets) ship their own !important rules for input/h3/label. */

.am-rvd-form,
.am-rvd-form *,
.am-rvd-form *::before,
.am-rvd-form *::after,
.am-rvd-form.gform_confirmation_wrapper,
.am-rvd-form.gform_confirmation_wrapper * { box-sizing: border-box !important; }

.am-rvd-form,
.am-rvd-form.gform_confirmation_wrapper {
  --blue: #1762cb;
  --navy: #0b1c36;
  --gold: #ffbf20;
  --surface: #f3f7fc;
  --card: #fff;
  --muted: #607089;
  --border: #d6e0ec;
  --danger: #c62828;
  --head: 'Bebas Neue', Impact, 'Arial Narrow', sans-serif;
  --body: 'Barlow', Arial, sans-serif;
  margin: 0 !important;
  max-width: 100% !important;
  color: var(--navy) !important;
  font-family: var(--body) !important;
  line-height: 1.5 !important;
}

/* ---- card shell ---- */
.am-rvd-form form {
  overflow: hidden !important;
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  border-radius: 16px !important;
  box-shadow: 0 16px 40px rgba(17, 43, 78, .10) !important;
}
.am-rvd-form .gform_heading { display: none !important; }
.am-rvd-form .gform_required_legend { display: none !important; }
.am-rvd-form .gfield_required { display: none !important; }

/* ---- progress ---- */
.am-rvd-form .am-rvd-progress {
  padding: 22px 26px !important;
  background: var(--surface) !important;
  border-bottom: 1px solid var(--border) !important;
}
.am-rvd-form .am-rvd-progress-top {
  display: flex !important; justify-content: space-between !important; align-items: center !important; gap: 16px !important;
}
.am-rvd-form .am-rvd-step-label,
.am-rvd-form .am-rvd-step-name {
  margin: 0 !important; font-family: var(--head) !important; font-size: 16px !important; font-weight: 400 !important;
  letter-spacing: 1.4px !important; text-transform: uppercase !important; line-height: 1.2 !important;
}
.am-rvd-form .am-rvd-step-label { color: var(--blue) !important; }
.am-rvd-form .am-rvd-step-name { color: #52617a !important; }
.am-rvd-form .am-rvd-bar {
  height: 6px !important; margin-top: 14px !important; background: #d7e0eb !important; border-radius: 999px !important; overflow: hidden !important;
}
.am-rvd-form .am-rvd-bar-fill {
  height: 100% !important; background: var(--gold) !important; border-radius: 999px !important; transition: width .25s ease !important;
}

/* ---- body ---- */
.am-rvd-form .gform_page_fields,
.am-rvd-form .gform-body { padding: 34px !important; }
.am-rvd-form .gform_page .gform-body { padding: 0 !important; }
.am-rvd-form .gform_fields {
  display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  column-gap: 16px !important; row-gap: 18px !important; width: 100% !important;
}
.am-rvd-form .gfield { grid-column: span 12 !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; }
.am-rvd-form .gfield--width-half { grid-column: span 6 !important; }
.am-rvd-form .gfield--width-third { grid-column: span 4 !important; }
.am-rvd-form .gfield--width-two-thirds { grid-column: span 8 !important; }
.am-rvd-form .gfield--width-quarter { grid-column: span 3 !important; }

/* headings (HTML fields) */
.am-rvd-form .am-heading { margin-bottom: 2px !important; }
.am-rvd-form .am-rvd-h3,
.am-rvd-form .am-h3 > .gfield_label {
  display: block !important; margin: 0 0 20px !important; padding: 0 !important; color: var(--navy) !important;
  font-family: var(--head) !important; font-size: 30px !important; font-weight: 400 !important; line-height: 1.1 !important;
  letter-spacing: .25px !important; text-transform: uppercase !important;
}
.am-rvd-form .am-rvd-help,
.am-rvd-form .gfield_description {
  margin: -10px 0 18px !important; padding: 0 !important; color: var(--muted) !important; font-size: 14px !important; line-height: 1.5 !important;
}
.am-rvd-form .gfield_description { margin: 8px 0 0 !important; }
.am-rvd-form .am-checks .gfield_description { margin: -4px 0 12px !important; }

/* labels + inputs */
.am-rvd-form .gfield_label,
.am-rvd-form legend.gfield_label {
  display: block !important; margin: 0 0 7px !important; padding: 0 !important; color: var(--navy) !important;
  font-family: var(--body) !important; font-size: 14px !important; font-weight: 700 !important; line-height: 1.3 !important;
}
.am-rvd-form .gform-field-label--type-sub { display: none !important; }
.am-rvd-form input[type="text"],
.am-rvd-form input[type="tel"],
.am-rvd-form input[type="email"],
.am-rvd-form input[type="number"],
.am-rvd-form textarea,
.am-rvd-form select {
  width: 100% !important; min-height: 0 !important; margin: 0 !important; padding: 13px 14px !important;
  border: 1px solid var(--border) !important; border-radius: 8px !important; background: #fff !important; color: var(--navy) !important;
  font-family: var(--body) !important; font-size: 16px !important; line-height: 1.3 !important; outline: none !important; box-shadow: none !important;
}
.am-rvd-form input:focus,
.am-rvd-form textarea:focus,
.am-rvd-form select:focus {
  border-color: var(--blue) !important; box-shadow: 0 0 0 3px rgba(23, 98, 203, .12) !important;
}
.am-rvd-form textarea { resize: vertical !important; min-height: 96px !important; height: 96px !important; }
.am-rvd-form ::placeholder { color: #94a1b5 !important; opacity: 1 !important; }
.am-rvd-form .ginput_complex { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
.am-rvd-form .ginput_complex > span { display: block !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; }

/* validation */
.am-rvd-form .gform_validation_errors {
  margin: 0 !important; padding: 12px 34px 0 !important; border: 0 !important; background: none !important; box-shadow: none !important;
}
.am-rvd-form .gform_validation_errors > h2 {
  margin: 0 !important; padding: 0 !important; color: var(--danger) !important; font-family: var(--body) !important;
  font-size: 13px !important; font-weight: 700 !important; line-height: 1.4 !important;
}
.am-rvd-form .gform_validation_errors > h2 .gform-icon { display: none !important; }
.am-rvd-form .gform_validation_errors ol { display: none !important; }
.am-rvd-form .gfield_error .gfield_label { color: var(--navy) !important; }
.am-rvd-form .gfield_error input,
.am-rvd-form .gfield_error textarea { border-color: var(--danger) !important; }
.am-rvd-form .gfield_validation_message,
.am-rvd-form .validation_message {
  margin: 5px 0 0 !important; padding: 0 !important; border: 0 !important; background: none !important;
  color: var(--danger) !important; font-size: 12px !important; font-weight: 700 !important;
}

/* ---- choices: hide native input, style the label ---- */
.am-rvd-form .gchoice { position: relative !important; margin: 0 !important; padding: 0 !important; min-width: 0 !important; }
.am-rvd-form .gchoice input[type="radio"],
.am-rvd-form .gchoice input[type="checkbox"] {
  position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important;
  opacity: 0 !important; pointer-events: none !important; border: 0 !important;
}
.am-rvd-form .gchoice label {
  display: block !important; max-width: none !important; margin: 0 !important; cursor: pointer !important; user-select: none !important;
  font-family: var(--body) !important; color: var(--navy) !important; line-height: 1.3 !important;
}
.am-rvd-form .gchoice input:focus-visible + label { outline: 3px solid rgba(23, 98, 203, .35) !important; outline-offset: 2px !important; }

/* goal cards */
.am-rvd-form .am-cards .gfield_radio {
  display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px !important; width: 100% !important;
}
.am-rvd-form .am-cards .gchoice label {
  min-height: 118px !important; padding: 24px 20px !important; border: 2px solid var(--border) !important; border-radius: 12px !important;
  background: #fff !important; text-align: left !important; transition: .18s ease !important; overflow-wrap: anywhere !important;
}
.am-rvd-form .am-cards .gchoice label:hover { border-color: rgba(23, 98, 203, .5) !important; }
.am-rvd-form .am-cards .gchoice input:checked + label {
  border-color: var(--blue) !important; background: rgba(23, 98, 203, .05) !important; box-shadow: 0 5px 18px rgba(23, 98, 203, .10) !important;
}
.am-rvd-form .am-cards .gchoice label strong {
  display: block !important; margin: 0 !important; font-family: var(--head) !important; font-size: 21px !important; font-weight: 400 !important;
  letter-spacing: .2px !important; line-height: 1.15 !important; text-transform: uppercase !important; color: var(--navy) !important;
}
.am-rvd-form .am-cards .gchoice input:checked + label strong { color: var(--blue) !important; }
.am-rvd-form .am-rvd-choice-desc {
  display: block !important; margin: 6px 0 0 !important; color: var(--muted) !important; font-size: 14px !important; line-height: 1.45 !important; text-transform: none !important;
}

/* chips */
.am-rvd-form .am-chips .gfield_radio { display: flex !important; flex-wrap: wrap !important; gap: 9px !important; }
.am-rvd-form .am-chips .gchoice label {
  padding: 8px 13px !important; border: 1px solid var(--border) !important; border-radius: 999px !important; background: #fff !important;
  font-size: 14px !important; font-weight: 600 !important;
}
.am-rvd-form .am-chips .gchoice input:checked + label { border-color: var(--blue) !important; background: var(--blue) !important; color: #fff !important; }

/* Yes / No / Unknown rows. A fieldset's <legend> ignores flex layout unless floated, so float it. */
.am-rvd-form .am-yn {
  display: flex !important; flex-wrap: wrap !important; justify-content: space-between !important; align-items: center !important; gap: 12px !important;
  padding: 13px 14px !important; border: 1px solid var(--border) !important; border-radius: 9px !important; background: #fff !important;
}
.am-rvd-form .am-yn legend.gfield_label { float: left !important; width: auto !important; }
.am-rvd-form .am-yn.gfield_error { border-color: var(--danger) !important; }
.am-rvd-form .am-yn .gfield_label { margin: 0 !important; font-size: 14px !important; font-weight: 600 !important; flex: 1 1 auto !important; }
.am-rvd-form .am-yn .ginput_container { margin: 0 !important; flex: 0 0 auto !important; }
.am-rvd-form .am-yn .gfield_radio { display: flex !important; flex-wrap: wrap !important; justify-content: flex-end !important; gap: 5px !important; }
.am-rvd-form .am-yn .gchoice label {
  min-width: 58px !important; padding: 7px 9px !important; border: 1px solid var(--border) !important; border-radius: 6px !important;
  background: #fff !important; color: #657188 !important; font-size: 11px !important; font-weight: 800 !important; text-align: center !important; text-transform: uppercase !important;
}
.am-rvd-form .am-yn .gchoice input:checked + label { border-color: var(--blue) !important; background: var(--blue) !important; color: #fff !important; }
.am-rvd-form .am-yn .gfield_validation_message { flex-basis: 100% !important; }
.am-rvd-form .charleft { display: none !important; }

/* rating 1-10 */
.am-rvd-form .am-rate .gfield_radio { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; }
.am-rvd-form .am-rate .gchoice label {
  width: 42px !important; height: 42px !important; display: flex !important; align-items: center !important; justify-content: center !important;
  border: 1px solid var(--border) !important; border-radius: 7px !important; background: #fff !important;
  font-family: var(--head) !important; font-size: 19px !important;
}
.am-rvd-form .am-rate .gchoice input:checked + label { border-color: var(--blue) !important; background: var(--blue) !important; color: #fff !important; }

/* photo checklist */
.am-rvd-form .am-checks .gfield_checkbox { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
.am-rvd-form .am-checks .gchoice label {
  display: flex !important; align-items: center !important; gap: 10px !important; padding: 13px 14px !important;
  border: 1px solid var(--border) !important; border-radius: 8px !important; background: #fff !important; font-size: 14px !important;
}
.am-rvd-form .am-checks .gchoice label::before {
  content: '' !important; flex: 0 0 18px !important; width: 18px !important; height: 18px !important; border: 2px solid #9aa8bb !important;
  border-radius: 4px !important; background: #fff !important;
}
.am-rvd-form .am-checks .gchoice input:checked + label { border-color: var(--blue) !important; }
.am-rvd-form .am-checks .gchoice input:checked + label::before {
  border-color: var(--blue) !important; background: var(--blue) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3 3 7-7'/%3E%3C/svg%3E") !important;
  background-size: 12px !important; background-position: center !important; background-repeat: no-repeat !important;
}

/* disclaimer */
.am-rvd-form .am-rvd-note {
  margin: 0 !important; padding: 14px !important; border-radius: 8px !important; background: var(--surface) !important;
  color: var(--muted) !important; font-size: 13px !important; line-height: 1.5 !important;
}

/* ---- footer / buttons ---- */
.am-rvd-form .gform_page_footer,
.am-rvd-form .gform_footer {
  display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important;
  gap: 14px !important; margin: 0 !important; padding: 20px 26px !important; border-top: 1px solid var(--border) !important; background: var(--surface) !important;
}
/* GF prints Back before Continue/Submit; space-between puts Back left, action right */
.am-rvd-form .gform_page_footer::after,
.am-rvd-form .gform_footer::after { content: none !important; }
.am-rvd-form .gform_page_footer .gform_previous_button,
.am-rvd-form .gform_page_footer .gform_next_button,
.am-rvd-form .gform_page_footer input[type="submit"],
.am-rvd-form .gform_page_footer button[type="submit"],
.am-rvd-form .gform_footer input[type="submit"],
.am-rvd-form .gform_footer button[type="submit"] {
  display: inline-flex !important; align-items: center !important; justify-content: center !important; width: auto !important; min-height: 44px !important;
  margin: 0 !important; padding: 11px 26px !important; border-radius: 6px !important; box-shadow: none !important; text-decoration: none !important;
  font-family: var(--head) !important; font-size: 18px !important; font-weight: 400 !important; letter-spacing: .35px !important; text-transform: uppercase !important;
  line-height: 1 !important; cursor: pointer !important; transition: .15s ease !important;
}
.am-rvd-form .gform_page_footer .gform_previous_button {
  border: 1px solid var(--border) !important; background: #fff !important; color: #7b8798 !important;
}
.am-rvd-form .gform_page_footer .gform_next_button {
  border: 1px solid var(--blue) !important; background: var(--blue) !important; color: #fff !important;
}
.am-rvd-form .gform_page_footer .gform_next_button:hover { background: #124fa8 !important; }
.am-rvd-form .gform_page_footer input[type="submit"],
.am-rvd-form .gform_page_footer button[type="submit"],
.am-rvd-form .gform_footer input[type="submit"],
.am-rvd-form .gform_footer button[type="submit"] {
  border: 1px solid var(--gold) !important; background: var(--gold) !important; color: var(--navy) !important;
}
.am-rvd-form .gform_page_footer input[type="submit"]:hover,
.am-rvd-form .gform_footer input[type="submit"]:hover { background: #f4b40e !important; }
.am-rvd-form .gform_ajax_spinner { margin: 0 8px !important; width: 20px !important; height: 20px !important; }
/* first page has no Back button: keep Continue on the right */
.am-rvd-form .gform_page_footer .gform_next_button:only-child { margin-left: auto !important; }

/* ---- confirmation ---- */
.am-rvd-form.gform_confirmation_wrapper .gform_confirmation_message {
  overflow: hidden !important; padding: 54px 34px !important; background: var(--card) !important; border: 1px solid var(--border) !important;
  border-radius: 16px !important; box-shadow: 0 16px 40px rgba(17, 43, 78, .10) !important; text-align: center !important;
}
.am-rvd-form.gform_confirmation_wrapper .am-rvd-success-icon {
  display: flex !important; align-items: center !important; justify-content: center !important; width: 60px !important; height: 60px !important;
  margin: 0 auto 20px !important; border-radius: 50% !important; background: var(--gold) !important; color: var(--navy) !important; font-size: 30px !important; font-weight: 900 !important;
}
.am-rvd-form.gform_confirmation_wrapper h3 {
  margin: 0 0 10px !important; color: var(--navy) !important; font-family: var(--head) !important; font-size: 30px !important; font-weight: 400 !important;
  letter-spacing: .25px !important; text-transform: uppercase !important; line-height: 1.1 !important;
}
.am-rvd-form.gform_confirmation_wrapper p { max-width: 620px !important; margin: 10px auto 0 !important; color: var(--muted) !important; font-size: 16px !important; }
.am-rvd-form.gform_confirmation_wrapper a { color: var(--blue) !important; font-weight: 700 !important; text-decoration: none !important; }

/* ---- tablet ---- */
@media (max-width: 900px) {
  .am-rvd-form .gfield--width-third,
  .am-rvd-form .gfield--width-two-thirds,
  .am-rvd-form .gfield--width-quarter { grid-column: span 6 !important; }
  .am-rvd-form .am-yn { grid-column: span 12 !important; }
  .am-rvd-form .am-cards .gfield_radio { grid-template-columns: 1fr !important; }
  .am-rvd-form .am-cards .gchoice label { min-height: 0 !important; }
}

/* ---- mobile ---- */
@media (max-width: 640px) {
  .am-rvd-form .gform_page_fields,
  .am-rvd-form .gform-body { padding: 24px 18px !important; }
  .am-rvd-form .am-rvd-progress,
  .am-rvd-form .gform_page_footer,
  .am-rvd-form .gform_footer { padding: 18px !important; }
  .am-rvd-form .gfield--width-half,
  .am-rvd-form .gfield--width-third,
  .am-rvd-form .gfield--width-two-thirds,
  .am-rvd-form .gfield--width-quarter { grid-column: span 12 !important; }
  .am-rvd-form .ginput_complex { grid-template-columns: 1fr !important; }
  .am-rvd-form .am-yn { flex-direction: column !important; align-items: flex-start !important; }
  .am-rvd-form .am-yn .gfield_radio { justify-content: flex-start !important; }
  .am-rvd-form .am-checks .gfield_checkbox { grid-template-columns: 1fr !important; }
  .am-rvd-form .gform_page_footer,
  .am-rvd-form .gform_footer { flex-direction: column-reverse !important; align-items: stretch !important; }
  .am-rvd-form .gform_page_footer .gform_previous_button,
  .am-rvd-form .gform_page_footer .gform_next_button,
  .am-rvd-form .gform_page_footer input[type="submit"],
  .am-rvd-form .gform_footer input[type="submit"] { width: 100% !important; }
  .am-rvd-form .am-rvd-h3,
  .am-rvd-form .am-h3 > .gfield_label { font-size: 26px !important; }
  .am-rvd-form.gform_confirmation_wrapper .gform_confirmation_message { padding: 40px 20px !important; }
}
