:root{
  --blue:#1e3a8a;
  --blue-2:#1e40af;
  --blue-3:#3b82f6;
  --blue-deep:#142b6a;        /* azul más oscuro para headings */
  --gold:#f59e0b;
  --gold-2:#d97706;
  --text:#0b1324;
  --muted:#6b7280;
  --card:#10224b;
  --border:rgba(255,255,255,.18);
  --heading-font:'Poppins', Inter, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;
  color:var(--text); background:#fff;
}
a{color:inherit; text-decoration:none}
.container{width:min(1160px,92%); margin-inline:auto}

/* ================= Header ================= */
.header{
  position:fixed; inset-inline:0; top:0; z-index:50;
  transition:transform .35s ease;
}
.header__inner{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:12px 0;
}
.brand{display:flex; align-items:center; gap:.6rem; font-size:1.15rem}
.nav{display:flex; gap:1rem; align-items:center}
.nav a{color:#fff; opacity:.9}
.nav a:hover{opacity:1}
.header__cta{display:flex; align-items:center}

/* ================= Buttons ================= */
.btn{
  border:1px solid transparent; border-radius:999px;
  padding:10px 16px; font-weight:700; cursor:pointer;
  display:inline-flex; align-items:center; gap:.6rem;
  transition:transform .15s ease, box-shadow .2s ease, opacity .2s, filter .2s;
}
.btn i{font-size:1.1rem}
.btn:hover{transform:translateY(-1px)}
.btn--ghost{background:transparent; border-color:var(--border); color:#fff}
.btn--gold{color:#fff; background:linear-gradient(135deg, var(--gold), var(--gold-2))}
.btn--xl{padding:16px 26px; font-size:1.1rem}
.btn--wa{
  width:64px; height:64px; border-radius:50%;
  background:#22c55e; color:#fff; font-size:28px;
  box-shadow:0 12px 50px rgba(0,0,0,.25);
}

/* Pulso suave para CTA del header */
@keyframes softPulse {
  0%   { box-shadow:0 0 0 0 rgba(245,158,11,.35); filter:brightness(1); }
  70%  { box-shadow:0 0 0 14px rgba(245,158,11,0); filter:brightness(1.05); }
  100% { box-shadow:0 0 0 0 rgba(245,158,11,0); filter:brightness(1); }
}
.btn--pulse{ animation: softPulse 2.4s ease-out infinite; }

/* ================= Glass ================= */
.glass-effect{
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--border);
}
.glass-effect-header{
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  background-color: rgba(29, 58, 138, 0.75);
  border-bottom: 1px solid rgba(255, 255, 255, 0.125);
}
.text-gradient{
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ================= Hero ================= */
.gradient-bg{
  position:relative; color:#fff;
  background:linear-gradient(135deg, var(--blue) 0%, var(--blue-2) 50%, var(--blue-3) 100%);
}
.hero{min-height:100vh; display:grid; align-items:center}
.hero__overlay{position:absolute; inset:0; background:rgba(0,0,0,.28)}
.hero__blob{
  position:absolute; border-radius:50%; filter:blur(28px); opacity:.6;
  animation: float 6s ease-in-out infinite;
}
.hero__blob--a{width:130px;height:130px; background:rgba(245,158,11,.35); left:6%; top:16%}
.hero__blob--b{width:190px;height:190px; background:rgba(255,255,255,.14); right:6%; bottom:12%; animation-delay:2s}
.hero__grid{
  position:relative; z-index:1; display:grid; gap:48px;
  grid-template-columns:1.2fr .8fr; padding:86px 0 46px;
}

/* Título principal */
.hero__title{
  font-family:var(--heading-font);
  font-weight:900;
  letter-spacing:-0.01em;
  font-size:clamp(49px,6vw,90px);
  line-height:1.05; margin:.2rem 0 .8rem;
}
.hero__subtitle{
  font-family:var(--heading-font);
  font-weight:900; color:var(--gold);
  font-size:clamp(22px,3.4vw,40px);
  margin:.2rem 0 1rem;
}
.hero__desc{font-size:clamp(16px,2.2vw,22px); color:rgba(255,255,255,.92); margin:0 0 22px; max-width:700px}

/* Stats IA */
.stats{list-style:none; padding:0; margin:20px 0 0}
.stats--ai{
  display:grid; grid-template-columns:1fr; gap:12px; width:100%;
}
.ai-pill{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px; min-height:58px;
  border:1px solid var(--border); border-radius:14px;
  background:rgba(255,255,255,.06); color:#dbeafe; backdrop-filter: blur(6px);
}
.ai-pill i{font-size:20px; color:#fff; flex:0 0 auto}
.ai-text{display:flex; flex-direction:column; min-width:0}
.ai-text strong{color:#fff; font-weight:800; line-height:1.1}
.ai-text small{color:#dbeafe; opacity:.95; line-height:1.1}

/* Chart mock */
.hero__art{display:grid; place-items:center}
.card{
  width:100%; max-width:460px; background:rgba(255,255,255,.06);
  border:1px solid var(--border); border-radius:18px; padding:18px;
  position:relative; box-shadow:0 10px 40px rgba(0,0,0,.25);
}
.chart{height:260px; overflow:hidden}
.chart__bars{display:flex; align-items:flex-end; gap:10px; height:100%}
.chart__bars i{
  display:block; width:36px; height:var(--h,40%);
  background:linear-gradient(180deg, rgba(44,115,210,.35), rgba(44,115,210,.12));
  border:1px solid rgba(44,115,210,.35); border-radius:10px;
}
.chart__glow{
  position:absolute; inset:0;
  background:radial-gradient(400px 160px at 20% 30%, rgba(44,115,210,.18), transparent 60%);
  pointer-events:none;
}

/* ================= Section titles ================= */
.section-title{
  font-family:var(--heading-font);
  font-weight:900;
  color:var(--blue-deep);
  font-size:clamp(28px,4.6vw,56px);
  text-align:center;
  margin:0 0 10px;
}
.section-title--xl{ font-size:clamp(32px,5.6vw,64px); }

/* ================= Features (cards) ================= */
.features{
  /* móvil: 1 por fila (cards apiladas) */
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  align-items:stretch;
  padding:40px 0;
}
.feature{
  background:#fff;
  border:1px solid #e5e7eb;
  border-left:4px solid var(--gold);
  border-radius:18px;
  padding:22px;
  box-shadow:0 4px 14px rgba(0,0,0,.06);
  display:flex;
  flex-direction:column;
  min-height:220px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.feature__icon{
  width:64px; height:64px; border-radius:14px;
  display:grid; place-items:center;
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:#fff;
  margin-bottom:14px;
}
.feature__icon i{ font-size:30px; line-height:1; }
.feature h3{
  font-family:var(--heading-font); font-weight:800; color:var(--blue-deep);
  margin:8px 0 6px;
  font-size:clamp(1rem, .9rem + .5vw, 1.15rem);
  line-height:1.15;
}
.feature p{ color:#445; line-height:1.5; margin:0; }

@media (hover:hover){
  .feature:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 24px rgba(0,0,0,.08);
  }
}

/* ================= Gestión ================= */
.section--invert{color:#fff}
.gestion{display:grid; grid-template-columns:1.1fr .9fr; gap:36px; padding:64px 0}
.gestion h2{
  font-family:var(--heading-font); font-weight:900; color:#fff;
  font-size:clamp(28px,4.2vw,48px); margin:0 0 12px
}
.lead{color:rgba(255,255,255,.9); font-size:1.1rem; margin:0 0 18px}
.checks{list-style:none; padding:0; margin:0; display:grid; gap:10px}
.checks li{display:flex; align-items:center; gap:10px}
.checks i{color:var(--gold)}
.panel{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; padding:22px}
.panel__item{background:rgba(255,255,255,.06); border:1px solid var(--border); border-radius:14px; text-align:center; padding:18px}
.panel__item i{font-size:36px; color:var(--gold); display:block; margin:0 auto 8px}

/* ================= CTA final ================= */
.cta{padding:56px 0; text-align:center}
.cta p{color:var(--muted); margin:8px 0 16px}

/* ================= Footer ================= */
.footer{background:#0f1f47; color:#dbeafe; margin-top:36px}
.footer__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding:28px 0}
.footer__title{display:block; font-weight:800; margin-bottom:10px; color:#fff; font-family:var(--heading-font)}
.footer__list{list-style:none; padding:0; margin:0}
.footer__list li{margin:6px 0; display:flex; gap:8px; align-items:center}
.footer .brand strong{font-family:var(--heading-font); font-weight:800}
.footer__copy{border-top:1px solid rgba(255,255,255,.12); text-align:center; padding:14px; color:#bcd1f6}
/* Footer: móvil todo a la izquierda */
@media (max-width: 980px){
  .footer__grid{
    grid-template-columns: 1fr;   /* 1 columna en móvil */
    place-items: start;            /* = align-items:start + justify-items:start */
    text-align: left;              /* textos a la izquierda */
  }
  .footer__title,
  .footer__list,
  .footer__list li,
  .footer__copy{
    text-align: left;
  }
}

/* ================= Float WhatsApp ================= */
.whatsapp-float{
  position: fixed;
  bottom: max(20px, env(safe-area-inset-bottom));
  right:  max(20px, env(safe-area-inset-right));
  z-index: 9999;
}

/* ================= Toast ================= */
.toast{
  position:fixed; right:16px; top:16px; z-index:80;
  background:#fff; color:#111827; border:1px solid #e5e7eb;
  border-radius:12px; padding:12px 14px; box-shadow:0 12px 30px rgba(0,0,0,.15);
  opacity:0; transform:translateY(-12px); pointer-events:none;
  transition:opacity .2s, transform .2s;
}
.toast.is-visible{opacity:1; transform:translateY(0)}

/* ================= Reveal on scroll ================= */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease}
.reveal.is-visible{opacity:1; transform:none}

/* ================= Animaciones base ================= */
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
@keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}

/* ================= Responsive ================= */
@media (max-width:980px){
  .hero__grid{grid-template-columns:1fr; gap:26px}
  /* OJO: no tocamos .features aquí para mantener 1 columna en móvil */
  .gestion{grid-template-columns:1fr; gap:22px}
  .footer__grid{grid-template-columns:1fr; text-align:center}
  .nav{display:none}
  .header__cta{display:flex}
  .btn--xl{font-size:1rem; padding:14px 20px}
}
/* Tablet: 2 columnas en features */
@media (min-width:768px){
  .features{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:22px; }
}
/* Desktop */
@media (min-width:980px){
  .stats--ai{grid-template-columns: repeat(2, minmax(0, 1fr));}
}
/* Desktop grande: 3 columnas en features */
@media (min-width:1024px){
  .features{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}

/* Botón WhatsApp: tamaño fijo + icono grande */
.btn--wa{
  width:54px; height:54px; border-radius:50%;
  background:#22c55e; color:#fff;
  display:flex; align-items:center; justify-content:center;
  line-height:0; box-shadow:0 14px 54px rgba(0,0,0,.28);
}
.btn--wa i{
  font-size:44px; line-height:1; display:block;
  transform:translate(-1px,-1px);
}

/* Charts KPI extra */
.chart--kpi .chart__header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:8px;
}
.chart--kpi .chart__title{
  display:flex; align-items:center; gap:8px;
  color:#fff; font-weight:800;
}
.chart--kpi .chart__title i{ font-size:18px; color:#ffd166; }
.chart--kpi .chart__meta{ color:rgba(255,255,255,.8); font-size:.85rem; }
.chart--kpi .chart__bars{
  display:flex; align-items:flex-end; gap:10px; height:200px;
}
.chart--kpi .chart__bars i{
  display:block; width:36px; height:var(--h,40%);
  background:linear-gradient(180deg, rgba(44,115,210,.35), rgba(44,115,210,.12));
  border:1px solid rgba(44,115,210,.35); border-radius:10px;
  transform-origin:bottom;
  animation:barsIn .8s ease-out both;
  animation-delay:calc(var(--i,0) * 90ms);
}
@keyframes barsIn{
  from{transform:scaleY(.1); opacity:.2;}
  to{transform:scaleY(1); opacity:1;}
}
.chart--kpi .chart__labels{
  display:flex; justify-content:space-between; gap:10px;
  margin-top:8px; color:#dbeafe; font-size:.8rem;
}
.chart--kpi .chart__labels span{
  display:block; width:36px; text-align:center;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* ===== KPI: números arriba + ejes ===== */
.chart--kpi .chart{ 
  position: relative; 
  padding-left: 36px;            /* espacio para eje Y y ticks */
}

/* Contenedor de barras con ejes y gridlines */
.chart--kpi .chart__bars{
  position: relative;
  border-bottom: 1px solid rgba(255,255,255,.24); /* eje X */
  padding-top: 18px;                              /* respiración para números arriba */
  background-image: repeating-linear-gradient(
    to top,
    rgba(255,255,255,.10) 0 1px,
    transparent 1px 40px
  ); /* líneas horizontales cada 40px aprox */
}

/* Eje Y (línea) */
.chart--kpi .chart__bars::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:1px;
  background: rgba(255,255,255,.24);
}

/* Cada barra posicionada para poder pintar el número */
.chart--kpi .chart__bars i{
  position: relative;
}

/* Número encima de cada barra (toma data-value) */
.chart--kpi .chart__bars i::after{
  content: attr(data-value);
  position: absolute;
  bottom: calc(100% + 6px);  /* justo sobre la barra */
  left: 50%;
  transform: translateX(-50%);
  font-size: .8rem;
  font-weight: 800;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
  white-space: nowrap;
}

/* Ticks/etiquetas del eje Y */
.chart--kpi .chart__y{
  position: absolute;
  left: 0;
  top: 0; 
  bottom: 0;
  width: 36px;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* distribuye 100–0 */
  align-items: flex-start;
  padding: 0 6px 24px 0; /* 24px para no chocar con eje X */
  margin: 0;
  list-style: none;
  color: #dbeafe;
  font-size: .75rem;
  pointer-events: none;
}

/* Opcional: en móvil, etiquetas más compactas */
@media (max-width: 480px){
  .chart--kpi .chart__y{ font-size: .7rem; }
}
