
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Public+Sans:wght@400;500;600;700&family=Roboto+Mono:wght@400;500&display=swap');

:root{
    --negro:#0a0e14;
    --azul-oscuro:#10192b;
    --azul-panel:#16213a;
    --azul-linea:#253552;
    --dorado:#c9a227;
    --dorado-claro:#e0c15c;
    --texto:#e7e6df;
    --texto-tenue:#93a0b8;
    --rojo-alerta:#9c2f3a;
    --verde-activo:#4f8f5b;

    --fuente-display:'Oswald',sans-serif;
    --fuente-cuerpo:'Public Sans',sans-serif;
    --fuente-mono:'Roboto Mono',monospace;

    --radio:3px;
    --sombra:0 12px 30px rgba(0,0,0,.45);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    background:var(--negro);
    background-image:linear-gradient(180deg, rgba(16,25,43,.90) 0%, rgba(10,14,20,1) 320px);
    color:var(--texto);
    font-family:var(--fuente-cuerpo);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{
    font-family:var(--fuente-display);
    font-weight:600;
    letter-spacing:.02em;
    margin:0 0 .5em;
    color:#fff;
}
p{margin:0 0 1em;color:var(--texto-tenue)}

.contenedor{
    width:100%;
    max-width:1120px;
    margin:0 auto;
    padding:0 24px;
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
    outline:2px solid var(--dorado);
    outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
    *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* =========================
   HEADER / NAV
========================= */

.encabezado{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(10,14,20,.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(37,53,82,.85);
    box-shadow:0 10px 28px rgba(0,0,0,.18);
}

.nav-wrap{
    position:relative;
    display:flex;
    align-items:center;
    min-height:78px;
}

.nav{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    position:relative;
}

.marca{
    display:flex;
    align-items:center;
    gap:14px;
    padding:6px 0;
    transition:transform .18s ease,opacity .18s ease;
}
.marca:hover{transform:translateY(-1px);opacity:.96}

.marca-escudo{
    width:42px;
    height:42px;
    flex-shrink:0;
    filter:drop-shadow(0 0 10px rgba(201,162,39,.14));
}

.marca-texto{
    display:flex;
    flex-direction:column;
    line-height:1.1;
}
.marca-texto .siglas{
    font-family:var(--fuente-display);
    font-size:22px;
    letter-spacing:.09em;
    color:#fff;
}
.marca-texto .sub{
    font-family:var(--fuente-mono);
    font-size:10px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--dorado);
    margin-top:3px;
}

.nav-links{
    display:flex;
    align-items:center;
    gap:6px;
    list-style:none;
    margin:0;
    padding:0;
}
.nav-links li{margin:0}
.nav-links a{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 14px;
    font-family:var(--fuente-mono);
    font-size:13px;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--texto-tenue);
    border-radius:999px;
    transition:color .18s ease,background .18s ease,transform .18s ease;
}
.nav-links a::after{
    content:"";
    position:absolute;
    left:14px;
    right:14px;
    bottom:7px;
    height:1px;
    background:var(--dorado);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .18s ease;
    opacity:.75;
}
.nav-links a:hover{
    color:var(--dorado-claro);
    background:rgba(201,162,39,.08);
    transform:translateY(-1px);
}
.nav-links a:hover::after,
.nav-links a.activo::after{transform:scaleX(1)}
.nav-links a.activo{
    color:var(--dorado-claro);
    background:rgba(201,162,39,.10);
}

.nav-panel .btn-panel{
    padding:10px 16px;
    min-height:40px;
    border-radius:999px;
}

.nav-toggle{
    display:none;
    background:rgba(7,11,18,.88);
    border:1px solid var(--azul-linea);
    color:var(--texto);
    padding:10px 12px;
    border-radius:12px;
    cursor:pointer;
    transition:border-color .18s ease,transform .18s ease,background .18s ease;
    touch-action:manipulation;
}
.nav-toggle:hover{
    border-color:var(--dorado);
    transform:translateY(-1px);
    background:rgba(201,162,39,.06);
}

/* =========================
   HERO
========================= */

.hero{
    position:relative;
    padding:96px 24px 72px;
    overflow:hidden;
    border-bottom:1px solid var(--azul-linea);
}
.hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 80% 35%, rgba(201,162,39,.12), transparent 30%),
        radial-gradient(circle at 15% 85%, rgba(35,58,95,.45), transparent 45%),
        linear-gradient(90deg,#13203a 0%, #0c1119 100%);
    pointer-events:none;
    z-index:-1;
}
.hero-grid{
    display:grid;
    grid-template-columns:58% 42%;
    align-items:center;
    gap:120px;
}
.hero-eyebrow{
    font-family:var(--fuente-mono);
    font-size:12px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--dorado);
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
}
.hero-eyebrow::before{
    content:"";
    width:8px;
    height:8px;
    background:var(--verde-activo);
    border-radius:50%;
    box-shadow:0 0 0 3px rgba(79,143,91,.25);
}
.hero h1{
    font-size:78px;
    line-height:.95;
    letter-spacing:-1px;
    margin-bottom:28px;
}
.hero .acento{
    color:var(--dorado);
    text-shadow:0 0 18px rgba(201,162,39,.18);
}
.segunda-linea{color:#fff}
.hero-lead{
    max-width:620px;
    font-size:18px;
    line-height:1.9;
    color:#9fb2cb;
    margin-bottom:38px;
}
.hero-cta{
    display:flex;
    gap:18px;
    margin-bottom:30px;
    flex-wrap:wrap;
}
.hero-badges{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:15px;
}
.hero-badges span{
    padding:9px 16px;
    border:1px solid rgba(201,162,39,.35);
    background:rgba(201,162,39,.08);
    border-radius:25px;
    color:var(--dorado);
    font-size:12px;
    font-family:var(--fuente-mono);
}
.hero-logo{
    display:flex;
    justify-content:center;
    align-items:center;
    position:relative;
}
.hero-logo::before{
    content:"";
    position:absolute;
    width:460px;
    height:460px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(201,162,39,.18) 0%, rgba(18,40,77,.15) 35%, transparent 72%);
    z-index:0;
}
.hero-logo img{
    position:relative;
    z-index:1;
    width:380px;
    max-width:100%;
    height:auto;
    filter:drop-shadow(0 0 20px rgba(201,162,39,.25)) drop-shadow(0 0 40px rgba(0,90,255,.18));
}
.placa-visual{
    position:relative;
    justify-self:center;
    width:100%;
    max-width:320px;
}

/* =========================
   ESTADÍSTICAS
========================= */

.hero-stats-pro{
    margin-top:45px;
    border:1px solid #2b3d5c;
    border-radius:10px;
    overflow:hidden;
    background:#13203a;
    box-shadow:0 15px 40px rgba(0,0,0,.35);
}
.stat-item{
    display:grid;
    grid-template-columns:90px 90px 1fr;
    align-items:center;
    border-bottom:1px solid #314568;
    min-height:95px;
}
.stat-item:last-child{border-bottom:none}
.stat-icon{
    width:100px;
    height:100px;
    display:flex;
    justify-content:center;
    align-items:center;
    background:#10192d;
}
.stat-num{
    display:flex;
    justify-content:center;
    align-items:center;
    font-family:var(--fuente-display);
    font-size:52px;
    color:#fff;
    font-weight:600;
    border-right:2px solid var(--dorado);
}
.stat-info{padding:0 22px}
.stat-info h3{
    margin:0 0 5px;
    font-size:22px;
    letter-spacing:.06em;
    color:#fff;
}
.stat-info p{
    margin-top:10px;
    color:#94a9c6;
    font-size:13px;
    max-width:650px;
    line-height:1.4;
}

/* =========================
   BOTONES
========================= */

.btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:16px 30px;
    font-family:var(--fuente-mono);
    font-size:14px;
    letter-spacing:.04em;
    text-transform:uppercase;
    border-radius:var(--radio);
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .12s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-dorado{
    background:var(--dorado);
    color:#14100a;
    font-weight:600;
}
.btn-dorado:hover{background:var(--dorado-claro)}
.btn-linea{
    border-color:var(--azul-linea);
    color:var(--texto);
    background:transparent;
}
.btn-linea:hover{
    border-color:var(--dorado);
    color:var(--dorado-claro);
}

/* =========================
   SECCIONES
========================= */

.seccion{
    padding:72px 24px;
}
.seccion-alterna{
    background:var(--azul-oscuro);
    border-top:1px solid var(--azul-linea);
    border-bottom:1px solid var(--azul-linea);
}
.seccion-cab{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    margin-bottom:36px;
    flex-wrap:wrap;
}
.seccion-cab .rotulo{
    font-family:var(--fuente-mono);
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--dorado);
    margin-bottom:8px;
    display:block;
}
.seccion-cab h2{
    font-size:30px;
    margin-bottom:0;
}
.seccion-cab .ver-todo{
    font-family:var(--fuente-mono);
    font-size:13px;
    color:var(--texto-tenue);
    white-space:nowrap;
}
.seccion-cab .ver-todo:hover{color:var(--dorado-claro)}

/* =========================
   DESTACADOS
========================= */

.destacados-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
}
.tarjeta-destacado{
    position:relative;
    background:linear-gradient(160deg, var(--azul-panel), var(--azul-oscuro));
    border:1px solid var(--azul-linea);
    border-radius:var(--radio);
    padding:28px;
    display:flex;
    gap:20px;
}
.tarjeta-destacado .sello{
    position:absolute;
    top:20px;
    right:20px;
    font-family:var(--fuente-mono);
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--dorado);
    border:1px solid var(--dorado);
    padding:4px 8px;
    border-radius:999px;
}
.tarjeta-destacado .foto,
.tarjeta-destacado .foto-vacia{
    width:84px;
    height:84px;
    border-radius:var(--radio);
    background:var(--negro);
    border:2px solid var(--dorado);
    object-fit:cover;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:var(--fuente-display);
    color:var(--dorado);
    font-size:24px;
}
.tarjeta-destacado h3{font-size:20px;margin-bottom:2px}
.tarjeta-destacado .rango{
    font-family:var(--fuente-mono);
    font-size:12px;
    color:var(--texto-tenue);
    margin-bottom:10px;
}
.tarjeta-destacado .motivo{
    font-size:14px;
    margin-bottom:0;
}

/* =========================
   NOTICIAS
========================= */

.noticias-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}
.tarjeta-noticia{
    background:var(--azul-panel);
    border:1px solid var(--azul-linea);
    border-radius:var(--radio);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    transition:border-color .15s ease, transform .15s ease;
}
.tarjeta-noticia:hover{
    border-color:var(--dorado);
    transform:translateY(-2px);
}
.tarjeta-noticia .img{
    width:100%;
    height:160px;
    object-fit:cover;
    background:var(--azul-linea);
}
.tarjeta-noticia .cuerpo{padding:20px}
.tarjeta-noticia .meta{
    font-family:var(--fuente-mono);
    font-size:11px;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--dorado);
    margin-bottom:10px;
    display:flex;
    gap:10px;
}
.tarjeta-noticia .meta .fecha{color:var(--texto-tenue)}
.tarjeta-noticia h3{font-size:18px;margin-bottom:8px}
.tarjeta-noticia p{font-size:14px;margin-bottom:0}

/* artículo individual */
.articulo-cab{max-width:760px;margin:0 auto 32px}
.articulo-cab .meta{
    font-family:var(--fuente-mono);
    font-size:12px;
    color:var(--dorado);
    text-transform:uppercase;
    letter-spacing:.05em;
    margin-bottom:14px;
}
.articulo-cab .meta span{color:var(--texto-tenue);margin-left:10px}
.articulo-cab h1{font-size:34px}
.articulo-img{
    max-width:760px;
    margin:0 auto 32px;
    border-radius:var(--radio);
    overflow:hidden;
    border:1px solid var(--azul-linea);
}
.articulo-cuerpo{
    max-width:760px;
    margin:0 auto;
    font-size:16px;
    color:#cfd4de;
}
.articulo-cuerpo p{color:inherit}

/* paginación */
.paginacion{
    display:flex;
    gap:8px;
    justify-content:center;
    margin-top:40px;
    flex-wrap:wrap;
}
.paginacion a,.paginacion span{
    font-family:var(--fuente-mono);
    font-size:13px;
    padding:8px 14px;
    border:1px solid var(--azul-linea);
    border-radius:var(--radio);
    color:var(--texto-tenue);
}
.paginacion a:hover{
    border-color:var(--dorado);
    color:var(--dorado-claro);
}
.paginacion .actual{
    background:var(--dorado);
    color:#14100a;
    border-color:var(--dorado);
    font-weight:600;
}

/* =========================
   ROSTER / OFICIALES
========================= */

.roster-hero{padding-bottom:24px}
.roster-banner{
    display:grid;
    grid-template-columns:1.6fr .65fr;
    gap:24px;
    align-items:stretch;
    padding:28px;
    background:
        radial-gradient(circle at top right, rgba(201,162,39,.10), transparent 34%),
        linear-gradient(180deg, rgba(22,33,58,.95), rgba(16,25,43,.98));
    border:1px solid rgba(37,53,82,.95);
    border-radius:14px;
    box-shadow:0 16px 36px rgba(0,0,0,.20);
    animation:rosterFadeUp .45s ease both;
}
.roster-banner-texto h1{
    font-size:42px;
    margin:6px 0 14px;
    line-height:1;
}
.roster-banner-texto p{
    max-width:62ch;
    margin:0;
    color:#9fb2cb;
    line-height:1.7;
}
.roster-banner-estadistica{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:18px;
    border:1px solid rgba(201,162,39,.18);
    border-radius:12px;
    background:rgba(10,14,20,.42);
}
.roster-numero{
    font-family:var(--fuente-display);
    font-size:58px;
    line-height:1;
    color:#fff;
}
.roster-label{
    margin-top:6px;
    font-family:var(--fuente-mono);
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--texto-tenue);
    text-align:center;
}
.filtros-roster{
    margin-top:22px;
    margin-bottom:0;
    padding:18px;
    background:rgba(16,25,43,.65);
    border:1px solid var(--azul-linea);
    border-radius:12px;
    backdrop-filter:blur(8px);
    animation:rosterFadeUp .55s ease both;
    display:flex;
    gap:12px;
    align-items:center;
    flex-wrap:wrap;
}
.filtro-busqueda{
    display:flex;
    align-items:center;
    gap:10px;
    flex:1;
    min-width:240px;
    background:var(--negro);
    border:1px solid var(--azul-linea);
    border-radius:var(--radio);
    padding:0 12px;
}
.filtro-busqueda .icono{
    color:var(--dorado);
    font-family:var(--fuente-mono);
    font-size:16px;
    user-select:none;
}
.filtro-busqueda input{
    width:100%;
    background:transparent;
    border:none;
    color:var(--texto);
    font-family:var(--fuente-cuerpo);
    font-size:14px;
    padding:12px 0;
    outline:none;
}
.filtros-roster select{
    min-width:180px;
    cursor:pointer;
}
.roster-listado{padding-top:10px}
.roster-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));
    gap:18px;
}
.tarjeta-oficial{
    position:relative;
    overflow:visible;
    padding:18px;
    border-radius:14px;
    background:linear-gradient(180deg, rgba(22,33,58,.98), rgba(16,25,43,.98));
    border:1px solid var(--azul-linea);
    box-shadow:0 10px 24px rgba(0,0,0,.18);
    transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
    min-height:132px;
    display:flex;
    gap:16px;
    align-items:flex-start;
}
.tarjeta-oficial::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.04) 45%, transparent 70%);
    transform:translateX(-120%);
    transition:transform .65s ease;
    pointer-events:none;
    border-radius:inherit;
}
.tarjeta-oficial:hover{
    transform:translateY(-4px);
    border-color:rgba(201,162,39,.38);
    box-shadow:0 16px 34px rgba(0,0,0,.24);
}
.tarjeta-oficial:hover::before{transform:translateX(120%)}
.tarjeta-avatar{
    flex-shrink:0;
    position:relative;
    z-index:1;
}
.tarjeta-avatar img,
.tarjeta-avatar .foto-vacia{
    width:110px;
    height:110px;
    border-radius:50%;
    object-fit:cover;
    border:3px solid var(--dorado);
    background:var(--negro);
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:var(--fuente-display);
    color:var(--dorado);
    font-size:28px;
}
.tarjeta-cuerpo{
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:8px;
    position:relative;
    z-index:1;
}
.tarjeta-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
}
.tarjeta-meta .placa{
    font-family:var(--fuente-mono);
    font-size:11px;
    color:var(--texto-tenue);
    letter-spacing:.05em;
    text-transform:uppercase;
}
.tarjeta-meta .rango{
    font-family:var(--fuente-mono);
    font-size:11px;
    color:var(--dorado);
    letter-spacing:.06em;
    text-transform:uppercase;
}
.tarjeta-oficial h3{
    font-size:18px;
    margin:2px 0 0;
    line-height:1.15;
}
.tarjeta-oficial .division{
    font-size:13px;
    color:#9fb2cb;
    margin:0;
}
.tarjeta-oficial .etiqueta-estado{
    margin-top:6px;
    width:fit-content;
}
.etiqueta-estado{
    display:inline-flex;
    align-items:center;
    padding:5px 12px;
    border-radius:999px;
    font-family:var(--fuente-mono);
    font-size:11px;
    text-transform:uppercase;
}
.etiqueta-estado.activo{
    background:rgba(79,143,91,.14);
    color:#9ef7bf;
    border:1px solid rgba(79,143,91,.35);
}
.etiqueta-estado.baja{
    background:rgba(147,160,184,.10);
    color:#cfd7e6;
    border:1px solid rgba(147,160,184,.22);
}
.etiqueta-estado.suspendido{
    background:rgba(156,47,58,.12);
    color:#f0b8bd;
    border:1px solid rgba(156,47,58,.35);
}
.tarjeta-acciones{
    display:flex;
    gap:10px;
    margin-top:14px;
    flex-wrap:wrap;
    position:relative;
    z-index:2;
}
.tarjeta-acciones .btn{
    flex:1;
    min-width:120px;
    text-align:center;
    justify-content:center;
    padding:8px 12px;
    font-size:12px;
    line-height:1;
    min-height:34px;
}
.roster-vacio{
    margin-top:8px;
    background:rgba(16,25,43,.6);
}

@keyframes rosterFadeUp{
    from{opacity:0;transform:translateY(10px)}
    to{opacity:1;transform:translateY(0)}
}

/* perfil */
.perfil-oficial{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:40px;
}
.perfil-foto,
.perfil-foto-vacia{
    width:100%;
    aspect-ratio:1;
    border-radius:var(--radio);
    object-fit:cover;
    border:2px solid var(--dorado);
    background:var(--azul-panel);
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:var(--fuente-display);
    font-size:64px;
    color:var(--dorado);
}
.ficha-datos{
    font-family:var(--fuente-mono);
    font-size:13px;
    border-top:1px solid var(--azul-linea);
    margin-top:18px;
}
.ficha-datos div{
    display:flex;
    justify-content:space-between;
    padding:10px 0;
    border-bottom:1px solid var(--azul-linea);
}
.ficha-datos span:first-child{color:var(--texto-tenue)}
.ficha-datos span:last-child{color:var(--texto)}

/* =========================
   VACÍOS / ALERTAS
========================= */

.vacio{
    text-align:center;
    padding:60px 20px;
    border:1px dashed var(--azul-linea);
    border-radius:var(--radio);
    color:var(--texto-tenue);
    font-family:var(--fuente-mono);
    font-size:14px;
}
.alerta{
    padding:12px 16px;
    border-radius:var(--radio);
    font-size:14px;
    margin-bottom:20px;
    border:1px solid;
}
.alerta-error{
    background:rgba(156,47,58,.12);
    border-color:var(--rojo-alerta);
    color:#f0b8bd;
}
.alerta-exito{
    background:rgba(79,143,91,.12);
    border-color:var(--verde-activo);
    color:#bfe3c5;
}

/* =========================
   CONTACTO / VALORES
========================= */

.valores-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}
.valor-item{
    border-left:2px solid var(--dorado);
    padding-left:18px;
}
.valor-item h3{font-size:17px}
.valor-item p{font-size:14px;margin-bottom:0}
.info-contacto{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--azul-linea);
    border:1px solid var(--azul-linea);
    border-radius:var(--radio);
    overflow:hidden;
}
.info-contacto div{
    background:var(--azul-panel);
    padding:24px;
}
.info-contacto .lbl{
    font-family:var(--fuente-mono);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--dorado);
    display:block;
    margin-bottom:8px;
}

/* =========================
   PIE
========================= */

.pie{
    border-top:1px solid var(--azul-linea);
    padding:48px 24px 28px;
}
.pie-grid{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr;
    gap:40px;
    margin-bottom:32px;
}
.pie h4{
    font-family:var(--fuente-mono);
    font-size:12px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--dorado);
    margin-bottom:14px;
}
.pie ul{
    list-style:none;
    margin:0;
    padding:0;
}
.pie li{margin-bottom:8px}
.pie a{color:var(--texto-tenue);font-size:14px}
.pie a:hover{color:var(--dorado-claro)}
.pie-base{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:10px;
    padding-top:20px;
    border-top:1px solid var(--azul-linea);
    font-family:var(--fuente-mono);
    font-size:12px;
    color:var(--texto-tenue);
}

/* =========================
   DOCUMENTACIÓN
========================= */

.docs-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:40px;
}
.doc-card{
    background:linear-gradient(180deg, rgba(22,33,58,.98), rgba(16,25,43,.98));
    border:1px solid var(--azul-linea);
    border-radius:10px;
    padding:24px;
    box-shadow:0 12px 28px rgba(0,0,0,.22);
    transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
    position:relative;
    overflow:hidden;
}
.doc-card:hover{
    transform:translateY(-4px);
    border-color:rgba(201,162,39,.35);
    box-shadow:0 16px 36px rgba(0,0,0,.28);
}
.doc-card::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.03) 45%, transparent 70%);
    transform:translateX(-120%);
    transition:transform .7s ease;
    pointer-events:none;
}
.doc-card:hover::before{transform:translateX(120%)}
.doc-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
}
.doc-categoria{
    font-family:var(--fuente-mono);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--dorado);
    border:1px solid rgba(201,162,39,.3);
    background:rgba(201,162,39,.06);
    padding:5px 10px;
    border-radius:999px;
}
.doc-version{
    font-family:var(--fuente-mono);
    font-size:11px;
    color:var(--texto-tenue);
    text-transform:uppercase;
    letter-spacing:.08em;
}
.doc-portada{
    width:100%;
    height:180px;
    object-fit:cover;
    border-radius:8px;
    border:1px solid var(--azul-linea);
    margin-bottom:16px;
}
.doc-card h3{
    font-size:22px;
    margin-bottom:10px;
}
.doc-card p{
    font-size:14px;
    line-height:1.65;
    color:#9fb2cb;
    margin-bottom:18px;
}
.doc-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-bottom:20px;
    padding-top:16px;
    border-top:1px solid var(--azul-linea);
}
.doc-meta .lbl{
    display:block;
    font-family:var(--fuente-mono);
    font-size:10px;
    color:var(--texto-tenue);
    text-transform:uppercase;
    letter-spacing:.08em;
    margin-bottom:4px;
}
.doc-meta strong{
    font-family:var(--fuente-display);
    color:#fff;
    font-size:16px;
}
.doc-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.doc-actions .btn{
    flex:1;
    justify-content:center;
}

.editor-grid{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:24px;
    align-items:start;
}
.editor-preview{min-width:0}
.preview-card{
    background:linear-gradient(180deg,#182543,#111b31);
    border:1px solid var(--azul-linea);
    border-radius:8px;
    padding:20px;
    box-shadow:0 10px 24px rgba(0,0,0,.22);
    position:sticky;
    top:24px;
}
.preview-etiqueta{
    display:inline-block;
    font-family:var(--fuente-mono);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--dorado);
    margin-bottom:12px;
}
.preview-badges{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:14px;
}
.preview-card h3{
    font-size:22px;
    margin-bottom:10px;
}
.preview-card p{
    margin-bottom:14px;
    color:var(--texto-tenue);
    line-height:1.65;
}
.preview-imagen-wrap img{
    width:100%;
    border-radius:6px;
    border:1px solid var(--azul-linea);
    object-fit:cover;
    margin-bottom:14px;
}
.preview-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    padding-top:14px;
    border-top:1px solid var(--azul-linea);
    font-family:var(--fuente-mono);
    font-size:12px;
    color:var(--texto-tenue);
}
.preview-meta strong{color:#fff}
.editor-acciones{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:6px;
}

/* =========================
   UTILIDADES
========================= */

.hero-badges span,
.doc-categoria,
.doc-version,
.alerta,
.paginacion a,
.paginacion span,
.etiqueta-estado,
.tarjeta-destacado .sello{
    user-select:none;
}


@media (max-width: 1100px){
    .contenedor{padding:0 18px}
    .hero-grid{grid-template-columns:1fr;gap:40px}
    .hero h1{font-size:56px}
    .destacados-grid,.noticias-grid,.docs-grid,.pie-grid{grid-template-columns:1fr 1fr}
    .roster-banner{grid-template-columns:1fr}
}

@media (max-width: 860px){
    .nav{
        position:relative;
        z-index:1005;
    }

    .nav-toggle{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        position:relative;
        z-index:1007;
        width:46px;
        height:46px;
    }

    .nav-links{
        position:absolute;
        top:calc(100% + 12px);
        left:0;
        right:0;
        display:none;
        flex-direction:column;
        align-items:stretch;
        gap:8px;
        padding:12px;
        margin:0;
        background:rgba(10,14,20,.99);
        border:1px solid rgba(37,53,82,.95);
        border-radius:16px;
        box-shadow:0 18px 36px rgba(0,0,0,.34);
        z-index:1006;
        max-height:calc(100vh - 100px);
        overflow:auto;
        -webkit-overflow-scrolling:touch;
    }

    .nav-links.abierto{
        display:flex !important;
    }

    .nav-links li{
        width:100%;
    }

    .nav-links a,
    .nav-panel .btn-panel{
        width:100%;
        justify-content:center;
        min-height:48px;
    }

    .nav-links a{
        padding:12px 14px;
    }

    .nav-links a::after{
        left:18px;
        right:18px;
    }

    .hero{
        padding:72px 18px 56px;
    }
    .hero h1{font-size:48px}
    .hero-lead{font-size:16px;line-height:1.7}
    .hero-logo::before{width:320px;height:320px}
    .hero-logo img{width:280px}

    .hero-stats-pro{margin-top:30px}
    .stat-item{
        grid-template-columns:1fr;
        text-align:center;
        padding:24px;
        gap:10px;
    }
    .stat-icon{
        width:74px;
        height:74px;
        margin:0 auto;
    }
    .stat-num{
        border-right:none;
        font-size:54px;
        padding:8px 0;
    }
    .stat-info{padding:0}
    .stat-info h3{font-size:22px}
    .stat-info p{max-width:none;font-size:14px}

    .seccion{padding:56px 18px}
    .seccion-cab h2{font-size:24px}
    .destacados-grid,.noticias-grid,.docs-grid,.pie-grid,.valores-grid,.info-contacto{grid-template-columns:1fr}
    .tarjeta-destacado{flex-direction:column;align-items:flex-start}
    .perfil-oficial,.editor-grid{grid-template-columns:1fr}
    .preview-card{position:relative;top:auto}

    .roster-banner{padding:22px}
    .roster-banner h1,.roster-banner-texto h1{font-size:34px}
    .roster-resumen,.cp-resumen{grid-template-columns:1fr}
    .filtros-roster{padding:14px}
    .filtro-busqueda{min-width:100%}
}

@media (max-width: 640px){
    .contenedor{padding:0 14px}
    .nav-wrap{min-height:72px}
    .marca-escudo{width:38px;height:38px}
    .marca-texto .siglas{font-size:20px}
    .marca-texto .sub{font-size:9px}

    .hero{padding:60px 14px 48px}
    .hero h1{font-size:40px;line-height:.98}
    .hero-lead{font-size:15px}
    .hero-cta{gap:10px}
    .btn{
        width:100%;
        justify-content:center;
        padding:14px 18px;
        font-size:12px;
    }
    .hero-badges span{font-size:10px;padding:7px 12px}
    .hero-logo::before{width:260px;height:260px}
    .hero-logo img{width:220px}

    .hero-stats-pro{margin-top:24px}
    .stat-item{padding:18px;margin-bottom:12px}
    .stat-num{font-size:44px;padding:4px 0 8px}
    .stat-info h3{font-size:18px}
    .stat-info p{font-size:13px;line-height:1.55}

    .seccion{padding:44px 14px}
    .seccion-cab{gap:12px;margin-bottom:22px}
    .seccion-cab h2{font-size:22px}
    .tarjeta-noticia .img{height:140px}
    .tarjeta-noticia .cuerpo{padding:16px}
    .tarjeta-noticia h3{font-size:16px}

    .tarjeta-destacado{padding:18px}
    .tarjeta-destacado .foto,
    .tarjeta-destacado .foto-vacia{width:72px;height:72px}

    .pie{padding:34px 14px 22px}
    .pie-base{flex-direction:column;align-items:flex-start}

    .roster-banner{
        padding:18px;
        gap:16px;
    }
    .roster-banner-texto h1{
        font-size:28px;
        line-height:1;
    }
    .roster-banner-estadistica{padding:14px}
    .roster-numero{font-size:42px}
    .filtros-roster{padding:14px;gap:10px}
    .filtros-roster select,.filtros-roster button{width:100%}
    .roster-grid{grid-template-columns:1fr}
    .tarjeta-oficial{
        padding:14px;
        gap:12px;
        flex-direction:column;
        align-items:center;
        text-align:center;
    }
    .tarjeta-avatar img,
    .tarjeta-avatar .foto-vacia{width:92px;height:92px}
    .tarjeta-meta{justify-content:center}
    .tarjeta-oficial h3{font-size:16px;line-height:1.2}
    .tarjeta-oficial .division{font-size:12px;line-height:1.45}
    .tarjeta-acciones{width:100%;margin-top:12px}
    .tarjeta-acciones .btn{width:100%;min-width:100%}

    .perfil-foto,
    .perfil-foto-vacia{font-size:48px}

    .docs-grid{grid-template-columns:1fr}
    .doc-card{padding:18px}
    .doc-meta{grid-template-columns:1fr}
    .doc-actions .btn{min-width:100%}

    .articulo-cab h1{font-size:26px}
}

@media (max-width: 420px){
    .hero h1{font-size:34px}
    .hero-lead{font-size:14px}
    .roster-banner-texto h1{font-size:24px}
    .tarjeta-oficial{padding:12px}
    .tarjeta-avatar img,
    .tarjeta-avatar .foto-vacia{width:84px;height:84px}
}

.hidden{display:none!important}

/* Fix extra para móviles: garantiza que el menú quede sobre el contenido */
@media (max-width: 860px){
    .encabezado{z-index:9999}
    .nav-wrap{overflow:visible}
}