/* Empleos Perú Hoy — portal.css v2 (UTF-8)
   Sistema visual: hero, tiles de secciones, carruseles, tarjetas ricas con cobertura,
   ficha con resumen e iconos. Solo estética: no altera datos ni arquitectura. */

:root{
  --azul:#146080; --azul-oscuro:#0e4a63; --azul-claro:#e7f2f7;
  --dorado:#FFC729; --dorado-oscuro:#e8b31a;
  --fondo:#f2f6f9; --tinta:#17242e; --tinta-suave:#5b6b78; --tenue:#8899a6;
  --borde:#e3eaf1; --blanco:#fff;
  --sombra:0 10px 30px rgba(20,96,128,.12);
  --sombra-suave:0 3px 12px rgba(20,96,128,.08);
  --radio:18px; --radio-sm:12px;
  --ok:#1f7a35; --ok-bg:#e9f7ec; --ok-borde:#c7e9cf;
  --cierre:#8a5b00; --cierre-bg:#fdf3e0; --cierre-borde:#f3dfb5;
  --grad-hero:linear-gradient(135deg,#146080 0%,#0d5474 45%,#0b3d52 100%);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:var(--fondo);color:var(--tinta);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--azul);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
h1,h2,h3{letter-spacing:-.4px}
.contenedor{width:min(1160px,92%);margin:0 auto}

/* Iconos (sprite inline) */
.ico{width:1em;height:1em;flex:none;vertical-align:-.12em;fill:none;stroke:currentColor;
  stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ico-s{font-size:.92em}
.ico-m{font-size:1.15em}
.ico-l{font-size:1.6em}

/* ============ Encabezado ============ */
.encabezado{background:rgba(255,255,255,.96);backdrop-filter:blur(8px);
  border-bottom:3px solid var(--dorado);position:sticky;top:0;z-index:50;box-shadow:0 2px 12px rgba(0,0,0,.07)}
.encabezado-fila{display:flex;align-items:center;gap:24px;padding:11px 0}
.logo{font-size:1.35rem;font-weight:800;color:var(--tinta);letter-spacing:-.5px;white-space:nowrap}
.logo:hover{text-decoration:none}
.logo-marca{color:var(--azul)}
.logo-hoy{color:#b8860b}
.nav{display:flex;gap:18px;align-items:center;flex:1}
.nav-enlace{font-weight:600;color:var(--tinta);padding:6px 2px;display:inline-flex;align-items:center;gap:6px}
.nav-enlace:hover{color:var(--azul);text-decoration:none}
.nav-item-desplegable{position:relative}
.nav-menu{display:none;position:absolute;top:100%;left:-12px;background:var(--blanco);border:1px solid var(--borde);
  border-radius:14px;box-shadow:var(--sombra);min-width:200px;padding:8px;flex-direction:column;z-index:60}
.nav-item-desplegable:hover .nav-menu,.nav-item-desplegable:focus-within .nav-menu{display:flex}
.nav-menu a{padding:9px 12px;border-radius:9px;font-weight:600;color:var(--tinta);display:flex;align-items:center;gap:8px}
.nav-menu a:hover{background:#eef5f9;text-decoration:none;color:var(--azul)}
.nav-toggler{display:none;background:none;border:1px solid var(--borde);border-radius:9px;font-size:1.2rem;
  padding:4px 10px;cursor:pointer}

/* ============ Hero ============ */
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#1e3a8a 0%,#1e40af 30%,#1d4ed8 70%,#3b82f6 100%);color:#fff;
  border-radius:calc(var(--radio) + 8px);padding:52px 44px 42px;margin-top:28px;box-shadow:0 20px 50px rgba(30,58,138,.25)}
.hero::before{content:"";position:absolute;width:400px;height:400px;right:-120px;top:-180px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,199,41,.25),rgba(255,199,41,0) 65%);animation:heroGlow 8s ease-in-out infinite}
.hero::after{content:"";position:absolute;width:300px;height:300px;left:-120px;bottom:-180px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.12),rgba(255,255,255,0) 65%);animation:heroGlow 10s ease-in-out infinite reverse}
@keyframes heroGlow{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:.9;transform:scale(1.1)}}
.hero > *{position:relative;z-index:1}
.hero-cinta{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.35);padding:7px 16px;border-radius:999px;font-size:.85rem;
  font-weight:800;letter-spacing:.5px;text-transform:uppercase;margin-bottom:16px;box-shadow:0 4px 15px rgba(0,0,0,.15)}
.hero h1{margin:0 0 10px;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.1;font-weight:800;letter-spacing:-.6px}
.hero h1 b{color:var(--dorado);font-weight:900}
.hero-sub{margin:0 0 28px;color:#e0e7ff;font-size:1.1rem;max-width:680px;line-height:1.5;font-weight:400}
.buscador{display:flex;gap:12px;flex-wrap:wrap;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
  border-radius:18px;padding:16px;box-shadow:0 8px 25px rgba(0,0,0,.15)}
.buscador input[type=search]{flex:2 1 320px;padding:16px 18px;border:none;border-radius:12px;font-size:1.05rem;
  outline:3px solid rgba(255,199,41,.6);min-width:0;font-weight:500;box-shadow:inset 0 2px 8px rgba(0,0,0,.08)}
.buscador input[type=search]:focus{outline:4px solid rgba(255,199,41,.8)}
.buscador select{flex:1 1 200px;padding:14px 16px;border:none;border-radius:12px;font-size:.98rem;
  background:#fff;color:var(--tinta);cursor:pointer;min-width:0;font-weight:500;box-shadow:inset 0 2px 6px rgba(0,0,0,.06)}
.buscador button{padding:14px 24px;border-radius:12px;font-weight:700;font-size:.95rem;background:var(--dorado);
  color:#4a3600;border:none;cursor:pointer;transition:.2s;box-shadow:0 4px 12px rgba(255,199,41,.3)}
.buscador button:hover{background:#e8a70c;transform:translateY(-1px);box-shadow:0 6px 18px rgba(255,199,41,.4)}
.chips-estadisticas{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.chip-stat{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);padding:10px 18px;
  border-radius:999px;font-size:.95rem;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(0,0,0,.1)}
.chip-stat b{color:var(--dorado);font-size:1.15rem;font-weight:800}

/* ============ Tiles de secciones (categorías visuales) ============ */
.tiles-secciones{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:26px 0 6px}
.tile{display:flex;align-items:center;gap:13px;background:var(--blanco);border:1px solid var(--borde);
  border-radius:16px;padding:15px 16px;box-shadow:var(--sombra-suave);transition:.18s;min-width:0}
.tile:hover{transform:translateY(-3px);box-shadow:var(--sombra);text-decoration:none;border-color:#cfe1ec}
.tile-ico{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;flex:none;color:#fff}
.tile-ico.azul{background:linear-gradient(135deg,#146080,#0b3d52)}
.tile-ico.dorado{background:linear-gradient(135deg,#FFC729,#e8a70c);color:#4a3600}
.tile-ico.verde{background:linear-gradient(135deg,#0e9f6e,#047857)}
.tile-ico.violeta{background:linear-gradient(135deg,#7c3aed,#4c1d95)}
.tile-ico.naranja{background:linear-gradient(135deg,#ea580c,#9a3412)}
.tile-txt{min-width:0;flex:1}
.tile-titulo{display:block;font-weight:800;color:var(--tinta);font-size:.97rem;white-space:normal;overflow-wrap:anywhere}
.tile-sub{display:block;font-size:.78rem;color:var(--tinta-suave);white-space:normal;overflow-wrap:anywhere;line-height:1.35;margin-top:2px}

/* ============ Encabezados de bloque ============ */
.bloque{margin-top:34px}
.bloque-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.bloque-titulo{display:flex;align-items:center;gap:11px;margin:0;font-size:1.28rem}
.bloque-titulo .ico{color:var(--azul)}
.bloque-titulo b{color:var(--azul)}
.bloque-sub{margin:3px 0 0;color:var(--tinta-suave);font-size:.92rem}
.bloque-acciones{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.bloque-todo{font-weight:700;font-size:.9rem;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}

/* ============ Carruseles ============ */
.carrusel{position:relative}
.pista{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:4px 4px 16px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.pista::-webkit-scrollbar{height:8px}
.pista::-webkit-scrollbar-thumb{background:#cfdde7;border-radius:99px}
.pista > .card{flex:0 0 min(330px,82vw);scroll-snap-align:start}
.carrusel-nav{display:flex;gap:8px}
.carrusel-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--borde);background:var(--blanco);
  color:var(--azul);font-size:1.05rem;cursor:pointer;box-shadow:var(--sombra-suave);display:flex;
  align-items:center;justify-content:center;transition:.15s}
.carrusel-btn:hover{background:var(--azul);color:#fff;border-color:var(--azul)}
.carrusel-btn[disabled]{opacity:.35;cursor:default;pointer-events:none}

/* ============ Tarjetas de oferta ============ */
.grid-tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;margin:20px 0 38px}
.card{background:var(--blanco);border:1px solid var(--borde);border-radius:20px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;
  box-shadow:0 4px 15px rgba(20,96,128,.08);position:relative;min-width:0}
.card:hover{transform:translateY(-6px);box-shadow:0 12px 35px rgba(20,96,128,.18)}
/* §19: barra de categoría con icono SVG y color de identidad (sin imagen por oferta) */
.card-catbar{display:flex;align-items:center;gap:13px;padding:14px 18px;color:#fff;
  background:linear-gradient(135deg,var(--cat,#1e40af) 0%,rgba(0,0,0,.45) 140%);position:relative}
.card-catbar::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--dorado);opacity:.7}
.card-cat-ico{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex:none;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.card-cat-nombre{font-size:.82rem;font-weight:900;letter-spacing:.6px;text-transform:uppercase;
  flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-catbar .badge{font-size:.7rem;font-weight:900;letter-spacing:.5px;text-transform:uppercase;
  padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.95);color:#1e3a8a;box-shadow:0 2px 6px rgba(0,0,0,.1)}
.card-catbar .badge.badge-ok{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-borde)}
.card-catbar .badge.badge-cierre{background:var(--cierre-bg);color:var(--cierre);border:1px solid var(--cierre-borde)}
.badge{font-size:.72rem;font-weight:900;letter-spacing:.5px;text-transform:uppercase;padding:6px 12px;border-radius:999px}
.badge-estado{background:rgba(30,58,138,.95);color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.badge-ok{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-borde);box-shadow:0 2px 6px rgba(31,122,53,.1)}
.badge-cierre{background:var(--cierre-bg);color:var(--cierre);border:1px solid var(--cierre-borde);box-shadow:0 2px 6px rgba(138,91,0,.1)}
.badge-salario{background:linear-gradient(135deg,var(--dorado),#e8a70c);color:#4a3600;box-shadow:0 2px 8px rgba(255,199,41,.25)}
.card-body{padding:18px 20px 8px;display:flex;flex-direction:column;gap:10px;flex:1}
.card-titulo{margin:0;font-size:1.12rem;line-height:1.35;font-weight:800;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:#1e293b}
.card-titulo a{color:#1e293b}
.card-titulo a:hover{color:var(--azul)}
.card-entidad{margin:0;font-size:.92rem;font-weight:700;color:var(--azul);display:flex;align-items:flex-start;gap:8px}
.card-entidad .ico{margin-top:.15em;color:var(--azul-oscuro)}
.card-entidad span{min-width:0;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;
  -webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.card-datos{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.fila-dato{display:flex;align-items:flex-start;gap:8px;font-size:.87rem;color:var(--tinta-suave);min-width:0;line-height:1.4}
.fila-dato .ico{color:var(--azul);font-size:.98em;margin-top:.16em}
.fila-dato b{color:var(--tinta);font-weight:700}
.fila-dato.sueldo b{color:#7a5b00}
.fila-dato span{min-width:0;white-space:normal;overflow-wrap:anywhere}
.card-pie{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;
  padding:12px 17px 14px;border-top:1px dashed var(--borde)}
.card-fuente{font-size:.72rem;color:var(--tenue);display:inline-flex;align-items:center;gap:6px;min-width:0}
.card-ver{font-weight:800;font-size:.85rem;letter-spacing:.3px;white-space:nowrap;display:inline-flex;
  align-items:center;gap:6px;background:var(--azul);color:#fff;padding:9px 15px;border-radius:11px;transition:.15s}
.card-ver:hover{background:var(--azul-oscuro);text-decoration:none;filter:brightness(1.06)}
.dato-chip{font-size:.8rem;background:#f1f6f9;border:1px solid var(--borde);color:var(--tinta-suave);
  padding:4px 10px;border-radius:8px;display:inline-flex;align-items:center;gap:6px}
.dato-chip.sueldo{background:#fff8e5;border-color:#f2e0ac;color:#7a5b00;font-weight:700}

/* chips/filtros de listado */
.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:var(--blanco);border:1px solid var(--borde);
  border-radius:16px;padding:12px;box-shadow:var(--sombra-suave);margin:18px 0 6px}
.filtros input[type=search]{flex:2 1 260px;padding:12px 15px;border:1px solid var(--borde);border-radius:11px;
  font-size:.97rem;outline:none;min-width:0;background:#fbfdfe}
.filtros input[type=search]:focus{border-color:var(--azul);box-shadow:0 0 0 3px rgba(20,96,128,.14)}
.filtros select{flex:1 1 190px;padding:12px 13px;border:1px solid var(--borde);border-radius:11px;background:#fff;
  color:var(--tinta);cursor:pointer;font-size:.93rem}
.buscador-listado input[type=search],.buscador-listado select{background:#fff;border:1px solid var(--borde);outline:none}
.campo-buscar{display:flex;align-items:center;gap:8px;flex:2 1 260px;background:#fbfdfe;border:1px solid var(--borde);
  border-radius:11px;padding:0 12px;min-width:0}
.campo-buscar:focus-within{border-color:var(--azul)}
.campo-buscar .ico{color:var(--tenue)}
.campo-buscar input[type=search]{flex:1;border:none;background:transparent;padding:12px 0}
.campo-buscar input[type=search]:focus{box-shadow:none}
.campo-select{display:flex;flex-direction:column;gap:4px;min-width:170px}
.campo-select-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;color:var(--tinta-suave);font-weight:800}
.campo-select select{padding:11px 13px;border:1px solid var(--borde);border-radius:11px;background:#fff;
  color:var(--tinta);cursor:pointer;font-size:.93rem;flex:none;width:100%}
/* §12: chips de filtro activos con X (solo quitan ese chip) */
.chips-filtros{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0;min-height:0}
.chips-filtros:empty{margin:0}
.chip-activo{display:inline-flex;align-items:center;gap:7px;background:var(--azul-claro);color:var(--azul-oscuro);
  border:1px solid #bcd9e8;border-radius:999px;padding:7px 13px;font-size:.85rem;font-weight:700;cursor:pointer}
.chip-activo:hover{background:#d7ecf5}
.chip-activo .ico{font-size:.9em}
.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}
/* §14: contador + cargar más */
.lista-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px}
.lista-contador{margin:0;font-size:.88rem;color:var(--tinta-suave);font-weight:700}
.cargar-mas-envoltorio{display:flex;justify-content:center;margin:6px 0 40px}
.cargar-mas{padding:13px 30px}
.nota-vacia{grid-column:1/-1;background:#fff;border:1px dashed var(--borde);padding:34px;text-align:center;
  border-radius:var(--radio);color:var(--tinta-suave)}

/* Secciones/pills */
.barra-secciones{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 6px}
.seccion-pill{background:var(--blanco);border:1px solid var(--borde);padding:8px 16px;border-radius:999px;
  font-weight:600;font-size:.92rem;color:var(--tinta-suave);display:inline-flex;align-items:center;gap:7px}
.seccion-pill:hover{border-color:var(--azul);color:var(--azul);text-decoration:none}
.seccion-pill.activo{background:var(--azul);border-color:var(--azul);color:#fff}

/* Cabecera de listado */
.titulo-seccion{margin:26px 0 16px;font-size:1.35rem}
.cabecera-seccion{margin-top:30px;background:var(--blanco);border:1px solid var(--borde);border-radius:var(--radio);
  padding:26px 26px 22px;box-shadow:var(--sombra-suave);position:relative;overflow:hidden}
.cabecera-seccion::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;
  background:linear-gradient(180deg,var(--azul),var(--dorado))}
.cabecera-seccion h1{margin:0 0 6px;font-size:1.6rem}
.cabecera-seccion p{margin:0 0 4px;color:var(--tinta-suave)}
.vacio{background:#fff;border:1px dashed var(--borde);padding:34px;text-align:center;border-radius:var(--radio);
  color:var(--tinta-suave);margin:18px 0 40px}

/* ============ Botones ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 22px;border-radius:13px;
  font-weight:800;font-size:.95rem;cursor:pointer;border:1px solid transparent;text-align:center;transition:.15s}
.btn:hover{text-decoration:none;filter:brightness(1.05);transform:translateY(-1px)}
.btn-principal{background:var(--dorado);color:#4a3600;border-color:var(--dorado-oscuro);box-shadow:0 6px 16px rgba(255,199,41,.35)}
.btn-secundario{background:#fff;color:var(--azul);border-color:var(--azul)}
.btn-ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.4)}
.btn-ghost:hover{background:rgba(255,255,255,.24);filter:none}
.aviso-fuente{background:var(--blanco);border-left:4px solid var(--azul);border-radius:12px;padding:17px 21px;
  margin:10px 0 40px;font-size:.93rem;color:var(--tinta-suave);box-shadow:var(--sombra-suave)}

/* ============ Ficha individual ============ */
.migas{margin:22px 0 14px;font-size:.88rem;color:var(--tinta-suave);display:flex;gap:8px;flex-wrap:wrap}
.migas a{color:var(--azul)}
.ficha-hero{position:relative;overflow:hidden;border-radius:calc(var(--radio) + 4px);color:#fff;
  box-shadow:var(--sombra);background:#0e4a63}
.ficha-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(11,61,82,.94) 30%,rgba(11,61,82,.55) 100%)}
/* §19: la ficha de empleo usa icono+color de categoría, nunca una imagen descargada */
.ficha-catbar{position:relative;z-index:3;display:flex;align-items:center;gap:11px;
  padding:13px 34px;background:linear-gradient(135deg,var(--cat,#146080) 0%,rgba(0,0,0,.30) 130%)}
.ficha-catbar-ico{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.20);
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex:none}
.ficha-catbar-nombre{font-size:.76rem;font-weight:800;letter-spacing:.6px;text-transform:uppercase}
.ficha-hero-cont{position:relative;z-index:2;padding:26px 34px 30px}
.ficha-etiquetas{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:13px}
.etiqueta{font-size:.72rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:5px 12px;
  border-radius:999px;display:inline-flex;align-items:center;gap:6px}
.etiqueta-estado{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.4)}
.etiqueta-privado{background:rgba(255,214,120,.22);color:#fffaf0;border:1px solid rgba(255,214,120,.55)}
.etiqueta-estado2{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-borde)}
.etiqueta-estado2.es-vencida,.etiqueta-estado2.es-porIniciar{background:var(--cierre-bg);color:var(--cierre);border-color:var(--cierre-borde)}
.etiqueta-vigente{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-borde)}
.etiqueta-cierre{background:var(--cierre-bg);color:var(--cierre);border:1px solid var(--cierre-borde)}
.ficha-hero h1{margin:0 0 8px;font-size:clamp(1.35rem,2.8vw,2rem);line-height:1.2}
.ficha-entidad{margin:0;font-size:1.05rem;font-weight:700;color:var(--dorado);display:flex;align-items:center;gap:9px}
.ficha-acciones{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;align-items:center}
.acciones-nota{margin:0;font-size:.85rem;color:#cfe2ec;flex:1 1 100%}
.ficha{background:transparent;border:none;box-shadow:none;padding:0;margin-bottom:44px}

/* resumen con iconos */
.resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:13px;margin:-26px 0 0;
  position:relative;z-index:3;padding:0 8px}
.resumen-item{background:var(--blanco);border:1px solid var(--borde);border-radius:15px;padding:14px 15px;
  box-shadow:var(--sombra-suave);display:flex;gap:11px;align-items:flex-start;min-width:0}
.resumen-item .resumen-ico{width:38px;height:38px;border-radius:11px;background:var(--azul-claro);color:var(--azul);
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex:none}
.resumen-item.destacado .resumen-ico{background:#fff4d4;color:#8a6100}
.resumen-txt{min-width:0;flex:1}
.resumen-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.7px;color:var(--tinta-suave);font-weight:800;margin-bottom:3px}
.resumen-valor{display:block;font-weight:800;color:var(--tinta);word-break:break-word;line-height:1.35;overflow-wrap:anywhere}
.resumen-item.destacado .resumen-valor{color:#7a5b00}

/* secciones de contenido */
.ficha-seccion{background:var(--blanco);border:1px solid var(--borde);border-radius:var(--radio);
  padding:24px 26px;margin-top:20px;box-shadow:var(--sombra-suave)}
.ficha-seccion h2{margin:0 0 16px;font-size:1.12rem;display:flex;align-items:center;gap:10px;
  padding-bottom:12px;border-bottom:2px solid var(--borde)}
.ficha-seccion h2 .ico{color:var(--azul)}
.ficha-subtitulo{margin:26px 0 12px;font-size:1.12rem;border-bottom:2px solid var(--dorado);
  padding-bottom:8px;display:inline-block}
.meta-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:13px;margin:0}
.meta-lista .meta-dato{background:#f7fafc;border:1px solid var(--borde);border-radius:13px;padding:13px 16px}
.meta-dato dt{font-size:.73rem;text-transform:uppercase;letter-spacing:.6px;color:var(--tinta-suave);
  font-weight:800;margin:0 0 5px;display:block;line-height:1.3}
.meta-dato dd{margin:0;font-size:.98rem;font-weight:800;word-break:break-word;overflow-wrap:anywhere;line-height:1.4}
.meta-dato dd.sin-dato{color:#9aa8b2;font-weight:600}
.ficha-lista{background:#f7fafc;border:1px solid var(--borde);border-radius:13px;padding:18px 22px;margin-top:8px}
.ficha-lista h3{margin:0 0 8px;font-size:1rem}
.ficha-lista ul{margin:0;padding-left:20px}
.ficha-vacio{background:#fbfdfe;border:1px dashed var(--borde);border-radius:13px;padding:16px 20px;
  color:var(--tinta-suave);font-size:.93rem;display:flex;gap:10px;align-items:flex-start}
.ficha-vacio .ico{color:var(--azul);font-size:1.15em;margin-top:2px}

/* cómo postular */
.pasos{display:grid;gap:12px;counter-reset:paso;margin:0}
.paso{display:flex;gap:13px;align-items:flex-start;background:#f7fafc;border:1px solid var(--borde);
  border-radius:13px;padding:14px 17px}
.paso-num{width:30px;height:30px;border-radius:50%;background:var(--azul);color:#fff;font-weight:800;
  display:flex;align-items:center;justify-content:center;font-size:.88rem;flex:none}
.paso p{margin:0;font-size:.94rem}
.paso b{display:block;color:var(--tinta)}

/* fuente y trazabilidad */
.fuente-bloque{margin-top:20px;background:#f0f6fa;border:1px solid #d4e6ef;border-radius:var(--radio);
  padding:22px 26px}
.fuente-bloque h3{margin:0 0 10px;font-size:1rem;color:var(--azul);display:flex;align-items:center;gap:9px}
.fuente-bloque ul{margin:0 0 8px;padding-left:20px;font-size:.9rem}
.fuente-bloque li{margin-bottom:5px;word-break:break-all}
.fuente-nota{font-size:.83rem;color:var(--tinta-suave);margin:8px 0 0}
/* ============ Ficha v2: secciones ricas y CTA al final (instrucción de producto) ============ */
.ficha-acciones-superior{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.btn-sm{padding:9px 16px;font-size:.86rem;border-radius:11px}
.ficha-ubic-hero{margin:7px 0 0;color:#cfe2ec;display:flex;align-items:flex-start;gap:9px;font-size:.95rem;overflow-wrap:anywhere;line-height:1.45}
.ficha-ubic-hero .ico{margin-top:.16em}
.ficha-resumen-texto{background:#f7fafc;border:1px solid var(--borde);border-radius:13px;padding:17px 21px;
  font-size:.98rem;line-height:1.7;color:var(--tinta-suave);overflow-wrap:anywhere}
.ficha-resumen-texto p{margin:0}
.ficha-resumen-texto b{color:var(--tinta)}

/* remuneración */
.remuneracion-caja{display:flex;gap:16px;align-items:flex-start;background:linear-gradient(135deg,#fff9e8,#fff);
  border:1px solid #f2e0ac;border-radius:15px;padding:18px 20px;min-width:0}
.remuneracion-ico{width:46px;height:46px;border-radius:13px;background:#fff4d4;color:#8a6100;
  display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex:none}
.remuneracion-datos{display:flex;flex-direction:column;gap:5px;min-width:0}
.remuneracion-valor{font-size:1.5rem;font-weight:900;color:#7a5b00;line-height:1.2;overflow-wrap:anywhere}
.remuneracion-original{font-size:.9rem;font-weight:700;color:var(--tinta-suave)}
.remuneracion-nota{font-size:.83rem;color:var(--tinta-suave);line-height:1.45}

/* sub-bloques (formación / experiencia / competencias) */
.sub-bloques{display:flex;flex-direction:column;gap:15px}
.sub-bloque h3{margin:0 0 7px;font-size:.95rem;display:flex;align-items:center;gap:8px;color:var(--azul)}
.sub-bloque h3 .ico{color:var(--azul)}
.sub-vacio{margin:0;background:#fbfdfe;border:1px dashed var(--borde);border-radius:11px;padding:12px 16px;
  color:var(--tinta-suave);font-size:.9rem;line-height:1.5}

/* cronograma (timeline con fechas reales de la fuente) */
.cronograma{list-style:none;margin:0;padding:0;position:relative}
.cronograma::before{content:"";position:absolute;left:7px;top:14px;bottom:14px;width:2px;
  background:linear-gradient(180deg,var(--azul),var(--dorado))}
.cron-item{display:flex;gap:14px;align-items:flex-start;position:relative;padding:7px 0}
.cron-punto{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--azul);flex:none;margin-top:4px}
.cron-item:last-child .cron-punto{border-color:var(--dorado-oscuro)}
.cron-txt{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;justify-content:space-between;
  background:#f7fafc;border:1px solid var(--borde);border-radius:11px;padding:11px 16px;flex:1;min-width:0}
.cron-txt b{font-size:.94rem;color:var(--tinta)}
.cron-txt span{font-weight:800;color:var(--azul-oscuro);font-size:.94rem;white-space:nowrap}

/* documentos */
.docs-enlace{margin-top:13px}
.docs-vacio{align-items:flex-start}

/* CTA principal al final de la ficha (nunca bajo el título) */
.cta-final{background:linear-gradient(135deg,#0e4a63 0%,#146080 55%,#1a7ba3 100%);color:#fff;
  border-radius:calc(var(--radio) + 4px);padding:27px 30px;margin-top:24px;display:flex;flex-wrap:wrap;
  gap:22px;align-items:center;justify-content:space-between;box-shadow:var(--sombra)}
.cta-final-cab{min-width:min(100%,330px);flex:1}
.cta-final-cab h2{margin:0 0 7px;font-size:1.2rem;display:flex;align-items:center;gap:9px;color:#fff}
.cta-final-cab h2 .ico{color:var(--dorado)}
.cta-final-cab p{margin:0;color:#d3e7f1;font-size:.93rem;line-height:1.55}
.cta-final-botones{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.btn-grande{padding:16px 28px;font-size:1rem;letter-spacing:.4px}
.cta-final .btn-secundario{background:#fff;color:var(--azul);border-color:#fff}
.cta-inactiva{background:linear-gradient(135deg,#38474f,#54646e)}

/* chips del home: categorías y ubicaciones (conteos reales) */
.chips-categorias,.chips-ubicaciones{display:flex;flex-wrap:wrap;gap:10px}
.chip-cat{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--borde);
  border-left:4px solid var(--cat,#146080);border-radius:13px;padding:10px 15px;box-shadow:var(--sombra-suave);
  transition:.15s;min-width:0}
.chip-cat:hover{transform:translateY(-2px);box-shadow:var(--sombra);text-decoration:none;border-color:var(--cat)}
.chip-cat-ico{width:32px;height:32px;border-radius:9px;background:#eef4f8;color:var(--cat,#146080);
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex:none}
.chip-cat-nombre{font-weight:800;font-size:.92rem;color:var(--tinta)}
.chip-cat-n{background:var(--cat,#146080);color:#fff;font-size:.78rem;font-weight:800;padding:2px 10px;border-radius:999px}
.chip-ubic{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--borde);
  border-radius:13px;padding:10px 15px;font-weight:700;font-size:.9rem;color:var(--tinta-suave);
  box-shadow:var(--sombra-suave);transition:.15s}
.chip-ubic:hover{text-decoration:none;border-color:var(--azul);color:var(--azul)}
.chip-ubic .ico{color:var(--azul)}
.chip-ubic b{background:var(--azul-claro);color:var(--azul-oscuro);padding:2px 10px;border-radius:999px;font-size:.78rem}

/* ecosistema becas/cursos/artículos */
.ecosistema{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.eco-tarjeta{display:flex;gap:14px;background:#fff;border:1px solid var(--borde);border-radius:16px;
  padding:18px;box-shadow:var(--sombra-suave);transition:.15s;min-width:0}
.eco-tarjeta:hover{transform:translateY(-3px);box-shadow:var(--sombra);text-decoration:none}
.eco-ico{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  font-size:1.35rem;color:#fff;flex:none}
.eco-ico.verde{background:linear-gradient(135deg,#0e9f6e,#047857)}
.eco-ico.violeta{background:linear-gradient(135deg,#7c3aed,#4c1d95)}
.eco-ico.naranja{background:linear-gradient(135deg,#ea580c,#9a3412)}
.eco-txt{display:flex;flex-direction:column;gap:5px;min-width:0}
.eco-titulo{font-weight:800;color:var(--tinta);font-size:1rem}
.eco-sub{font-size:.85rem;color:var(--tinta-suave);line-height:1.45;overflow-wrap:anywhere}
.eco-ver{font-weight:800;font-size:.84rem;color:var(--azul);display:inline-flex;align-items:center;gap:6px}

/* ============ Relacionadas (spec 15: grid de 4 en desktop, carrusel en móvil) ============ */
.relacionadas .pista{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;overflow:visible;padding:4px 0 8px}
.relacionadas .pista > .card{min-width:0}
.relacionadas .bloque-todo{display:inline-flex;margin-top:10px}
@media (max-width:860px){
  .relacionadas .pista{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;
    padding:4px 4px 14px}
  .relacionadas .pista > .card{flex:0 0 min(330px,82vw);scroll-snap-align:start}
}

/* ============ Publicidad (spec 20: anuncio NO parece botón de postulación) ============ */
.anuncio{position:relative;border:1px dashed #b9c8d4;border-radius:14px;background:#fbfdfe;
  min-height:90px;display:flex;align-items:center;justify-content:center;margin:18px 0;padding:24px 14px 14px}
.anuncio-etiqueta{position:absolute;top:7px;left:12px;font-size:.66rem;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--tenue);font-weight:800}
.anuncio ins,.anuncio iframe{margin:0 auto}

/* ============ Volver arriba (spec 17) ============ */
.volver-arriba{position:fixed;right:18px;bottom:18px;z-index:70;width:46px;height:46px;border-radius:50%;
  border:1px solid var(--borde);background:var(--blanco);color:var(--azul);font-size:1.2rem;cursor:pointer;
  box-shadow:var(--sombra);display:flex;align-items:center;justify-content:center;transition:.15s}
.volver-arriba:hover{background:var(--azul);color:#fff}
.volver-arriba[hidden]{display:none}

/* ============ Placeholder ============ */
.placeholder{margin:40px 0 60px}
.placeholder-marco{background:var(--blanco);border:1px dashed var(--borde);border-radius:var(--radio);
  padding:58px 30px;text-align:center;box-shadow:var(--sombra-suave);position:relative;overflow:hidden}
.placeholder-marco::before{content:"";position:absolute;inset:auto -60px -90px auto;width:230px;height:230px;
  border-radius:50%;background:radial-gradient(circle,rgba(20,96,128,.10),transparent 70%)}
.placeholder-icono{display:inline-flex;width:66px;height:66px;align-items:center;justify-content:center;
  background:var(--azul-claro);color:var(--azul);font-size:1.7rem;font-weight:800;border-radius:19px;margin-bottom:16px}
.placeholder h1{margin:0 0 8px;font-size:1.45rem}
.placeholder p{margin:0 auto 22px;max-width:580px;color:var(--tinta-suave)}

/* ============ Pie ============ */
.pie{background:#0e3446;color:#cfe2ec;margin-top:20px;padding:36px 0 14px}
.pie a{color:#ffd969}
.pie-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.pie-titulo{font-weight:800;color:#fff;margin:0 0 8px}
.pie-texto{font-size:.88rem;margin:0;line-height:1.6}
.pie-legal{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.15);
  margin-top:26px;padding-top:14px;font-size:.8rem;color:#9dbcc9}

/* ============ Responsive ============ */
@media (max-width:860px){
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;
    align-items:flex-start;gap:0;padding:8px 5%;border-bottom:3px solid var(--dorado);box-shadow:var(--sombra)}
  .nav.abierto{display:flex}
  .nav-enlace{padding:12px 0;width:100%;border-bottom:1px solid var(--borde)}
  .nav-item-desplegable{width:100%}
  .nav-menu{position:static;border:none;box-shadow:none;padding:0 0 6px 10px;display:flex}
  .nav-toggler{display:inline-block;margin-left:auto}
  .hero{padding:32px 20px 26px;border-radius:20px}
  .ficha-hero-cont{padding:26px 20px 24px}
  .resumen{padding:0;gap:10px}
  .ficha-seccion{padding:20px 17px}
  .grid-tarjetas{grid-template-columns:1fr}
  .cabecera-seccion{padding:20px 18px 18px}
  .carrusel-nav{display:none}
  .cta-final{padding:22px 18px;flex-direction:column;align-items:stretch}
  .cta-final-cab{min-width:0}
  .cta-final-botones{width:100%}
  .cta-final-botones .btn{flex:1 1 auto}
  .remuneracion-caja{padding:15px 16px;gap:12px}
  .remuneracion-valor{font-size:1.3rem}
  .ficha-resumen-texto{padding:14px 16px}
  .cron-txt{padding:10px 13px}
}
@media (max-width:520px){
  .buscador input[type=search],.buscador select{flex:1 1 100%}
  .filtros input[type=search],.filtros select{flex:1 1 100%}
  .campo-buscar{flex:1 1 100%}
  .campo-select{min-width:0;flex:1 1 140px}
  /* §12: filtros compactos en móvil — chips en fila desplazable */
  .chips-filtros{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .chip-activo{white-space:nowrap;flex:none}
  .cta-final-botones{flex-direction:column;align-items:stretch}
  .cta-final-botones .btn{width:100%}
  .remuneracion-caja{flex-direction:column}
  .tiles-secciones{grid-template-columns:1fr 1fr}
  .pista > .card{flex-basis:86vw}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important;transition:none !important}
}


/* ============ Accesibilidad y SEO (auditoria) ============ */
.saltar{position:absolute;left:-9999px;top:0;z-index:200;background:var(--dorado);color:#3b2f00;
  padding:10px 18px;border-radius:0 0 10px 0;font-weight:800;text-decoration:none}
.saltar:focus{left:0;outline:3px solid var(--azul);outline-offset:-3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--dorado);outline-offset:2px}
.placeholder-estado{display:inline-flex;align-items:center;gap:7px;background:var(--azul-claro);color:var(--azul);
  border-radius:999px;padding:6px 14px;font-size:.8rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.5px;margin:0 auto 14px !important;max-width:none !important}
.placeholder-nota{font-size:.86rem;color:var(--tinta-suave);border-top:1px dashed var(--borde);
  padding-top:16px;margin-bottom:24px !important}
.placeholder-acciones{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
.placeholder-icono-404{width:auto;min-width:96px;padding:0 16px;font-size:1.35rem;border-radius:16px}
.pagina-404 .placeholder-marco{padding:70px 30px}
.migas span[aria-hidden]{color:var(--borde)}
.migas span[aria-current]{font-weight:700;color:var(--tinta)}