/* BFM Fundações — responsive fixes layered over the Elementor export.
   Elementor's per-page rules are scoped as `.elementor-1491 .elementor-element.elementor-element-X`,
   which outranks anything we can write here, hence the !important flags. */

/* Footer address: Elementor set line-height 0.6em, so wrapped lines overlapped. */
.elementor-element.elementor-element-468c685,
.elementor-element.elementor-element-7d7a48d2 { line-height: 1.5 !important; }
.elementor-element.elementor-element-468c685 p,
.elementor-element.elementor-element-7d7a48d2 p { margin-bottom: .25em; }

/* Footer logo never wider than its column. */
.elementor-element.elementor-element-c763d75 img,
.elementor-element.elementor-element-2fbdf94b img { max-width: 100% !important; height: auto !important; }

/* Footer quick links: comfortable touch targets. */
.elementor-widget-icon-list .elementor-icon-list-item > a { padding-block: 3px; }

/* Header logo keeps its size instead of stretching to the column. */
.elementor-element.elementor-element-6ffecf6 img { width: 200px !important; max-width: 100% !important; height: auto !important; }

/* Shared header on the privacy page sits above the page content. */
.bfm-shared-header { position: relative; z-index: 50; }

/* Burger dropdown (tablet + mobile), in brand colours. */
.elementor-element.elementor-element-7b01e46 .elementor-menu-toggle { cursor: pointer; }
.elementor-element.elementor-element-7b01e46 .elementor-nav-menu--dropdown {
  position: absolute !important; top: calc(100% + 12px) !important; right: 0 !important; left: auto !important;
  width: min(280px, calc(100vw - 32px)) !important; z-index: 9999;
  background: #00284B !important; border-top: 3px solid #F3631F; border-radius: 0 0 6px 6px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
  max-height: 0 !important; overflow: hidden; transform: scaleY(0) !important; transform-origin: top;
  transition: transform .2s ease, max-height .2s ease;
}
.elementor-element.elementor-element-7b01e46.bfm-menu-open .elementor-nav-menu--dropdown {
  max-height: 100vh !important; transform: scaleY(1) !important;
}
.elementor-element.elementor-element-7b01e46 .elementor-nav-menu--dropdown .elementor-item {
  line-height: 1.4 !important; color: #FFFFFF !important; padding: 14px 20px !important; font-size: 16px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.elementor-element.elementor-element-7b01e46 .elementor-nav-menu--dropdown .elementor-item:hover,
.elementor-element.elementor-element-7b01e46 .elementor-nav-menu--dropdown .elementor-item:focus {
  color: #F3631F !important; background: rgba(255, 255, 255, .04) !important;
}
.elementor-element.elementor-element-7b01e46 .elementor-widget-container { position: relative; }

/* Tablet + mobile header: logo left, burger right, on one row. */
@media (max-width: 1024px) {
  .elementor-element.elementor-element-7b01e46 {
    width: auto !important; max-width: 100% !important; --container-widget-width: auto !important; margin-left: auto !important;
  }
  .elementor-element.elementor-element-7b01e46 .elementor-menu-toggle { margin: 0 0 0 auto !important; }
  .elementor-element.elementor-element-fbc35ce > .elementor-widget-wrap { justify-content: flex-end !important; }
  .elementor-element.elementor-element-9b692f3 > .elementor-container { padding-inline: 16px; }

  /* Hero copy had no side padding between 768 and 1024px. */
  .elementor-element.elementor-element-47e6cac > .elementor-container { padding-inline: 24px; }

  /* Services: 4 squeezed columns -> 2x2 grid. */
  .elementor-element.elementor-element-10db7cb > .elementor-container { flex-wrap: wrap !important; }
  .elementor-element.elementor-element-10db7cb > .elementor-container > .elementor-column { width: 50% !important; }
}

@media (max-width: 767px) {
  /* The menu column was hidden on phones, leaving no navigation at all. */
  .elementor .elementor-element.elementor-element-fbc35ce.elementor-hidden-mobile { display: flex !important; }
  .elementor-element.elementor-element-9b692f3 > .elementor-container { flex-wrap: nowrap !important; align-items: center; }
  .elementor-element.elementor-element-9b692f3 > .elementor-container > .elementor-column { width: auto !important; flex: 1 1 auto; }
  .elementor-element.elementor-element-1361b64 > .elementor-widget-wrap { justify-content: flex-start !important; }
  .elementor-element.elementor-element-6ffecf6 { text-align: start !important; }
  .elementor-element.elementor-element-6ffecf6 img { width: 150px !important; }
  .elementor-element.elementor-element-47e6cac > .elementor-container { padding-inline: 0; }

  /* Services stack one per row on phones. */
  .elementor-element.elementor-element-10db7cb > .elementor-container > .elementor-column { width: 100% !important; }
}

/* WhatsApp chat box (hidden until opened) must not widen the page on small phones. */
.wa__popup_chat_box { max-width: calc(100vw - 24px) !important; }
@media (max-width: 400px) {
  .wa__btn_popup { right: 12px !important; }
  .wa__popup_chat_box { right: 12px !important; left: auto !important; }
}

/* Client-logo carousel: clip off-screen slides so they don't widen the page on phones. */
.elementor-widget-image-carousel .elementor-widget-container,
.elementor-widget-image-carousel .elementor-image-carousel-wrapper { overflow: hidden; }

/* "NOSSA METODOLOGIA" at 50px: the single word overflowed 320–360px phones. */
@media (max-width: 767px) {
  .elementor-element.elementor-element-5ac0d4c .elementor-heading-title { font-size: min(50px, 11vw) !important; }
}

/* Client logos: the Elementor carousel relied on -650px slide spacing and overlapped
   below desktop widths. Replaced by a CSS marquee (list duplicated for a seamless loop). */
.bfm-marquee { overflow: hidden; width: 100%; padding: 10px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.bfm-marquee__track { display: flex; align-items: center; gap: 36px; width: max-content;
  margin: 0; padding: 0; list-style: none; animation: bfm-marquee 70s linear infinite; }
.bfm-marquee__track li { flex: 0 0 auto; margin: 0; }
.bfm-marquee__track img { display: block; width: 110px; height: auto; }
.bfm-marquee:hover .bfm-marquee__track { animation-play-state: paused; }
@keyframes bfm-marquee { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 18px)); } }
@media (max-width: 767px) {
  .bfm-marquee__track { gap: 24px; animation-duration: 55s; }
  .bfm-marquee__track img { width: 84px; }
  @keyframes bfm-marquee { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 12px)); } }
}
@media (prefers-reduced-motion: reduce) {
  .bfm-marquee { -webkit-mask-image: none; mask-image: none; }
  .bfm-marquee__track { animation: none; flex-wrap: wrap; justify-content: center; width: 100%; }
  .bfm-marquee__track li[aria-hidden="true"] { display: none; }
}

/* Burger icon was dark grey on the navy header. */
.elementor-element.elementor-element-7b01e46 .elementor-menu-toggle { color: #FFFFFF !important; background: transparent !important; font-size: 26px !important; padding: 6px !important; }
.elementor-element.elementor-element-7b01e46 .elementor-menu-toggle svg { fill: #FFFFFF !important; }
