/* AfricaX Elementor layout rescue layer.
   This file intentionally targets the editable Elementor containers directly,
   so existing demo pages can be repaired without turning sections into static
   HTML or Custom HTML widgets. */

:root {
  --ax-rescue-inner: 1240px;
  --ax-rescue-pad: clamp(76px, 7vw, 118px);
  --ax-rescue-pad-mobile: clamp(46px, 10vw, 68px);
  --ax-rescue-gap: clamp(22px, 2.4vw, 34px);
}

.elementor .e-con.ax-section,
.elementor .e-con.ax-band,
.elementor .e-con.ax-page-hero,
.elementor .e-con.ax-hero,
.ax-elementor-page .e-con.ax-section,
.ax-elementor-page .e-con.ax-band,
.ax-elementor-page .e-con.ax-page-hero,
.ax-elementor-page .e-con.ax-hero {
  display: block !important;
  flex: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: var(--ax-rescue-pad) 0 !important;
  align-self: stretch !important;
  overflow: hidden !important;
}

.elementor .e-con.ax-hero,
.ax-elementor-page .e-con.ax-hero {
  min-height: 88vh !important;
  padding-top: clamp(118px, 10vw, 168px) !important;
  padding-bottom: clamp(54px, 6vw, 88px) !important;
}

.elementor .e-con.ax-page-hero,
.ax-elementor-page .e-con.ax-page-hero {
  padding-top: clamp(128px, 10vw, 172px) !important;
  padding-bottom: clamp(70px, 7vw, 106px) !important;
}

.elementor .e-con.ax-container,
.ax-elementor-page .e-con.ax-container {
  display: block !important;
  flex: none !important;
  width: min(calc(100% - 72px), var(--ax-rescue-inner)) !important;
  max-width: var(--ax-rescue-inner) !important;
  min-width: 0 !important;
  margin-inline: auto !important;
  padding: 0 !important;
  align-self: center !important;
}

.elementor .e-con.ax-flow,
.elementor .e-con.ax-reveal:not(.ax-card):not(.ax-event-card):not(.ax-why-card):not(.ax-pathway-card):not(.ax-mockup-card):not(.ax-pricing-card):not(.ax-feature-card),
.ax-elementor-page .e-con.ax-flow,
.ax-elementor-page .e-con.ax-reveal:not(.ax-card):not(.ax-event-card):not(.ax-why-card):not(.ax-pathway-card):not(.ax-mockup-card):not(.ax-pricing-card):not(.ax-feature-card) {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  width: 100% !important;
  min-width: 0 !important;
}

.elementor .e-con.ax-grid-2,
.elementor .e-con.ax-hero__grid,
.elementor .e-con.ax-feature-card,
.ax-elementor-page .e-con.ax-grid-2,
.ax-elementor-page .e-con.ax-hero__grid,
.ax-elementor-page .e-con.ax-feature-card {
  display: grid !important;
  flex: none !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: clamp(34px, 5vw, 76px) !important;
  width: 100% !important;
  min-width: 0 !important;
}

.elementor .e-con.ax-hero__grid,
.ax-elementor-page .e-con.ax-hero__grid {
  grid-template-columns: minmax(0, 1.04fr) minmax(340px, 0.96fr) !important;
}

.elementor .e-con.ax-section-header,
.ax-elementor-page .e-con.ax-section-header {
  display: block !important;
  width: min(100%, 940px) !important;
  max-width: 940px !important;
  min-width: 0 !important;
  margin: 0 0 42px !important;
  padding: 0 !important;
}

.elementor .e-con.ax-section-header > .elementor-widget:not(:last-child),
.ax-elementor-page .e-con.ax-section-header > .elementor-widget:not(:last-child) {
  margin-bottom: 16px !important;
}

.elementor .elementor-widget-heading,
.elementor .elementor-widget-text-editor,
.ax-elementor-page .elementor-widget-heading,
.ax-elementor-page .elementor-widget-text-editor {
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.elementor .elementor-widget-heading .elementor-heading-title,
.elementor .elementor-widget-text-editor .elementor-widget-container,
.ax-elementor-page .elementor-widget-heading .elementor-heading-title,
.ax-elementor-page .elementor-widget-text-editor .elementor-widget-container {
  margin: 0 !important;
}

.elementor .elementor-widget-heading.ax-heading-xl .elementor-heading-title,
.ax-elementor-page .elementor-widget-heading.ax-heading-xl .elementor-heading-title {
  max-width: 900px !important;
  font-size: clamp(3.2rem, 5.4vw, 4.75rem) !important;
  line-height: 0.96 !important;
}

.elementor .elementor-widget-heading.ax-heading-lg .elementor-heading-title,
.elementor .elementor-widget-heading.ax-page-title .elementor-heading-title,
.ax-elementor-page .elementor-widget-heading.ax-heading-lg .elementor-heading-title,
.ax-elementor-page .elementor-widget-heading.ax-page-title .elementor-heading-title {
  max-width: 900px !important;
  font-size: clamp(2.35rem, 4.1vw, 3.85rem) !important;
  line-height: 1.03 !important;
}

.elementor .elementor-widget-heading.ax-heading-md .elementor-heading-title,
.ax-elementor-page .elementor-widget-heading.ax-heading-md .elementor-heading-title {
  font-size: clamp(1.75rem, 2.6vw, 2.7rem) !important;
  line-height: 1.08 !important;
}

.elementor .elementor-widget-text-editor.ax-copy .elementor-widget-container,
.ax-elementor-page .elementor-widget-text-editor.ax-copy .elementor-widget-container {
  max-width: 760px !important;
  color: var(--ax-muted, #a7a9b8) !important;
  font-size: clamp(1rem, 1.15vw, 1.12rem) !important;
  line-height: 1.72 !important;
}

.elementor .elementor-widget-text-editor.ax-card-copy .elementor-widget-container,
.ax-elementor-page .elementor-widget-text-editor.ax-card-copy .elementor-widget-container {
  color: var(--ax-muted, #a7a9b8) !important;
  font-size: 0.96rem !important;
  line-height: 1.65 !important;
}

.elementor .e-con.ax-actions,
.elementor .e-con.ax-event-badges,
.elementor .e-con.ax-label-cloud,
.ax-elementor-page .e-con.ax-actions,
.ax-elementor-page .e-con.ax-event-badges,
.ax-elementor-page .e-con.ax-label-cloud {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.elementor .e-con.ax-actions {
  margin-top: 28px !important;
}

.elementor .e-con.ax-actions > .elementor-widget-button,
.elementor .e-con.ax-event-badges > .elementor-widget,
.elementor .e-con.ax-label-cloud > .elementor-widget,
.ax-elementor-page .e-con.ax-actions > .elementor-widget-button,
.ax-elementor-page .e-con.ax-event-badges > .elementor-widget,
.ax-elementor-page .e-con.ax-label-cloud > .elementor-widget {
  flex: 0 0 auto !important;
  width: fit-content !important;
  max-width: 100% !important;
  min-width: 0 !important;
  align-self: flex-start !important;
}

.elementor .elementor-widget-button,
.elementor .elementor-widget-button .elementor-widget-container,
.elementor .elementor-widget-button .elementor-button-wrapper,
.ax-elementor-page .elementor-widget-button,
.ax-elementor-page .elementor-widget-button .elementor-widget-container,
.ax-elementor-page .elementor-widget-button .elementor-button-wrapper {
  width: fit-content !important;
  max-width: 100% !important;
}

.elementor .elementor-widget-button .elementor-button,
.ax-elementor-page .elementor-widget-button .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  padding: 15px 24px !important;
  white-space: normal !important;
}

.elementor .e-con.ax-stats,
.ax-elementor-page .e-con.ax-stats {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  width: 100% !important;
  margin-top: 26px !important;
}

.elementor .e-con.ax-card-grid,
.elementor .e-con.ax-experience-grid,
.elementor .e-con.ax-event-grid,
.elementor .e-con.ax-pricing-grid,
.elementor .e-con.ax-why-grid,
.elementor .e-con.ax-mockup-grid,
.elementor .e-con.ax-pathway-grid,
.elementor .e-con.ax-media-strip,
.ax-elementor-page .e-con.ax-card-grid,
.ax-elementor-page .e-con.ax-experience-grid,
.ax-elementor-page .e-con.ax-event-grid,
.ax-elementor-page .e-con.ax-pricing-grid,
.ax-elementor-page .e-con.ax-why-grid,
.ax-elementor-page .e-con.ax-mockup-grid,
.ax-elementor-page .e-con.ax-pathway-grid,
.ax-elementor-page .e-con.ax-media-strip {
  display: grid !important;
  flex: none !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-top: 42px !important;
  gap: var(--ax-rescue-gap) !important;
}

.elementor .e-con.ax-card-grid,
.elementor .e-con.ax-experience-grid,
.ax-elementor-page .e-con.ax-card-grid,
.ax-elementor-page .e-con.ax-experience-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.elementor .e-con.ax-event-grid,
.elementor .e-con.ax-why-grid,
.elementor .e-con.ax-pricing-grid,
.ax-elementor-page .e-con.ax-event-grid,
.ax-elementor-page .e-con.ax-why-grid,
.ax-elementor-page .e-con.ax-pricing-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.elementor .e-con.ax-mockup-grid,
.elementor .e-con.ax-pathway-grid,
.ax-elementor-page .e-con.ax-mockup-grid,
.ax-elementor-page .e-con.ax-pathway-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.elementor .e-con.ax-media-strip,
.ax-elementor-page .e-con.ax-media-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.elementor .e-con.ax-card,
.elementor .e-con.ax-stat,
.elementor .e-con.ax-event-card,
.elementor .e-con.ax-pricing-card,
.elementor .e-con.ax-why-card,
.elementor .e-con.ax-pathway-card,
.elementor .e-con.ax-mockup-card,
.elementor .e-con.ax-media-card,
.elementor .e-con.ax-contact-panel,
.elementor .e-con.ax-highlight-panel,
.ax-elementor-page .e-con.ax-card,
.ax-elementor-page .e-con.ax-stat,
.ax-elementor-page .e-con.ax-event-card,
.ax-elementor-page .e-con.ax-pricing-card,
.ax-elementor-page .e-con.ax-why-card,
.ax-elementor-page .e-con.ax-pathway-card,
.ax-elementor-page .e-con.ax-mockup-card,
.ax-elementor-page .e-con.ax-media-card,
.ax-elementor-page .e-con.ax-contact-panel,
.ax-elementor-page .e-con.ax-highlight-panel {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 16px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: auto !important;
  padding: clamp(22px, 2.4vw, 34px) !important;
  border: 1px solid rgba(248, 250, 252, 0.13) !important;
  border-radius: var(--ax-radius-lg, 24px) !important;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.025)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09), 0 18px 50px rgba(0, 0, 0, 0.24) !important;
  backdrop-filter: blur(18px) !important;
}

.elementor .e-con.ax-event-card,
.elementor .e-con.ax-why-card,
.ax-elementor-page .e-con.ax-event-card,
.ax-elementor-page .e-con.ax-why-card {
  padding: 0 !important;
  overflow: hidden !important;
}

.elementor .e-con.ax-event-card__media,
.elementor .e-con.ax-why-card__visual,
.elementor .e-con.ax-feature-image,
.ax-elementor-page .e-con.ax-event-card__media,
.ax-elementor-page .e-con.ax-why-card__visual,
.ax-elementor-page .e-con.ax-feature-image {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: var(--ax-radius-xl, 28px) !important;
}

.elementor .e-con.ax-event-card__media,
.ax-elementor-page .e-con.ax-event-card__media {
  aspect-ratio: 16 / 9.5 !important;
}

.elementor .e-con.ax-why-card__visual,
.ax-elementor-page .e-con.ax-why-card__visual {
  aspect-ratio: 16 / 10.5 !important;
}

.elementor .e-con.ax-event-card__media img,
.elementor .e-con.ax-why-card__visual img,
.elementor .e-con.ax-feature-image img,
.ax-elementor-page .e-con.ax-event-card__media img,
.ax-elementor-page .e-con.ax-why-card__visual img,
.ax-elementor-page .e-con.ax-feature-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.elementor .e-con.ax-event-card > .elementor-widget-heading,
.elementor .e-con.ax-event-card > .elementor-widget-text-editor,
.elementor .e-con.ax-event-card > .ax-event-badges,
.elementor .e-con.ax-event-card > .elementor-widget-button,
.elementor .e-con.ax-why-card > .elementor-widget-heading,
.elementor .e-con.ax-why-card > .elementor-widget-text-editor,
.elementor .e-con.ax-why-card > .elementor-widget-button,
.ax-elementor-page .e-con.ax-event-card > .elementor-widget-heading,
.ax-elementor-page .e-con.ax-event-card > .elementor-widget-text-editor,
.ax-elementor-page .e-con.ax-event-card > .ax-event-badges,
.ax-elementor-page .e-con.ax-event-card > .elementor-widget-button,
.ax-elementor-page .e-con.ax-why-card > .elementor-widget-heading,
.ax-elementor-page .e-con.ax-why-card > .elementor-widget-text-editor,
.ax-elementor-page .e-con.ax-why-card > .elementor-widget-button {
  margin-inline: 24px !important;
}

.elementor .e-con.ax-event-card > .elementor-widget-button,
.elementor .e-con.ax-why-card > .elementor-widget-button,
.ax-elementor-page .e-con.ax-event-card > .elementor-widget-button,
.ax-elementor-page .e-con.ax-why-card > .elementor-widget-button {
  margin-bottom: 24px !important;
}

.elementor .e-con.ax-native-mockup-screen,
.ax-elementor-page .e-con.ax-native-mockup-screen {
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  min-height: 240px !important;
}

.elementor .elementor-widget-icon.ax-icon,
.ax-elementor-page .elementor-widget-icon.ax-icon {
  width: fit-content !important;
  flex: 0 0 auto !important;
}

.elementor .elementor-widget-icon.ax-icon .elementor-icon,
.ax-elementor-page .elementor-widget-icon.ax-icon .elementor-icon {
  font-size: 25px !important;
}

@media (max-width: 1180px) {
  .elementor .e-con.ax-container,
  .ax-elementor-page .e-con.ax-container {
    width: min(calc(100% - 48px), 1120px) !important;
  }

  .elementor .e-con.ax-grid-2,
  .elementor .e-con.ax-hero__grid,
  .elementor .e-con.ax-feature-card,
  .ax-elementor-page .e-con.ax-grid-2,
  .ax-elementor-page .e-con.ax-hero__grid,
  .ax-elementor-page .e-con.ax-feature-card {
    grid-template-columns: 1fr !important;
  }

  .elementor .e-con.ax-card-grid,
  .elementor .e-con.ax-experience-grid,
  .elementor .e-con.ax-event-grid,
  .elementor .e-con.ax-why-grid,
  .elementor .e-con.ax-pricing-grid,
  .elementor .e-con.ax-media-strip,
  .ax-elementor-page .e-con.ax-card-grid,
  .ax-elementor-page .e-con.ax-experience-grid,
  .ax-elementor-page .e-con.ax-event-grid,
  .ax-elementor-page .e-con.ax-why-grid,
  .ax-elementor-page .e-con.ax-pricing-grid,
  .ax-elementor-page .e-con.ax-media-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  .elementor .e-con.ax-section,
  .elementor .e-con.ax-band,
  .elementor .e-con.ax-page-hero,
  .elementor .e-con.ax-hero,
  .ax-elementor-page .e-con.ax-section,
  .ax-elementor-page .e-con.ax-band,
  .ax-elementor-page .e-con.ax-page-hero,
  .ax-elementor-page .e-con.ax-hero {
    padding-top: var(--ax-rescue-pad-mobile) !important;
    padding-bottom: var(--ax-rescue-pad-mobile) !important;
  }

  .elementor .e-con.ax-hero,
  .ax-elementor-page .e-con.ax-hero {
    padding-top: 116px !important;
  }

  .elementor .e-con.ax-container,
  .ax-elementor-page .e-con.ax-container {
    width: min(calc(100% - 28px), 100%) !important;
  }

  .elementor .e-con.ax-card-grid,
  .elementor .e-con.ax-experience-grid,
  .elementor .e-con.ax-event-grid,
  .elementor .e-con.ax-why-grid,
  .elementor .e-con.ax-pricing-grid,
  .elementor .e-con.ax-mockup-grid,
  .elementor .e-con.ax-pathway-grid,
  .elementor .e-con.ax-media-strip,
  .elementor .e-con.ax-stats,
  .ax-elementor-page .e-con.ax-card-grid,
  .ax-elementor-page .e-con.ax-experience-grid,
  .ax-elementor-page .e-con.ax-event-grid,
  .ax-elementor-page .e-con.ax-why-grid,
  .ax-elementor-page .e-con.ax-pricing-grid,
  .ax-elementor-page .e-con.ax-mockup-grid,
  .ax-elementor-page .e-con.ax-pathway-grid,
  .ax-elementor-page .e-con.ax-media-strip,
  .ax-elementor-page .e-con.ax-stats {
    grid-template-columns: 1fr !important;
  }

  .elementor .elementor-widget-heading.ax-heading-xl .elementor-heading-title,
  .ax-elementor-page .elementor-widget-heading.ax-heading-xl .elementor-heading-title {
    font-size: clamp(2.2rem, 11vw, 3.2rem) !important;
  }

  .elementor .elementor-widget-heading.ax-heading-lg .elementor-heading-title,
  .elementor .elementor-widget-heading.ax-page-title .elementor-heading-title,
  .ax-elementor-page .elementor-widget-heading.ax-heading-lg .elementor-heading-title,
  .ax-elementor-page .elementor-widget-heading.ax-page-title .elementor-heading-title {
    font-size: clamp(1.9rem, 8vw, 2.55rem) !important;
  }

  .elementor .e-con.ax-actions,
  .ax-elementor-page .e-con.ax-actions {
    width: 100% !important;
  }

  .elementor .e-con.ax-actions > .elementor-widget-button,
  .elementor .e-con.ax-actions .elementor-widget-button,
  .elementor .e-con.ax-actions .elementor-widget-container,
  .elementor .e-con.ax-actions .elementor-button-wrapper,
  .elementor .e-con.ax-actions .elementor-button,
  .ax-elementor-page .e-con.ax-actions > .elementor-widget-button,
  .ax-elementor-page .e-con.ax-actions .elementor-widget-button,
  .ax-elementor-page .e-con.ax-actions .elementor-widget-container,
  .ax-elementor-page .e-con.ax-actions .elementor-button-wrapper,
  .ax-elementor-page .e-con.ax-actions .elementor-button {
    width: 100% !important;
  }
}
