/**
 * ByteFactura — Diseño Minimalista Ejecutivo (Sitio Público)
 */
:root {
  --fondo: #FFFFFF;
  --superficie: #F8FAFC;
  --superficie-2: #F1F5F9;
  --tinta: #090D16;
  --tinta-2: #1E293B;
  --texto: #475569;
  --tenue: #64748B;
  --borde: #E2E8F0;
  --borde-fuerte: #CBD5E1;

  --acento: #1D4ED8;
  --acento-hover: #1E40AF;
  --acento-suave: #EFF6FF;
  --verde: #059669;
  --verde-suave: #ECFDF5;

  --f-titulo: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --f-cuerpo: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --f-mono: 'JetBrains Mono', monospace;

  --max: 1200px;
  --pad: clamp(1.25rem, 4vw, 2.5rem);
  --radio: 12px;
  --radio-lg: 18px;
  --sombra-sm: 0 1px 2px rgba(9, 13, 22, 0.04);
  --sombra-md: 0 12px 32px -8px rgba(9, 13, 22, 0.07), 0 2px 6px rgba(9, 13, 22, 0.03);
  --sombra-lg: 0 24px 48px -12px rgba(9, 13, 22, 0.12);
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--f-cuerpo);
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--tinta);
  background-color: var(--fondo);
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

ul, ol { list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: none; }

.contenedor {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.oculto { display: none !important; }
.mono, .num { font-family: var(--f-mono); font-variant-numeric: tabular-nums; }

.saltar {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--tinta);
  color: #fff;
  padding: 0.5rem 1rem;
  z-index: 999;
}
.saltar:focus { left: 1rem; top: 1rem; }

/* ==========================================================================
   1. CABECERA Y NAVEGACIÓN SUPERIOR (ARREGLADA Y MINIMALISTA)
   ========================================================================== */
.cab {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--borde);
}

.cab-fila {
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.marca {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--f-titulo);
  font-weight: 700;
  font-size: 1.08rem;
  letter-spacing: -0.025em;
  color: var(--tinta);
  flex-shrink: 0;
}

.marca-simbolo {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--tinta);
  color: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(9, 13, 22, 0.16);
}

.nav-movil {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 1;
  gap: 1.5rem;
}

.nav-principal {
  display: flex;
  align-items: center;
}

.nav {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.nav-enlace {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0.85rem;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--texto);
}

.nav-enlace:hover {
  color: var(--tinta);
  background: var(--superficie);
}

.item-desplegable { position: relative; }

.panel-prod {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  width: 620px;
  background: #FFFFFF;
  border: 1px solid var(--borde);
  border-radius: 14px;
  padding: 0.75rem;
  box-shadow: var(--sombra-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: all 0.18s ease;
}

.item-desplegable.abierto .panel-prod {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.panel-prod-rejilla {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem;
}

.prod-enlace {
  display: block;
  padding: 0.75rem 0.9rem;
  border-radius: 10px;
  transition: background 0.15s ease;
}

.prod-enlace:hover {
  background: var(--superficie);
}

.prod-enlace-tit {
  font-family: var(--f-titulo);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--tinta);
  margin-bottom: 0.15rem;
}

.prod-enlace-sub {
  font-size: 0.78rem;
  color: var(--tenue);
  line-height: 1.4;
}

.prod-enlace-destacado {
  background: var(--superficie);
  border: 1px solid var(--borde);
}
.prod-enlace-destacado:hover {
  background: var(--acento-suave);
  border-color: #BFDBFE;
}

.cab-acciones {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.btn-cab-ingreso {
  padding: 0.5rem 0.9rem;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--texto);
  border-radius: 8px;
}
.btn-cab-ingreso:hover {
  color: var(--tinta);
  background: var(--superficie);
}

.btn-cab-prueba {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1.1rem;
  background: var(--tinta);
  color: #FFFFFF;
  font-size: 0.86rem;
  font-weight: 600;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(9, 13, 22, 0.14);
}
.btn-cab-prueba:hover {
  background: var(--acento);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(29, 78, 216, 0.22);
}

.hamb {
  display: none;
  padding: 0.45rem;
  color: var(--tinta);
  border-radius: 8px;
}

/* ==========================================================================
   2. BOTONES EJECUTIVOS
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.7rem 1.35rem;
  border-radius: 10px;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.18s ease;
}

.btn-lg {
  padding: 0.9rem 1.65rem;
  font-size: 0.95rem;
  border-radius: 11px;
}

.btn-bloque {
  width: 100%;
}

.btn-primario {
  background: var(--tinta);
  color: #FFFFFF;
  box-shadow: 0 4px 14px rgba(9, 13, 22, 0.14);
}
.btn-primario:hover {
  background: var(--acento);
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(29, 78, 216, 0.24);
}

.btn-secundario {
  background: #FFFFFF;
  color: var(--tinta);
  border-color: var(--borde-fuerte);
  box-shadow: var(--sombra-sm);
}
.btn-secundario:hover {
  background: var(--superficie);
  border-color: var(--tinta);
}

.btn-blanco {
  background: #FFFFFF;
  color: var(--tinta);
}
.btn-blanco:hover {
  background: #F1F5F9;
  transform: translateY(-1px);
}

.btn-contorno-claro {
  background: transparent;
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.25);
}
.btn-contorno-claro:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: #FFFFFF;
}

/* ==========================================================================
   3. PORTADA PRINCIPAL (HERO MINIMALISTA DE ALTO NIVEL)
   ========================================================================== */
.portada {
  position: relative;
  padding: clamp(4rem, 8vw, 6.5rem) 0 clamp(3rem, 6vw, 5rem);
  background: radial-gradient(ellipse 80% 50% at 50% -15%, rgba(29, 78, 216, 0.07), transparent), var(--fondo);
  border-bottom: 1px solid var(--borde);
}

.portada-centro {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

.portada-insignia {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.4rem 0.95rem;
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--tinta-2);
  margin-bottom: 1.75rem;
  box-shadow: var(--sombra-sm);
}
.portada-insignia:hover {
  border-color: var(--borde-fuerte);
  background: #FFFFFF;
}

.portada-insignia-punto {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--verde);
  box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.16);
}

.portada-insignia-flecha {
  color: var(--tenue);
  font-weight: 600;
}

.portada-titulo {
  font-family: var(--f-titulo);
  font-weight: 700;
  font-size: clamp(2.35rem, 5vw, 3.85rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
  color: var(--tinta);
  margin-bottom: 1.35rem;
}

.portada-subtitulo {
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.65;
  color: var(--texto);
  max-width: 640px;
  margin: 0 auto 2.25rem;
}

.portada-acciones {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  flex-wrap: wrap;
}

.portada-garantias {
  margin-top: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  font-size: 0.82rem;
  color: var(--tenue);
}

.portada-garantias .sep { color: var(--borde-fuerte); }

/* Barra de Métricas */
.metricas-barra {
  margin-top: clamp(3rem, 6vw, 4.5rem);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #FFFFFF;
  border: 1px solid var(--borde);
  border-radius: var(--radio-lg);
  box-shadow: var(--sombra-md);
  overflow: hidden;
}

.metrica-item {
  padding: 1.5rem 1.75rem;
  border-right: 1px solid var(--borde);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.metrica-item:last-child { border-right: none; }

.metrica-valor {
  font-family: var(--f-titulo);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  color: var(--tinta);
}

.metrica-etiqueta {
  font-size: 0.83rem;
  color: var(--tenue);
}

/* ==========================================================================
   4. SECCIONES, PILARES Y MÓDULOS
   ========================================================================== */
.seccion-eyebrow {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--acento);
  margin-bottom: 0.65rem;
}

.seccion-cab {
  max-width: 680px;
  margin-bottom: 3rem;
}

.seccion-cab h2 {
  font-family: var(--f-titulo);
  font-size: clamp(1.75rem, 3.2vw, 2.4rem);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -0.03em;
  color: var(--tinta);
  margin-bottom: 0.85rem;
}

.seccion-cab p {
  font-size: 1.02rem;
  color: var(--texto);
}

.pilares {
  padding: clamp(4rem, 7vw, 6rem) 0;
  background: var(--superficie);
  border-bottom: 1px solid var(--borde);
}

.pilares-rejilla, .modulos-catalogo {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.25rem;
}

.pilar-tarjeta {
  background: #FFFFFF;
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  padding: 1.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  box-shadow: var(--sombra-sm);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.pilar-tarjeta:hover {
  transform: translateY(-2px);
  box-shadow: var(--sombra-md);
  border-color: var(--borde-fuerte);
}

.pilar-num {
  font-family: var(--f-mono);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--tenue);
  letter-spacing: 0.06em;
}

.pilar-tarjeta h3 {
  font-family: var(--f-titulo);
  font-size: 1.12rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--tinta);
}

.pilar-tarjeta p {
  font-size: 0.9rem;
  color: var(--texto);
  line-height: 1.6;
  flex: 1;
}

.pilar-enlace {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--tinta);
  margin-top: 0.35rem;
}
.pilar-enlace:hover { color: var(--acento); }

/* ==========================================================================
   5. EXPLORADOR INTERACTIVO DE LOS 7 MÓDULOS
   ========================================================================== */
.exp {
  padding: clamp(4.5rem, 7vw, 6.5rem) 0;
  border-bottom: 1px solid var(--borde);
}

.exp-cab {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 2rem;
  margin-bottom: 2.5rem;
  flex-wrap: wrap;
}

.exp-cab h2 {
  font-family: var(--f-titulo);
  font-size: clamp(1.75rem, 3.2vw, 2.35rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.exp-cab p {
  max-width: 380px;
  font-size: 0.95rem;
  color: var(--texto);
}

.exp-marco {
  display: grid;
  grid-template-columns: 290px 1fr;
  border: 1px solid var(--borde);
  border-radius: var(--radio-lg);
  background: #FFFFFF;
  box-shadow: var(--sombra-md);
  overflow: hidden;
}

.exp-lista {
  background: var(--superficie);
  border-right: 1px solid var(--borde);
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.exp-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: 0.8rem 0.95rem;
  border-radius: 9px;
  text-align: left;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--texto);
  transition: all 0.15s ease;
}

.exp-item:hover {
  color: var(--tinta);
  background: rgba(9, 13, 22, 0.04);
}

.exp-item.activo {
  background: #FFFFFF;
  color: var(--tinta);
  font-weight: 600;
  box-shadow: var(--sombra-sm);
  border: 1px solid var(--borde);
}

.exp-num {
  font-family: var(--f-mono);
  font-size: 0.76rem;
  color: var(--tenue);
}

.exp-nom { flex: 1; }

.exp-flecha {
  opacity: 0;
  transform: translateX(-4px);
  transition: all 0.15s ease;
  color: var(--acento);
}
.exp-item.activo .exp-flecha {
  opacity: 1;
  transform: translateX(0);
}

.exp-lienzo {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.exp-vista { display: none; }
.exp-vista.activo { display: block; }

.exp-vista-cab {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--borde);
  font-size: 0.85rem;
  color: var(--tenue);
}

.exp-vista-cab a {
  font-weight: 600;
  color: var(--acento);
}

.exp-kpi-fila, .exp-edades {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.exp-kpi, .exp-edades > div {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 10px;
  padding: 1rem 1.15rem;
}

.exp-kpi small, .exp-edades small {
  display: block;
  font-size: 0.76rem;
  color: var(--tenue);
  margin-bottom: 0.25rem;
}

.exp-kpi strong, .exp-edades strong {
  font-family: var(--f-mono);
  font-size: 1.12rem;
  font-weight: 600;
  color: var(--tinta);
}

.exp-tabla {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}

.exp-tabla th {
  text-align: left;
  padding: 0.65rem 0.75rem;
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--tenue);
  border-bottom: 1px solid var(--borde);
}

.exp-tabla td {
  padding: 0.85rem 0.75rem;
  border-bottom: 1px solid var(--borde);
  color: var(--tinta-2);
}

.exp-tabla tfoot td {
  font-weight: 600;
  background: var(--superficie);
}

.exp-tabla .num { text-align: right; }

.punto {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--tenue);
  margin-right: 0.45rem;
}
.punto.ok { background: var(--verde); }

/* ==========================================================================
   6. PLANES Y PRECIOS
   ========================================================================== */
.precios {
  padding: clamp(4.5rem, 7vw, 6.5rem) 0;
  background: var(--superficie);
  border-bottom: 1px solid var(--borde);
}

.precios-cab {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 2rem;
  margin-bottom: 2.75rem;
  flex-wrap: wrap;
}

.precios-cab h2 {
  font-family: var(--f-titulo);
  font-size: clamp(1.75rem, 3.2vw, 2.35rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  margin-bottom: 0.4rem;
}

.precios-cab .sub {
  color: var(--texto);
  font-size: 0.96rem;
}

.precios-controles {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.tabs-prod {
  display: inline-flex;
  background: #FFFFFF;
  padding: 0.3rem;
  border-radius: 10px;
  border: 1px solid var(--borde);
}

.tab-btn {
  padding: 0.5rem 0.95rem;
  border-radius: 7px;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--texto);
  transition: all 0.15s ease;
}

.tab-btn.activo {
  background: var(--tinta);
  color: #FFFFFF;
  font-weight: 600;
}

.ciclo {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.85rem;
  font-weight: 500;
}

.ciclo-etq.inactivo { color: var(--tenue); }
.ciclo-etq b {
  color: var(--verde);
  font-weight: 600;
}

.interruptor {
  width: 42px;
  height: 24px;
  border-radius: 999px;
  background: var(--borde-fuerte);
  position: relative;
  transition: background 0.2s ease;
}
.interruptor::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #FFFFFF;
  transition: transform 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.interruptor.activo { background: var(--tinta); }
.interruptor.activo::after { transform: translateX(18px); }

.rejilla-planes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 1.5rem;
}

.plan {
  background: #FFFFFF;
  border: 1px solid var(--borde);
  border-radius: var(--radio-lg);
  padding: 2.15rem;
  display: flex;
  flex-direction: column;
  box-shadow: var(--sombra-sm);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.plan:hover {
  transform: translateY(-3px);
  box-shadow: var(--sombra-md);
}

.plan.destacado {
  border: 1.5px solid var(--tinta);
  box-shadow: var(--sombra-md);
}

.plan-tope {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.plan-tope h3 {
  font-family: var(--f-titulo);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--tinta);
}

.plan-marca {
  font-size: 0.73rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: var(--tinta);
  color: #FFFFFF;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
}

.plan-precio {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
  margin-bottom: 0.35rem;
}

.plan-moneda {
  font-family: var(--f-mono);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--texto);
}

.plan-cifra {
  font-family: var(--f-titulo);
  font-size: 2.5rem;
  font-weight: 700;
  letter-spacing: -0.035em;
  color: var(--tinta);
  line-height: 1;
}

.plan-periodo {
  font-size: 0.85rem;
  color: var(--tenue);
  margin-left: 0.2rem;
}

.plan-nota {
  font-size: 0.8rem;
  color: var(--tenue);
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--borde);
}

.plan-lista {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 2rem;
  flex: 1;
}

.plan-lista li {
  font-size: 0.9rem;
  color: var(--tinta-2);
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}

.plan-lista li::before {
  content: '✓';
  color: var(--verde);
  font-weight: 700;
  flex-shrink: 0;
}

.plan-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.25rem;
  border-radius: 10px;
  font-size: 0.9rem;
  font-weight: 600;
  background: var(--superficie);
  color: var(--tinta);
  border: 1px solid var(--borde-fuerte);
}

.plan-cta:hover {
  background: var(--tinta);
  color: #FFFFFF;
  border-color: var(--tinta);
}

.plan.destacado .plan-cta {
  background: var(--tinta);
  color: #FFFFFF;
  border-color: var(--tinta);
}
.plan.destacado .plan-cta:hover {
  background: var(--acento);
  border-color: var(--acento);
}

/* Tabla comparativa */
.comparativa-bloque {
  margin-top: 4rem;
  background: #FFFFFF;
  border: 1px solid var(--borde);
  border-radius: var(--radio-lg);
  padding: 2rem;
}

.comparativa-bloque h3 {
  font-family: var(--f-titulo);
  font-size: 1.25rem;
  margin-bottom: 1.25rem;
}

.tabla-comparativa {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.tabla-comparativa th, .tabla-comparativa td {
  padding: 0.9rem 1rem;
  border-bottom: 1px solid var(--borde);
  text-align: left;
}

.tabla-comparativa th {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--tenue);
}

.tabla-comparativa .centro { text-align: center; }
.tabla-comparativa .ok { font-weight: 600; color: var(--tinta); }

/* ==========================================================================
   7. PÁGINAS INTERNAS (PRECIOS, NOSOTROS, CONTACTO, PRODUCTOS)
   ========================================================================== */
.pagina-hero {
  padding: clamp(3.5rem, 6vw, 5rem) 0 clamp(2.5rem, 4vw, 3.5rem);
  background: var(--superficie);
  border-bottom: 1px solid var(--borde);
  text-align: center;
}

.pagina-hero h1 {
  font-family: var(--f-titulo);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.12;
  max-width: 760px;
  margin: 0 auto 1rem;
}

.pagina-hero p {
  font-size: 1.08rem;
  color: var(--texto);
  max-width: 620px;
  margin: 0 auto;
}

.seccion-contenido {
  padding: clamp(3.5rem, 6vw, 5.5rem) 0;
}

.nosotros-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 3rem;
  align-items: center;
}

.nosotros-historia h2 {
  font-family: var(--f-titulo);
  font-size: 1.75rem;
  margin-bottom: 1rem;
}

.nosotros-historia p {
  color: var(--texto);
  margin-bottom: 1rem;
  font-size: 1rem;
}

.nosotros-cifras {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.cifra-caja {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  padding: 1.35rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.cifra-caja strong {
  font-family: var(--f-titulo);
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--tinta);
  min-width: 95px;
}

.cifra-caja span {
  font-size: 0.9rem;
  color: var(--texto);
}

/* Contacto */
.contacto-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 2rem;
  align-items: flex-start;
}

.contacto-lateral {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.tarjeta-sitio {
  background: #FFFFFF;
  border: 1px solid var(--borde);
  border-radius: var(--radio-lg);
  padding: 2.25rem;
  box-shadow: var(--sombra-sm);
}

.tarjeta-sitio h2, .tarjeta-sitio h3 {
  font-family: var(--f-titulo);
  font-size: 1.35rem;
  font-weight: 700;
  margin-bottom: 0.35rem;
}

.tarjeta-sub {
  font-size: 0.9rem;
  color: var(--tenue);
  margin-bottom: 1.5rem;
}

.tarjeta-oscura {
  background: var(--tinta);
  color: #FFFFFF;
  border-color: var(--tinta);
}
.tarjeta-oscura .tarjeta-sub { color: #94A3B8; }

.form-sitio {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.form-fila-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.campo-sitio label {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  margin-bottom: 0.4rem;
}

.campo-sitio input,
.campo-sitio select,
.campo-sitio textarea {
  width: 100%;
  padding: 0.65rem 0.9rem;
  border-radius: 9px;
  border: 1px solid var(--borde-fuerte);
  background: #FFFFFF;
  color: var(--tinta);
  font-size: 0.92rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.tarjeta-oscura .campo-sitio input {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
}

.campo-sitio input:focus,
.campo-sitio select:focus,
.campo-sitio textarea:focus {
  outline: none;
  border-color: var(--acento);
  box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.12);
}

.check-sitio {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.84rem;
  color: var(--texto);
  cursor: pointer;
}
.check-sitio a { text-decoration: underline; color: var(--tinta); }

.canales-lista {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  margin-top: 1rem;
}
.canales-lista small {
  display: block;
  font-size: 0.76rem;
  color: var(--tenue);
}
.canales-lista strong {
  font-size: 0.92rem;
  color: var(--tinta);
}

.alerta-sitio {
  padding: 1rem 1.25rem;
  border-radius: 10px;
  margin-bottom: 1.5rem;
  font-size: 0.92rem;
  font-weight: 500;
}
.alerta-exito { background: var(--verde-suave); color: #065F46; border: 1px solid #A7F3D0; }
.alerta-error { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }

/* ==========================================================================
   8. PREGUNTAS FRECUENTES, CIERRE Y PIE DE PÁGINA
   ========================================================================== */
.faq {
  padding: clamp(4.5rem, 7vw, 6rem) 0;
  border-bottom: 1px solid var(--borde);
}

.faq-cols {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 3rem;
}

.faq-izq h2 {
  font-family: var(--f-titulo);
  font-size: clamp(1.65rem, 3vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  margin-bottom: 0.75rem;
}

.faq-izq p { color: var(--texto); font-size: 0.95rem; }
.faq-izq a { color: var(--acento); font-weight: 600; }

.faq-der {
  display: flex;
  flex-direction: column;
}

.faq-item {
  border-bottom: 1px solid var(--borde);
  padding: 1.25rem 0;
}

.faq-item summary {
  font-family: var(--f-titulo);
  font-size: 1.02rem;
  font-weight: 600;
  color: var(--tinta);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: '+';
  font-family: var(--f-mono);
  font-size: 1.2rem;
  color: var(--tenue);
}
.faq-item[open] summary::after { content: '−'; }

.faq-item p {
  margin-top: 0.75rem;
  color: var(--texto);
  font-size: 0.92rem;
  line-height: 1.65;
}

.cierre {
  padding: clamp(3.5rem, 6vw, 5rem) 0;
}

.cierre-caja {
  background: var(--tinta);
  color: #FFFFFF;
  border-radius: 20px;
  padding: clamp(2.5rem, 5vw, 4rem);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2.5rem;
  flex-wrap: wrap;
  box-shadow: var(--sombra-lg);
}

.cierre-eyebrow {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #93C5FD;
  margin-bottom: 0.5rem;
}

.cierre-texto { max-width: 560px; }

.cierre-texto h2 {
  font-family: var(--f-titulo);
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  margin-bottom: 0.65rem;
}

.cierre-texto p {
  color: #94A3B8;
  font-size: 0.98rem;
}

.cierre-acciones {
  display: flex;
  gap: 0.85rem;
  flex-wrap: wrap;
}

/* Pie de página */
.pie {
  background: var(--superficie);
  border-top: 1px solid var(--borde);
  padding: 4rem 0 2.5rem;
  font-size: 0.88rem;
  color: var(--texto);
}

.pie-superior {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 2.5rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--borde);
}

.pie-desc {
  margin-top: 0.85rem;
  max-width: 300px;
  color: var(--tenue);
  font-size: 0.86rem;
}

.pie-enlaces-col {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.pie-enlaces-col h4 {
  font-family: var(--f-titulo);
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--tinta);
  margin-bottom: 0.35rem;
}

.pie-enlaces-col a {
  color: var(--tenue);
  font-size: 0.86rem;
}
.pie-enlaces-col a:hover { color: var(--tinta); }

.pie-linea {
  padding-top: 1.75rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.82rem;
  color: var(--tenue);
}

/* ==========================================================================
   9. RESPONSIVE
   ========================================================================== */
@media (max-width: 960px) {
  .metricas-barra { grid-template-columns: 1fr 1fr; }
  .metrica-item:nth-child(2) { border-right: none; }
  .metrica-item:nth-child(1), .metrica-item:nth-child(2) { border-bottom: 1px solid var(--borde); }
  .exp-marco { grid-template-columns: 1fr; }
  .exp-lista { border-right: none; border-bottom: 1px solid var(--borde); flex-direction: row; overflow-x: auto; }
  .exp-item { white-space: nowrap; width: auto; }
  .nosotros-grid, .contacto-grid, .faq-cols { grid-template-columns: 1fr; }
  .pie-superior { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 780px) {
  .hamb { display: inline-flex; }
  .nav-movil {
    position: fixed;
    top: 72px;
    left: 0;
    right: 0;
    background: #FFFFFF;
    border-bottom: 1px solid var(--borde);
    padding: 1.25rem var(--pad);
    flex-direction: column;
    align-items: stretch;
    box-shadow: var(--sombra-lg);
    display: none;
  }
  .nav-movil.abierto { display: flex; }
  .nav { flex-direction: column; align-items: stretch; width: 100%; }
  .panel-prod { position: static; width: 100%; opacity: 1; visibility: visible; transform: none; box-shadow: none; display: none; margin-top: 0.5rem; }
  .item-desplegable.abierto .panel-prod { display: block; }
  .panel-prod-rejilla { grid-template-columns: 1fr; }
  .cab-acciones { flex-direction: column; width: 100%; pt: 0.75rem; border-top: 1px solid var(--borde); padding-top: 1rem; }
  .btn-cab-ingreso, .btn-cab-prueba { width: 100%; justify-content: center; }
  .form-fila-2 { grid-template-columns: 1fr; }
  .metricas-barra { grid-template-columns: 1fr; }
  .metrica-item { border-right: none !important; border-bottom: 1px solid var(--borde); }
  .metrica-item:last-child { border-bottom: none; }
  .pie-superior { grid-template-columns: 1fr; }
}

/* Tabla comparativa desplazable en celular */
.tabla-contenedor { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tabla-comparativa { min-width: 560px; }
@media (max-width: 600px) { .comparativa-bloque { padding: 1.25rem; } }

/* Páginas legales */
.texto-legal { max-width: 620px; }
.texto-legal h2 {
  font-family: var(--f-titulo);
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  color: var(--tinta);
  margin: 2.5rem 0 0.75rem;
}
.texto-legal h2:first-child { margin-top: 0; }
.texto-legal p, .texto-legal li { color: var(--texto); font-size: 1rem; line-height: 1.75; max-width: 620px; text-wrap: pretty; }
.texto-legal ul { padding-left: 1.25rem; margin: 0.75rem 0; }
.texto-legal a { color: var(--tinta); text-decoration: underline; }
.pagina-hero h1 { text-wrap: balance; }

/* ==========================================================================
   MEJORAS 2026-10-27: mismos colores, más orden y legibilidad
   ========================================================================== */
:root { --f-mono: var(--f-cuerpo); }
body { font-size: 1rem; }
p { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }
.mono, .num { font-variant-numeric: tabular-nums; letter-spacing: 0; }

/* Portada: sin degradado, titular más grande en dos líneas */
.portada { background: var(--fondo); }
.portada-titulo { font-size: clamp(2.5rem, 1rem + 4.6vw, 4.75rem); line-height: 1.04; max-width: 16ch; margin-inline: auto; }
.metricas-barra, .exp-marco { box-shadow: var(--sombra-sm); }

/* Botones planos en reposo; el movimiento queda en el hover */
.btn, .btn-primario, .btn-secundario, .btn-cab-prueba, .btn-blanco, .plan-cta { box-shadow: none; }
.btn:hover, .btn-cab-prueba:hover, .plan-cta:hover { transform: translateY(-2px); }
.pilar-tarjeta, .plan, .cifra-caja, .tarjeta-sitio { box-shadow: none; }
.pilar-tarjeta:hover, .plan:hover { box-shadow: var(--sombra-md); transform: translateY(-3px); }

/* Ningún texto por debajo de 13px */
.metrica-etiqueta, .exp-kpi small, .exp-tabla th, .exp-edades small, .plan-nota, .pie-linea,
.tabla-comparativa th, .ciclo-etq, .plan-marca, .prod-enlace-sub, .canales-lista small, .campo-sitio label { font-size: 0.8125rem; }
.ciclo-etq b { color: var(--acento); }

/* El explorador de módulos se desplaza en pantallas angostas en vez de romper la página */
.exp-lienzo { min-width: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.exp-tabla { min-width: 520px; }

/* Texto corrido a una medida cómoda */
.seccion-cab p, .pagina-hero p, .faq-izq p, .cierre-texto p, .pilar-tarjeta p { max-width: 62ch; }

/* Entradas al bajar por la página (el contenido se ve sin JavaScript) */
@media (prefers-reduced-motion: no-preference) {
  .con-js .revela { opacity: 0; transform: translateY(22px); }
  .con-js .revela.visto { opacity: 1; transform: none; transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1) var(--d, 0ms), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) var(--d, 0ms); }
  .exp-vista.activo { animation: exp-entra 0.45s cubic-bezier(0.16, 1, 0.3, 1); }
}
@keyframes exp-entra { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 640px) {
  .portada-titulo { font-size: clamp(2.25rem, 9.5vw, 2.75rem); }
  .seccion-cab h2, .exp-cab h2, .precios-cab h2, .faq-izq h2, .cierre-texto h2 { font-size: 1.75rem; }
}