/* ===========================================================
   Corporación Prodesa Sucursal Nicaragua — Hoja de estilos
   =========================================================== */

:root{
  --azul-prodesa:#0049AF;
  --azul-oscuro:#003173;
  --azul-claro:#E8F0FB;
  --amarillo:#FFF001;
  --amarillo-osc:#E0C800;
  --morado-norte:#6A3BAF;
  --rojo-prodesa:#E4032E;
  --verde-campo:#1E7A4C;
  --gris-texto:#2B2F36;
  --gris-medio:#5A6473;
  --gris-suave:#F5F7FA;
  --borde:#E3E8EF;
  --blanco:#fff;
  --sombra:0 6px 24px rgba(0,0,0,.08);
  --sombra-alta:0 14px 40px rgba(0,0,0,.16);
  --radio:14px;
  --contenedor:1200px;
  --nav-h:78px;
  --fuente:'Inter','Segoe UI',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
body{
  margin:0;font-family:var(--fuente);font-size:17px;line-height:1.65;
  color:var(--gris-texto);background:var(--blanco);-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--azul-prodesa);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,h5{margin:0 0 .6em;line-height:1.2;font-weight:800;letter-spacing:-.02em;color:var(--azul-oscuro)}
h1{font-size:clamp(2rem,4.5vw,3rem)}
h2{font-size:clamp(1.6rem,3vw,2.2rem)}
h3{font-size:clamp(1.2rem,2vw,1.5rem)}
p{margin:0 0 1.1em}
ul{margin:0 0 1.1em;padding-left:1.2em}
:focus-visible{outline:3px solid var(--amarillo-osc);outline-offset:3px;border-radius:4px}

.contenedor{width:100%;max-width:var(--contenedor);margin:0 auto;padding:0 20px}
.seccion{padding:72px 0}
.seccion--suave{background:var(--gris-suave)}
.seccion--azul{background:var(--azul-claro)}
.centrado{text-align:center}
.mb0{margin-bottom:0}

/* Título de sección con franja amarilla */
.titulo-seccion{position:relative;display:inline-block;margin-bottom:1.4rem}
.titulo-seccion::after{
  content:"";position:absolute;left:0;bottom:-10px;width:64px;height:4px;
  background:var(--amarillo);border-radius:2px;
}
.centrado .titulo-seccion::after{left:50%;transform:translateX(-50%)}
.subtitulo{color:var(--gris-medio);max-width:760px;margin:1.4rem 0 0}
.centrado .subtitulo{margin-left:auto;margin-right:auto}

/* ---------- Botones ---------- */
.btn[hidden]{display:none}
.btn{
  display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.5rem;border-radius:999px;
  font-weight:700;font-size:.98rem;border:2px solid transparent;cursor:pointer;
  transition:all .2s ease;text-decoration:none;line-height:1.2;
}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn--primario{background:var(--azul-prodesa);color:#fff}
.btn--primario:hover{background:var(--azul-oscuro);color:#fff}
.btn--contorno{border-color:var(--azul-prodesa);color:var(--azul-prodesa);background:transparent}
.btn--contorno:hover{background:var(--azul-prodesa);color:#fff}
.btn--amarillo{background:var(--amarillo);color:var(--azul-oscuro)}
.btn--amarillo:hover{background:var(--amarillo-osc);color:var(--azul-oscuro)}
.btn--blanco{background:#fff;color:var(--azul-oscuro)}
.btn--blanco:hover{background:var(--amarillo);color:var(--azul-oscuro)}
.btn--sm{padding:.5rem 1rem;font-size:.85rem}

/* ===========================================================
   NAVEGACIÓN
   =========================================================== */
.barra-superior{background:var(--azul-oscuro);color:#dbe7f8;font-size:.85rem}
.barra-superior .contenedor{display:flex;justify-content:space-between;align-items:center;
  gap:1rem;min-height:38px;flex-wrap:wrap}
.barra-superior a{color:#dbe7f8}
.barra-superior a:hover{color:var(--amarillo);text-decoration:none}
.barra-superior__items{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap}
.barra-superior__item{display:inline-flex;align-items:center;gap:.4rem}
.barra-superior__item svg{width:15px;height:15px;flex:none}
.barra-superior__item>span{min-width:0}
.barra-superior__corto{display:none}
@media (max-width:900px){
  .barra-superior{font-size:.8rem}
  .barra-superior .contenedor{justify-content:center}
  .barra-superior__item--amplio{display:none}
  .barra-superior__amplio{display:none}
  .barra-superior__corto{display:inline}
  .barra-superior__items{gap:1rem;flex-wrap:nowrap}
}

.nav{position:sticky;top:0;z-index:900;background:#fff;border-bottom:1px solid var(--borde);
  transition:box-shadow .25s ease,padding .25s ease}
.nav.compacta{box-shadow:0 4px 20px rgba(0,0,0,.1)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:var(--nav-h);transition:min-height .25s ease}
.nav.compacta .nav__inner{min-height:62px}
.nav__marca{display:flex;align-items:center;gap:.7rem;text-decoration:none;flex-shrink:0}
.nav__marca:hover{text-decoration:none}
.nav__logo{width:auto;height:46px;border-radius:8px;object-fit:contain;background:#fff;
  border:1px solid var(--borde);padding:2px;transition:height .25s ease}
.nav.compacta .nav__logo{height:40px}
.pie__logo{width:auto;height:44px;border-radius:6px;object-fit:contain;background:#fff;padding:2px}
.nav__nombre{font-weight:900;color:var(--azul-oscuro);font-size:1.06rem;line-height:1.1;letter-spacing:-.02em}
.nav__nombre span{display:block;font-size:.7rem;font-weight:600;color:var(--gris-medio);
  letter-spacing:.06em;text-transform:uppercase}

.menu{display:flex;align-items:center;gap:.05rem;list-style:none;margin:0;padding:0}
.menu__item{position:relative}
.menu__link{
  display:inline-flex;align-items:center;gap:.3rem;padding:.7rem .52rem;border-radius:8px;
  color:var(--gris-texto);font-weight:600;font-size:.86rem;background:none;border:0;
  font-family:inherit;cursor:pointer;position:relative;transition:color .18s ease,background .18s ease;
}
.menu__link:hover{color:var(--azul-prodesa);background:var(--azul-claro);text-decoration:none}
.menu__link[aria-expanded="true"]{color:var(--azul-prodesa);background:var(--azul-claro)}
.menu__link.activo::after{
  content:"";position:absolute;left:.52rem;right:.52rem;bottom:2px;height:3px;
  background:var(--amarillo);border-radius:2px;
}
.menu__chev{width:12px;height:12px;transition:transform .22s ease;flex-shrink:0}
.menu__link[aria-expanded="true"] .menu__chev{transform:rotate(180deg)}
.menu__cta{margin-left:.5rem}
/*  Subir minuta es una gestión que hace el cliente, no una página que se
    lee: por eso va como botón y no como enlace de texto. Contorno azul
    para que el amarillo de Contacto siga siendo la única llamada fuerte. */
.menu__minuta{
  margin-left:.3rem;gap:.35rem;white-space:nowrap;padding:.5rem .8rem;
  border-color:var(--azul-prodesa);color:var(--azul-prodesa);background:transparent;
}
.menu__minuta:hover{background:var(--azul-prodesa);color:#fff}
.menu__minuta svg{width:15px;height:15px;flex:none}
.menu__minuta.activo{background:var(--azul-prodesa);color:#fff;
  box-shadow:0 0 0 3px rgba(0,73,175,.22)}
.menu__cta.activo{box-shadow:0 0 0 3px rgba(255,240,1,.35)}

/* Mega menú */
.mega{
  position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-8px);
  width:min(860px,92vw);background:#fff;border-radius:var(--radio);box-shadow:var(--sombra-alta);
  border:1px solid var(--borde);padding:1.4rem;display:grid;grid-template-columns:1.25fr 1fr;
  gap:1.4rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .22s ease;
  z-index:950;
}
.menu__item--fin .mega{left:auto;right:0;transform:translateX(0) translateY(-8px)}
.mega.abierto{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.menu__item--fin .mega.abierto{transform:translateX(0) translateY(0)}
.mega__lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}
.mega__enlace{
  display:flex;gap:.85rem;align-items:flex-start;padding:.7rem .8rem;border-radius:10px;
  color:var(--gris-texto);transition:background .18s ease,transform .18s ease;
}
.mega__enlace:hover,.mega__enlace:focus-visible{background:var(--azul-claro);text-decoration:none;transform:translateX(3px)}
.mega__enlace.activo{background:var(--azul-claro);box-shadow:inset 3px 0 0 var(--azul-prodesa)}
.mega__enlace.activo .mega__tit{color:var(--azul-oscuro)}
.mega__enlace.activo .mega__icono{background:var(--azul-prodesa);color:#fff}
.mega__icono{
  flex-shrink:0;width:38px;height:38px;border-radius:9px;background:var(--azul-claro);
  color:var(--azul-prodesa);display:grid;place-items:center;
}
.mega__icono svg{width:19px;height:19px}
.mega__enlace:hover .mega__icono{background:var(--azul-prodesa);color:#fff}
.mega__tit{display:block;font-weight:700;font-size:.93rem;color:var(--azul-oscuro);line-height:1.3}
.mega__desc{display:block;font-size:.79rem;color:var(--gris-medio);line-height:1.4;margin-top:2px}
.mega__figura{position:relative;border-radius:12px;overflow:hidden;min-height:250px;background:var(--gris-suave)}
.mega__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .25s ease}
.mega__img.visible{opacity:1}
.mega__pie{
  position:absolute;left:0;right:0;bottom:0;padding:.9rem .95rem;color:#fff;font-size:.8rem;
  font-weight:600;line-height:1.4;background:linear-gradient(transparent,rgba(0,17,48,.88));
}

/* Menú móvil */
.hamburguesa{display:none;width:46px;height:46px;border:1px solid var(--borde);background:#fff;
  border-radius:10px;cursor:pointer;padding:0;position:relative}
.hamburguesa span{position:absolute;left:12px;right:12px;height:2.5px;background:var(--azul-oscuro);
  border-radius:2px;transition:transform .25s ease,opacity .2s ease}
.hamburguesa span:nth-child(1){top:15px}
.hamburguesa span:nth-child(2){top:22px}
.hamburguesa span:nth-child(3){top:29px}
.hamburguesa[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburguesa[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburguesa[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.velo{position:fixed;inset:0;background:rgba(0,17,48,.55);opacity:0;visibility:hidden;
  transition:opacity .25s ease;z-index:880}
.velo.visible{opacity:1;visibility:visible}

@media (max-width:1200px){
  .menu{
    position:fixed;top:0;right:0;bottom:0;width:min(380px,88vw);background:#fff;z-index:960;
    flex-direction:column;align-items:stretch;gap:0;padding:1.2rem 1rem 3rem;overflow-y:auto;
    transform:translateX(102%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--sombra-alta);
  }
  .menu.abierto{transform:translateX(0)}
  .hamburguesa{display:block}
  .menu__link{width:100%;justify-content:space-between;padding:.95rem .8rem;font-size:1rem;
    border-bottom:1px solid var(--borde);border-radius:0}
  .menu__link.activo::after{display:none}
  .menu__link.activo{color:var(--azul-prodesa)}
  .menu__cta{margin:1rem .8rem 0;justify-content:center}
  .menu__minuta{margin:1.1rem .8rem 0;justify-content:center;padding:.8rem 1rem;font-size:.95rem}
  .mega{
    position:static;transform:none;width:100%;box-shadow:none;border:0;border-bottom:1px solid var(--borde);
    padding:0;display:block;opacity:1;visibility:visible;pointer-events:auto;max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  .mega.abierto{transform:none;max-height:900px;padding:.6rem 0 1rem}
  .mega__figura{display:none}
  .mega__enlace{padding:.65rem .8rem}
  .mega__icono{width:42px;height:42px;background-size:cover;background-position:center}
  .menu__item--fin .mega,.menu__item--fin .mega.abierto{transform:none;right:auto}
}

/* ===========================================================
   HERO / CARRUSEL
   =========================================================== */
.hero{position:relative;height:clamp(430px,64vh,620px);overflow:hidden;background:var(--azul-oscuro)}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;pointer-events:none}
.hero__slide.activo{opacity:1;pointer-events:auto}
.hero__img{width:100%;height:100%;object-fit:cover}
.hero__capa{position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(0,26,72,.86) 0%,rgba(0,49,115,.66) 45%,rgba(0,49,115,.12) 100%)}
.hero__texto{position:absolute;inset:0;display:flex;align-items:center}
.hero__caja{max-width:640px;color:#fff}
.hero__badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--amarillo);
  color:var(--azul-oscuro);font-weight:800;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.4rem .9rem;border-radius:999px;margin-bottom:1rem}
.hero__caja h1,.hero__caja .hero__titulo{color:#fff;margin-bottom:.5rem;text-shadow:0 2px 16px rgba(0,0,0,.35);
  font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.1;font-weight:900;letter-spacing:-.02em}
.hero__caja p{font-size:1.1rem;color:#e6eefb;margin-bottom:1.6rem;max-width:520px}
.hero__botones{display:flex;gap:.8rem;flex-wrap:wrap}
.hero__ctrl{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;
  border:0;background:rgba(255,255,255,.22);color:#fff;cursor:pointer;display:grid;place-items:center;
  backdrop-filter:blur(4px);transition:background .2s ease;z-index:3}
.hero__ctrl:hover{background:var(--amarillo);color:var(--azul-oscuro)}
.hero__ctrl--prev{left:16px}
.hero__ctrl--next{right:16px}
.hero__puntos{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:.5rem;z-index:3}
.hero__punto{width:34px;height:5px;border-radius:3px;border:0;background:rgba(255,255,255,.45);cursor:pointer;
  transition:background .2s ease}
.hero__punto.activo{background:var(--amarillo)}
@media (max-width:640px){
  .hero__ctrl{display:none}
  .hero__caja p{font-size:1rem}
}

/* Saludo dinámico */
.saludo{background:var(--amarillo);color:var(--azul-oscuro);font-weight:700;text-align:center;
  padding:.75rem 20px;font-size:.98rem}

/* ===========================================================
   COMPONENTES
   =========================================================== */
.grid{display:grid;gap:1.5rem}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid>*{min-width:0}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}

.tarjeta{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  box-shadow:var(--sombra);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .22s ease,box-shadow .22s ease}
.tarjeta:hover{transform:translateY(-5px);box-shadow:var(--sombra-alta)}
.tarjeta__img{width:100%;height:200px;object-fit:cover}
/* Collage de la tarjeta «Galería»: las 15 fotos reales de las agencias en un
   mosaico de 5 × 3. Sin bordes blancos: las celdas se tocan (gap de 2 px) y
   cada foto se recorta con object-fit para llenar por completo su casilla. */
.collage{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:1fr;
  gap:2px;height:260px;background:var(--borde);overflow:hidden;line-height:0}
.collage img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .45s ease,filter .45s ease}
.tarjeta:hover .collage img{filter:saturate(1.08)}
.collage img:hover{transform:scale(1.06)}
@media (max-width:520px){
  .collage{grid-template-columns:repeat(3,1fr);height:230px}
}
@media (prefers-reduced-motion:reduce){
  .collage img{transition:none}
  .collage img:hover{transform:none}
}
.tarjeta__cuerpo{padding:1.4rem;display:flex;flex-direction:column;flex:1}
.tarjeta__cuerpo h3{margin-bottom:.5rem;font-size:1.1rem}
.tarjeta__cuerpo p{color:var(--gris-medio);font-size:.95rem;flex:1}
.tarjeta__etiqueta{display:inline-block;background:var(--azul-claro);color:var(--azul-prodesa);
  font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  padding:.28rem .7rem;border-radius:999px;margin-bottom:.7rem;align-self:flex-start}
.tarjeta__etiqueta--verde{background:#E3F4EB;color:var(--verde-campo)}

/* Cifras */
.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem}
.cifra{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.6rem 1.2rem;
  text-align:center;box-shadow:var(--sombra)}
.cifra__n{font-size:2.5rem;font-weight:900;color:var(--azul-prodesa);line-height:1;letter-spacing:-.03em}
.cifra__t{font-size:.9rem;color:var(--gris-medio);margin-top:.5rem;font-weight:600}

/* Bloque "Usted debe saber" */
.saber{background:linear-gradient(135deg,#FFF9C4 0%,#FFF001 100%);border-radius:20px;padding:2.4rem;
  display:grid;grid-template-columns:auto 1fr;gap:2.4rem;align-items:center}
.saber__circulo{width:150px;height:150px;border-radius:50%;background:var(--azul-oscuro);color:#fff;
  display:grid;place-items:center;text-align:center;box-shadow:0 10px 30px rgba(0,49,115,.3)}
.saber__circulo strong{font-size:3rem;font-weight:900;line-height:1}
.saber__circulo span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;display:block;margin-top:.2rem}
.saber h2{margin-bottom:.3rem}
.saber__tasas{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1rem}
.tasa{background:#fff;border-radius:12px;padding:.9rem 1.4rem;text-align:center;min-width:96px;
  box-shadow:0 4px 12px rgba(0,0,0,.1)}
.tasa strong{display:block;font-size:1.6rem;font-weight:900;color:var(--azul-prodesa);line-height:1}
.tasa span{font-size:.7rem;color:var(--gris-medio);text-transform:uppercase;letter-spacing:.06em}
@media (max-width:720px){
  .saber{grid-template-columns:1fr;text-align:center;padding:1.8rem;gap:1.4rem}
  .saber__circulo{margin:0 auto;width:126px;height:126px}
  .saber__tasas{justify-content:center}
}

/* Comunicado */
.comunicado{background:#fff;border:1px solid var(--borde);border-left:6px solid var(--rojo-prodesa);
  border-radius:var(--radio);padding:1.8rem;box-shadow:var(--sombra);display:flex;gap:1.3rem}
.comunicado__icono{flex-shrink:0;width:52px;height:52px;border-radius:50%;background:#FDEAEE;
  color:var(--rojo-prodesa);display:grid;place-items:center}
.comunicado h3{color:var(--rojo-prodesa);font-size:1.1rem;margin-bottom:.5rem}
.comunicado p{margin:0;font-size:.96rem;color:var(--gris-medio)}
@media (max-width:600px){.comunicado{flex-direction:column;padding:1.3rem}}

/* Página: encabezado */
.encabezado{background:linear-gradient(120deg,var(--azul-oscuro) 0%,var(--azul-prodesa) 100%);
  color:#fff;padding:56px 0;position:relative;overflow:hidden}
.encabezado::after{content:"";position:absolute;right:-70px;top:-70px;width:280px;height:280px;
  border-radius:50%;background:rgba(255,240,1,.12)}
.encabezado h1{color:#fff;margin-bottom:.35rem;position:relative}
.encabezado p{color:#d9e6fa;margin:0;max-width:720px;position:relative}
.miga{font-size:.83rem;color:#a9c4ea;margin-bottom:.9rem;position:relative}
.miga a{color:#d9e6fa}
.miga a:hover{color:var(--amarillo)}

/* Caja de contenido */
.caja{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  padding:1.9rem;box-shadow:var(--sombra)}
.caja--acento{border-left:5px solid var(--amarillo)}
.cita{border-left:5px solid var(--azul-prodesa);background:var(--azul-claro);padding:1.3rem 1.5rem;
  border-radius:0 12px 12px 0;font-style:italic;color:var(--azul-oscuro)}

/* Lista con viñeta » */
.lista-flecha{list-style:none;padding:0;margin:0}
.lista-flecha li{position:relative;padding-left:1.9rem;margin-bottom:.9rem;color:var(--gris-medio)}
.lista-flecha li::before{content:"»";position:absolute;left:0;top:-2px;color:var(--azul-prodesa);
  font-weight:900;font-size:1.25rem}
.lista-check{list-style:none;padding:0;margin:0}
.lista-check li{position:relative;padding-left:1.75rem;margin-bottom:.55rem;color:var(--gris-medio)}
.lista-check li::before{content:"✓";position:absolute;left:0;top:0;font-size:.95rem;
  font-weight:900;color:var(--verde-campo)}

/* Tablas */
.tabla-wrap{overflow-x:auto;border:1px solid var(--borde);border-radius:var(--radio);background:#fff;
  box-shadow:var(--sombra)}
table.tabla{width:100%;border-collapse:collapse;min-width:560px;font-size:.93rem}
table.tabla th{background:var(--azul-oscuro);color:#fff;text-align:left;padding:.9rem 1rem;
  font-weight:700;font-size:.86rem;letter-spacing:.02em}
table.tabla td{padding:.85rem 1rem;border-bottom:1px solid var(--borde);color:var(--gris-medio);vertical-align:top}
table.tabla tbody tr:nth-child(even){background:var(--gris-suave)}
table.tabla tbody tr:hover{background:var(--azul-claro)}
table.tabla td strong{color:var(--gris-texto)}

/* Acordeón */
.acordeon{border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden;background:#fff;
  box-shadow:var(--sombra)}
.acordeon__item+.acordeon__item{border-top:1px solid var(--borde)}
.acordeon__btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.15rem 1.4rem;background:#fff;border:0;font-family:inherit;font-size:1rem;font-weight:700;
  color:var(--azul-oscuro);text-align:left;cursor:pointer;transition:background .18s ease}
.acordeon__btn:hover{background:var(--azul-claro)}
.acordeon__btn svg{width:16px;height:16px;flex-shrink:0;transition:transform .25s ease;color:var(--azul-prodesa)}
.acordeon__btn[aria-expanded="true"]{background:var(--azul-claro)}
.acordeon__btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.acordeon__panel{max-height:0;overflow:hidden;transition:max-height .3s ease}
.acordeon__panel-inner{padding:0 1.4rem 1.3rem;color:var(--gris-medio);font-size:.96rem}
.acordeon__panel-inner ul{margin:.6rem 0 0}
.acordeon__panel-inner li{margin-bottom:.4rem}

/* Descargas PDF */
.descarga{display:flex;align-items:center;gap:1rem;padding:1.05rem 1.2rem;background:#fff;
  border:1px solid var(--borde);border-radius:12px;transition:all .2s ease;color:var(--gris-texto)}
.descarga:hover{border-color:var(--azul-prodesa);box-shadow:var(--sombra);text-decoration:none;
  transform:translateX(4px)}
.descarga__icono{flex-shrink:0;width:42px;height:42px;border-radius:9px;background:#FDEAEE;
  color:var(--rojo-prodesa);display:grid;place-items:center;font-size:.68rem;font-weight:900}
.descarga__txt{flex:1;font-weight:600;font-size:.95rem;line-height:1.35}
.descarga__txt small{display:block;font-weight:500;color:var(--gris-medio);font-size:.8rem}
.descarga__flecha{color:var(--azul-prodesa);flex-shrink:0}
.lista-descargas{display:grid;gap:.8rem}

/* Personas / consejo */
.persona{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.6rem;
  text-align:center;box-shadow:var(--sombra);transition:transform .2s ease}
.persona:hover{transform:translateY(-4px)}
.persona__avatar{width:82px;height:82px;border-radius:50%;margin:0 auto .9rem;display:grid;
  place-items:center;background:linear-gradient(135deg,var(--azul-prodesa),var(--azul-oscuro));
  color:#fff;font-weight:900;font-size:1.5rem;letter-spacing:-.02em}
.persona h3{font-size:1rem;margin-bottom:.25rem}
.persona p{font-size:.86rem;color:var(--gris-medio);margin:0}

/* Agencias */
.agencia{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.5rem;
  box-shadow:var(--sombra);display:flex;flex-direction:column;transition:all .2s ease}
.agencia:hover{transform:translateY(-4px);box-shadow:var(--sombra-alta);border-color:var(--azul-prodesa)}
.agencia--matriz{border-top:5px solid var(--amarillo)}
.agencia h3{font-size:1.02rem;margin-bottom:.15rem;color:var(--azul-oscuro)}
.agencia__resp{font-size:.85rem;color:var(--gris-medio);margin-bottom:.9rem;font-weight:600}
.agencia__datos{list-style:none;padding:0;margin:0 0 1.1rem;font-size:.88rem;color:var(--gris-medio);flex:1}
.agencia__datos li{display:flex;gap:.6rem;margin-bottom:.55rem;align-items:flex-start;word-break:break-word}
.agencia__datos svg{width:16px;height:16px;flex-shrink:0;color:var(--azul-prodesa);margin-top:3px}
.agencia__acciones{display:flex;gap:.5rem;flex-wrap:wrap}

/* Buscador */
.buscador{position:relative;max-width:520px;margin:0 auto 2rem}
.buscador input{width:100%;padding:.9rem 1.1rem .9rem 2.9rem;border:2px solid var(--borde);
  border-radius:999px;font-family:inherit;font-size:1rem;transition:border-color .2s ease}
.buscador input:focus{outline:none;border-color:var(--azul-prodesa)}
.buscador svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:19px;height:19px;
  color:var(--gris-medio)}
.sin-resultados{text-align:center;color:var(--gris-medio);padding:2rem;display:none}

/* Formulario */
.formulario{display:grid;gap:1.1rem}
.campo{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.campo label{font-weight:700;font-size:.88rem;color:var(--azul-oscuro)}
.campo input,.campo select,.campo textarea{
  padding:.78rem .95rem;border:2px solid var(--borde);border-radius:10px;font-family:inherit;
  font-size:.98rem;background:#fff;color:var(--gris-texto);transition:border-color .2s ease}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--azul-prodesa)}
.campo textarea{resize:vertical;min-height:110px}
.campo--fila{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.campo--fila>*{min-width:0}
.campo__error{color:var(--rojo-prodesa);font-size:.8rem;display:none}
.campo.error input,.campo.error select{border-color:var(--rojo-prodesa)}
.campo.error .campo__error{display:block}
.check{display:flex;gap:.65rem;align-items:flex-start;font-size:.86rem;color:var(--gris-medio)}
.check[hidden]{display:none}  /* display:flex gana al hidden nativo: hay que decirlo */
.check input{width:19px;height:19px;flex-shrink:0;margin-top:2px;accent-color:var(--azul-prodesa)}
.check.error{color:var(--rojo-prodesa)}
.check.error input{outline:2px solid var(--rojo-prodesa);outline-offset:2px}
.check.error label{color:var(--rojo-prodesa)}
.aviso-ok{background:#E3F4EB;border:1px solid var(--verde-campo);color:#14603A;padding:1rem 1.2rem;
  border-radius:10px;display:none;font-weight:600}
.aviso-ok.visible{display:block}
/* Aviso rojo de requisitos pendientes: el envío nunca se detiene en silencio */
.aviso-falta{background:#FFF5F6;border:1px solid var(--rojo-prodesa);color:#8C0B22;
  padding:1rem 1.2rem;border-radius:10px;font-size:.9rem}
.aviso-falta[hidden]{display:none}
.aviso-falta b{display:block;color:var(--rojo-prodesa);margin-bottom:.15rem}
.aviso-falta ul{margin:.5rem 0 0;padding-left:1.15rem}
.aviso-falta li{margin:.22rem 0}
.aviso-falta a{color:#8C0B22;text-decoration:underline;cursor:pointer}
/* Aviso de que el plan de pagos que se acaba de generar es una proyección.
   Se pidió que apareciera SOLO con el resultado a la vista -puesto fijo, se
   lee como una advertencia general de la página y se termina ignorando;
   pegado a la tabla, lo ve quien de verdad está mirando las cifras-. */
.aviso-proyeccion{background:#FFF8E6;border:1px solid #E0B400;border-left:5px solid #E0B400;
  color:#6B4E00;padding:1rem 1.2rem;border-radius:10px;font-size:.88rem;line-height:1.5;
  margin:1.2rem 0 0}
.aviso-proyeccion[hidden]{display:none}
.aviso-proyeccion strong{color:#5A3E00}
@media (max-width:600px){.campo--fila{grid-template-columns:1fr}}

/* Simulador */
.simulador{display:grid;grid-template-columns:330px 1fr;gap:1.8rem;align-items:start}
.simulador>*{min-width:0}
@media (max-width:900px){.simulador{grid-template-columns:1fr}}
.simulador__resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;
  margin-bottom:1.3rem}
.resumen-item{background:var(--azul-claro);border-radius:12px;padding:1rem;text-align:center}
.resumen-item strong{display:block;font-size:1.35rem;color:var(--azul-oscuro);font-weight:900;line-height:1.2;
  white-space:nowrap}
/* Con el simulador a 1 columna, auto-fit deja celdas de ~152px y la cifra (nowrap) no cabe */
@media (max-width:1080px){.simulador__resumen{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.simulador__resumen{grid-template-columns:1fr 1fr;gap:.6rem}
  .resumen-item{padding:.8rem .5rem}
  .resumen-item strong{font-size:1.05rem}
  .resumen-item span{font-size:.68rem;letter-spacing:.03em}}
.resumen-item span{font-size:.76rem;color:var(--gris-medio);text-transform:uppercase;letter-spacing:.05em;
  font-weight:700}
/* Simulador: desglose paso a paso */
.lista-pasos{margin:0;padding-left:1.3rem;display:grid;gap:.5rem;font-size:.9rem;color:var(--gris-texto)}
.lista-pasos li{line-height:1.55}
.lista-pasos strong{color:var(--azul-oscuro)}
/* La tabla del simulador tiene 9 columnas: se compacta para que quepa sin scroll */
#simulador table.tabla{min-width:0;font-size:.78rem}
#simulador table.tabla th,#simulador table.tabla td{padding:.5rem .38rem;white-space:nowrap}
#simulador table.tabla thead th{position:sticky;top:0;z-index:2;font-size:.72rem;padding:.55rem .38rem}
#simulador table.tabla td{text-align:right}
#simulador table.tabla td:first-child,#simulador table.tabla td:nth-child(2),
#simulador table.tabla td:nth-child(3){text-align:center}
#simulador table.tabla th:not(:first-child):not(:nth-child(2)):not(:nth-child(3)){text-align:right}
#sim-pie th{background:var(--azul-claro);color:var(--azul-oscuro);font-weight:800;
  text-align:right;position:sticky;bottom:0}
#sim-pie th:first-child{text-align:left}
#simulador .tabla-wrap{max-height:560px;overflow:auto}
@media (max-width:1080px){.simulador{grid-template-columns:1fr}}
.sim-desde{display:block;font-size:.72em;font-weight:500;color:var(--gris-medio);
  letter-spacing:0;text-transform:none;line-height:1.25;margin-top:.15rem;white-space:nowrap}
#simulador thead .sim-desde{color:#DCE7F7}
@media (max-width:700px){#simulador table.tabla{min-width:680px}}
.descargo{font-size:.82rem;color:var(--gris-medio);background:var(--gris-suave);padding:.85rem 1rem;
  border-radius:10px;border-left:4px solid var(--amarillo);margin-top:1.2rem}

/* Mapa */
/* El mapa se lleva más ancho que la ficha de la agencia: a mitades iguales,
   Nicaragua entraba tan angosta que las chinches del Pacífico se encimaban
   unas con otras. La ficha es texto y aguanta bien la columna estrecha. */
.mapa{display:grid;grid-template-columns:1.45fr 1fr;gap:2rem;align-items:center}
@media (max-width:900px){.mapa{grid-template-columns:1fr}}
.mapa__punto{cursor:pointer;transition:r .18s ease,fill .18s ease}
.mapa__punto:hover{fill:var(--amarillo)}
.region{margin-bottom:1.4rem}
.region h3{font-size:1rem;display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}
.region h3::before{content:"";width:12px;height:12px;border-radius:3px;background:var(--azul-prodesa)}
.region--caribe h3::before{background:var(--verde-campo)}
.region--pacifico h3::before{background:var(--amarillo-osc)}
.region--norte h3::before{background:var(--morado-norte)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0}
.chips li{background:#fff;border:1px solid var(--borde);border-radius:999px;padding:.35rem .9rem;
  font-size:.85rem;font-weight:600;color:var(--azul-oscuro)}

/* Modal */
.modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:20px}
.modal.abierto{display:flex}
.modal__fondo{position:absolute;inset:0;background:rgba(0,17,48,.7)}
.modal__caja{position:relative;background:#fff;border-radius:18px;max-width:660px;width:100%;
  max-height:88vh;overflow-y:auto;box-shadow:var(--sombra-alta);animation:aparecer .25s ease}
@keyframes aparecer{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.modal__cabecera{padding:1.5rem 1.8rem 0;display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.modal__cabecera h3{margin:0;font-size:1.2rem}
.modal__cerrar{background:none;border:0;font-size:1.7rem;line-height:1;cursor:pointer;color:var(--gris-medio);
  padding:0 .2rem}
.modal__cerrar:hover{color:var(--rojo-prodesa)}
.modal__cuerpo{padding:1rem 1.8rem 1.8rem;color:var(--gris-medio);font-size:.97rem}
.modal__cuerpo img{border-radius:12px;margin-bottom:1.1rem}
/* Modal ancho para listados largos (destinos del crédito agropecuario) */
.modal__caja--ancha{max-width:880px}
.modal__entrada{background:var(--azul-claro);border-left:4px solid var(--azul-prodesa);
  border-radius:0 10px 10px 0;padding:.9rem 1.1rem;margin-bottom:1.4rem;color:var(--azul-oscuro)}
.destinos{display:grid;grid-template-columns:1fr;gap:1.1rem;align-items:start}
@media (min-width:700px){.destinos{grid-template-columns:repeat(2,minmax(0,1fr))}}
.destinos__grupo{background:var(--gris-suave);border:1px solid var(--borde);border-radius:14px;padding:1.1rem 1.2rem}
.destinos__grupo h4{display:flex;align-items:center;gap:.55rem;margin:0 0 .7rem;font-size:1.02rem;
  color:var(--azul-oscuro);line-height:1.2}
.destinos__icono{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;
  flex:0 0 32px;border-radius:9px;background:var(--azul-prodesa);color:#fff}
.destinos__grupo .lista-check li{font-size:.92rem;margin-bottom:.42rem}
.destinos__grupo .lista-check li:last-child{margin-bottom:0}
/* Aviso destacado con ícono (beneficio por asistencia técnica) */
.modal__entrada--destaque{display:flex;align-items:flex-start;gap:.75rem;
  background:#FFFDE7;border-left:4px solid var(--amarillo);color:var(--azul-oscuro)}
.modal__entrada-icono{flex:0 0 auto;display:inline-flex;color:var(--azul-prodesa);margin-top:.1rem}
/* Lista numerada de destinos del crédito */
.destinos-num{list-style:none;padding:0;margin:1.3rem 0 0;display:grid;gap:.7rem;
  grid-template-columns:1fr}
@media (min-width:700px){.destinos-num{grid-template-columns:repeat(2,minmax(0,1fr))}}
.destinos-num li{display:flex;align-items:center;gap:.8rem;background:var(--gris-suave);
  border:1px solid var(--borde);border-radius:12px;padding:.85rem 1rem}
.destinos-num__n{flex:0 0 32px;width:32px;height:32px;display:inline-flex;align-items:center;
  justify-content:center;border-radius:50%;background:var(--azul-prodesa);color:#fff;
  font-weight:700;font-size:.95rem}
.destinos-num__t{font-weight:600;color:var(--azul-oscuro)}
/* Subtítulo dentro de un modal */
.modal__subtitulo{margin:1.5rem 0 .9rem;font-size:1.02rem;color:var(--azul-oscuro);
  padding-bottom:.5rem;border-bottom:2px solid var(--borde)}
/* Giros de negocio financiados (préstamos comerciales y de servicios) */
.giros{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;grid-template-columns:1fr}
@media (min-width:700px){.giros{grid-template-columns:repeat(2,minmax(0,1fr))}}
.giros li{display:flex;align-items:center;gap:.7rem;background:var(--gris-suave);
  border:1px solid var(--borde);border-radius:12px;padding:.75rem .9rem;
  font-weight:600;color:var(--azul-oscuro);font-size:.93rem;line-height:1.3}
.giros__icono{flex:0 0 34px;width:34px;height:34px;display:inline-flex;align-items:center;
  justify-content:center;border-radius:9px;background:var(--azul-claro);color:var(--azul-prodesa)}

/* Galería */
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}
/* Galería de pocas piezas. Con el auto-fill de arriba quedaban columnas
   vacías a la derecha y el bloque se pegaba al margen izquierdo; con
   auto-fit salía peor en pantallas medianas -una foto huérfana abajo-. Por
   eso el número de columnas es fijo por tramo, tomando divisores de cuántas
   fotos hay, así nunca queda fila incompleta; justify-content centra el
   conjunto porque las columnas tienen ancho tope en vez de 1fr.
   Al quitar la cuarta foto de desempeno-social.html -la entrega del
   certificado, que ya está arriba en el bloque de la certificación- pasaron
   a ser tres, y los tramos de 2 y 4 columnas dejaban una huérfana: ahora los
   divisores son 1 y 3. Las tres caben desde 820px (3x250 + 2 de separación
   + el respiro del contenedor); por debajo van apiladas y centradas. */
.galeria--centrada{grid-template-columns:minmax(0,250px);justify-content:center}
/* Foto ampliable: la miniatura se deja chica para que la galería no se
   coma la página, y la foto se lee al ampliarla en la misma página. */
.galeria__item[data-ampliar]{cursor:zoom-in}
.galeria__item[data-ampliar]:hover::after{background:rgba(0,49,115,.18)}
.lupa{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;padding:24px}
.lupa.abierta{display:flex}
.lupa__fondo{position:absolute;inset:0;background:rgba(0,17,48,.88)}
.lupa__caja{position:relative;margin:0;max-width:1100px;width:100%;text-align:center}
.lupa__img{max-width:100%;max-height:78vh;width:auto;height:auto;border-radius:10px;
  box-shadow:0 18px 50px rgba(0,0,0,.45);background:#fff}
.lupa__pie{color:#fff;font-size:.95rem;font-weight:600;margin-top:.9rem;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.lupa__btn{position:absolute;z-index:1;background:rgba(255,255,255,.14);border:0;color:#fff;
  cursor:pointer;border-radius:50%;width:46px;height:46px;font-size:1.9rem;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:background .2s ease}
.lupa__btn:hover,.lupa__btn:focus-visible{background:rgba(255,255,255,.32)}
.lupa__btn--cerrar{top:18px;right:18px;font-size:1.7rem}
@media(max-width:560px){
  .lupa{padding:12px}
  .lupa__btn{width:40px;height:40px}
}
@media(min-width:820px){.galeria--centrada{grid-template-columns:repeat(3,minmax(0,250px))}}
.galeria__item{position:relative;border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:4/3;
  border:0;padding:0;background:none}
.galeria__item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.galeria__item:hover img{transform:scale(1.07)}
.galeria__item::after{content:"";position:absolute;inset:0;background:rgba(0,49,115,0);transition:background .25s ease}
.galeria__item:hover::after{background:rgba(0,49,115,.25)}

/* Galería de agencias: foto 4/3 + pie visible con la dirección */
.galeria--agencias{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.4rem}
.galeria--agencias .galeria__item{aspect-ratio:auto;display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  box-shadow:0 2px 10px rgba(0,49,115,.06);transition:transform .25s ease,box-shadow .25s ease}
.galeria--agencias .galeria__item:hover,
.galeria--agencias .galeria__item:focus-visible{transform:translateY(-4px);
  box-shadow:0 12px 26px rgba(0,49,115,.14)}
.galeria--agencias .galeria__item>img{aspect-ratio:4/3;height:auto;flex:0 0 auto}
.galeria--agencias .galeria__item::after{inset:0 0 auto 0;aspect-ratio:4/3;border-radius:var(--radio) var(--radio) 0 0}
.galeria--agencias figcaption{display:flex;flex-direction:column;gap:.25rem;
  padding:.85rem 1rem 1rem;text-align:left;line-height:1.35}
.galeria--agencias figcaption strong{color:var(--azul-oscuro);font-size:.98rem;font-weight:700}
.galeria__dir{font-weight:500;font-size:.83rem;color:var(--gris-medio)}

/* Franja CTA */
.cta{background:linear-gradient(120deg,var(--azul-oscuro),var(--azul-prodesa));color:#fff;
  border-radius:20px;padding:2.6rem;text-align:center;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;left:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;
  background:rgba(255,240,1,.14)}
.cta h2{color:#fff;position:relative}
.cta p{color:#d9e6fa;max-width:620px;margin:0 auto 1.6rem;position:relative}
.cta__botones{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;position:relative}

/* Footer */
.pie{background:var(--azul-oscuro);color:#c3d5ef;padding:56px 0 0;font-size:.92rem;margin-top:0}
.pie a{color:#c3d5ef}
.pie a:hover{color:var(--amarillo);text-decoration:none}
.pie__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2rem;padding-bottom:2.4rem}
@media (max-width:900px){.pie__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pie__grid{grid-template-columns:1fr}}
.pie h4{color:#fff;font-size:.92rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem}
.pie ul{list-style:none;padding:0;margin:0}
.pie li{margin-bottom:.55rem}
.pie__marca{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}
.pie__marca img{width:44px;height:44px;border-radius:9px;background:#fff;padding:2px;object-fit:contain}
.pie__marca strong{color:#fff;font-size:1rem;display:block;line-height:1.2}
.pie__contacto li{display:flex;gap:.6rem;align-items:flex-start}
.pie__contacto svg{width:16px;height:16px;flex-shrink:0;margin-top:4px;color:var(--amarillo)}
.pie__social{display:flex;gap:.6rem;margin-top:1rem}
.pie__social a{width:46px;height:46px;border-radius:11px;background:rgba(255,255,255,.1);display:grid;
  place-items:center;color:#fff;transition:background .2s ease}
.pie__social a:hover{background:var(--amarillo);color:var(--azul-oscuro)}
.pie__base{border-top:1px solid rgba(255,255,255,.15);padding:1.2rem 0;display:flex;
  justify-content:center;text-align:center;gap:1rem;flex-wrap:wrap;font-size:.83rem;color:#9db6da}
.pie__aviso{background:rgba(0,0,0,.22);padding:.9rem 0;font-size:.79rem;color:#9db6da;text-align:center}

/* Flotantes */
.flotante{position:fixed;right:20px;z-index:800;width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;box-shadow:var(--sombra-alta);border:0;cursor:pointer;
  transition:transform .2s ease}
.flotante:hover{transform:scale(1.09)}
.flotante--wa{bottom:20px;background:#25D366;color:#fff}
.flotante--top{bottom:86px;background:var(--azul-oscuro);color:#fff;opacity:0;visibility:hidden;
  transition:opacity .25s ease,visibility .25s ease,transform .2s ease}
.flotante--top.visible{opacity:1;visibility:visible}

/* Animaciones al scroll */
.anim{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.anim.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .anim{opacity:1;transform:none}
  html{scroll-behavior:auto}
}


/* Utilidades */
.oculto-visual{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pasos{counter-reset:paso;display:grid;gap:1.1rem}
.paso{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.4rem 1.5rem 1.4rem 4.2rem;
  position:relative;box-shadow:var(--sombra)}
.paso::before{counter-increment:paso;content:counter(paso);position:absolute;left:1.2rem;top:1.3rem;
  width:38px;height:38px;border-radius:50%;background:var(--azul-prodesa);color:#fff;display:grid;
  place-items:center;font-weight:900;font-size:1rem}
.paso h3{font-size:1.02rem;margin-bottom:.5rem}
.paso p:last-child,.paso ul:last-child{margin-bottom:0}
.destacado-plazo{background:var(--amarillo);color:var(--azul-oscuro);font-weight:900;font-size:1.5rem;
  display:inline-block;padding:.3rem 1rem;border-radius:10px;margin-bottom:.6rem}

/* ============================================================
   Componentes de páginas internas
   ============================================================ */

/* Bloques destacados misión / visión */
.destacado{border-radius:18px;padding:2.2rem;color:#fff;box-shadow:var(--sombra-alta);position:relative;overflow:hidden}
.destacado::after{content:"";position:absolute;right:-60px;bottom:-60px;width:200px;height:200px;
  border-radius:50%;background:rgba(255,255,255,.08)}
.destacado--azul{background:linear-gradient(135deg,var(--azul-prodesa),var(--azul-oscuro))}
.destacado--verde{background:linear-gradient(135deg,var(--verde-campo),#0F5233)}
.destacado h2{color:#fff;margin-bottom:.7rem;font-size:1.6rem}
.destacado p{color:rgba(255,255,255,.94);margin-bottom:0;font-size:1.03rem;line-height:1.75;position:relative;z-index:1}
.destacado__icono{width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.16);
  display:grid;place-items:center;margin-bottom:1.1rem;position:relative;z-index:1}
.destacado__icono svg{width:26px;height:26px;stroke:#fff}
.destacado__icono--claro{background:var(--azul-claro)}
.destacado__icono--claro svg{stroke:var(--azul-prodesa)}
.destacado-texto{font-size:1.06rem;border-left:4px solid var(--amarillo);padding-left:1.1rem;color:var(--azul-oscuro)}

/* Valores */
.valor{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.7rem;
  box-shadow:var(--sombra);transition:transform .25s,box-shadow .25s,border-color .25s}
.valor:hover{transform:translateY(-4px);box-shadow:var(--sombra-alta);border-color:var(--azul-prodesa)}
.valor__icono{width:46px;height:46px;border-radius:12px;background:var(--azul-claro);display:grid;place-items:center;margin-bottom:.9rem}
.valor__icono svg{width:24px;height:24px;stroke:var(--azul-prodesa)}
.valor h3{font-size:1.08rem;color:var(--azul-oscuro);margin-bottom:.45rem}
.valor p{font-size:.93rem;margin-bottom:0;color:var(--gris-medio)}

/* Nota / caja informativa */
.nota{background:var(--azul-claro);border-left:5px solid var(--azul-prodesa);border-radius:12px;padding:1.4rem 1.6rem}
.nota p{color:var(--azul-oscuro)}
.pie-nota{font-size:.85rem;color:var(--gris-medio);text-align:center;margin-top:1.2rem;font-style:italic}

/* Línea de tiempo */
.linea-tiempo{position:relative;max-width:840px;margin:0 auto;padding-left:2.2rem}
.linea-tiempo::before{content:"";position:absolute;left:38px;top:12px;bottom:12px;width:3px;
  background:linear-gradient(var(--azul-prodesa),var(--amarillo))}
.hito{display:grid;grid-template-columns:78px 1fr;gap:1.4rem;align-items:start;margin-bottom:1.6rem;position:relative}
.hito__punto{width:78px;height:78px;border-radius:50%;background:#fff;border:3px solid var(--azul-prodesa);
  display:grid;place-items:center;position:relative;z-index:1;box-shadow:var(--sombra)}
.hito__punto span{font-weight:900;color:var(--azul-oscuro);font-size:.9rem;text-align:center;line-height:1.1}
.hito__cuerpo{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.3rem 1.5rem;box-shadow:var(--sombra)}
.hito__cuerpo h3{font-size:1.08rem;color:var(--azul-prodesa);margin-bottom:.4rem}
.hito__cuerpo p{margin-bottom:0;font-size:.95rem}

/* Documento destacado */
.doc-destacado{display:grid;grid-template-columns:auto 1fr;gap:1.6rem;align-items:start;
  background:#fff;border:1px solid var(--borde);border-left:5px solid var(--amarillo);
  border-radius:var(--radio);padding:1.9rem;box-shadow:var(--sombra)}
.doc-destacado__icono{width:60px;height:60px;border-radius:16px;background:var(--azul-claro);display:grid;place-items:center}
.doc-destacado__icono svg{width:30px;height:30px;stroke:var(--azul-prodesa)}

/* Organigrama */
.organigrama{background:#fff;border:1px solid var(--borde);border-radius:18px;padding:2.2rem 1.4rem;box-shadow:var(--sombra)}
/* ====== ORGANIGRAMA (fiel al oficial 2022) ====== */
.organigrama{--org-linea:#8FB4DC;--org-w:3px;overflow-x:auto;padding:.5rem .2rem 1rem;-webkit-overflow-scrolling:touch}
.organigrama__lienzo{min-width:940px;display:flex;flex-direction:column;align-items:center}

.org-caja{display:flex;align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(180deg,#EAF3FC 0%,#BFDBF3 42%,#7FB2E0 100%);
  border:1px solid #4E8FC7;border-radius:4px;color:#0B2E52;font-weight:700;
  font-size:.72rem;line-height:1.22;letter-spacing:.01em;text-transform:uppercase;
  padding:.5rem .55rem;min-height:56px;box-shadow:1px 2px 4px rgba(11,46,82,.22);
  box-sizing:border-box}
.org-caja--raiz{background:linear-gradient(180deg,#DCEBFA 0%,#A9CDEE 45%,#5E9BD5 100%);
  border-color:#2F6FA8;min-height:62px;font-size:.75rem}
.org-caja--gg{background:linear-gradient(180deg,#DCEBFA 0%,#A9CDEE 45%,#5E9BD5 100%);
  border-color:#2F6FA8;min-height:60px;font-size:.75rem}

/* tronco vertical */
.org-tronco{width:var(--org-w);background:var(--org-linea);margin:0 auto}
.org-tronco--corto{height:22px}
.org-tronco--largo{height:34px}

/* bloque de unidades de apoyo (staff) colgadas del tronco */
.org-staff{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;
  padding:16px 0;width:100%}
.org-staff::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:var(--org-w);
  background:var(--org-linea);transform:translateX(-50%)}
.org-staff__fila{position:relative;display:flex;justify-content:center;width:100%}
/* Par de cajas: la unión entre ambas cae justo sobre el tronco central. */
.org-staff__par{position:relative;display:flex;align-items:stretch;gap:0}
/* Caja única a la izquierda: su conector termina exactamente en el tronco.
   El margen equivale al ancho del propio grupo (172 + 26), de modo que el
   centrado del flex deja el borde derecho sobre la línea central. */
.org-staff__uno{position:relative;display:flex;align-items:stretch;margin-right:198px}
.org-staff__par .org-caja,
.org-staff__uno .org-caja{width:172px}
.org-staff__union{width:26px;align-self:center;height:var(--org-w);background:var(--org-linea)}

/* fila de gerencias bajo la Gerencia General */
.org-ramas{--org-gap:22px;position:relative;display:flex;justify-content:center;
  align-items:flex-start;gap:var(--org-gap);width:100%;padding-top:26px}
.org-rama{position:relative;display:flex;flex-direction:column;align-items:center;flex:1 1 0;
  min-width:132px;max-width:172px}
/* Bajante de cada gerencia hasta la barra horizontal. */
.org-rama::before{content:"";position:absolute;top:-26px;left:50%;width:var(--org-w);height:26px;
  background:var(--org-linea);transform:translateX(-50%)}
/* Barra horizontal por tramos: cada rama aporta su trozo, incluida la mitad del
   hueco contiguo. La primera arranca en su centro y la última termina en el suyo,
   de modo que la línea llega siempre hasta el eje de las cajas de los extremos. */
.org-rama::after{content:"";position:absolute;top:-26px;height:var(--org-w);
  background:var(--org-linea);
  left:calc(var(--org-gap) / -2 - var(--org-w) / 2);
  right:calc(var(--org-gap) / -2 - var(--org-w) / 2)}
.org-rama:first-child::after{left:50%}
.org-rama:last-child::after{right:50%}
.org-rama > .org-caja{width:100%}

/* hijos en columna, colgando con codo a la izquierda */
.org-hijos{position:relative;width:100%;margin-top:0;padding-top:18px;
  padding-left:26px;display:flex;flex-direction:column;gap:14px;box-sizing:border-box}
.org-hijos::before{content:"";position:absolute;left:26px;top:0;width:var(--org-w);
  height:calc(100% - 28px);background:var(--org-linea)}
.org-hijo{position:relative;padding-left:20px}
.org-hijo::before{content:"";position:absolute;left:0;top:50%;width:20px;height:var(--org-w);
  background:var(--org-linea);transform:translateY(-50%)}
.org-hijo .org-caja{width:100%;min-height:52px;font-size:.68rem}

@media (max-width:640px){
  .organigrama{border:1px solid var(--borde);border-radius:var(--radio);background:#fff}
  .organigrama__aviso{display:block}
}
.organigrama__aviso{display:none;font-size:.85rem;color:var(--gris-medio);
  padding:.5rem .8rem 0;text-align:center}

/* Personas / consejo */
.persona{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.7rem;
  text-align:center;box-shadow:var(--sombra);transition:transform .25s,box-shadow .25s}
.persona:hover{transform:translateY(-4px);box-shadow:var(--sombra-alta)}
.persona__avatar{width:76px;height:76px;border-radius:50%;margin:0 auto .95rem;
  background:linear-gradient(135deg,var(--azul-prodesa),var(--azul-oscuro));color:#fff;
  display:grid;place-items:center;font-weight:900;font-size:1.5rem;letter-spacing:.5px}
img.persona__avatar--foto{display:block;width:112px;height:112px;object-fit:cover;object-position:50% 22%;
  background:var(--azul-claro);border:3px solid #fff;
  box-shadow:0 4px 16px rgba(0,49,175,.22);padding:0;font-size:0}
.persona:hover img.persona__avatar--foto{box-shadow:0 6px 20px rgba(0,49,175,.3)}
.persona h3{font-size:1.02rem;color:var(--azul-oscuro);margin-bottom:.3rem}
.persona p{font-size:.88rem;color:var(--gris-medio);margin-bottom:0}

/* Lightbox de galería */
#lightbox{position:fixed;inset:0;z-index:1200;background:rgba(6,14,28,.94);display:none;
  align-items:center;justify-content:center;padding:2rem}
#lightbox.abierto{display:flex}
#lightbox img{max-width:min(1100px,92vw);max-height:84vh;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
#lightbox .lb-cerrar{position:absolute;top:1.2rem;right:1.6rem;background:rgba(255,255,255,.14);border:0;
  color:#fff;font-size:2rem;line-height:1;width:48px;height:48px;border-radius:50%;cursor:pointer}
#lightbox .lb-cerrar:hover{background:var(--rojo-prodesa)}
#lightbox .lb-pie{position:absolute;bottom:1.4rem;left:0;right:0;text-align:center;color:#fff;font-size:.95rem;padding:0 2rem}

@media (max-width:700px){
  .doc-destacado{grid-template-columns:1fr}
  .linea-tiempo{padding-left:0}
  .linea-tiempo::before{left:26px}
  .hito{grid-template-columns:56px 1fr;gap:1rem}
  .hito__punto{width:56px;height:56px}
  .hito__punto span{font-size:.75rem}
  .destacado{padding:1.7rem}
}

/* Fórmulas y utilidades de cálculo */
code.formula{display:inline-block;background:var(--azul-claro);color:var(--azul-oscuro);
  font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.95rem;
  font-weight:700;padding:.55rem .9rem;border-radius:9px;line-height:1.7;margin-top:.5rem}
.paso p+p{margin-top:.2rem}
.lista-descargas [data-item]{display:block}

/* Mapa de cobertura */
.mapa__lienzo{position:relative;background:#fff;border:1px solid var(--borde);
  border-radius:var(--radio);padding:.8rem;box-shadow:var(--sombra)}

/* ---- Mapa real: Leaflet + OpenStreetMap ---- */
.mapa__leaflet{height:520px;width:100%;border-radius:calc(var(--radio) - 4px);
  background:var(--azul-claro);z-index:0}
@media (max-width:900px){.mapa__leaflet{height:400px}}
@media (max-width:520px){.mapa__leaflet{height:330px}}
.mapa__leaflet--caido,.mapa__leaflet--sin-mosaicos{display:flex;align-items:center;
  justify-content:center;text-align:center;padding:1.4rem}
.mapa__leaflet--sin-mosaicos::after{content:"Los mapas de OpenStreetMap no cargaron. Use la lista de agencias.";
  font-weight:700;color:var(--gris-medio);max-width:34ch}
.mapa__aviso{margin:0;font-weight:700;color:var(--gris-medio);max-width:40ch}
/* «Ver todas» es un control del mapa -js/mapa-cobertura.js se lo entrega a
   Leaflet, esquina de arriba a la derecha-, así que se viste como los de
   acercar y alejar: blanco, esquina de 4 px y la sombra de .leaflet-bar,
   que es la caja que lo envuelve. Conserva su texto: el icono solo no dice
   qué hace, y a diferencia del + y el −, esta acción no es evidente. */
.mapa__todas-caja{border:0}
.mapa__todas{display:flex;align-items:center;gap:.4rem;width:auto;margin:0;
  padding:.32rem .6rem;font-size:.72rem;line-height:1.15;text-align:left;
  color:#222;background:#fff;border:0;border-radius:4px;box-shadow:none}
/* En dos renglones: de una sola línea el control se estiraba tanto que
   invadía el ancho del mapa; partido, ocupa una esquina y cabe el nombre
   completo. El corte va escrito en el HTML y no se deja al azar del ancho. */
.mapa__todas-txt{display:block;white-space:normal}
.mapa__todas:hover,.mapa__todas:focus-visible{background:#f4f4f4;color:var(--azul-prodesa)}
.mapa__todas svg{width:14px;height:14px;flex:0 0 auto}

/* Chinche redonda, del color de su región */
.chinche-envoltorio{background:none;border:0}
.chinche{display:block;width:100%;height:100%;border-radius:50%;
  background:var(--pin,var(--azul-prodesa));border:3px solid #fff;
  box-shadow:0 2px 6px rgba(0,32,80,.45);transition:transform .18s ease}
.chinche-envoltorio:hover .chinche{transform:scale(1.18)}
.chinche-envoltorio--activo{z-index:1000 !important}
.chinche-envoltorio--activo .chinche{transform:scale(1.32);
  box-shadow:0 0 0 6px rgba(0,73,175,.28),0 3px 10px rgba(0,32,80,.5)}

/* Globo del marcador */
.globo-envoltorio .leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 10px 30px rgba(0,32,80,.22)}
.globo-envoltorio .leaflet-popup-content{margin:.85rem 1rem;font-family:inherit}
.globo__t{margin:0 0 .3rem;font-size:1.02rem;font-weight:900;color:var(--azul-oscuro);line-height:1.25}
.globo__etq{display:inline-block;font-size:.6rem;font-weight:900;text-transform:uppercase;
  letter-spacing:.07em;padding:.16rem .48rem;border-radius:999px;vertical-align:middle;
  background:var(--amarillo);color:#4A3F00}
.globo__d{margin:0 0 .45rem;font-size:.87rem;color:var(--gris-texto);line-height:1.45}
.globo__tel{margin:0 0 .6rem;font-size:.87rem;font-weight:700}
.globo__tel a{color:var(--azul-prodesa);text-decoration:none}
.globo__tel a:hover{text-decoration:underline}
.leaflet-container a.globo__waze{display:inline-block;background:var(--azul-prodesa);color:#fff;
  font-weight:800;font-size:.82rem;padding:.42rem .8rem;border-radius:999px;text-decoration:none}
.leaflet-container a.globo__waze:hover{background:var(--azul-oscuro);color:#fff;text-decoration:none}
.leaflet-container .globo__tel a{color:var(--azul-prodesa)}
.leaflet-container{font-family:inherit}
.leaflet-container a.leaflet-popup-close-button{color:var(--gris-medio)}

/* Lista de agencias en «chip»: selector accesible y respaldo si el mapa falla */
/* Cuatro columnas fijas: son quince agencias, así que siempre caen en
   cuatro filas (4+4+4+3), pase lo que pase con el ancho del mapa. En flujo
   libre el número de filas dependía del ancho de la ventana -al ensanchar
   el mapa pasaron a tres, y la lista se veía distinta en cada pantalla-. */
.mapa__chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.5rem;margin-top:1rem}
@media (max-width:560px){.mapa__chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Una sola línea por chip, y el tamaño de letra cede lo necesario para que
   «Muelle de los Bueyes» quepa: partido en varias líneas, ese chip crecía
   al triple de alto y desalineaba toda su fila. */
/* Contenido a la izquierda, no centrado: con los chips centrados dentro de
   columnas iguales, cada punto de color caía a una distancia distinta del
   borde y la lista se veía chueca. Alineados al inicio, los puntos forman
   columna. */
.mapa__ficha{display:flex;align-items:center;justify-content:flex-start;gap:.45rem;
  cursor:pointer;min-width:0;text-align:left;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font:inherit;font-size:.72rem;font-weight:700;color:var(--gris-texto);
  background:#fff;border:1.5px solid var(--borde);border-radius:999px;
  padding:.42rem .7rem;transition:border-color .16s ease,box-shadow .16s ease,
  background .16s ease,color .16s ease}
.mapa__ficha-punto{width:10px;height:10px;border-radius:50%;flex:0 0 auto;
  background:var(--chip,var(--azul-prodesa))}
/* Entre 900 y 1200 px el mapa y la ficha siguen lado a lado, así que las
   cuatro columnas de chips se estrechan; la letra y el relleno ceden ahí
   para que ningún nombre salga con puntos suspensivos. */
@media (min-width:1001px) and (max-width:1200px){
  .mapa__ficha{font-size:.63rem;padding:.42rem .45rem;gap:.3rem}
  .mapa__ficha-punto{width:8px;height:8px}
}
@media (min-width:901px) and (max-width:1000px){
  .mapa__ficha{font-size:.56rem;padding:.42rem .35rem;gap:.25rem}
  .mapa__ficha-punto{width:7px;height:7px}
}
.mapa__ficha:hover{border-color:var(--chip,var(--azul-prodesa));
  box-shadow:0 2px 10px rgba(0,32,80,.12)}
.mapa__ficha:focus-visible{outline:3px solid var(--chip,var(--azul-prodesa));outline-offset:2px}
.mapa__ficha.activo{background:var(--chip,var(--azul-prodesa));border-color:var(--chip,var(--azul-prodesa));
  color:#fff;box-shadow:0 3px 12px rgba(0,32,80,.22)}
.mapa__ficha.activo .mapa__ficha-punto{background:#fff}
.leyenda{list-style:none;padding:0;margin:0 0 1.2rem;display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;
  font-size:.86rem;font-weight:700;color:var(--gris-medio)}
.leyenda li{display:flex;align-items:center;gap:.45rem}
.punto-leyenda{width:12px;height:12px;border-radius:50%;display:inline-block}
.etiqueta{display:inline-block;font-size:.68rem;font-weight:900;text-transform:uppercase;
  letter-spacing:.08em;padding:.28rem .7rem;border-radius:999px;margin-bottom:.6rem;
  background:var(--azul-claro);color:var(--azul-oscuro)}
.etiqueta--amarilla{background:var(--amarillo);color:#4A3F00}
/* ---- Columna del mapa ---- */
.mapa__col{min-width:0}

.destello{animation:destello .5s ease}
@keyframes destello{0%{box-shadow:0 0 0 0 rgba(0,73,175,.35)}100%{box-shadow:0 0 0 16px rgba(0,73,175,0)}}
.region+.region{margin-top:2.6rem}

/* ============================================================
   Productos financieros
   ============================================================ */
.indice-productos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}
.chip-producto{display:flex;align-items:center;gap:.7rem;background:#fff;border:1px solid var(--borde);
  border-radius:var(--radio);padding:.85rem 1rem;font-weight:700;font-size:.92rem;color:var(--azul-oscuro);
  box-shadow:var(--sombra);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.chip-producto:hover{transform:translateY(-3px);box-shadow:var(--sombra-alta);
  border-color:var(--azul-prodesa);color:var(--azul-prodesa)}
.chip-producto svg{width:24px;height:24px;flex:none;color:var(--azul-prodesa)}

.productos{display:grid;gap:3.4rem}
.producto{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:2.6rem;align-items:center;
  scroll-margin-top:calc(var(--nav-h) + 20px)}
.producto--inv .producto__media{order:2}
/* En los productos invertidos la columna de imagen pasa a ser la segunda; se
   intercambia también la proporción para que TODAS las fotografías midan
   exactamente lo mismo, sin importar de qué lado queden. */
.producto--inv{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.producto__media img,.producto__ilus svg{width:100%;height:auto;display:block;border-radius:20px}
.producto__media img{aspect-ratio:3/2;object-fit:cover;box-shadow:var(--sombra-alta)}
.producto__ilus{border-radius:20px;overflow:hidden;box-shadow:var(--sombra-alta);background:var(--azul-claro)}
/* Productos con DOS fotografías (agropecuario, comercial y personal).
   Se apilan en vertical dentro de la misma columna, con un pie corto que
   identifica cada rubro. Ambas ocupan el 100% de la columna para que todas las
   fotografías de la página se vean exactamente del mismo tamaño. */
.producto__media--duo{display:grid;gap:1rem}
.producto__foto{margin:0;position:relative}
.producto__foto img{display:block}
.producto__foto figcaption{
  margin-top:.5rem;font-size:.82rem;line-height:1.4;color:var(--gris-medio);
  padding-left:.7rem;border-left:3px solid var(--azul-prodesa)}
@media (min-width:900px){
  .producto__media--duo{gap:1.15rem}
}
.producto__cuerpo h2{display:flex;align-items:center;gap:.75rem;font-size:1.65rem;
  line-height:1.2;margin-bottom:.6rem;color:var(--azul-oscuro)}
.producto__icono{width:52px;height:52px;flex:none;border-radius:14px;display:grid;place-items:center;
  background:var(--azul-claro);color:var(--azul-prodesa)}
.producto__icono svg{width:28px;height:28px}
.producto__icono--verde{background:#E3F4EB;color:var(--verde-campo)}
.producto__icono--amarillo{background:#FFF9C4;color:#8A7500}
.producto__gancho{font-weight:700;color:var(--azul-prodesa);font-size:1.04rem;margin-bottom:.7rem}
.producto__cuerpo>p{color:var(--gris-medio)}
.producto__listas{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem;
  margin:1.3rem 0 1.5rem}
.producto__lista h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--gris-medio);margin-bottom:.6rem}
.producto__lista .lista-check li{font-size:.93rem}
.producto__acciones{display:flex;flex-wrap:wrap;gap:.7rem}
.tarjeta__icono{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;
  background:var(--azul-claro);color:var(--azul-prodesa);margin-bottom:.9rem}
.tarjeta__icono svg{width:26px;height:26px}
.etiqueta--verde{background:#E3F4EB;color:var(--verde-campo)}
@media (max-width:900px){
  .producto{grid-template-columns:1fr;gap:1.5rem}
  .producto--inv .producto__media{order:0}
  .producto__cuerpo h2{font-size:1.4rem}
}

/* ============================================================
   Calificación institucional y desempeño social
   ============================================================ */
/* Bloque "Más información de transparencia": los enlaces se ordenan en una
   columna alineada a la derecha, todos del mismo ancho, para que no se partan
   en dos filas desiguales cuando no caben de lado a lado. */
.acciones-azul{display:grid;gap:.7rem;justify-content:end;justify-items:stretch;align-content:center}
.acciones-azul .btn{justify-content:center;text-align:center;white-space:nowrap}
.reconocimiento{display:grid;grid-template-columns:330px 1fr;gap:2.2rem;align-items:center;
  background:#fff;border:1px solid var(--borde);border-left:6px solid var(--amarillo);
  border-radius:20px;padding:2.2rem;box-shadow:var(--sombra-alta)}
.reconocimiento__sello svg,
.reconocimiento__sello img{width:100%;height:auto;display:block}
.reconocimiento__sello img{border-radius:14px;box-shadow:0 10px 26px rgba(0,49,175,.18)}
.reconocimiento__pie{font-size:.76rem;line-height:1.35;color:var(--gris-medio);
  margin:.55rem 0 0;text-align:center;font-style:italic}
.reconocimiento h2{font-size:1.5rem;color:var(--azul-oscuro);margin-bottom:.7rem;line-height:1.25}
.reconocimiento p{color:var(--gris-medio)}
.galeria__item--ilus{aspect-ratio:auto;cursor:default;background:#fff;border:1px solid var(--borde);
  display:flex;flex-direction:column}
.galeria__item--ilus:hover::after{background:transparent}
.ilus-evento svg,
.ilus-evento img{width:100%;height:auto;display:block}
.galeria__item--ilus .ilus-evento{overflow:hidden}
.galeria__item--ilus .ilus-evento img{transition:transform .35s ease}
.galeria__item--ilus:hover .ilus-evento img{transform:scale(1.05)}
.galeria__item figcaption{padding:.8rem 1rem;font-size:.86rem;color:var(--gris-medio);
  font-weight:600;background:#fff}
.sin-resultados[hidden]{display:none}
@media (max-width:760px){
  .reconocimiento{grid-template-columns:1fr;text-align:center;padding:1.6rem}
  .reconocimiento__sello{max-width:460px;margin:0 auto}
  .reconocimiento .producto__acciones{justify-content:center}
  .acciones-azul{justify-content:stretch}
}

/* ============================================================
   Contacto, testimonios y galería
   ============================================================ */
.mapa-mini{margin-top:1rem;border-radius:12px;overflow:hidden;border:1px solid var(--borde)}
.mapa-mini svg{width:100%;height:auto;display:block}
.tabla--directorio td.nowrap{white-space:nowrap}
/*  Los correos son largos y algunas agencias tienen dos: se cortan por
    puntos naturales (@ o punto) en vez de partir palabras a la fuerza,
    y cada uno va en su propio renglón para que no se lean pegados. */
.tabla--directorio .correo-celda{overflow-wrap:anywhere;word-break:normal;max-width:250px;line-height:1.45}
.tabla--directorio .correo-celda a{display:inline-block}
.tabla--directorio .correo-celda a + a{margin-top:.3rem}
.tabla--directorio .nd{color:var(--gris-medio)}
.tabla--directorio .etiqueta{margin:0 0 0 .4rem;vertical-align:middle}

.testimonios{display:grid;gap:1.6rem}
.testimonio{display:grid;grid-template-columns:120px 1fr;gap:1.6rem;align-items:start;
  background:#fff;border:1px solid var(--borde);border-radius:20px;padding:1.8rem;
  box-shadow:var(--sombra);transition:transform .22s ease,box-shadow .22s ease}
.testimonio:hover{transform:translateY(-4px);box-shadow:var(--sombra-alta)}
.testimonio__avatar svg,.testimonio__avatar img{width:100%;height:auto;display:block;border-radius:50%}
.testimonio__avatar img{aspect-ratio:1/1;object-fit:cover;box-shadow:0 4px 14px rgba(0,49,175,.18);border:3px solid #fff}
.testimonio__foto{margin:0 0 1.1rem;border-radius:var(--radio);overflow:hidden;background:var(--gris-suave)}
.testimonio__foto img{width:100%;height:auto;display:block}
.testimonio__foto figcaption{font-size:.85rem;color:var(--gris-medio);padding:.6rem .8rem;text-align:center}
.testimonio h3{font-size:1.2rem;color:var(--azul-oscuro);margin-bottom:.2rem}
.testimonio__oficio{font-size:.88rem;font-weight:700;color:var(--azul-prodesa);margin-bottom:.7rem}
.testimonio__resumen{color:var(--gris-medio);font-size:.96rem}
.testimonio__pie{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:space-between;
  margin-top:1rem;padding-top:1rem;border-top:1px solid var(--borde)}
.testimonio__cifra{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;font-size:.86rem;
  color:var(--verde-campo)}
.testimonio__cifra svg{width:18px;height:18px}
.cita svg{width:22px;height:22px;color:var(--azul-prodesa);margin-bottom:.4rem}
.cita p{margin:0;font-style:italic;color:var(--azul-oscuro);font-weight:600}
@media (max-width:640px){
  .testimonio{grid-template-columns:1fr;text-align:center}
  .testimonio__avatar{max-width:110px;margin:0 auto}
  .testimonio__pie{justify-content:center}
}

.pie a.activo{color:var(--amarillo);font-weight:600}

/* Ajustes anti-desborde en móvil */
.caja a,.tarjeta a,.agencia a,.pie a{overflow-wrap:anywhere}
@media (max-width:420px){
  .grid--2{grid-template-columns:1fr}
}

.campo input,.campo select,.campo textarea{max-width:100%}
.descargo{overflow-wrap:anywhere}

/* Texto de ayuda bajo un control del formulario (p. ej. forma de pago) */
.campo__ayuda {
  display: block;
  margin-top: .35rem;
  font-size: .8rem;
  line-height: 1.35;
  color: var(--gris-medio);
}

/* Campos de sólo lectura: parámetros oficiales que el usuario no puede alterar. */
.campo label .etiqueta-nota{display:block;margin-top:.25rem;font-weight:500;
  font-size:.78rem;line-height:1.35;color:var(--gris-medio);letter-spacing:0}
.campo input.campo--fijo,
.campo input[readonly] {
  background: var(--gris-suave);
  color: var(--gris-medio);
  cursor: not-allowed;
  border-style: dashed;
  border-color: var(--borde);
}
.campo input.campo--fijo:focus,
.campo input[readonly]:focus {
  outline: none;
  box-shadow: none;
  border-color: var(--borde);
}

/* ---------- Calculadora de interés moratorio (sección VIII) ---------- */
.caja--mora { border-left: 4px solid var(--rojo-prodesa); }
.caja--mora h3 { color: var(--rojo-prodesa); }
.mora__campos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem 1.2rem;
  margin-bottom: 1.2rem;
}
.mora__campos > * { min-width: 0; }
.mora__resultado {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: .8rem;
}
.mora__resultado .resumen-item { background: #FDECEF; }
.mora__resultado .resumen-item strong { color: var(--rojo-prodesa); }
@media (max-width: 620px) {
  .mora__campos, .mora__resultado { grid-template-columns: 1fr; }
}

/* --- Referencia geográfica en la ficha del mapa de cobertura --- */
.ficha__geo{margin:1rem 0 1.1rem;padding:.85rem .95rem;background:var(--azul-claro);
  border:1px solid var(--borde);border-left:4px solid var(--azul-prodesa);border-radius:10px}
.ficha__geo-t{display:flex;align-items:center;gap:.45rem;margin:0 0 .35rem;
  font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--azul-oscuro)}
.ficha__geo-t svg{width:16px;height:16px;flex:none}
.ficha__geo-d{margin:0 0 .55rem;font-size:.92rem;line-height:1.45;color:var(--gris-texto)}
.ficha__geo-c{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0}
.ficha__chip{display:inline-block;padding:.2rem .55rem;border-radius:999px;
  background:var(--azul-prodesa);color:#fff;font-size:.74rem;font-weight:700}
.ficha__coord{font-size:.78rem;color:var(--gris-medio);font-variant-numeric:tabular-nums}

/* --- Visor de PDF integrado (para PDFs bloqueados por el navegador) --- */
.visor-pdf{position:fixed;inset:0;z-index:1300;display:none;align-items:center;justify-content:center;padding:24px}
.visor-pdf.abierto{display:flex}
.visor-pdf__fondo{position:absolute;inset:0;background:rgba(0,17,48,.78)}
.visor-pdf__caja{position:relative;display:flex;flex-direction:column;width:min(1280px,100%);
  height:min(88vh,100%);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 24px 60px rgba(0,17,48,.4)}
.visor-pdf__barra{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;
  background:var(--azul-oscuro);color:#fff;flex:none}
.visor-pdf__titulo{flex:1;font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.visor-pdf__btn{color:#fff;background:rgba(255,255,255,.16);border-radius:8px;padding:.35rem .7rem;
  font-size:.82rem;font-weight:700;text-decoration:none;white-space:nowrap}
.visor-pdf__btn:hover{background:var(--amarillo);color:var(--azul-oscuro)}
.visor-pdf__cerrar{background:none;border:0;color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;padding:0 .3rem}
.visor-pdf__cerrar:hover{color:var(--amarillo)}
.visor-pdf__pista{margin:0;padding:.45rem .9rem;background:var(--azul-claro);color:var(--azul-oscuro);
  font-size:.82rem;font-weight:600;text-align:center;flex:none}
.visor-pdf__paginas{flex:1;overflow:auto;background:#5A6473;padding:18px;
  display:flex;flex-direction:column;align-items:center;gap:16px;-webkit-overflow-scrolling:touch}
.visor-pdf__pagina{display:block;width:100%;max-width:100%;height:auto;background:#fff;
  border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.35);cursor:zoom-in;transition:none}
.visor-pdf__paginas.ampliado{align-items:flex-start}
.visor-pdf__paginas.ampliado .visor-pdf__pagina{max-width:none;width:220%;cursor:zoom-out}
.visor-pdf__aviso{color:#fff;text-align:center;padding:2.5rem 1rem;font-size:1rem}
.visor-pdf__aviso strong{color:var(--amarillo)}
@media(max-width:640px){
  .visor-pdf{padding:0}
  .visor-pdf__caja{height:100%;border-radius:0}
  .visor-pdf__titulo{font-size:.85rem}
}

/* ====== Documentos de reporte de TCEA: bloque único centrado ====== */
.docs-centro{max-width:760px;margin:0 auto}
.docs-centro__tit{margin:0 0 1rem;text-align:center}

/* ==========================================================================
   Subida de minutas de depósito (minutas.html)
   ========================================================================== */
.soltar{position:relative;border:2px dashed var(--borde);border-radius:var(--radio);
  background:var(--gris-suave);transition:border-color .18s,background .18s}
.soltar:hover,.soltar--activo{border-color:var(--azul-prodesa);background:var(--azul-claro)}
.soltar input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.soltar__cara{display:flex;flex-direction:column;align-items:center;gap:.5rem;
  padding:1.9rem 1.2rem;text-align:center;color:var(--azul-oscuro);pointer-events:none}
.soltar__cara svg{color:var(--azul-prodesa)}
.soltar__tit{font-size:.98rem}
.soltar__ayuda{font-size:.85rem;color:#5b6b80}
.campo.error .soltar{border-color:var(--rojo-prodesa);background:#FFF5F6}

.archivo-info{margin-top:.9rem;border:1px solid var(--borde);border-radius:var(--radio);
  background:#fff;padding:.9rem 1rem}
.archivo-info__fila{display:flex;align-items:center;gap:.8rem}
.archivo-info__icono{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;
  border-radius:10px;background:var(--azul-claro);color:var(--azul-oscuro);
  font-weight:700;font-size:.74rem;letter-spacing:.03em}
.archivo-info__texto{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.archivo-info__texto strong{font-size:.93rem;color:var(--azul-oscuro);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.archivo-info__texto span{font-size:.82rem;color:#5b6b80}
.archivo-info__quitar{flex:0 0 auto;border:0;background:transparent;cursor:pointer;
  font-size:1.5rem;line-height:1;color:#8494a8;padding:.1rem .35rem;border-radius:8px}
.archivo-info__quitar:hover{background:#FFF0F2;color:var(--rojo-prodesa)}

.chequeo{list-style:none;margin:.9rem 0 0;padding:.85rem 0 0;border-top:1px solid var(--borde);
  display:flex;flex-direction:column;gap:.55rem}
.chequeo li{display:flex;align-items:flex-start;gap:.6rem;font-size:.87rem;color:#5b6b80;line-height:1.45}
.chequeo__marca{flex:0 0 auto;width:18px;height:18px;margin-top:.1rem;border-radius:50%;
  border:2px solid #C9D4E2;background:#fff;position:relative}
.chequeo li.ok .chequeo__marca{background:#12A150;border-color:#12A150}
.chequeo li.ok .chequeo__marca::after{content:"";position:absolute;left:5px;top:1.5px;
  width:4px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.chequeo li.mal .chequeo__marca{background:var(--rojo-prodesa);border-color:var(--rojo-prodesa)}
.chequeo li.mal .chequeo__marca::after,.chequeo li.mal .chequeo__marca::before{
  content:"";position:absolute;left:6px;top:3px;width:2px;height:8px;background:#fff}
.chequeo li.mal .chequeo__marca::after{transform:rotate(45deg)}
.chequeo li.mal .chequeo__marca::before{transform:rotate(-45deg)}
.chequeo li.ok{color:#0F7A3D}
.chequeo li.mal{color:var(--rojo-prodesa)}

.caja--regla{border-left:4px solid var(--azul-prodesa)}
.caja--aviso{border-left:4px solid var(--amarillo)}
.lista-chk,.lista-num{margin:1rem 0 0;padding-left:1.15rem;display:flex;
  flex-direction:column;gap:.7rem;font-size:.93rem;line-height:1.55}
.lista-chk{list-style:none;padding-left:0}
.lista-chk li{position:relative;padding-left:1.6rem}
.lista-chk li::before{content:"";position:absolute;left:0;top:.42em;width:9px;height:9px;
  border-radius:50%;background:var(--azul-prodesa)}
.tarjeta__num{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:var(--azul-prodesa);color:#fff;font-weight:700;margin-bottom:.7rem}

/* ---- Hora de corte de recepción de minutas ------------------------------
   Banda de estado sobre la zona de carga: verde mientras la recepción está
   abierta, ámbar cuando el depósito pasará al siguiente día de atención. */
.corte{
  display:flex; align-items:flex-start; gap:.7rem;
  padding:.85rem 1rem; margin-bottom:.9rem;
  border:1px solid var(--borde); border-left-width:4px;
  border-radius:var(--radio); font-size:.94rem; line-height:1.45;
}
.corte__reloj{ flex:0 0 auto; display:flex; margin-top:.05rem }
.corte--abierto{ background:#F0FAF3; border-color:#CDEBD8; border-left-color:#1E9E54; color:#14612F }
.corte--abierto .corte__reloj{ color:#1E9E54 }
.corte--cerrado{ background:#FFF8E8; border-color:#F5E2B3; border-left-color:#D98A00; color:#7A5200 }
.corte--cerrado .corte__reloj{ color:#D98A00 }
.corte b{ font-weight:700 }

/* Cuarto chequeo: "en espera" (ámbar) — ni aprobado ni rechazado.
   La marca lleva un signo de admiración dibujado con ::before (asta) y
   ::after (punto), con la misma geometría de 18px que ok/mal. */
.chequeo li.espera .chequeo__marca{ background:#D98A00; border-color:#D98A00 }
.chequeo li.espera .chequeo__marca::before{
  content:""; position:absolute; left:6px; top:2.5px;
  width:2px; height:6px; background:#fff; border-radius:1px }
.chequeo li.espera .chequeo__marca::after{
  content:""; position:absolute; left:6px; top:10px;
  width:2px; height:2px; background:#fff; border-radius:50% }
.chequeo li.espera{ color:#7A5200 }

/* Tabla del horario de recepción */
.tabla-corte{ width:100%; border-collapse:collapse; margin:.2rem 0 1rem; font-size:.92rem }
.tabla-corte th,.tabla-corte td{ padding:.5rem .55rem; border-bottom:1px solid var(--borde); text-align:left }
.tabla-corte thead th{ background:var(--azul-claro); color:var(--azul-oscuro); font-size:.82rem;
  text-transform:uppercase; letter-spacing:.03em }
.tabla-corte tbody tr:last-child td{ border-bottom:0 }

/* --- Día sin recepción: domingo o feriado nacional --------------------
   El formulario se atenúa y deja de responder al puntero. Se conserva
   legible (opacidad .55, no .3) para que el cliente pueda leer los campos
   y saber qué le pedirán cuando vuelva en día hábil. */
.formulario--cerrado .campo,
.formulario--cerrado .check,
.formulario--cerrado .soltar,
.formulario--cerrado .chequeo,
.formulario--cerrado .acciones {
  opacity: .55;
  filter: grayscale(.35);
}
.formulario--cerrado .campo label,
.formulario--cerrado .check label { cursor: not-allowed; }
.formulario--cerrado input:disabled,
.formulario--cerrado select:disabled,
.formulario--cerrado textarea:disabled {
  background: var(--gris-suave);
  cursor: not-allowed;
}
.formulario--cerrado button:disabled { cursor: not-allowed; }
.soltar--inerte { pointer-events: none; border-style: solid; }
/* El aviso de corte NO se atenúa: es justamente lo que hay que leer. */
.formulario--cerrado .corte { opacity: 1; filter: none; }
.lista-feriados { list-style: none; padding: 0; margin: .6rem 0 1.1rem; }
.lista-feriados li {
  padding: .45rem .7rem;
  border-left: 3px solid var(--amarillo);
  background: var(--gris-suave);
  border-radius: 0 8px 8px 0;
  margin-bottom: .35rem;
  font-size: .93rem;
}
.lista-feriados li b { color: var(--azul-oscuro); }

/* ===========================================================
   PANEL DE ADMINISTRACIÓN (admin.html)
   Directorio de números de envío · acceso con 2FO
   =========================================================== */
.adm-cuerpo{background:var(--gris-suave);min-height:100vh}
.adm-barra{background:var(--azul-oscuro);color:#fff;padding:.55rem 0;font-size:.9rem}
.adm-barra .contenedor{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.adm-barra a{color:#cfe0f7}
.adm-marca{display:flex;align-items:center;gap:.7rem}
.adm-marca img{width:30px;height:41px;border-radius:5px}
.adm-marca b{display:block;font-size:1rem;letter-spacing:.02em}
.adm-marca span{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#9dc0ec}

/* --- acceso --- */
.adm-acceso{min-height:calc(100vh - 46px);display:grid;place-items:center;padding:2.2rem 1rem}
.adm-tarjeta{width:100%;max-width:470px;background:#fff;border:1px solid var(--borde);
  border-radius:var(--radio);box-shadow:var(--sombra);padding:2rem 1.9rem}
.adm-tarjeta h1{font-size:1.5rem;margin-bottom:.2rem}
.adm-tarjeta .adm-sub{color:var(--gris-medio);font-size:.94rem;margin-bottom:1.5rem}
.adm-paso{display:none}
.adm-paso.activo{display:block}
.adm-fuerza{margin-top:.5rem}
.adm-fuerza__barra{height:7px;border-radius:99px;background:var(--borde);overflow:hidden}
.adm-fuerza__relleno{height:100%;width:0;border-radius:99px;transition:width .25s,background .25s;background:var(--rojo-prodesa)}
.adm-fuerza__txt{font-size:.82rem;color:var(--gris-medio);margin-top:.3rem;display:block}
.adm-reglas{list-style:none;padding:0;margin:.6rem 0 0;font-size:.84rem}
.adm-reglas li{color:var(--gris-medio);padding-left:1.5rem;position:relative;margin-bottom:.18rem}
.adm-reglas li::before{content:'○';position:absolute;left:.25rem;color:var(--gris-medio)}
.adm-reglas li.ok{color:var(--verde-campo)}
.adm-reglas li.ok::before{content:'✓';color:var(--verde-campo);font-weight:700}
.adm-codigo{font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  font-size:1.9rem;letter-spacing:.55em;text-align:center;padding-left:.55em}
.adm-qr{display:grid;place-items:center;padding:1rem;background:#fff;border:1px solid var(--borde);border-radius:12px}
.adm-qr table{border-collapse:collapse}
.adm-qr td{width:5px;height:5px;padding:0}
.adm-qr td.n{background:#fff}
.adm-qr td.s{background:#0b1b33}
.adm-secreto{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.95rem;word-break:break-all;
  background:var(--azul-claro);border:1px dashed var(--azul-prodesa);border-radius:10px;padding:.6rem .8rem;text-align:center}
.adm-aviso{border-radius:10px;padding:.75rem .95rem;font-size:.9rem;margin:.9rem 0;display:none}
.adm-aviso.visible{display:block}
.adm-aviso--error{background:#FDECEF;border:1px solid #F5B9C4;color:#8E0C22}
.adm-aviso--ok{background:#E9F7EF;border:1px solid #A9DFC1;color:#14653B}
.adm-aviso--info{background:var(--azul-claro);border:1px solid #B9D3F2;color:var(--azul-oscuro)}
.adm-pasos-guia{counter-reset:g;list-style:none;padding:0;margin:.4rem 0 1rem;font-size:.92rem}
.adm-pasos-guia li{counter-increment:g;position:relative;padding-left:2.1rem;margin-bottom:.5rem}
.adm-pasos-guia li::before{content:counter(g);position:absolute;left:0;top:.05rem;width:1.5rem;height:1.5rem;
  border-radius:50%;background:var(--azul-prodesa);color:#fff;font-size:.8rem;font-weight:700;
  display:grid;place-items:center}

/* --- escritorio --- */
.adm-panel{display:none}
.adm-panel.activo{display:block}
.adm-cab{background:#fff;border-bottom:1px solid var(--borde);padding:1rem 0}
.adm-cab .contenedor{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.adm-usuario{display:flex;align-items:center;gap:.7rem;font-size:.9rem}
.adm-avatar{width:38px;height:38px;border-radius:50%;background:var(--azul-prodesa);color:#fff;
  display:grid;place-items:center;font-weight:800}
.adm-rol{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  padding:.12rem .5rem;border-radius:99px;background:var(--azul-claro);color:var(--azul-oscuro)}
.adm-rol--editor{background:#FFF7D6;color:#7A5B00}
.adm-tabs{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:1px solid var(--borde);margin-bottom:1.6rem}
.adm-tab{border:0;background:none;font:inherit;font-weight:700;color:var(--gris-medio);cursor:pointer;
  padding:.75rem 1.05rem;border-bottom:3px solid transparent;border-radius:8px 8px 0 0}
.adm-tab:hover{background:var(--azul-claro);color:var(--azul-oscuro)}
.adm-tab.activo{color:var(--azul-prodesa);border-bottom-color:var(--azul-prodesa)}
.adm-vista{display:none}
.adm-vista.activo{display:block}
.adm-caja{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.4rem 1.5rem;margin-bottom:1.4rem}
.adm-caja h2{font-size:1.25rem}
.adm-caja h3{font-size:1.05rem}
.adm-fila{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.adm-fila--fin{justify-content:flex-end}
.adm-tabla{width:100%;border-collapse:collapse;font-size:.92rem}
.adm-tabla th,.adm-tabla td{padding:.62rem .6rem;border-bottom:1px solid var(--borde);text-align:left;vertical-align:middle}
.adm-tabla th{background:var(--azul-claro);color:var(--azul-oscuro);font-size:.78rem;text-transform:uppercase;
  letter-spacing:.05em;position:sticky;top:0;z-index:1}
.adm-tabla tr:hover td{background:#FAFCFF}
.adm-tabla td.num{font-family:ui-monospace,Menlo,Consolas,monospace;white-space:nowrap}
.adm-etq{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:.14rem .55rem;border-radius:99px;background:var(--gris-suave);color:var(--gris-medio);border:1px solid var(--borde)}
.adm-etq--matriz{background:#0049AF;color:#fff;border-color:#0049AF}
.adm-etq--atencion{background:#FFF001;color:#4A3B00;border-color:#E0C800}
.adm-etq--gerencia{background:#E4032E;color:#fff;border-color:#E4032E}
.adm-etq--agencia{background:var(--azul-claro);color:var(--azul-oscuro);border-color:#B9D3F2}
.adm-etq--whatsapp{background:#1E7A4C;color:#fff;border-color:#1E7A4C}
.adm-tab--pendiente{color:#B4232F;font-weight:700}
.adm-tab--pendiente::after{content:'';display:inline-block;width:.5rem;height:.5rem;margin-left:.35rem;border-radius:50%;background:#E4032E;vertical-align:middle}
.adm-punto{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem}
.adm-punto::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--verde-campo)}
.adm-punto--off{color:var(--gris-medio)}
.adm-punto--off::before{background:#C4CBD6}
.adm-mini{border:1px solid var(--borde);background:#fff;border-radius:8px;padding:.3rem .6rem;cursor:pointer;
  font:inherit;font-size:.83rem;font-weight:600;color:var(--azul-prodesa)}
.adm-mini:hover{background:var(--azul-claro)}
.adm-mini--rojo{color:var(--rojo-prodesa)}
.adm-mini--rojo:hover{background:#FDECEF}
.adm-buscar{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.adm-buscar input,.adm-buscar select{padding:.6rem .8rem;border:1px solid var(--borde);border-radius:10px;font:inherit;font-size:.92rem}
.adm-buscar input{flex:1 1 240px}
.adm-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.4rem}
.adm-kpi{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:1.1rem 1.2rem}
.adm-kpi b{display:block;font-size:2rem;color:var(--azul-prodesa);line-height:1.1}
.adm-kpi span{font-size:.85rem;color:var(--gris-medio)}
.adm-bitacora{list-style:none;padding:0;margin:0;font-size:.9rem;max-height:420px;overflow:auto}
.adm-bitacora li{padding:.6rem .2rem;border-bottom:1px solid var(--borde);display:flex;gap:.8rem}
.adm-bitacora time{color:var(--gris-medio);white-space:nowrap;font-size:.83rem;min-width:126px}
.adm-vacio{color:var(--gris-medio);font-style:italic;padding:1rem 0}
.adm-codigo-bloque{background:#0b1b33;color:#d7e6ff;border-radius:10px;padding:1rem;font-size:.8rem;
  font-family:ui-monospace,Menlo,Consolas,monospace;overflow:auto;max-height:260px;white-space:pre}
.adm-inactivo{opacity:.55}
@media(max-width:760px){
  .adm-tabla thead{display:none}
  .adm-tabla tr{display:block;border:1px solid var(--borde);border-radius:12px;margin-bottom:.8rem;padding:.4rem .6rem}
  .adm-tabla td{display:flex;justify-content:space-between;gap:1rem;border:0;padding:.35rem 0;text-align:right}
  .adm-tabla td::before{content:attr(data-t);font-weight:700;color:var(--azul-oscuro);font-size:.78rem;
    text-transform:uppercase;letter-spacing:.04em;text-align:left}
  .adm-codigo{letter-spacing:.35em;font-size:1.5rem;padding-left:.35em}
}

/* --- acceso: separador «o», nota de alta y enlace de acceso perdido --- */
.adm-o[hidden]{display:none}
.adm-o{display:flex;align-items:center;gap:.8rem;margin:1.3rem 0 1rem;color:var(--gris-medio);font-size:.85rem}
.adm-o::before,.adm-o::after{content:"";flex:1;height:1px;background:var(--borde)}
.adm-nota-alta{background:var(--azul-claro);border:1px solid #C7DBF6;color:var(--azul-oscuro);
  border-radius:10px;padding:.8rem .95rem;font-size:.88rem;margin-bottom:1.2rem;line-height:1.5}
#cl-perdi{color:var(--gris-medio);text-decoration:underline}
#cl-perdi:hover{color:var(--azul-prodesa)}
.adm-estado{background:var(--gris-suave);border:1px solid var(--borde);border-radius:10px;
  padding:.7rem .85rem;margin:0 0 1.3rem;font-size:.88rem;color:var(--gris-medio)}
.adm-estado--nuevo{background:var(--azul-claro);border-color:#C7DBF6;color:var(--azul-oscuro)}
#po-entrar:disabled{opacity:.45;cursor:not-allowed}
#po-perdi{color:var(--gris-medio);text-decoration:underline}
#po-perdi:hover{color:var(--azul-prodesa)}

/* --- Ejemplo de cálculo: incisos compactados en tablas --- */
/* --- IV. Procedimientos de cálculo: incisos compactos y plegables --- */
.calc-lista{display:grid;gap:.7rem;margin:1.2rem 0 .4rem}
.calc-item{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);
  overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease}
.calc-item[open]{border-color:var(--azul-prodesa);box-shadow:0 6px 20px rgba(0,73,175,.09)}
.calc-item__cab{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;
  padding:.85rem 1.1rem;cursor:pointer;list-style:none;font-weight:600;
  color:var(--azul-oscuro);transition:background .15s ease}
.calc-item__cab::-webkit-details-marker{display:none}
.calc-item__cab:hover{background:var(--azul-claro)}
.calc-item__cab:focus-visible{outline:3px solid var(--azul-prodesa);outline-offset:-3px}
.calc-item__letra{flex:none;width:1.9rem;height:1.9rem;display:grid;place-items:center;
  border-radius:50%;background:var(--azul-claro);color:var(--azul-prodesa);
  font-size:.86rem;font-weight:700}
.calc-item[open] .calc-item__letra{background:var(--azul-prodesa);color:#fff}
.calc-item__tit{flex:1 1 auto;font-size:1rem}
.calc-item__ver{flex:none;display:inline-flex;align-items:center;gap:.35rem;
  font-size:.82rem;font-weight:600;color:var(--gris-medio)}
.calc-item__ver::after{content:"";width:.5rem;height:.5rem;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);
  transition:transform .2s ease}
.calc-item[open] .calc-item__ver::after{transform:rotate(-135deg) translate(-2px,-2px)}
.calc-item[open] .calc-item__ver{color:var(--azul-prodesa);font-size:0}
.calc-item[open] .calc-item__ver::before{content:"Ocultar pasos";font-size:.82rem}
.calc-item__cuerpo{padding:.2rem 1.1rem 1rem;border-top:1px solid var(--borde)}
/* Los incisos ya no muestran fórmulas: la tabla queda de UNA sola columna
   con los pasos numerados automáticamente. */
.calc-item__cuerpo .tabla--calculo{counter-reset:paso}
.calc-item__cuerpo .tabla--calculo td:first-child,
.calc-item__cuerpo .tabla--calculo td:last-child{width:auto;white-space:normal}
.calc-item__cuerpo .tabla--calculo tbody td{position:relative;padding-left:2.6rem}
.calc-item__cuerpo .tabla--calculo tbody td::before{
  counter-increment:paso;content:counter(paso);position:absolute;left:.85rem;top:.78rem;
  width:1.35rem;height:1.35rem;display:grid;place-items:center;border-radius:50%;
  background:var(--azul-claro);color:var(--azul-prodesa);font-size:.74rem;font-weight:700}
.calc-item__cuerpo .calc-nota{margin:.9rem 0 .8rem}
.calc-item__cuerpo .descargo{margin-bottom:0}
@media (max-width:620px){
  .calc-item__ver{display:none}
  .calc-item__cab{padding:.8rem .85rem;gap:.5rem}
  .calc-item__cuerpo{padding:.2rem .85rem 1rem}
}
.calc-sub{font-size:1.12rem;color:var(--azul-oscuro);margin:2.2rem 0 .5rem;
  padding-bottom:.45rem;border-bottom:2px solid var(--azul-claro)}
.calc-sub:first-of-type{margin-top:1rem}
.calc-nota{font-size:.92rem;color:var(--gris-medio);margin:0 0 .9rem}
.tabla--calculo td:first-child{width:58%}
.tabla--calculo td:last-child{white-space:nowrap}
.tabla--calculo .formula{display:inline-block;background:var(--gris-suave);
  border:1px solid var(--borde);border-radius:8px;padding:.32rem .6rem;
  font-size:.9rem;line-height:1.7;color:var(--azul-oscuro)}
@media (max-width:760px){
  .tabla--calculo td:first-child{width:auto}
  .tabla--calculo td:last-child{white-space:normal}
}
