/*
 * CEIBAG Responsive Guard 1.4.4
 * Footer repair for Elementor-built CEIBAG footers across mobile, tablet, 1366px laptops and full HD.
 * Loaded after all earlier layers. It does not modify the logged-in header behavior.
 */

/* General footer discipline: prevent copied Elementor footer sections from exceeding viewport. */
:where(.ceibag-rg-footerish,
       .elementor-location-footer,
       footer,
       .site-footer) {
  box-sizing: border-box !important;
  max-width: 100vw !important;
  overflow-x: clip !important;
}

:where(.ceibag-rg-footerish,
       .elementor-location-footer,
       footer,
       .site-footer) :where(.e-con, .e-con-inner, .elementor-element, .elementor-widget, .elementor-widget-container) {
  min-width: 0 !important;
}

/* Footer copy/contact should never split one character per line. */
:where(.ceibag-rg-footerish,
       .elementor-location-footer,
       footer,
       .site-footer) :where(.elementor-heading-title, h1, h2, h3, h4, p, a, span, .elementor-button-text) {
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  hyphens: none !important;
  max-width: 100% !important;
}

/* The exported Home footer IDs from ceibagTodo.zip. */
.elementor-element-464eda49,
[data-id="464eda49"],
.ceibag-rg-home-footer {
  width: 100% !important;
  max-width: 100vw !important;
  min-width: 0 !important;
  min-height: auto !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.elementor-element-464eda49 :where(.elementor-element-100ea825, [data-id="100ea825"], .elementor-element-30d98672, [data-id="30d98672"], .elementor-element-62178abf, [data-id="62178abf"], .elementor-element-21ec3105, [data-id="21ec3105"]),
.ceibag-rg-home-footer :where([data-id="100ea825"], [data-id="30d98672"], [data-id="62178abf"], [data-id="21ec3105"]) {
  max-width: 100% !important;
  min-width: 0 !important;
  position: relative !important;
  inset: auto !important;
  transform: none !important;
  translate: none !important;
}

/* Stop footer buttons/contact links from using desktop offsets. */
.elementor-element-464eda49 :where(.elementor-element-4bf832fc, .elementor-element-59c8d55a, .elementor-element-880e553, .elementor-element-4d496be4, [data-id="4bf832fc"], [data-id="59c8d55a"], [data-id="880e553"], [data-id="4d496be4"]),
.ceibag-rg-footerish :where(a[href^="mailto:"], a[href^="tel:"]) {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  translate: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  z-index: 2 !important;
}

.elementor-element-464eda49 :where(.elementor-element-4bf832fc, .elementor-element-59c8d55a, .elementor-element-880e553, .elementor-element-4d496be4, [data-id="4bf832fc"], [data-id="59c8d55a"], [data-id="880e553"], [data-id="4d496be4"]) :where(a, button, .elementor-button),
.ceibag-rg-footerish :where(a[href^="mailto:"], a[href^="tel:"]) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .55em !important;
  max-width: 100% !important;
  width: auto !important;
  white-space: normal !important;
  text-align: center !important;
  line-height: 1.25 !important;
}

/* Copyright must be part of the footer flow, never floating across the page. */
.elementor-element-7f2e0dfd,
[data-id="7f2e0dfd"] {
  width: 100% !important;
  max-width: 100vw !important;
  min-height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.elementor-element-3b693f4c,
[data-id="3b693f4c"] {
  position: relative !important;
  inset: auto !important;
  transform: none !important;
  translate: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  text-align: center !important;
  z-index: 2 !important;
}
.elementor-element-3b693f4c .elementor-heading-title,
[data-id="3b693f4c"] .elementor-heading-title {
  display: block !important;
  width: 100% !important;
  font-size: clamp(15px, 1.9vw, 22px) !important;
  line-height: 1.22 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-align: center !important;
}

/* Footer social icons should be centered rows, not scattered vertically. */
:where(.ceibag-rg-footerish,
       .elementor-location-footer,
       footer,
       .site-footer) :where(.elementor-widget-social-icons, [data-widget_type="social-icons.default"]) {
  position: relative !important;
  inset: auto !important;
  transform: none !important;
  translate: none !important;
  width: 100% !important;
  max-width: 520px !important;
  margin: 22px auto !important;
  z-index: 2 !important;
}
:where(.ceibag-rg-footerish,
       .elementor-location-footer,
       footer,
       .site-footer) :where(.elementor-social-icons-wrapper, .elementor-grid) {
  display: flex !important;
  flex-flow: row wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  width: 100% !important;
  max-width: 520px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
:where(.ceibag-rg-footerish,
       .elementor-location-footer,
       footer,
       .site-footer) .elementor-social-icon {
  flex: 0 0 auto !important;
  transform: none !important;
  margin: 0 !important;
}

/* Laptop / HD: keep footer as clean columns, not a copied oversized block. */
@media (min-width: 768px) and (max-width: 1366px) {
  .elementor-element-464eda49,
  [data-id="464eda49"],
  .ceibag-rg-home-footer {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(28px, 4vw, 64px) !important;
    padding: clamp(44px, 6vw, 88px) clamp(28px, 5vw, 72px) !important;
    min-height: auto !important;
    margin: 0 !important;
  }

  .elementor-element-464eda49 :where([data-id="100ea825"], .elementor-element-100ea825),
  .elementor-element-464eda49 :where([data-id="30d98672"], .elementor-element-30d98672),
  .ceibag-rg-home-footer :where([data-id="100ea825"], [data-id="30d98672"]) {
    width: min(50%, 560px) !important;
    max-width: 560px !important;
    flex: 0 1 560px !important;
    min-height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .elementor-element-464eda49 :where([data-id="62178abf"], .elementor-element-62178abf) {
    width: 100% !important;
    padding: clamp(24px, 3vw, 42px) !important;
  }

  .elementor-element-464eda49 :where([data-id="21ec3105"], .elementor-element-21ec3105) {
    width: 100% !important;
    max-width: 460px !important;
  }

  .elementor-element-464eda49 :where([data-id="22e1f0cd"], .elementor-element-22e1f0cd) .elementor-heading-title {
    font-size: clamp(30px, 3.5vw, 48px) !important;
    line-height: 1.08 !important;
  }

  .elementor-element-464eda49 :where([data-id="4d5babc7"], .elementor-element-4d5babc7) img {
    max-width: min(100%, 330px) !important;
    height: auto !important;
  }
}

/* Full HD and larger: only normalize overflow/copyright, preserve the brand layout. */
@media (min-width: 1367px) {
  .elementor-element-464eda49,
  [data-id="464eda49"],
  .ceibag-rg-home-footer {
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .elementor-element-464eda49 :where([data-id="21ec3105"], .elementor-element-21ec3105),
  .elementor-element-464eda49 :where([data-id="62178abf"], .elementor-element-62178abf) {
    max-width: 100% !important;
  }
}

/* Mobile: make every footer a compact stacked card, centered and readable. */
@media (max-width: 767px) {
  :where(.ceibag-rg-footerish,
         .elementor-location-footer,
         footer,
         .site-footer) {
    width: 100% !important;
    max-width: 100vw !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .elementor-element-464eda49,
  [data-id="464eda49"],
  .ceibag-rg-home-footer {
    display: flex !important;
    flex-flow: column nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-height: auto !important;
    margin: 0 !important;
    padding: 44px 22px 30px !important;
    border-radius: 0 !important;
  }

  .elementor-element-464eda49 :where([data-id="100ea825"], .elementor-element-100ea825),
  .elementor-element-464eda49 :where([data-id="30d98672"], .elementor-element-30d98672),
  .elementor-element-464eda49 :where([data-id="62178abf"], .elementor-element-62178abf),
  .elementor-element-464eda49 :where([data-id="21ec3105"], .elementor-element-21ec3105),
  .ceibag-rg-home-footer :where([data-id="100ea825"], [data-id="30d98672"], [data-id="62178abf"], [data-id="21ec3105"]) {
    width: 100% !important;
    max-width: 430px !important;
    min-height: 0 !important;
    height: auto !important;
    flex: 0 1 auto !important;
    padding: 0 !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-flow: column nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: center !important;
  }

  .elementor-element-464eda49 :where([data-id="62178abf"], .elementor-element-62178abf) {
    padding: 0 !important;
  }

  .elementor-element-464eda49 :where([data-id="4d5babc7"], .elementor-element-4d5babc7) {
    width: 100% !important;
    max-width: 260px !important;
    margin: 0 auto 18px !important;
    text-align: center !important;
  }
  .elementor-element-464eda49 :where([data-id="4d5babc7"], .elementor-element-4d5babc7) img {
    width: min(72vw, 250px) !important;
    max-width: 250px !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto !important;
  }

  .elementor-element-464eda49 :where([data-id="22e1f0cd"], .elementor-element-22e1f0cd) {
    width: 100% !important;
    max-width: 360px !important;
    margin: 0 auto 18px !important;
    text-align: center !important;
  }
  .elementor-element-464eda49 :where([data-id="22e1f0cd"], .elementor-element-22e1f0cd) .elementor-heading-title {
    font-size: clamp(28px, 8vw, 38px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.01em !important;
    text-align: center !important;
  }

  .elementor-element-464eda49 :where([data-id="4bf832fc"], .elementor-element-4bf832fc, [data-id="59c8d55a"], .elementor-element-59c8d55a, [data-id="880e553"], .elementor-element-880e553, [data-id="4d496be4"], .elementor-element-4d496be4) {
    width: 100% !important;
    max-width: 360px !important;
    margin: 10px auto !important;
    text-align: center !important;
  }

  .elementor-element-464eda49 :where([data-id="4bf832fc"], .elementor-element-4bf832fc, [data-id="59c8d55a"], .elementor-element-59c8d55a, [data-id="880e553"], .elementor-element-880e553, [data-id="4d496be4"], .elementor-element-4d496be4) :where(a, button, .elementor-button) {
    width: 100% !important;
    max-width: 360px !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    border-radius: 14px !important;
    font-size: clamp(16px, 4.6vw, 20px) !important;
    line-height: 1.18 !important;
  }

  .elementor-element-7f2e0dfd,
  [data-id="7f2e0dfd"] {
    background: #050705 !important;
    padding: 16px 20px 26px !important;
  }
  .elementor-element-3b693f4c,
  [data-id="3b693f4c"] {
    padding: 0 !important;
  }

  /* Generic mobile footer blocks detected by JS. */
  .ceibag-rg-footerish {
    display: flex !important;
    flex-flow: column nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 18px !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  .ceibag-rg-footerish :where(.e-con, .elementor-element) {
    max-width: 100% !important;
  }

  .ceibag-rg-footerish :where(.elementor-widget-heading, .elementor-widget-text-editor, .elementor-widget-button, .elementor-widget-icon-list) {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    translate: none !important;
    width: 100% !important;
    max-width: 430px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .ceibag-rg-footerish :where(.elementor-widget-image) {
    max-width: min(100%, 280px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .ceibag-rg-footerish :where(.elementor-widget-image img) {
    max-width: min(100%, 260px) !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto !important;
  }
}
