/**
 * Capital Senior — Elementor frontend alignment
 *
 * Scoped to main.capital-page-content (all theme page templates).
 * Loads after assets/css/global.css (single theme stylesheet) and, when available, elementor-frontend.
 * Base section styles (FAQ, pills, options grid, etc.) live in global.css; rules here only align
 * Elementor containers/widgets to that markup.
 *
 * Conventions for new Elementor pages:
 * - Section titles: add CSS class `section-h2` on the Heading widget (Advanced → CSS classes).
 * - Smaller centered display heading: wrap in `.philosophy-inner` or add class `cs-h2-philosophy` to the widget.
 * - Card / option title (h3): add `option-title` to the Heading widget.
 * - Primary CTA strip: use `.final-cta` on the section or `cs-cta-band` for the same look.
 * - Centered stack (full-width copy + centered button): inner container `final-cta-inner` or `cs-cta-stack-centered`.
 * - Buttons: add `btn-light` or `btn-primary` to the Button widget (Advanced → CSS classes).
 * - Pill + h2 only: use container classes `options-header`, `compare-header`, or `faq-header` (theme trims Elementor gap).
 * - Contact (Elementor): `page-wrap` → `contact-photo` (image, overlay, tagline) + `contact-info` (theme CSS in this file).
 * - Who We Are: `page-hero` + `page-hero-media` underlay, mission/values/team/cta — see inc/elementor-import-who-we-are.php.
 * - Home: `hero`, `stats-bar`, `pain-section`, photo strip, `callout-band`, options, `photo-banner`, `family-section`, `cta-section` — inc/elementor-import-home.php.
 */

/* ── Elementor editor / live preview canvas ───────────────────────────────────
 * global.css sets `.reveal { opacity: 0 }` until JS adds `.visible` (IntersectionObserver).
 * In the builder canvas that often never runs or never intersects, so mission/values/team/contact
 * blocks look empty. Force visible while editing; published front-end is unchanged. */
.elementor.elementor-edit-mode .reveal,
.elementor.elementor-preview .reveal,
body.elementor-editor-active .reveal,
body.elementor-editor-preview .reveal {
  opacity: 1 !important;
  transform: none !important;
}

/* Final canonical Family Support corner clipping (class-based only) */
main.capital-page-content .family-section .family-grid > .family-img-wrap,
main.capital-page-content .family-section .family-grid > .family-image-wrap,
main.capital-page-content .family-section .family-grid .family-img-wrap.e-con,
main.capital-page-content .family-section .family-grid .family-image-wrap.e-con {
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  overflow: clip !important;
  clip-path: inset(0 round var(--radius-lg)) !important;
  -webkit-clip-path: inset(0 round var(--radius-lg)) !important;
  contain: paint !important;
  transform: translateZ(0) !important;
  backface-visibility: hidden !important;
}
main.capital-page-content .family-section .family-grid .family-img-wrap.e-con > .e-con-inner,
main.capital-page-content .family-section .family-grid .family-image-wrap.e-con > .e-con-inner,
main.capital-page-content .family-section .family-grid .family-img-wrap .elementor-widget-image,
main.capital-page-content .family-section .family-grid .family-image-wrap .elementor-widget-image,
main.capital-page-content .family-section .family-grid .family-img-wrap .elementor-widget-image .elementor-widget-container,
main.capital-page-content .family-section .family-grid .family-image-wrap .elementor-widget-image .elementor-widget-container,
main.capital-page-content .family-section .family-grid .family-img-wrap .elementor-widget-image a,
main.capital-page-content .family-section .family-grid .family-image-wrap .elementor-widget-image a,
main.capital-page-content .family-section .family-grid .family-img-wrap .elementor-widget-image img,
main.capital-page-content .family-section .family-grid .family-image-wrap .elementor-widget-image img,
main.capital-page-content .family-section .family-grid .family-img-wrap img.what-family-img,
main.capital-page-content .family-section .family-grid .family-image-wrap img.what-family-img {
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  overflow: clip !important;
  clip-path: inset(0 round var(--radius-lg)) !important;
  -webkit-clip-path: inset(0 round var(--radius-lg)) !important;
  transform: translateZ(0) !important;
  backface-visibility: hidden !important;
}

/* Hide Elementor placeholder images that can overlay square corners */
main.capital-page-content .family-section .family-grid .family-img-wrap > img[src^="data:image"],
main.capital-page-content .family-section .family-grid .family-image-wrap > img[src^="data:image"],
main.capital-page-content .family-section .family-grid .family-img-wrap .elementor-widget-image > img[src^="data:image"],
main.capital-page-content .family-section .family-grid .family-image-wrap .elementor-widget-image > img[src^="data:image"] {
  display: none !important;
}

@media (max-width: 768px) {
  main.capital-page-content .process-section .e-con.e-flex {
    --flex-wrap-mobile: nowrap !important;
    --flex-wrap: nowrap !important;
  }
  /* Keep process rail/card styling identical while stacked */
  main.capital-page-content .process-section .step-row.e-con,
  main.capital-page-content .process-section .step-row.e-con > .e-con-inner {
    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) !important;
    column-gap: 16px !important;
    row-gap: 0 !important;
    align-items: stretch !important;
    --flex-direction: row !important;
  }
  main.capital-page-content .process-section .step-spine.e-con,
  main.capital-page-content .process-section .step-spine.e-con > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    --flex-direction: column !important;
    flex-wrap: nowrap !important;
    --flex-wrap: nowrap !important;
    align-items: center !important;
    width: 52px !important;
    min-width: 52px !important;
    align-self: stretch !important;
    grid-column: 1 !important;
  }
  main.capital-page-content .process-section .step-spine.e-con .elementor-widget-text-editor,
  main.capital-page-content .process-section .step-spine.e-con .elementor-widget-text-editor .elementor-widget-container,
  main.capital-page-content .process-section .step-spine.e-con .elementor-widget-text-editor .elementor-text-editor {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    flex: 1 1 auto !important;
  }
  main.capital-page-content .process-section .step-num {
    width: 40px !important;
    height: 40px !important;
    font-size: 16px !important;
    margin: 0 !important;
  }
  main.capital-page-content .process-section .step-connector {
    display: block !important;
    width: 1px !important;
    min-height: 20px !important;
    flex: 1 1 auto !important;
    margin: 4px 0 !important;
    background: var(--sand-dark) !important;
    opacity: 1 !important;
  }
  main.capital-page-content .process-section .step-card.e-con,
  main.capital-page-content .process-section .step-row.e-con > .e-con.step-card,
  main.capital-page-content .process-section .step-row.e-con > .e-con-inner > .e-con.step-card {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 0 4px 0 !important;
    padding: 20px 22px 24px !important;
    grid-column: 2 !important;
  }
  main.capital-page-content .process-section .step-bullets {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
}

/* ── Home (front page): two-column hero, stats row, strips, banner, CTA grid ── */
main.capital-page-content .hero.e-con,
main.capital-page-content .hero.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  min-height: 100vh !important;
  padding-top: 68px !important;
  padding-bottom: 0 !important;
  column-gap: 0 !important;
  row-gap: 0 !important;
  align-items: stretch !important;
  /* Break out of Elementor's content width so the image can hit the right edge */
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
main.capital-page-content .hero .hero-left.e-con,
main.capital-page-content .hero .hero-left.e-con > .e-con-inner {
  justify-content: center !important;
  /* Match fallback-home.php / global.css .hero-left padding */
  padding: 80px 60px 80px 72px !important;
  background: var(--warm-white) !important;
}
main.capital-page-content .hero .hero-actions.e-con,
main.capital-page-content .hero .hero-actions.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  column-gap: 20px !important;
  row-gap: 20px !important;
}
main.capital-page-content .hero .hero-right.e-con,
main.capital-page-content .hero .hero-right.e-con > .e-con-inner {
  position: relative !important;
  overflow: hidden !important;
  min-height: 320px !important;
  height: 100% !important;
  width: calc(100% + 32px) !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  margin-left: 0 !important;
  margin-right: -32px !important;
  margin-bottom: 0 !important;
  box-sizing: border-box !important;
}
main.capital-page-content .hero .hero-right .elementor-widget-image {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
main.capital-page-content .hero .hero-right .elementor-widget-image .elementor-widget-container,
main.capital-page-content .hero .hero-right .elementor-widget-image a {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
main.capital-page-content .hero .hero-right .elementor-widget-image img,
main.capital-page-content .hero .hero-right img.hero-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 0.88 !important;
  display: block !important;
}
/* Elementor Heading widget doesn't include our `hero-h1` class; style the H1 by structure. */
main.capital-page-content .hero .hero-left h1.elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(40px, 4vw, 58px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  color: var(--ink) !important;
  margin: 0 0 24px !important;
}
main.capital-page-content .hero .hero-left h1.elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest) !important;
}
main.capital-page-content .hero .hero-right .elementor-widget-html {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  margin: 0 !important;
}
main.capital-page-content .hero .hero-right .hero-img-overlay {
  background: linear-gradient(135deg, rgba(43,80,69,0.45) 0%, rgba(43,80,69,0.06) 60%) !important;
}

/* Hero primary CTA: one line, compact — max-width:100% on buttons forces wrap in a full-width column */
main.capital-page-content .hero .btn-primary.elementor-widget-button {
  width: auto !important;
  max-width: none !important;
}
main.capital-page-content .hero .btn-primary.elementor-widget-button .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 6px 16px !important;
  font-size: 14px !important;
  letter-spacing: 0.035em !important;
  line-height: 1 !important;
  min-height: unset !important;
  height: auto !important;
  white-space: nowrap !important;
  width: auto !important;
  max-width: none !important;
  overflow: hidden !important;
  position: relative !important;
  isolation: isolate !important;
  box-sizing: border-box !important;
}
main.capital-page-content .hero .btn-primary.elementor-widget-button .elementor-button-text {
  white-space: nowrap !important;
  line-height: 1 !important;
  display: inline-block !important;
  transform: translateY(0.04em) !important;
}
/* Kit / animation layers on .elementor-button often mis-size when label wraps — green “tab” on the right */
main.capital-page-content .hero .btn-primary.elementor-widget-button .elementor-button::before,
main.capital-page-content .hero .btn-primary.elementor-widget-button .elementor-button::after {
  display: none !important;
  content: none !important;
}
main.capital-page-content .hero .btn-primary.elementor-widget-button .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  line-height: 1 !important;
  position: relative !important;
  z-index: 1 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Whole-family support — ensure Elementor heading inherits `.section-h2` styling */
main.capital-page-content .family-section .family-left .section-h2 .elementor-heading-title,
main.capital-page-content .family-section .family-left .elementor-widget-heading.section-h2 .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(32px, 3vw, 46px) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--warm-white) !important;
  margin-bottom: 16px !important;
}
main.capital-page-content .family-section .family-left .section-h2 .elementor-heading-title em,
main.capital-page-content .family-section .family-left .elementor-widget-heading.section-h2 .elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest-mid) !important;
}

/* Whole-family support — Elementor may output `.family-grid` as flex. Force the fallback grid. */
main.capital-page-content .family-section .family-grid.e-con {
  display: grid !important;
  grid-template-columns: 0.95fr 1.05fr !important;
  gap: 80px !important;
  width: 100% !important;
  max-width: none !important;
  align-items: flex-start !important;
}

main.capital-page-content .family-section .family-image-wrap.e-con {
  height: auto !important;
  align-self: flex-start !important;
  aspect-ratio: 2/3 !important;
  display: block !important;
  overflow: hidden !important;
  border-radius: var(--radius-lg) !important;
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  margin-top: 44px !important;
}

/* Ensure the image widget stretches vertically inside the wrapper */
main.capital-page-content .family-section .family-image-wrap.e-con .elementor-widget-image {
  height: 100% !important;
  display: block !important;
}
main.capital-page-content .family-section .family-image-wrap.e-con .elementor-widget-image .elementor-widget-container {
  height: 100% !important;
  width: 100% !important;
}

/* The overlay stats badge is absolutely positioned; don't let the HTML widget affect layout height */
main.capital-page-content .family-section .family-image-wrap.e-con .elementor-widget-html {
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
}

/* Ensure the actual <img> fills the wrapper height (Elementor often keeps it auto-height) */
main.capital-page-content .family-section .family-image-wrap.e-con .elementor-widget-image a {
  display: block !important;
  height: 100% !important;
  width: 100% !important;
}
main.capital-page-content .family-section .family-image-wrap.e-con .elementor-widget-image img {
  height: 100% !important;
  width: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* What We Do variant: .family-img-wrap + .what-family-img */
main.capital-page-content .family-section .family-img-wrap.e-con {
  position: relative !important;
  border-radius: var(--radius-lg) !important;
  border-top-left-radius: var(--radius-lg) !important;
  border-top-right-radius: var(--radius-lg) !important;
  border-bottom-left-radius: var(--radius-lg) !important;
  border-bottom-right-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  clip-path: inset(0 round var(--radius-lg)) !important;
  -webkit-clip-path: inset(0 round var(--radius-lg)) !important;
  -webkit-mask-image: -webkit-radial-gradient(white, black) !important;
  -webkit-mask-repeat: no-repeat !important;
  -webkit-mask-size: 100% 100% !important;
  mask-image: radial-gradient(white, black) !important;
  mask-repeat: no-repeat !important;
  mask-size: 100% 100% !important;
  isolation: isolate !important;
}
main.capital-page-content .family-section .family-img-wrap.e-con > .e-con-inner {
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  clip-path: inset(0 round var(--radius-lg)) !important;
  -webkit-clip-path: inset(0 round var(--radius-lg)) !important;
  -webkit-mask-image: -webkit-radial-gradient(white, black) !important;
  -webkit-mask-repeat: no-repeat !important;
  -webkit-mask-size: 100% 100% !important;
  mask-image: radial-gradient(white, black) !important;
  mask-repeat: no-repeat !important;
  mask-size: 100% 100% !important;
}
main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img,
main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img .elementor-widget-container,
main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img a,
main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  display: block !important;
  border-radius: var(--radius-lg) !important;
  border-top-left-radius: var(--radius-lg) !important;
  border-top-right-radius: var(--radius-lg) !important;
  border-bottom-left-radius: var(--radius-lg) !important;
  border-bottom-right-radius: var(--radius-lg) !important;
  overflow: hidden !important;
}
main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img img {
  object-fit: cover !important;
}

/* Robust class-based clipping for Elementor image widget chain */
main.capital-page-content .family-section .family-img-wrap.e-con,
main.capital-page-content .family-section .family-img-wrap.e-con > .e-con-inner,
main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image,
main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image .elementor-widget-container,
main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image a,
main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image img,
main.capital-page-content .family-section .family-img-wrap.e-con img.what-family-img {
  border-radius: var(--radius-lg) !important;
  border-top-left-radius: var(--radius-lg) !important;
  border-top-right-radius: var(--radius-lg) !important;
  border-bottom-left-radius: var(--radius-lg) !important;
  border-bottom-right-radius: var(--radius-lg) !important;
  overflow: hidden !important;
}
main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image img,
main.capital-page-content .family-section .family-img-wrap.e-con img.what-family-img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  clip-path: inset(0 round var(--radius-lg)) !important;
  -webkit-clip-path: inset(0 round var(--radius-lg)) !important;
}

/* Match fallback typography inside family-left (Elementor text widgets can override margins) */
main.capital-page-content .family-section .family-left p {
  font-size: 17px !important;
  color: rgba(235,242,239,0.85) !important;
  line-height: 1.85 !important;
  margin-bottom: 32px !important;
}
main.capital-page-content .family-section .family-left .family-points {
  margin-bottom: 40px !important;
}

/* Match fallback checkmark list spacing + SVG stroke colors (Elementor text editor can add margins) */
main.capital-page-content .family-section .family-left ul.family-points {
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  margin: 0 0 40px !important;
  padding: 0 !important;
}
main.capital-page-content .family-section .family-left ul.family-list {
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  margin: 0 0 40px !important;
  padding: 0 !important;
}
main.capital-page-content .family-section .family-body ul.family-list {
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  margin: 0 0 40px !important;
  padding: 0 !important;
}
main.capital-page-content .family-section .family-left ul.family-points li {
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  font-size: 17px !important;
  color: var(--forest-pale) !important;
  line-height: 1.65 !important;
}
main.capital-page-content .family-section .family-left ul.family-list li {
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  font-size: 17px !important;
  color: var(--forest-pale) !important;
  line-height: 1.65 !important;
}
main.capital-page-content .family-section .family-body ul.family-list li {
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  font-size: 17px !important;
  color: var(--ink-mid) !important;
  line-height: 1.65 !important;
}

/* Force exact What We Do mobile family image rounding on current live Elementor nodes */
main.capital-page-content .family-section .family-left .family-check {
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.1) !important;
  border: 1px solid var(--forest-mid) !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 2px !important;
}
main.capital-page-content .family-section .family-left .family-check svg {
  width: 10px !important;
  height: 10px !important;
  stroke: var(--forest-mid) !important;
  fill: none !important;
  stroke-width: 2.5 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
main.capital-page-content .family-section .family-left .family-check svg path {
  stroke: var(--forest-mid) !important;
  fill: none !important;
}

/* Remove extra horizontal padding inside the left column (Elementor containers can add it) */
main.capital-page-content .family-section .family-left.e-con,
main.capital-page-content .family-section .family-left.e-con > .e-con-inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Whole-family CTA (Start the conversation): one line + compact — same max-width:100% wrap as hero primary */
main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light {
  width: auto !important;
  max-width: none !important;
  align-self: center !important;
  text-align: center !important;
}
main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-widget-container,
main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-button-wrapper {
  text-align: center !important;
}
main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 6px 16px !important;
  font-size: 14px !important;
  letter-spacing: 0.035em !important;
  line-height: 1 !important;
  min-height: unset !important;
  height: auto !important;
  white-space: nowrap !important;
  width: auto !important;
  max-width: none !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-button-text {
  text-align: center !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  display: inline-block !important;
  transform: translateY(0.04em) !important;
}
main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-button::before,
main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-button::after {
  display: none !important;
  content: none !important;
}
main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  line-height: 1 !important;
}
/* Home stats strip: full-bleed green bar; inner grid wider than default .container (1120px), aligned with home “wide” sections. */
main.capital-page-content .stats-bar.e-con,
main.capital-page-content .elementor-element.stats-bar.e-con {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  box-sizing: border-box !important;
  --content-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  position: relative !important;
}
/* DOM is often .stats-bar > .stats-grid--elementor.e-con (direct .stat-cell children, no .e-con-inner). e-flex must not win over grid. */
main.capital-page-content .stats-bar .elementor-element.stats-grid--elementor.e-con.e-flex,
main.capital-page-content .stats-bar .stats-grid--elementor.e-con,
main.capital-page-content .stats-bar .stats-grid--elementor.e-con > .e-con-inner {
  --width: 100% !important;
  --container-max-width: 1400px !important;
  --content-width: min(100%, 1400px) !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: 1400px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 48px !important;
  padding-right: 48px !important;
  box-sizing: border-box !important;
  align-items: stretch !important;
  column-gap: 0 !important;
  row-gap: 0 !important;
  flex-direction: unset !important;
}
main.capital-page-content .stats-bar .stats-grid--elementor .stat-cell.e-con {
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  min-width: 0 !important;
}
main.capital-page-content .stats-bar .stats-grid--elementor .stat-cell .elementor-widget-text-editor,
main.capital-page-content .stats-bar .stats-grid--elementor .stat-cell .elementor-widget-text-editor .elementor-widget-container,
main.capital-page-content .stats-bar .stats-grid--elementor .stat-cell .elementor-widget-text-editor .elementor-text-editor {
  text-align: center !important;
  width: 100% !important;
}

/* Home "We understand" should match fallback full-width rhythm (not narrow Elementor content width) */
main.capital-page-content .pain-section .container.e-con,
main.capital-page-content .pain-section .container.e-con > .e-con-inner {
  width: 100% !important;
  max-width: 1320px !important;
}
main.capital-page-content .pain-section .pain-grid.e-con,
main.capital-page-content .pain-section .pain-grid.e-con > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
}
main.capital-page-content .pain-section .pain-grid .reveal.e-con,
main.capital-page-content .pain-section .pain-grid .reveal.e-con > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
}
main.capital-page-content .pain-section .pain-grid .elementor-widget,
main.capital-page-content .pain-section .pain-grid .elementor-widget .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
}

/* Strong override for current Elementor DOM:
   pain-section (parent) -> container (child) -> pain-grid (child) -> reveal (child) */
main.capital-page-content .pain-section.e-con {
  --content-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
main.capital-page-content .pain-section.e-con > .container.e-con {
  width: 100% !important;
  max-width: 1320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 48px !important;
  padding-right: 48px !important;
  box-sizing: border-box !important;
}
main.capital-page-content .pain-section.e-con > .container.e-con > .pain-grid.e-con {
  width: 100% !important;
  max-width: none !important;
  flex-basis: 100% !important;
  align-self: stretch !important;
}
main.capital-page-content .pain-section.e-con > .container.e-con > .pain-grid.e-con > .reveal.e-con {
  width: 100% !important;
  max-width: none !important;
  flex-basis: 100% !important;
  align-self: stretch !important;
  align-items: stretch !important;
  --container-widget-width: 100% !important;
  --container-widget-flex-grow: 0 !important;
}
main.capital-page-content .pain-section.e-con > .container.e-con > .pain-grid.e-con > .reveal.e-con > .elementor-widget {
  width: 100% !important;
  max-width: none !important;
  --container-widget-width: 100% !important;
  --container-widget-flex-grow: 0 !important;
  flex: 0 0 100% !important;
}
main.capital-page-content .home-photo-strip-section.e-con {
  padding: 0 !important;
  margin: 0 !important;
  background: var(--warm-white) !important;
  overflow: hidden !important;
}
main.capital-page-content .photo-strip-grid.e-con,
main.capital-page-content .photo-strip-grid.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  column-gap: 0 !important;
  row-gap: 0 !important;
  height: 360px !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  align-items: stretch !important;
  justify-items: stretch !important;
}
main.capital-page-content .photo-strip-cell.e-con,
main.capital-page-content .photo-strip-cell.e-con > .e-con-inner {
  overflow: hidden !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 100% !important;
}
main.capital-page-content .photo-strip-cell .elementor-widget-image,
main.capital-page-content .photo-strip-cell .elementor-widget-image .elementor-widget-container {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
main.capital-page-content .photo-strip-cell .elementor-widget-image a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
main.capital-page-content .photo-strip-cell .elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
main.capital-page-content .callout-band .callout-items.e-con,
main.capital-page-content .callout-band .callout-items.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  width: 100% !important;
}
main.capital-page-content .callout-band.e-con {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
}
main.capital-page-content .callout-band .callout-item.e-con,
main.capital-page-content .callout-band .callout-item.e-con > .e-con-inner {
  align-items: center !important;
  text-align: center !important;
  gap: 0 !important;
  row-gap: 0 !important;
  --row-gap: 0 !important;
}
main.capital-page-content .callout-band .callout-item .elementor-widget,
main.capital-page-content .callout-band .callout-item .elementor-widget .elementor-widget-container,
main.capital-page-content .callout-band .callout-item .elementor-widget p {
  text-align: center !important;
}
main.capital-page-content .callout-band .callout-item .elementor-widget {
  margin: 0 !important;
}
main.capital-page-content .callout-band .callout-item .elementor-widget-html {
  margin-bottom: 14px !important; /* icon -> title */
}
main.capital-page-content .callout-band .callout-item .elementor-widget-text-editor:first-of-type {
  margin-bottom: 14px !important; /* title -> description */
}
main.capital-page-content .callout-band .callout-item .elementor-widget-text-editor p {
  margin: 0 !important;
}
/* Directly control spacing under title text (more reliable than widget-order selectors) */
main.capital-page-content .callout-band .callout-item p.callout-item-title {
  margin: 0 0 12px !important;
}
main.capital-page-content .callout-band .callout-item p.callout-item-desc {
  margin: 0 !important;
}

/* Increase separation before Care Options section (pill should sit lower) */
main.capital-page-content .capital-options-section.e-con,
main.capital-page-content .elementor-element.capital-options-section.e-con {
  padding-top: 120px !important;
  padding-bottom: 120px !important;
}

/* Keep pill -> heading spacing consistent across shared section headers */
main.capital-page-content .options-header.e-con > .elementor-widget-text-editor,
main.capital-page-content .compare-header.e-con > .elementor-widget-text-editor,
main.capital-page-content .faq-header.e-con > .elementor-widget-text-editor {
  margin-bottom: 18px !important;
}
main.capital-page-content .options-header .section-pill,
main.capital-page-content .compare-header .pill,
main.capital-page-content .faq-header .pill {
  margin-bottom: 0 !important;
}
main.capital-page-content .options-header.e-con > .elementor-widget-heading,
main.capital-page-content .compare-header.e-con > .elementor-widget-heading,
main.capital-page-content .faq-header.e-con > .elementor-widget-heading {
  margin-top: 0 !important;
}
main.capital-page-content .photo-banner.e-con {
  padding: 0 !important;
  overflow: hidden !important;
  position: relative !important;
  min-height: 440px !important;
}
main.capital-page-content .photo-banner .photo-banner-stack.e-con,
main.capital-page-content .photo-banner .photo-banner-stack.e-con > .e-con-inner {
  position: relative !important;
  min-height: 440px !important;
  width: 100% !important;
  max-width: none !important;
}
main.capital-page-content .photo-banner .photo-banner-stack > .elementor-widget-image,
main.capital-page-content .photo-banner .photo-banner-stack .e-con-inner > .elementor-widget-image {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
main.capital-page-content .photo-banner .photo-banner-stack > .elementor-widget-image .elementor-widget-container,
main.capital-page-content .photo-banner .photo-banner-stack .e-con-inner > .elementor-widget-image .elementor-widget-container,
main.capital-page-content .photo-banner .photo-banner-stack > .elementor-widget-image a,
main.capital-page-content .photo-banner .photo-banner-stack .e-con-inner > .elementor-widget-image a {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
main.capital-page-content .photo-banner .photo-banner-stack .elementor-widget-image img,
main.capital-page-content .photo-banner .home-photo-banner-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
main.capital-page-content .photo-banner .photo-banner-stack > .elementor-widget-html,
main.capital-page-content .photo-banner .photo-banner-stack .e-con-inner > .elementor-widget-html {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  margin: 0 !important;
}
main.capital-page-content .photo-banner .photo-banner-inner.e-con,
main.capital-page-content .photo-banner .photo-banner-inner.e-con > .e-con-inner {
  position: absolute !important;
  top: 50% !important;
  left: 0 !important;
  transform: translateY(-50%) !important;
  z-index: 2 !important;
  max-width: 600px !important;
  padding: 0 72px !important;
  width: auto !important;
}
main.capital-page-content .cta-section .cta-inner.e-con,
main.capital-page-content .cta-section .cta-inner.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 420px !important;
  gap: 80px !important;
  align-items: start !important;
  width: 100% !important;
}
main.capital-page-content .cta-section .cta-inner.e-con {
  background: var(--sand) !important;
  border-radius: 16px !important;
  padding: 72px 80px !important;
  box-sizing: border-box !important;
}

/* ── Page hero (forest band + Elementor widgets) ── */
main.capital-page-content .page-hero,
main.capital-page-content .page-hero.elementor-element,
main.capital-page-content .page-hero.e-con {
  background-color: var(--forest) !important;
  background-image: none !important;
  padding-top: 68px !important;
  min-height: 400px;
  position: relative;
  overflow: hidden;
}
main.capital-page-content .page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(ellipse at 75% 50%, rgba(194, 217, 210, 0.13) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
/* Who We Are photo hero: do not lift `.page-hero-media` above the underlay — only non-media children */
main.capital-page-content .page-hero:not(:has(.page-hero-media)) > * {
  position: relative;
  z-index: 1;
}
main.capital-page-content .page-hero .elementor-widget-heading .elementor-heading-title,
main.capital-page-content .page-hero h1.elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(36px, 4vw, 54px) !important;
  font-weight: 600 !important;
  color: var(--warm-white) !important;
  line-height: 1.15 !important;
  margin: 0 0 20px !important;
}
main.capital-page-content .page-hero .elementor-widget-heading .elementor-heading-title em,
main.capital-page-content .page-hero h1.elementor-heading-title em {
  color: var(--forest-mid) !important;
  font-style: italic !important;
}
main.capital-page-content .page-hero .elementor-widget-text-editor {
  color: rgba(235, 242, 239, 0.85);
}
main.capital-page-content .page-hero .elementor-widget-text-editor .page-breadcrumb,
main.capital-page-content .page-hero .elementor-widget-text-editor .page-breadcrumb a {
  color: var(--forest-mid);
}
main.capital-page-content .page-hero .elementor-widget-text-editor .page-breadcrumb a:hover {
  color: var(--warm-white);
}
main.capital-page-content .page-hero .elementor-widget-text-editor .page-hero-sub {
  color: rgba(235, 242, 239, 0.8);
  font-size: 17px;
  line-height: 1.75;
  margin-bottom: 32px;
  max-width: 460px;
}
main.capital-page-content .page-hero .hero-img-wrap .elementor-widget-image img,
main.capital-page-content .page-hero .hero-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  border-radius: var(--radius-lg);
}
main.capital-page-content .page-hero .hero-img-wrap .elementor-widget-container {
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: 380px;
}

/* Who We Are hero: full-width band + full-bleed photo; copy sits in centered `.page-hero-inner.container` */
main.capital-page-content .page-hero.e-con:has(> .page-hero-media),
main.capital-page-content .elementor-element.page-hero.e-con:has(> .page-hero-media) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  min-height: 380px !important;
  padding-top: 68px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
}
/* Linear overlay like global.css (beats generic `.page-hero::before` radial) */
main.capital-page-content .page-hero:has(.page-hero-media)::before {
  background-image: linear-gradient(120deg, rgba(24, 33, 30, 0.62) 0%, rgba(24, 33, 30, 0.38) 45%, rgba(24, 33, 30, 0.24) 100%) !important;
  z-index: 1 !important;
}
main.capital-page-content .page-hero:has(.page-hero-media) .page-hero-media.e-con,
main.capital-page-content .page-hero .page-hero-media.e-con {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: none !important;
  pointer-events: none !important;
}
main.capital-page-content .page-hero .page-hero-media .elementor-widget-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
main.capital-page-content .page-hero .page-hero-media .elementor-widget-image .elementor-widget-container,
main.capital-page-content .page-hero .page-hero-media .elementor-widget-image a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
main.capital-page-content .page-hero .page-hero-media .elementor-widget-image a {
  pointer-events: none !important;
}
main.capital-page-content .page-hero .page-hero-media img.page-hero-img,
main.capital-page-content .page-hero .page-hero-media .elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 35% !important;
  display: block !important;
}
main.capital-page-content .page-hero:has(.page-hero-media) > .page-hero-inner,
main.capital-page-content .page-hero:has(.page-hero-media) > .page-hero-inner.e-con {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 72px 48px !important;
  box-sizing: border-box !important;
}
main.capital-page-content .page-hero:has(.page-hero-media) .elementor-widget-heading .elementor-heading-title,
main.capital-page-content .page-hero:has(.page-hero-media) h1.elementor-heading-title {
  font-size: clamp(38px, 4vw, 56px) !important;
  max-width: 600px !important;
  margin-bottom: 0 !important;
}

/* Who We Are — mission + values grids (Elementor flex overrides theme CSS grid) */
main.capital-page-content .mission-section .mission-grid.e-con,
main.capital-page-content .mission-section .mission-grid.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 80px !important;
  align-items: start !important;
  width: 100% !important;
}
main.capital-page-content .values-section .values-grid.e-con,
main.capital-page-content .values-section .values-grid.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
}
main.capital-page-content .values-section .value-card.e-con {
  border-radius: var(--radius-value-card) !important;
  overflow: hidden !important;
}
main.capital-page-content .values-section .value-card.e-con > .e-con-inner {
  align-items: center !important;
}

/* Who We Are: strip between values and team — only the .e-con that wraps hr.section-rule (no data-id) */
main.capital-page-content .elementor-element.e-con.wwa-section-rule,
main.capital-page-content .elementor-element.e-con:has(> .elementor-widget-html hr.section-rule),
main.capital-page-content .elementor-element.e-con:has(> .e-con-inner > .elementor-widget-html hr.section-rule) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  min-height: 0 !important;
}
main.capital-page-content .elementor-element.e-con.wwa-section-rule > .e-con-inner,
main.capital-page-content .elementor-element.e-con:has(> .elementor-widget-html hr.section-rule) > .e-con-inner,
main.capital-page-content .elementor-element.e-con:has(> .e-con-inner > .elementor-widget-html hr.section-rule) > .e-con-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  gap: 0 !important;
  min-height: 0 !important;
}
main.capital-page-content .elementor-element.e-con.wwa-section-rule .elementor-widget-html,
main.capital-page-content .elementor-element.e-con:has(> .elementor-widget-html hr.section-rule) .elementor-widget-html,
main.capital-page-content .elementor-element.e-con:has(> .e-con-inner > .elementor-widget-html hr.section-rule) .elementor-widget-html {
  margin: 0 !important;
}
main.capital-page-content .elementor-element.e-con.wwa-section-rule .elementor-widget-html .elementor-widget-container,
main.capital-page-content .elementor-element.e-con:has(> .elementor-widget-html hr.section-rule) .elementor-widget-html .elementor-widget-container,
main.capital-page-content .elementor-element.e-con:has(> .e-con-inner > .elementor-widget-html hr.section-rule) .elementor-widget-html .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}
main.capital-page-content .elementor-element.e-con.wwa-section-rule + .elementor-element.team-section.e-con,
main.capital-page-content .elementor-element.e-con:has(> .elementor-widget-html hr.section-rule) + .elementor-element.team-section.e-con,
main.capital-page-content .elementor-element.e-con:has(> .e-con-inner > .elementor-widget-html hr.section-rule) + .elementor-element.team-section.e-con {
  margin-top: 0 !important;
}

main.capital-page-content .team-section .team-card.e-con,
main.capital-page-content .team-section .team-card.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: 280px 1fr !important;
  gap: 0 !important;
  align-items: stretch !important;
  width: 100% !important;
}
@media (max-width: 900px) {
  main.capital-page-content .mission-section .mission-grid.e-con,
  main.capital-page-content .mission-section .mission-grid.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  main.capital-page-content .values-section .values-grid.e-con,
  main.capital-page-content .values-section .values-grid.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  main.capital-page-content .team-section .team-card.e-con,
  main.capital-page-content .team-section .team-card.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  main.capital-page-content .page-hero:has(.page-hero-media) > .page-hero-inner,
  main.capital-page-content .page-hero:has(.page-hero-media) > .page-hero-inner.e-con {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* Who We Are — Elementor Heading widgets (kit `.elementor-size-default` overrides theme class hooks) */
main.capital-page-content .mission-section .elementor-widget-heading.mission-h2 .elementor-heading-title,
main.capital-page-content .mission-section .elementor-element.mission-h2 .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(30px, 3vw, 42px) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--ink) !important;
  margin: 0 0 24px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
main.capital-page-content .mission-section .elementor-widget-heading.mission-h2 .elementor-heading-title em,
main.capital-page-content .mission-section .elementor-element.mission-h2 .elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest) !important;
}
main.capital-page-content .mission-section .elementor-widget-heading.mission-h2 .elementor-heading-title span,
main.capital-page-content .mission-section .elementor-element.mission-h2 .elementor-heading-title span {
  color: inherit !important;
}
main.capital-page-content .values-section .elementor-widget-heading.value-title .elementor-heading-title,
main.capital-page-content .values-section .elementor-element.value-title .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: var(--ink) !important;
  margin: 0 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
main.capital-page-content .team-section .team-header .elementor-widget-heading .elementor-widget-container,
main.capital-page-content .team-section .team-header .elementor-widget-heading {
  text-align: center !important;
}
main.capital-page-content .team-section .team-header .elementor-widget-heading .elementor-heading-title,
main.capital-page-content .team-section .team-header h2.elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(28px, 3vw, 40px) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--ink) !important;
  margin: 0 !important;
  text-align: center !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
main.capital-page-content .team-section .team-header .elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest) !important;
}
main.capital-page-content .team-section .team-header .elementor-widget-text-editor,
main.capital-page-content .team-section .team-header .elementor-text-editor {
  text-align: center !important;
  max-width: 500px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
main.capital-page-content .team-section .team-header .elementor-widget-text-editor p {
  font-size: 17px !important;
  color: var(--ink-mid) !important;
  line-height: 1.75 !important;
  margin: 14px 0 0 !important;
}
main.capital-page-content .team-section .elementor-widget-heading.team-name .elementor-heading-title,
main.capital-page-content .team-section .elementor-element.team-name .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--ink) !important;
  margin: 0 0 4px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

@media (max-width: 900px) {
  .elementor-element.team-name.elementor-widget-heading {
    margin-top:50px;
  }
}

main.capital-page-content .cta-band .elementor-widget-heading .elementor-widget-container,
main.capital-page-content .cta-band .elementor-widget-heading {
  text-align: center !important;
}
main.capital-page-content .cta-band .elementor-widget-heading .elementor-heading-title,
main.capital-page-content .cta-band h2.elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(26px, 3vw, 38px) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--warm-white) !important;
  margin: 0 0 14px !important;
  text-align: center !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
main.capital-page-content .cta-band .elementor-widget-heading .elementor-heading-title em,
main.capital-page-content .cta-band h2.elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest-mid) !important;
}
main.capital-page-content .cta-band .elementor-widget-text-editor,
main.capital-page-content .cta-band .elementor-widget-text-editor .elementor-widget-container,
main.capital-page-content .cta-band .elementor-text-editor {
  text-align: center !important;
  color: rgba(235, 242, 239, 0.75) !important;
}
main.capital-page-content .cta-band .elementor-widget-text-editor p {
  margin-bottom: 32px !important;
}

/* ── Contact (Elementor): flat `.e-con` DOM has no `.e-con-inner` — columns/widgets are direct children ── */
body.elementor-page main.capital-page-content:has(.page-wrap.e-con) {
  padding-bottom: 0 !important;
}
body.elementor-page main.capital-page-content:has(.page-wrap.e-con) > .elementor {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
body.elementor-page main.capital-page-content .page-wrap.e-con,
body.elementor-page main.capital-page-content .elementor-element.page-wrap.e-con {
  padding-top: 68px !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
/* Height follows the taller column only — avoids a dead band above the footer */
body.elementor-page main.capital-page-content .page-wrap.e-con:has(> .contact-photo.e-con),
body.elementor-page main.capital-page-content .elementor-element.page-wrap.e-con:has(> .contact-photo.e-con) {
  min-height: 0 !important;
}
/* Legacy: inner wrapper holds the two columns */
body.elementor-page main.capital-page-content .page-wrap.e-con:has(> .e-con-inner) {
  display: block !important;
}
body.elementor-page main.capital-page-content .page-wrap.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  grid-template-rows: minmax(0, auto) !important;
  align-items: stretch !important;
  align-content: start !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
  width: 100% !important;
  min-height: 0 !important;
}
/* Current Elementor: `.contact-photo` + `.contact-info` are direct children of `.page-wrap` (no `.e-con-inner`) */
body.elementor-page main.capital-page-content .page-wrap.e-con:has(> .contact-photo.e-con) {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  grid-template-rows: minmax(0, auto) !important;
  align-items: stretch !important;
  align-content: start !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
}
body.elementor-page main.capital-page-content .page-wrap.e-con > .e-con-inner > .e-con,
body.elementor-page main.capital-page-content .page-wrap.e-con:has(> .contact-photo.e-con) > .e-con {
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
}
body.elementor-page main.capital-page-content .contact-photo.e-con {
  position: relative !important;
  overflow: hidden !important;
  min-height: 0 !important;
  align-self: stretch !important;
}
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner {
  position: relative !important;
  display: block !important;
  min-height: 100% !important;
  height: 100% !important;
  gap: 0 !important;
  row-gap: 0 !important;
}
body.elementor-page main.capital-page-content .contact-photo .elementor-widget-image {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  min-height: 0 !important;
}
body.elementor-page main.capital-page-content .contact-photo .elementor-widget-image .elementor-widget-container {
  height: 100% !important;
  min-height: 100% !important;
  width: 100% !important;
}
body.elementor-page main.capital-page-content .contact-photo .elementor-widget-image a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
body.elementor-page main.capital-page-content .contact-photo .elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  /* Bias toward the right so the second person isn’t cropped as aggressively as center-center */
  object-position: 62% center !important;
  display: block !important;
}
/* Overlay + tagline: direct widget children OR legacy `.e-con-inner` */
body.elementor-page main.capital-page-content .contact-photo.e-con > .elementor-widget-html,
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner > .elementor-widget-html {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
}
body.elementor-page main.capital-page-content .contact-photo.e-con > .elementor-widget-html .elementor-widget-container,
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner > .elementor-widget-html .elementor-widget-container {
  height: 100% !important;
  min-height: 100% !important;
}
body.elementor-page main.capital-page-content .contact-photo.e-con > .elementor-widget-text-editor,
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner > .elementor-widget-text-editor {
  position: absolute !important;
  left: 44px !important;
  right: 44px !important;
  bottom: 48px !important;
  z-index: 2 !important;
  margin: 0 !important;
  width: auto !important;
  max-width: none !important;
  pointer-events: none !important;
}
body.elementor-page main.capital-page-content .contact-photo.e-con > .elementor-widget-text-editor .elementor-widget-container,
body.elementor-page main.capital-page-content .contact-photo.e-con > .elementor-widget-text-editor .elementor-text-editor,
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner > .elementor-widget-text-editor .elementor-widget-container,
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner > .elementor-widget-text-editor .elementor-text-editor {
  text-align: center !important;
}
body.elementor-page main.capital-page-content .contact-photo.e-con > .elementor-widget-text-editor .contact-photo-tagline,
body.elementor-page main.capital-page-content .contact-photo.e-con > .elementor-widget-text-editor .contact-photo-tagline p,
body.elementor-page main.capital-page-content .contact-photo.e-con > .elementor-widget-text-editor p,
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner > .elementor-widget-text-editor .contact-photo-tagline,
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner > .elementor-widget-text-editor .contact-photo-tagline p,
body.elementor-page main.capital-page-content .contact-photo.e-con > .e-con-inner > .elementor-widget-text-editor p {
  color: var(--warm-white) !important;
  font-family: var(--serif), Georgia, serif !important;
  font-style: italic !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  text-shadow: 0 1px 12px rgba(24, 33, 30, 0.45) !important;
}
body.elementor-page main.capital-page-content .contact-info.e-con {
  background-color: var(--contact-panel) !important;
  background-image: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  row-gap: 0 !important;
  padding: 80px 72px !important;
  box-sizing: border-box !important;
}
body.elementor-page main.capital-page-content .contact-info.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  row-gap: 0 !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  width: 100% !important;
}
body.elementor-page main.capital-page-content .contact-info .elementor-widget-text-editor,
body.elementor-page main.capital-page-content .contact-info .elementor-widget-text-editor .elementor-widget-container,
body.elementor-page main.capital-page-content .contact-info .elementor-text-editor {
  text-align: left !important;
}
body.elementor-page main.capital-page-content .contact-info.e-con > .elementor-element,
body.elementor-page main.capital-page-content .contact-info.e-con > .e-con-inner > .elementor-element {
  align-self: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
}
/* Button widget: exclude from full-width stretch (Send Us a Message — keep pill width to label only) */
body.elementor-page main.capital-page-content .contact-info .elementor-widget.elementor-widget-button,
body.elementor-page main.capital-page-content .contact-info .elementor-widget-button {
  width: auto !important;
  max-width: none !important;
  align-self: flex-start !important;
}
body.elementor-page main.capital-page-content .contact-info .elementor-widget-button .elementor-widget-container,
body.elementor-page main.capital-page-content .contact-info .elementor-widget-button .elementor-button-wrapper {
  width: auto !important;
  max-width: none !important;
  display: inline-block !important;
}
body.elementor-page main.capital-page-content .contact-info .elementor-widget-button .elementor-button {
  width: auto !important;
  max-width: none !important;
  display: inline-block !important;
}
body.elementor-page main.capital-page-content .contact-info .elementor-widget-heading.contact-h1 .elementor-heading-title,
body.elementor-page main.capital-page-content .contact-info .elementor-element.contact-h1 .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(34px, 3.5vw, 50px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  color: var(--ink) !important;
  margin: 0 0 16px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: left !important;
}
/* Elementor often wraps title fragments in spans (kit / link color); force theme colors */
body.elementor-page main.capital-page-content .contact-info .elementor-widget-heading.contact-h1 .elementor-heading-title span,
body.elementor-page main.capital-page-content .contact-info .elementor-element.contact-h1 .elementor-heading-title span {
  color: inherit !important;
}
body.elementor-page main.capital-page-content .contact-info .elementor-widget-heading.contact-h1 .elementor-heading-title em,
body.elementor-page main.capital-page-content .contact-info .elementor-element.contact-h1 .elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest) !important;
}
body.elementor-page main.capital-page-content .contact-info .elementor-widget-heading.contact-h1 .elementor-heading-title em span,
body.elementor-page main.capital-page-content .contact-info .elementor-element.contact-h1 .elementor-heading-title em span {
  color: inherit !important;
}
body.elementor-page main.capital-page-content .contact-details.e-con {
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
  row-gap: 18px !important;
}
body.elementor-page main.capital-page-content .contact-details.e-con > .contact-detail-item.e-con {
  margin-block: 0 !important;
}
body.elementor-page main.capital-page-content .contact-details.e-con > .e-con-inner {
  align-items: stretch !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
body.elementor-page main.capital-page-content .contact-details.e-con > .elementor-element,
body.elementor-page main.capital-page-content .contact-details.e-con > .e-con-inner > .elementor-element {
  align-self: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
}
/*
 * Reveal starts at opacity:0 in global.css; IntersectionObserver in contact.js can miss Elementor
 * wrappers. Show contact layout immediately when built with Elementor (animation optional).
 */
body.elementor-page main.capital-page-content .page-wrap .reveal {
  opacity: 1 !important;
  transform: none !important;
}
body.elementor-page main.capital-page-content .contact-detail-item.e-con {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 18px !important;
}
body.elementor-page main.capital-page-content .contact-detail-item.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 18px !important;
  width: 100% !important;
}
body.elementor-page main.capital-page-content .contact-detail-item .elementor-widget-html .elementor-widget-container {
  margin: 0 !important;
}
body.elementor-page main.capital-page-content .contact-detail-item .elementor-widget-text-editor {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
@media (max-width: 900px) {
  body.elementor-page main.capital-page-content .page-wrap.e-con > .e-con-inner,
  body.elementor-page main.capital-page-content .page-wrap.e-con:has(> .contact-photo.e-con) {
    grid-template-columns: 1fr !important;
  }
  body.elementor-page main.capital-page-content .contact-info.e-con {
    padding: 48px 28px !important;
  }
  body.elementor-page main.capital-page-content .contact-photo.e-con {
    min-height: min(340px, 85vw) !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
  }
}

/* ── Elementor Button + theme classes (widget gets btn-light / btn-primary) ── */
main.capital-page-content .elementor-widget.elementor-widget-button.btn-light,
main.capital-page-content .elementor-widget-button.btn-light {
  width: auto !important;
  max-width: 100%;
}
main.capital-page-content .elementor-widget-button.btn-light .elementor-widget-container,
main.capital-page-content .elementor-widget-button.btn-light .elementor-button-wrapper {
  width: auto !important;
  display: inline-block !important;
}
main.capital-page-content .elementor-widget-button.btn-light .elementor-button {
  width: auto !important;
  display: inline-block !important;
  text-align: center !important;
  background-color: var(--warm-white) !important;
  background-image: none !important;
  color: var(--forest) !important;
  border: none !important;
  border-radius: var(--radius) !important;
  font-family: var(--sans), system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  padding: 16px 36px !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
}
main.capital-page-content .elementor-widget-button.btn-light .elementor-button:hover,
main.capital-page-content .elementor-widget-button.btn-light .elementor-button:focus {
  background-color: var(--forest-pale) !important;
  color: var(--forest) !important;
}
main.capital-page-content .elementor-widget-button.btn-light .elementor-button-text {
  color: inherit !important;
}

main.capital-page-content .page-hero .elementor-widget.elementor-widget-button.btn-light,
main.capital-page-content .page-hero .elementor-widget-button.btn-light {
  align-self: flex-start !important;
}
main.capital-page-content .page-hero .elementor-widget-button.btn-light .elementor-button {
  font-size: 15px !important;
  padding: 13px 28px !important;
}

/* Fallback for cloned Elementor heroes where widget class may not include `btn-light` */
main.capital-page-content .page-hero .elementor-widget-button,
main.capital-page-content .page-hero .elementor-widget.elementor-widget-button {
  width: auto !important;
  max-width: 100% !important;
  align-self: flex-start !important;
}
main.capital-page-content .page-hero .elementor-widget-button .elementor-widget-container,
main.capital-page-content .page-hero .elementor-widget-button .elementor-button-wrapper {
  width: auto !important;
  display: inline-block !important;
  text-align: left !important;
}
main.capital-page-content .page-hero .elementor-widget-button .elementor-button {
  width: auto !important;
  display: inline-block !important;
  font-size: 15px !important;
  padding: 13px 28px !important;
}

main.capital-page-content .elementor-widget.elementor-widget-button.btn-primary,
main.capital-page-content .elementor-widget-button.btn-primary {
  width: auto !important;
  max-width: 100%;
}
main.capital-page-content .elementor-widget-button.btn-primary .elementor-widget-container,
main.capital-page-content .elementor-widget-button.btn-primary .elementor-button-wrapper {
  width: auto !important;
  display: inline-block !important;
}
main.capital-page-content .elementor-widget-button.btn-primary .elementor-button {
  width: auto !important;
  display: inline-block !important;
  text-align: center !important;
  background-color: var(--forest) !important;
  background-image: none !important;
  color: var(--warm-white) !important;
  border: none !important;
  border-radius: var(--radius) !important;
  font-family: var(--sans), system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  padding: 16px 36px !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
}
main.capital-page-content .elementor-widget-button.btn-primary .elementor-button:hover,
main.capital-page-content .elementor-widget-button.btn-primary .elementor-button:focus {
  background-color: var(--forest-light) !important;
  color: var(--warm-white) !important;
}
main.capital-page-content .elementor-widget-button.btn-primary .elementor-button-text {
  color: inherit !important;
}

main.capital-page-content .final-cta .elementor-widget-button.btn-light,
main.capital-page-content .cs-cta-band .elementor-widget-button.btn-light {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Bottom CTA buttons (What We Do + Who We Are): keep compact and prevent Elementor stretch */
main.capital-page-content .final-cta .elementor-widget-button.btn-light,
main.capital-page-content .cta-band-inner .elementor-widget-button.btn-light {
  width: auto !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
  align-self: center !important;
}
main.capital-page-content .final-cta .elementor-widget-button.btn-light .elementor-widget-container,
main.capital-page-content .final-cta .elementor-widget-button.btn-light .elementor-button-wrapper,
main.capital-page-content .cta-band-inner .elementor-widget-button.btn-light .elementor-widget-container,
main.capital-page-content .cta-band-inner .elementor-widget-button.btn-light .elementor-button-wrapper {
  width: auto !important;
  display: inline-block !important;
}
main.capital-page-content .final-cta .elementor-widget-button.btn-light .elementor-button,
main.capital-page-content .cta-band-inner .elementor-widget-button.btn-light .elementor-button {
  width: auto !important;
  display: inline-block !important;
  padding: 13px 28px !important;
  line-height: 1.2 !important;
}

/* ── Heading widgets: beat Elementor kit .elementor-size-default ── */
main.capital-page-content .philosophy-inner .elementor-widget-heading .elementor-heading-title,
main.capital-page-content .elementor-widget-heading.cs-h2-philosophy .elementor-heading-title,
main.capital-page-content .elementor-element.cs-h2-philosophy .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(28px, 3vw, 40px) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--ink) !important;
  margin: 0 0 36px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: center !important;
}
main.capital-page-content .philosophy-inner .elementor-widget-heading .elementor-widget-container,
main.capital-page-content .elementor-widget-heading.cs-h2-philosophy .elementor-widget-container {
  text-align: center !important;
}
main.capital-page-content .philosophy-inner .elementor-widget-heading .elementor-heading-title em,
main.capital-page-content .elementor-widget-heading.cs-h2-philosophy .elementor-heading-title em,
main.capital-page-content .elementor-element.cs-h2-philosophy .elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest) !important;
}

main.capital-page-content .elementor-element.section-h2 .elementor-heading-title,
main.capital-page-content .elementor-widget-heading.section-h2 .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(30px, 3vw, 44px) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--ink) !important;
  margin: 0 0 16px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
main.capital-page-content .elementor-element.section-h2 .elementor-heading-title em,
main.capital-page-content .elementor-widget-heading.section-h2 .elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest) !important;
}

/*
 * Pill + section-h2 stacks: Elementor adds gap + widget margins on top of theme pill / h2 spacing.
 * These headers only contain pill + h2 — match static HTML height (no extra row gap or h2 bottom gap).
 */
main.capital-page-content .options-header.e-con,
main.capital-page-content .compare-header.e-con,
main.capital-page-content .faq-header.e-con {
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
  --row-gap: 0 !important;
  --column-gap: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  min-height: 0 !important;
}
main.capital-page-content .options-header.e-con > .e-con-inner,
main.capital-page-content .compare-header.e-con > .e-con-inner,
main.capital-page-content .faq-header.e-con > .e-con-inner {
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
}
main.capital-page-content .options-header .elementor-widget,
main.capital-page-content .compare-header .elementor-widget,
main.capital-page-content .faq-header .elementor-widget {
  margin-block: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
main.capital-page-content .options-header .elementor-widget .elementor-widget-container,
main.capital-page-content .compare-header .elementor-widget .elementor-widget-container,
main.capital-page-content .faq-header .elementor-widget .elementor-widget-container {
  margin-block: 0 !important;
  padding-block: 0 !important;
}
main.capital-page-content .options-header p.section-pill,
main.capital-page-content .compare-header p.pill,
main.capital-page-content .faq-header p.pill {
  margin: 0 !important;
}
main.capital-page-content .options-header .elementor-element.section-h2 .elementor-heading-title,
main.capital-page-content .compare-header .elementor-element.section-h2 .elementor-heading-title,
main.capital-page-content .faq-header .elementor-element.section-h2 .elementor-heading-title {
  margin-bottom: 0 !important;
}

/* Vertical stacks with more widgets: drop Elementor gap only; keep theme margins on copy */
main.capital-page-content .process-sticky.e-con,
main.capital-page-content .philosophy-inner.e-con,
main.capital-page-content .family-body.e-con {
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
  --row-gap: 0 !important;
  --column-gap: 0 !important;
}
main.capital-page-content .process-sticky.e-con > .e-con-inner,
main.capital-page-content .philosophy-inner.e-con > .e-con-inner,
main.capital-page-content .family-body.e-con > .e-con-inner {
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
}
/* Our Philosophy: center column (pill, headings, body stack Elementor defaults to start) */
main.capital-page-content .philosophy-inner.e-con > .e-con-inner {
  align-items: center !important;
}
main.capital-page-content .process-sticky .elementor-widget,
main.capital-page-content .philosophy-inner .elementor-widget,
main.capital-page-content .family-body .elementor-widget {
  margin-block: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
main.capital-page-content .process-sticky p.pill,
main.capital-page-content .family-body p.pill {
  margin: 0 0 18px !important;
}
/* Philosophy pill: block-level flex + auto margins (Elementor text-editor flex + margin:0 here was pinning left) */
main.capital-page-content .philosophy-inner p.pill {
  display: flex !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 auto 18px !important;
  box-sizing: border-box !important;
}
main.capital-page-content .philosophy-inner .elementor-widget-text-editor:has(p.pill) .elementor-widget-container,
main.capital-page-content .philosophy-inner .elementor-widget-text-editor:has(p.pill) .elementor-text-editor {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

main.capital-page-content .philosophy-inner .elementor-widget-text-editor .elementor-widget-container,
main.capital-page-content .philosophy-inner .elementor-widget-text-editor .elementor-text-editor {
  text-align: center !important;
}
main.capital-page-content .philosophy-inner .philosophy-body {
  text-align: center !important;
}

/* Space below philosophy copy (between original 96px and previous 140px) */
main.capital-page-content .philosophy-section.e-con {
  --padding-bottom: 100px !important;
  padding-bottom: 100px !important;
}

main.capital-page-content .process-sticky .elementor-widget-heading .elementor-heading-title {
  margin-bottom: 16px !important;
}

main.capital-page-content .elementor-element.option-title .elementor-heading-title,
main.capital-page-content .elementor-widget-heading.option-title .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: var(--ink) !important;
  margin: 0 0 10px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

main.capital-page-content .final-cta .elementor-widget-heading .elementor-heading-title,
main.capital-page-content .cs-cta-band .elementor-widget-heading .elementor-heading-title {
  font-family: var(--serif), Georgia, serif !important;
  font-size: clamp(28px, 3vw, 42px) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--warm-white) !important;
  margin: 0 0 16px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: center !important;
}
main.capital-page-content .final-cta .elementor-widget-heading .elementor-widget-container,
main.capital-page-content .cs-cta-band .elementor-widget-heading .elementor-widget-container {
  text-align: center !important;
}
main.capital-page-content .final-cta .elementor-widget-heading .elementor-heading-title em,
main.capital-page-content .cs-cta-band .elementor-widget-heading .elementor-heading-title em {
  font-style: italic !important;
  color: var(--forest-mid) !important;
}

main.capital-page-content .final-cta .elementor-widget-text-editor,
main.capital-page-content .cs-cta-band .elementor-widget-text-editor {
  color: rgba(235, 242, 239, 0.78);
  text-align: center !important;
}
main.capital-page-content .final-cta .elementor-widget-text-editor .elementor-widget-container,
main.capital-page-content .final-cta .elementor-widget-text-editor .elementor-text-editor,
main.capital-page-content .cs-cta-band .elementor-widget-text-editor .elementor-widget-container,
main.capital-page-content .cs-cta-band .elementor-widget-text-editor .elementor-text-editor {
  text-align: center !important;
}

/* Center narrow CTA column inside full-width .container (Elementor flex defaults align start) */
main.capital-page-content .final-cta .container.e-con > .e-con-inner,
main.capital-page-content .cs-cta-band .container.e-con > .e-con-inner {
  align-items: center !important;
}
main.capital-page-content .final-cta .final-cta-inner.e-con,
main.capital-page-content .cs-cta-stack-centered.e-con {
  max-width: 620px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Centered CTA column: full-width text blocks + centered button */
main.capital-page-content .final-cta .final-cta-inner.e-con > .e-con-inner,
main.capital-page-content .cs-cta-stack-centered.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
main.capital-page-content .final-cta .final-cta-inner.e-con > .e-con-inner > .elementor-widget-heading,
main.capital-page-content .final-cta .final-cta-inner.e-con > .e-con-inner > .elementor-widget-text-editor,
main.capital-page-content .cs-cta-stack-centered.e-con > .e-con-inner > .elementor-widget-heading,
main.capital-page-content .cs-cta-stack-centered.e-con > .e-con-inner > .elementor-widget-text-editor {
  width: 100% !important;
  max-width: 100% !important;
  align-self: stretch !important;
}

/* ── .container on Elementor flex containers ── */
main.capital-page-content .elementor .e-con.container:not(.page-hero-inner):not(.stats-grid--elementor),
main.capital-page-content .elementor .elementor-element.e-con.container:not(.page-hero-inner):not(.stats-grid--elementor) {
  max-width: 1120px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 48px !important;
  padding-right: 48px !important;
  box-sizing: border-box !important;
}

/* Home pain-section uses a wider container than the default Elementor .container rule */
main.capital-page-content .pain-section.e-con > .container.e-con.container,
main.capital-page-content .elementor .pain-section.e-con > .container.e-con.container {
  max-width: 1200px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 48px !important;
  padding-right: 48px !important;
  box-sizing: border-box !important;
}

/* Page hero inner: grid on .e-con-inner */
main.capital-page-content .page-hero .page-hero-inner.container.e-con,
main.capital-page-content .page-hero .e-con.page-hero-inner.container {
  max-width: 1120px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 80px 48px !important;
  box-sizing: border-box !important;
}

/* What We Do–style hero (no full-bleed media): duplicate pages sometimes drop `.page-hero-inner`
 * so only `.container` remains — restore symmetric inner padding so copy/CTA align like the original. */
main.capital-page-content .page-hero:not(:has(.page-hero-media)) > .e-con.container {
  max-width: 1120px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 80px 48px !important;
  box-sizing: border-box !important;
}
main.capital-page-content .page-hero .page-hero-inner.container > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 80px !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
}
main.capital-page-content .page-hero .page-hero-inner.container .e-con-inner > .e-con {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

/* ── Reusable layout patterns (Elementor .e-con-inner) ── */
main.capital-page-content .process-section .process-layout.e-con,
main.capital-page-content .process-section .process-layout.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: 300px 1fr !important;
  gap: 80px !important;
  align-items: start !important;
  width: 100% !important;
}
main.capital-page-content .process-section .step-row.e-con,
main.capital-page-content .process-section .step-row.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  width: 100% !important;
  cursor: pointer !important;
}
main.capital-page-content .process-section .step-row.e-con > .e-con.step-card,
main.capital-page-content .process-section .step-row.e-con > .e-con-inner > .e-con.step-card {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
main.capital-page-content .process-section .step-spine.e-con,
main.capital-page-content .process-section .step-spine.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 52px !important;
  flex-shrink: 0 !important;
}
main.capital-page-content .process-section .step-spine.e-con .elementor-widget-text-editor,
main.capital-page-content .process-section .step-spine.e-con .elementor-widget-text-editor .elementor-widget-container,
main.capital-page-content .process-section .step-spine.e-con .elementor-widget-text-editor .elementor-text-editor {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  height: 100% !important;
  width: 100% !important;
  flex: 1 1 auto !important;
  margin: 0 !important;
  padding: 0 !important;
}
main.capital-page-content .process-section .step-spine.e-con .step-connector {
  flex: 1 1 auto !important;
  width: 1px !important;
  min-height: 20px !important;
  background: var(--sand-dark) !important;
  opacity: 1 !important;
}
main.capital-page-content .process-section .step-tag {
  margin: 0 0 4px !important;
}
main.capital-page-content .process-section .step-title {
  margin: 0 0 10px !important;
}
main.capital-page-content .process-section .step-lead {
  margin: 0 0 14px !important;
}
main.capital-page-content .process-section .step-bullets {
  list-style: none !important;
  margin: 0 !important;
  padding-left: 0 !important;
}
main.capital-page-content .process-section .step-bullets li {
  margin: 0 !important;
  padding: 0 !important;
}
main.capital-page-content .process-section .steps-rail.e-con,
main.capital-page-content .process-section .steps-rail.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
}

main.capital-page-content .capital-options-section .options-grid.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
}
/*
 * Option cards (Elementor): direct children are ::before + heading widget + text widget (no .e-con-inner).
 * Row flex would lay out three items in one row (icon | title | body) → squeeze/overlap.
 * Grid: icon in column 1; heading row 1 col 2, text editor row 2 col 2.
 */
main.capital-page-content .capital-options-section .elementor-element.option-card.e-con,
main.capital-page-content .capital-options-section .option-card.e-con {
  display: grid !important;
  grid-template-columns: 52px 1fr !important;
  grid-template-rows: auto auto !important;
  column-gap: 20px !important;
  row-gap: 10px !important;
  align-items: start !important;
}
main.capital-page-content .capital-options-section .option-card.e-con::before {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  align-self: start !important;
  margin-top: 2px !important;
}
main.capital-page-content .capital-options-section .option-card.e-con .elementor-widget-heading {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
main.capital-page-content .capital-options-section .option-card.e-con .elementor-widget-text-editor {
  grid-column: 2 !important;
  grid-row: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
main.capital-page-content .capital-options-section .option-card.e-con .elementor-heading-title {
  margin: 0 !important;
}
main.capital-page-content .capital-options-section .option-card.e-con p.option-desc {
  margin: 0 !important;
}
/* Kits that wrap both widgets in .e-con-inner: one grid cell, stack inside */
main.capital-page-content .capital-options-section .option-card.e-con > .e-con-inner {
  grid-column: 2 !important;
  grid-row: 1 / span 2 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

main.capital-page-content .compare-section .compare-grid.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
  width: 100% !important;
}

/* Why Us — bottom statement: centered copy + rounded forest band (Elementor overrides defaults) */
main.capital-page-content .compare-statement.e-con,
main.capital-page-content .compare-section .compare-statement.e-con {
  background-color: var(--forest) !important;
  background-image: none !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  padding: 40px 48px !important;
  text-align: center !important;
  max-width: 100% !important;
}
main.capital-page-content .compare-statement.e-con > .e-con-inner {
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  width: 100% !important;
}
main.capital-page-content .compare-statement .elementor-widget-text-editor,
main.capital-page-content .compare-statement .elementor-widget-text-editor .elementor-widget-container,
main.capital-page-content .compare-statement .elementor-text-editor {
  text-align: center !important;
}
main.capital-page-content .compare-statement .elementor-widget-text-editor p {
  text-align: center !important;
}
main.capital-page-content .family-section .family-grid.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 80px !important;
  align-items: center !important;
  width: 100% !important;
}
/* FAQ (base: global.css): Elementor adds row-gap + widget margins between items */
main.capital-page-content .faq-section .faq-list.e-con {
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
  --row-gap: 0 !important;
  --column-gap: 0 !important;
  max-width: 760px !important;
}
main.capital-page-content .faq-section .faq-list.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
}
main.capital-page-content .faq-section .faq-item.e-con {
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
  --row-gap: 0 !important;
  --column-gap: 0 !important;
  margin-block: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
}
main.capital-page-content .faq-section .faq-item.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
}
main.capital-page-content .faq-section .faq-item .elementor-widget {
  margin-block: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
main.capital-page-content .faq-section .faq-item .elementor-widget .elementor-widget-container {
  margin-block: 0 !important;
  padding-block: 0 !important;
}
/* Flex children default min-height:auto can block collapsing/expanding .faq-answer */
main.capital-page-content .faq-section .faq-item .elementor-widget-html,
main.capital-page-content .faq-section .faq-item .elementor-widget-text-editor {
  min-height: 0 !important;
}
main.capital-page-content .faq-section .faq-item .elementor-widget-text-editor .elementor-widget-container {
  overflow: visible !important;
}

/* Optional alias for forest CTA strip (use with cs-cta-stack-centered inside) */
main.capital-page-content .cs-cta-band.e-con,
main.capital-page-content .elementor-element.cs-cta-band {
  padding-top: 96px !important;
  padding-bottom: 96px !important;
  background-color: var(--forest) !important;
  background-image: none !important;
  position: relative;
  overflow: hidden;
}
main.capital-page-content .cs-cta-band.e-con::before,
main.capital-page-content .elementor-element.cs-cta-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(ellipse at 30% 50%, rgba(194, 217, 210, 0.1) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
main.capital-page-content .cs-cta-band.e-con > .e-con-inner,
main.capital-page-content .elementor-element.cs-cta-band > .e-con-inner {
  position: relative;
  z-index: 1;
}

@media (max-width: 900px) {
  main.capital-page-content .elementor .e-con.container:not(.page-hero-inner):not(.stats-grid--elementor),
  main.capital-page-content .elementor .elementor-element.e-con.container:not(.page-hero-inner):not(.stats-grid--elementor) {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  main.capital-page-content .page-hero .page-hero-inner.container.e-con,
  main.capital-page-content .page-hero .e-con.page-hero-inner.container {
    padding: 56px 24px !important;
  }
  main.capital-page-content .page-hero .page-hero-inner.container > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  main.capital-page-content .page-hero .hero-img-wrap .elementor-widget-container {
    height: 280px;
  }
  /* What We Do (page-hero without page-hero-media) must stack image <-> content */
  main.capital-page-content .page-hero:not(:has(.page-hero-media)) .page-hero-inner.container.e-con,
  main.capital-page-content .page-hero:not(:has(.page-hero-media)) .page-hero-inner.container,
  main.capital-page-content .page-hero:not(:has(.page-hero-media)) > .e-con.container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    padding: 56px 24px !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }
  /* Process mobile: only stack columns; keep rail/card styles from desktop */
  main.capital-page-content .process-section .process-layout.e-con,
  main.capital-page-content .process-section .process-layout.e-con > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  main.capital-page-content .process-section .process-sticky.e-con,
  main.capital-page-content .process-section .process-sticky.e-con > .e-con-inner {
    position: static !important;
    top: auto !important;
  }
  main.capital-page-content .compare-section .compare-grid.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  main.capital-page-content .family-section .family-grid.e-con,
  main.capital-page-content .family-section .family-grid.e-con > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  main.capital-page-content .family-section .family-image-wrap.e-con,
  main.capital-page-content .family-section .family-img-wrap.e-con {
    order: 2 !important; /* ensure image is below copy */
    margin-top: 0 !important;
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 3 / 4 !important;
    min-height: 0 !important;
    border-radius: var(--radius-lg) !important;
    overflow: hidden !important;
    clip-path: inset(0 round var(--radius-lg)) !important;
    -webkit-clip-path: inset(0 round var(--radius-lg)) !important;
    -webkit-mask-image: -webkit-radial-gradient(white, black) !important;
    -webkit-mask-repeat: no-repeat !important;
    -webkit-mask-size: 100% 100% !important;
    mask-image: radial-gradient(white, black) !important;
    mask-repeat: no-repeat !important;
    mask-size: 100% 100% !important;
    padding-bottom: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    position: relative !important;
  }
  main.capital-page-content .family-section .family-img-wrap.e-con > .e-con-inner {
    border-radius: var(--radius-lg) !important;
    overflow: hidden !important;
    clip-path: inset(0 round var(--radius-lg)) !important;
    -webkit-clip-path: inset(0 round var(--radius-lg)) !important;
    -webkit-mask-image: -webkit-radial-gradient(white, black) !important;
    -webkit-mask-repeat: no-repeat !important;
    -webkit-mask-size: 100% 100% !important;
    mask-image: radial-gradient(white, black) !important;
    mask-repeat: no-repeat !important;
    mask-size: 100% 100% !important;
  }
  main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img {
    min-height: 0 !important;
  }
  main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img,
  main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img .elementor-widget-container,
  main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img a,
  main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img img {
    border-radius: var(--radius-lg) !important;
    overflow: hidden !important;
    border-top-left-radius: var(--radius-lg) !important;
    border-top-right-radius: var(--radius-lg) !important;
    border-bottom-left-radius: var(--radius-lg) !important;
    border-bottom-right-radius: var(--radius-lg) !important;
  }
  main.capital-page-content .family-section .family-img-wrap.e-con .what-family-img img {
    clip-path: inset(0 round var(--radius-lg)) !important;
    -webkit-clip-path: inset(0 round var(--radius-lg)) !important;
    -webkit-mask-image: -webkit-radial-gradient(white, black) !important;
    -webkit-mask-repeat: no-repeat !important;
    -webkit-mask-size: 100% 100% !important;
    mask-image: radial-gradient(white, black) !important;
    mask-repeat: no-repeat !important;
    mask-size: 100% 100% !important;
    transform: translateZ(0) !important;
  }
  main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image,
  main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image .elementor-widget-container,
  main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image a,
  main.capital-page-content .family-section .family-img-wrap.e-con .elementor-widget-image img,
  main.capital-page-content .family-section .family-img-wrap.e-con img.what-family-img {
    border-radius: var(--radius-lg) !important;
    border-top-left-radius: var(--radius-lg) !important;
    border-top-right-radius: var(--radius-lg) !important;
    border-bottom-left-radius: var(--radius-lg) !important;
    border-bottom-right-radius: var(--radius-lg) !important;
    overflow: hidden !important;
  }
  main.capital-page-content .family-section .family-left.e-con,
  main.capital-page-content .family-section .family-body.e-con {
    order: 1 !important;
  }
  /* Match other sections: keep consistent pill -> heading spacing on mobile */
  main.capital-page-content .family-section .family-body p.pill {
    margin: 0 0 18px !important;
  }
  main.capital-page-content .capital-options-section .options-grid.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  main.capital-page-content .hero.e-con,
  main.capital-page-content .hero.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    /* No horizontal inset — lets photo column sit flush to viewport */
    padding-left: 0 !important;
    padding-right: 0 !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
  }
  main.capital-page-content .hero .hero-right.e-con {
    /* Full-bleed photo column only (not inner — avoids double viewport breakout) */
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
    box-sizing: border-box !important;
  }
  main.capital-page-content .hero .hero-right.e-con > .e-con-inner {
    min-height: 320px !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Match global.css mobile .hero-left — full-width hero was keeping desktop asymmetrical padding */
  main.capital-page-content .hero .hero-left.e-con,
  main.capital-page-content .hero .hero-left.e-con > .e-con-inner {
    padding: 60px 28px !important;
  }
  main.capital-page-content .hero .hero-actions.e-con,
  main.capital-page-content .hero .hero-actions.e-con > .e-con-inner {
    justify-content: center !important;
  }
  main.capital-page-content .hero .btn-primary.elementor-widget-button .elementor-button {
    padding: 5px 14px !important;
    font-size: 12px !important;
    letter-spacing: 0.03em !important;
    line-height: 1 !important;
  }
  main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-button {
    padding: 5px 14px !important;
    font-size: 12px !important;
    letter-spacing: 0.03em !important;
    line-height: 1 !important;
  }
  @media (max-width: 380px) {
    main.capital-page-content .hero .btn-primary.elementor-widget-button .elementor-button {
      font-size: 11px !important;
      padding: 4px 12px !important;
      letter-spacing: 0.025em !important;
    }
    main.capital-page-content .family-section .family-left .elementor-widget-button.btn-light .elementor-button {
      font-size: 11px !important;
      padding: 4px 12px !important;
      letter-spacing: 0.025em !important;
    }
  }
  main.capital-page-content .hero .hero-left .hero-trust {
    align-items: flex-start !important;
    text-align: left !important;
    width: 100% !important;
  }
  main.capital-page-content .hero .hero-left .trust-item {
    justify-content: flex-start !important;
    width: 100% !important;
  }
  main.capital-page-content .hero .hero-left .elementor-widget-text-editor:has(.hero-trust) .elementor-widget-container,
  main.capital-page-content .hero .hero-left .elementor-widget-text-editor:has(.hero-trust) .elementor-text-editor {
    text-align: left !important;
  }
  main.capital-page-content .stats-bar .elementor-element.stats-grid--elementor.e-con.e-flex,
  main.capital-page-content .stats-bar .stats-grid--elementor.e-con,
  main.capital-page-content .stats-bar .stats-grid--elementor.e-con > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  main.capital-page-content .photo-strip-grid.e-con,
  main.capital-page-content .photo-strip-grid.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
    height: auto !important;
  }
  main.capital-page-content .photo-strip-cell.e-con,
  main.capital-page-content .photo-strip-cell.e-con > .e-con-inner {
    min-height: 240px !important;
  }
  main.capital-page-content .callout-band .callout-items.e-con,
  main.capital-page-content .callout-band .callout-items.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  main.capital-page-content .photo-banner .photo-banner-inner.e-con,
  main.capital-page-content .photo-banner .photo-banner-inner.e-con > .e-con-inner {
    padding: 0 28px !important;
    max-width: none !important;
  }
  main.capital-page-content .cta-section .cta-inner.e-con,
  main.capital-page-content .cta-section .cta-inner.e-con > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  main.capital-page-content .cta-section .cta-inner.e-con {
    padding: 48px 36px !important;
  }
}


/* Hide element by data-id */
div[data-id="73ba52f8"] {
  display: none !important;
}