/* =============================================================
   SimulaSubsidio — Base común a todas las páginas
   Fuentes locales, accesibilidad y aviso de cookies.
   (index.html no carga styles.css, por eso esto va aparte.)
   ============================================================= */

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url('/assets/fonts/dm-sans-var.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/dm-sans-italic-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url('/assets/fonts/plus-jakarta-sans-var.woff2') format('woff2');
}

/* Enlace para saltar al contenido */
.skip-link {
  position: fixed; top: -100px; left: 1rem; z-index: 1000;
  background: #fff; color: #0C0CAF; font-weight: 700; font-size: .875rem;
  padding: .6rem 1rem; border-radius: 0 0 8px 8px; box-shadow: 0 4px 16px rgba(0,0,0,.2);
}
.skip-link:focus { top: 0; }

:focus-visible { outline: 2px solid #1414C8; outline-offset: 2px; }
#app-topnav :focus-visible, #app-sidebar :focus-visible, nav :focus-visible { outline-color: #fff; }

[hidden] { display: none !important; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------------------------------------------------------------
   AVISO DE COOKIES
--------------------------------------------------------------- */
.cookie-banner {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 900;
  max-width: 720px; margin: 0 auto;
  background: #fff; color: #111827;
  border: 1px solid #E4E9F2; border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0,0,0,.18);
  font-family: 'DM Sans', sans-serif;
}
.cookie-banner-inner { padding: 1.25rem 1.5rem; }
.cookie-banner-title { font-size: .95rem; font-weight: 700; margin-bottom: .35rem; color: #07076E; }
.cookie-banner-text { font-size: .82rem; line-height: 1.6; color: #4B5563; }
.cookie-banner-text a { color: #0C0CAF; font-weight: 600; text-decoration: underline; }
.cookie-banner-options { display: grid; gap: .5rem; margin-top: .875rem; padding: .875rem 1rem; background: #F8FAFD; border-radius: 10px; font-size: .82rem; }
.cookie-banner-options label { display: flex; gap: .6rem; align-items: flex-start; cursor: pointer; color: #374151; line-height: 1.45; }
.cookie-banner-options input { margin-top: .2rem; accent-color: #0C0CAF; }
.cookie-banner-actions { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; margin-top: 1rem; }
.cookie-banner .btn {
  display: inline-flex; align-items: center; justify-content: center;
  font: 600 .82rem 'DM Sans', sans-serif; padding: .6rem 1.1rem; border-radius: 8px;
  cursor: pointer; border: 1.5px solid #0C0CAF; background: #fff; color: #0C0CAF;
  transition: background .15s, color .15s;
}
.cookie-banner .btn:hover { background: #E8E8FF; }
.cookie-banner .btn-primary { background: #0C0CAF; color: #fff; }
.cookie-banner .btn-primary:hover { background: #07076E; }
@media (max-width: 560px) {
  .cookie-banner { left: .5rem; right: .5rem; bottom: .5rem; }
  .cookie-banner-actions .btn { flex: 1 1 45%; }
}
