/* ============================================================
   FINAN — Sistema de diseño
   Mismos tokens del diseño en React. Los colores y tipografías
   también están cargados como Globales de Elementor, para que el
   cliente pueda cambiarlos desde el editor sin tocar código.
   ============================================================ */

:root {
  /* Marca */
  --navy: #142b48;
  --navy-900: #0d1e33;
  --navy-700: #1f4064;
  --cian: #0c9fc0;
  --cian-700: #0a8099;
  --cian-300: #6fd4e6;
  --cian-200: #b6e9f4;
  --cian-100: #d6f1f8;
  --cian-50: #eaf8fc;

  /* Neutros */
  --ink: #101a26;
  --texto: #616d7a;
  --texto-2: #8b95a1;
  --linea: #e7e9ec;
  --linea-2: #dfe2e6;
  --tile: #f3f4f6;
  --tile-2: #f8f9fa;
  --blanco: #ffffff;

  /* Señales */
  --alerta: #d0483a;
  --ok: #17a06b;

  /* Sistema */
  --r-sm: 8px;
  --r: 12px;
  --r-lg: 16px;
  --r-xl: 22px;
  --sombra-xs: 0 1px 2px rgba(16, 26, 38, 0.04);
  --sombra: 0 6px 24px rgba(16, 26, 38, 0.07);
  --sombra-lg: 0 18px 48px rgba(16, 26, 38, 0.12);
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);

  --fuente-titulo: 'Manrope', system-ui, sans-serif;
  --fuente-texto: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ---------- Base ---------- */
body {
  font-family: var(--fuente-texto);
  font-size: 15px;
  line-height: 1.6;
  color: var(--texto);
  background: var(--blanco);
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--fuente-titulo);
  color: var(--ink);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.12;
}

a {
  text-decoration: none;
}

/* ============================================================
   PIEZAS PROPIAS DEL DISEÑO
   Se aplican con "Clases CSS" en el panel Avanzado de Elementor,
   para que el cliente siga editando el contenido con normalidad.
   ============================================================ */

/* Etiqueta de sección: filete corto + texto */
.finan-eyebrow .elementor-heading-title,
.finan-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  font-family: var(--fuente-titulo);
  font-size: 0.83rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--cian-700);
}
/* El guion va en el elemento que lleva el texto: el título de
   Elementor cuando es un widget, o el propio bloque cuando lo
   pinta un shortcode. Así nunca salen dos. */
.finan-eyebrow .elementor-heading-title::before,
.finan-eyebrow:not(:has(.elementor-heading-title))::before {
  content: '';
  flex: none;
  width: 18px;
  height: 2px;
  background: currentColor;
}
.finan-eyebrow--claro .elementor-heading-title,
.finan-eyebrow--claro {
  color: var(--cian-300);
}

/* Subrayado de marcador sobre una palabra del título */
.finan-marca {
  background-image: linear-gradient(
    transparent 62%,
    var(--cian-200) 62%,
    var(--cian-200) 94%,
    transparent 94%
  );
}
.finan-marca--claro {
  background-image: linear-gradient(
    transparent 62%,
    rgba(111, 212, 230, 0.42) 62%,
    rgba(111, 212, 230, 0.42) 94%,
    transparent 94%
  );
}

/* Palabra destacada dentro de un bloque de color (hero) */
.finan-box {
  display: inline-block;
  background: var(--cian);
  color: #fff;
  border-radius: var(--r-sm);
  padding: 0 12px;
  margin: 0 2px;
  transform: rotate(-1deg);
}

/* Tarjeta base: elevación y zoom al pasar el mouse */
.finan-card {
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-radius: var(--r);
  transform-origin: center;
  transition:
    border-color 0.25s var(--ease),
    box-shadow 0.25s var(--ease),
    transform 0.25s var(--ease);
}
.finan-card:hover {
  border-color: var(--cian-200);
  box-shadow: var(--sombra);
  transform: translateY(-5px) scale(1.025);
}
.finan-card--fila:hover {
  transform: translateY(-4px) scale(1.008);
}

/* Panel oscuro con degradado de marca */
.finan-panel {
  position: relative;
  overflow: hidden;
  background: linear-gradient(130deg, var(--navy-900), var(--navy) 55%, #17557a);
}
.finan-panel::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(70% 120% at 100% 0%, rgba(12, 159, 192, 0.3), transparent 62%);
  pointer-events: none;
}
.finan-panel > * {
  position: relative;
  z-index: 2;
}

/* Ficha de datos separada por líneas verticales */
.finan-specs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 10px;
}
.finan-specs > * {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 0.87rem;
  padding-right: 20px;
  margin-right: 20px;
  border-right: 1px solid var(--linea-2);
  white-space: nowrap;
}
.finan-specs > *:last-child {
  border-right: none;
  padding-right: 0;
  margin-right: 0;
}

/* Franja con filetes arriba y abajo */
.finan-franja {
  border-top: 1px solid var(--linea);
  border-bottom: 1px solid var(--linea);
}

/* Marcador circular de lista (no parece casilla de formulario) */
.finan-check .elementor-icon-list-icon {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--cian);
  display: grid;
  place-items: center;
  flex: none;
}
.finan-check .elementor-icon-list-icon svg {
  width: 13px;
  height: 13px;
  fill: #fff;
}

/* Marcador de error (lista de problemas) */
.finan-x .elementor-icon-list-icon {
  width: 26px;
  height: 26px;
  border-radius: var(--r-sm);
  background: #fdeeec;
  display: grid;
  place-items: center;
  flex: none;
}
.finan-x .elementor-icon-list-icon svg {
  width: 12px;
  height: 12px;
  fill: var(--alerta);
}

/* Ícono en recuadro que se llena de color con la tarjeta */
.finan-icono .elementor-icon {
  background: var(--cian-50);
  color: var(--cian-700);
  border-radius: var(--r-sm);
  transition:
    background 0.22s var(--ease),
    color 0.22s var(--ease),
    transform 0.22s var(--ease);
}
.finan-card:hover .finan-icono .elementor-icon {
  background: var(--cian);
  color: #fff;
  transform: scale(1.06);
}

/* Zoom del contenedor con imagen dentro (tarjetas de curso) */
.finan-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Etiqueta montada sobre el borde inferior de la imagen */
.finan-tag {
  position: absolute;
  left: 18px;
  bottom: -14px;
  z-index: 2;
  padding: 6px 13px;
  border-radius: var(--r-sm);
  background: var(--navy);
  color: #fff;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: -0.01em;
  box-shadow: var(--sombra-xs);
}

/* Enlace con flecha que se separa al pasar el mouse */
.finan-link .elementor-button {
  gap: 7px;
  transition: gap 0.2s var(--ease);
}
.finan-card:hover .finan-link .elementor-button {
  gap: 12px;
}

/* Botón pill blanco sobre fondo oscuro */
.finan-btn-pill .elementor-button {
  border-radius: 999px;
}

/* Franja de estadísticas con divisores */
.finan-statband > .e-con-inner > *,
.finan-statband > * {
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}
.finan-statband > .e-con-inner > *:last-child,
.finan-statband > *:last-child {
  border-right: none;
}

@media (max-width: 767px) {
  .finan-statband > .e-con-inner > *,
  .finan-statband > * {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }
  .finan-statband > .e-con-inner > *:last-child,
  .finan-statband > *:last-child {
    border-bottom: none;
  }
  .finan-specs > * {
    border-right: none;
    padding-right: 0;
    margin-right: 16px;
  }
}

/* La figura del hero se apoya en el borde inferior */
.finan-figura {
  align-self: end;
}

/* Bloque que no se muestra en celular */
@media (max-width: 767px) {
  .finan-oculto-movil {
    display: none !important;
  }
}

/* Respeta la preferencia de menos movimiento */
@media (prefers-reduced-motion: reduce) {
  .finan-card,
  .finan-card:hover {
    transform: none;
    transition: none;
  }
}

/* ---------- Botón flotante de WhatsApp ---------- */
.finan-wa {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 95;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: #25d366;
  color: #fff;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.36);
  transition: transform 0.22s var(--ease);
}
.finan-wa:hover {
  transform: scale(1.07);
  color: #fff;
}

/* ============================================================
   COMPONENTES DEL CURSO
   Mismas medidas y colores del diseño en React.
   ============================================================ */

.finan-grid {
  display: grid;
  gap: 16px;
}
.finan-grid--2 { grid-template-columns: repeat(2, 1fr); }
.finan-grid--3 { grid-template-columns: repeat(3, 1fr); }
.finan-grid--4 { grid-template-columns: repeat(4, 1fr); }
.finan-grid--angosta { max-width: 800px; margin-left: auto; margin-right: auto; }

.finan-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--fuente-titulo);
  font-size: 0.79rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--cian-700);
}

.finan-nota {
  font-size: 0.78rem;
  line-height: 1.55;
  color: var(--texto-2);
}
.finan-nota--centro { text-align: center; margin-top: 18px; }

/* Ficha de datos sobre fondo oscuro */
.finan-specs--claro > * {
  color: rgba(255, 255, 255, 0.82);
  border-right-color: rgba(255, 255, 255, 0.2);
}
.finan-specs--claro svg { color: var(--cian-300); flex: none; }
.finan-specs svg { color: var(--cian-700); flex: none; }

/* ---------- Es para ti si… ---------- */
.finan-para-ti {
  display: flex;
  gap: 13px;
  align-items: flex-start;
  padding: 20px 22px;
}
.finan-para-ti__check {
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--cian);
  color: #fff;
  display: grid;
  place-items: center;
  margin-top: 1px;
}
.finan-para-ti p { font-size: 0.9rem; color: var(--texto); margin: 0; }

/* ---------- El problema ---------- */
.finan-pain {
  display: flex;
  gap: 13px;
  align-items: flex-start;
  padding: 18px 20px;
}
.finan-pain__x {
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: var(--r-sm);
  background: #fdeeec;
  color: var(--alerta);
  display: grid;
  place-items: center;
  margin-top: 1px;
  transition: background 0.22s var(--ease), color 0.22s var(--ease), transform 0.22s var(--ease);
}
.finan-pain:hover .finan-pain__x { background: var(--alerta); color: #fff; transform: scale(1.06); }
.finan-pain h4 { font-size: 0.95rem; font-weight: 700; margin: 0 0 3px; }
.finan-pain p { font-size: 0.83rem; color: var(--texto-2); margin: 0; }

/* ---------- Solución ---------- */
.finan-solucion {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 720px;
  margin: 0 auto;
}
.finan-solucion p {
  font-size: 0.94rem;
  padding-left: 16px;
  border-left: 2px solid var(--cian-100);
  margin: 0;
}
.finan-solucion p:first-child {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: -0.025em;
  color: var(--ink);
  border-left-color: var(--cian);
}

/* ---------- Beneficios ---------- */
.finan-perk {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
}
.finan-perk__icon,
.finan-benef__icon,
.finan-bono__icon {
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: var(--r-sm);
  background: var(--cian-50);
  color: var(--cian-700);
  display: grid;
  place-items: center;
  transition: background 0.22s var(--ease), color 0.22s var(--ease), transform 0.22s var(--ease);
}
.finan-perk:hover .finan-perk__icon,
.finan-benef:hover .finan-benef__icon,
.finan-bono:hover .finan-bono__icon {
  background: var(--cian);
  color: #fff;
  transform: scale(1.06);
}
.finan-perk > span:last-child {
  font-family: var(--fuente-titulo);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--ink);
  line-height: 1.3;
}
.finan-benef { padding: 24px 22px; display: flex; flex-direction: column; gap: 10px; }
.finan-benef h3 { font-size: 1rem; font-weight: 700; margin: 0; }
.finan-benef p { font-size: 0.85rem; color: var(--texto-2); margin: 0; }

/* ---------- Franja de garantías ---------- */
.finan-badge-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 32px;
  padding: 18px 0;
  border-top: 1px solid var(--linea);
  border-bottom: 1px solid var(--linea);
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.86rem;
  letter-spacing: -0.015em;
  color: var(--ink);
  max-width: 700px;
  margin: 0 auto;
}
.finan-badge-strip span { display: inline-flex; align-items: center; gap: 8px; }
.finan-badge-strip svg { color: var(--cian); }

/* ---------- Temario · la ruta de sesiones ----------
   Un curso se sigue en orden, así que las sesiones cuelgan de una
   línea numerada. El número de cada una es el nodo; al abrirla, el
   nodo se rellena y el contenido baja alineado con el título. */
.finan-ruta {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.finan-ruta__barra {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 13px;
  border-bottom: 1px solid var(--linea);
}
.finan-ruta__resumen {
  font-family: var(--fuente-titulo);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--texto);
}
.finan-ruta__todo {
  flex: none;
  border: 0;
  background: none;
  padding: 2px 0;
  cursor: pointer;
  font-family: var(--fuente-titulo);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--cian-700);
  border-bottom: 1px solid transparent;
  transition: border-color 0.18s var(--ease);
}
.finan-ruta__todo:hover { border-bottom-color: var(--cian); }

.finan-ruta__modulo-tit {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
  font-family: var(--fuente-titulo);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
}
.finan-ruta__modulo-tit::after {
  content: '';
  flex: 1 1 auto;
  height: 1px;
  background: var(--linea);
}
.finan-ruta__modulo-n {
  order: 1;
  flex: none;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--texto);
}

/* El raíl: cada sesión trae su tramo, así la línea nace en el centro
   del primer nodo del módulo y muere en el del último. */
.finan-ruta__item { position: relative; }
.finan-ruta__item::before {
  content: '';
  position: absolute;
  left: 19px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--linea);
}
.finan-ruta__item:first-child::before { top: 31px; }
.finan-ruta__item:last-child::before {
  bottom: auto;
  height: 31px;
}
.finan-ruta__item:first-child:last-child::before { content: none; }

.finan-ruta__h { margin: 0; }
.finan-ruta__btn {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 11px 12px 11px 0;
  background: none;
  border: 0;
  border-radius: var(--r-sm);
  text-align: left;
  cursor: pointer;
  white-space: normal;
}
.finan-ruta__btn:focus-visible {
  outline: 2px solid var(--cian);
  outline-offset: 2px;
}
.finan-ruta__nodo {
  position: relative;
  z-index: 1;
  flex: none;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--blanco);
  border: 2px solid var(--linea);
  font-family: var(--fuente-titulo);
  font-size: 0.8rem;
  font-weight: 800;
  color: var(--texto);
  transition: background 0.2s var(--ease), border-color 0.2s var(--ease), color 0.2s var(--ease);
}
.finan-ruta__txt {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.finan-ruta__tit {
  font-family: var(--fuente-titulo);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: -0.015em;
  color: var(--ink);
  overflow-wrap: anywhere;
  transition: color 0.18s var(--ease);
}
.finan-ruta__meta {
  font-size: 0.78rem;
  color: var(--texto);
}
.finan-ruta__flecha {
  flex: none;
  color: var(--texto);
  transition: transform 0.28s var(--ease), color 0.2s var(--ease);
}

.finan-ruta__btn:hover .finan-ruta__nodo { border-color: var(--cian); color: var(--cian-700); }
.finan-ruta__btn:hover .finan-ruta__tit { color: var(--cian-700); }
.finan-ruta__btn:hover .finan-ruta__flecha { color: var(--navy); }
.finan-ruta__item.is-open .finan-ruta__nodo,
.finan-ruta__item.is-open .finan-ruta__btn:hover .finan-ruta__nodo {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--blanco);
}
.finan-ruta__item.is-open .finan-ruta__flecha { transform: rotate(180deg); color: var(--navy); }

/* El panel crece hasta su alto real sin números mágicos. */
.finan-ruta__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.32s var(--ease);
}
.finan-ruta__item.is-open .finan-ruta__panel { grid-template-rows: 1fr; }
.finan-ruta__cuerpo { overflow: hidden; }
.finan-ruta__interior { padding: 2px 12px 24px 54px; }

.finan-ruta__interior h5 {
  font-family: var(--fuente-titulo);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cian-700);
  margin: 20px 0 9px;
}
.finan-ruta__interior h5:first-child { margin-top: 2px; }
.finan-ruta__interior ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.finan-ruta__interior > ul > li {
  position: relative;
  padding-left: 18px;
  font-size: 0.9rem;
  line-height: 1.55;
  font-weight: 500;
  color: var(--ink);
}
.finan-ruta__interior > ul > li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--cian);
}
.finan-ruta__interior ul ul { margin-top: 8px; gap: 5px; }
.finan-ruta__interior ul ul li {
  position: relative;
  padding-left: 15px;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--texto);
}
.finan-ruta__interior ul ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 11px;
  width: 8px;
  height: 1px;
  background: var(--linea-2);
}

/* Sólo para lectores de pantalla: el número de sesión en el título. */
.finan-ruta__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  .finan-ruta__panel,
  .finan-ruta__flecha,
  .finan-ruta__nodo { transition: none; }
}

/* ---------- Clases en vivo ---------- */
.finan-puntos { display: flex; flex-direction: column; gap: 10px; }
.finan-punto { display: flex; gap: 11px; align-items: flex-start; font-size: 0.9rem; }
.finan-punto svg { flex: none; margin-top: 3px; color: var(--cian); }

/* ---------- Docente ---------- */
.finan-instructor {
  display: grid;
  grid-template-columns: 290px minmax(0, 1fr);
  gap: 44px;
  align-items: center;
  border-radius: var(--r-lg);
  padding: 32px;
}
.finan-instructor__foto img { border-radius: var(--r); display: block; width: 100%; }
.finan-instructor__nombre {
  font-family: var(--fuente-titulo);
  font-size: 1.95rem;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.05;
  color: #fff;
}
.finan-instructor__cargo { font-size: 0.85rem; color: var(--cian-300); margin: 8px 0 20px; }
.finan-instructor__creds { display: flex; flex-direction: column; gap: 10px; }
.finan-instructor__cred {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  padding: 13px 16px;
  border-radius: var(--r-sm);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.87rem;
  color: rgba(255, 255, 255, 0.78);
  transition: background 0.2s var(--ease);
}
.finan-instructor__cred:hover { background: rgba(255, 255, 255, 0.12); }
.finan-instructor__cred svg { flex: none; margin-top: 3px; color: var(--cian-300); }

.finan-teacher { padding: 22px; display: flex; flex-direction: column; gap: 18px; }
.finan-teacher__head { display: flex; gap: 18px; align-items: center; }
.finan-teacher__avatar { width: 116px; height: 116px; flex: none; border-radius: var(--r); object-fit: cover; }
.finan-teacher h3 { font-size: 1.2rem; font-weight: 800; margin: 0 0 4px; }
.finan-teacher__cargo { font-size: 0.8rem; color: var(--cian-700); }
.finan-teacher__bio { display: flex; flex-direction: column; gap: 9px; }
.finan-teacher__bio p { font-size: 0.85rem; color: var(--texto-2); margin: 0; }

/* ---------- Tarjeta de precio ---------- */
.finan-pricing {
  max-width: 460px;
  margin: 0 auto;
  background: var(--blanco);
  border: 1px solid var(--linea-2);
  border-radius: var(--r-lg);
  box-shadow: var(--sombra-lg);
  overflow: hidden;
  transition: transform 0.28s var(--ease);
}
.finan-pricing:hover { transform: translateY(-5px) scale(1.012); }
.finan-pricing__head { padding: 30px 26px 28px; text-align: center; color: rgba(255, 255, 255, 0.8); }
.finan-pricing__head h3 { font-size: 1.15rem; font-weight: 800; color: #fff; margin: 0; }
.finan-pricing__modo { font-size: 0.82rem; color: rgba(255, 255, 255, 0.66); margin-top: 5px; }
.finan-pricing__precio { display: flex; align-items: baseline; justify-content: center; gap: 10px; margin-top: 16px; }
.finan-pricing__antes { font-size: 0.95rem; color: rgba(255, 255, 255, 0.55); text-decoration: line-through; }
.finan-pricing__ahora {
  font-family: var(--fuente-titulo);
  font-size: 2.6rem;
  font-weight: 800;
  letter-spacing: -0.045em;
  color: #fff;
  line-height: 1;
}
.finan-pricing__inicio {
  margin-top: 14px;
  color: var(--cian-300);
  font-family: var(--fuente-titulo);
  font-size: 0.84rem;
  font-weight: 700;
}
.finan-pricing__body { padding: 22px 26px 26px; }
.finan-pricing__lista { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.finan-pricing__lista li { display: flex; gap: 10px; align-items: flex-start; font-size: 0.89rem; }
.finan-pricing__lista svg { flex: none; margin-top: 3px; color: var(--ok); }

.finan-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.94rem;
  padding: 15px 26px;
  border-radius: var(--r-sm);
  transition: all 0.2s var(--ease);
}
.finan-btn--primary { background: var(--ink); color: #fff; }
.finan-btn--primary:hover { background: var(--navy); color: #fff; transform: translateY(-1px); box-shadow: var(--sombra); }
.finan-btn--block { width: 100%; }

.finan-pagos { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 18px; justify-content: center; }
.finan-pagos span { font-size: 0.78rem; color: var(--texto-2); }
.finan-pricing__body .finan-nota { text-align: center; margin-top: 12px; }

/* ---------- Bonos y certificado ---------- */
.finan-bono { padding: 24px 22px; display: flex; flex-direction: column; gap: 10px; border-top: 3px solid var(--linea-2); }
.finan-bono:hover { border-top-color: var(--cian); }
.finan-bono h3 { font-size: 1rem; font-weight: 700; margin: 0; }
.finan-bono p { font-size: 0.85rem; color: var(--texto-2); margin: 0; }

.finan-cert-lista { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.finan-cert-lista li { display: flex; gap: 11px; align-items: flex-start; font-size: 0.89rem; }
.finan-cert-lista svg { flex: none; margin-top: 3px; color: var(--cian); }

/* ---------- Preguntas frecuentes ---------- */
.finan-faq { display: flex; flex-direction: column; gap: 12px; margin-top: 26px; }
.finan-faq__item {
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-radius: var(--r);
  overflow: hidden;
  transition: box-shadow 0.22s var(--ease), border-color 0.22s var(--ease);
}
.finan-faq__item:hover,
.finan-faq__item.is-open { border-color: var(--cian-200); box-shadow: var(--sombra); }
.finan-faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 19px 22px;
  text-align: left;
  border: none;
  background: none;
  cursor: pointer;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.97rem;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.finan-faq__item.is-open .finan-faq__q { color: var(--cian-700); }
.finan-faq__icon {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--cian-50);
  color: var(--cian-700);
  transition: transform 0.3s var(--ease), background 0.22s var(--ease), color 0.22s var(--ease);
}
.finan-faq__item:hover .finan-faq__icon { background: var(--cian); color: #fff; }
.finan-faq__item.is-open .finan-faq__icon { transform: rotate(180deg); background: var(--cian); color: #fff; }
.finan-faq__a { max-height: 0; overflow: hidden; transition: max-height 0.35s var(--ease); }
.finan-faq__item.is-open .finan-faq__a { max-height: 400px; }
.finan-faq__a p { padding: 0 22px 22px; margin: 0; font-size: 0.89rem; color: var(--texto-2); }

/* Collage de la sección de preguntas */
.finan-faq-media { position: relative; padding: 0 0 52px 52px; }
.finan-faq-media__1 { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: var(--r-lg); display: block; }
.finan-faq-media__2 {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 46%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--r);
  border: 6px solid var(--tile-2);
  box-shadow: var(--sombra);
}
.finan-faq-media__puntos {
  position: absolute;
  right: -6px;
  bottom: 6px;
  width: 108px;
  height: 92px;
  background-image: radial-gradient(var(--cian-300) 2.5px, transparent 2.5px);
  background-size: 15px 15px;
  opacity: 0.85;
}

/* ---------- Testimonios en video ---------- */
.finan-video {
  background: var(--tile);
  border-radius: var(--r);
  min-height: 230px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  padding: 20px;
  position: relative;
}
.finan-video::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px dashed var(--linea-2);
  border-radius: inherit;
}
.finan-video__play {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  display: grid;
  place-items: center;
  transition: transform 0.25s var(--ease);
}
.finan-video:hover .finan-video__play { transform: scale(1.07); }
.finan-video__label { font-family: var(--fuente-titulo); font-weight: 700; font-size: 0.78rem; color: var(--ink); }
.finan-video__meta { font-size: 0.68rem; color: var(--texto-2); }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .finan-instructor { grid-template-columns: 1fr; gap: 26px; }
  .finan-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .finan-grid--2,
  .finan-grid--3,
  .finan-grid--4 { grid-template-columns: 1fr; }
  .finan-faq-media { padding: 0 0 40px 34px; }
  .finan-faq-media__puntos { display: none; }
}
@media (max-width: 620px) {
  .finan-ruta { gap: 24px; }
  .finan-ruta__barra { flex-direction: column; align-items: flex-start; gap: 5px; }
  .finan-ruta__modulo-tit { gap: 10px; }
  /* La línea del módulo se queda en un muñón cuando el nombre es largo. */
  .finan-ruta__modulo-tit::after { content: none; }
  .finan-ruta__modulo-n { margin-left: auto; }
  .finan-ruta__item::before { left: 15px; }
  .finan-ruta__item:first-child::before { top: 27px; }
  .finan-ruta__item:last-child::before { height: 27px; }
  .finan-ruta__btn { gap: 11px; padding-right: 2px; align-items: flex-start; }
  .finan-ruta__nodo { width: 32px; height: 32px; font-size: 0.72rem; }
  .finan-ruta__tit { font-size: 0.94rem; }
  .finan-ruta__flecha { margin-top: 7px; }
  .finan-ruta__interior { padding: 2px 0 22px 43px; }
}

/* ============================================================
   WOOCOMMERCE — los botones toman el lenguaje del diseño
   El widget de Elementor delega el estilo del botón al tema, así
   que se define aquí una sola vez para todo el sitio.
   ============================================================ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wc-block-components-button {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.94rem;
  letter-spacing: -0.01em;
  line-height: 1.4;
  padding: 15px 26px;
  border-radius: var(--r-sm);
  background: var(--ink);
  color: #fff;
  border: none;
  transition: all 0.2s var(--ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
  background: var(--navy);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: var(--sombra);
}

/* El botón principal de la ficha del curso va en cian */
.elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button {
  background: var(--cian);
}
.elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button:hover {
  background: var(--cian-700);
}
.elementor-widget-woocommerce-product-add-to-cart form.cart {
  margin: 0;
}

/* Imagen del curso en el hero */
.elementor-widget-woocommerce-product-images img {
  border-radius: var(--r-lg);
  display: block;
}
.elementor-widget-woocommerce-product-images .flex-control-thumbs {
  display: none;
}

/* Avisos y migas de Woo, en el estilo del sitio */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top-color: var(--cian);
  background: var(--tile-2);
  font-size: 0.9rem;
  border-radius: var(--r-sm);
}
.woocommerce-message::before,
.woocommerce-info::before {
  color: var(--cian);
}

/* El botón principal del curso, por encima de los estilos de Woo */
.woocommerce .elementor-widget-woocommerce-product-add-to-cart button.single_add_to_cart_button,
.woocommerce .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button.button.alt {
  background: var(--cian);
  color: #fff;
}
.woocommerce .elementor-widget-woocommerce-product-add-to-cart button.single_add_to_cart_button:hover,
.woocommerce .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button.button.alt:hover {
  background: var(--cian-700);
}

/* La ficha del curso no usa distintivo de oferta ni lupa */
.elementor-widget-woocommerce-product-images .onsale,
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery__trigger {
  display: none;
}
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image {
  border-radius: var(--r-lg);
  overflow: hidden;
}

/* ============================================================
   LISTADOS — tarjetas, filtros, eventos y blog
   ============================================================ */

/* ---------- Tarjeta de curso ---------- */
.finan-ccard { overflow: hidden; height: 100%; }
.finan-ccard__media { position: relative; border-bottom: 1px solid var(--linea); }
.finan-ccard__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.finan-ccard__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 0.78rem;
  color: var(--texto-2);
}
.finan-ccard__meta span { display: inline-flex; align-items: center; gap: 7px; }
.finan-ccard__meta svg { color: var(--cian-700); flex: none; }
.finan-ccard__sep { width: 1px; height: 13px; background: var(--linea-2); flex: none; }
.finan-ccard__foot {
  margin-top: auto;
  padding-top: 16px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}
.finan-precio { display: flex; align-items: baseline; gap: 7px; }
.finan-precio__ahora {
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 1.3rem;
  letter-spacing: -0.035em;
  color: var(--ink);
  line-height: 1;
}
.finan-precio__antes { font-size: 0.78rem; color: var(--texto-2); text-decoration: line-through; }
.finan-ccard__link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.87rem;
  color: var(--cian-700);
  transition: gap 0.2s var(--ease);
}
.finan-ccard:hover .finan-ccard__link { gap: 12px; }

/* ---------- Panel de filtros ---------- */
.finan-filtros {
  position: sticky;
  top: 94px;
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-radius: var(--r);
  padding: 6px 18px 18px;
}
.finan-filtros__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 0 12px;
  border-bottom: 1px solid var(--linea);
}
.finan-filtros__head > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 0.92rem;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.finan-filtros__reset { font-family: var(--fuente-titulo); font-weight: 700; font-size: 0.78rem; color: var(--cian-700); }
.finan-filtros__buscar { position: relative; margin: 16px 0 4px; color: var(--texto-2); }
.finan-filtros__buscar svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.finan-filtros__buscar input {
  width: 100%;
  padding: 11px 12px 11px 36px;
  border: 1px solid var(--linea-2);
  border-radius: var(--r-sm);
  background: var(--blanco);
  font-size: 0.88rem;
  color: var(--ink);
}
.finan-filtros__buscar input:focus {
  outline: none;
  border-color: var(--cian);
  box-shadow: 0 0 0 3px var(--cian-50);
}
.finan-filtros__grupo { padding: 16px 0 0; border-top: 1px solid var(--linea); margin-top: 16px; }
.finan-filtros__grupo h4 { font-size: 0.78rem; color: var(--texto-2); font-weight: 700; margin: 0 0 10px; }
.finan-filtros__lista { display: flex; flex-direction: column; gap: 1px; }
.finan-filtros__opt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 11px;
  border-radius: var(--r-sm);
  font-family: var(--fuente-titulo);
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: -0.015em;
  color: var(--texto);
  transition: all 0.16s var(--ease);
}
.finan-filtros__opt:hover { background: var(--tile); color: var(--ink); }
.finan-filtros__opt.is-active { background: var(--ink); color: #fff; }
.finan-filtros__count { flex: none; font-size: 0.72rem; font-weight: 700; color: var(--texto-2); }
.finan-filtros__opt.is-active .finan-filtros__count { color: rgba(255, 255, 255, 0.7); }
.finan-filtros__opt--vacio > span:first-child { color: var(--texto-2); }
.finan-filtros__aviso {
  margin-top: 18px;
  padding: 16px;
  border-radius: var(--r-sm);
  background: var(--cian-50);
}
.finan-filtros__aviso strong { font-family: var(--fuente-titulo); font-weight: 800; font-size: 0.86rem; color: var(--ink); }
.finan-filtros__aviso p { font-size: 0.8rem; color: var(--texto-2); margin: 4px 0 10px; }

.finan-btn--outline {
  background: var(--blanco);
  border: 1px solid var(--linea-2);
  color: var(--ink);
  padding: 9px 15px;
  font-size: 0.79rem;
}
.finan-btn--outline:hover { border-color: var(--ink); color: var(--ink); }

.finan-listado__barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 14px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--linea);
}
.finan-listado__conteo { font-family: var(--fuente-titulo); font-weight: 700; font-size: 0.86rem; color: var(--ink); }

.finan-vacio {
  border: 1px dashed var(--linea-2);
  border-radius: var(--r);
  padding: 52px 28px;
  text-align: center;
  background: var(--tile-2);
}
.finan-vacio h3 { font-size: 1.05rem; margin: 0 0 6px; }
.finan-vacio p { font-size: 0.88rem; color: var(--texto-2); margin: 0; }

/* ---------- Fila de evento ---------- */
.finan-event-rows,
.finan-post-rows { display: flex; flex-direction: column; gap: 16px; }
.finan-event-row { display: grid; grid-template-columns: 240px minmax(0, 1fr); overflow: hidden; }
.finan-event-row__media { display: block; }
.finan-event-row__media img { width: 100%; height: 100%; min-height: 210px; object-fit: cover; display: block; }
.finan-event-row__body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 10px; }
.finan-event-row__tags { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.finan-event-row h3 { font-size: 1.15rem; line-height: 1.25; margin: 0; }
.finan-event-row h3 a { color: var(--ink); }
.finan-event-row__body > p { font-size: 0.88rem; color: var(--texto-2); margin: 0; }
.finan-event-row__meta { display: flex; flex-direction: column; gap: 6px; font-size: 0.8rem; color: var(--texto-2); }
.finan-event-row__foot { margin-top: auto; padding-top: 14px; }
.finan-event-row__foot .finan-btn { padding: 11px 18px; font-size: 0.82rem; }

.finan-chip--amber { color: #a06e12; }
.finan-chip--gris { color: var(--texto-2); }

.finan-info-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.finan-info-list__item { padding: 15px 17px; border-radius: var(--r-sm); background: var(--tile-2); }
.finan-info-list__item small { display: block; font-size: 0.72rem; color: var(--texto-2); margin-bottom: 3px; }
.finan-info-list__item strong { font-family: var(--fuente-titulo); font-weight: 700; color: var(--ink); font-size: 0.92rem; }

.finan-agenda { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.finan-agenda li {
  display: flex;
  gap: 13px;
  align-items: center;
  padding: 14px 18px;
  border-radius: var(--r-sm);
  background: var(--tile-2);
  font-size: 0.9rem;
  color: var(--ink);
}
.finan-agenda__num {
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--blanco);
  border: 1px solid var(--linea-2);
  color: var(--cian-700);
  display: grid;
  place-items: center;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.72rem;
}

/* ---------- Formularios propios ---------- */
.finan-form-card {
  position: sticky;
  top: 94px;
  background: var(--blanco);
  border: 1px solid var(--linea-2);
  border-radius: var(--r);
  box-shadow: var(--sombra-lg);
  padding: 26px;
}
.finan-form-card h3 { font-size: 1.15rem; margin: 0 0 6px; }
.finan-form { display: flex; flex-direction: column; gap: 15px; margin-top: 18px; }
.finan-field { display: flex; flex-direction: column; gap: 6px; }
.finan-field label { font-family: var(--fuente-titulo); font-size: 0.78rem; font-weight: 700; color: var(--ink); }
.finan-field input,
.finan-field select,
.finan-field textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--linea-2);
  border-radius: var(--r-sm);
  background: var(--blanco);
  font-size: 0.92rem;
  color: var(--ink);
  font-family: var(--fuente-texto);
}
.finan-field input:focus,
.finan-field select:focus,
.finan-field textarea:focus {
  outline: none;
  border-color: var(--cian);
  box-shadow: 0 0 0 3px var(--cian-50);
}

/* ---------- Fila del blog ---------- */
.finan-post-row { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 22px; padding: 16px; align-items: center; }
.finan-post-row__media img { width: 100%; height: 160px; object-fit: cover; border-radius: var(--r-sm); display: block; }
.finan-post-row__body { display: flex; flex-direction: column; gap: 9px; }
.finan-post-row h3 { font-size: 1.28rem; line-height: 1.2; margin: 0; color: var(--ink); }
.finan-post-row__resumen { font-size: 0.9rem; color: var(--texto-2); }
.finan-post-row__meta { font-size: 0.78rem; color: var(--texto-2); }
.finan-post-row__link {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--cian-700);
}

@media (max-width: 1080px) {
  .finan-filtros,
  .finan-form-card { position: static; }
}
@media (max-width: 767px) {
  .finan-event-row,
  .finan-post-row { grid-template-columns: 1fr; }
  .finan-event-row__media img { min-height: 170px; }
  .finan-info-list { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   PORTADA · SLIDER PRINCIPAL
   ------------------------------------------------------------ */
.finan-hero {
  position: relative;
  background: var(--tile-2);
  overflow: hidden;
}
/* Panel de color que ocupa la mitad derecha */
.finan-hero__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 44%;
  background: linear-gradient(150deg, var(--navy-900), var(--navy) 55%, #17557a);
}
.finan-hero__aro {
  position: absolute;
  right: -90px;
  top: 40px;
  width: 260px;
  height: 260px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
}
.finan-hero__puntos {
  position: absolute;
  left: 34px;
  bottom: 46px;
  width: 118px;
  height: 100px;
  background-image: radial-gradient(rgba(111, 212, 230, 0.55) 2.5px, transparent 2.5px);
  background-size: 16px 16px;
}

.finan-hero__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 36px;
  align-items: center;
  padding: 22px 0 0;
}
.finan-hero__texto {
  padding: 6px 0 24px;
}
.finan-hero h1 {
  color: var(--ink);
  max-width: 21ch;
  font-size: clamp(1.8rem, 2.9vw, 2.35rem);
}
/* Palabra destacada dentro de un bloque de color */
.finan-hero__box {
  display: inline-block;
  background: var(--cian);
  color: #fff;
  border-radius: var(--r-sm);
  padding: 0 12px;
  margin: 0 2px;
  transform: rotate(-1deg);
}
.finan-hero__texto > p {
  margin-top: 14px;
  font-size: 0.95rem;
  color: var(--texto);
  max-width: 48ch;
}
.finan-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}
/* La prueba social y las flechas comparten fila para ganar altura */
.finan-hero__pie {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 22px;
}
.finan-hero__prueba {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 18px 8px 8px;
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-radius: 10px;
  box-shadow: var(--sombra-xs);
}
.finan-hero__prueba-icon {
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 999px;
  background: var(--cian-50);
  color: var(--cian-700);
  display: grid;
  place-items: center;
}
.finan-hero__prueba strong {
  display: block;
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: -0.025em;
  color: var(--ink);
}
.finan-hero__prueba span {
  font-size: 0.82rem;
  color: var(--texto-2);
}
.finan-hero__nav {
  display: flex;
  align-items: center;
  gap: 10px;
}
.finan-hero__dot {
  width: 26px;
  height: 4px;
  border-radius: 4px;
  background: var(--linea-2);
  transition: all 0.28s var(--ease);
}
.finan-hero__dot:hover {
  background: var(--cian-300);
}
.finan-hero__dot.is-active {
  background: var(--cian);
  width: 44px;
}
.finan-hero__conteo {
  margin-left: 6px;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.82rem;
  color: var(--texto-2);
  font-variant-numeric: tabular-nums;
}

/* Flechas laterales: dejan claro que el bloque es un carrusel */
.finan-hero__flecha {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid var(--linea-2);
  background: rgba(255, 255, 255, 0.96);
  color: var(--ink);
  display: grid;
  place-items: center;
  box-shadow: var(--sombra);
  transition: all 0.2s var(--ease);
}
.finan-hero__flecha:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.finan-hero__flecha--izq {
  left: 18px;
}
.finan-hero__flecha--der {
  right: 18px;
}

/* Figura recortada, apoyada en el borde inferior */
.finan-hero__figura {
  position: relative;
  align-self: end;
  display: flex;
  justify-content: center;
}
.finan-hero__cuadro {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 74%;
  height: 78%;
  border-radius: var(--r-xl) var(--r-xl) 0 0;
  background: rgba(111, 212, 230, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.finan-hero__figura img {
  position: relative;
  z-index: 2;
  width: auto;
  max-width: 100%;
  max-height: 452px;
  height: auto;
  display: block;
}

/* ------------------------------------------------------------
   BARRA DEL CONVENIO
   ------------------------------------------------------------ */
.finan-overbar {
  position: relative;
  z-index: 3;
  width: calc(100% - 96px);
  max-width: 1184px;
  margin: 26px auto 0;
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-radius: var(--r);
  box-shadow: var(--sombra-lg);
  padding: 18px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  flex-wrap: wrap;
}
.finan-overbar__left {
  display: flex;
  align-items: center;
  gap: 16px;
}
.finan-overbar__logo {
  height: 46px;
  width: auto;
  flex: none;
  padding-right: 18px;
  margin-right: 2px;
  border-right: 1px solid var(--linea);
}
.finan-overbar__k {
  font-size: 0.82rem;
  color: var(--texto-2);
  margin-top: 2px;
}
.finan-overbar__v {
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 1.02rem;
  letter-spacing: -0.025em;
  color: var(--ink);
  line-height: 1.25;
}
.finan-overbar__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
/* ---------- Marcador de imagen ---------- */

/* ------------------------------------------------------------
   MARCADOR DE IMAGEN PENDIENTE
   ------------------------------------------------------------ */
.finan-ph {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  text-align: center;
  padding: 18px;
  background: var(--tile);
  border-radius: var(--r);
  color: var(--ink);
  overflow: hidden;
}
.finan-ph::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px dashed var(--linea-2);
  border-radius: inherit;
  pointer-events: none;
}
.finan-ph__label {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: -0.01em;
  line-height: 1.35;
  max-width: 92%;
}
.finan-ph__size {
  font-size: 0.68rem;
  color: var(--texto-2);
}
.finan-ph__icon {
  opacity: 0.3;
}
.finan-ph--dark {
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
}
.finan-ph--dark::after {
  border-color: rgba(255, 255, 255, 0.22);
}
.finan-ph--dark .finan-ph__size {
  color: rgba(255, 255, 255, 0.6);
}

/* ------------------------------------------------------------
   PANEL DE SERVICIOS
   ------------------------------------------------------------ */
.finan-panel-oscuro {
  background: var(--navy-900);
  border-radius: var(--r-xl);
  padding: 54px 48px 50px;
  position: relative;
  overflow: hidden;
}
.finan-panel-oscuro::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(70% 110% at 100% 0%, rgba(12, 159, 192, 0.22), transparent 62%);
}
.finan-panel-oscuro > * {
  position: relative;
  z-index: 2;
}
.finan-panel-oscuro__head {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 34px;
}
.finan-panel-oscuro__head h2 {
  color: #fff;
  text-wrap: balance;
}
.finan-panel-oscuro__head p {
  margin-top: 14px;
  font-size: 0.96rem;
  color: rgba(255, 255, 255, 0.62);
}
.finan-panel-oscuro__head .finan-eyebrow {
  justify-content: center;
  color: var(--cian-300);
}
.finan-panel__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  max-width: 900px;
  margin: 0 auto;
}

.finan-scard {
  border-radius: var(--r-lg);
  padding: 26px 26px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition:
    background 0.28s var(--ease),
    border-color 0.28s var(--ease),
    transform 0.28s var(--ease),
    box-shadow 0.28s var(--ease);
}
.finan-scard--dark {
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.11);
  color: rgba(255, 255, 255, 0.68);
}
.finan-scard--accent {
  background: var(--cian-200);
  color: var(--navy-700);
}
.finan-scard__photo {
  height: 158px;
  border-radius: var(--r);
}
.finan-scard h3 {
  text-align: center;
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: -0.035em;
}
.finan-scard--dark h3 {
  color: #fff;
}
.finan-scard--accent h3 {
  color: var(--navy-900);
}
.finan-scard__sub {
  text-align: center;
  font-size: 0.92rem;
  margin-top: -6px;
}
.finan-scard__intro {
  font-size: 0.84rem;
  opacity: 0.7;
  margin-top: 6px;
}
.finan-scard__list {
  display: flex;
  flex-direction: column;
  gap: 13px;
}
.finan-scard__list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 0.92rem;
}
.finan-scard__check {
  flex: none;
  width: 19px;
  height: 19px;
  border-radius: 5px;
  display: grid;
  place-items: center;
  margin-top: 2px;
}
.finan-scard--dark .finan-scard__check {
  background: #fff;
  color: var(--navy-900);
}
.finan-scard--accent .finan-scard__check {
  background: var(--navy-900);
  color: #fff;
}
.finan-scard__btn {
  margin-top: auto;
  padding-top: 18px;
}
.finan-scard__btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  padding: 13px;
  border-radius: 999px;
  border: 1px solid;
  text-align: center;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.89rem;
  letter-spacing: -0.015em;
  transition: background 0.2s var(--ease);
}
.finan-scard--dark .finan-scard__btn a {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}
.finan-scard--dark .finan-scard__btn a:hover {
  background: rgba(255, 255, 255, 0.1);
}
.finan-scard--accent .finan-scard__btn a {
  border-color: rgba(13, 30, 51, 0.28);
  color: var(--navy-900);
}
.finan-scard--accent .finan-scard__btn a:hover {
  background: rgba(255, 255, 255, 0.5);
}

@media (max-width: 860px) {
  .finan-panel {
    padding: 48px 22px 44px;
    border-radius: var(--r-lg);
  }
  .finan-panel__grid {
    grid-template-columns: 1fr;
  }
}




/* ------------------------------------------------------------
   ¿POR QUE ELEGIRNOS?
   ------------------------------------------------------------ */
.finan-porque {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
  gap: 60px;
  align-items: center;
}
.finan-porque h2 {
  font-size: clamp(1.85rem, 3.2vw, 2.6rem);
  text-wrap: balance;
}
.finan-porque__texto {
  margin-top: 18px;
  font-size: 0.98rem;
  color: var(--texto);
  max-width: 54ch;
}
.finan-porque__btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 26px;
  padding: 13px 24px;
  border-radius: 999px;
  background: var(--blanco);
  border: 1px solid var(--linea);
  box-shadow: var(--sombra-xs);
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: -0.015em;
  color: var(--ink);
  transition: all 0.22s var(--ease);
}
.finan-porque__btn:hover {
  box-shadow: var(--sombra);
  transform: translateY(-2px);
}
.finan-porque__media {
  max-width: 360px;
  margin-left: auto;
}
/* Misma proporción del archivo (2:3): la foto se ve completa */
.finan-porque__media .finan-ph {
  aspect-ratio: 2 / 3;
  border-radius: var(--r-lg);
  background: transparent;
}

@media (max-width: 1080px) {
  .finan-porque {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .finan-porque__media {
    max-width: 340px;
    margin: 0 auto;
  }
}
@media (max-width: 520px) {
  .finan-porque__stats {
    grid-template-columns: 1fr;
  }
}



/* ------------------------------------------------------------
   FRANJA DE ESTADISTICAS · METODOLOGIA
   ------------------------------------------------------------ */
.finan-statband {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--navy-900);
  border-radius: var(--r-lg);
  overflow: hidden;
  position: relative;
  margin-top: 34px;
}
.finan-statband::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(60% 130% at 100% 0%, rgba(12, 159, 192, 0.24), transparent 62%);
}
.finan-statband__item {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 30px 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
  transition: background 0.22s var(--ease);
}
.finan-statband__item:last-child {
  border-right: none;
}
.finan-statband__item:hover {
  background: rgba(255, 255, 255, 0.05);
}
.finan-statband__icon {
  flex: none;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  display: grid;
  place-items: center;
  color: var(--cian-300);
  transition: all 0.22s var(--ease);
}
.finan-statband__item:hover .finan-statband__icon {
  background: var(--cian);
  border-color: var(--cian);
  color: #fff;
}
.finan-statband__item strong {
  display: block;
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 1.75rem;
  letter-spacing: -0.04em;
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.finan-statband__item span {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.6);
}


.finan-metodo-sec {
  padding-top: 104px;
}
.finan-metodo {
  position: relative;
  background: linear-gradient(130deg, var(--navy-900), var(--navy) 55%, #17557a);
  border-radius: var(--r-xl);
  padding: 40px 48px 42px;
}
.finan-metodo::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(60% 130% at 100% 0%, rgba(12, 159, 192, 0.3), transparent 60%);
}
.finan-metodo__texto {
  position: relative;
  z-index: 2;
  max-width: 56%;
  color: rgba(255, 255, 255, 0.74);
}
.finan-metodo__texto h2 {
  color: #fff;
  max-width: 18ch;
}
.finan-metodo__texto p {
  margin-top: 16px;
  font-size: 0.96rem;
  max-width: 52ch;
}
.finan-metodo__acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}
.finan-metodo__btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 13px 24px;
  border-radius: 999px;
  background: var(--blanco);
  color: var(--ink);
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: -0.015em;
  transition: all 0.22s var(--ease);
}
.finan-metodo__btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--sombra);
}
/* La foto arranca en el borde inferior y sobresale por arriba */
.finan-metodo__figura {
  position: absolute;
  right: 48px;
  bottom: 0;
  width: 290px;
  height: calc(100% + 54px);
  object-fit: cover;
  object-position: center 22%;
  border-radius: var(--r-lg);
  box-shadow: var(--sombra-lg);
  z-index: 2;
}

/* El marcador también funciona sobre fondo oscuro */

/* ------------------------------------------------------------
   GALERIA · ASI SE VIVE FINAN
   ------------------------------------------------------------ */
.finan-ense {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 440px;
  border-radius: var(--r-lg);
  overflow: hidden;
  margin: 0;
  box-shadow: var(--sombra);
}
.finan-ense__media {
  background: var(--tile);
}
.finan-ense__media .finan-ph {
  height: 100%;
  border-radius: 0;
}
.finan-ense__media .finan-ph::after {
  border: none;
}
.finan-ense__panel {
  background: var(--navy-900);
  color: rgba(255, 255, 255, 0.72);
  padding: 44px 44px 40px;
  display: flex;
  flex-direction: column;
}
.finan-ense__texto {
  font-family: var(--fuente-titulo);
  font-weight: 500;
  font-size: 1.28rem;
  line-height: 1.45;
  letter-spacing: -0.02em;
  color: rgba(255, 255, 255, 0.9);
  max-width: 34ch;
}
.finan-ense__linea {
  height: 1px;
  background: rgba(255, 255, 255, 0.16);
  margin: 30px 0 26px;
}
.finan-ense__meta strong {
  display: block;
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 1.22rem;
  letter-spacing: -0.03em;
  color: #fff;
}
.finan-ense__meta span {
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.5);
  font-variant-numeric: tabular-nums;
}
.finan-ense__nav {
  display: flex;
  gap: 12px;
  margin-top: auto;
  padding-top: 34px;
}
.finan-ense__nav button {
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
  display: grid;
  place-items: center;
  transition: all 0.2s var(--ease);
}
.finan-ense__nav button:hover {
  background: var(--cian);
  border-color: var(--cian);
  transform: translateY(-2px);
}

/* ------------------------------------------------------------
   TARJETA DE DOCENTE Y SU MODAL
   ------------------------------------------------------------ */
.finan-tcard {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
}
.finan-tcard__photo {
  aspect-ratio: 1;
  width: 100%;
  border-radius: 0;
}
.finan-tcard__photo::after {
  border: none;
  border-bottom: 1px solid var(--linea);
}
.finan-tcard__body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  flex: 1;
}
.finan-tcard__body h3 {
  font-size: 1.08rem;
}
.finan-tcard__role {
  font-size: 0.82rem;
  color: var(--texto-2);
  line-height: 1.4;
}
.finan-tcard__btn {
  margin-top: auto;
}

/* ---------- Modal ---------- */
.finan-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(16, 26, 38, 0.55);
  backdrop-filter: blur(3px);
  animation: modal-in 0.2s var(--ease);
}
.finan-modal__card {
  position: relative;
  width: 100%;
  max-width: 700px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  background: var(--blanco);
  border-radius: var(--r-lg);
  box-shadow: var(--sombra-lg);
  animation: modal-card-in 0.25s var(--ease);
}
.finan-modal__card:focus {
  outline: none;
}
.finan-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--linea-2);
  color: var(--ink);
  transition: all 0.18s var(--ease);
}
.finan-modal__close:hover {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
@keyframes modal-in {
  from {
    opacity: 0;
  }
}
@keyframes modal-card-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
}

/* Contenido del modal de docente */
.finan-dmodal {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 26px;
  padding: 26px;
  align-items: start;
}
.finan-dmodal__photo {
  aspect-ratio: 1;
  width: 100%;
  border-radius: var(--r);
}
.finan-dmodal__info h3 {
  font-size: 1.5rem;
  font-weight: 800;
  padding-right: 40px;
}
.finan-dmodal__role {
  display: block;
  font-size: 0.86rem;
  color: var(--cian-700);
  margin: 6px 0 18px;
}
.finan-dmodal__creds {
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.finan-dmodal__creds li {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  font-size: 0.9rem;
  color: var(--texto);
}
.finan-dmodal__creds svg {
  flex: none;
  margin-top: 3px;
  color: var(--cian-700);
}

@media (max-width: 620px) {
  .finan-dmodal {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px;
  }
  .finan-dmodal__photo {
    max-width: 200px;
  }
}

/* ---------- Testimonios ---------- */

/* ------------------------------------------------------------
   VIDEO TESTIMONIOS
   ------------------------------------------------------------ */
.finan-video-testi .finan-ph {
  height: 230px;
}
.finan-video-testi__play {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  display: grid;
  place-items: center;
  transition: transform 0.25s var(--ease);
}
.finan-video-testi:hover .finan-video-testi__play {
  transform: scale(1.07);
}

/* Bloque de reseñas a los lados de una imagen central */

/* ------------------------------------------------------------
   CONTACTO
   ------------------------------------------------------------ */
.finan-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 44px;
  align-items: start;
}
.finan-contact-info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 22px;
}
.finan-contact-info__item {
  display: flex;
  gap: 13px;
  align-items: center;
  padding: 14px 16px;
  border-radius: var(--r-sm);
  background: var(--tile-2);
}
.finan-contact-info__icon {
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: var(--r-sm);
  background: var(--blanco);
  border: 1px solid var(--linea);
  color: var(--cian-700);
  display: grid;
  place-items: center;
}
.finan-contact-info__item small {
  display: block;
  font-size: 0.73rem;
  color: var(--texto-2);
}
.finan-contact-info__item strong {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  color: var(--ink);
  font-size: 0.93rem;
  letter-spacing: -0.015em;
}

/* ------------------------------------------------------------
   NOSOTROS · MISION, HISTORIA, VALORES, EQUIPO, DOCENTES
   ------------------------------------------------------------ */
.finan-mv-card {
  padding: 26px 24px;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.finan-mv-card__icon {
  width: 34px;
  height: 34px;
  border-radius: var(--r-sm);
  background: var(--tile);
  color: var(--ink);
  display: grid;
  place-items: center;
}
.finan-mv-card p {
  font-size: 0.86rem;
  color: var(--texto-2);
}

.finan-timeline {
  border-top: 1px solid var(--linea);
}
.finan-tl-item {
  display: grid;
  grid-template-columns: 32px 170px minmax(0, 1fr);
  gap: 20px;
  padding: 24px 0;
  border-bottom: 1px solid var(--linea);
}
.finan-tl-item__dot {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--cian-50);
  color: var(--cian-700);
  display: grid;
  place-items: center;
  margin-top: 2px;
}
.finan-tl-item__year {
  font-family: var(--fuente-titulo);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--cian-700);
  padding-top: 4px;
}
.finan-tl-item h3 {
  font-size: 1.1rem;
  font-weight: 800;
  margin-bottom: 9px;
  grid-column: 3;
}
.finan-tl-item p {
  grid-column: 3;
  font-size: 0.92rem;
  color: var(--texto-2);
  max-width: 78ch;
}

.finan-value {
  padding: 24px 20px;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-align: center;
  align-items: center;
}
.finan-value__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--r-sm);
  background: var(--cian-50);
  color: var(--cian-700);
  display: grid;
  place-items: center;
}
.finan-value h3 {
  font-size: 0.98rem;
}
.finan-value p {
  font-size: 0.82rem;
  color: var(--texto-2);
}

.finan-member {
  padding: 0;
  overflow: hidden;
  height: 100%;
}
.finan-member .finan-ph {
  /* Marco vertical y ajuste "contain": las siluetas son verticales y
     deben verse completas, no recortadas. */
  height: auto;
  aspect-ratio: 3 / 4;
  border-radius: 0;
  background: var(--blanco);
}
.finan-member .finan-ph--img > img {
  object-fit: contain;
}
.finan-member .finan-ph::after {
  border: none;
  border-bottom: 1px solid var(--linea);
}
.finan-member__body {
  padding: 16px 16px 20px;
}
.finan-member h3 {
  font-size: 0.95rem;
  margin-bottom: 4px;
}
.finan-member__role {
  font-size: 0.78rem;
  color: var(--texto-2);
  line-height: 1.4;
}

.finan-stats-band {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  text-align: center;
}
.finan-stat strong {
  display: block;
  font-family: var(--fuente-titulo);
  font-size: 2.1rem;
  font-weight: 800;
  letter-spacing: -0.045em;
  color: #fff;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.finan-stat span {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
}

.finan-teacher {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 22px;
  height: 100%;
}
.finan-teacher__head {
  display: flex;
  gap: 18px;
  align-items: center;
}
.finan-teacher__avatar {
  width: 116px;
  flex: none;
  aspect-ratio: 1;
}
.finan-teacher h3 {
  font-size: 1.2rem;
  font-weight: 800;
  margin-bottom: 5px;
}
.finan-teacher__role {
  font-size: 0.8rem;
  color: var(--cian-700);
}
.finan-teacher__bio {
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.finan-teacher__bio p {
  font-size: 0.85rem;
  color: var(--texto-2);
}



/* ------------------------------------------------------------
   DOS COLUMNAS CON RESUMEN LATERAL
   ------------------------------------------------------------ */
.finan-checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 40px;
  align-items: start;
}
.finan-summary {
  position: sticky;
  top: calc(76px + 20px);
  border: 1px solid var(--linea-2);
  border-radius: var(--r);
  background: var(--blanco);
  box-shadow: var(--sombra-lg);
  overflow: hidden;
}
.finan-summary__head {
  padding: 18px 22px;
  background: var(--ink);
  color: #fff;
}
.finan-summary__head h3 {
  color: #fff;
  font-size: 0.95rem;
}
.finan-summary__body {
  padding: 20px 22px 24px;
}
.finan-summary__row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid var(--linea);
  font-size: 0.87rem;
}
.finan-summary__row span:first-child {
  color: var(--texto-2);
  flex: none;
}
.finan-summary__row strong {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  color: var(--ink);
  text-align: right;
  letter-spacing: -0.015em;
}
.finan-summary__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 14px;
  padding-top: 16px;
  border-top: 1px solid var(--linea-2);
}
.finan-summary__total span:first-child {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ink);
}
.finan-summary__total span:last-child {
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 1.6rem;
  letter-spacing: -0.04em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.finan-pay-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 18px;
}
.finan-pay-methods {
  gap: 6px 14px;
}
.finan-pay-method {
  font-size: 0.78rem;
  color: var(--texto-2);
  position: relative;
}
.finan-pay-method + .finan-pay-method::before {
  content: '·';
  margin-right: 14px;
  color: var(--linea-2);
}



/* ------------------------------------------------------------
   INTERRUPTOR Y TARJETAS DE OPCION
   ------------------------------------------------------------ */
.finan-switch {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.84rem;
  letter-spacing: -0.015em;
  color: var(--ink);
}
.finan-switch input {
  appearance: none;
  width: 38px;
  height: 22px;
  flex: none;
  border-radius: 999px;
  background: var(--linea-2);
  position: relative;
  transition: background 0.2s var(--ease);
  cursor: pointer;
}
.finan-switch input::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #fff;
  transition: transform 0.2s var(--ease);
}
.finan-switch input:checked {
  background: var(--cian);
}
.finan-switch input:checked::after {
  transform: translateX(16px);
}

/* ------------------------------------------------------------
   TARJETAS DE OPCION (RECLAMACIONES)
   ------------------------------------------------------------ */
.finan-radio-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.finan-radio-card {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  padding: 14px 16px;
  border: 1px solid var(--linea-2);
  border-radius: var(--r-sm);
  background: var(--blanco);
  cursor: pointer;
  transition: all 0.18s var(--ease);
}
.finan-radio-card:hover {
  border-color: var(--cian);
}
.finan-radio-card.is-active {
  border-color: var(--cian);
  background: var(--cian-50);
}
.finan-radio-card input {
  width: auto;
  margin-top: 3px;
  flex: none;
  accent-color: var(--cian);
}
.finan-radio-card > span {
  flex: 1;
  min-width: 0;
}
.finan-radio-card strong {
  display: block;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ink);
  letter-spacing: -0.015em;
}
.finan-radio-card small {
  display: block;
  font-size: 0.79rem;
  color: var(--texto-2);
  margin-top: 2px;
}
.finan-form-card h3 {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--linea);
}

/* Enlace del libro de reclamaciones en el pie */
.finan-footer__libro {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  border-radius: var(--r-sm);
  border: 1px solid rgba(255, 255, 255, 0.2);
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.74rem;
  color: #fff;
  transition: all 0.2s var(--ease);
}
.finan-footer__libro:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}
/* ------------------------------------------------------------
   AJUSTES DE LAS PIEZAS ANTERIORES DENTRO DE ELEMENTOR
   ------------------------------------------------------------ */

/* El slider y la barra del convenio viven en contenedores a todo
   el ancho, así que llevan su propia caja centrada. */
.finan-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px;
}

.finan-grid--5 { grid-template-columns: repeat(5, 1fr); }

/* Un solo slide visible a la vez */
.finan-slide { display: none; }
.finan-slide.is-active { display: block; }

.finan-hero .finan-eyebrow { text-align: left; }
.finan-hero h1 {
  font-family: var(--fuente-titulo);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.12;
  margin: 0;
}

/* La barra del convenio sube sobre el borde del slider */
.finan-overbar { position: relative; z-index: 6; }

.finan-panel-oscuro__head .finan-eyebrow,
.finan-panel-oscuro__head h2,
.finan-panel-oscuro__head p { margin-left: auto; margin-right: auto; }

/* Retrato de "¿Por qué elegirnos?": la imagen ya trae su propio
   tratamiento, se muestra completa y sin nada encima. */
.finan-porque__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: var(--r-lg);
}

.finan-metodo__figura { object-fit: cover; }

.finan-ense__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.finan-tcard__photo img,
.finan-dmodal__photo img,
.finan-member img,
.finan-teacher__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.finan-member img { aspect-ratio: 6 / 7; border-radius: var(--r) var(--r) 0 0; }

/* Modal del docente: oculto hasta que se pulsa "Ver más" */
.finan-modal[hidden] { display: none; }



/* La columna de texto agrupa los slides y el pie compartido */
.finan-hero__col { min-width: 0; padding-bottom: 24px; }
.finan-hero__col .finan-hero__texto { padding-bottom: 0; }

/* Marcador que ya tiene la foto cargada: sin borde punteado */
.finan-ph--img { padding: 0; background: var(--tile); }
.finan-ph--img::after { border: none; }
.finan-ph--img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
.finan-porque__media .finan-ph { aspect-ratio: 2 / 3; border-radius: var(--r-lg); background: transparent; }
.finan-scard__photo.finan-ph--img { aspect-ratio: 1000 / 650; }
.finan-tcard__photo.finan-ph--img { aspect-ratio: 1 / 1; }

/* ------------------------------------------------------------
   BOTONES DEL DISEÑO DENTRO DE ELEMENTOR

   Elementor pinta todos los enlaces con .elementor-kit-N a, que gana
   por especificidad. Por eso los botones se declaran con el elemento
   delante (a.finan-btn…) y los <button> se resetean, porque el tema
   padre les pone su propio fondo y borde.
   ------------------------------------------------------------ */
button.finan-btn,
.finan-hero__dot,
.finan-hero__flecha,
.finan-ense__nav button,
.finan-modal__close {
  -webkit-appearance: none;
  appearance: none;
  font: inherit;
  cursor: pointer;
}
.finan-hero__dot {
  border: 0;
  padding: 0;
}

a.finan-btn,
button.finan-btn {
  font-size: 0.86rem;
  letter-spacing: -0.01em;
  padding: 12px 20px;
  border: 1px solid transparent;
  white-space: nowrap;
  text-align: center;
}
a.finan-btn--primary,
button.finan-btn--primary { background: var(--ink); color: #fff; }
a.finan-btn--primary:hover,
button.finan-btn--primary:hover { background: var(--navy); color: #fff; }

a.finan-btn--outline,
button.finan-btn--outline {
  background: var(--blanco);
  border-color: var(--linea-2);
  color: var(--ink);
}
a.finan-btn--outline:hover,
button.finan-btn--outline:hover { border-color: var(--ink); color: var(--ink); }

a.finan-btn--ghost,
button.finan-btn--ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
a.finan-btn--ghost:hover,
button.finan-btn--ghost:hover { background: rgba(255, 255, 255, 0.12); border-color: #fff; color: #fff; }

a.finan-btn--lg, button.finan-btn--lg { padding: 15px 26px; font-size: 0.94rem; }
a.finan-btn--sm, button.finan-btn--sm { padding: 9px 15px; font-size: 0.79rem; }
a.finan-btn--block, button.finan-btn--block { width: 100%; }

a.finan-porque__btn { color: var(--ink); }
a.finan-metodo__btn { color: var(--ink); }
a.finan-ccard__link,
a.finan-post-row__link { color: var(--cian-700); }

/* La diapositiva activa ocupa todo el alto de su panel */
.finan-ense__media .finan-slide.is-active,
.finan-ense__media .finan-slide.is-active .finan-ph { height: 100%; }
.finan-ense__panel > .finan-slide.is-active { display: flex; flex-direction: column; }

/* Dos campos por fila, como en el diseño */
.finan-form-card form { display: flex; flex-direction: column; gap: 15px; }
.finan-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
@media (max-width: 860px) { .finan-form-row { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------
   FRANJA DE CIERRE
   ------------------------------------------------------------ */
.finan-cta-band {
  background: var(--navy);
  border-radius: var(--r-lg);
  padding: 44px;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) auto;
  gap: 32px;
  align-items: center;
  color: rgba(255, 255, 255, 0.74);
  position: relative;
  overflow: hidden;
}
.finan-cta-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(80% 140% at 100% 0%, rgba(12, 159, 192, 0.42), transparent 60%);
}
.finan-cta-band > * { position: relative; z-index: 2; }
.finan-cta-band h2 {
  color: #fff;
  max-width: 24ch;
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: clamp(1.6rem, 2.9vw, 2.2rem);
  letter-spacing: -0.03em;
  line-height: 1.12;
  margin: 0;
}
.finan-cta-band p { margin-top: 12px; max-width: 54ch; font-size: 0.95rem; }
.finan-cta-band__acciones { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 860px) {
  .finan-cta-band { grid-template-columns: 1fr; padding: 32px 24px; }
}

/* ============================================================
   CARRITO Y FINALIZAR COMPRA
   El proceso es el de WooCommerce; aquí solo se le da el diseño
   de la maqueta a su propio marcado.
   ============================================================ */

/* ---------- Aviso y campo de cupón ---------- */
.finan-woo .woocommerce-form-coupon-toggle .woocommerce-info {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 15px 20px;
  border: 0;
  border-left: 3px solid var(--cian);
  background: var(--tile-2);
  border-radius: var(--r-sm);
  font-size: 0.92rem;
  margin: 0 0 14px;
  color: var(--texto);
}
.finan-woo .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
.finan-woo .woocommerce-form-coupon-toggle a {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  color: var(--cian-700);
  text-decoration: underline;
}
.finan-woo form.checkout_coupon {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  padding: 18px 20px;
  border: 1px solid var(--linea);
  border-radius: var(--r-sm);
  margin: 0 0 26px;
}
.finan-woo form.checkout_coupon p { margin: 0; }
.finan-woo form.checkout_coupon .form-row-first { flex: 1; min-width: 200px; }

/* ---------- Rejilla de dos columnas ---------- */
.finan-woo form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  grid-template-rows: auto 1fr;
  gap: 20px 40px;
  align-items: start;
  margin-top: 26px;
}
.finan-woo #customer_details { grid-column: 1; grid-row: 1 / 3; }
.finan-woo #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
.finan-woo #order_review { grid-column: 2; grid-row: 2; }

.finan-woo .col2-set { display: flex; flex-direction: column; gap: 26px; width: 100%; }
.finan-woo .col2-set .col-1,
.finan-woo .col2-set .col-2 { width: 100%; float: none; }

.finan-woo h3,
.finan-woo #order_review_heading {
  font-family: var(--fuente-titulo);
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--ink);
  padding-bottom: 14px;
  border-bottom: 1px solid var(--linea);
  margin-bottom: 18px;
}

/* ---------- Campos ---------- */
.finan-woo .woocommerce-billing-fields__field-wrapper,
.finan-woo .woocommerce-additional-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}
.finan-woo p.form-row { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.finan-woo p.form-row-wide,
.finan-woo p.form-row.notes { grid-column: 1 / -1; }
.finan-woo p.form-row label {
  font-family: var(--fuente-titulo);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ink);
}
.finan-woo p.form-row .required { color: var(--alerta); text-decoration: none; }
.finan-woo p.form-row .optional { color: var(--texto-2); font-weight: 500; }
.finan-woo p.form-row input.input-text,
.finan-woo p.form-row textarea,
.finan-woo p.form-row select,
.finan-woo form.checkout_coupon input.input-text {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--linea-2);
  border-radius: var(--r-sm);
  background: var(--blanco);
  font-family: var(--fuente-texto);
  font-size: 0.92rem;
  color: var(--ink);
}
.finan-woo p.form-row textarea { min-height: 100px; resize: vertical; }
.finan-woo p.form-row input.input-text:focus,
.finan-woo p.form-row textarea:focus,
.finan-woo p.form-row select:focus {
  outline: none;
  border-color: var(--cian);
  box-shadow: 0 0 0 3px var(--cian-50);
}

/* El país está fijado a Perú: no hace falta mostrarlo */
.finan-woo #billing_country_field { display: none !important; }  /* Woo lo reabre con JS */

/* Boleta o factura, con el mismo aire de las tarjetas de opción */
.finan-woo .finan-comprobante ul,
.finan-woo .finan-comprobante .woocommerce-input-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  width: 100%;
}
.finan-woo .finan-comprobante input[type="radio"] { display: none; }
.finan-woo .finan-comprobante label.radio {
  display: block;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid var(--linea-2);
  border-radius: var(--r-sm);
  background: var(--blanco);
  cursor: pointer;
  font-size: 0.92rem;
  transition: all 0.18s var(--ease);
}
.finan-woo .finan-comprobante label.radio:hover { border-color: var(--cian); }
.finan-woo .finan-comprobante input[type="radio"]:checked + label.radio {
  border-color: var(--cian);
  background: var(--cian-50);
  box-shadow: 0 0 0 3px var(--cian-50);
}

/* Los datos de factura solo aparecen cuando se elige factura */
.finan-woo form.checkout:not(.finan-factura) .finan-solo-factura { display: none; }
.finan-woo form.checkout.finan-factura .finan-solo-boleta { display: none; }

/* ---------- Resumen del pedido ---------- */
.finan-woo #order_review {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: var(--tile-2);
  border: 1px solid var(--linea);
  border-radius: var(--r);
  padding: 26px;
}
.finan-woo .shop_table {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  margin: 0;
}
.finan-woo .shop_table th,
.finan-woo .shop_table td {
  padding: 13px 0;
  border: 0;
  border-bottom: 1px solid var(--linea);
  font-size: 0.92rem;
  background: transparent;
  vertical-align: baseline;
}
.finan-woo .shop_table thead th {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  color: var(--ink);
  border-bottom-color: var(--linea-2);
}
.finan-woo .shop_table td.product-total,
.finan-woo .shop_table th.product-total,
.finan-woo .shop_table .cart-subtotal td,
.finan-woo .shop_table .order-total td {
  text-align: right;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.finan-woo .shop_table .product-quantity,
.finan-woo .shop_table td.product-name .product-quantity { color: var(--texto-2); font-weight: 500; }
.finan-woo .finan-woo__detalle {
  display: block;
  font-size: 0.78rem;
  color: var(--texto-2);
  margin-top: 4px;
}
.finan-woo .shop_table .order-total th,
.finan-woo .shop_table .order-total td {
  border-bottom: 0;
  border-top: 2px solid var(--ink);
  padding-top: 16px;
}
.finan-woo .shop_table .order-total th {
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 1rem;
  color: var(--ink);
}
.finan-woo .shop_table .order-total td .amount {
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: -0.04em;
}

/* ---------- Métodos de pago ---------- */
.finan-woo #payment { background: transparent; border-radius: 0; }
.finan-woo #payment ul.wc_payment_methods {
  display: flex;
  flex-direction: column;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
}
.finan-woo #payment li.wc_payment_method {
  padding: 14px 16px;
  border: 1px solid var(--linea-2);
  border-radius: var(--r-sm);
  background: var(--blanco);
  transition: all 0.18s var(--ease);
}
.finan-woo #payment li.wc_payment_method:hover { border-color: var(--cian); }
.finan-woo #payment li.wc_payment_method:has(input:checked) {
  border-color: var(--cian);
  box-shadow: 0 0 0 3px var(--cian-50);
}
.finan-woo #payment li.wc_payment_method > label {
  display: flex;
  align-items: center;
  gap: 11px;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--ink);
  letter-spacing: -0.015em;
  cursor: pointer;
  margin: 0;
}
.finan-woo #payment input.input-radio { width: auto; flex: none; accent-color: var(--cian); margin: 0; }
.finan-woo #payment .payment_box {
  background: transparent;
  margin: 9px 0 0 27px;
  padding: 0;
  font-size: 0.82rem;
  color: var(--texto-2);
}
.finan-woo #payment .payment_box::before { display: none; }
.finan-woo #payment .payment_box p { margin: 0; }

/* ---------- Términos y botón final ---------- */
.finan-woo .woocommerce-terms-and-conditions-wrapper { font-size: 0.86rem; }
.finan-woo .woocommerce-privacy-policy-text p { font-size: 0.82rem; color: var(--texto-2); }
.finan-woo .validate-required.woocommerce-terms-and-conditions-checkbox-text,
.finan-woo .woocommerce-form__label-for-checkbox {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  cursor: pointer;
}
.finan-woo .woocommerce-form__input-checkbox { width: auto; flex: none; margin-top: 3px; accent-color: var(--cian); }
.finan-woo .woocommerce-terms-and-conditions-wrapper a { color: var(--cian-700); font-weight: 600; text-decoration: underline; }

.finan-woo #place_order {
  width: 100%;
  margin-top: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.94rem;
  padding: 15px 26px;
  border: 0;
  border-radius: var(--r-sm);
  background: var(--ink);
  color: #fff;
  cursor: pointer;
  transition: all 0.2s var(--ease);
}
.finan-woo #place_order:hover { background: var(--navy); box-shadow: var(--sombra); }

.finan-woo .finan-woo__seguro {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.8rem;
  color: var(--texto-2);
  margin: 14px 0 0;
}
.finan-woo .finan-woo__seguro svg { color: var(--cian-700); }

/* ---------- Pedido recibido ---------- */
.finan-woo .woocommerce-order {
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-radius: var(--r-lg);
  padding: 48px 40px;
  box-shadow: var(--sombra);
}
.finan-woo .woocommerce-thankyou-order-received {
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 1.5rem;
  color: var(--ink);
  letter-spacing: -0.03em;
}
.finan-woo ul.woocommerce-order-overview {
  display: flex;
  flex-direction: column;
  margin: 28px 0 22px;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--linea);
}
.finan-woo ul.woocommerce-order-overview li {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 0;
  border: 0;
  border-bottom: 1px solid var(--linea);
  font-size: 0.92rem;
  text-transform: none;
}
.finan-woo ul.woocommerce-order-overview li strong {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  color: var(--ink);
  text-align: right;
}

/* ---------- Carrito ---------- */
.finan-woo .woocommerce-cart-form .shop_table td,
.finan-woo .woocommerce-cart-form .shop_table th { padding: 16px 10px; }
.finan-woo .cart_totals { max-width: 420px; margin-left: auto; }
.finan-woo .wc-proceed-to-checkout .checkout-button {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--fuente-titulo);
  font-weight: 700;
  padding: 15px 26px;
  border-radius: var(--r-sm);
  background: var(--ink);
  color: #fff;
}
.finan-woo .wc-proceed-to-checkout .checkout-button:hover { background: var(--navy); color: #fff; }

@media (max-width: 1080px) {
  .finan-woo form.checkout { grid-template-columns: 1fr; }
  .finan-woo #customer_details,
  .finan-woo #order_review_heading,
  .finan-woo #order_review { grid-column: 1; grid-row: auto; }
  .finan-woo #order_review { position: static; }
}
@media (max-width: 860px) {
  .finan-woo .woocommerce-billing-fields__field-wrapper,
  .finan-woo .woocommerce-additional-fields__field-wrapper,
  .finan-woo .finan-comprobante .woocommerce-input-wrapper { grid-template-columns: 1fr; }
  .finan-woo #order_review { padding: 22px 18px; }
}

/* Ajustes finos del checkout */
.finan-woo .finan-comprobante label.radio .required,
.finan-woo .finan-comprobante label.radio abbr { display: none; }

.finan-woo #payment li.wc_payment_method {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 11px;
}
.finan-woo #payment li.wc_payment_method > label { gap: 0; }
.finan-woo #payment .payment_box { flex-basis: 100%; margin: 0 0 0 27px; }

.finan-woo .place-order {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  float: none;
  width: 100%;
}
.finan-woo .woocommerce-privacy-policy-text { order: -1; }
.finan-woo #payment .form-row.place-order { margin: 0; padding: 0; }
.finan-woo #payment div.form-row { padding: 0; }

/* Cabecera de página a sangre completa */
.finan-page-hero { border-radius: 0; }

/* Cabecera de las páginas de compra */
.finan-page-hero__titulo {
  font-family: var(--fuente-titulo);
  font-weight: 800;
  font-size: 31px;
  letter-spacing: -0.03em;
  line-height: 1.12;
  color: #fff;
  margin: 0;
}
.finan-page-hero__bajada {
  margin: 10px 0 0;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.74);
  max-width: 60ch;
}

/* ---------- Detalles del carrito ---------- */
.finan-woo .woocommerce-cart-form .shop_table { border: 1px solid var(--linea); border-radius: var(--r); }
.finan-woo td.product-thumbnail img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--r-sm); }
.finan-woo td.product-name a { font-family: var(--fuente-titulo); font-weight: 700; color: var(--ink); }
.finan-woo td.product-name a:hover { color: var(--cian-700); }
.finan-woo a.remove {
  color: var(--texto-2) !important;
  font-size: 1.1rem;
  line-height: 1;
}
.finan-woo a.remove:hover { color: var(--alerta) !important; background: transparent; }
.finan-woo .coupon { display: flex; gap: 10px; align-items: center; }
.finan-woo .coupon #coupon_code { min-width: 190px; }
.finan-woo .coupon button,
.finan-woo button[name="update_cart"] {
  font-family: var(--fuente-titulo);
  font-weight: 700;
  font-size: 0.82rem;
  padding: 11px 18px;
  border-radius: var(--r-sm);
  border: 1px solid var(--linea-2);
  background: var(--blanco);
  color: var(--ink);
  cursor: pointer;
}
.finan-woo .coupon button:hover,
.finan-woo button[name="update_cart"]:hover:not(:disabled) { border-color: var(--ink); }
.finan-woo .cart_totals h2 {
  font-family: var(--fuente-titulo);
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--ink);
  padding-bottom: 14px;
  border-bottom: 1px solid var(--linea);
  margin-bottom: 18px;
}
.finan-woo .cart_totals .order-total .amount { font-size: 1.6rem; letter-spacing: -0.04em; }

/* ============================================================
   RESPONSIVE
   Los mismos cortes del diseño: 1339 · 1080 · 860 · 700 · 620 · 520.
   Se toman tal cual para que el móvil se vea igual que la maqueta.
   ============================================================ */
@media (max-width: 860px) {
  .finan-ense {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .finan-ense__media .finan-ph {
    height: 260px;
  }
  .finan-ense__panel {
    padding: 30px 24px 28px;
  }
  .finan-ense__texto {
    font-size: 1.1rem;
  }
  .finan-ense__nav {
    padding-top: 26px;
  }
}

@media (max-width: 620px) {
  .finan-dmodal {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px;
  }
  .finan-dmodal__photo {
    max-width: 200px;
  }
}

@media (max-width: 1080px) {
  .finan-clanding-hero__grid {
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 52px 0 70px;
  }
  .finan-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
    gap: 24px;
  }
  .finan-hero__figura img {
    max-height: 380px;
  }
  .finan-hero__panel {
    width: 40%;
  }
  .finan-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .finan-grid--5 {
    grid-template-columns: repeat(3, 1fr);
  }
  .finan-event-detail,
  .finan-checkout,
  .finan-instructor,
  .finan-cert,
  .finan-live,
  .finan-contact-grid,
  .finan-cta-band {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .finan-event-detail__form,
  .finan-summary {
    position: static;
  }
  .finan-instructor {
    text-align: left;
  }
}

@media (max-width: 860px) {
  :root {
    --nav-h: 66px;
  }
  .finan-container {
    padding: 0 20px;
  }
  .finan-nav__links {
    display: none;
  }
  .finan-nav__burger {
    display: flex;
  }
  .finan-nav__mobile.is-open {
    display: flex;
  }
  .finan-section {
    padding: 58px 0;
  }
  .finan-grid--3,
  .finan-grid--2,
  .finan-for-you,
  .finan-pain-grid,
  .finan-trio,
  .finan-cifras {
    grid-template-columns: 1fr;
  }
  .finan-trio__cell,
  .finan-cifras__item {
    border-right: none;
    border-bottom: 1px solid var(--linea);
  }
  .finan-trio__cell:last-child,
  .finan-cifras__item:last-child {
    border-bottom: none;
  }
  .finan-grid--5 {
    grid-template-columns: repeat(2, 1fr);
  }
  .finan-stats-band {
    grid-template-columns: repeat(2, 1fr);
  }
  .finan-cta-band {
    padding: 32px 24px;
  }
  .finan-tl-item {
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 14px;
  }
  .finan-tl-item h3,
  .finan-tl-item p {
    grid-column: 2;
  }
  .finan-tl-item__year {
    padding-top: 2px;
  }
  .finan-info-list {
    grid-template-columns: 1fr;
  }
  .finan-form-row {
    grid-template-columns: 1fr;
  }
  .finan-buy-bar {
    display: flex;
  }
  .finan-wa {
    bottom: 82px;
  }
  .finan-footer {
    padding: 46px 0 20px;
  }
  .finan-footer__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .finan-overbar {
    width: calc(100% - 40px);
    margin: 18px auto 0;
    padding: 16px 18px;
  }
  .finan-reviews {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .finan-reviews__center {
    width: 100%;
    max-width: 230px;
    margin: 0 auto;
  }
  .finan-final-cta {
    padding: 40px 22px;
  }
}

@media (max-width: 520px) {
  .finan-grid--4,
  .finan-grid--5 {
    grid-template-columns: 1fr;
  }
  .finan-form-card,
  .finan-event-detail__form {
    padding: 22px 18px;
  }
}

@media (max-width: 1080px) {
  .finan-listado {
    grid-template-columns: 1fr;
  }
  .finan-filtros {
    position: static;
  }
}

@media (max-width: 700px) {
  .finan-event-row {
    grid-template-columns: 1fr;
  }
  .finan-event-row__media {
    min-height: 170px;
  }
  .finan-event-row__media::after {
    border-right: none;
    border-bottom: 1px solid var(--linea);
  }
}

@media (min-width: 1081px) and (max-width: 1339px) {
  .finan-listado .finan-grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 1080px) {
  .finan-grid--benef {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 520px) {
  .finan-grid--benef {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .finan-post-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .finan-post-row__media {
    height: 180px;
  }
  .finan-radio-cards {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .finan-panel {
    padding: 48px 22px 44px;
    border-radius: var(--r-lg);
  }
  .finan-panel__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1080px) {
  .finan-porque {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .finan-porque__media {
    max-width: 340px;
    margin: 0 auto;
  }
}

@media (max-width: 520px) {
  .finan-porque__stats {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1080px) {
  .finan-woo {
    grid-template-columns: 1fr;
  }
  .finan-woo__pedido {
    position: static;
  }
}

@media (max-width: 520px) {
  .finan-woo__pedido,
  .finan-woo__recibido {
    padding: 22px 18px;
  }
}

@media (max-width: 1080px) {
  .finan-faqs {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .finan-faqs__media {
    max-width: 460px;
  }
}

@media (max-width: 520px) {
  .finan-faqs__media {
    padding: 0 0 40px 34px;
  }
  .finan-faqs__puntos {
    display: none;
  }
}

@media (max-width: 1080px) {
  .finan-metodo__figura {
    width: 220px;
    right: 22px;
  }
  .finan-metodo__texto {
    max-width: 62%;
  }
}

@media (max-width: 860px) {
  .finan-statband {
    grid-template-columns: 1fr;
  }
  .finan-statband__item {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    justify-content: flex-start;
  }
  .finan-statband__item:last-child {
    border-bottom: none;
  }
  .finan-metodo-sec {
    padding-top: 58px;
  }
  .finan-metodo {
    padding: 36px 24px 34px;
  }
  .finan-metodo__texto {
    max-width: none;
  }
  .finan-metodo__figura {
    display: none;
  }
}

@media (max-width: 860px) {
  .finan-hero__flecha {
    width: 38px;
    height: 38px;
  }
  .finan-hero__flecha--izq {
    left: 8px;
  }
  .finan-hero__flecha--der {
    right: 8px;
  }
  .finan-hero__panel {
    top: auto;
    bottom: 0;
    width: 100%;
    height: 58%;
  }
  .finan-hero__grid {
    grid-template-columns: 1fr;
    gap: 0;
    padding-top: 44px;
  }
  .finan-hero__texto {
    padding-bottom: 34px;
  }
  .finan-hero h1 {
    max-width: none;
  }
  .finan-hero__figura img {
    max-height: 320px;
  }
  .finan-hero__aro {
    display: none;
  }
  .finan-hero__puntos {
    left: 16px;
    bottom: 16px;
  }
}

@media (max-width: 860px) {
  .finan-oculto-movil {
    display: none;
  }
  .finan-footer__nav-col {
    display: none;
  }
}

/* ------------------------------------------------------------
   AJUSTES DEL MÓVIL PROPIOS DE ESTA VERSIÓN

   Las piezas que en React eran componentes sueltos aquí viven
   dentro de contenedores de Elementor, así que necesitan un par
   de reglas más para caer en el mismo sitio.
   ------------------------------------------------------------ */
@media (max-width: 860px) {
  .finan-hero__col { padding-bottom: 0; }

  /* La figura vuelve a verse, apoyada sobre la banda de color */
  .finan-hero__figura { display: flex; }
  .finan-hero__cuadro { width: 82%; height: 70%; }

  /* La barra del convenio ocupa el ancho útil */
  .finan-overbar { width: 100%; margin: 18px auto 0; padding: 16px 18px; }
  .finan-overbar__left { min-width: 0; }
  .finan-overbar__left > div { min-width: 0; }

  /* Rejillas que en el diseño eran componentes */
  .finan-panel__grid { grid-template-columns: 1fr; }
  .finan-grid--5 { grid-template-columns: repeat(2, 1fr); }
  .finan-stats-band { grid-template-columns: repeat(2, 1fr); }
  .finan-checkout,
  .finan-contact-grid { grid-template-columns: 1fr; gap: 30px; }
  .finan-summary { position: static; }
  .finan-radio-cards { grid-template-columns: 1fr; }
  .finan-teacher__head { flex-direction: column; align-items: flex-start; }
  .finan-ense { grid-template-columns: 1fr; }

  /* Igual que en el diseño: estas secciones no se muestran */
  .finan-oculto-movil { display: none !important; }
}

@media (max-width: 520px) {
  .finan-grid--5 { grid-template-columns: 1fr; }
  .finan-stats-band { grid-template-columns: 1fr; }
}

/* Entradas de menú que solo se ven en el desplegable del móvil */
.finan-solo-movil { display: none; }
@media (max-width: 767px) {
  .elementor-nav-menu--dropdown .finan-solo-movil { display: block; }
}

/* El desplegable del menú ocupa todo el ancho de la pantalla */
@media (max-width: 767px) {
  .finan-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown {
    position: fixed;
    left: 0;
    right: 0;
    top: 66px;
    width: 100%;
    max-width: 100%;
    box-shadow: 0 18px 48px rgba(16, 26, 38, 0.12);
    border-top: 1px solid var(--linea);
  }
}

/* ------------------------------------------------------------
   IMÁGENES CON ALTURA PROPIA

   Elementor fija «.elementor img { height: auto }», que gana por
   especificidad a una clase suelta. Estas piezas necesitan su alto,
   así que se repiten con el elemento delante.
   ------------------------------------------------------------ */
img.finan-overbar__logo { height: 46px; width: auto; max-width: 45%; }
img.finan-metodo__figura { height: calc(100% + 54px); width: 290px; }
.finan-hero__figura img { height: auto; }
@media (max-width: 860px) {
  img.finan-overbar__logo { height: 40px; max-width: 40%; }
}

/* ============================================================
   PORTADA CON WIDGETS DE ELEMENTOR
   El diseño es el mismo; cambian los selectores porque ahora cada
   pieza es un widget que el cliente edita sobre el lienzo.
   ============================================================ */

/* ---------- Slider principal ---------- */
.finan-hero-sec {
  position: relative;
  overflow: hidden;
  background: var(--tile-2);
}
/* Panel de color de la mitad derecha, con su aro */
.finan-hero-sec::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 44%;
  background:
    radial-gradient(circle at calc(100% - 40px) 170px, transparent 128px, rgba(255, 255, 255, 0.16) 128px, rgba(255, 255, 255, 0.16) 130px, transparent 130px),
    linear-gradient(150deg, var(--navy-900), var(--navy) 55%, #17557a);
}
/* Trama de puntos dentro del panel */
.finan-hero-sec::after {
  content: '';
  position: absolute;
  right: calc(44% - 152px);
  bottom: 46px;
  width: 118px;
  height: 100px;
  background-image: radial-gradient(rgba(111, 212, 230, 0.55) 2.5px, transparent 2.5px);
  background-size: 16px 16px;
}
.finan-hero-sec > .e-con-inner,
.finan-hero-sec > .elementor-element { position: relative; z-index: 2; }

.finan-hero-sec .finan-hero__figura .elementor-widget-image img {
  max-height: 452px;
  width: auto;
  display: block;
  margin: 0 auto;
}
.finan-hero-sec .finan-hero__figura { align-self: flex-end; }

/* Prueba social */
.finan-hero__prueba .elementor-icon-box-wrapper {
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-radius: 10px;
  box-shadow: var(--sombra-xs);
  padding: 8px 18px 8px 8px;
  align-items: center;
}
.finan-hero__prueba .elementor-icon-box-description { margin-top: 1px; }

/* ---------- Barra del convenio ---------- */
.finan-convenio__logo img { border-right: 1px solid var(--linea); padding-right: 18px; }

/* ---------- Tarjetas de servicio ---------- */
.finan-scard .finan-scard__photo img { border-radius: var(--r); display: block; width: 100%; }
.finan-scard .finan-scard__list .elementor-icon-list-item { align-items: flex-start; }
.finan-scard--dark .finan-scard__list .elementor-icon-list-icon,
.finan-scard--accent .finan-scard__list .elementor-icon-list-icon {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  display: grid;
  place-items: center;
  margin-top: 1px;
}
.finan-scard--dark .finan-scard__list .elementor-icon-list-icon { background: rgba(255, 255, 255, 0.14); }
.finan-scard--accent .finan-scard__list .elementor-icon-list-icon { background: rgba(13, 30, 51, 0.12); }
.finan-scard--dark .finan-scard__list .elementor-icon-list-icon svg,
.finan-scard--accent .finan-scard__list .elementor-icon-list-icon svg { width: 10px; height: 10px; }

/* ---------- Franja de cifras ---------- */
.finan-statband { overflow: hidden; position: relative; }
.finan-statband::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(60% 130% at 100% 0%, rgba(12, 159, 192, 0.24), transparent 62%);
  pointer-events: none;
}
.finan-statband .finan-statband__item {
  position: relative;
  z-index: 2;
  padding: 30px 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
  transition: background 0.22s var(--ease);
  margin: 0;
}
.finan-statband .finan-statband__item:last-child { border-right: none; }
.finan-statband .finan-statband__item:hover { background: rgba(255, 255, 255, 0.05); }
.finan-statband .elementor-icon-box-wrapper { align-items: center; }

/* ---------- Metodología ---------- */
.finan-metodo { position: relative; overflow: visible; }
.finan-metodo .finan-metodo__texto { max-width: 60%; }
.finan-metodo .finan-metodo__figura-w {
  position: absolute;
  right: 44px;
  bottom: 0;
  width: 290px;
  z-index: 2;
}
.finan-metodo .finan-metodo__figura-w img {
  width: 290px;
  height: 340px;
  object-fit: cover;
  object-position: center 22%;
  border-radius: var(--r-lg);
  box-shadow: var(--sombra-lg);
  margin-bottom: -28px;
}

/* ---------- Así se vive FINAN ---------- */
.finan-ense { overflow: hidden; box-shadow: var(--sombra); min-height: 0; display: block; }
.finan-ense > .finan-slide { min-height: 440px; }
.finan-ense .finan-ense__media { background: var(--tile); }
.finan-ense .finan-ense__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.finan-ense .finan-ense__media .elementor-widget-image,
.finan-ense .finan-ense__media .elementor-widget-container { height: 100%; }
.finan-ense .finan-ense__panel { justify-content: center; }

/* ---------- Fichas de contacto ---------- */
.finan-contact-info__item .elementor-icon-box-wrapper {
  background: var(--tile-2);
  border-radius: var(--r-sm);
  padding: 13px 16px;
  align-items: center;
}
.finan-contact-info__item .elementor-icon-box-title { margin-bottom: 2px; }

/* ---------- Formulario de Elementor ---------- */
.finan-form .elementor-field-group > label { margin-bottom: 6px; }
.finan-form .elementor-field-textual {
  padding: 12px 14px;
  border: 1px solid var(--linea-2);
  border-radius: var(--r-sm);
  background: var(--blanco);
}
.finan-form .elementor-field-textual:focus {
  outline: none;
  border-color: var(--cian);
  box-shadow: 0 0 0 3px var(--cian-50);
}
.finan-form .elementor-button { padding: 15px 26px; }

@media (max-width: 860px) {
  .finan-hero-sec::before { top: auto; bottom: 0; width: 100%; height: 58%; }
  .finan-hero-sec::after { right: 16px; bottom: 16px; }
  .finan-hero-sec .finan-hero__grid { flex-direction: column; gap: 0; padding-top: 44px; }
  .finan-hero-sec .finan-hero__figura .elementor-widget-image img { max-height: 320px; }
  .finan-convenio__logo img { border-right: 0; padding-right: 0; }
  .finan-metodo .finan-metodo__texto { max-width: none; }
  .finan-metodo .finan-metodo__figura-w { display: none; }
  .finan-statband { flex-direction: column; }
  .finan-statband .finan-statband__item {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }
  .finan-statband .finan-statband__item:last-child { border-bottom: none; }
  .finan-porque { flex-direction: column; }
  .finan-contact-grid { flex-direction: column; }
  .finan-ense > .finan-slide { flex-direction: column; min-height: 0; }
}

/* ------------------------------------------------------------
   CONVIVENCIA CON LOS CONTENEDORES DE ELEMENTOR

   Varias clases del diseño definían la rejilla (display:grid) porque
   en React eran divs sueltos. Aquí el contenedor de Elementor ya trae
   su propia disposición y sus anchos, así que la clase se queda solo
   con el aspecto y el reparto lo hace Elementor.
   ------------------------------------------------------------ */
.e-con.finan-hero__grid,
.e-con.finan-panel__grid,
.e-con.finan-porque,
.e-con.finan-statband,
.e-con.finan-metodo,
.e-con.finan-contact-grid,
.e-con.finan-ense,
.e-con.finan-ense > .finan-slide,
.e-con.finan-contact-info,
.e-con.finan-checkout {
  display: flex;
  grid-template-columns: none;
}

/* Elementor pinta su capa de fondo en ::before, con inset a cero.
   El panel del slider necesita recuperar su anclaje a la derecha. */
.finan-hero-sec::before {
  left: auto;
  height: auto;
  display: block;
}

/* La entrada «Aula virtual» solo existe en el desplegable del móvil */
.elementor-nav-menu > li.finan-solo-movil { display: none; }
@media (max-width: 767px) {
  .elementor-nav-menu--dropdown .elementor-nav-menu > li.finan-solo-movil { display: block; }
}

/* La foto de la tarjeta de servicio es un widget de imagen: el alto
   va en la imagen, no en el contenedor del widget. */
.finan-scard .finan-scard__photo { height: auto; }
.finan-scard .finan-scard__photo img {
  height: 158px;
  object-fit: cover;
  width: 100%;
  border-radius: var(--r);
}

/* Solo se ve la diapositiva activa, también cuando el slide es un
   contenedor de Elementor. */
.e-con.finan-slide { display: none; }
.e-con.finan-slide.is-active { display: flex; }
.e-con.finan-ense > .finan-slide { display: none; }
.e-con.finan-ense > .finan-slide.is-active { display: flex; }

/* La figura de metodología sobresale por arriba del panel */
.finan-metodo .finan-metodo__figura-w { height: calc(100% + 54px); }
.finan-metodo .finan-metodo__figura-w img { height: 100%; margin-bottom: 0; }
.finan-metodo .finan-metodo__figura-w .elementor-widget-container { height: 100%; }

/* Bloques con ancho máximo que van centrados en su sección */
.finan-centro { margin-left: auto !important; margin-right: auto !important; }

/* Los dos paneles de «Así se vive FINAN» van pegados */
.e-con.finan-ense > .finan-slide { gap: 0; }

/* El panel del slider en móvil: banda de color al pie.
   Va al final para que no lo pise la regla base de ::before. */
@media (max-width: 860px) {
  .finan-hero-sec::before {
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 58%;
  }
  .finan-hero-sec::after { right: 16px; bottom: 16px; }
}

/* ---------- Sobre Nosotros con widgets ---------- */
.finan-member .finan-member__foto img {
  width: 100%;
  aspect-ratio: 6 / 7;
  object-fit: cover;
  display: block;
}
.finan-hito:last-child { border-bottom: 0 !important; }
.e-con.finan-cta-band { display: flex; position: relative; overflow: hidden; }
.finan-cta-band > * { position: relative; z-index: 2; }
@media (max-width: 860px) {
  .finan-hito { flex-wrap: wrap; }
}

/* Columna del año fija en la línea de tiempo */
.finan-hito > .elementor-widget-icon { flex: 0 0 auto; }
.finan-hito > .elementor-widget-heading { flex: 0 0 150px; }
@media (max-width: 860px) {
  .finan-hito > .elementor-widget-heading { flex: 0 0 auto; }
}

/* ---------- Artículo del blog ---------- */
.finan-post-portada img {
  width: 100%;
  height: 460px;
  object-fit: cover;
  border-radius: var(--r);
  display: block;
}
.finan-post-body h2 {
  font-family: var(--fuente-titulo);
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin: 30px 0 12px;
}
.finan-post-body h3 {
  font-family: var(--fuente-titulo);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--ink);
  margin: 24px 0 10px;
}
.finan-post-body p { margin-bottom: 16px; }
.finan-post-body ul,
.finan-post-body ol { margin: 0 0 18px 20px; }
.finan-post-body li { margin-bottom: 8px; }
.finan-post-body a { color: var(--cian-700); text-decoration: underline; }

/* ---------- Contacto del pie ----------
   Elementor pinta los enlaces con su color global; aquí van en el
   mismo tono que el resto del pie. */
.finan-footer-contacto p { margin: 0 0 6px; }
.finan-footer-contacto p:last-child { margin-bottom: 0; }
.finan-footer-contacto a { color: rgba(255, 255, 255, 0.62); }
.finan-footer-contacto a:hover { color: #6fd4e6; }

/* ---------- Páginas legales ---------- */
.finan-legal p { margin: 0 0 14px; }
.finan-legal p:last-child { margin-bottom: 0; }
.finan-legal ul,
.finan-legal ol { margin: 0 0 14px 22px; }
.finan-legal li { margin-bottom: 8px; }
.finan-legal strong { color: var(--ink); font-weight: 600; }
.finan-legal a { color: var(--cian-700); text-decoration: underline; }

