/* =====================================================================
 * Catálogo de convocatorias (convocatorias.php) y comprobador
 * ===================================================================== */
.cat-hero > .container { max-width: 64rem !important; }
.cat-hero h1 { max-width: 20ch !important; }
.cat-busca { display: flex; gap: .4rem; max-width: 44rem; margin: 1.75rem 0 1rem; padding: .4rem .4rem .4rem 1.2rem; background: #fff; border-radius: 100px;
  box-shadow: rgba(20, 18, 15,.10) 0 20px 50px -18px, rgba(20, 18, 15,.06) 0 4px 10px; }
.cat-busca input { flex: 1; min-width: 0; border: 0; background: transparent; font: 400 1rem/1.3 'Open Runde', 'Inter', sans-serif; color: #211F1C; outline: none; }
.cat-busca .btn { height: 2.9rem; padding-inline: 1.5rem; }
.cat-chips { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.cat-chips__sep { width: 1px; height: 1.4rem; background: rgba(255,255,255,.5); margin: 0 .25rem; }
.cat-chip { display: inline-flex; align-items: center; padding: .45rem .9rem; border-radius: 100px; font-size: .8125rem; font-weight: 500; text-decoration: none;
  color: #fff; background: rgba(16, 39, 33,.25); border: 1px solid rgba(255,255,255,.45); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); transition: background .2s; }
.cat-chip:hover { background: rgba(16, 39, 33,.4); }
body:not(#_) .cat-chip.is-activo { background: #fff; color: #211F1C !important; border-color: #fff; }
.cat-chip.is-activo::after { content: '×'; margin-left: .45rem; color: #5C584E; }

/* Rejilla: filtros fijos a la izquierda, resultados a la derecha */
.cat { display: grid; grid-template-columns: 19rem minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start;
  padding-inline: var(--gut, 1.5rem); max-width: 96rem; margin-inline: auto; }
.cat-filtros { position: sticky; top: 6rem; }
.cat-filtros form { display: grid; gap: .8rem; padding: 1.4rem; background: #fff; border-radius: 20px; border: 1px solid rgba(7,7,9,.06);
  box-shadow: rgba(28, 59, 48,.08) 0 1px 1px, rgba(20, 18, 15,.05) 0 30px 60px -30px; }
.cat-filtros__tit { margin: .4rem 0 0; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: #1C3B30; font-weight: 600; }
.cat-filtros__tit:first-of-type { margin-top: 0; }
.cat-filtros__ayuda { margin: -.4rem 0 0; font-size: .8rem; color: #8A8578; line-height: 1.4; }
.cat-campo { display: grid; gap: .3rem; font-size: .8125rem; color: #5C584E; }
.cat-campo select, .cat-orden select { width: 100%; height: 2.6rem; padding: 0 .7rem; border: 1px solid #e5ebe4; border-radius: 12px; background: #fff;
  font: 400 .9375rem 'Open Runde', 'Inter', sans-serif; color: #211F1C; }
.cat-campo select:focus, .cat-orden select:focus { outline: none; border-color: #1C3B30; box-shadow: 0 0 0 4px rgba(28, 59, 48,.18); }
.cat-check { display: flex; gap: .5rem; align-items: flex-start; font-size: .8125rem; color: #4a4a55; line-height: 1.35; }
.cat-check input { margin-top: .15rem; accent-color: #211F1C; }
.cat-filtros__acc { display: flex; gap: .5rem; margin-top: .3rem; }
.cat-filtros__acc .btn { flex: 1; justify-content: center; }
.cat-filtros__mas { display: block; margin-top: .3rem; padding: .85rem 1rem; border-radius: 14px; background: #f7f9f7; font-size: .8125rem; color: #4a4a55; text-decoration: none; line-height: 1.4; }
.cat-filtros__mas b { color: #211F1C; }

/* Resultados */
.cat-res__cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem 1.5rem; margin-bottom: 1rem; }
.cat-res__n { margin: 0; font-size: .9375rem; color: #5C584E; }
.cat-res__n b { font: 600 1.6rem/1 'Open Runde', sans-serif; letter-spacing: -0.03em; color: #211F1C; margin-right: .2rem; }
.cat-orden { display: flex; align-items: center; gap: .6rem; font-size: .8125rem; color: #5C584E; }
.cat-orden select { width: auto; }

.cat-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.cat-item { position: relative; display: grid; grid-template-columns: 4.6rem minmax(0, 1fr) auto; gap: 1.25rem; align-items: start;
  padding: 1.25rem 1.4rem; background: #fff; border-radius: 18px; border: 1px solid rgba(7,7,9,.06);
  box-shadow: rgba(28, 59, 48,.08) 0 1px 1px; transition: border-color .25s, box-shadow .3s, transform .3s cubic-bezier(.2,.7,.1,1); }
.cat-item:hover { border-color: rgba(28, 59, 48,.4); box-shadow: rgba(20, 18, 15,.12) 0 24px 50px -28px; transform: translateY(-1px); }
.cat-item__plazo { display: grid; place-items: center; align-content: center; height: 4.6rem; border-radius: 14px; background: #f7f9f7; line-height: 1; }
.cat-item__plazo b { font: 600 1.6rem/1 'Open Runde', sans-serif; letter-spacing: -0.04em; color: #102721; }
.cat-item__plazo span { margin-top: .25rem; font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; color: #8A8578; }
.cat-item__plazo.is-urgente { background: #211F1C; }
.cat-item__plazo.is-urgente b { color: #fff; }
.cat-item__plazo.is-urgente span { color: #F2E0D1; }
.cat-item__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 .35rem; font-size: .8125rem; color: #5C584E; }
.cat-amb { display: inline-flex; padding: .2rem .55rem; border-radius: 100px; font-size: .7rem; font-weight: 600; background: #DEE6DC; color: #102721; }
.cat-amb--europea { background: #f1f5f0; color: #238f69; }
.cat-amb--local, .cat-amb--provincial { background: #e3f7f5; color: #0f5f5a; }
.cat-item__tit { margin: 0 !important; font-size: 1.1rem !important; line-height: 1.3 !important; letter-spacing: -0.02em !important; font-weight: 600 !important; }
.cat-item__tit a { color: #211F1C; text-decoration: none; }
.cat-item__tit a::after { content: ''; position: absolute; inset: 0; border-radius: 18px; }
.cat-item__desc { margin: .4rem 0 0; color: #5C584E; font-size: .9rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cat-item__datos { display: flex; flex-wrap: wrap; gap: .4rem; margin: .75rem 0 0; }
.cat-item__datos span { padding: .3rem .65rem; border-radius: 100px; background: #ECE2CC; font-size: .78rem; color: #4a4a55; }
.cat-item__datos b { color: #211F1C; }
.cat-item__est { background: #DEE6DC !important; color: #102721 !important; }
.cat-item__bdns { color: #8A8578 !important; background: transparent !important; padding-left: 0 !important; }
.cat-item__factores { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .6rem 0 0; font-size: .75rem; color: #8A8578; }
.cat-item__factores b { color: #211F1C; }
.cat-item__nota { position: relative; z-index: 1; min-width: 5.5rem; text-align: center; }
.cat-item__ir { align-self: center; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: #f7f9f7; color: #211F1C; text-decoration: none; transition: background .25s, color .25s, transform .25s; }
.cat-item:hover .cat-item__ir { background: #211F1C; color: #fff; transform: translateX(2px); }
.cat-vacio { padding: 3rem 2rem; text-align: center; background: #fff; border-radius: 20px; border: 1px dashed #d3e2cf; }
.cat-vacio h2 { font-size: 1.5rem !important; }
.cat-vacio p { color: #5C584E; max-width: 34rem; margin: .5rem auto 1.5rem; }

/* Paginación */
body:not(#_) .pager { display: flex; justify-content: center; align-items: center; gap: .5rem; margin-top: 2rem; }
body:not(#_) .pager__nums { display: flex; gap: .3rem; list-style: none; margin: 0; padding: 0; }
body:not(#_) .pager__n, body:not(#_) .pager__salto { display: grid; place-items: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .9rem; border-radius: 100px; background: #fff;
  border: 1px solid #e5ebe4; color: #211F1C; text-decoration: none; font-size: .875rem; }
body:not(#_) .pager__n--actual { background: #211F1C; color: #fff; border-color: #211F1C; }
body:not(#_) .pager__salto--off { opacity: .4; }

@media (max-width: 1080px) {
  .cat { grid-template-columns: 1fr; }
  .cat-filtros { position: static; }
  .cat-filtros form { grid-template-columns: 1fr 1fr; }
  .cat-filtros__tit, .cat-filtros__ayuda, .cat-check, .cat-filtros__acc, .cat-filtros__mas { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .cat-filtros form { grid-template-columns: 1fr; }
  .cat-item { grid-template-columns: 3.6rem minmax(0, 1fr); gap: .9rem; padding: 1rem; }
  .cat-item__plazo { height: 3.6rem; }
  .cat-item__plazo b { font-size: 1.25rem; }
  .cat-item__nota, .cat-item__ir { display: none; }
  .cat-busca { border-radius: 18px; flex-wrap: wrap; padding: .5rem; }
  .cat-busca input { padding: .6rem; width: 100%; }
  .cat-busca .btn { width: 100%; }
  .cat-chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .3rem; scrollbar-width: none; }
  .cat-chip { white-space: nowrap; }
}

/* --- Comprobador (elegibilidad.php) ---------------------------------- */
.eleg-hero > .container { max-width: 68rem !important; }
body:not(#_) .eleg-hero .eleg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: .5rem; align-items: end;
  margin-top: 1.75rem; padding: .7rem; background: #fff; border-radius: 22px; border: 0;
  box-shadow: rgba(20, 18, 15,.12) 0 24px 60px -20px, rgba(20, 18, 15,.06) 0 4px 10px; max-width: none; }
body:not(#_) .eleg-hero .eleg .campo { display: grid; gap: .3rem; min-width: 0; margin: 0; }
body:not(#_) .eleg-hero .eleg label { font-size: .75rem; font-weight: 500; color: #5C584E; padding-left: .4rem; }
body:not(#_) .eleg-hero .eleg select { width: 100%; height: 2.9rem; padding: 0 .7rem; border: 1px solid #e5ebe4; border-radius: 12px; background: #fff; font: 400 .9375rem 'Open Runde', sans-serif; color: #211F1C; }
body:not(#_) .eleg-hero .eleg select:focus { outline: none; border-color: #1C3B30; box-shadow: 0 0 0 4px rgba(28, 59, 48,.18); }
body:not(#_) .eleg-hero .eleg .btn { height: 2.9rem; white-space: nowrap; }

.eleg-perfil { margin: 0 0 1rem; font-size: .9375rem; color: #5C584E; }
.eleg-perfil b { color: #211F1C; }
.eleg-perfil a { margin-left: .5rem; color: #1C3B30; }
.eleg-embudo { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr 1fr; gap: .6rem; align-items: stretch; margin-bottom: 2rem; }
.eleg-embudo > i { align-self: center; color: #8A8578; font-style: normal; }
.eleg-embudo__p { display: grid; gap: .3rem; align-content: center; padding: 1.2rem 1.3rem; border-radius: 18px; background: #fff; border: 1px solid rgba(7,7,9,.06); }
.eleg-embudo__p b { font: 600 clamp(1.8rem, 2.8vw, 2.6rem)/1 'Open Runde', sans-serif; letter-spacing: -0.04em; color: #102721; }
.eleg-embudo__p span { font-size: .8125rem; color: #5C584E; line-height: 1.35; }
.eleg-embudo__p--no b { color: #8A8578; }
.eleg-embudo__p--ver { background: #f7f9f7; }
.eleg-embudo__p--si { background: #211F1C; border-color: #211F1C; }
.eleg-embudo__p--si b { color: #F2E0D1; }
.eleg-embudo__p--si span { color: rgba(255,255,255,.75); }
body:not(#_) .eleg-filtros { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.5rem; }
body:not(#_) .eleg-filtros a { padding: .45rem .9rem; border-radius: 100px; background: #fff; border: 1px solid #e5ebe4; font-size: .8125rem; color: #211F1C; text-decoration: none; }
body:not(#_) .eleg-filtros a.is-active { background: #211F1C; border-color: #211F1C; color: #fff; }
body:not(#_) .eleg-grupo { display: flex; align-items: baseline; gap: .6rem; margin: 2rem 0 1rem !important; font-size: 1.6rem !important; }
body:not(#_) .eleg-grupo span { font-size: 1rem; color: #8A8578; font-weight: 500; }
body:not(#_) .eleg-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
body:not(#_) .eleg-item { display: flex; flex-direction: column; gap: .6rem; }
body:not(#_) .eleg-item h3 { margin: 0 !important; font-size: 1.1rem !important; line-height: 1.3 !important; }
body:not(#_) .eleg-item__cab { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
body:not(#_) .eleg-item__plazo { margin-left: auto; font-size: .8125rem; font-weight: 500; }
body:not(#_) .eleg-item__plazo.apura { color: #b3261e; }
body:not(#_) .eleg-item .checks { list-style: none; margin: .2rem 0; padding: 0; display: grid; gap: .3rem; }
body:not(#_) .eleg-item__acc { margin-top: auto; display: flex; gap: .5rem; flex-wrap: wrap; }
body:not(#_) .check { display: flex; gap: .55rem; align-items: flex-start; font-size: .85rem; line-height: 1.4; color: #4a4a55; }
body:not(#_) .check__ico { flex: 0 0 auto; display: grid; place-items: center; width: 1.3rem; height: 1.3rem; border-radius: 6px; font-size: .7rem; font-weight: 700; }
body:not(#_) .check--cumple .check__ico { background: #DEE6DC; color: #1C3B30; }
body:not(#_) .check--verificar .check__ico { background: #ECE2CC; color: #211F1C; border: 1px dashed rgba(7,7,9,.3); }
body:not(#_) .check--no .check__ico { background: #fdecea; color: #a3241a; }
body:not(#_) .eleg-cta { margin-top: 3rem; padding: clamp(2rem, 4vw, 3rem); border-radius: 28px; color: #fff;
  background: radial-gradient(50rem 26rem at 100% 0%, rgba(28, 59, 48,.45), transparent 60%), #13211C; }
body:not(#_) .eleg-cta h2 { color: #fff !important; }
body:not(#_) .eleg-cta p { color: rgba(255,255,255,.78); max-width: 40rem; }
body:not(#_) .eleg-cta .btn--filled { background: #fff !important; color: #211F1C !important; border-color: #fff !important; }

.eleg-como__cab { max-width: 46rem; margin-bottom: 2rem; }
.eleg-como__pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.eleg-como__pasos li { padding: 1.6rem; border-radius: 18px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: rgba(28, 59, 48,.08) 0 1px 1px, rgba(20, 18, 15,.04) 0 30px 60px -30px; }
.eleg-como__pasos b { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 12px; background: #DEE6DC; color: #1C3B30; font-size: .9rem; }
.eleg-como__pasos h3 { margin: .9rem 0 .4rem !important; font-size: 1.15rem !important; }
.eleg-como__pasos p { margin: 0; color: #5C584E; font-size: .9375rem; line-height: 1.5; }
.eleg-como__leyenda { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; margin-top: 1.5rem; padding: 1rem 1.25rem; border-radius: 16px; background: #fff; border: 1px solid rgba(7,7,9,.06); }

@media (max-width: 1080px) {
  body:not(#_) .eleg-hero .eleg { grid-template-columns: 1fr 1fr; }
  body:not(#_) .eleg-hero .eleg .btn { grid-column: 1 / -1; }
  .eleg-embudo { grid-template-columns: 1fr 1fr; }
  .eleg-embudo > i { display: none; }
  body:not(#_) .eleg-lista { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  body:not(#_) .eleg-hero .eleg { grid-template-columns: 1fr; }
  .eleg-como__pasos { grid-template-columns: 1fr; }
}

body:not(#_) .cat-item .cat-item__tit, body:not(#_) .section .cat-item h2.cat-item__tit { font-size: 1.1rem !important; line-height: 1.3 !important; letter-spacing: -0.02em !important; margin: 0 !important; max-width: none !important; }
body:not(#_) .cat-vacio h2 { font-size: 1.5rem !important; }
.cat-item__plazo.is-urgente b { font-size: 1.3rem; }

.cat-filtros__boton { display: none; }
@media (max-width: 1080px) {
  .cat-filtros__boton { display: flex; align-items: center; justify-content: center; gap: .5rem; list-style: none; cursor: pointer; height: 3rem; border-radius: 100px;
    background: #fff; border: 1px solid #e5ebe4; font-weight: 600; margin-bottom: .75rem; }
  .cat-filtros__boton::-webkit-details-marker { display: none; }
  .cat-filtros__boton::before { content: ''; width: 1rem; height: .7rem; background: linear-gradient(#211F1C,#211F1C) 0 0/100% 2px no-repeat, linear-gradient(#211F1C,#211F1C) 50% 50%/70% 2px no-repeat, linear-gradient(#211F1C,#211F1C) 50% 100%/40% 2px no-repeat; }
  .cat-filtros__boton b { display: grid; place-items: center; min-width: 1.4rem; height: 1.4rem; border-radius: 100px; background: #211F1C; color: #fff; font-size: .75rem; }
}
.cat-res__sem { color: #1C3B30; font-weight: 500; }
