/* Pagina publica: presentacion de marca. El rojo intenso y los degradados se
   reservan para esta zona; formularios y tablas de la app van sobre fondos claros. */

/* ---------- Hero ---------- */
.hero {
  position: relative; overflow: hidden; color: #fff;
  background: var(--degradado-marca);
}
.hero::before {
  content: ''; position: absolute; width: 760px; height: 760px; right: -220px; top: -260px; border-radius: 50%;
  background: radial-gradient(circle, rgb(239 35 60 / .55), transparent 62%); pointer-events: none;
}
.hero::after {
  content: ''; position: absolute; inset: auto 0 0 0; height: 120px;
  background: linear-gradient(to bottom, transparent, rgb(30 0 3 / .35)); pointer-events: none;
}
.hero .contenedor {
  position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
  gap: 48px; align-items: center; padding-top: 72px; padding-bottom: 88px;
}
.hero-texto { display: flex; flex-direction: column; gap: 22px; }
.hero-marca { display: flex; align-items: center; gap: 14px; }
.hero-marca img { width: 64px; height: auto; filter: drop-shadow(0 8px 18px rgb(0 0 0 / .4)); }
.hero-marca span { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #FFD5D8; }
.hero-marca b { display: block; font-size: 20px; letter-spacing: .01em; text-transform: none; color: #fff; font-weight: 800; }
.hero h1 { font-size: clamp(34px, 4.6vw, 56px); font-weight: 800; line-height: 1.05; letter-spacing: -.03em; max-width: 14ch; text-shadow: 0 2px 24px rgb(0 0 0 / .25); }
.hero-pilares { display: flex; flex-wrap: wrap; gap: 10px; }
.hero-pilares span {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px 9px 12px; border-radius: 999px;
  background: rgb(255 255 255 / .12); border: 1px solid rgb(255 255 255 / .28); font-weight: 700; font-size: 15px;
}
.hero-pilares svg { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: #fff; color: var(--rojo); box-sizing: border-box; }
.hero-texto > p { font-size: 17px; line-height: 1.6; color: #FFE4E6; max-width: 52ch; }
.hero-acciones { display: flex; flex-wrap: wrap; gap: 12px; }
.btn-blanco { background: #fff; color: var(--rojo-oscuro); box-shadow: 0 8px 20px -8px rgb(0 0 0 / .45); }
.btn-blanco:hover:not(:disabled) { background: #FFF1F2; color: var(--borgona); }
.btn-contorno-blanco { background: transparent; color: #fff; border-color: rgb(255 255 255 / .6); }
.btn-contorno-blanco:hover:not(:disabled) { background: rgb(255 255 255 / .12); color: #fff; border-color: #fff; }
.hero .btn:focus-visible { outline-color: #fff; }
.hero-nota { font-size: 13px; color: #FFD5D8; display: flex; align-items: flex-start; gap: 8px; }
.hero-nota svg { flex: none; margin-top: 2px; }

/* Vista ilustrativa del producto: piezas reales de la interfaz, sin datos de nadie. */
.vista-producto { position: relative; }
.vista-ventana {
  background: var(--bg-elevado); color: var(--texto); border-radius: 16px; overflow: hidden;
  box-shadow: 0 40px 80px -24px rgb(0 0 0 / .55), 0 0 0 1px rgb(255 255 255 / .12);
  display: grid; grid-template-columns: 150px minmax(0, 1fr); min-height: 380px;
}
.vista-lateral { background: var(--grafito); padding: 14px 10px; display: flex; flex-direction: column; gap: 4px; }
.vista-lateral img { width: 100%; height: auto; margin-bottom: 10px; }
.vista-lateral span { display: flex; align-items: center; gap: 8px; font-size: 11.5px; font-weight: 600; color: #C4C9D1; padding: 7px 8px; border-radius: 8px; }
.vista-lateral span.activo { background: var(--rojo); color: #fff; }
.vista-lateral svg { width: 14px; height: 14px; flex: none; }
.vista-contenido { padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.vista-cabecera { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.vista-cabecera b { font-size: 17px; font-weight: 800; letter-spacing: -.01em; }
.vista-cabecera .btn { min-height: 30px; padding: 5px 10px; font-size: 12px; pointer-events: none; }
.vista-filtros { display: flex; gap: 8px; }
.vista-filtros span { flex: 1; font-size: 11px; color: var(--texto-tenue); border: 1px solid var(--borde); border-radius: 8px; padding: 6px 8px; background: var(--bg-elevado); }
.vista-tabla { width: 100%; border-collapse: collapse; font-size: 11.5px; border: 1px solid var(--borde); border-radius: 10px; overflow: hidden; }
.vista-tabla th { text-align: left; background: var(--bg-sutil); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-suave); padding: 7px 8px; }
.vista-tabla td { padding: 8px; border-top: 1px solid var(--borde); vertical-align: middle; }
.vista-tabla td small { display: block; color: var(--texto-tenue); font-size: 10.5px; }
.vista-tabla .riesgo-badge { font-size: 10.5px; padding: 2px 7px; }
.vista-pie { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.vista-pie .badge { font-size: 10.5px; }
.vista-etiqueta { position: absolute; right: 12px; bottom: -28px; font-size: 12px; color: #FFD5D8; font-style: italic; }

@media (max-width: 960px) {
  .hero .contenedor { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-top: 48px; padding-bottom: 72px; }
  .hero h1 { max-width: 18ch; }
}
@media (max-width: 560px) {
  .hero .contenedor { padding-top: 36px; padding-bottom: 64px; }
  .hero-texto > p { font-size: 15.5px; }
  .hero-acciones .btn { flex: 1 1 100%; }
  .vista-ventana { grid-template-columns: 1fr; min-height: 0; }
  .vista-lateral { display: none; }
  .vista-tabla .col-opcional { display: none; }
}

/* ---------- Secciones ---------- */
.seccion { padding: 80px 0; }
.seccion-alterna { background: var(--bg-elevado); border-top: 1px solid var(--borde); border-bottom: 1px solid var(--borde); }
.seccion-cabecera { text-align: center; max-width: 680px; margin: 0 auto 40px; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.seccion-cabecera .antetitulo { font-size: 12.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--marca-fuerte); }
.seccion-cabecera h2 { font-size: clamp(26px, 3vw, 34px); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.seccion-cabecera p { color: var(--texto-suave); font-size: 16px; line-height: 1.6; }
@media (max-width: 560px) {
  .seccion { padding: 56px 0; }
}

.funciones-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.funcion { display: flex; flex-direction: column; gap: 10px; padding: 24px; transition: border-color .15s, box-shadow .15s, transform .15s; }
.funcion:hover { border-color: var(--marca-borde); box-shadow: var(--sombra-md); transform: translateY(-2px); }
.funcion-icono {
  width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: var(--degradado-marca); color: #fff; box-shadow: 0 8px 18px -8px rgb(215 25 32 / .7);
}
.funcion h3 { font-size: 16px; font-weight: 700; }
.funcion p { font-size: 14px; color: var(--texto-suave); line-height: 1.55; }

.pasos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; counter-reset: paso; position: relative; }
.pasos::before { content: ''; position: absolute; top: 24px; left: 12%; right: 12%; height: 2px; background: linear-gradient(90deg, var(--marca-borde), var(--marca), var(--marca-borde)); }
.paso { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.paso-numero {
  width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--marca); color: #fff; font-size: 19px; font-weight: 800; box-shadow: 0 0 0 6px var(--bg);
}
.seccion-alterna .paso-numero { box-shadow: 0 0 0 6px var(--bg-elevado); }
.paso b { font-size: 15px; }
.paso p { font-size: 14px; color: var(--texto-suave); line-height: 1.5; max-width: 26ch; }
@media (max-width: 860px) {
  .pasos { grid-template-columns: 1fr 1fr; row-gap: 32px; }
  .pasos::before { display: none; }
}
@media (max-width: 480px) {
  .pasos { grid-template-columns: 1fr; }
  .paso { flex-direction: row; text-align: left; align-items: flex-start; }
  .paso-numero { flex: none; }
  .paso p { max-width: none; }
}

/* Banda grafito: el logo de fondo oscuro se apoya en su propio color (#20242B). */
.banda-marca { background: var(--grafito); color: #E9EAED; }
.banda-marca .contenedor { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; padding-top: 40px; padding-bottom: 40px; }
.banda-marca img { width: 300px; height: auto; }
.banda-marca-texto { flex: 1 1 320px; display: flex; flex-direction: column; gap: 6px; }
.banda-marca-texto b { font-size: 20px; color: #fff; }
.banda-marca-texto p { font-size: 14.5px; color: #B9BEC7; line-height: 1.55; }
.banda-marca .btn:focus-visible { outline-color: #fff; }
@media (max-width: 560px) {
  .banda-marca img { width: 240px; }
  .banda-marca .btn { width: 100%; }
}

.precios-nota { text-align: center; color: var(--texto-tenue); font-size: 13px; margin-top: 20px; line-height: 1.6; }
