:root{
  --azul:#073578; --azul-2:#293E6F; --tinta:#142854; --gris:#5A6B84;
  --verde:#20756C; --verde-mid:#20756C; --verde-claro:#68AEA5;
  --borde:#E3E7EC; --panel:#F7F9FB; --r:4px;
  --verde-600:#3B736C; --verde-100:#D8E3E2; --verde-50:#EBF1F0;
  --azul-900:#192751; --azul-800:#163474; --azul-100:#D0D6E3; --azul-50:#E8EBF1;
  --neutro-700:#5D6A82; --neutro-600:#666; --neutro-500:#757575; --neutro-300:#D6DCE1; --neutro-200:#E4E7EB; --neutro-100:#EFF1F5; --neutro-50:#F7F9FB;
  --gris-txt:#666;
}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
:focus-visible{outline:2px solid #0A47A0;outline-offset:2px}
.contenedor{width:min(1240px,calc(100% - 48px));margin:0 auto}

/* Cuerpo */
#redColegios #titulo{margin:0;font-size:40px;line-height:48px;font-weight:300;color:var(--verde-600);text-align:left}
.bajada{margin-top:16px;max-width:800px;font-size:18px;line-height:28px;color:var(--gris-txt);text-wrap:pretty}
.aviso{margin-top:14px;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--verde);background:#EEF5F1;border:1px solid #D5E6DC;border-radius:var(--r);padding:6px 10px}

.cifras{margin-top:40px;display:grid;grid-template-columns:1fr 1fr 208px 208px 208px;gap:24px}
.cifra{display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:4px;min-height:138px;border:1px solid var(--neutro-200);border-radius:var(--r);padding:20px 15px;background:#fff;color:var(--azul-800)}
.cifra .et{text-align:center;display:inline;gap:8px;font-size:12px;font-weight:700;letter-spacing:.08em;line-height:16px;color:#8a91a1}
.cifra .et svg{flex:0 0 16px;width:16px;height:16px;transform:translate(-8px,2px)}
/* .cifra:not(.dest-verde):not(.dest-azul) .et svg{color:#4F7D73} */
.cifra .val{text-align:center;font-size:48px;font-weight:800;color:#8a91a1;letter-spacing:-.5px;line-height:56px;font-variant-numeric:tabular-nums}
.cifra .de{font-size:16px;line-height:24px;font-weight:400;color:#c3c3c3;text-align:center}
.cifras.con-filtro .cifra{min-height:166px}
.cifra.dest-verde .de{color:var(--verde-600)}
.cifra.dest-azul .de{color:var(--azul-800)}
.cifra.activa{background:var(--neutro-50)}
.cifra.dest-verde{background:var(--verde-50);border-color:var(--verde-100)}
.cifra.dest-verde .et,.cifra.dest-verde .val{color:var(--verde-600)}
.cifra.dest-azul{background:var(--azul-50);border-color:var(--azul-100)}
.cifra.dest-azul .et{color:var(--azul-800)}
.cifra.dest-azul .val{color:var(--azul-800)}
.cifra.dest-verde .val,.cifra.dest-azul .val{font-size:48px;line-height:56px;letter-spacing:-.72px}

.filtros{margin-top:40px;background:var(--neutro-50);border-radius:var(--r);padding:32px}
.filtros-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;align-items:start}
#lblBic{white-space:nowrap}
@media (max-width:1080px){.campo-busca{order:-2;grid-column:1/-1}.campo-bic{order:-1;grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:12px;height:48px}.campo.campo-bic>label{margin:0}}
@media (min-width:1081px){.filtros-grid>.campo:not(.campo-bic):not(.campo-busca){grid-row:2}.campo-busca{grid-row:1;grid-column:1/3}.campo-bic{grid-row:1;grid-column:4;align-self:end;display:flex;align-items:center;justify-content:flex-end;gap:12px;height:48px}.campo.campo-bic>label{margin:0}}
.campo>label{display:block;font-size:14px;font-weight:700;color:var(--azul-800);margin-bottom:8px;line-height:20px}
.campo:has(select:disabled)>label{color:var(--neutro-500)}
.ayuda{margin-top:8px;font-size:14px;line-height:20px;color:var(--gris-txt)}
.ayuda:empty{display:none}
select,input[type=search]{width:100%;height:48px;border:1px solid var(--neutro-300);border-radius:var(--r);background:#fff;padding:0 16px;font:inherit;font-size:16px;color:var(--azul-900)}
input[type=search]::placeholder{color:var(--neutro-500);opacity:1}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23192751' stroke-width='2'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px}
.campo.sel .select2-selection__rendered{font-weight:600}
.busca{position:relative}
.busca svg{position:absolute;left:16px;top:14px;width:20px;height:20px}
.busca input{padding-left:48px; max-width:530px;}
.switch{height:48px;display:flex;align-items:center}
.switch button{width:44px;height:24px;border-radius:999px;background:#D6DCE1;position:relative;transition:background .15s}
.switch button::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 1px 2px rgba(25,39,81,.25);transition:transform .15s}
.switch button[aria-pressed=true]{background:var(--azul-800)}
.switch button[aria-pressed=true]::after{transform:translateX(20px)}
.filtros-pie{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:24px;padding-top:24px;border-top:1px solid var(--neutro-200);font-size:16px;line-height:24px;color:var(--azul-900)}
.pie-info{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.chips{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.chips[hidden],.limpiar-filtros[hidden]{display:none}
.chip{display:inline-flex;align-items:center;gap:8px;background:var(--neutro-100);border:1px solid var(--neutro-300);color:var(--azul-900);font-size:14px;line-height:20px;font-weight:400;border-radius:999px;padding:4px 12px;transition:background .15s}
.chip svg{flex:0 0 16px}
.chip:hover{background:var(--neutro-200)}
.limpiar-filtros{font-size:16px;line-height:24px;font-weight:600;color:var(--azul-800);text-decoration:underline;white-space:nowrap}
.limpiar-filtros:hover{color:var(--azul-900)}
.btn-limpiar{font-size:12px!important;padding:5px 14px;margin-left:4px}
.vacio .btn-limpiar{margin:10px 0 0}

.rc-tabs{margin-top:26px;border-bottom:1px solid var(--borde);display:flex;gap:30px}
.tab{display:flex;align-items:center;gap:9px;padding:13px 2px;font-size:14px;font-weight:700;color:var(--gris);border-bottom:2px solid transparent;margin-bottom:-1px}
.tab[aria-selected=true]{color:var(--azul);border-bottom-color:var(--azul)}

.split{margin-top:24px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:24px;align-items:start}
.mapa-caja{position:relative;border:1px solid var(--borde);border-radius:var(--r);overflow:hidden;height:740px}
#mapa{position:absolute;inset:0;z-index:0;}
.leaflet-container{font-family:'Open Sans',sans-serif;background:#EAF0F4}
.etiqueta-mapa{position:absolute;z-index:500;top:14px;left:14px;background:#fff;border:1px solid var(--borde);border-radius:var(--r);padding:7px 12px;font-size:12px;font-weight:600;box-shadow:0 1px 3px rgba(7,53,120,.08)}
.leyenda{position:absolute;z-index:500;bottom:14px;left:14px;background:#fff;border:1px solid var(--borde);border-radius:var(--r);padding:9px 12px;display:flex;flex-direction:column;gap:7px;box-shadow:0 1px 3px rgba(7,53,120,.08);font-size:11.5px}
.leyenda div{display:flex;align-items:center;gap:9px}

.lista-cab{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:12px}
.lista-cab strong{font-size:14px}
.lista-cab select{width:auto;height:32px;border-color:transparent;background-color:transparent;font-size:12.5px;color:var(--gris);padding:0 26px 0 4px}
.lista{display:flex;flex-direction:column;gap:10px;max-height:740px;overflow:auto;padding-right:4px}
.tarjeta{display:flex;align-items:center;gap:13px;padding:13px;border:1px solid var(--borde);border-radius:var(--r);background:#fff;text-align:left;width:100%;cursor:pointer}
.tarjeta:hover{border-color:#BFCBDA;background:#FCFDFE}
.tarjeta[aria-current=true]{background:#F3F8F4;border-color:#BFD9C6}
.tarjeta h3{margin:0;font-size:14px;font-weight:700;color:var(--azul);line-height:1.38;text-wrap:pretty}
.tarjeta p{margin:3px 0 0;font-size:12.5px;color:var(--gris)}
.etiquetas{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:11px;font-weight:600;padding:3px 8px;border-radius:3px;background:#EEF1F5;color:#4A5B72}
.tag.tp{background:#E8F1EC;color:#2E6A57}
.tag.bic{background:#E4EAF6;color:#234C93}
.vacio{border:1px dashed #C9D3DE;border-radius:var(--r);padding:26px;text-align:center;color:var(--gris);font-size:13.5px}

.esp-grid{margin-top:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.esp{border:1px solid var(--borde);border-radius:var(--r);padding:16px;background:#fff;text-align:left;width:100%;cursor:pointer}
.esp:hover{border-color:#BFCBDA}
.esp .cab{display:flex;align-items:center;gap:11px}
.esp .ico{width:32px;height:32px;border-radius:var(--r);background:#E8F1EC;display:flex;align-items:center;justify-content:center;flex:0 0 32px}
.esp h3{margin:0;font-size:14px;font-weight:700;line-height:1.3}
.esp .nums{margin-top:14px;display:flex;gap:16px;align-items:baseline}
.esp .nums b{font-size:21px;color:var(--azul)}
.esp .nums span{font-size:12px;color:var(--gris);margin-left:5px}
.barra{margin-top:14px;display:flex;height:6px;border-radius:3px;overflow:hidden;background:#EEF1F5}
.barra i{display:block}
.barra i:nth-child(1){background:#C7DCC0}
.barra i:nth-child(2){background:var(--verde-claro)}
.barra i:nth-child(3){background:var(--verde)}
.esp .zonas{margin-top:7px;display:flex;justify-content:space-between;font-size:10.5px;color:var(--gris)}
.esp .ver{margin-top:13px;font-size:12px;font-weight:700;color:var(--azul)}

/* Marcadores */
.mk{background:none;border:none}
.mk-punto{width:14px;height:14px;border-radius:50%;background:var(--verde-mid);border:1.6px solid #fff;box-shadow:0 1px 2px rgba(10,30,60,.35)}
.mk-bic{width:24px;height:24px;border-radius:50%;border:1.4px dashed var(--azul);display:flex;align-items:center;justify-content:center}
.mk-bic i{width:13px;height:13px;border-radius:50%;background:var(--azul);border:1.6px solid #fff}
.mk-grupo{border-radius:50%;background:var(--verde-mid);border:2px solid #fff;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(10,30,60,.3)}
.mk-sel .mk-punto,.mk-sel .mk-bic i{box-shadow:0 0 0 6px rgba(32,117,108,.32)}

/* Ficha */
.ficha{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:100vw;background:#fff;transform:translateX(100%);transition:transform .28s ease,box-shadow .28s ease;z-index:1200;display:flex;flex-direction:column;overflow:auto}
.ficha.abierta{transform:none;box-shadow:-10px 0 34px rgba(7,53,120,.18)}
.scrim{position:fixed;inset:0;background:rgba(20,40,84,.35);opacity:0;pointer-events:none;transition:opacity .28s;z-index:1100}
.scrim.visible{opacity:1;pointer-events:auto}
.foto{position:relative;height:190px;flex:0 0 190px;background-image:linear-gradient(to top,rgba(9,26,48,.62) 0 46px,rgba(9,26,48,0) 46px),linear-gradient(140deg,#3C6B8C 0%,#4E7E94 55%,#62899B 100%)}
.foto span{position:absolute;bottom:10px;left:16px;font-size:11.5px;color:#fff}
.cerrar{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:999px;background:#fff;border:1px solid var(--borde);display:flex;align-items:center;justify-content:center}
.ficha-cuerpo{padding:20px 26px 26px}
.ficha h2{font-size:19px;line-height:1.28;text-wrap:pretty}
.rotulo{margin-top:20px;font-size:10.5px;font-weight:700;letter-spacing:.09em;color:var(--gris)}
.cajas{margin-top:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cajas div{background:var(--panel);border-radius:var(--r);padding:12px 14px}
.cajas b{display:block;font-size:21px;color:var(--azul);font-variant-numeric:tabular-nums}
.cajas b.txt{font-size:15px;line-height:1.3}
.cajas span{display:block;margin-top:2px;font-size:11.5px;color:var(--gris)}
.chips-esp{margin-top:9px;display:flex;flex-wrap:wrap;gap:7px}
.chips-esp span{font-size:12px;font-weight:600;padding:5px 10px;border-radius:3px;background:#E8F1EC;color:#2E6A57}
.contacto{margin-top:10px;display:flex;flex-direction:column;gap:10px;font-size:13.5px}
.contacto div{display:flex;align-items:center;gap:10px}
.galeria{margin-top:9px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.galeria div{position:relative;height:92px;border-radius:var(--r)}
.galeria div span{position:absolute;bottom:7px;left:9px;font-size:10.5px;color:#fff}
.g1{background-image:linear-gradient(to top,rgba(9,26,48,.62) 0 28px,rgba(9,26,48,0) 28px),linear-gradient(145deg,#3C6B8C,#5E8AA3)}
.g2{background-image:linear-gradient(to top,rgba(9,26,48,.62) 0 28px,rgba(9,26,48,0) 28px),linear-gradient(145deg,#3F7F73,#558E6E)}
.g3{background-image:linear-gradient(to top,rgba(9,26,48,.62) 0 28px,rgba(9,26,48,0) 28px),linear-gradient(145deg,#4B5F84,#6B7B99)}
.acciones{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.acciones .btn{display:flex;align-items:center;justify-content:center;gap:8px;}
.acciones .btn:only-child{grid-column:1/-1}
.acciones.acciones--fixed{display:block}

.barra-movil,.hoja,.filtros-cab,.filtros-aplicar{display:none}

@media (max-width:1080px){
  .cifras{grid-template-columns:repeat(6,1fr);gap:16px}
  .cifra{grid-column:span 2;min-height:0}
  .cifra.dest-verde,.cifra.dest-azul{grid-column:span 3}
  .filtros-grid{grid-template-columns:1fr 1fr;gap:16px}
  .esp-grid{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr}
  .mapa-caja{height:520px}
  .lista{max-height:none}
}
@media (max-width:860px){
  #redColegios #titulo{font-size:28px;line-height:36px}
  .bajada{font-size:15px;line-height:24px}
  .cifras{gap:8px;margin-top:24px}
  .cifra{padding:12px;gap:6px}
  .cifra .et{font-size:10px;letter-spacing:.05em;line-height:14px}
  .cifra .et svg{display:none}
  .cifra .val{font-size:22px;line-height:28px}
  .cifra.dest-verde .val,.cifra.dest-azul .val{font-size:32px;line-height:40px}
  .filtros-pie{margin-top:16px;padding-top:16px}
  .cifra .de{font-size:13px;line-height:18px}
  .cifras.con-filtro .cifra{min-height:0}
  .filtros{display:none;position:fixed;inset:auto 0 0 0;z-index:1300;max-height:86vh;overflow:auto;border-radius:14px 14px 0 0;background:#fff;box-shadow:0 -8px 30px rgba(7,53,120,.22);padding:18px 16px 24px;margin:0}
  body.filtros-abiertos .filtros{display:block;overscroll-behavior:contain}
  body.filtros-abiertos,html:has(body.filtros-abiertos){overflow:hidden}
  body.filtros-abiertos .scrim{opacity:1;pointer-events:auto}
  .filtros-grid{grid-template-columns:1fr}
  .filtros-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:15px;color:var(--tinta)}
  .filtros-cab strong{display:flex;align-items:center;gap:8px}
  .filtros-cab button{width:34px;height:34px;border-radius:50%;border:none;background:#EEF1F5;display:flex;align-items:center;justify-content:center;cursor:pointer}
  .filtros-aplicar{display:flex;align-items:center;justify-content:center;height:46px;margin-top:16px;font-weight:700}
  .barra-movil{display:flex;gap:10px;margin-top:14px;flex-direction:column;}
  .barra-movil .busca{flex:1}
  .barra-movil input{height:46px;}
  input[type="search"] {
    -webkit-appearance: auto;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .barra-movil .btn{
    height:46px;
    min-width:112px;
    padding:0 18px;
    font-size:14px;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    line-height:1;
    margin-top:20px;
  }
  .barra-movil .btn.btn-limpiar-movil{margin-top:0;background:#fff;border:1px solid #D5DCE2;color:var(--azul);box-shadow:none}
  .rc-tabs{margin-top:16px;gap:22px}
  .split{margin-top:14px;gap:0}
  .mapa-caja{height:56vh;border-left:none;border-right:none;border-radius:0;margin:0 calc(50% - 50vw);width:100vw}
  .col-lista{position:fixed;left:0;right:0;bottom:0;z-index:900;background:#fff;border-radius:14px 14px 0 0;box-shadow:0 -6px 22px rgba(7,53,120,.16);padding:8px 16px 16px;max-height:20vh;overflow:auto;transition:max-height .25s}
  body.hoja-abierta .col-lista{max-height:82vh}
  .hoja{display:block;width:40px;height:4px;border-radius:999px;background:#D5DCE2;margin:2px auto 12px;border:none;padding:0}
  .col-lista.oculta{display:none}
  .esp-grid{grid-template-columns:1fr;margin-bottom:24px}
  .ficha{width:100%;border-radius:0}
  .acciones{position:sticky;bottom:0;background:#fff;padding-top:12px;z-index:2;}
  section#redColegios {
    padding: 30px 0 0;
  }
}
/* Preloader */
#redColegios{position:relative}
.cargando{position:absolute;inset:0;z-index:1000;background:rgba(255,255,255,.88);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:14px;padding-top:220px;font-size:13.5px;font-weight:600;color:var(--gris)}
.cargando[hidden]{display:none}
.cargando.error{color:#B3261E}
.cargando.error .spinner{display:none}
.spinner{width:38px;height:38px;border:3px solid var(--borde);border-top-color:var(--verde);border-radius:50%;animation:giro .8s linear infinite}
@keyframes giro{to{transform:rotate(360deg)}}

/* Select2 en filtros */
.filtros .select2-container{width:100%!important}
.filtros .select2-container--default .select2-selection--single{height:48px;border:1px solid var(--neutro-300);border-radius:var(--r);background:#fff}
.filtros .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:46px;padding-left:16px;padding-right:44px;font-size:16px;color:var(--azul-900)}
.filtros .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;right:12px}
.filtros .select2-container--default.select2-container--focus .select2-selection--single,.filtros .select2-container--default.select2-container--open .select2-selection--single{border-color:#0A47A0}
.filtros .select2-container--default.select2-container--disabled .select2-selection--single{background:var(--neutro-100);cursor:not-allowed}
.filtros .select2-container--default.select2-container--disabled .select2-selection__rendered{color:var(--neutro-500)}
.select2-container--open .select2-dropdown{z-index:1400;border-color:#D5DCE2;font-size:13.5px}
.select2-container--default .select2-search--dropdown .select2-search__field{height:34px;padding:0 10px;border:1px solid #D5DCE2;border-radius:var(--r);font:inherit}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--azul)}

/* Insignia / iniciales del colegio */
.logo-colegio{width:44px;height:44px;flex:0 0 44px;border-radius:var(--r);background:#EEF1F5;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--gris);overflow:hidden}
.logo-colegio.con-img{background:#fff;border:1px solid var(--borde)}
.logo-colegio img{box-sizing:border-box;margin:0;width:100%;height:100%;object-fit:contain;padding:3px}

/* Fotos de ficha y galería */
.galeria div{overflow:hidden;background-size:cover}
.galeria img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.galeria div::after{content:"";position:absolute;left:0;right:0;bottom:0;height:28px;background:linear-gradient(to top,rgba(9,26,48,.62),rgba(9,26,48,0))}
.galeria div span{z-index:1}
