/* =========================================================================
   Elementor fit + theme hardening for Sweet James PPC native widgets.
   Loaded on the front end AND in the Elementor editor.

   Part A — zero Elementor's wrapper spacing so each SJ section widget renders
   byte-identical to the design comps.
   Part B — re-assert brand styles with !important so the host theme cannot
   repaint buttons, links, FAQ accordions, etc. on the live site.
   ========================================================================= */

/* ============================ PART A — FIT ============================ */

/* Full-bleed sections: SJ sections own their padding + use .sj-container
   internally for max-width, so the Elementor container must not constrain. */
.elementor-section > .elementor-container,
.elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Columns + widgets: no gutters, no stacked-widget margins. */
.elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 0 !important; }
.elementor-widget:not(:last-child) { margin-bottom: 0 !important; }

/* SJ section widgets (sj_home_hero, sj_prac_play, sj_loc_map, sj_header, …)
   fill their column with no wrapper padding/margin. */
[class*="elementor-widget-sj_"] { margin: 0 !important; width: 100%; }
[class*="elementor-widget-sj_"] > .elementor-widget-container { margin: 0 !important; padding: 0 !important; width: 100%; }

/* Elementor sometimes wraps sections in extra padding on canvas — zero it. */
.elementor-element .elementor-top-section,
.elementor-section { padding: 0 !important; margin: 0 !important; }

/* Guard: SJ sections use full viewport width; prevent horizontal scroll. */
.sj-ppc-body, body.elementor-page { overflow-x: hidden; }

/* ====================== PART B — THEME HARDENING ======================
   The host theme (Kinsta dev) out-specifies brand classes and repaints
   links/buttons/accordions (often in a pink accent). These scoped
   !important rules lock the Sweet James look on the live site. */

/* Breadcrumbs on the dark hero — keep links legible (theme link color was winning). */
.practice-hero .sj-breadcrumbs a,
.loc-hero .sj-breadcrumbs a {
  color: rgba(255,255,255,0.72) !important;
  text-decoration: none !important;
}
.practice-hero .sj-breadcrumbs a:hover,
.loc-hero .sj-breadcrumbs a:hover { color: var(--sj-gold) !important; }
.practice-hero .sj-breadcrumbs [aria-current="page"],
.loc-hero .sj-breadcrumbs [aria-current="page"] { color: #fff !important; }
.practice-hero .sj-breadcrumbs .sep,
.loc-hero .sj-breadcrumbs .sep { color: rgba(255,255,255,0.4) !important; }

/* Consent fine-print links inside the dark form cards — keep readable. */
.sj-bg-navy .sj-consent a,
.sj-bg-ink .sj-consent a,
.practice-hero .sj-consent a,
.loc-hero .sj-consent a,
.final-cta .sj-consent a {
  color: #fff !important;
  text-decoration: underline !important;
}

/* Brand buttons — theme must not repaint them. */
.sj-btn--yellow,
button.sj-btn--yellow,
.sj-form button[type="submit"].sj-btn--yellow {
  background: var(--sj-gold) !important;
  color: var(--sj-ink) !important;
  border: 0 !important;
  text-decoration: none !important;
}
.sj-btn--yellow:hover,
button.sj-btn--yellow:hover { background: var(--sj-gold-hover, #e6b800) !important; color: var(--sj-ink) !important; }
/* Brand buttons keep their pill radius (theme/Bootstrap was squaring the form submit). */
.sj-btn--yellow, .sj-btn--navy, .sj-btn--navy-outline, .sj-btn--white-outline,
.sj-form button[type="submit"], .sj-form .sj-btn--block { border-radius: 999px !important; }
.sj-ppc-body .sj-form button[type="submit"],
.sj-ppc-body .sj-form .btn,
.sj-form .btn-warning.w-100 { border-radius: 999px !important; }
.sj-btn--navy,
button.sj-btn--navy {
  background: var(--sj-navy) !important;
  color: #fff !important;
  border: 0 !important;
  text-decoration: none !important;
}
.sj-btn--navy-outline {
  background: transparent !important;
  color: var(--sj-navy) !important;
  border: 1px solid var(--sj-navy) !important;
  text-decoration: none !important;
}
.sj-btn--white-outline {
  color: #fff !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.5) !important;
  text-decoration: none !important;
}
.sj-btn--white-outline:hover { background: rgba(255,255,255,0.10) !important; color: #fff !important; }

/* FAQ accordion — fully self-contained so it renders as design cards even if
   Bootstrap's accordion CSS is missing/overridden or the theme repaints it. */
.sj-faq__list { display: grid !important; gap: 10px !important; }
.sj-faq__list .sj-faq__item,
.sj-faq__list .accordion-item {
  border: 1px solid var(--sj-line, rgba(10,14,44,0.10)) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
.sj-faq__list .accordion-header { margin: 0 !important; border: 0 !important; }
.sj-faq__list .accordion-button {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  width: 100% !important;
  text-align: left !important;
  padding: 20px 24px !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  color: var(--sj-ink) !important;
  background: #fff !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 14px !important;
}
.sj-faq__list .accordion-button:not(.collapsed) {
  background: #fff !important;
  color: var(--sj-navy) !important;
  border-radius: 14px 14px 0 0 !important;
}
.sj-faq__list .accordion-button:focus,
.sj-faq__list .accordion-button:focus-visible {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
/* FAQ chevron — yellow circle + navy chevron, matching the comp (was tiny default). */
.sj-faq__list .accordion-button::after {
  flex: 0 0 auto !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  background-color: var(--sj-gold) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%230a1254' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") !important;
  background-position: center !important;
  background-size: 16px 16px !important;
  background-repeat: no-repeat !important;
  filter: none !important;
}
.sj-faq__list .accordion-body,
.sj-faq__list .sj-faq__body {
  padding: 0 24px 22px !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--sj-ink-soft) !important;
  background: #fff !important;
}
.sj-faq__list .accordion-body a,
.sj-faq__list .sj-faq__body a { color: var(--sj-navy) !important; text-decoration: underline !important; }
.sj-faq__list .accordion-collapse { border: 0 !important; }

/* Results carousel arrows — rounded white circles + navy chevrons (override
   Elementor/theme default squares & red hover). */
.sj-results-carousel .carousel-control-prev,
.sj-results-carousel .carousel-control-next {
  width: 48px !important;
  height: 48px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  border-radius: 50% !important;
  background-color: #fff !important;
  border: 1px solid var(--sj-line, rgba(10,18,84,0.12)) !important;
  outline: 0 !important;
  box-shadow: 0 6px 18px rgba(10,14,44,0.14) !important;
  opacity: 1 !important;
}
.sj-results-carousel .carousel-control-prev { left: -10px !important; }
.sj-results-carousel .carousel-control-next { right: -10px !important; }
.sj-results-carousel .carousel-control-prev:hover,
.sj-results-carousel .carousel-control-next:hover { background-color: var(--sj-navy) !important; }
.sj-results-carousel .carousel-control-prev-icon,
.sj-results-carousel .carousel-control-next-icon {
  width: 16px !important;
  height: 16px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 16px 16px !important;
}
.sj-results-carousel .carousel-control-prev-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%230a1254' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 4l-4 4 4 4'/%3E%3C/svg%3E") !important;
}
.sj-results-carousel .carousel-control-next-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%230a1254' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 4l4 4-4 4'/%3E%3C/svg%3E") !important;
}
.sj-results-carousel .carousel-control-prev:hover .carousel-control-prev-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23FFFF00' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 4l-4 4 4 4'/%3E%3C/svg%3E") !important;
}
.sj-results-carousel .carousel-control-next:hover .carousel-control-next-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23FFFF00' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 4l4 4-4 4'/%3E%3C/svg%3E") !important;
}

/* Top bar phone — brand yellow */
.sj-topbar__right a,
.sj-topbar__right a:link,
.sj-topbar__right a:visited { color: var(--sj-gold) !important; }

/* Results rail — scroll-snap (3-up desktop, one card at a time on mobile). */
.results-band .sj-rail-wrap { position: relative; margin-top: 44px; }
.results-band .sj-rail {
  display: flex; gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
  padding: 6px 4px 14px; scrollbar-width: none;
}
.results-band .sj-rail::-webkit-scrollbar { display: none; }
.results-band .sj-rail__item { flex: 0 0 calc((100% - 40px) / 3); scroll-snap-align: start; }
@media (max-width: 991px) { .results-band .sj-rail__item { flex: 0 0 calc((100% - 20px) / 2); } }
@media (max-width: 767px) { .results-band .sj-rail__item { flex: 0 0 88%; } }
.results-band .sj-rail__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; border-radius: 50%;
  background: #fff; border: 1px solid var(--sj-line, rgba(10,18,84,0.12));
  box-shadow: 0 6px 18px rgba(10,14,44,0.14);
  display: grid; place-items: center; cursor: pointer; z-index: 2; padding: 0;
}
.results-band .sj-rail__nav--prev { left: -10px; }
.results-band .sj-rail__nav--next { right: -10px; }
.results-band .sj-rail__nav svg { width: 16px; height: 16px; stroke: var(--sj-navy); }
.results-band .sj-rail__nav:hover { background: var(--sj-navy); }
.results-band .sj-rail__nav:hover svg { stroke: var(--sj-gold); }
@media (max-width: 767px) {
  /* Results rail: one card at a time + arrows BELOW the cards, centered. */
  .results-band .sj-rail-wrap { padding-bottom: 64px; }
  .results-band .sj-rail__item { flex: 0 0 88%; }
  .results-band .sj-rail__nav {
    top: auto !important; bottom: 0 !important; transform: none !important;
  }
  .results-band .sj-rail__nav--prev { left: calc(50% - 56px) !important; right: auto !important; }
  .results-band .sj-rail__nav--next { right: calc(50% - 56px) !important; left: auto !important; }
}

/* Form fields — keep on-brand against theme input styles. */
.sj-form .sj-field {
  background: #fff !important;
  color: var(--sj-ink) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
}

/* Result amount — one line, toned for desktop so cards don't reflow. */
.sj-result__amount { white-space: nowrap; }

/* ---- Dark sections: force legible text (theme darkened headings/body) ---- */
.why, .reviews-band, .final-cta { color: #fff !important; }
.why .why__h2,
.reviews-band .sj-display,
.reviews-band h2,
.final-cta .final-cta__h2 { color: #fff !important; }
.why .why__h2 em,
.reviews-band .sj-display em { color: var(--sj-gold) !important; }
.why .why__lede { color: rgba(255,255,255,0.82) !important; }
.reviews-band .sj-stars-caption { color: rgba(255,255,255,0.70) !important; }
.why .why__feature-title { color: #fff !important; }
.why .why__feature-sub { color: rgba(255,255,255,0.72) !important; }

/* ---- Framed images must fill their container (theme forced img height:auto) ---- */
.why__photo { aspect-ratio: 4 / 5 !important; overflow: hidden !important; position: relative; }
.why__photo img,
.come-to-you__visual img,
.home-hero__photo img,
.practice-hero__photo img,
.loc-hero__photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* ---- Footer: black band (per brand) + legible text ---- */
.sj-footer { background: #000 !important; color: rgba(255,255,255,0.62) !important; }
.sj-footer p,
.sj-footer__blurb { color: rgba(255,255,255,0.62) !important; }
.sj-footer__phone { color: var(--sj-gold) !important; }
.sj-footer__disclaimer { color: rgba(255,255,255,0.45) !important; }
.sj-footer__bottom,
.sj-footer__bottom div { color: rgba(255,255,255,0.60) !important; }
.sj-footer__bar a { color: rgba(255,255,255,0.72) !important; text-decoration: none !important; }
.sj-footer__bar a:hover { color: var(--sj-gold) !important; }

/* ===== Quiz variant: brand the multi-step Gravity Form inside .sj-form-card ===== */
/* Card background to match the design (defined navy card, not blended into hero). */
.sj-form-card--quiz,
.sj-hero-form-wrap .sj-form-card--quiz {
  background: linear-gradient(180deg, #111c63 0%, #0b1450 100%) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 18px !important;
  box-shadow: 0 24px 60px rgba(5,8,40,0.45) !important;
  padding: 26px !important;
}
/* Hide GF's native progress bar — replaced by the JS-built .sj-stepper. */
.sj-form-card--quiz .gf_progressbar_wrapper { display: none !important; }
/* Segmented stepper (6 notches; completed = gold). */
.sj-form-card--quiz .sj-stepper {
  display: flex !important; gap: 6px !important; margin: 4px 0 22px !important;
}
.sj-form-card--quiz .sj-stepper span {
  flex: 1 1 0 !important; height: 5px !important; border-radius: 999px !important;
  background: rgba(255,255,255,0.18) !important;
}
.sj-form-card--quiz .sj-stepper span.is-done { background: var(--sj-gold) !important; }
/* Quiz trust line under the title (60 Seconds · 100% Confidential). */
.sj-form-card--quiz .sj-form-card__secure {
  display: flex !important; align-items: center !important; gap: 8px !important;
  color: rgba(255,255,255,0.7) !important; font-size: 13px !important; font-weight: 600 !important;
  margin: 2px 0 18px !important;
}
.sj-form-card--quiz .sj-form-card__secure i { color: var(--sj-gold) !important; font-size: 12px !important; }

/* Choices + fields span the full card width (match the yellow CTA). */
.sj-form-card--quiz .gfield,
.sj-form-card--quiz .gfield_radio,
.sj-form-card--quiz .gfield_radio .gchoice,
.sj-form-card--quiz .gfield_radio label,
.sj-form-card--quiz .gform_page,
.sj-form-card--quiz .gform_fields { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
.sj-form-card--quiz .gfield_radio .gchoice,
.sj-form-card--quiz .gfield_radio label { margin-left: 0 !important; margin-right: 0 !important; padding-left: 16px !important; padding-right: 16px !important; }
.sj-form-card--quiz .gform_fields { padding: 0 !important; }

/* Consent step: plain checkbox + text (NOT a white pill / letter badge). Doubled
   class raises specificity so the VISIBLE checkbox beats the global hide rule. */
.sj-form-card--quiz .sj-consent-field.sj-consent-field .gfield_checkbox label {
  display: flex !important; align-items: flex-start !important; gap: 10px !important;
  background: transparent !important; border: 0 !important; border-radius: 0 !important;
  padding: 0 !important; box-shadow: none !important;
  color: rgba(255,255,255,0.78) !important; font-weight: 400 !important; font-size: 13px !important;
  line-height: 1.5 !important;
}
.sj-form-card--quiz .sj-consent-field.sj-consent-field .gfield_checkbox label::before { display: none !important; }
.sj-form-card--quiz .sj-consent-field.sj-consent-field input[type="checkbox"] {
  position: static !important; opacity: 1 !important; clip: auto !important;
  width: 20px !important; height: 20px !important; margin: 2px 0 0 !important;
  flex: 0 0 auto !important; accent-color: var(--sj-gold) !important;
  -webkit-appearance: auto !important; appearance: auto !important;
}
.sj-form-card--quiz .gform_wrapper { margin: 0 !important; }
.sj-form-card--quiz .gform_wrapper,
.sj-form-card--quiz .gform_wrapper * { color: #fff !important; }
.sj-form-card--quiz .gfield_label,
.sj-form-card--quiz .gform_wrapper legend { color: #fff !important; font-weight: 600 !important; }
/* Inputs/selects/textareas → match .sj-field (white field on navy card). */
.sj-form-card--quiz .gform_wrapper input[type="text"],
.sj-form-card--quiz .gform_wrapper input[type="tel"],
.sj-form-card--quiz .gform_wrapper input[type="email"],
.sj-form-card--quiz .gform_wrapper select,
.sj-form-card--quiz .gform_wrapper textarea {
  background: #fff !important;
  color: var(--sj-ink) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 10px !important;
  padding: 13px 15px !important;
  width: 100% !important;
}
/* Radio/checkbox choice pills (accident type, etc). */
.sj-form-card--quiz .gfield_radio label,
.sj-form-card--quiz .gfield_checkbox label {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  border-radius: 12px !important;
  padding: 12px 16px !important;
}
/* Buttons (Next / Previous / Submit) → brand pills; primary = gold. */
.sj-form-card--quiz .gform_wrapper .gform_next_button,
.sj-form-card--quiz .gform_wrapper .gform_button,
.sj-form-card--quiz .gform_wrapper input[type="submit"] {
  background: var(--sj-gold) !important;
  color: var(--sj-ink) !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-weight: 800 !important;
  padding: 15px 26px !important;
  width: 100% !important;
  cursor: pointer !important;
}
.sj-form-card--quiz .gform_wrapper .gform_previous_button {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.5) !important;
  border-radius: 999px !important;
  width: auto !important;
  padding: 13px 22px !important;
}
.sj-form-card--quiz .gform_page_footer { display: flex !important; gap: 12px !important; align-items: center !important; }
@media (max-width: 960px) {
  .sj-form-card--quiz .gform_page_footer {
    flex-direction: column!important;
  }
  .sj-form-card--quiz .gform_page_footer input[type="button"],
  .sj-form-card--quiz .gform_page_footer input[type="submit"] {
    width: 100%!important;
  }
}
/* Multi-step progress bar → gold on translucent track. */
.sj-form-card--quiz .gf_progressbar { background: rgba(255,255,255,0.15) !important; border-radius: 999px !important; }
.sj-form-card--quiz .gf_progressbar_percentage { background: var(--sj-gold) !important; border-radius: 999px !important; color: var(--sj-ink) !important; }
.sj-form-card--quiz .gform_confirmation_message { color: #fff !important; font-weight: 600 !important; }
/* GF wrapper must fill the form card (no theme max-width clamp). */
.sj-form-card--quiz .gform_wrapper,
.sj-form-card--quiz .gform_wrapper form,
.sj-form-card--quiz .gform_body,
.sj-form-card--quiz .gform_fields { width: 100% !important; max-width: 100% !important; }
/* Wistia video testimonials carousel container ([video_testimonial_carousel]). */
.sj-wistia-testimonials { margin: 44px auto 0 !important; max-width: 1100px; width: 100%; }
.sj-wistia-testimonials .wistia_responsive_padding { border-radius: 16px; overflow: hidden; }
.sj-wistia-testimonials iframe,
.sj-wistia-testimonials .wistia_embed { border-radius: 16px; }
/* Per-channel footer disclaimer note (Meta/YouTube/Google non-affiliation, etc). */
.sj-footer__channel-note {
  background: #000 !important;
  color: rgba(255,255,255,0.40) !important;
  font-size: 11px !important;
  line-height: 1.55 !important;
  padding: 0 0 26px !important;
}
.sj-footer__channel-note .sj-container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
/* Multi-step progress bar → SEGMENTED (one notch per step), gold completed fill. */
.sj-form-card--quiz .gf_progressbar_wrapper { margin: 6px 0 22px !important; }
.sj-form-card--quiz .gf_progressbar {
  position: relative !important;
  overflow: hidden !important;
  height: 6px !important;
  padding: 0 !important;
  width: 100% !important;
  background: rgba(255,255,255,0.15) !important;
  border-radius: 999px !important;
}
.sj-form-card--quiz .gf_progressbar_percentage {
  height: 6px !important;
  background: var(--sj-gold) !important;
  border-radius: 999px !important;
  font-size: 0 !important;
  min-width: 6px !important;
}
/* Notch dividers overlaid on the track to make the fill read as discrete steps. */
.sj-form-card--quiz .gf_progressbar::after {
  content: '' !important;
  position: absolute !important; inset: 0 !important;
  pointer-events: none !important;
  background-image: repeating-linear-gradient(to right, transparent 0, transparent calc(16.66% - 5px), #0b1450 calc(16.66% - 5px), #0b1450 16.66%) !important;
}
.sj-form-card--quiz .gf_progressbar_title,
.sj-form-card--quiz .gf_progressbar_percentage_complete { color: rgba(255,255,255,0.85) !important; }
/* Choice rows: full-width pills, radio aligned inside, even spacing. */
.sj-form-card--quiz .gfield_radio,
.sj-form-card--quiz .gfield_checkbox { display: flex !important; flex-direction: column !important; gap: 10px !important; }
.sj-form-card--quiz .gfield_checkbox .gchoice { gap: 10px; }
.sj-form-card--quiz .gfield_radio .gchoice,
.sj-form-card--quiz .gfield_checkbox .gchoice { margin: 0 !important; }
.sj-form-card--quiz .gfield_radio { counter-reset: sjopt !important; }
.sj-form-card--quiz .gfield_radio label,
.sj-form-card--quiz .gfield_checkbox label {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  margin: 0 !important;
  background: #fff !important;
  color: var(--sj-ink) !important;
  border: 1px solid #fff !important;
  border-radius: 999px !important;
  padding: 12px 16px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: box-shadow .15s, transform .05s !important;
}
/* Navy letter badge (A, B, C…) on the left of each option. */
.sj-form-card--quiz .gfield_radio label::before {
  counter-increment: sjopt !important;
  content: counter(sjopt, upper-alpha) !important;
  flex: 0 0 auto !important;
  width: 30px !important; height: 30px !important;
  display: grid !important; place-items: center !important;
  background: var(--sj-navy) !important;
  color: #fff !important;
  border-radius: 8px !important;
  font-size: 13px !important; font-weight: 800 !important;
}
.sj-form-card--quiz .gfield_radio label:hover,
.sj-form-card--quiz .gfield_checkbox label:hover {
  box-shadow: 0 0 0 2px var(--sj-gold) !important;
}
/* Hide GF's native radio/checkbox dot — the letter badge is the visual marker. */
.sj-form-card--quiz .gfield_radio input[type="radio"],
.sj-form-card--quiz .gfield_checkbox input[type="checkbox"] {
  position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important; margin: 0 !important;
}
/* Selected state: gold badge. */
.sj-form-card--quiz .gfield_radio input:checked + label::before,
.sj-form-card--quiz .gchoice:has(input:checked) label::before { background: var(--sj-gold) !important; color: var(--sj-ink) !important; }
.sj-form-card--quiz .gfield_radio input:checked + label,
.sj-form-card--quiz .gchoice:has(input:checked) label { box-shadow: 0 0 0 2px var(--sj-gold) !important; }
.sj-form-card--quiz .gfield_label { margin-bottom: 12px !important; }
.sj-form-card--quiz .gfield_required { color: var(--sj-gold) !important; }
/* Override Gform default required message styles */
.gform_wrapper.gravity-theme .gform_validation_errors,
.gform_wrapper.gravity-theme .gfield_validation_message, .gform_wrapper.gravity-theme .validation_message {
  background: transparent!important;
}
/* FAQ question text was clipping on mobile — let it wrap, don't shrink-clip. */
.sj-faq__list .accordion-button {
  white-space: normal !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
/* Trust strip: symmetric top/bottom padding (below $0 == above $1B) on mobile. */
@media (max-width: 767px) {
  .sj-trust-strip { padding-top: 56px !important; padding-bottom: 56px !important; }
}
/* Hide the black top bar on mobile/tablet (keep it on desktop ≥992px). */
@media (max-width: 991px) {
  .sj-topbar, .sj-ppc-global-header .sj-topbar { display: none !important; }
}

/* ---- Mobile sticky CTA bar: dark-navy background ---- */
.sj-mcta { background: var(--sj-navy) !important; }
.sj-mcta .sj-btn--white-outline {
  color: #fff !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.55) !important;
}
.sj-mcta .sj-btn--white-outline:hover {
  background: rgba(255,255,255,0.12) !important;
  color: #fff !important;
}

/* ---- Header assurance line ("Open 24/7 · Hablamos Español") next to CTA ---- */
.sj-header__assure {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  color: rgba(255,255,255,0.85) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  margin-left: 4px !important;
}
.sj-header__assure .sj-topbar__dot { background: #21c177 !important; }

/* ===== Mobile: guarantee BOTH the header assurance line AND the navy sticky
   CTA bar are present (issues 3 & 4 must hold on phones, not just desktop). ===== */
@media (max-width: 991px) {
  /* Header "Hablamos Español" centered under the Call CTA (no dot, no "Open 24/7"). */
  .sj-ppc-global-header .sj-header__assure,
  .sj-header__assure {
    display: block !important;
    align-self: stretch !important;
    text-align: center !important;
    font-size: 11px !important;
    margin-top: 4px !important;
    color: rgba(255,255,255,0.7) !important;
  }
  .sj-header__assure .sj-header__open,
  .sj-header__assure .sj-header__sep,
  .sj-header__assure .sj-topbar__dot { display: none !important; }
  .sj-header__cta-group { flex-direction: column !important; align-items: flex-end !important; gap: 5px !important; }

  /* Navy sticky CTA bar: only show after JS adds .is-visible (hero form scrolled past). */
  .sj-mcta.is-visible {
    display: flex !important;
    background: var(--sj-navy) !important;
  }
  /* "Call Now" = white button, navy text (on the navy bar). */
  .sj-mcta .sj-btn--white-outline {
    background: #fff !important;
    color: var(--sj-navy) !important;
    border: 1px solid #fff !important;
  }
  .sj-mcta .sj-btn--white-outline:hover { background: #fff !important; color: var(--sj-navy) !important; }
  body.sj-has-mcta { padding-bottom: 80px !important; }
}

/* ---- Header: single Call CTA (hide the duplicate outline button) ---- */
.sj-header__call { display: none !important; }

.sj-ppc-global-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  display: block !important;
}
.sj-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
}
.sj-topbar { display: block !important; }
.sj-header__inner { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; }
.sj-header .sj-logo { display: inline-flex !important; flex: 0 0 auto !important; margin-right: auto !important; }
.sj-header .sj-logo__img {
  display: block !important;
  height: 45px !important;
  width: auto !important;
  max-width: 62vw !important;
  filter: brightness(0) invert(1) !important;
}

/* ---- Mobile: show the hero form inline; drop the blue show/hide toggle ---- */
@media (max-width: 991px) {
  .sj-hero-reveal { display: none !important; }  .sj-hero-form-wrap,
  .sj-hero-form-wrap.collapse,
  .sj-hero-form-wrap.collapse:not(.show),
  #heroFormCollapse {
    display: block !important;
    height: auto !important;
    visibility: visible !important;
    overflow: visible !important;
    margin-top: 28px !important;
  }
}

/* ---- Recovery figure must not wrap mid-phrase (e.g. "$1 / billion+") ---- */
.home-hero__lede b,
.loc-hero__lede b,
.practice-hero__lede b { white-space: nowrap; }

/* Footer logo — constrain size (theme/Elementor stripped the height rule, blowing it up). */
.sj-footer__logo { display: inline-block !important; width: auto !important; }
.sj-footer__logo img {
  height: 44px !important;
  width: auto !important;
  max-width: 240px !important;
  display: block !important;
  filter: brightness(0) invert(1) !important;
}

/* ---- Results carousel on mobile: ONE continuous horizontal row of single
   cards (not 3 stacked per slide), swipe/arrow-scrolled. Mirrors the standalone
   shared/components.css rules. Practice/location pages render this carousel;
   home/lander use the .sj-rail variant which is already one-up on mobile. ---- */
@media (max-width: 960px) {
  .carousel.sj-results-carousel { padding-bottom: 64px !important; }
  .carousel-inner.sj-results-carousel__viewport {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-snap-type: x mandatory;
    gap: 14px !important;
    padding: 12px 0 28px !important;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .carousel-inner.sj-results-carousel__viewport::-webkit-scrollbar { display: none; }
  .carousel.sj-results-carousel .carousel-item {
    display: flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    margin-right: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    position: relative !important;
  }
  .carousel.sj-results-carousel .carousel-item .row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
    margin: 0 !important;
    width: auto !important;
  }
  .carousel.sj-results-carousel .carousel-item .col {
    padding: 0 !important;
    flex: 0 0 82vw !important;
    width: 82vw !important;
    max-width: 340px !important;
    min-width: 0 !important;
    scroll-snap-align: start;
  }
  .carousel.sj-results-carousel .carousel-control-prev,
  .carousel.sj-results-carousel .carousel-control-next {
    top: auto !important;
    bottom: 0 !important;
    transform: none !important;
    width: 44px !important;
    height: 44px !important;
  }
  .carousel.sj-results-carousel .carousel-control-prev { left: calc(50% - 56px) !important; right: auto !important; }
  .carousel.sj-results-carousel .carousel-control-next { left: auto !important; right: calc(50% - 56px) !important; }
  .carousel.sj-results-carousel .carousel-indicators { display: none !important; }
  .sj-form-card--quiz .gfield_radio .gchoice {
    padding-left: 0!important;
    padding-right: 0!important;
  }
}
