/* DigitalFLO v17.2.5 — Astra mobile off-canvas refinement only.
 * Desktop/tablet-desktop Astra header remains untouched.
 */
@media (max-width:921px){
  :root{--dflo-mobile-drawer:360px;--dflo-mobile-edge:44px}

  /* Keep page behind the drawer stationary; scrolling belongs to the drawer. */
  html.dflo-mobile-nav-open,
  body.dflo-mobile-nav-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }

  /* Astra overlay: full viewport backdrop, but NOT a full-screen menu panel. */
  body.dflo-astra-premium #ast-mobile-popup.ast-mobile-popup-drawer,
  body.dflo-astra-premium .ast-mobile-popup-drawer{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100dvh!important;
    min-height:100vh!important;
    background:rgba(3,19,11,.34)!important;
    backdrop-filter:blur(2.5px);
    -webkit-backdrop-filter:blur(2.5px);
    overflow:hidden!important;
    overscroll-behavior:none!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    z-index:100050!important;
    transition:opacity .20s ease,visibility 0s linear .20s!important;
  }
  body.dflo-astra-premium #ast-mobile-popup.show,
  body.dflo-astra-premium #ast-mobile-popup.active,
  body.dflo-astra-premium .ast-mobile-popup-drawer.show,
  body.dflo-astra-premium .ast-mobile-popup-drawer.active,
  body.ast-popup-nav-open.dflo-astra-premium .ast-mobile-popup-drawer{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:opacity .20s ease!important;
  }
  /* Astra's own overlay div sits inside the drawer root and would otherwise
     intercept taps/touch before they reach our backdrop or content. Since the
     drawer root itself already paints the dimmed backdrop, neutralize Astra's
     duplicate overlay so it never blocks a tap-to-close or a scroll gesture. */
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-overlay{
    background:transparent!important;pointer-events:none!important;touch-action:auto!important;
  }

  /* True right-side flyout. Always leave a visible backdrop strip.
     Repeated with .ast-mobile-popup-full-width / .ast-mobile-popup-left explicitly:
     if the site's Astra "Mobile Header > Mobile Menu Style" is set to Full Screen
     (or Left) instead of Off Canvas Right, Astra adds one of those classes instead
     of ast-mobile-popup-right, and this override must still win over it. */
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer.ast-mobile-popup-full-width .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer.ast-mobile-popup-left .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer.ast-mobile-popup-right .ast-mobile-popup-inner{
    position:absolute!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:auto!important;
    width:min(86vw,var(--dflo-mobile-drawer))!important;
    max-width:calc(100vw - var(--dflo-mobile-edge))!important;
    height:100dvh!important;
    min-height:100vh!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    background:#fff!important;
    border-left:1px solid #e7eee9!important;
    border-radius:20px 0 0 20px!important;
    box-shadow:-18px 0 56px rgba(4,35,21,.18)!important;
    overflow:hidden!important;
    opacity:1!important;
    transform:translate3d(102%,0,0)!important;
    transition:transform .26s cubic-bezier(.22,.78,.24,1)!important;
    will-change:transform;
    touch-action:auto;
  }
  body.dflo-astra-premium #ast-mobile-popup.show .ast-mobile-popup-inner,
  body.dflo-astra-premium #ast-mobile-popup.active .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer.show .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
  body.dflo-astra-premium.ast-popup-nav-open .ast-mobile-popup-drawer .ast-mobile-popup-inner,
  body.ast-popup-nav-open.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer.active.ast-mobile-popup-full-width .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer.active.ast-mobile-popup-left .ast-mobile-popup-inner{
    transform:translate3d(0,0,0)!important;
  }

  /* Compact drawer header — existing Astra logo/close markup only. */
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-header,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-header{
    min-height:62px!important;
    padding:8px 10px 8px 16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    flex:0 0 auto!important;
    background:#fff!important;
    border-bottom:1px solid #edf2ef!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-header .site-logo-img,
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-header .custom-logo-link,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-header .site-logo-img,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-header .custom-logo-link{margin:0!important;line-height:1!important}
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-header .custom-logo,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-header .custom-logo{
    width:auto!important;max-width:112px!important;height:auto!important;max-height:30px!important;object-fit:contain!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .menu-toggle-close,
  body.dflo-astra-premium #ast-mobile-popup #menu-toggle-close,
  body.dflo-astra-premium .ast-mobile-popup-drawer .menu-toggle-close,
  body.dflo-astra-premium .ast-mobile-popup-drawer #menu-toggle-close{
    width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;
    margin:0!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
    border:1px solid #dfe9e3!important;border-radius:12px!important;background:#f7faf8!important;color:#086c3d!important;
    box-shadow:none!important;outline:0!important;transition:background .18s ease,border-color .18s ease,transform .18s ease!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .menu-toggle-close:hover,
  body.dflo-astra-premium #ast-mobile-popup .menu-toggle-close:focus-visible,
  body.dflo-astra-premium #ast-mobile-popup #menu-toggle-close:hover,
  body.dflo-astra-premium #ast-mobile-popup #menu-toggle-close:focus-visible{
    background:#edf8f2!important;border-color:#bedfcb!important;box-shadow:0 0 0 3px rgba(10,121,67,.09)!important;
  }

  /* This is the ONLY vertical scroll container in the open menu. */
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-content,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-content{
    position:relative!important;
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    padding:8px 10px 18px!important;
    background:#fff!important;
    scrollbar-width:thin;
    scrollbar-color:#c8d8ce transparent;
  }
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-content::-webkit-scrollbar{width:4px}
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-content::-webkit-scrollbar-thumb{background:#c8d8ce;border-radius:99px}

  /* Menu list: compact, even alignment, no giant empty rows. */
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu,
  body.dflo-astra-premium .ast-mobile-popup-drawer .main-header-menu{
    margin:0!important;padding:0!important;display:block!important;background:#fff!important;border:0!important;border-radius:0!important;
    box-shadow:none!important;overflow:visible!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu > .menu-item{
    position:relative!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item + .menu-item,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu > .menu-item + .menu-item{border-top:1px solid #eef3f0!important}

  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item > .menu-link,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu > .menu-item > .menu-link{
    min-height:48px!important;height:auto!important;margin:0!important;padding:11px 50px 11px 10px!important;
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    border:0!important;border-radius:10px!important;background:transparent!important;color:#18231c!important;
    font:650 14px/1.25 Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
    letter-spacing:-.01em!important;text-align:left!important;text-decoration:none!important;
    transition:background .16s ease,color .16s ease!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item:not(.menu-item-has-children) > .menu-link,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu > .menu-item:not(.menu-item-has-children) > .menu-link{padding-right:10px!important}
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item > .menu-link:hover,
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item > .menu-link:focus-visible{
    background:#f4f8f5!important;color:#075b34!important;outline:0!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .current-menu-item > .menu-link,
  body.dflo-astra-premium #ast-mobile-popup .current-menu-ancestor > .menu-link,
  body.dflo-astra-premium #ast-mobile-popup .current_page_item > .menu-link{
    background:#eef8f2!important;color:#075b34!important;font-weight:760!important;
  }

  /* Arrow is a compact independent touch target, aligned to every row. */
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .ast-menu-toggle,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu .ast-menu-toggle{
    position:absolute!important;z-index:4!important;top:6px!important;right:4px!important;
    width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;
    margin:0!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;
    border:0!important;border-radius:10px!important;background:#f6f9f7!important;color:#48554d!important;box-shadow:none!important;
    transition:background .16s ease,color .16s ease,transform .18s ease!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .ast-menu-toggle:hover,
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .ast-menu-toggle:focus-visible,
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .ast-menu-toggle[aria-expanded="true"]{
    background:#eaf6ef!important;color:#075b34!important;outline:0!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .ast-menu-toggle .ast-icon,
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .ast-menu-toggle svg{width:13px!important;height:13px!important;margin:0!important}

  /* Astra accordion hierarchy — hidden until its own parent is expanded. */
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .sub-menu,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu .sub-menu{
    position:static!important;float:none!important;width:100%!important;min-width:0!important;max-width:100%!important;
    margin:0 0 6px!important;padding:3px 0 5px 12px!important;border:0!important;border-left:2px solid #dfece4!important;
    border-radius:0!important;background:#fbfcfb!important;box-shadow:none!important;overflow:visible!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .sub-menu .menu-item,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu .sub-menu .menu-item{position:relative!important;margin:0!important;padding:0!important;border:0!important}
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .sub-menu .menu-link,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu .sub-menu .menu-link{
    min-height:42px!important;height:auto!important;margin:0!important;padding:9px 42px 9px 11px!important;
    display:flex!important;align-items:center!important;border-radius:9px!important;background:transparent!important;color:#36433b!important;
    font:600 13.2px/1.32 Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
    white-space:normal!important;text-align:left!important;text-decoration:none!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .sub-menu .menu-link:hover,
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .sub-menu .menu-link:focus-visible{background:#f1f7f3!important;color:#075b34!important;outline:0!important}
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .sub-menu .ast-menu-toggle{top:3px!important;right:3px!important;width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;background:transparent!important}
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .sub-menu .sub-menu{
    margin:0 0 4px 8px!important;padding:2px 0 3px 8px!important;border-left-color:#e7eee9!important;background:#fff!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .sub-menu .sub-menu .menu-link{
    min-height:38px!important;padding:7px 38px 7px 9px!important;font-size:12.7px!important;font-weight:550!important;color:#56635b!important;
  }

  /* Force Astra-expanded submenu branches to remain visible inside the drawer scroll flow. */
  body.dflo-astra-premium #ast-mobile-popup li.ast-submenu-expanded > .sub-menu,
  body.dflo-astra-premium #ast-mobile-popup li.ast-menu-hover > .sub-menu,
  body.dflo-astra-premium #ast-mobile-popup li.menu-item-has-children > .ast-menu-toggle[aria-expanded="true"] ~ .sub-menu{
    display:block!important;visibility:visible!important;opacity:1!important;transform:none!important;
  }

  /* Old menu-injected CTA stays hidden. The replacement is deliberately compact. */
  body.dflo-astra-premium #ast-mobile-popup .dflo-menu-cta{display:none!important}
  .dflo-mobile-menu-contact{
    margin:12px 2px 4px!important;padding:12px!important;border:1px solid #e2ece6!important;border-radius:14px!important;
    background:#f7faf8!important;color:#17231c!important;box-shadow:none!important;
  }
  .dflo-mobile-menu-contact__head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-bottom:10px!important}
  .dflo-mobile-menu-contact__copy{min-width:0!important}
  .dflo-mobile-menu-contact__eyebrow{display:block!important;margin:0 0 2px!important;color:#6d7b72!important;font:700 9.5px/1.2 Manrope,system-ui,sans-serif!important;letter-spacing:.07em!important;text-transform:uppercase!important}
  .dflo-mobile-menu-contact__title{margin:0!important;color:#17231c!important;font:720 12.8px/1.25 Manrope,system-ui,sans-serif!important;letter-spacing:-.01em!important}
  .dflo-mobile-menu-contact__actions{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:7px!important;margin:0!important}
  .dflo-mobile-menu-contact__action{
    width:auto!important;max-width:max-content!important;min-height:38px!important;margin:0!important;padding:8px 11px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
    border:1px solid #d6e5dc!important;border-radius:999px!important;background:#fff!important;color:#244032!important;
    font:700 11.8px/1 Manrope,system-ui,sans-serif!important;text-decoration:none!important;white-space:nowrap!important;
    box-shadow:none!important;transition:transform .16s ease,border-color .16s ease,background .16s ease!important;
  }
  .dflo-mobile-menu-contact__action--whatsapp{background:#087a45!important;border-color:#087a45!important;color:#fff!important}
  .dflo-mobile-menu-contact__action:hover,.dflo-mobile-menu-contact__action:focus-visible{transform:translateY(-1px);border-color:#9dcab0!important;outline:0!important;box-shadow:0 0 0 3px rgba(10,121,67,.08)!important}
  .dflo-mobile-menu-contact__action svg{width:14px!important;height:14px!important;flex:0 0 14px!important;fill:currentColor!important}

  /* Social icons copied from the approved footer URLs, not hard-coded in JS. */
  .dflo-mobile-menu-socials{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:6px!important;margin-top:10px!important;padding-top:10px!important;border-top:1px solid #e4ece7!important}
  .dflo-mobile-menu-socials__label{margin-right:2px!important;color:#738078!important;font:650 10px/1.2 Manrope,system-ui,sans-serif!important}
  .dflo-mobile-menu-socials a{
    width:32px!important;height:32px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
    border:1px solid #dfe8e3!important;border-radius:50%!important;background:#fff!important;color:#496057!important;text-decoration:none!important;
    transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease!important;
  }
  .dflo-mobile-menu-socials a:hover,.dflo-mobile-menu-socials a:focus-visible{background:#eef8f2!important;color:#075b34!important;border-color:#c9e1d2!important;transform:translateY(-1px);outline:0!important}
  .dflo-mobile-menu-socials svg{width:14px!important;height:14px!important;max-width:14px!important;max-height:14px!important;fill:currentColor}

  /* Hide the site's fixed mobile CTA while navigation is open so it never covers menu rows. */
  body.dflo-mobile-nav-open .dflo-plugin-mobile-actions{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(8px)!important}

  /* Shrink the always-on-screen Call/WhatsApp bar: a compact right-anchored pair
     instead of a bar stretched across the full width of the screen. */
  body.dflo-astra-premium .dflo-plugin-mobile-actions{
    left:auto!important;right:12px!important;bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;
    width:auto!important;max-width:none!important;
    display:flex!important;flex-direction:row!important;grid-template-columns:none!important;
    gap:8px!important;padding:0!important;border:0!important;border-radius:0!important;
    background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;
  }
  body.dflo-astra-premium .dflo-plugin-mobile-actions a{
    width:auto!important;min-width:0!important;min-height:0!important;height:44px!important;
    padding:0 16px!important;border-radius:999px!important;font-size:12.5px!important;font-weight:750!important;
    box-shadow:0 10px 26px rgba(4,35,21,.18)!important;
  }
}

@media (max-width:380px){
  :root{--dflo-mobile-edge:36px}
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-inner{width:min(88vw,340px)!important;border-radius:17px 0 0 17px!important}
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item > .menu-link{font-size:13.6px!important}
}

@media (prefers-reduced-motion:reduce){
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-inner{transition:none!important}
  .dflo-mobile-menu-contact__action,.dflo-mobile-menu-socials a{transition:none!important;transform:none!important}
}

/* DigitalFLO V17.10.0 Phase 8 — mobile navigation UX hardening. */
@media (max-width:921px){
  html.dflo-mobile-nav-open{scrollbar-gutter:stable}
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-inner{
    max-height:100svh!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-content,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-content{
    padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu .menu-link,
  body.dflo-astra-premium #ast-mobile-popup #ast-hf-mobile-menu .menu-link{
    overflow-wrap:anywhere!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-inner:focus-visible,
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-content:focus-visible{
    outline:0!important;
  }
}

@media (max-width:340px){
  :root{--dflo-mobile-edge:24px}
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-inner,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-inner{
    width:min(92vw,316px)!important;
    max-width:calc(100vw - var(--dflo-mobile-edge))!important;
    border-radius:15px 0 0 15px!important;
  }
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-header,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-header{min-height:56px!important;padding-left:12px!important}
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item > .menu-link{min-height:46px!important;padding-left:8px!important;font-size:13.2px!important}
  .dflo-mobile-menu-contact{padding:10px!important}
  .dflo-mobile-menu-contact__head{align-items:flex-start!important;flex-direction:column!important}
  body.dflo-astra-premium .dflo-plugin-mobile-actions{right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;gap:6px!important}
  body.dflo-astra-premium .dflo-plugin-mobile-actions a{height:42px!important;padding-inline:12px!important;font-size:11.8px!important}
}

@media (max-width:921px) and (max-height:560px){
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-header,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-header{min-height:54px!important;padding-block:6px!important}
  body.dflo-astra-premium #ast-mobile-popup .ast-mobile-popup-content,
  body.dflo-astra-premium .ast-mobile-popup-drawer .ast-mobile-popup-content{padding-top:4px!important}
  body.dflo-astra-premium #ast-mobile-popup .main-header-menu > .menu-item > .menu-link{min-height:44px!important;padding-top:9px!important;padding-bottom:9px!important}
  .dflo-mobile-menu-contact{margin-top:8px!important;padding:10px!important}
}
