/* ============================================================================
   PITRIO CMS 1.0.0.0 — Mobile Menu v1.03
   Correção estrutural definitiva do mobile:
   - desktop intocado
   - itens começam no topo (sem herdar justify-content:center)
   - UMA ÚNICA rolagem: o painel principal
   - nenhum submenu cria scroll próprio
   - .active / :hover / .is-mega-open nunca abrem submenu no mobile
   - abertura controlada exclusivamente por .pitrio-submenu-open
   ============================================================================ */

/* Resíduos de versões anteriores nunca podem aparecer. */
.pitrio-mobile-section-nav,
.pitrio-mobile-back { display:none !important; }

@media (min-width:901px) {
  html.pitrio-mobile-menu-open,
  html.pitrio-mobile-menu-open body {
    overflow:auto !important;
    overscroll-behavior:auto !important;
  }
}

@media (max-width:900px) {
  html.pitrio-mobile-menu-open,
  html.pitrio-mobile-menu-open body {
    overflow:hidden !important;
    overscroll-behavior:none !important;
  }

  .mega-menu {
    overflow:visible !important;
  }

  .mega-menu > .menu-icon {
    position:relative !important;
    z-index:2147483605 !important;
    cursor:pointer !important;
    touch-action:manipulation !important;
  }

  /* O menu fica realmente fechado até o JS v103 abrir. */
  .mega-menu > .menu,
  .mega-menu > .menu.dynamic-menu,
  .mega-menu > .dynamic-menu {
    display:none !important;
  }

  .mega-menu > .menu.is-mobile-open,
  .mega-menu > .menu.dynamic-menu.is-mobile-open,
  .mega-menu > .dynamic-menu.is-mobile-open {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    align-content:flex-start !important;
    justify-content:flex-start !important;
    gap:0 !important;

    position:fixed !important;
    z-index:2147483500 !important;
    top:var(--pitrio-mobile-menu-top,66px) !important;
    left:6px !important;
    right:6px !important;
    bottom:calc(7px + env(safe-area-inset-bottom,0px)) !important;

    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:10px 10px calc(118px + env(safe-area-inset-bottom,0px)) !important;

    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior-y:contain !important;
    touch-action:pan-y !important;
    scroll-behavior:auto !important;
    scroll-padding-top:10px !important;

    border:1px solid #d8e2ee !important;
    border-top:0 !important;
    border-radius:0 0 24px 24px !important;
    background:#f7faff !important;
    box-shadow:0 20px 55px rgba(8,25,50,.18) !important;
    transform:none !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  /* Neutraliza a antiga classe .active aplicada ao UL por hotfixes legados. */
  .mega-menu > .menu.active:not(.is-mobile-open),
  .mega-menu > .dynamic-menu.active:not(.is-mobile-open) {
    display:none !important;
  }

  .mega-menu > .menu.is-mobile-open > li,
  .mega-menu > .dynamic-menu.is-mobile-open > li {
    display:block !important;
    position:relative !important;
    flex:0 0 auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 0 8px !important;
    padding:0 !important;
    overflow:visible !important;
    border:0 !important;
    background:transparent !important;
  }

  .mega-menu > .menu.is-mobile-open > li:last-child,
  .mega-menu > .dynamic-menu.is-mobile-open > li:last-child {
    margin-bottom:0 !important;
  }

  .mega-menu > .menu.is-mobile-open > li > a,
  .mega-menu > .dynamic-menu.is-mobile-open > li > a {
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    width:100% !important;
    min-width:0 !important;
    min-height:52px !important;
    margin:0 !important;
    padding:9px 12px !important;
    overflow:hidden !important;
    border:1px solid #dce5ef !important;
    border-radius:14px !important;
    background:#fff !important;
    color:#243a55 !important;
    box-shadow:0 5px 14px rgba(15,23,42,.035) !important;
    font-size:.78rem !important;
    font-weight:800 !important;
    line-height:1.25 !important;
    text-decoration:none !important;
    white-space:normal !important;
  }

  .mega-menu > .menu.is-mobile-open > li.pitrio-submenu-open > a,
  .mega-menu > .dynamic-menu.is-mobile-open > li.pitrio-submenu-open > a {
    border-color:#b9d2ef !important;
    background:linear-gradient(180deg,#f3f8ff,#edf5ff) !important;
    color:#114a8f !important;
  }

  .mega-menu > .menu.is-mobile-open > li > a > i:first-child,
  .mega-menu > .dynamic-menu.is-mobile-open > li > a > i:first-child {
    display:grid !important;
    place-items:center !important;
    flex:0 0 34px !important;
    width:34px !important;
    height:34px !important;
    margin:0 !important;
    border:1px solid #d8e6f4 !important;
    border-radius:11px !important;
    background:#edf5ff !important;
    color:#1764c7 !important;
    font-size:.8rem !important;
  }

  .mega-menu li.pitrio-has-submenu > a .submenu-arrow {
    margin-left:auto !important;
    flex:0 0 auto !important;
    transition:transform .16s ease !important;
  }
  .mega-menu li.pitrio-submenu-open > a .submenu-arrow {
    transform:rotate(90deg) !important;
  }

  /* ------------------------------------------------------------------------
     REGRA CENTRAL v103
     Nada além de .pitrio-submenu-open abre submenu no mobile.
     ------------------------------------------------------------------------ */
  .mega-menu .menu li > .submenu,
  .mega-menu .dynamic-menu li > .submenu,
  .mega-menu .menu li.active > .submenu,
  .mega-menu .dynamic-menu li.active > .submenu,
  .mega-menu .menu li.is-mega-open > .submenu,
  .mega-menu .dynamic-menu li.is-mega-open > .submenu,
  .mega-menu .menu li:hover > .submenu,
  .mega-menu .dynamic-menu li:hover > .submenu,
  .mega-menu .menu li:focus-within > .submenu,
  .mega-menu .dynamic-menu li:focus-within > .submenu {
    display:none !important;
    position:static !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;

    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;

    margin:7px 0 0 !important;
    padding:8px !important;
    overflow:visible !important;

    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;

    border:1px solid #dbe5ef !important;
    border-left:3px solid #2563eb !important;
    border-radius:15px !important;
    background:#fff !important;
    box-shadow:none !important;
  }

  .mega-menu .menu li.pitrio-submenu-open > .submenu,
  .mega-menu .dynamic-menu li.pitrio-submenu-open > .submenu {
    display:block !important;
    max-height:none !important;
    overflow:visible !important;
  }

  /* É proibido criar um segundo scroll dentro do painel. */
  .mega-menu > .menu.is-mobile-open > li.pitrio-submenu-open > .submenu,
  .mega-menu > .dynamic-menu.is-mobile-open > li.pitrio-submenu-open > .submenu,
  .mega-menu .submenu li.pitrio-submenu-open > .submenu,
  .mega-menu .submenu--mega-groups {
    max-height:none !important;
    overflow:visible !important;
    overscroll-behavior:auto !important;
    touch-action:auto !important;
  }

  /* Estrutura dos mega-groups vira fluxo vertical natural. */
  .mega-menu .submenu--mega-groups {
    grid-template-columns:1fr !important;
  }

  .mega-menu li.pitrio-submenu-open > .submenu--mega-groups {
    display:block !important;
  }

  .mega-menu .submenu > li,
  .mega-menu .submenu--mega-groups > li,
  .mega-menu .submenu--mega-groups > .mega-column-group,
  .mega-menu .mega-column-group,
  .mega-menu .mega-column-group > *,
  .mega-menu .mega-column-links {
    position:static !important;
    float:none !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    transform:none !important;
  }

  .mega-menu .submenu > li {
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
  }
  .mega-menu .submenu > li + li { margin-top:5px !important; }

  .mega-menu .submenu--mega-groups > .mega-column-group {
    display:block !important;
    margin:0 0 8px !important;
    padding:10px !important;
    border:1px solid #e1e8ef !important;
    border-radius:14px !important;
    background:#fff !important;
  }
  .mega-menu .submenu--mega-groups > .mega-column-group:last-child { margin-bottom:0 !important; }

  .mega-menu .mega-column-links {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:2px !important;
  }

  .mega-menu .submenu li > a,
  .mega-menu .submenu--mega-groups .mega-column-link {
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    width:100% !important;
    min-width:0 !important;
    min-height:43px !important;
    padding:8px 10px !important;
    overflow:visible !important;
    border:0 !important;
    border-radius:11px !important;
    background:transparent !important;
    color:#4b5f76 !important;
    font-size:.74rem !important;
    font-weight:650 !important;
    line-height:1.35 !important;
    text-decoration:none !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }

  .mega-menu .submenu li.pitrio-submenu-open > a {
    background:#f0f6fd !important;
    color:#173e70 !important;
    font-weight:800 !important;
  }

  .mega-menu .mega-column-heading {
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    width:100% !important;
    margin:0 0 5px !important;
    padding:5px 4px 8px !important;
    color:#0d2142 !important;
  }

  .mega-menu .mega-column-heading > i {
    display:grid !important;
    place-items:center !important;
    flex:0 0 34px !important;
    width:34px !important;
    height:34px !important;
    margin:0 !important;
    border-radius:11px !important;
    background:linear-gradient(145deg,#0d47a1,#2f80ed) !important;
    color:#fff !important;
  }

  /* Ribbon e promo não podem criar largura/posição fora do fluxo. */
  .mega-menu .mega-menu-context-ribbon,
  .mega-menu .mega-menu-context-ribbon__track,
  .mega-menu .menu-dropdown-promo,
  .mega-menu .submenu--with-promo > .menu-dropdown-promo {
    position:static !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    transform:none !important;
  }

  /* Scrollbar discreta apenas no painel principal. */
  .mega-menu > .menu.is-mobile-open::-webkit-scrollbar,
  .mega-menu > .dynamic-menu.is-mobile-open::-webkit-scrollbar { width:5px; }
  .mega-menu > .menu.is-mobile-open::-webkit-scrollbar-thumb,
  .mega-menu > .dynamic-menu.is-mobile-open::-webkit-scrollbar-thumb {
    background:#c7d5e5;
    border-radius:999px;
  }
}

@media (max-width:520px) {
  .mega-menu > .menu.is-mobile-open,
  .mega-menu > .dynamic-menu.is-mobile-open {
    left:4px !important;
    right:4px !important;
    padding:8px 8px calc(124px + env(safe-area-inset-bottom,0px)) !important;
  }
}
