/* V35 · navegación móvil estable.
   El header es fijo en todo momento en móvil; el documento reserva su altura.
   Abrir/cerrar el menú no modifica la geometría ni el scroll de la página. */

.v26-menu-layer,
.mobile-menu-portal,
.v31-menu-layer,
.v32-menu-layer,
.v33-menu-layer,
.v34-menu-layer,
.v35-menu-layer{
  display:none;
}

@media (max-width:1120px){
  :root{
    --v35-header-height:72px;
    --anchor-offset:var(--v35-header-height);
  }

  html{
    scroll-padding-top:0 !important;
  }

  body{
    padding-top:var(--v35-header-height) !important;
  }

  header,
  body.v35-menu-open header{
    position:fixed !important;
    inset:0 0 auto 0 !important;
    width:100% !important;
    z-index:30020 !important;
    background:#fff !important;
    opacity:1 !important;
    transform:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  #site-nav > #menu{
    display:none !important;
  }

  #site-nav > .burger{
    display:inline-flex !important;
  }

  .v35-menu-layer{
    position:fixed !important;
    top:var(--v35-header-height) !important;
    right:0 !important;
    bottom:0 !important;
    left:0 !important;
    z-index:30010 !important;
    display:grid !important;
    grid-template-rows:auto minmax(0,1fr);
    visibility:hidden;
    pointer-events:none;
  }

  .v35-menu-layer.is-visible{
    visibility:visible;
  }

  .v35-menu-panel{
    grid-row:1;
    position:relative;
    z-index:2;
    width:100%;
    max-height:calc(100dvh - var(--v35-header-height) - 16px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:10px clamp(18px,5vw,46px) 16px;
    background:#fff;
    border-top:1px solid rgba(30,58,138,.08);
    border-bottom:1px solid rgba(30,58,138,.12);
    border-radius:0 0 16px 16px;
    box-shadow:0 12px 28px rgba(8,21,43,.13);
    pointer-events:auto;
    transform:translateY(-100%);
    opacity:.3;
    transition:transform .28s cubic-bezier(.22,.78,.24,1),opacity .2s ease;
    will-change:transform,opacity;
  }

  .v35-menu-layer.is-open .v35-menu-panel{
    transform:translateY(0);
    opacity:1;
  }

  .v35-menu-backdrop{
    grid-row:2;
    position:relative;
    z-index:1;
    min-height:0;
    background:rgba(18,31,49,.06);
    backdrop-filter:blur(2px) saturate(102%);
    -webkit-backdrop-filter:blur(2px) saturate(102%);
    opacity:0;
    pointer-events:auto;
    touch-action:none;
    transition:opacity .2s ease;
  }

  .v35-menu-layer.is-open .v35-menu-backdrop{
    opacity:1;
  }

  .v35-menu-panel ul{
    width:min(760px,100%);
    margin:0 auto;
    padding:0;
    display:grid;
    gap:2px;
    list-style:none;
  }

  .v35-menu-panel li{
    width:100%;
    margin:0;
    padding:0;
  }

  .v35-menu-panel a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:42px;
    padding:9px 14px;
    border-radius:8px;
    text-align:center;
    text-decoration:none;
    transition:background-color .16s ease,color .16s ease;
  }

  .v35-menu-panel a:not(.btn):hover,
  .v35-menu-panel a:not(.btn):focus-visible{
    color:var(--c-blue,#1e3a8a);
    background:rgba(101,163,13,.10);
  }

  .v35-menu-panel li:last-child{
    display:flex;
    justify-content:center;
  }

  .v35-menu-panel .btn{
    width:min(480px,100%) !important;
    min-height:52px;
    margin:8px auto 0 !important;
    justify-content:center !important;
  }

  /* Neutraliza overlays y bloqueos heredados. */
  body.menu-open::before,
  body.v24-menu-open::before,
  body.v26-menu-open::before{
    content:none !important;
    display:none !important;
  }
}

@media (max-width:560px){
  .v35-menu-panel{
    padding:8px 16px 12px;
    border-radius:0 0 12px 12px;
  }

  .v35-menu-panel a{
    min-height:40px;
    padding:8px 10px;
  }

  .v35-menu-panel .btn{
    min-height:50px;
  }
}

@media (prefers-reduced-motion:reduce){
  .v35-menu-panel,
  .v35-menu-backdrop,
  .v35-menu-panel a{
    transition:none !important;
  }
}
