/* Fichas de Proyectos · cierre visual de la iteración 17.1 (componentes pv-*). Lo escribe herramientas/construir_fichas_17_1.py.
   Se carga DESPUÉS de proyecto-ficha.css (tokens y piezas heredadas: .pf-ic, .pf-ci, .pf-celda, .pf-card, .pf-todos, .pj-*).
   Referencias del propio sitio: azul profundo de «Cómo funciona» de Central IA y de la integración de Sender (.in-met / .sd-*),
   y el cierre de Sender (.sd-cierre: fondo gris neutro + tarjeta blanca). Paleta: #02214C, #005DCA, blanco y gris neutro; naranja como acento. */

/* ---------- Tonos: sólido (fondos con texto blanco) y claro (sobre azul profundo) ---------- */
.pf-t-erp { --pv-s: #1967D2; --pv-d: #7DB4FF; }
.pf-t-crm { --pv-s: #C2185B; --pv-d: #F9A8D4; }
.pf-t-comercio { --pv-s: #B45309; --pv-d: #FDBA74; }
.pf-t-inventario { --pv-s: #6D4FB8; --pv-d: #C4B5FD; }
.pf-t-pagos { --pv-s: #0B7A70; --pv-d: #5EEAD4; }
.pf-t-logistica { --pv-s: #267B3D; --pv-d: #86EFAC; }
.pf-t-externo { --pv-s: #546E7A; --pv-d: #B0C4D0; }

/* ---------- Secciones ---------- */
.pv-gris { background: var(--alt); }
.pv-dark
{
  background: radial-gradient(90% 120% at 0% 0%, #0B2F63, var(--deep) 70%);
  color: #FFFFFF;
}
.pv-dark .kicker { color: #9CC9FF; }
.pv-dark .h2,
.pv-dark h3 { color: #FFFFFF; }
.pv-head
{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .5rem;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}
.pv-intro
{
  margin: 0;
  max-width: 46rem;
  color: var(--muted);
}
.pv-dark .pv-intro { color: rgba(255, 255, 255, .8); }
.pv-ic
{
  width: 3.5rem;
  height: 3.5rem;
  border: 2px solid var(--pv-s);
  background: color-mix(in srgb, var(--pv-s) 12%, var(--card));
  color: var(--pv-s);
}
.pv-ic .mi { font-size: 1.75rem; }
.pv-dark .pv-ic
{
  border-color: var(--pv-d);
  background: rgba(255, 255, 255, .08);
  color: var(--pv-d);
}

/* ---------- Hero: notebook ilustrativo o panel de marca ---------- */
.pv-hero .split { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.pv-hero-fig { margin: 0; }
.pv-hero-fig img
{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 22px;
  box-shadow: 0 28px 48px -34px rgba(2, 33, 76, .6);
}
.pv-hero-fig figcaption
{
  margin-top: .625rem;
  font-size: .75rem;
  line-height: 1.4;
  color: var(--muted);
}
.pv-marca
{
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  padding: clamp(1.25rem, 3vw, 2rem);
  overflow: hidden;
  border-radius: 22px;
  background: radial-gradient(90% 120% at 0% 0%, #0B2F63, var(--deep) 72%);
  box-shadow: 0 28px 48px -34px rgba(2, 33, 76, .7);
}
.pv-marca::before
{
  content: "";
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  width: 2.5rem;
  height: 4px;
  border-radius: 4px;
  background: #FD9426;
}
.pv-marca-aro
{
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .12);
  pointer-events: none;
}
.pv-aro1 { width: 120%; aspect-ratio: 1; right: -45%; bottom: -80%; }
.pv-aro2 { width: 80%; aspect-ratio: 1; right: -20%; bottom: -50%; border-color: rgba(255, 255, 255, .18); }
.pv-placa
{
  position: relative;
  display: grid;
  place-items: center;
  max-width: 100%;
  padding: clamp(1rem, 2.5vw, 1.75rem) clamp(1.5rem, 3.5vw, 2.5rem);
  border-radius: 18px;
  background: #FFFFFF;
  box-shadow: 0 24px 40px -24px rgba(0, 0, 0, .55);
}
.pv-placa::before
{
  content: "";
  position: absolute;
  inset: 10px -10px -10px 10px;
  z-index: -1;
  border-radius: 18px;
  background: rgba(255, 255, 255, .16);
}
.pv-placa img
{
  display: block;
  width: auto;
  height: auto;
  max-width: min(100%, 18rem);
  max-height: 7.5rem;
  object-fit: contain;
}
.pv-forma-apaisado .pv-placa img { max-width: min(100%, 20rem); max-height: 6rem; }
.pv-forma-cuadrado .pv-placa img { max-width: min(100%, 9rem); max-height: 9rem; }
.pv-marca .pj-tres-w { gap: .35rem; }
.pv-marca .pj-marca-tx { color: #0C4AA2; }

/* ---------- Banda Cliente / Sector / Solución: azul profundo, tres zonas ---------- */
.pv-banda
{
  background: var(--deep);
  color: #FFFFFF;
}
.pv-banda .pf-banda
{
  margin: 0;
  border: 0;
}
.pv-banda .pf-celda { padding-block: 1.25rem; }
.pv-banda .pf-celda + .pf-celda { border-left: 1px solid rgba(255, 255, 255, .18); }
.pv-banda .pf-celda dt { color: #9CC9FF; }
.pv-banda .pf-celda dd { color: #FFFFFF; font-weight: 600; }
.pv-banda .pf-ci { background: rgba(255, 255, 255, .1); color: #9CC9FF; }

/* ---------- Resumen del proyecto: medallón temático + texto compacto ---------- */
.pv-resumen { padding-block: clamp(2.25rem, 4.5vw, 3.5rem); }
.pv-res
{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.25rem clamp(1.25rem, 3vw, 2.25rem);
  align-items: start;
  max-width: 64rem;
}
.pv-res-fig-on
{
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 22rem);
  max-width: none;
}
.pv-medalla
{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  background: var(--pv-s);
  color: #FFFFFF;
  box-shadow: 0 16px 28px -20px var(--pv-s);
}
.pv-medalla .mi { font-size: 2.25rem; }
.pv-res-c { display: flex; flex-direction: column; align-items: flex-start; gap: .625rem; min-width: 0; }
.pv-res-tx p { margin: 0; }
.pv-res-tx p + p { margin-top: .875rem; }
.pv-res-fig { margin: 0; }
.pv-res-fig img
{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--r);
  border: 1px solid var(--line-soft);
}
.pv-res-fig figcaption { margin-top: .5rem; font-size: .75rem; line-height: 1.4; color: var(--muted); }

/* ---------- Flujo sobre azul profundo (Telenet): origen → capa de integración → destino ---------- */
.pv-fx
{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(3.5rem, 6vw, 5rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv-fx-n
{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .75rem;
  padding: 1.75rem 1.5rem;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, .22);
  background: rgba(255, 255, 255, .06);
}
.pv-fx-n h3 { margin: .25rem 0 0; font-size: 1.375rem; }
.pv-fx-n p { margin: 0; font-size: .9375rem; line-height: 1.5; color: rgba(255, 255, 255, .8); }
.pv-fx-rol
{
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #9CC9FF;
}
.pv-fx-capa
{
  border-color: #38B6F2;
  background: rgba(56, 182, 242, .12);
  box-shadow: 0 0 0 1px #38B6F2, 0 28px 48px -26px rgba(56, 182, 242, .55);
}
.pv-fx-n:not(:last-child)::after
{
  content: "arrow_forward";
  font-family: 'Material Icons Round', 'Material Icons';
  position: absolute;
  top: 50%;
  right: calc(-1 * clamp(3.5rem, 6vw, 5rem) / 2 - 1.25rem);
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  transform: translateY(-50%);
  border-radius: 50%;
  background: #FD9426;
  color: #02214C;
  font-size: 1.5rem;
  line-height: 1;
  box-shadow: 0 10px 20px -10px rgba(0, 0, 0, .6);
}
.pv-comp
{
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, .16);
}
.pv-comp-t
{
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .875rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .72) !important;
}
.pv-comp-t .mi { font-size: 1.125rem; }
.pv-comp-l { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.pv-comp-l li
{
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .625rem 1rem;
  border-radius: 14px;
  border: 1px dashed rgba(255, 255, 255, .32);
  color: rgba(255, 255, 255, .86);
}
.pv-comp-l .mi { color: var(--pv-d); font-size: 1.375rem; }
.pv-comp-l b { display: block; font-size: .9375rem; color: #FFFFFF; }
.pv-comp-l li > div > span { display: block; font-size: .8125rem; color: rgba(255, 255, 255, .75); }

/* ---------- Flujo claro (Viñas, AlAireLibre, Providencia) ---------- */
.pv-fl
{
  display: grid;
  gap: clamp(2rem, 4vw, 3.25rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv-fl3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pv-fl4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pv-fl-n
{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.5rem 1.25rem 1.5rem;
  border-radius: 18px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--pv-s);
  background: var(--card);
  box-shadow: 0 16px 30px -26px rgba(2, 33, 76, .5);
}
.pv-fl-n h3 { margin: 0 0 .25rem; font-size: 1.0625rem; color: var(--ink); }
.pv-fl-n p { margin: 0; font-size: .9375rem; line-height: 1.5; color: var(--muted); }
.pv-fl-n:not(:last-child)::after
{
  content: "arrow_forward";
  font-family: 'Material Icons Round', 'Material Icons';
  position: absolute;
  top: 50%;
  right: calc(-1 * clamp(2rem, 4vw, 3.25rem) / 2 - 1rem);
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--deep);
  color: #FFFFFF;
  font-size: 1.25rem;
  line-height: 1;
}

/* ---------- Pilares sobre azul profundo (Radio Cooperativa, Diario Constitucional) ---------- */
.pv-pil
{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv-pil-n
{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .875rem;
  padding: 1.75rem 1.375rem 1.5rem;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-top: 4px solid var(--pv-d);
  background: rgba(255, 255, 255, .06);
}
.pv-pil-i
{
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -.02em;
  color: rgba(255, 255, 255, .28);
}
.pv-pil-n h3 { margin: .25rem 0 0; font-size: 1.1875rem; }
.pv-pil-n p { margin: 0; font-size: .9375rem; line-height: 1.5; color: rgba(255, 255, 255, .8); }
.pv-base
{
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-top: 1rem;
  padding: .875rem 1.25rem;
  border-radius: 14px;
  border: 1px dashed rgba(255, 255, 255, .32);
  color: rgba(255, 255, 255, .86);
}
.pv-base p { margin: 0; font-size: .9375rem; }
.pv-base b { color: #FFFFFF; }
.pv-base .mi { color: #9CC9FF; }

/* ---------- Mapa de áreas sobre azul profundo (Carabineros) ---------- */
.pv-hub-c
{
  position: relative;
  display: flex;
  align-items: center;
  gap: .75rem;
  width: fit-content;
  margin: 0 auto 2.5rem;
  padding: 1rem 1.75rem;
  border-radius: 999px;
  background: #FFFFFF;
  color: var(--deep);
  font-size: 1.125rem;
  box-shadow: 0 0 0 6px rgba(255, 255, 255, .12);
}
.pv-hub-c .mi { color: #005DCA; font-size: 1.75rem; }
.pv-hub-c::after
{
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: 2px;
  height: 1.25rem;
  background: rgba(255, 255, 255, .4);
}
.pv-hub-l
{
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv-hub-l::before
{
  content: "";
  position: absolute;
  top: -1.25rem;
  left: 12.5%;
  right: 12.5%;
  height: 2px;
  background: rgba(255, 255, 255, .4);
}
.pv-hub-nodo
{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: 1.5rem 1.25rem;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, .2);
  background: rgba(255, 255, 255, .06);
}
.pv-hub-nodo::before
{
  content: "";
  position: absolute;
  left: 50%;
  top: -1.25rem;
  width: 2px;
  height: 1.25rem;
  background: rgba(255, 255, 255, .4);
}
.pv-hub-nodo h3 { margin: .25rem 0 0; font-size: 1.125rem; }
.pv-hub-nodo p { margin: 0; font-size: .9375rem; line-height: 1.5; color: rgba(255, 255, 255, .8); }

/* ---------- Tarjetas con encabezado de color (Consalud, Universidad, Altavoz y las de Fonasa) ---------- */
.pv-cards { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.pv-c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pv-c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pv-card
{
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
  box-shadow: 0 14px 28px -24px rgba(2, 33, 76, .5);
}
.pv-card-h
{
  display: flex;
  align-items: center;
  gap: .625rem;
  padding: .75rem 1.125rem;
  background: var(--pv-s);
  color: #FFFFFF;
}
.pv-card-h .mi { font-size: 1.5rem; }
.pv-card-tag
{
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.pv-card-b { padding: 1rem 1.125rem 1.25rem; }
.pv-card-b h3 { margin: 0; font-size: 1.0625rem; line-height: 1.3; color: var(--ink); }
.pv-card-b p { margin: .375rem 0 0; font-size: .9375rem; line-height: 1.5; color: var(--muted); }
.pv-leyenda
{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.5rem;
  margin: 0 0 1.25rem;
  padding: 0;
  list-style: none;
}
.pv-leyenda li
{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--ink);
}
.pv-leyenda i { width: .75rem; height: .75rem; border-radius: 50%; background: var(--pv-s); }

/* ---------- Fonasa: dos grupos a todo el ancho ---------- */
.pv-gr { display: grid; gap: 1.25rem; }
.pv-gr-s
{
  overflow: hidden;
  padding-bottom: 1.25rem;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: var(--card);
}
.pv-gr-t
{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 1.125rem;
  padding: .875rem 1.25rem;
  background: var(--pv-s);
  font-size: 1rem;
  color: #FFFFFF;
}
.pv-gr-t em
{
  padding: .125rem .625rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .2);
  font-size: .75rem;
  font-style: normal;
  font-weight: 600;
}
.pv-gr-s .pv-cards { padding-inline: 1.25rem; }
.pv-gr-s .pv-card-h
{
  background: color-mix(in srgb, var(--pv-s) 12%, var(--card));
  color: var(--pv-s);
}
.pv-g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pv-g3 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pv-g3 > li { grid-column: span 2; }
.pv-g3 > li:nth-last-child(2):nth-child(3n + 1) { grid-column: 2 / span 2; }

/* ---------- Conchalí: dos portales, dos ámbitos ---------- */
.pv-dos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.pv-dos-c
{
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: var(--card);
  box-shadow: 0 14px 28px -24px rgba(2, 33, 76, .5);
}
.pv-dos-h
{
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  background: var(--pv-s);
  color: #FFFFFF;
}
.pv-dos-h .mi { font-size: 2.5rem; }
.pv-dos-h h3 { margin: 0; font-size: 1.375rem; color: #FFFFFF; }
.pv-dos-b { padding: 1.5rem; }
.pv-dos-b p { margin: 0 0 1rem; color: var(--body); }
.pv-chip
{
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  padding: .25rem .75rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--pv-s) 12%, var(--card));
  color: var(--ink);
  font-size: .8125rem;
  font-weight: 600;
}
.pv-chip .mi { font-size: 1rem; color: var(--pv-s); }

/* ---------- Altavoz: esquema breve de transferencia de conocimientos ---------- */
.pv-tr
{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3rem;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}
.pv-tr li
{
  position: relative;
  display: flex;
  align-items: center;
  gap: .875rem;
  padding: 1rem 1.125rem;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
}
.pv-tr .pf-ic { width: 3rem; height: 3rem; flex: none; border: 2px solid #005DCA; color: #005DCA; background: color-mix(in srgb, #005DCA 10%, var(--card)); }
.pv-tr b { display: block; font-size: .9375rem; color: var(--ink); }
.pv-tr li > div > span { display: block; font-size: .8125rem; color: var(--muted); }
.pv-tr li:not(:last-child)::after
{
  content: "arrow_forward";
  font-family: 'Material Icons Round', 'Material Icons';
  position: absolute;
  top: 50%;
  right: -2.375rem;
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--deep);
  color: #FFFFFF;
  font-size: 1.125rem;
}

/* ---------- Indicadores del alcance (Fonasa) ---------- */
.pv-cifras
{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv-cifras li
{
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: 1.5rem 1.25rem 1.5rem;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-top: 4px solid #FD9426;
  background: rgba(255, 255, 255, .06);
}
.pv-cifras b
{
  display: block;
  font-size: clamp(2.25rem, 1.1rem + 2.2vw, 3.25rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.03em;
  color: #FFFFFF;
}
.pv-cifras b small { font-size: .38em; font-weight: 600; letter-spacing: 0; color: #9CC9FF; }
.pv-cifras span { font-size: .9375rem; line-height: 1.45; color: rgba(255, 255, 255, .85); }

/* ---------- Testimonio: bloque propio ---------- */
.pv-testi-sec { padding-block: clamp(2.25rem, 4.5vw, 3.5rem); }
.pv-testi
{
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .5rem clamp(1.25rem, 3vw, 2.25rem);
  align-items: center;
  max-width: 60rem;
  margin: 0;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-radius: 24px;
  border: 1px solid var(--line);
  background: var(--card);
  box-shadow: 0 20px 36px -30px rgba(2, 33, 76, .5);
}
.pv-testi img
{
  grid-row: span 2;
  width: 7rem;
  height: 7rem;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid color-mix(in srgb, #005DCA 16%, var(--card));
}
.pv-testi blockquote { position: relative; margin: 0; }
.pv-testi blockquote p { margin: 0; font-size: 1.1875rem; line-height: 1.55; color: var(--ink); }
.pv-comillas { display: block; margin-bottom: .25rem; font-size: 2.25rem; color: #005DCA; }
.pv-testi figcaption { display: flex; flex-direction: column; font-size: .875rem; color: var(--muted); }
.pv-testi figcaption b { font-size: 1rem; color: var(--ink); }

/* ---------- Radio Cooperativa: «Una visión integral» compacta ---------- */
.pv-vision { padding-block: clamp(2.25rem, 4.5vw, 3.5rem); }
.pv-vision-in
{
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: center;
}
.pv-vision-tx { display: flex; flex-direction: column; align-items: flex-start; gap: .625rem; }
.pv-vision-tx .prose p { margin: 0; }
.pv-conc { display: flex; justify-content: center; margin: 0; padding: 0; list-style: none; }
.pv-conc li
{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .375rem;
  width: clamp(7rem, 14vw, 9.5rem);
  aspect-ratio: 1;
  margin-left: -1.25rem;
  border-radius: 50%;
  border: 2px solid var(--pv-s);
  background: color-mix(in srgb, var(--pv-s) 14%, var(--card));
  text-align: center;
}
.pv-conc li:first-child { margin-left: 0; }
.pv-conc b { font-size: .9375rem; color: var(--ink); }

/* ---------- Otros proyectos destacados ---------- */
.pv-dest { padding-top: clamp(2rem, 4vw, 3rem); }
.pv-mas
{
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  margin-top: auto;
  padding-top: .5rem;
  font-size: .875rem;
  font-weight: 600;
  color: var(--accent-text);
}
.pv-mas .mi { font-size: 1.125rem; }
.pf-card:hover .pv-mas { text-decoration: underline; }

/* ---------- Cierre (componente de Sender): solo ajustes de compactación ---------- */
.pv-cierre .sd-cierre-in { align-items: start; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px)
{
  .pv-pil,
  .pv-cifras,
  .pv-hub-l { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pv-hub-l::before,
  .pv-hub-nodo::before,
  .pv-hub-c::after { display: none; }
  .pv-hub-c { margin-bottom: 1.25rem; }
  .pv-fl4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pv-fl4 .pv-fl-n::after { display: none; }
  .pv-res-fig-on { grid-template-columns: auto minmax(0, 1fr); }
  .pv-res-fig-on .pv-res-fig { grid-column: 1 / -1; max-width: 28rem; }
}
@media (max-width: 860px)
{
  .pv-hero .split { grid-template-columns: 1fr; }
  .pv-fx,
  .pv-fl3,
  .pv-fl4,
  .pv-tr,
  .pv-c2,
  .pv-c3,
  .pv-g2,
  .pv-g3,
  .pv-dos,
  .pv-vision-in { grid-template-columns: 1fr; }
  .pv-fx { gap: 3.5rem; }
  .pv-fl3,
  .pv-fl4 { gap: 2.5rem; }
  .pv-tr { gap: 2.5rem; }
  .pv-g3 > li,
  .pv-g3 > li:nth-last-child(2):nth-child(3n + 1) { grid-column: auto; }
  .pv-fx-n:not(:last-child)::after,
  .pv-fl-n:not(:last-child)::after
  {
    content: "arrow_downward";
    top: auto;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
  .pv-fx-n:not(:last-child)::after { bottom: -3rem; }
  .pv-fl-n:not(:last-child)::after { bottom: -2.25rem; }
  .pv-tr li:not(:last-child)::after
  {
    content: "arrow_downward";
    top: auto;
    left: 50%;
    right: auto;
    bottom: -2.25rem;
    transform: translateX(-50%);
  }
  .pv-res { grid-template-columns: 1fr; }
  .pv-medalla { width: 3.75rem; height: 3.75rem; }
  .pv-medalla .mi { font-size: 1.875rem; }
  .pv-banda .pf-celda,
  .pv-banda .pf-celda:first-child { padding: .875rem 0 .875rem 2.75rem; }
  .pv-banda .pf-celda + .pf-celda { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .18); }
  .pv-marca { aspect-ratio: 16 / 7; padding: 1rem; }
  .pv-placa img { max-height: 5rem; }
  .pv-testi { grid-template-columns: 1fr; }
  .pv-testi img { grid-row: auto; }
  .pv-conc { margin-top: .5rem; }
}
@media (max-width: 560px)
{
  .pv-pil,
  .pv-cifras,
  .pv-hub-l { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce)
{
  .pv-ficha * { transition: none !important; }
}

/* Ajustes tras la primera revisión (Fase A) */
.pv-testi-sec { padding-bottom: 0; }
.pv-cifras b { white-space: nowrap; }

/* Correcciones de contraste medidas con axe */
.pv-gr-t em { background: rgba(2, 33, 76, .4); }
:root[data-mode="dark"] .pv-cierre .sd-cierre-tx .kicker { color: var(--on-deep-link, #7DB4FF); }
@media (prefers-color-scheme: dark)
{
  :root[data-mode="auto"] .pv-cierre .sd-cierre-tx .kicker { color: var(--on-deep-link, #7DB4FF); }
}


/* ==========================================================================================================
   CIERRE VISUAL (lanzamiento): ícono a la IZQUIERDA del título, discos sólidos con pictograma calado, sin numeración ni leyendas,
   banda en el azul intermedio del sistema, tarjetas oscuras (Consalud), flujo con puntos de datos (Telenet) y visión integral (Radio)
   ========================================================================================================== */
.pv-disc
{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--pv-s);
  color: #FFFFFF;
}
.pv-disc .mi { font-size: 1.625rem; }
.pv-dark .pv-disc { box-shadow: 0 0 0 3px rgba(255, 255, 255, .14); }
.pv-fila { display: flex; align-items: center; gap: .875rem; }
.pv-fila-t { display: flex; flex-direction: column; min-width: 0; }
.pv-fila h3 { margin: 0; line-height: 1.25; }
.pv-tag
{
  margin-bottom: .125rem;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--pv-s);
}
.pv-dark .pv-tag { color: var(--pv-d); }

/* Tarjetas: ícono junto al título; el color de la función va en el borde superior */
.pv-card
{
  gap: .75rem;
  padding: 1.125rem 1.25rem 1.25rem;
  border-top: 4px solid var(--pv-s);
}
.pv-card h3 { font-size: 1.0625rem; color: var(--ink); }
.pv-card p { margin: 0; font-size: .9375rem; line-height: 1.5; color: var(--muted); }
.pv-dark .pv-card { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .18); border-top-color: var(--pv-d); box-shadow: none; }
.pv-dark .pv-card h3 { color: #FFFFFF; }
.pv-dark .pv-card p { color: rgba(255, 255, 255, .82); }
.pv-dark .pv-leyenda li { color: #FFFFFF; }
.pv-dark .pv-leyenda i { background: var(--pv-d); }
.pv-gr-s .pv-card { padding-top: 1rem; }

/* Pilares, hub, flujos: título con ícono al lado */
.pv-pil-n { gap: .75rem; padding: 1.375rem 1.25rem 1.5rem; }
.pv-pil-n h3,
.pv-hub-nodo h3,
.pv-fx-n h3 { font-size: 1.125rem; margin: 0; }
.pv-hub-nodo { gap: .75rem; padding: 1.25rem; }
.pv-fx-n { gap: .625rem; }
.pv-fx-n .pv-fila h3 { font-size: 1.25rem; }
.pv-fl-n { gap: .75rem; }
.pv-fl-n h3 { margin: 0; }
.pv-dos-c
{
  display: flex;
  flex-direction: column;
  gap: .875rem;
  padding: 1.5rem;
  border-radius: 20px;
  border-top: 4px solid var(--pv-s);
}
.pv-dos-c p { margin: 0; color: var(--body); }
.pv-dos-c h3 { font-size: 1.25rem; color: var(--ink); }
.pv-dos-c .pv-chip { align-self: flex-start; }
.pv-comp-l .pv-disc { width: 2.25rem; height: 2.25rem; }
.pv-comp-l .pv-disc .mi { font-size: 1.25rem; color: #FFFFFF; }
.pv-tr .pv-disc { width: 2.75rem; height: 2.75rem; }

/* Flujo de Telenet: puntos de datos sutiles y no sincronizados sobre cada conector (solo sentido origen → destino) */
.pv-fx { --pv-gap: clamp(3.5rem, 6vw, 5rem); gap: var(--pv-gap); }
.pv-fx-cx
{
  position: absolute;
  top: 50%;
  left: 100%;
  width: var(--pv-gap);
  height: 0;
  pointer-events: none;
}
.pv-fx-cx::before
{
  content: "";
  position: absolute;
  inset: -1px 0 auto 0;
  border-top: 2px dashed rgba(255, 255, 255, .28);
}
.pv-fx-cx i
{
  position: absolute;
  top: -4px;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #FD9426;
  box-shadow: 0 0 10px rgba(253, 148, 38, .85);
  opacity: 0;
  animation: pvFlujo 3.6s linear infinite;
}
.pv-fx-cx i + i { animation-delay: -1.8s; background: #7DB4FF; box-shadow: 0 0 10px rgba(125, 180, 255, .85); }
.pv-fx-n:nth-child(2) .pv-fx-cx i { animation-duration: 4.4s; }
.pv-fx-cx.pausa i { animation-play-state: paused; }
.pv-fx-n:not(:last-child)::after { z-index: 2; }
@keyframes pvFlujo
{
  0% { left: 0; opacity: 0; }
  12% { opacity: 1; }
  88% { opacity: 1; }
  100% { left: calc(100% - 8px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .pv-fx-cx i { display: none; } }
:root[data-motion="off"] .pv-fx-cx i { display: none; }
@media (max-width: 860px) { .pv-fx-cx { display: none; } }

/* Banda Cliente / Sector / Solución: el azul intermedio ya presente en el sistema (--pie-fondo), no un tono nuevo */
.pv-banda { background: var(--pie-fondo, #024594); }
.pv-banda .pf-celda dt { color: #D6E6FF; }
.pv-banda .pf-ci { background: rgba(255, 255, 255, .16); color: #FFFFFF; }
.pv-banda .pf-celda + .pf-celda { border-left-color: rgba(255, 255, 255, .28); }
.pv-hero-fig img { box-shadow: 0 28px 48px -34px rgba(2, 33, 76, .6); }

/* Visión integral (Radio Cooperativa): tres nodos unidos por curvas */
.pv-vision-g { position: relative; width: 100%; max-width: 26rem; margin-inline: auto; aspect-ratio: 1 / .92; }
.pv-vision-g svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.pv-vision-g path
{
  fill: none;
  stroke: color-mix(in srgb, var(--deep) 30%, transparent);
  stroke-width: 2;
  stroke-dasharray: 6 6;
  vector-effect: non-scaling-stroke;
}
.pv-vn
{
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  translate: -50% -50%;
}
.pv-vn .pv-disc { width: 4.25rem; height: 4.25rem; box-shadow: 0 0 0 8px color-mix(in srgb, var(--pv-s) 14%, transparent); }
.pv-vn .pv-disc .mi { font-size: 2.125rem; }
.pv-vn b { font-size: 1rem; color: var(--ink); }

@media (max-width: 860px)
{
  .pv-fila { gap: .75rem; }
  .pv-disc { width: 2.75rem; height: 2.75rem; }
  .pv-vision-g { max-width: 20rem; }
}

/* Centrado de pictogramas: el glifo siempre es un bloque centrado en su círculo (sin line-height heredado ni márgenes) */
.pv-disc, .pv-medalla, .pf-ci { display: inline-flex; align-items: center; justify-content: center; }
.pv-disc > .mi, .pv-medalla > .mi, .pf-ci > .mi { display: block; margin: 0; line-height: 1; flex: none; }

/* ---------- Codelco: «Ficha técnica» (texto + datos + enlaces) y dos capturas auténticas de las memorias ---------- */
.pv-fi .pv-vision-in { align-items: start; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.pv-fi-l { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .875rem 1.25rem; width: 100%; margin: .75rem 0 0; padding: 0; }
.pv-fi-f { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .75rem; align-items: center; }
.pv-fi-f dt { grid-column: 1 / -1; display: flex; align-items: center; gap: .625rem; font-size: .8125rem; font-weight: 700; color: var(--muted); }
.pv-fi-f dd { grid-column: 1 / -1; margin: .125rem 0 0 2.75rem; font-size: 1rem; font-weight: 600; color: var(--ink); }
.pv-fi-f .pf-ci { width: 2.125rem; height: 2.125rem; border-radius: 50%; background: var(--accent-soft, #E6F0FF); color: var(--accent-text, #0058C0); flex: none; }
.pv-fi-f .pf-ci .mi { font-size: 1.125rem; }
.pv-fi-links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .75rem; }
.pv-fi-links .btn .mi { font-size: 1.125rem; margin-left: .375rem; }
.pv-fi-caps { display: grid; gap: 1.25rem; }
.pv-fi-cap { margin: 0; }
.pv-fi-cap img { display: block; width: 100%; height: auto; aspect-ratio: 1420 / 888; object-fit: cover; border-radius: var(--r); border: 1px solid var(--line-soft); box-shadow: 0 18px 34px -26px rgba(2, 20, 60, .45); }
.pv-fi-cap figcaption { margin-top: .5rem; font-size: .8125rem; line-height: 1.4; color: var(--muted); }
@media (max-width: 860px)
{
  .pv-fi .pv-vision-in { grid-template-columns: 1fr; }
}
@media (max-width: 480px)
{
  .pv-fi-l { grid-template-columns: 1fr; }
}

/* Codelco: botones de enlace a las memorias en modo oscuro (el color base no alcanzaba 4,5:1: axe 3,41:1) */
:root[data-mode="dark"] .pv-fi-links .btn-secondary
{
  color: var(--on-deep-link);
  border-color: var(--on-deep-link);
}
@media (prefers-color-scheme: dark)
{
  :root[data-mode="auto"] .pv-fi-links .btn-secondary
  {
    color: var(--on-deep-link);
    border-color: var(--on-deep-link);
  }
}
