/* Preferencias de accesibilidad y panel de cabecera.
   El sitio mezcla rem y px: zoom escala tipografía y layout juntos. */
html[data-a11y-text="125"]{zoom:1.25}
html[data-a11y-text="150"]{zoom:1.5}
@supports not (zoom:1){
  html[data-a11y-text="125"]{font-size:125%}
  html[data-a11y-text="150"]{font-size:150%}
  html[data-a11y-text="125"] body,
  html[data-a11y-text="150"] body{font-size:1rem}
}

html.a11y-contrast{
  color-scheme:light;
}
html.a11y-contrast body{
  background:#fff !important;
  color:#000 !important;
}
html.a11y-contrast body :is(p,li,span,label,td,th,figcaption,small,strong,em){
  color:#000 !important;
}
html.a11y-contrast body :is(h1,h2,h3,h4,h5,h6){
  color:#000 !important;
}
html.a11y-contrast body a{
  color:#0033cc !important;
}
html.a11y-contrast body :is(.site-header,.site-footer,footer,.archive-hero,.editorial-hero,.breadcrumbs){
  background:#fff !important;
  color:#000 !important;
  border-color:#000 !important;
}
html.a11y-contrast body :is(.site-header a,.site-nav a,.archive-hero *,.editorial-hero *){
  color:#000 !important;
}
html.a11y-contrast body :is(button,input,select,textarea,.archive-card,.research-archive-card){
  border-color:#000 !important;
  color:#000 !important;
  background:#fff !important;
}
html.a11y-contrast body :focus-visible{
  outline:3px solid #000 !important;
  outline-offset:3px !important;
}

html.a11y-reduce-motion *,
html.a11y-reduce-motion *::before,
html.a11y-reduce-motion *::after{
  animation-duration:.01ms !important;
  animation-iteration-count:1 !important;
  transition-duration:.01ms !important;
  scroll-behavior:auto !important;
}

html.a11y-underline-links body a[href]{
  text-decoration:underline !important;
  text-underline-offset:.18em;
}

/* Mismo lenguaje visual que .portada-scroll-navigator; icono de accesibilidad. */
body.page-institucional .a11y-panel{
  --a11y-right:clamp(14px,2vw,30px);
  --a11y-bottom:clamp(18px,3vw,32px);
  --a11y-size:50px;
  --scroll-size:54px;
  --a11y-gap:14px;
  position:fixed;
  right:var(--a11y-right);
  bottom:var(--a11y-bottom);
  z-index:99;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
  pointer-events:none;
}
body.page-institucional:has(.portada-scroll-navigator) .a11y-panel{
  bottom:calc(var(--a11y-bottom) + var(--scroll-size) + var(--a11y-gap));
}
body.page-institucional .a11y-panel__trigger,
body.page-institucional .a11y-panel__options{
  pointer-events:auto;
}
body.page-institucional .a11y-panel__trigger{
  position:relative;
  box-sizing:border-box;
  display:grid;
  place-items:center;
  flex:none;
  width:var(--a11y-size);
  height:var(--a11y-size);
  min-width:var(--a11y-size);
  min-height:var(--a11y-size);
  max-width:var(--a11y-size);
  max-height:var(--a11y-size);
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  color:#fff;
  background:#153e52;
  box-shadow:0 9px 32px rgba(7,37,56,.24);
  isolation:isolate;
  overflow:hidden;
  cursor:pointer;
  transition:box-shadow .25s ease,transform .25s ease;
  -webkit-tap-highlight-color:transparent;
}
body.page-institucional .a11y-panel__trigger .a11y-panel__icon{
  position:absolute;
  top:50%;
  left:50%;
  z-index:1;
  width:var(--a11y-size);
  height:var(--a11y-size);
  margin:0;
  display:block;
  color:#fff;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
body.page-institucional .a11y-panel__trigger:hover{
  box-shadow:0 12px 34px rgba(7,37,56,.32);
  transform:translateY(-3px);
}
body.page-institucional .a11y-panel__trigger:focus-visible{
  box-shadow:0 12px 34px rgba(7,37,56,.32);
  outline:3px solid #17a9c4;
  outline-offset:4px;
}
body.page-institucional .a11y-panel.is-active .a11y-panel__trigger,
body.page-institucional .a11y-panel__trigger[aria-pressed="true"]{
  background:#1a4d65;
}
body.page-institucional .a11y-panel__options{
  order:-1;
  position:relative;
  z-index:1;
  box-sizing:border-box;
  width:min(300px,calc(100vw - 32px));
  padding:14px;
  border:1px solid #c5d7e0;
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 36px rgba(12,40,58,.18);
  color:#1d4458;
}
body.page-institucional .a11y-panel__options[hidden]{display:none !important}
body.page-institucional .a11y-panel__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 12px;
}
body.page-institucional .a11y-panel__title{
  margin:0;
  font:750 13px/1.2 var(--sans,"Open Sans",Arial,sans-serif);
  color:#16384a;
}
body.page-institucional .a11y-panel__close{
  box-sizing:border-box;
  display:inline-grid;
  place-items:center;
  flex:none;
  width:28px;
  height:28px;
  margin:0;
  padding:0;
  border:0;
  border-radius:4px;
  background:transparent;
  color:#21495e;
  font:700 1.45rem/1 var(--sans,"Open Sans",Arial,sans-serif);
  cursor:pointer;
}
body.page-institucional .a11y-panel__close:hover{color:#0f3a4c}
body.page-institucional .a11y-panel__close:focus-visible{
  outline:2px solid #187d96;
  outline-offset:2px;
}
body.page-institucional .a11y-panel__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:42px;
  padding:4px 0;
}
body.page-institucional .a11y-panel__row-label{
  flex:1 1 auto;
  font:650 12px/1.35 var(--sans,"Open Sans",Arial,sans-serif);
  color:#21495e;
}
body.page-institucional .a11y-panel__text-controls{
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
}
body.page-institucional .a11y-panel__text-value{
  min-width:44px;
  text-align:center;
  font:750 12px/1 var(--sans,"Open Sans",Arial,sans-serif);
  color:#174e61;
}
body.page-institucional .a11y-panel__text-btn{
  box-sizing:border-box;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:34px;
  min-width:34px;
  height:34px;
  min-height:34px;
  padding:0;
  border:1px solid #b8d2dc;
  border-radius:8px;
  background:#f3f8fa;
  color:#174e61;
  font:750 1.1rem/1 var(--sans,"Open Sans",Arial,sans-serif);
  cursor:pointer;
}
body.page-institucional .a11y-panel__text-btn:hover:not(:disabled){background:#eaf4f7}
body.page-institucional .a11y-panel__text-btn:disabled{
  opacity:.4;
  cursor:default;
}
body.page-institucional .a11y-panel__text-btn:focus-visible{
  outline:2px solid #187d96;
  outline-offset:2px;
}
body.page-institucional .a11y-panel__switch{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:34px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
body.page-institucional .a11y-panel__switch:focus-visible{
  outline:2px solid #187d96;
  outline-offset:2px;
  border-radius:10px;
}
body.page-institucional .a11y-panel__track{
  position:relative;
  display:block;
  width:34px;
  height:20px;
  border-radius:10px;
  background:#90a4af;
}
body.page-institucional .a11y-panel__thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:14px;
  height:14px;
  border-radius:4px;
  background:#fff;
  box-shadow:0 1px 3px rgba(12,40,58,.25);
  transition:transform .18s ease;
}
body.page-institucional .a11y-panel__switch[aria-checked="true"] .a11y-panel__track{
  background:#187d96;
}
body.page-institucional .a11y-panel__switch[aria-checked="true"] .a11y-panel__thumb{
  transform:translateX(14px);
}
body.page-institucional .a11y-panel__reset{
  display:block;
  width:100%;
  min-height:40px;
  margin-top:10px;
  padding:0 12px;
  border:1px solid #c5d7e0;
  border-radius:8px;
  background:#f7fafb;
  color:#21495e;
  font:650 12px/1 var(--sans,"Open Sans",Arial,sans-serif);
  cursor:pointer;
}
body.page-institucional .a11y-panel__reset:hover{background:#eef5f8}
body.page-institucional .a11y-panel__reset:focus-visible{
  outline:2px solid #187d96;
  outline-offset:2px;
}

@media(max-width:590px){
  body.page-institucional .a11y-panel{
    --a11y-right:14px;
    --a11y-bottom:calc(17px + env(safe-area-inset-bottom,0px));
    --a11y-size:44px;
    --scroll-size:48px;
    --a11y-gap:12px;
  }
  body.page-institucional .a11y-panel__trigger .a11y-panel__icon{
    transform:translate(-50%,-50%);
  }
}

@media(prefers-reduced-motion:reduce){
  body.page-institucional .a11y-panel__thumb,
  body.page-institucional .a11y-panel__trigger{transition:none}
}
