/* ============================================================
   CRESCALER × ELEMENTOR DOM BRIDGE
   The design's CSS classes are placed on Elementor widget/container
   WRAPPERS. These rules let those classes control layout and push
   typography down to the real inner text nodes, so the existing
   crescaler.css applies to 100%-native Elementor widgets.
   ============================================================ */

/* --- Container neutralization: let crescaler.css own layout/spacing --- */
.e-con, .e-con-inner {
  --padding-block-start: 0px;
  --padding-block-end: 0px;
  --padding-inline-start: 0px;
  --padding-inline-end: 0px;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
}

/* --- Headings: inner title inherits the wrapper's design typography --- */
.elementor-widget-heading .elementor-heading-title {
  font: inherit !important;
  color: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  text-transform: inherit !important;
  margin: 0 !important;
}

/* --- Text editor: inner content inherits the wrapper's design typography --- */
.elementor-widget-text-editor > .elementor-widget-container {
  font: inherit !important;
  color: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
}
.elementor-widget-text-editor p { margin: 0; }
.elementor-widget-text-editor p + p { margin-top: 1rem; }

/* --- Buttons: neutralize the widget wrapper, style the real <a> --- */
.elementor-widget-button.btn-ghost,
.elementor-widget-button.btn-lime {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}
.btn-ghost .elementor-button,
.btn-lime .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font);
  border-radius: var(--r-pill);
  text-decoration: none;
  transition: border-color var(--t), background var(--t), transform var(--t);
}
.btn-ghost .elementor-button {
  background: transparent;
  color: var(--c-text);
  border: 1px solid rgba(255,255,255,0.22);
  padding: 0.75rem 1.875rem;
  font-size: 0.9375rem;
  font-weight: 600;
}
.btn-ghost .elementor-button:hover {
  border-color: rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.04);
}
.btn-lime .elementor-button {
  background: var(--c-lime);
  color: #0d0d0d;
  border: none;
  padding: 0.75rem 1.875rem;
  font-size: 0.9375rem;
  font-weight: 700;
}
.btn-lime .elementor-button:hover { background: #d4f500; transform: translateY(-1px); }

/* --- Service list rendered as a Text Editor <ul> keeps its bullets --- */
.svc-list .elementor-widget-container > ul { margin: 0; padding: 0; }

/* --- Hide Astra's scroll-to-top (broken glyph) until theme chrome is finalized --- */
#ast-scroll-top { display: none !important; }

/* ============================================================
   XPRO HEADER / FOOTER BRIDGE
   ============================================================ */
/* Xpro heading: inner title inherits the wrapper's design typography */
.elementor-widget-xpro-heading .xpro-heading-title {
  font: inherit !important;
  color: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  text-transform: inherit !important;
  margin: 0 !important;
}
.elementor-widget-xpro-heading .xpro-simple-heading-wrapper { line-height: 1; }

/* Xpro horizontal menu styled as the design's .nav-links */
.nav-links .xpro-elementor-horizontal-navbar-nav {
  display: flex; align-items: center; gap: 2rem; margin: 0; padding: 0;
}
.nav-links .xpro-elementor-horizontal-navbar-nav > li { margin: 0; }
.nav-links .xpro-elementor-horizontal-navbar-nav > li > a {
  font-size: 0.9375rem; font-weight: 500; padding: 0; line-height: 1;
}

/* Xpro button → neutralize wrapper, render the real <a> as a pill */
.elementor-widget-xpro-button.btn-nav,
.elementor-widget-xpro-button.btn-ghost {
  background: transparent !important; border: 0 !important; padding: 0 !important;
}
.btn-nav .xpro-elementor-button,
.btn-ghost .xpro-elementor-button {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--font); border-radius: var(--r-pill);
  text-decoration: none; background: transparent !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  color: var(--c-text) !important;
  transition: border-color var(--t), background var(--t), transform var(--t);
}
.btn-nav .xpro-elementor-button { padding: 0.5rem 1.25rem !important; font-size: 0.875rem !important; font-weight: 600 !important; }
.btn-ghost .xpro-elementor-button { padding: 0.75rem 1.875rem !important; font-size: 0.9375rem !important; font-weight: 600 !important; }
.btn-nav .xpro-elementor-button:hover,
.btn-ghost .xpro-elementor-button:hover {
  border-color: rgba(255,255,255,0.55) !important; background: rgba(255,255,255,0.04) !important;
}

/* Footer social lettered circles (design reproduction) need link styling reset */
.footer-social-icon { text-decoration: none; }

/* ============================================================
   LAYOUT FIXES
   ============================================================ */
/* Elementor containers default to flex-direction:column; the design needs
   these as horizontal rows. (Grid containers are unaffected.) */
.header-inner  { flex-direction: row !important; }
.logo-wrap     { flex-direction: row !important; width: auto !important; }
.footer-social { flex-direction: row !important; }
.case-metrics  { flex-direction: row !important; flex-wrap: wrap; }
.logos-inner   { flex-direction: row !important; flex-wrap: wrap; }
.carousel-dots { flex-direction: row !important; }

/* Footer/service link lists: remove Astra's entry-content <ul> bullets + indent */
.footer-links ul, .svc-list ul {
  list-style: none !important; margin: 0 !important; padding: 0 !important;
}
.footer-links li { margin: 0 0 0.75rem !important; padding: 0 !important; }
.footer-links li::before { content: none !important; }

/* Full-bleed: stop Astra boxing the page; dark canvas edge to edge */
body { background-color: var(--c-bg) !important; }
.ast-container { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
#content.site-content { padding-top: 0 !important; padding-bottom: 0 !important; }
.ast-separate-container, .ast-plain-container, .ast-narrow-container,
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-inner { background: transparent !important; box-shadow: none !important; }
.ast-separate-container .ast-article-single,
.ast-separate-container #primary,
.site-main .ast-container > #primary,
.entry-content { margin: 0 !important; padding: 0 !important; }
.entry-content > * { max-width: none !important; }

/* Row-flex children should size to content, not stretch full width */
.header-inner > *, .footer-social > *, .logos-inner > *,
.carousel-dots > *, .case-metrics > * { width: auto !important; }
.header-inner { gap: 2rem; }
.nav-links { margin-left: auto; }   /* push nav + CTA to the right of the logo */

/* ---- New section rows (Elementor column default → row) ---- */
.hero-actions  { flex-direction: row !important; }
.process-strip { flex-direction: row !important; }
.cs-metrics    { flex-direction: row !important; }
.hero-actions > *, .cs-metrics > * { width: auto !important; }

/* ---- Core Elementor Icon widget inside .feature-icon ---- */
.feature-icon .elementor-widget-container { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.feature-icon .elementor-icon { display: inline-flex; align-items: center; justify-content: center; }
.feature-icon .elementor-icon i { color: var(--c-lime); font-size: 1.6rem; }
.feature-icon .elementor-icon svg { fill: var(--c-lime); width: 1.6rem; height: 1.6rem; }
