@font-face { font-family: 'Roboto Flex'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(fuentes/robotoflex-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Roboto Flex'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(fuentes/robotoflex-latin.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; }
:root {
  --fondo: #FFFFFF; --suave: #F3F6FA; --tinta: #191C20; --texto: #2E3238; --tenue: #5A5F67; --raya: #DCE3EB;
  --azul: #1D4F7A; --azul-hover: #10263A; --azul-claro: #D3E4F5;
  --letra: 'Roboto Flex', Roboto, 'Segoe UI', system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fondo); color: var(--texto); font: 400 1rem/1.55 var(--letra); }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--azul); }
a:hover { color: var(--azul-hover); }
:focus-visible { outline: 3px solid var(--azul); outline-offset: 2px; }
.env { width: min(1180px, 100% - 32px); margin-inline: auto; }
.saltar { position: absolute; left: 16px; top: -60px; background: var(--azul); color: #fff; padding: 8px 12px; border-radius: 6px; z-index: 10; }
.saltar:focus { top: 8px; color: #fff; }
.btn { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 8px; background: var(--azul); color: #fff; font-weight: 600; text-decoration: none; }
.btn:hover { background: var(--azul-hover); color: #fff; }

.cab { border-bottom: 1px solid var(--raya); background: var(--fondo); }
.cab .env { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 68px; }
.marca { display: flex; align-items: center; gap: 10px; color: var(--tinta); text-decoration: none; font-weight: 700; }
.marca span { display: flex; flex-direction: column; line-height: 1.2; }
.marca small { font-weight: 400; color: var(--tenue); font-size: .8125rem; }

.heroe { padding: 56px 0 32px; max-width: 760px; }
.antetitulo { margin: 0 0 8px; color: var(--azul); font-weight: 600; font-size: .875rem; letter-spacing: .04em; text-transform: uppercase; }
h1 { margin: 0 0 16px; color: var(--tinta); font-size: clamp(2rem, 1.3rem + 3vw, 3.25rem); line-height: 1.08; font-weight: 700; letter-spacing: -.01em; font-stretch: 92%; }
.entradilla { margin: 0 0 24px; font-size: 1.125rem; color: var(--texto); }
.incluye { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; color: var(--tenue); font-size: .9375rem; }
.incluye li { padding-left: 16px; position: relative; }
.incluye li::before { content: ''; position: absolute; left: 0; top: .6em; width: 7px; height: 7px; border-radius: 2px; background: var(--azul); }

.filtros { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 0; margin-bottom: 8px; background: var(--fondo); border-bottom: 1px solid var(--raya); }
.filtro { font: inherit; font-size: .9375rem; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--raya); background: var(--fondo); color: var(--texto); cursor: pointer; }
.filtro:hover { border-color: var(--azul); color: var(--azul); }
.filtro[aria-pressed="true"] { background: var(--azul); border-color: var(--azul); color: #fff; }
#cuenta { margin-left: auto; color: var(--tenue); font-size: .875rem; }

.rejilla { list-style: none; margin: 0; padding: 24px 0 8px; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 32px 24px; }
.tarjeta { display: flex; flex-direction: column; position: relative; }
.tarjeta[hidden] { display: none; }
.mini { display: block; border-radius: 8px; overflow: hidden; border: 1px solid var(--raya); background: var(--suave); aspect-ratio: 16 / 10; margin-bottom: 14px; }
.mini img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .35s ease; }
.tarjeta:hover .mini img { transform: scale(1.03); }
.grupo { margin: 0 0 4px; color: var(--azul); font-size: .8125rem; font-weight: 600; }
.tarjeta h2 { margin: 0 0 6px; font-size: 1.1875rem; line-height: 1.25; color: var(--tinta); }
.tarjeta h2 a { color: inherit; text-decoration: none; }
.tarjeta h2 a::after { content: ''; position: absolute; inset: 0; }
.tarjeta:hover h2 a { color: var(--azul); text-decoration: underline; text-underline-offset: 3px; }
.ejemplo { margin: 0 0 4px; color: var(--tenue); font-size: .875rem; }
.funcion { margin: 0; font-size: .9375rem; }

.cierre { margin: 48px 0 64px; padding: 32px; border-radius: 8px; background: var(--suave); border: 1px solid var(--raya); }
.cierre h2 { margin: 0 0 8px; color: var(--tinta); font-size: 1.5rem; }
.cierre p { margin: 0 0 16px; max-width: 640px; }
.cierre p:last-child { margin: 0; }

footer { border-top: 1px solid var(--raya); padding: 24px 0; color: var(--tenue); font-size: .875rem; }
footer .env { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }

@media (max-width: 640px) {
  .heroe { padding: 36px 0 24px; }
  .filtros { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .filtro { flex: none; }
  #cuenta { display: none; }
  .cierre { padding: 24px 20px; }
  .cab .btn { padding: 0 14px; }
  .marca small { display: none; }
}
@media (prefers-reduced-motion: reduce) { .mini img { transition: none; } }
