.elementor-kit-15{--e-global-color-primary:#4A3F35;--e-global-color-secondary:#7D6F61;--e-global-color-text:#2E2A26;--e-global-color-accent:#A67B5B;--e-global-color-background:#F5F3EF;--e-global-color-backgroundAccent:#E0D9D3;--e-global-color-transparent:#00000000;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-size:24px;--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-size:20px;--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Figtree";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Figtree";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-line-height:1.5em;--e-global-typography-heading_xl-font-family:"Montserrat";--e-global-typography-heading_xl-font-size:56px;--e-global-typography-heading_xl-font-weight:600;--e-global-typography-heading_xl-line-height:1.2em;--e-global-typography-heading_l-font-family:"Montserrat";--e-global-typography-heading_l-font-size:48px;--e-global-typography-heading_l-font-weight:600;--e-global-typography-heading_l-line-height:1.2em;--e-global-typography-heading_m-font-family:"Montserrat";--e-global-typography-heading_m-font-size:40px;--e-global-typography-heading_m-font-weight:600;--e-global-typography-heading_m-line-height:1.2em;--e-global-typography-heading_s-font-family:"Montserrat";--e-global-typography-heading_s-font-size:18px;--e-global-typography-heading_s-font-weight:500;--e-global-typography-body_s-font-family:"Figtree";--e-global-typography-body_s-font-size:14px;--e-global-typography-body_s-font-weight:400;--e-global-typography-body_s-line-height:1.5em;background-color:var( --e-global-color-background );}.elementor-kit-15 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-15{--e-global-typography-primary-font-size:22px;--e-global-typography-secondary-font-size:18px;--e-global-typography-heading_xl-font-size:48px;--e-global-typography-heading_l-font-size:40px;--e-global-typography-heading_m-font-size:32px;--e-global-typography-heading_s-font-size:18px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-15{--e-global-typography-primary-font-size:18px;--e-global-typography-secondary-font-size:16px;--e-global-typography-heading_xl-font-size:40px;--e-global-typography-heading_l-font-size:32px;--e-global-typography-heading_m-font-size:32px;--e-global-typography-heading_s-font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Site-wide 8px border-radius — applied 2026-05-16 */
.elementor-button,
.elementor-cta__button,
.elementor-field,
.elementor-field-textual,
input[type="text"], input[type="email"], input[type="tel"],
input[type="url"], input[type="search"], textarea, select,
.elementor-widget-image img,
.elementor-widget-image-gallery img,
.e-gallery-image,
.elementor-widget-image-carousel img,
.swiper-slide img,
.elementor-image-box-img img,
.ehp-zigzag__image-container,
.ehp-zigzag__image-container img,
.elementor-widget-google_maps iframe,
.elementor-widget-html iframe,
.elementor-widget-call-to-action__wrap,
#mb-centers-map,
.elementor-cta {
  border-radius: 8px !important;
}
.elementor-button:hover, .elementor-cta__button:hover {
  border-radius: 8px !important;
}

/* === Mobile responsiveness fixes (≤ 1024px) — added 2026-05-16 === */
@media (max-width: 1024px) {
  /* Safety net: no element should cause horizontal scroll */
  html, body { overflow-x: hidden !important; max-width: 100% !important; }
  body * { max-width: 100% !important; }
  /* Images and embeds always fit */
  img, video, iframe, .e-gallery-image { max-width: 100% !important; height: auto !important; }
  /* Long contact lines (phone, email, address) wrap instead of overflowing */
  .elementor-icon-list-text { word-break: break-word !important; overflow-wrap: anywhere !important; }
  /* Counters: keep suffix on same line as number, but allow shrink */
  .elementor-counter, .elementor-counter-number-wrapper { flex-wrap: wrap !important; justify-content: center !important; }
  .elementor-counter-number-suffix { word-break: break-word !important; }
  /* Carousels/sliders: contain to viewport */
  .elementor-main-swiper, .swiper-container, .swiper, .swiper-wrapper { max-width: 100vw !important; }
  /* Forms: full-width inputs */
  .elementor-field, .elementor-field-textual { width: 100% !important; }
  /* Buttons: comfortable touch target */
  .elementor-button { min-height: 44px !important; }
}

/* === Tighter overrides for phones (≤ 600px) === */
@media (max-width: 600px) {
  /* Heading sizes scale down so they don't wrap awkwardly */
  h1 { font-size: clamp(28px, 8vw, 40px) !important; line-height: 1.15 !important; }
  h2 { font-size: clamp(22px, 6.5vw, 32px) !important; line-height: 1.2 !important; }
  /* Hero subhead breathing room */
  .elementor-widget-heading + .elementor-widget-text-editor { margin-top: 12px !important; }
  /* CTA buttons take full content width when stacked */
  .elementor-button { width: 100% !important; max-width: 280px !important; }
  /* Map iframes get a sensible height on tiny screens */
  .elementor-widget-google_maps iframe, #mb-centers-map { height: 320px !important; }
  /* Zigzag image-graphic-container — make sure both columns stack and image doesn't dominate */
  .ehp-zigzag__image-container img { width: 100% !important; height: auto !important; aspect-ratio: 16/10 !important; object-fit: cover !important; }
  /* Section padding sanity */
  .e-con, .elementor-section { padding-left: 16px !important; padding-right: 16px !important; }
}

/* === MB center cards: uniform image crop — 2026-05-16 === */
.mb-center-card-image img,
.mb-center-card-image .elementor-image img {
  object-fit: cover !important;
  width: 100% !important;
  height: 280px !important;
  border-radius: 8px !important;
}
@media (max-width: 1024px) {
  .mb-center-card-image img { height: 240px !important; }
}
@media (max-width: 600px) {
  .mb-center-card-image img { height: 200px !important; }
}
/* === /MB center cards === */

/* === MB mobile guardrails — Sprint 3a === */
@media (max-width: 767px) {
  /* Home — "Impact in Numbers" (section f5b6945): force 1-col on phones.
     The heading child (fd708d1) has grid-column: span 4 on desktop which
     forces the grid into 4 implicit columns; override its span on mobile so
     the section can actually collapse. */
  .elementor-element-f5b6945.e-grid,
  .elementor-element-f5b6945.e-grid > .e-con-inner,
  [data-id="f5b6945"],
  [data-id="f5b6945"] > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  [data-id="f5b6945"] > .e-con-inner > * {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
  }
  /* Home — "Four Centers" (section 6fc13b1): belt-and-braces 1-col */
  .elementor-element-6fc13b1.e-grid,
  .elementor-element-6fc13b1.e-grid > .e-con-inner,
  [data-id="6fc13b1"],
  [data-id="6fc13b1"] > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  [data-id="6fc13b1"] > .e-con-inner > * {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
  }
}
/* === /MB mobile guardrails === */

/* === MB Sprint 3b mobile polish === */
/* --- "Your Support Has a Name and a Face" CTA: stack on mobile --- */
@media (max-width: 767px) {
  [data-id="29de699"] .elementor-cta,
  [data-id="29de699"] .elementor-call-to-action {
    flex-direction: column !important;
  }
  [data-id="29de699"] .elementor-cta__content,
  [data-id="29de699"] .elementor-cta__bg-wrapper,
  [data-id="29de699"] .elementor-call-to-action__content,
  [data-id="29de699"] .elementor-call-to-action__bg-wrapper {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
  }
  [data-id="29de699"] .elementor-cta__bg-wrapper {
    min-height: 240px !important;
  }
}
/* === /MB Sprint 3b mobile polish === */

/* === MB Sprint 3c mobile polish === */
@media (max-width: 767px) {
  /* --- 1 · Impact in Numbers — center card content on mobile --- */
  [data-id="f5b6945"] > .e-con-inner > .e-con,
  [data-id="f5b6945"] > .e-con-inner > .elementor-element {
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }
  [data-id="f5b6945"] .elementor-counter-title,
  [data-id="f5b6945"] .elementor-counter-number-wrapper,
  [data-id="f5b6945"] .elementor-widget-text-editor {
    text-align: center !important;
    justify-content: center !important;
  }

  /* --- 4 · Polyclinic body text — full width on mobile --- */
  [data-id="6211e43"] .e-con-inner,
  [data-id="9e609ec"],
  [data-id="9e609ec"] > * {
    width: 100% !important;
    max-width: 100% !important;
  }
  [data-id="9e609ec"] .elementor-widget-text-editor,
  [data-id="9e609ec"] .elementor-widget-heading {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* --- 3 · Compassion images — tight stack on mobile --- */
  [data-id="39dd798"] .elementor-widget-image,
  [data-id="39dd798"] .elementor-widget-image img {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  [data-id="39dd798"] > .elementor-element + .elementor-element {
    margin-top: 8px !important;
  }

  /* --- 6 · Your Support CTA — reduce internal padding so text is wider --- */
  [data-id="29de699"] .elementor-cta,
  [data-id="29de699"] .elementor-cta__content,
  [data-id="29de699"] .elementor-call-to-action__content {
    padding: 16px !important;
  }
  [data-id="29de699"] .elementor-cta__bg-wrapper {
    padding: 0 !important;
  }
  [data-id="29de699"] .elementor-cta__content > *,
  [data-id="29de699"] .elementor-call-to-action__content > * {
    max-width: 100% !important;
  }
}



/* === MB Sprint 3h sponsorship + tap-twice host === */
/* Sponsorship zigzag on Support Our Work — give the alternate-bg cards
   real padding + border-radius so they read as proper cards. Apply to all
   items in this specific widget (efd33ed) so the spacing stays uniform. */
.elementor-element-efd33ed .ehp-zigzag__item-wrapper {
  border-radius: 10px;
  overflow: hidden;
}
.elementor-element-efd33ed .ehp-zigzag__item-wrapper:nth-child(2n) {
  padding: 28px 32px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
@media (max-width: 767px) {
  .elementor-element-efd33ed .ehp-zigzag__item-wrapper:nth-child(2n) {
    padding: 20px 18px !important;
  }
}

/* Hide the host widget that carries the tap-twice JS — it has no visible
   content but Elementor still wraps it in a div with default spacing. */
.mb-tap-twice-host { display: none !important; }
/* === /MB Sprint 3h sponsorship + tap-twice host === *//* End custom CSS */