.elementor-28196 .elementor-element.elementor-element-176b760{--display:flex;}.elementor-widget-gallery .elementor-gallery-item__title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-gallery .elementor-gallery-item__description{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-gallery{--galleries-title-color-normal:var( --e-global-color-primary );--galleries-title-color-hover:var( --e-global-color-secondary );--galleries-pointer-bg-color-hover:var( --e-global-color-accent );--gallery-title-color-active:var( --e-global-color-secondary );--galleries-pointer-bg-color-active:var( --e-global-color-accent );}.elementor-widget-gallery .elementor-gallery-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-28196 .elementor-element.elementor-element-c108888 .e-gallery-item:hover .elementor-gallery-item__overlay, .elementor-28196 .elementor-element.elementor-element-c108888 .e-gallery-item:focus .elementor-gallery-item__overlay{background-color:rgba(0,0,0,0.5);}.elementor-28196 .elementor-element.elementor-element-c108888{--image-transition-duration:800ms;--overlay-transition-duration:800ms;--content-text-align:center;--content-padding:20px;--content-transition-duration:800ms;--content-transition-delay:800ms;}.elementor-28196 .elementor-element.elementor-element-f36d2fa{--display:flex;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}/* Start custom CSS *//* ==== DESKTOP (unchanged from your good state) ==== */
@media (min-width: 992px) {
  :root { --bcm-title-bottom: 2.5vw; }

  body:not(.home) .elementor .elementor-top-section:first-of-type {
    background-size: cover !important;
    background-position: center bottom !important;
    background-repeat: no-repeat !important;
    min-height: clamp(380px, 38vw, 760px) !important;
    position: relative !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  body:not(.home) .elementor .elementor-column:has(h1.elementor-heading-title) > .elementor-widget-wrap {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    background-size: cover !important;
    background-position: center bottom !important;
    background-repeat: no-repeat !important;
    min-height: clamp(380px, 38vw, 760px) !important;
    position: relative !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  body:not(.home) .elementor .elementor-widget-heading {
    position: absolute !important;
    left: 50% !important;
    bottom: var(--bcm-title-bottom) !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
    z-index: 2;
    width: auto !important;
  }

  body:not(.home) h1.elementor-heading-title {
    margin: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    width: auto !important;
    max-width: none !important;
  }
}

/* ==== MOBILE & TABLET — no side crop, full-width title rail, no “jump below” ==== */
@media (max-width: 991.98px) {
  :root { --bcm-title-bottom-mobile: 3.5vw; }

  /* SECTION background: show entire image */
  body:not(.home) .elementor .elementor-top-section:first-of-type {
    background-size: contain !important;           /* no left/right crop */
    background-position: top center !important;
    background-repeat: no-repeat !important;
    min-height: clamp(260px, 62vw, 520px) !important; /* reserve enough height */
    position: relative !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  /* COLUMN background: no 100vw on mobile; same containment */
  body:not(.home) .elementor .elementor-column:has(h1.elementor-heading-title) > .elementor-widget-wrap {
    width: 100% !important;   /* avoid horizontal scroll on phones */
    margin-left: 0 !important;
    margin-right: 0 !important;

    background-size: contain !important;
    background-position: top center !important;
    background-repeat: no-repeat !important;
    min-height: clamp(260px, 62vw, 520px) !important;
    position: relative !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  /* Headline widget: make a full-width bottom rail so it can't “jump below”
     and never gets squished */
  body:not(.home) .elementor .elementor-widget-heading {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: var(--bcm-title-bottom-mobile) !important;
    transform: none !important;

    width: 100% !important;            /* full width for centering/wrapping */
    margin: 0 !important;
    z-index: 2;

    display: flex !important;
    justify-content: center !important;/* center the box horizontally */
    align-items: flex-end !important;
    pointer-events: auto;
  }

  /* Headline text: allow wrap, comfy width, not squished */
  body:not(.home) h1.elementor-heading-title {
    margin: 0 !important;
    text-align: center !important;
    white-space: normal !important;     /* allow wrapping on small screens */
    width: auto !important;
    max-width: 92vw !important;         /* wide, but with safe gutters */
    padding: 0.5em 1em;                 /* keep if you use a box, else remove */
    box-sizing: border-box;
  }
}/* End custom CSS */