
/* Scoped Elementor compatibility layer. Keeps the original design stable while templates remain editable. */
.cleanxpert-theme-active { overflow-x: hidden; }
.cleanxpert-theme-active .elementor { font-family: var(--site-font-body); color: var(--deep); }
.cleanxpert-theme-active .elementor-widget-heading .elementor-heading-title { font-family: var(--site-font-heading); color: inherit; line-height: inherit; }
.cleanxpert-theme-active .elementor-widget-text-editor { color: inherit; font-family: var(--site-font-body); }
.cleanxpert-theme-active .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.cleanxpert-theme-active .elementor-widget-image img { display: block; max-width: 100%; }
.cleanxpert-theme-active .elementor-widget-button .elementor-button { border-radius: var(--radius-md); font-weight: 600; text-decoration: none; }
.cleanxpert-theme-active .elementor-widget-button.project-button-primary .elementor-button,
.cleanxpert-theme-active .elementor-widget-button .btn-primary { background: var(--turquoise); color: var(--deep); border-color: var(--turquoise); }
.cleanxpert-theme-active .elementor-widget-button.project-button-lime .elementor-button,
.cleanxpert-theme-active .elementor-widget-button .btn-lime { background: var(--lime); color: var(--deep); border-color: var(--lime); }
.cleanxpert-theme-active .hero.e-con,
.cleanxpert-theme-active .page-hero.e-con,
.cleanxpert-theme-active .section.e-con,
.cleanxpert-theme-active .site-footer.e-con { display: block; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.cleanxpert-theme-active .container.e-con { --width: min(100% - 48px, var(--container)); --max-width: var(--container); margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0; }
.cleanxpert-theme-active .hero-grid.e-con,
.cleanxpert-theme-active .page-hero-grid.e-con,
.cleanxpert-theme-active .split.e-con,
.cleanxpert-theme-active .grid-2.e-con,
.cleanxpert-theme-active .grid-3.e-con,
.cleanxpert-theme-active .grid-4.e-con,
.cleanxpert-theme-active .footer-grid.e-con,
.cleanxpert-theme-active .cta-box.e-con,
.cleanxpert-theme-active .contact-grid.e-con,
.cleanxpert-theme-active .form-row.e-con,
.cleanxpert-theme-active .problem-solution.e-con { display: grid; }
.cleanxpert-theme-active .testimonial-top.e-con,
.cleanxpert-theme-active .button-row.e-con { display: flex; }
.cleanxpert-theme-active .hero-card.e-con,
.cleanxpert-theme-active .service-hero-img.e-con,
.cleanxpert-theme-active .about-hero-photo.e-con { padding: 0; }
.cleanxpert-theme-active .hero-card .elementor-widget-image,
.cleanxpert-theme-active .service-hero-img .elementor-widget-image,
.cleanxpert-theme-active .about-hero-photo .elementor-widget-image { height: 100%; }
.cleanxpert-theme-active .hero-card .elementor-widget-image img,
.cleanxpert-theme-active .service-hero-img .elementor-widget-image img,
.cleanxpert-theme-active .about-hero-photo .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; }
.cleanxpert-theme-active .elementor-widget-html .site-header,
.cleanxpert-theme-active .elementor-widget-html .site-footer { width: 100%; }
.cleanxpert-theme-active .elementor .site-header { z-index: 999; }
@media (max-width: 860px) {
  .cleanxpert-theme-active .elementor .main-nav.is-open { z-index: 9999; }
  .cleanxpert-theme-active .container.e-con { --width: min(100% - 32px, var(--container)); }
}

/* v1.0.3 Elementor edit/preview fixes: make animated content visible in the editor iframe. */
.cleanxpert-elementor-editing .reveal,
.cleanxpert-elementor-preview .reveal,
body.elementor-editor-active .reveal,
body.elementor-editor-preview .reveal,
body.elementor-editor-preview .project-reveal,
body.elementor-editor-active .project-reveal {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
.cleanxpert-elementor-editing .hero,
.cleanxpert-elementor-preview .hero,
body.elementor-editor-active .hero,
body.elementor-editor-preview .hero {
  min-height: auto !important;
}
.cleanxpert-elementor-editing .hero-grid,
.cleanxpert-elementor-preview .hero-grid,
body.elementor-editor-active .hero-grid,
body.elementor-editor-preview .hero-grid {
  align-items: center !important;
}
.cleanxpert-elementor-editing .site-header,
.cleanxpert-elementor-preview .site-header,
body.elementor-editor-active .site-header,
body.elementor-editor-preview .site-header {
  position: relative !important;
  top: auto !important;
  z-index: 20 !important;
}
.cleanxpert-elementor-editing .main-nav,
.cleanxpert-elementor-preview .main-nav,
body.elementor-editor-active .main-nav,
body.elementor-editor-preview .main-nav {
  visibility: visible !important;
}
.cleanxpert-elementor-editing .footer-brand img,
.cleanxpert-elementor-preview .footer-brand img,
.cleanxpert-theme-active .footer-brand img {
  display: block !important;
  overflow: hidden !important;
  border-radius: var(--radius-md) !important;
}
.cleanxpert-theme-active .footer-brand a:has(img) {
  display: inline-block;
  border-radius: var(--radius-md);
  line-height: 0;
}

/* v1.0.4 Elementor template layout bridge
   The static fallback uses the original HTML classes directly. Elementor wraps widgets/containers with its own
   e-con/e-flex and button markup, so these scoped selectors re-apply the original layout to imported templates. */
.cleanxpert-theme-active .elementor .e-con.hero,
.cleanxpert-theme-active .elementor .e-con.page-hero,
.cleanxpert-theme-active .elementor .e-con.section,
.cleanxpert-theme-active .elementor .e-con.site-footer,
.cleanxpert-theme-active .elementor .e-con.dark-section,
.cleanxpert-theme-active .elementor .e-con.soft-section,
.cleanxpert-theme-active .elementor .e-con.service-section {
  display: block !important;
  flex-direction: initial !important;
  align-items: initial !important;
  justify-content: initial !important;
  gap: initial !important;
  width: 100% !important;
  max-width: none !important;
  --width: 100% !important;
  --content-width: 100% !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
}

.cleanxpert-theme-active .elementor .e-con.container {
  display: block !important;
  width: min(100% - 48px, var(--container)) !important;
  max-width: var(--container) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  --width: min(100% - 48px, var(--container)) !important;
  --max-width: var(--container) !important;
  --content-width: var(--container) !important;
}

.cleanxpert-theme-active .elementor .e-con.hero-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, .88fr) !important;
  gap: var(--space-3xl) !important;
  align-items: center !important;
  justify-content: initial !important;
}
.cleanxpert-theme-active .elementor .e-con.page-hero-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .46fr) !important;
  gap: var(--space-3xl) !important;
  align-items: center !important;
}
.cleanxpert-theme-active .elementor .e-con.split {
  display: grid !important;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
  gap: var(--space-4xl) !important;
  align-items: center !important;
}
.cleanxpert-theme-active .elementor .e-con.split.reverse {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr) !important;
}
.cleanxpert-theme-active .elementor .e-con.grid-2 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: var(--space-xl) !important;
}
.cleanxpert-theme-active .elementor .e-con.grid-3,
.cleanxpert-theme-active .elementor .e-con.testimonial-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: var(--space-xl) !important;
}
.cleanxpert-theme-active .elementor .e-con.grid-4 {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: var(--space-xl) !important;
}
.cleanxpert-theme-active .elementor .e-con.footer-grid {
  display: grid !important;
  grid-template-columns: minmax(240px, 1.35fr) repeat(3, minmax(150px, .7fr)) !important;
  gap: var(--space-2xl) !important;
}
.cleanxpert-theme-active .elementor .e-con.cta-box {
  display: grid !important;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr) !important;
  gap: var(--space-2xl) !important;
  align-items: start !important;
}
.cleanxpert-theme-active .elementor .e-con.contact-grid {
  display: grid !important;
  grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr) !important;
  gap: var(--space-2xl) !important;
  align-items: start !important;
}
.cleanxpert-theme-active .elementor .e-con.form-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: var(--space-lg) !important;
}
.cleanxpert-theme-active .elementor .e-con.problem-solution {
  display: grid !important;
  gap: var(--space-md) !important;
}
.cleanxpert-theme-active .elementor .e-con.button-row,
.cleanxpert-theme-active .elementor .e-con.testimonial-top,
.cleanxpert-theme-active .elementor .e-con.footer-bottom {
  display: flex !important;
}

.cleanxpert-theme-active .elementor .e-con.hero-grid > .e-con,
.cleanxpert-theme-active .elementor .e-con.page-hero-grid > .e-con,
.cleanxpert-theme-active .elementor .e-con.split > .e-con,
.cleanxpert-theme-active .elementor .e-con.grid-2 > .e-con,
.cleanxpert-theme-active .elementor .e-con.grid-3 > .e-con,
.cleanxpert-theme-active .elementor .e-con.grid-4 > .e-con,
.cleanxpert-theme-active .elementor .e-con.footer-grid > .e-con,
.cleanxpert-theme-active .elementor .e-con.cta-box > .e-con,
.cleanxpert-theme-active .elementor .e-con.contact-grid > .e-con {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  --width: auto !important;
}

.cleanxpert-theme-active .elementor .hero-copy.e-con,
.cleanxpert-theme-active .elementor .split-copy.e-con,
.cleanxpert-theme-active .elementor .service-copy.e-con,
.cleanxpert-theme-active .elementor .contact-form.e-con,
.cleanxpert-theme-active .elementor .footer-brand.e-con {
  display: block !important;
}

.cleanxpert-theme-active .elementor .hero-card.e-con,
.cleanxpert-theme-active .elementor .hero-visual.e-con,
.cleanxpert-theme-active .elementor .media-card.e-con,
.cleanxpert-theme-active .elementor .service-hero-img.e-con,
.cleanxpert-theme-active .elementor .about-hero-photo.e-con,
.cleanxpert-theme-active .elementor .card.e-con,
.cleanxpert-theme-active .elementor .mini-card.e-con,
.cleanxpert-theme-active .elementor .icon-box.e-con,
.cleanxpert-theme-active .elementor .map-placeholder.e-con,
.cleanxpert-theme-active .elementor .legal-box.e-con {
  box-sizing: border-box !important;
}

/* Elementor places CSS classes on the widget wrapper; these rules style the real button element. */
.cleanxpert-theme-active .elementor .elementor-widget-button.btn .elementor-button,
.cleanxpert-theme-active .elementor .elementor-widget-button .elementor-button.btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--space-sm) !important;
  min-height: 48px !important;
  padding: var(--space-md) var(--space-xl) !important;
  border: 1px solid transparent !important;
  border-radius: var(--radius-md) !important;
  font-size: 18px !important;
  line-height: 27px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}
.cleanxpert-theme-active .elementor .elementor-widget-button.btn-primary .elementor-button {
  color: var(--deep) !important;
  background: var(--turquoise) !important;
  border-color: var(--turquoise) !important;
}
.cleanxpert-theme-active .elementor .elementor-widget-button.btn-lime .elementor-button {
  color: var(--deep) !important;
  background: var(--lime) !important;
  border-color: var(--lime) !important;
}
.cleanxpert-theme-active .elementor .elementor-widget-button.btn-secondary .elementor-button {
  color: var(--white) !important;
  background: var(--deep) !important;
  border-color: var(--deep) !important;
}
.cleanxpert-theme-active .elementor .elementor-widget-button.btn-ghost .elementor-button {
  color: var(--deep) !important;
  background: rgba(254, 254, 254, .88) !important;
  border-color: rgba(254, 254, 254, .72) !important;
}
.cleanxpert-theme-active .elementor .elementor-widget-button.btn-outline .elementor-button {
  color: var(--deep) !important;
  background: var(--white) !important;
  border-color: var(--deep) !important;
}
.cleanxpert-theme-active .elementor .elementor-widget-button.btn .elementor-button:hover,
.cleanxpert-theme-active .elementor .elementor-widget-button.btn .elementor-button:focus-visible {
  transform: translateY(-1px) !important;
  box-shadow: var(--shadow-sm) !important;
}

/* Headings and copy classes applied to Elementor widget wrappers. */
.cleanxpert-theme-active .elementor .elementor-widget-heading.section-title .elementor-heading-title {
  max-width: 780px !important;
  margin-left: inherit;
  margin-right: inherit;
}
.cleanxpert-theme-active .elementor .elementor-widget-heading.eyebrow .elementor-heading-title,
.cleanxpert-theme-active .elementor .elementor-widget-text-editor.eyebrow {
  display: inline-flex !important;
  gap: var(--space-sm) !important;
  align-items: center !important;
  margin-bottom: var(--space-lg) !important;
  color: var(--dark) !important;
  font-size: 14px !important;
  line-height: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
}
.cleanxpert-theme-active .elementor .elementor-widget-text-editor.lead,
.cleanxpert-theme-active .elementor .elementor-widget-text-editor.lead p {
  max-width: 760px !important;
  font-size: clamp(1.05rem, 1.35vw, 1.125rem) !important;
  line-height: 1.55 !important;
  letter-spacing: -0.01em !important;
}
.cleanxpert-theme-active .elementor .text-center .elementor-widget-heading.section-title,
.cleanxpert-theme-active .elementor .text-center .elementor-widget-text-editor.lead,
.cleanxpert-theme-active .elementor .text-center .elementor-widget-heading.section-title .elementor-heading-title {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
.cleanxpert-theme-active .elementor .elementor-widget-text-editor.service-copy,
.cleanxpert-theme-active .elementor .elementor-widget-text-editor.service-copy p {
  max-width: 720px !important;
  color: var(--muted) !important;
  font-size: 18px !important;
  line-height: 27px !important;
}

.cleanxpert-theme-active .elementor .media-card.elementor-widget-image,
.cleanxpert-theme-active .elementor .service-hero-img.elementor-widget-image,
.cleanxpert-theme-active .elementor .about-hero-photo.elementor-widget-image {
  overflow: hidden !important;
  border-radius: var(--radius-md) !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--shadow-sm) !important;
}
.cleanxpert-theme-active .elementor .media-card.elementor-widget-image img,
.cleanxpert-theme-active .elementor .service-hero-img.elementor-widget-image img,
.cleanxpert-theme-active .elementor .about-hero-photo.elementor-widget-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
}

.cleanxpert-theme-active .elementor .hero-card.elementor-widget-image,
.cleanxpert-theme-active .elementor .hero-card.elementor-widget-image .elementor-widget-container,
.cleanxpert-theme-active .elementor .hero-card.elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
}

@media (max-width: 1024px) {
  .cleanxpert-theme-active .elementor .e-con.hero-grid,
  .cleanxpert-theme-active .elementor .e-con.page-hero-grid,
  .cleanxpert-theme-active .elementor .e-con.split,
  .cleanxpert-theme-active .elementor .e-con.split.reverse,
  .cleanxpert-theme-active .elementor .e-con.cta-box,
  .cleanxpert-theme-active .elementor .e-con.contact-grid {
    grid-template-columns: 1fr !important;
  }
  .cleanxpert-theme-active .elementor .e-con.grid-4,
  .cleanxpert-theme-active .elementor .e-con.grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .cleanxpert-theme-active .elementor .e-con.footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 860px) {
  .cleanxpert-theme-active .elementor .e-con.container {
    width: min(100% - 32px, var(--container)) !important;
    --width: min(100% - 32px, var(--container)) !important;
  }
  .cleanxpert-theme-active .elementor .e-con.grid-4,
  .cleanxpert-theme-active .elementor .e-con.grid-3,
  .cleanxpert-theme-active .elementor .e-con.grid-2,
  .cleanxpert-theme-active .elementor .e-con.footer-grid,
  .cleanxpert-theme-active .elementor .e-con.form-row {
    grid-template-columns: 1fr !important;
  }
}

.cleanxpert-theme-active .cleanxpert-main.cleanxpert-elementor-content,
.cleanxpert-theme-active .cleanxpert-main.cleanxpert-elementor-full-width {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip;
}
.cleanxpert-theme-active .cleanxpert-main > .elementor,
.cleanxpert-theme-active .cleanxpert-main > .entry-content,
.cleanxpert-theme-active .cleanxpert-main .elementor-section-wrap {
  width: 100% !important;
  max-width: none !important;
}
