/**
 * Accessibility + full-width layout fixes
 * - Full-bleed heroes (no “app in the middle” squeeze)
 * - Wider readable content column
 * - High contrast: no dark text on purple/teal bands
 * - Larger body type for low-vision readers
 */

.jem-rebrand {
  --jem-max: min(90rem, 94vw);
  --jem-gutter: clamp(1.25rem, 3vw, 2.75rem);
  --jem-body-size: 1.0625rem;
  --jem-body-line: 1.75;
  --jem-text-strong: var(--jem-navy);
}

/* ═══ FULL-BLEED HEROES ═══ */

.jem-rebrand .site-main .elementor-top-section.jem-hero-cinematic,
.jem-rebrand .site-main .elementor-top-section.jem-inner-hero,
.jem-rebrand .site-main .elementor-top-section.jem-page-hero {
  width: 100% !important;
  max-width: none !important;
  left: 0 !important;
  right: 0 !important;
}

.jem-rebrand .site-main .elementor-top-section.jem-hero-cinematic > .elementor-container,
.jem-rebrand .site-main .elementor-top-section.jem-inner-hero > .elementor-container,
.jem-rebrand .site-main .elementor-top-section.jem-page-hero > .elementor-container {
  max-width: none !important;
  width: 100% !important;
  padding-inline: 0 !important;
}

.jem-rebrand .jem-hero-slides,
.jem-rebrand .jem-hero-slides .elementor-widget-container,
.jem-rebrand .jem-hero-slides .elementor-swiper,
.jem-rebrand .jem-hero-slides .elementor-slides-wrapper,
.jem-rebrand .jem-hero-slides .elementor-main-swiper,
.jem-rebrand .jem-hero-slides .swiper,
.jem-rebrand .jem-hero-slides .swiper-wrapper,
.jem-rebrand .jem-hero-slides .swiper-slide,
.jem-rebrand .jem-hero-slides .swiper-slide-bg {
  width: 100% !important;
  max-width: none !important;
}

.jem-rebrand .jem-hero-slides .swiper-slide-bg {
  background-size: cover !important;
  background-position: center !important;
}

.jem-rebrand .jem-inner-hero-bg {
  width: 100% !important;
  max-width: none !important;
}

/* Content sections: wide but not squeezed */
.jem-rebrand .site-main .elementor-top-section:not(.jem-hero-cinematic):not(.jem-inner-hero):not(.jem-page-hero) > .elementor-container,
.jem-rebrand .site-main .elementor-top-section:not(.jem-hero-cinematic):not(.jem-inner-hero):not(.jem-page-hero) > .e-con-inner,
.jem-rebrand .site-main .e-con-boxed:not(.jem-hero-cinematic *) > .e-con-inner {
  max-width: var(--jem-max) !important;
  width: 100% !important;
}

/* ═══ READABLE TYPE (WCAG-friendly sizes) ═══ */

.jem-rebrand [data-elementor-type="wp-page"] .elementor-widget-text-editor,
.jem-rebrand [data-elementor-type="wp-page"] .elementor-widget-text-editor p,
.jem-rebrand .site-main .elementor-widget-text-editor p {
  font-size: var(--jem-body-size) !important;
  line-height: var(--jem-body-line) !important;
  color: var(--jem-text-strong) !important;
}

.jem-rebrand .jem-contrast-fixed > .elementor-widget-container:not(:has(.jem-numbered-items)):not(:has(.jem-light-surface)):not(:has(.jem-scan-list)),
.jem-rebrand .elementor-widget-text-editor.jem-contrast-fixed > .elementor-widget-container:not(:has(.jem-numbered-items)):not(:has(.jem-light-surface)):not(:has(.jem-scan-list)),
.jem-rebrand .jem-contrast-fixed > .elementor-widget-container:not(:has(.jem-numbered-items)):not(:has(.jem-light-surface)):not(:has(.jem-scan-list)) > p,
.jem-rebrand .elementor-widget-text-editor.jem-contrast-fixed > .elementor-widget-container:not(:has(.jem-numbered-items)):not(:has(.jem-light-surface)):not(:has(.jem-scan-list)) > p {
  color: #fff !important;
}

/* Mistaken jem-contrast-fixed on light body copy — restore readable text */
.jem-rebrand [data-elementor-type="wp-page"] :is(.jem-content-section, .jem-page-section):not(.jem-on-dark):not(.jem-shared-cta):not(.jem-final-cta) .elementor-widget-text-editor.jem-contrast-fixed > .elementor-widget-container,
.jem-rebrand [data-elementor-type="wp-page"] :is(.jem-content-section, .jem-page-section):not(.jem-on-dark):not(.jem-shared-cta):not(.jem-final-cta) .elementor-widget-text-editor.jem-contrast-fixed > .elementor-widget-container p {
  background: transparent !important;
  color: var(--jem-text-strong) !important;
  padding: 0 !important;
  box-shadow: none !important;
  font-weight: inherit !important;
}

.jem-rebrand [data-elementor-type="wp-page"] .elementor-invisible {
  visibility: visible !important;
  opacity: 1 !important;
  animation: none !important;
}

.jem-rebrand [data-elementor-type="wp-page"] h2.elementor-heading-title {
  font-size: clamp(1.65rem, 3.2vw, 2.35rem) !important;
  line-height: 1.15 !important;
}

.jem-rebrand .elementor-image-box-description,
.jem-rebrand .elementor-icon-box-description {
  font-size: 1rem !important;
  line-height: 1.65 !important;
  color: var(--jem-text-strong) !important;
}

.jem-rebrand .jem-bg-neutralized,
.jem-rebrand .jem-bg-neutralized:not(.elementor-motion-effects-element-type-background),
.jem-rebrand .jem-bg-neutralized > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background: var(--jem-lavender) !important;
  background-image: none !important;
}

.jem-rebrand .jem-bg-neutralized .elementor-heading-title {
  color: var(--jem-navy) !important;
}

.jem-rebrand .jem-bg-neutralized .elementor-widget-text-editor,
.jem-rebrand .jem-bg-neutralized p {
  color: var(--jem-text-strong) !important;
}

/* ═══ NEUTRALIZE LEGACY PURPLE/TEAL FULL SECTIONS (60% neutrals) ═══ */

.jem-rebrand .jem-bg-brand:not(.jem-shared-cta):not(.jem-final-cta),
.jem-rebrand .elementor-833 .elementor-element-4d75692,
.jem-rebrand .elementor-833 .elementor-element-e09f593,
.jem-rebrand .elementor-833 .elementor-element-4544ca1,
.jem-rebrand .elementor-833 .elementor-element-aac4bf6,
.jem-rebrand [data-elementor-type="wp-page"] .elementor-top-section[class*="elementor-element-"]:not(.jem-inner-hero):not(.jem-page-hero).jem-bg-brand {
  background: var(--jem-lavender) !important;
  background-image: none !important;
}

.jem-rebrand .jem-bg-brand:not(.jem-shared-cta):not(.jem-final-cta) > .elementor-container,
.jem-rebrand .jem-bg-brand:not(.jem-shared-cta):not(.jem-final-cta) > .e-con-inner,
.jem-rebrand .elementor-833 .elementor-element-4d75692 > .elementor-container,
.jem-rebrand .elementor-833 .elementor-element-e09f593 > .elementor-container,
.jem-rebrand .elementor-833 .elementor-element-4544ca1 > .elementor-container {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Headings on neutralized bands — navy, not purple-on-purple */
.jem-rebrand .jem-bg-brand:not(.jem-shared-cta):not(.jem-final-cta) .elementor-heading-title,
.jem-rebrand .elementor-833 .elementor-element-4d75692 .elementor-heading-title,
.jem-rebrand .elementor-833 .elementor-element-e09f593 .elementor-heading-title,
.jem-rebrand .elementor-833 .elementor-element-4544ca1 .elementor-heading-title,
.jem-rebrand .elementor-833 .elementor-element-aac4bf6 .elementor-heading-title,
.jem-rebrand .jem-services-section .jem-section-heading .elementor-heading-title {
  color: var(--jem-navy) !important;
}

.jem-rebrand .jem-bg-brand:not(.jem-shared-cta):not(.jem-final-cta) .elementor-widget-text-editor,
.jem-rebrand .jem-bg-brand:not(.jem-shared-cta):not(.jem-final-cta) p,
.jem-rebrand .elementor-833 .elementor-element-4d75692 .elementor-widget-text-editor,
.jem-rebrand .elementor-833 .elementor-element-4d75692 p {
  color: var(--jem-text-strong) !important;
}

/* Inner pages: kill teal/purple section fills from Elementor post CSS */
.jem-rebrand [data-elementor-type="wp-page"] .elementor-top-section:not(.jem-band-brand):not(.jem-inner-hero):not(.jem-final-cta) {
  background-image: none !important;
}

.jem-rebrand [data-elementor-type="wp-page"] .elementor-element-6d69371a,
.jem-rebrand [data-elementor-type="wp-page"] .elementor-element-402032d,
.jem-rebrand [data-elementor-type="wp-page"] .elementor-element-3ed7487a,
.jem-rebrand [data-elementor-type="wp-page"] .elementor-element-7c5b781 {
  background-color: transparent !important;
}

/* ═══ INTENTIONAL DARK BANDS — white text only (30% brand, small areas) ═══ */

.jem-rebrand .jem-on-dark,
.jem-rebrand .jem-band-brand.jem-shared-cta,
.jem-rebrand .jem-band-brand.jem-layout-cta,
.jem-rebrand .jem-final-cta,
.jem-rebrand .jem-inner-hero,
.jem-rebrand .jem-hero-slides .swiper-slide-inner {
  color: #fff;
}

.jem-rebrand .jem-on-dark .elementor-heading-title,
.jem-rebrand .jem-band-brand.jem-shared-cta .elementor-heading-title,
.jem-rebrand .jem-band-brand.jem-layout-cta .elementor-heading-title,
.jem-rebrand .jem-final-cta .elementor-heading-title,
.jem-rebrand .jem-final-cta h2,
.jem-rebrand .jem-inner-hero .elementor-heading-title,
.jem-rebrand .jem-hero-slides .elementor-slide-heading {
  color: #fff !important;
}

.jem-rebrand .jem-on-dark .elementor-widget-text-editor,
.jem-rebrand .jem-on-dark p,
.jem-rebrand .jem-band-brand.jem-shared-cta .elementor-widget-text-editor,
.jem-rebrand .jem-band-brand.jem-shared-cta p,
.jem-rebrand .jem-final-cta p {
  color: rgb(255 255 255 / 92%) !important;
}

.jem-rebrand .jem-band-brand.jem-shared-cta,
.jem-rebrand .jem-band-brand.jem-layout-cta {
  background: var(--jem-gradient-brand) !important;
}

/* Prose cards + light surfaces always high contrast */
.jem-rebrand .jem-prose-panel,
.jem-rebrand .jem-prose-panel p,
.jem-rebrand .jem-light-surface,
.jem-rebrand .jem-light-surface p,
.jem-rebrand .jem-numbered-items > p,
.jem-rebrand .jem-scan-list li,
.jem-rebrand .jem-values-block .elementor-widget-text-editor p,
.jem-rebrand .elementor-icon-box-wrapper,
.jem-rebrand .elementor-icon-box-description,
.jem-rebrand .rkit-testimonial-card .testimonial_body,
.jem-rebrand .jem-split-content .jem-prose-panel .elementor-heading-title {
  color: var(--jem-text-strong) !important;
}

.jem-rebrand .jem-split-content .jem-prose-panel .elementor-heading-title {
  color: var(--jem-navy) !important;
}

/* FAQ accordion — readable */
.jem-rebrand .jem-page-faq .elementor-tab-title {
  font-size: 1.05rem !important;
  color: var(--jem-navy) !important;
}

.jem-rebrand .jem-page-faq .elementor-tab-content {
  font-size: var(--jem-body-size) !important;
  color: var(--jem-text-strong) !important;
}

.jem-rebrand .jem-designed-page [data-elementor-type="wp-page"] .jem-reveal {
  opacity: 1 !important;
  transform: none !important;
}

.jem-rebrand .jem-designed-page [data-elementor-type="wp-page"] .jem-reveal.jem-visible {
  opacity: 1 !important;
  transform: none !important;
}

@media (max-width: 767px) {
  .jem-rebrand {
    --jem-body-size: 1rem;
    --jem-gutter: 1.15rem;
  }
}
