/* V51 — mobile menu + floating advisor fixes
   Loaded last so legacy CSS cannot override these mobile interaction rules. */

@media (max-width: 900px){
  html, body{overflow-x:hidden!important;}

  /* Hamburger: always above the header/hero and always tappable. */
  .header .menu-button,
  .menu-button#mobile-menu-button{
    display:flex!important;
    position:fixed!important;
    top:14px!important;
    right:14px!important;
    width:48px!important;
    height:48px!important;
    margin:0!important;
    padding:0!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(255,255,255,.35)!important;
    border-radius:50%!important;
    background:rgba(0,0,51,.72)!important;
    color:#fff!important;
    z-index:2147483000!important;
    cursor:pointer!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  .menu-button span{
    display:block!important;
    width:20px!important;
    height:2px!important;
    margin:3px 0!important;
    background:#fff!important;
    border-radius:2px!important;
    transition:transform .2s ease, opacity .2s ease!important;
  }
  .menu-button.is-open span:nth-child(1){transform:translateY(5px) rotate(45deg)!important;}
  .menu-button.is-open span:nth-child(2){opacity:0!important;}
  .menu-button.is-open span:nth-child(3){transform:translateY(-5px) rotate(-45deg)!important;}

  /* Off-canvas panel.  Visibility/pointer-events make the closed state truly inert. */
  .mobile-menu{
    display:flex!important;
    position:fixed!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    width:min(360px,88vw)!important;
    height:100dvh!important;
    max-height:none!important;
    margin:0!important;
    padding:92px 26px 34px!important;
    box-sizing:border-box!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    background:#000033!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    transform:translate3d(105%,0,0)!important;
    transition:transform .28s ease,opacity .2s ease,visibility 0s linear .28s!important;
    z-index:2147482000!important;
    box-shadow:-18px 0 45px rgba(0,0,0,.35)!important;
  }
  .mobile-menu.open{
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0)!important;
    transition:transform .28s ease,opacity .2s ease,visibility 0s!important;
  }
  .mobile-menu a,
  .mobile-menu a.nav-link,
  .mobile-menu a.azul-link-fix{
    display:block!important;
    float:none!important;
    width:100%!important;
    box-sizing:border-box!important;
    padding:16px 2px!important;
    margin:0!important;
    color:#fff!important;
    background:transparent!important;
    text-decoration:none!important;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.14)!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:12px!important;
    font-weight:700!important;
    line-height:1.35!important;
    letter-spacing:1.35px!important;
    white-space:normal!important;
  }
  .mobile-menu a:active,
  .mobile-menu a:focus-visible,
  .mobile-menu a:hover{color:#dfc18c!important;background:rgba(255,255,255,.04)!important;}

  .mobile-menu-overlay{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    margin:0!important;
    background:rgba(0,0,0,.58)!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    z-index:2147481000!important;
    transition:opacity .2s ease,visibility 0s linear .2s!important;
    -webkit-backdrop-filter:blur(2px)!important;
    backdrop-filter:blur(2px)!important;
  }
  .mobile-menu-overlay.open{
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transition:opacity .2s ease,visibility 0s!important;
  }
  body.mobile-menu-open{overflow:hidden!important;touch-action:none!important;}

  /* Floating advisor: fixed to the viewport, never part of the document flow. */
  .asesor-whatsapp{
    position:fixed!important;
    top:auto!important;
    right:16px!important;
    bottom:22px!important;
    left:auto!important;
    z-index:2147482500!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    width:auto!important;
    max-width:calc(100vw - 32px)!important;
    box-sizing:border-box!important;
    padding:11px 15px!important;
    margin:0!important;
    border-radius:999px!important;
    background:rgba(0,0,51,.92)!important;
    color:#fff!important;
    border:1px solid rgba(212,175,55,.9)!important;
    box-shadow:0 12px 30px rgba(0,0,0,.32)!important;
    -webkit-backdrop-filter:blur(8px)!important;
    backdrop-filter:blur(8px)!important;
    transform:translateZ(0)!important;
    will-change:transform!important;
    touch-action:manipulation!important;
  }
  .asesor-whatsapp:hover{transform:translateY(-2px) translateZ(0)!important;}
  .asesor-whatsapp-icon{font-size:16px!important;line-height:1!important;}
}

@media (min-width:901px){
  .asesor-whatsapp{
    position:fixed!important;
    top:auto!important;
    right:28px!important;
    bottom:28px!important;
    left:auto!important;
    z-index:2147482500!important;
  }
}
