/*
 * Capa responsiva canónica v137.
 * Debe cargarse después de styles.css, polish.css y hardening.css.
 * Centraliza encabezado, navegación, accesibilidad y acceso RUE.
 */

@supports (overflow:clip){
  html{overflow-x:visible!important}
  body{overflow-x:clip!important}
}

@media(max-width:1050px){
  :root{--responsive-header-z:9000;--responsive-menu-z:9100}

  .site-header{
    display:block!important;
    position:-webkit-sticky!important;
    position:sticky!important;
    z-index:var(--responsive-header-z)!important;
    top:0!important;
    width:100%!important;
    max-width:none!important;
    overflow:visible!important;
    isolation:isolate!important;
    opacity:1!important;
    visibility:visible!important;
    filter:none!important;
    transform:none!important;
  }
  .site-header .navbar{
    position:relative!important;
    z-index:1!important;
    top:auto!important;
    width:100%!important;
    overflow:visible!important;
    border-bottom:1px solid #d5dfe8!important;
    background:#fff!important;
    background-color:#fff!important;
    background-image:none!important;
    opacity:1!important;
    visibility:visible!important;
    filter:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:0 5px 18px rgba(7,24,45,.08)!important;
  }
  .site-header .navbar__content{
    position:relative!important;
    overflow:visible!important;
    background:#fff!important;
    opacity:1!important;
  }
  .menu-toggle{
    display:block!important;
    flex:0 0 48px!important;
    visibility:visible!important;
    opacity:1!important;
  }

  html.menu-locked,
  html.menu-locked body,
  body.menu-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.menu-open::before{
    content:""!important;
    position:fixed!important;
    /* Debajo del encabezado: no debe interceptar los controles del menú. */
    z-index:calc(var(--responsive-header-z) - 1)!important;
    inset:0!important;
    display:block!important;
    background:rgba(4,16,31,.48)!important;
    opacity:1!important;
    pointer-events:auto!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  body.menu-open .site-header{
    position:fixed!important;
    top:0!important;
    right:0!important;
    left:0!important;
    width:100%!important;
    transform:none!important;
  }
  html body.menu-open .site-header{
    z-index:var(--responsive-header-z)!important;
  }

  .site-header .nav-menu{
    position:fixed!important;
    z-index:var(--responsive-menu-z)!important;
    top:calc(var(--mobile-menu-top,var(--navbar-height,82px)) + 8px)!important;
    right:max(12px,env(safe-area-inset-right))!important;
    bottom:auto!important;
    left:max(12px,env(safe-area-inset-left))!important;
    display:grid!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - var(--mobile-menu-top,var(--navbar-height,82px)) - max(20px,env(safe-area-inset-bottom)))!important;
    grid-template-columns:1fr!important;
    align-content:start!important;
    gap:3px!important;
    padding:12px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    contain:none!important;
    isolation:isolate!important;
    border:1px solid #cbd7e2!important;
    border-radius:20px!important;
    background:#fff!important;
    background-color:#fff!important;
    background-image:none!important;
    background-clip:padding-box!important;
    color:#07182d!important;
    opacity:0!important;
    visibility:hidden!important;
    filter:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:0 24px 64px rgba(4,16,31,.3)!important;
    transform:translateY(-8px)!important;
    transition:transform .2s ease,visibility .2s ease!important;
    pointer-events:none!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }
  .site-header .nav-menu::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    border-radius:inherit;
    background:#fff;
    pointer-events:none;
  }
  .site-header .nav-menu.is-open{
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:auto!important;
  }
  .site-header .nav-menu>a:not(.button),
  .site-header .nav-public>summary{
    color:#26384d!important;
    background:transparent!important;
    text-shadow:none!important;
  }

  html body .site-header .nav-menu>a.staff-access{
    display:grid!important;
    min-height:56px!important;
    grid-template-columns:40px minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:11px!important;
    margin-top:7px!important;
    padding:8px 11px!important;
    overflow:hidden!important;
    border:1px solid #123d63!important;
    border-radius:14px!important;
    background:linear-gradient(135deg,#07182d 0%,#0b3d67 64%,#155b83 100%)!important;
    box-shadow:0 10px 24px rgba(7,24,45,.2),inset 0 1px 0 rgba(255,255,255,.12)!important;
    color:#fff!important;
  }
  html body .site-header .nav-menu>a.staff-access .staff-access__icon{
    display:grid!important;
    width:40px!important;
    height:40px!important;
    place-items:center!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:11px!important;
    background:rgba(255,255,255,.1)!important;
    color:#fff!important;
  }
  html body .site-header .nav-menu>a.staff-access .staff-access__label{
    position:static!important;
    width:auto!important;
    height:auto!important;
    overflow:visible!important;
    clip:auto!important;
    clip-path:none!important;
    color:#fff!important;
    font-size:.84rem!important;
    font-weight:850!important;
    line-height:1.15!important;
    white-space:normal!important;
  }
  html body .site-header .nav-menu>a.staff-access .staff-access__label::before{
    content:"Acceso del personal · "!important;
    color:#d9e7f3!important;
    font-weight:650!important;
  }
}

@media(max-width:720px){
  .accessibility-bar{
    width:100%!important;
    padding:0!important;
    border-bottom:1px solid #cbd7e3!important;
    background:#fff!important;
  }
  .accessibility-bar__inner.container{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  .accessibility-bar button.accessibility-bar__toggle{
    width:100%!important;
    min-width:0!important;
    min-height:52px!important;
    margin:0!important;
    padding:8px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left))!important;
    justify-content:flex-start!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  .site-header .nav-menu{
    top:calc(var(--mobile-menu-top,var(--navbar-height,74px)) + 6px)!important;
    right:max(8px,env(safe-area-inset-right))!important;
    left:max(8px,env(safe-area-inset-left))!important;
    max-height:calc(100dvh - var(--mobile-menu-top,var(--navbar-height,74px)) - max(14px,env(safe-area-inset-bottom)))!important;
    padding:9px!important;
    border-radius:17px!important;
  }
}

@media(min-width:721px) and (max-width:1050px){
  .accessibility-bar__inner.container{width:100%!important;max-width:none!important}
  .accessibility-bar.is-open .accessibility-bar__panel{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .accessibility-bar__controls{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .accessibility-bar__links{display:grid!important;grid-template-columns:52px 52px minmax(120px,1fr) minmax(140px,1.15fr)!important}
}

@media(min-width:900px) and (max-width:1050px){
  .accessibility-bar.is-open .accessibility-bar__panel{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)!important}
}

@media(max-width:520px){
  html body .site-header .nav-menu>a.staff-access{
    grid-template-columns:36px minmax(0,1fr) auto!important;
    gap:9px!important;
  }
  html body .site-header .nav-menu>a.staff-access .staff-access__icon{width:36px!important;height:36px!important}
  html body .site-header .nav-menu>a.staff-access .staff-access__label{font-size:.78rem!important}
}

@media(prefers-reduced-motion:reduce){
  .site-header .nav-menu{transition:none!important}
}

/* v138 — RUE compacto: mismo lenguaje visual de escritorio. */
@media(max-width:1050px){
  html body .site-header .nav-menu>a.staff-access{
    grid-template-columns:40px auto!important;
    justify-content:center!important;
    gap:12px!important;
    color:#fff!important;
    transition:transform .28s cubic-bezier(.22,1,.36,1),background .28s ease,border-color .28s ease,box-shadow .28s ease!important;
  }
  html body .site-header .nav-menu>a.staff-access::before{
    content:none!important;
    display:none!important;
  }
  html body .site-header .nav-menu>a.staff-access::after{
    content:""!important;
    position:absolute!important;
    z-index:0!important;
    top:-45%!important;
    bottom:-45%!important;
    left:-45%!important;
    display:block!important;
    width:28%!important;
    height:auto!important;
    border:0!important;
    border-radius:50%!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),rgba(255,255,255,.68),rgba(255,80,94,.42),transparent)!important;
    opacity:1!important;
    filter:blur(1px)!important;
    transform:skewX(-18deg)!important;
    transition:left .7s cubic-bezier(.22,1,.36,1)!important;
    pointer-events:none!important;
  }
  html body .site-header .nav-menu>a.staff-access .staff-access__icon,
  html body .site-header .nav-menu>a.staff-access .staff-access__label{
    position:relative!important;
    z-index:1!important;
  }
  html body .site-header .nav-menu>a.staff-access .staff-access__label::before{
    content:none!important;
    display:none!important;
  }
  html body .site-header .nav-menu>a.staff-access .staff-access__label{
    color:#fff!important;
    font-size:1rem!important;
    font-weight:900!important;
    letter-spacing:.035em!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  html body .site-header .nav-menu>a.staff-access:is(:hover,:focus-visible){
    border-color:#ef7d87!important;
    background:linear-gradient(135deg,#07182d 0%,#6e1726 58%,#cc0f1f 100%)!important;
    box-shadow:0 14px 30px rgba(204,15,31,.25),inset 0 1px 0 rgba(255,255,255,.16)!important;
    color:#fff!important;
    transform:translateY(-2px)!important;
  }
  html body .site-header .nav-menu>a.staff-access:is(:hover,:focus-visible)::after{left:125%!important}
  html body .site-header .nav-menu>a.staff-access:active{
    border-color:#ef7d87!important;
    background:linear-gradient(135deg,#07182d 0%,#6e1726 58%,#cc0f1f 100%)!important;
    box-shadow:0 7px 16px rgba(7,24,45,.2)!important;
    transform:scale(.985)!important;
  }
}

@media(max-width:520px){
  html body .site-header .nav-menu>a.staff-access{
    grid-template-columns:36px auto!important;
    gap:11px!important;
  }
  html body .site-header .nav-menu>a.staff-access .staff-access__label{font-size:.96rem!important}
}

@media(prefers-reduced-motion:reduce){
  html body .site-header .nav-menu>a.staff-access,
  html body .site-header .nav-menu>a.staff-access::after{transition:none!important}
  html body .site-header .nav-menu>a.staff-access::after{display:none!important}
}

/* v140 — accesibilidad de tableta sin carriles ni barras internas. */
@media(min-width:721px) and (max-width:1050px){
  .accessibility-bar,
  .accessibility-bar__inner,
  .accessibility-bar__panel,
  .accessibility-bar__controls,
  .accessibility-bar__links{
    overflow:visible!important;
    overflow-x:visible!important;
    overflow-y:visible!important;
    overscroll-behavior:auto!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:auto!important;
  }
  .accessibility-bar__controls::-webkit-scrollbar,
  .accessibility-bar__links::-webkit-scrollbar,
  .accessibility-bar__panel::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  .accessibility-bar.is-open .accessibility-bar__panel{
    width:100%!important;
    max-width:100%!important;
    align-items:stretch!important;
  }
  .accessibility-bar__controls,
  .accessibility-bar__links{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
  }
  .accessibility-bar__panel :is(button,a){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

@media(min-width:721px) and (max-width:820px){
  .accessibility-bar__controls{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .accessibility-bar__links{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(min-width:821px) and (max-width:1050px){
  .accessibility-bar__controls{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .accessibility-bar__links{grid-template-columns:52px 52px minmax(0,1fr) minmax(0,1.15fr)!important}
}

/* v141 — sistema visual fluido para la barra de accesibilidad. */
.accessibility-bar{
  color:#07182d!important;
  background:#f5f8fb!important;
}
.accessibility-bar__inner.container{
  border:1px solid #cbd8e5!important;
  background:#fff!important;
  box-shadow:0 10px 30px rgba(7,24,45,.06)!important;
}
.accessibility-bar__panel :is(button,a),
.accessibility-bar button.accessibility-bar__toggle{
  border:1px solid #c7d5e2!important;
  background:#fff!important;
  color:#07182d!important;
  font-weight:780!important;
  transition:border-color .2s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease!important;
}
.accessibility-bar__panel :is(button,a):is(:hover,:focus-visible),
.accessibility-bar button.accessibility-bar__toggle:is(:hover,:focus-visible){
  border-color:#cc0f1f!important;
  background:#fff3f4!important;
  color:#a80b19!important;
  box-shadow:0 6px 16px rgba(204,15,31,.1)!important;
}
.accessibility-bar__panel button[aria-pressed="true"],
.accessibility-bar__panel a[aria-pressed="true"]{
  border-color:#07182d!important;
  background:#07182d!important;
  color:#fff!important;
  box-shadow:none!important;
}

@media(min-width:1280px){
  .accessibility-bar{padding:8px clamp(18px,2vw,32px)!important}
  .accessibility-bar__inner.container{
    display:flex!important;
    width:100%!important;
    max-width:1560px!important;
    min-height:64px!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px 18px!important;
    margin-inline:auto!important;
    padding:10px 12px!important;
    overflow:visible!important;
    border-radius:20px!important;
  }
  .accessibility-bar__label{
    display:inline-flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    gap:9px!important;
    padding-inline:4px!important;
    color:#07182d!important;
    font-size:.86rem!important;
    font-weight:850!important;
    white-space:nowrap!important;
  }
  .accessibility-bar__label::before{
    content:""!important;
    width:10px!important;
    height:10px!important;
    border-radius:50%!important;
    background:#d91d2d!important;
    box-shadow:0 0 0 6px rgba(217,29,45,.1)!important;
  }
  .accessibility-bar__toggle{display:none!important}
  .accessibility-bar__panel{
    display:flex!important;
    min-width:0!important;
    flex:1 1 900px!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    padding:0!important;
    overflow:visible!important;
    border:0!important;
  }
  .accessibility-bar__controls,
  .accessibility-bar__links{
    display:flex!important;
    width:auto!important;
    min-width:0!important;
    flex:0 1 auto!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  .accessibility-bar__panel :is(button,a){
    width:auto!important;
    min-width:54px!important;
    min-height:44px!important;
    padding:8px 12px!important;
    border-radius:12px!important;
    font-size:.75rem!important;
    line-height:1.15!important;
    white-space:normal!important;
  }
}

/* v144 — etiqueta de accesibilidad sin indicador circular. */
@media(min-width:1280px){
  html body .accessibility-bar .accessibility-bar__label::before{
    content:none!important;
    display:none!important;
    width:0!important;
    height:0!important;
    box-shadow:none!important;
  }
}

@media(min-width:721px) and (max-width:1279px){
  .accessibility-bar{padding:7px 10px!important}
  .accessibility-bar__inner.container{
    display:grid!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border-radius:16px!important;
  }
  .accessibility-bar__label{display:none!important}
  .accessibility-bar button.accessibility-bar__toggle{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    min-height:52px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:10px!important;
    margin:0!important;
    padding:8px 12px!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  .accessibility-bar__toggle-icon{
    width:34px!important;
    height:34px!important;
    flex:0 0 34px!important;
    border-radius:10px!important;
    background:#fdebed!important;
    color:#c20e1d!important;
  }
  .accessibility-bar__toggle-title{display:inline!important;font-size:.82rem!important}
  .accessibility-bar__chevron{margin-left:auto!important}
  .accessibility-bar__panel{display:none!important}
  .accessibility-bar.is-open .accessibility-bar__panel{
    display:grid!important;
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    gap:7px!important;
    padding:9px!important;
    overflow:visible!important;
    border-top:1px solid #d7e0e8!important;
    background:#f8fafc!important;
  }
  .accessibility-bar__controls,
  .accessibility-bar__links{
    display:grid!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  .accessibility-bar__controls{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .accessibility-bar__links{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .accessibility-bar__panel :is(button,a){
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    padding:7px 8px!important;
    border-radius:11px!important;
    font-size:.7rem!important;
    line-height:1.15!important;
    text-align:center!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

@media(min-width:900px) and (max-width:1279px){
  .accessibility-bar.is-open .accessibility-bar__panel{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;
  }
  .accessibility-bar__controls{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .accessibility-bar__links{grid-template-columns:52px 52px minmax(0,1fr) minmax(0,1.15fr)!important}
}

@media(max-width:720px){
  .accessibility-bar__inner.container{border-radius:0!important}
  .accessibility-bar__panel :is(button,a){border-radius:10px!important}
}

@media(prefers-reduced-motion:reduce){
  .accessibility-bar__panel :is(button,a),
  .accessibility-bar button.accessibility-bar__toggle{transition:none!important}
}

/* Refuerzo para anchos intermedios: evita que reglas históricas recompongan
   la cabecera y los controles en columnas laterales. */
@media(min-width:721px) and (max-width:1279px){
  html body .accessibility-bar .accessibility-bar__inner.container{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    gap:0!important;
  }
  html body .accessibility-bar button.accessibility-bar__toggle{
    display:flex!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    justify-content:flex-start!important;
  }
  html body .accessibility-bar.is-open .accessibility-bar__panel{
    display:grid!important;
    width:100%!important;
    max-width:none!important;
    flex:none!important;
  }
  html body .accessibility-bar .accessibility-bar__controls,
  html body .accessibility-bar .accessibility-bar__links{
    display:grid!important;
    width:100%!important;
    max-width:none!important;
    flex:none!important;
  }
}

@media(min-width:900px) and (max-width:1279px){
  html body .accessibility-bar.is-open .accessibility-bar__panel{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;
  }
  html body .accessibility-bar .accessibility-bar__controls{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  html body .accessibility-bar .accessibility-bar__links{grid-template-columns:52px 52px minmax(0,1fr) minmax(0,1.15fr)!important}
}

/* v142 — centrado óptico y simetría del icono Aa. */
@media(max-width:1279px){
  html body .accessibility-bar button.accessibility-bar__toggle{
    min-height:58px!important;
    gap:12px!important;
    padding:9px 14px!important;
    align-items:center!important;
    line-height:1!important;
  }
  html body .accessibility-bar .accessibility-bar__toggle-icon{
    display:grid!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    flex:0 0 38px!important;
    place-items:center!important;
    align-self:center!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:11px!important;
    background:#fdebed!important;
    color:#c20e1d!important;
    font-size:.78rem!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:-.035em!important;
    text-align:center!important;
    font-variant-numeric:normal!important;
  }
  html body .accessibility-bar .accessibility-bar__toggle-title{
    display:block!important;
    align-self:center!important;
    margin:0!important;
    padding:0!important;
    color:#07182d!important;
    font-size:.86rem!important;
    font-weight:850!important;
    line-height:1.2!important;
  }
  html body .accessibility-bar .accessibility-bar__chevron{
    align-self:center!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }
}

@media(max-width:720px){
  html body .accessibility-bar button.accessibility-bar__toggle{
    min-height:56px!important;
    padding-block:9px!important;
  }
  html body .accessibility-bar .accessibility-bar__toggle-icon{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    flex-basis:36px!important;
    border-radius:10px!important;
  }
  html body .accessibility-bar .accessibility-bar__toggle-title{font-size:.82rem!important}
}

/* v143 — contenedor de escritorio compacto, sin espacio elástico vacío. */
@media(min-width:1280px){
  html body .accessibility-bar .accessibility-bar__inner.container{
    width:max-content!important;
    max-width:calc(100% - 24px)!important;
    flex:0 1 auto!important;
    justify-content:center!important;
    gap:10px 16px!important;
    margin-inline:auto!important;
  }
  html body .accessibility-bar .accessibility-bar__panel{
    width:auto!important;
    min-width:0!important;
    flex:0 1 auto!important;
    justify-content:center!important;
    gap:8px!important;
  }
  html body .accessibility-bar .accessibility-bar__controls,
  html body .accessibility-bar .accessibility-bar__links{
    flex:0 1 auto!important;
  }
}
