/* ===== Reset mínimo ===== */
*, *::before, *::after { box-sizing: border-box; }
html:focus-within { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
  color: #0b1020;
  background: #fff;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

html, body {
  overflow-x: hidden;
}

/* ===== Tokens ===== */
:root{
  --container: 1200px;
  --space-3: 1rem;
  --space-5: 2rem;
  --space-7: 4rem;

  --ink: #0b1020;
  --muted: #475569;
  --line: #e5e7eb;

  --primary: #6142ff;
  --primary-2: #9a5bff;

  --radius: 18px;
}

/* ===== Layout util ===== */
.container { max-width: var(--container); margin-inline: auto; padding: 0 var(--space-5); }

/* ===== Hero ===== */
.hero {
  position: relative;
  padding-block: clamp(4rem, 8vw, 8rem);
  text-align: center;
  color: var(--ink);
}
.hero__intro { display: grid; gap: var(--space-3); justify-items: center; }
.hero h1 {
  margin: 0;
  font-size: clamp(2rem, 2.8vw + 1rem, 3.25rem);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.hero .accent { color: #004DBC; }
.hero__lead {
  max-width: 62ch;
  margin: 0;
  color: var(--muted);
  font-size: clamp(1rem, 0.4vw + 1rem, 1.25rem);
}

.hero__cta {
  margin-top: var(--space-5);
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* Botones */
.btn {
  display: inline-block;
  padding: .95rem 1.35rem;
  border-radius: 999px;
  font-weight: 700;
  border: 2px solid transparent;
  line-height: 1;
}
.btn--primary {
  color: #fff;
  background: #8543D3;
  box-shadow: 0 10px 20px rgba(97,66,255,.25);
  transition: transform .15s ease;
}
.btn--primary:hover { transform: translateY(-1px); }
.btn--ghost {
  background: #fff;
  border-color: #8543D3;
  color: #8543D3;
}
.btn--ghost:hover { background: #f8f5ff; }

/* Decoraciones (avatares genéricos) */
.hero__decor { pointer-events: none; }
.avatar {
  position: relative;
  width: clamp(56px, 7vw, 86px);
  height: auto;
  border-radius: 999px;
  border: 3px solid var(--line);
  box-shadow: 0 8px 24px rgba(2,8,20,.09);
}
.avatar.tl { top: 8%;  left: 6%; }
.avatar.tr { top: 0; right: 6%; }      /* casi pegado arriba */
.avatar.bl { bottom: 18%; left: 14%; }
.avatar.br { bottom: 6%; right: 12%; } /* baja más */

/* Responsivo: reducir/ocultar decoraciones en móviles */
@media (max-width: 760px){
  .avatar.tl, .avatar.tr { display: none; }
  .avatar.bl { left: 6%; }
  .avatar.br { right: 6%; }
}

/* Preferencia de usuario: reducir movimiento */
@media (prefers-reduced-motion: reduce){
  html:focus-within { scroll-behavior: auto; }  * { animation: none !important; transition: none !important; }
}
/* ===== Escenario (panel azul 2 columnas) ===== */
.panel-blue{
  background:#004DBC; /* azul panel */
  color:#fff;
  border-radius:24px;
  padding:clamp(1.5rem, 3vw, 13rem);
}

/* botón contorno claro sobre azul */
.btn--outline-light{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.85);
}
.btn--outline-light:hover{
  background:rgba(255,255,255,.12);
}

/* ===== Visual (dispositivo + overlays) ===== */
.escenario__visual{
  position:relative;
  min-height:280px;
}

/* Dispositivo genérico */
.device{
  width:min(380px, 100%);
  margin-left:auto;
  border-radius:28px;
  padding:1.25rem 1.25rem 1.5rem;
  box-shadow:0 20px 40px rgba(0,0,0,.18);
}
.device__icons{display:flex;gap:.5rem;margin-bottom:.5rem}
.device__icons span{
  width:14px;height:14px;border-radius:4px;background:#e5e7eb;display:inline-block
}
.device__h{margin:.25rem 0 1rem 0;color:#0a53c7;font-size:1.25rem}
.skeleton.line{height:10px;background:#eef2f7;border-radius:6px;margin:.5rem 0}
.skeleton.line.short{width:70%}
.skeleton.line.tiny{height:8px}
.skeleton.line.tiny.short{width:55%}

/* Botón de ejemplo dentro del dispositivo */
.pill{
  display:inline-block;
  padding:.6rem 1rem;
  border-radius:999px;
  border:0;
  background:#8f5bff;
  color:#fff;
  font-weight:700;
  margin:1rem 0 .5rem 0;
}
.pill.success{background:#21a56a}
.demo-btn{background:#8f5bff}

/* Tarjeta de descuento */
.discount{
  border-radius:18px;
  padding:1rem;
  width:220px;
  position:static; /* móvil por defecto */
  margin-top:1rem;
}
.discount__value{
  font-size:2rem;
  font-weight:800;
  color:#0b1020;
  margin:.25rem 0 .5rem 0;
}

/* Chip */
.chip{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  border-radius:14px;
  padding:.7rem 1rem;
  width:max-content;
  margin-top:1rem;
}
.chip__icon{
  width:22px;height:22px;border-radius:999px;background:#ffd170;display:inline-block;
  box-shadow:inset 0 0 0 3px #ffebba;
}

/* ===== Posicionamiento overlay en pantallas grandes ===== */
@media (min-width: 900px){
  .escenario__visual .discount{
    position:absolute; left:-8%; top:28%;
  }
  .escenario__visual .chip{
    position:absolute; left:4%; bottom:8%;
  }
}

/* ===== Responsive columnas ===== */
@media (max-width: 1000px){
  .escenario__wrap{grid-template-columns:1fr}
  .escenario__text{text-align:left}
  .escenario__visual{margin-inline:auto;max-width:420px}
}
/* ===== Contenido dinámico (título + 3 cards) ===== */
#dinamico .dinamico__head h2{
  margin:0 0 .4rem 0;
  font-weight:700;
  letter-spacing:-.01em;
  font-size:clamp(1.6rem, 1.4vw + 1.2rem, 2.2rem);
}
#dinamico .dinamico__head .accent{ color:#1f57e7; }

.dyn-cards{
  display:grid;
  gap:clamp(1rem, 2.2vw, 2rem);
  grid-template-columns:repeat(3, 1fr);
  margin-top:clamp(1rem, 2vw, 1.5rem);
}

/* Figura/placeholder dentro de cada card */
.dyn-fig{
  aspect-ratio:4/3;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  border:1px dashed #d6d3f7;
  display:grid; place-items:center;
}
.dyn-fig img{ width:100%; height:100%; object-fit:cover; }

/* Responsive: 2 columnas / 1 columna */
@media (max-width: 1024px){
  .dyn-cards{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 640px){
  .dyn-cards{ grid-template-columns:1fr; }
}

/* ===== Panel lila del dashboard ===== */
.panel-lilac{
  --lilac-bg: #efe7ff;
  --lilac-line: #e2dbff;
  background: var(--lilac-bg);
  border-radius: 24px;
  padding: clamp(1.25rem, 3vw, 2rem);
}

/* Layout: texto a la izquierda, imagen grande a la derecha */
.analytics__wrap {
  display: grid;
  grid-template-columns: 1fr 1fr; /* columnas iguales */
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: center;
}


/* Título */
.analytics__text h2{
  margin: 0;
  font-weight: 800;
  letter-spacing: -.01em;
  font-size: clamp(1.4rem, 1.2vw + 1.1rem, 2rem);
  color: #1a237e;
}

/* Screenshot */
.analytics__shot{ margin: 0; }
.analytics__shot img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
  background: #fff;
  border: 1px solid var(--lilac-line);
  box-shadow: 0 22px 50px rgba(2,8,20,.12);
  object-fit: contain; /* respeta la imagen tal cual */
}

/* Responsive: apilar en una columna */
@media (max-width: 900px){
  .analytics__wrap{ grid-template-columns: 1fr; }
  .analytics__text{ text-align: left; }
}

/* ===== Testimonios ===== */
#testimonios h2{
  margin:0;
  font-weight:700;
  letter-spacing:-.01em;
  font-size:clamp(1.4rem,1.2vw + 1.1rem,2rem);
  color:#0b1020;
}

/* Reutiliza .panel-blue (ya definida). Ajustes locales: */
.t-panel{ padding:clamp(4rem, 2.6vw, 2rem); }

/* Grid de tarjetas dentro del panel */
.t-wrap{
  list-style:none;
  margin:0; padding:0;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:clamp(1rem, 2.5vw, 1.25rem);
}

/* Tarjeta individual */
.t-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:16px;
  padding:clamp(1rem, 2vw, 1.25rem);
  box-shadow:0 10px 24px rgba(2,8,20,.08);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  align-items:flex-start;
}

/* Avatar */
.t-head{ display:flex; align-items:center; }
.t-avatar{
  width:42px; height:42px; border-radius:999px;
  border:2px solid #e5e7eb; background:#eef1f5;
}

/* Texto del testimonio */
.t-quote{ margin:0; }
.t-quote p{
  margin:0 0 .75rem 0;
  color:#1f2937;
  font-size:clamp(.95rem, .3vw + .95rem, 1.05rem);
}
.t-meta{ color:#475569; font-size:.95rem; }
.t-meta strong{ color:#0b1020; }

/* Responsive: apilar tarjetas */
@media (max-width: 860px){
  .t-wrap{ grid-template-columns:1fr; }
}

/* ===== Features (grid de 6) ===== */
#features h2{
  margin:0;
  font-weight:700;
  letter-spacing:-.01em;
  font-size:clamp(1.4rem, 1.2vw + 1.1rem, 2rem);
  color: var(--ink, #0b1020);
}

.feat-grid{
  list-style:none;
  margin: clamp(1rem, 2vw, 1.5rem) 0 0;
  padding:0;
  display:grid;
  gap: clamp(1rem, 2vw, 1.25rem);
  grid-template-columns: repeat(3, 1fr);
}

.feat-card{
  background:#fff;
  border:1px solid var(--line, #e5e7eb);
  border-radius:14px;
  padding: clamp(1rem, 2vw, 1.25rem);
  box-shadow: 0 8px 20px rgba(2,8,20,.04);
  display:grid;
  grid-template-columns: auto 1fr;
  align-items:flex-start;
  gap: .9rem;
  min-height: 150px;
  transition: box-shadow .15s ease, transform .15s ease;
}

.feat-card:hover{
  box-shadow: 0 12px 28px rgba(2,8,20,.08);
  transform: translateY(-1px);
}

.feat-icon{
  color:#1f57e7;            /* color del ícono */
  display:grid;
  place-items:center;
  width:48px; height:48px;
  border-radius:12px;
  background:#eef2ff;       /* fondo suave detrás del ícono */
}

.feat-card h3{
  margin:.1rem 0 .25rem 0;
  font-size: clamp(1rem, .4vw + 1rem, 1.1rem);
  color: var(--ink, #0b1020);
}

.feat-card p{
  margin:0;
  color:#475569;
  font-size:.98rem;
}

/* Responsive */
@media (max-width: 1024px){
  .feat-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .feat-grid{ grid-template-columns: 1fr; }
  .feat-card{ grid-template-columns: 1fr; }
  .feat-icon{ margin-bottom:.5rem; }
}
/* ===== CTA final ===== */
.cta-final{
  text-align:center;
  margin-bottom: 4rem; /* aumenta el valor según el espacio que quieras */
 }


#cta-final h2{
  margin: 0;
  font-weight: 700;
  letter-spacing: -.01em;
  font-size: clamp(1.25rem, 1vw + 1.1rem, 1.75rem);
  color: #0f2e6d; /* azul título */
}

/* Espaciado y tamaño de botones en este bloque */
.cta-final__group{
  margin-top: .9rem;
  display: flex;
  gap: .8rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* Variante un pelín más pequeña que el hero */
#cta-final .btn{ padding: .75rem 1.1rem; }
#cta-final .btn--ghost{
  border-color: #c8b6ff;        /* borde violeta suave */
  color: #6b46ff;
}
#cta-final .btn--ghost:hover{ background:#f8f5ff; }

/* Ajuste mobile (opcional) */
@media (max-width: 520px){
  #cta-final .btn{ width: 100%; max-width: 320px; }
}

/* ===== Footer oscuro ===== */
.footer-dark{
  --footer-bg: #0b1a3a;         /* azul noche */
  --footer-ink: #ffffff;
  --footer-muted: rgba(255,255,255,.75);
  background: var(--footer-bg);
  color: var(--footer-ink);
  padding-block: clamp(2rem, 4vw, 4rem);
}

.footer__wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
}

/* Marca */
.footer__brand{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  text-decoration:none;
  color:inherit;
  min-width: 220px;
}
.footer__logo{ height:80px; width:auto; }  /* controla alto y mantiene proporción */

/* Redes */
.footer__social{
  display:flex;
  align-items:center;
  gap:.6rem;
}
.sicon{
  --size: 40px;
  width: var(--size);
  height: var(--size);
  display:grid;
  place-items:center;
  color:#fff;
  border:1.8px solid rgba(255,255,255,.85);
  border-radius:999px;
  transition: transform .15s ease, background .15s ease, color .15s ease;
}
.sicon:hover{
  background: rgba(255,255,255,.12);
  transform: translateY(-1px);
}

/* Responsive: centrar y apilar */
@media (max-width: 640px){
  .footer__wrap{
    justify-content: center;
    text-align:left;
  }
}

:root{ --section-gap: clamp(2rem, 5vw, 4.5rem); }  /* espacio entre secciones */

main{ display: grid; gap: var(--section-gap); }     /* separa los hijos directos de <main> */

.section{ 
  padding-block: clamp(.75rem, 1.8vw, 1.5rem);          /* aire interno (opcional) */
  scroll-margin-top: 80px;                          /* si tu header es sticky, ajusta a su alto */
}


/* contenedor de la columna derecha */
.escenario__visual{ display:flex; justify-content:flex-end; }

/* STAGE: todo se posiciona relativo al “teléfono” */
.escenario__stage{
  position: relative;
  width: min(380px, 100%);   /* mismo ancho que el teléfono */
  margin-left: auto;         /* pegado a la derecha de la columna */
}

/* Teléfono */
.device-img{ margin: 0; }
.device-img img{
  display:block; width:100%; height:auto;
  border-radius:28px; background:#fff; border:1px solid #e5e7eb;
  box-shadow:0 20px 40px rgba(0,0,0,.18); object-fit:contain;
}

/* Overlays posicionados en % del ancho del teléfono */
.discount-img{
  position:absolute; inset:auto;    /* reset */
  width: 52%;                       /* ancho del “30%” */
  left: -36%;                       /* lo saca a la izquierda del teléfono */
  top: 30%;
  margin:0;
}
.discount-img img{
  display:block; width:100%; height:auto;
  border-radius:18px; background:#fff; border:1px solid #e5e7eb; object-fit:contain;
}

.chip-img{
  position:absolute; inset:auto;
  width: 64%;                       /* ancho del chip */
  left: -12%;
  bottom: 6%;
  margin:0;
}
.chip-img img{
  display:block; width:100%; height:auto;
  border-radius:14px; background:#fff; border:1px solid #e5e7eb; object-fit:contain;
}

/* Móvil: que se apilen normal */
@media (max-width: 900px){
  .escenario__stage{ margin-inline:auto; }
  .discount-img, .chip-img{ position:static; width:auto; margin-top:1rem; }
}

/* Centrar encabezados de TODAS las secciones */
.section > .container > header {
  text-align: center;
}

/* ===== Dinámico: cards como el diseño ===== */

/* Grid igual, solo ajusto gap si lo querés idéntico */
.dyn-cards{ gap: 1.25rem; }

/* Card: fondo lila, bordes redondeados, título a la izquierda */
.dyn-card {
  background: none;      /* quitar el recuadro lila */
  box-shadow: none;      /* eliminar cualquier sombra */
  padding: 0;            /* sin espacio extra */
  border-radius: 0;      /* sin bordes redondeados */
  overflow: hidden;      /* asegura que la imagen se recorte bien */
}



.dyn-fig{
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  aspect-ratio: 4 / 5;       /* uniforma alturas */
  border-radius: 14px; 
  overflow: hidden;
}
.dyn-fig img{
  width: 100%;
  height: 100%;
  object-fit: contain;       /* no recorta; pueden quedar “bandas” lilas */
}

/* Los PNG dentro del contenedor de ícono */
.feat-icon{
  display:grid; place-items:center;
  width:48px; height:48px;
  border-radius:12px;
  background:#eef2ff;           /* si tus PNG ya traen fondo, puedes quitar esta línea */
}

.feat-icon img{
  width: 32px;                   /* ajusta 28–40px según tamaño de tus PNG */
  height: 32px;
  object-fit: contain;           /* no recorta */
  display:block;
}

/* Si tus PNG ya son circulares con su propio fondo, usa esto en su lugar: */
/*
.feat-icon{ background: transparent; }
.feat-icon img{ width:100%; height:100%; }
*/
/* ===== Features: estilo "tarjetas originales" ===== */
:root{
  --feat-stroke: #213b6a;          /* azul del borde */
  --feat-radius: 20px;             /* radio grande de las esquinas */
}

/* grid con respiración similar */
.feat-grid{
  gap: clamp(1rem, 2.2vw, 1.6rem);
}

/* tarjeta grande, sin sombra, con borde azul */
.feat-card{
  background:#fff;
  border: 2px solid var(--feat-stroke);
  border-radius: var(--feat-radius);
  box-shadow: none;
  padding: clamp(1.25rem, 2.2vw, 1.75rem);
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 1.25rem;
  min-height: 230px;               /* ajusta si tus textos son más largos */
  text-align: left;
}

/* icono a la izquierda, sin fondo */
.feat-icon{
  width: 72px; height: 72px;       /* tamaño del “cuadro” del icono */
  display: grid; place-items: center;
  background: transparent;
  border-radius: 12px;
}
.feat-icon img{
  width: 64px; height: 64px;       /* tamaño del PNG */
  object-fit: contain; display:block;
}

/* tipografía del contenido */
.feat-card h3{
  margin: .1rem 0 .35rem;
  font-weight: 800;
  font-size: clamp(1.05rem, .5vw + 1rem, 1.2rem);
  color:#0b1020;
}
.feat-card p{
  margin: 0;
  color:#0f294f;
  font-size: clamp(1rem, .35vw + 1rem, 1.1rem);
  line-height: 1.55;
  max-width: 36ch;                 /* ancho similar al diseño */
}

/* Responsivo: 3→2→1 columnas */
@media (max-width: 1024px){ .feat-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px){
  .feat-grid{ grid-template-columns: 1fr; }
  .feat-card{ grid-template-columns: 1fr; }
  .feat-icon{ width:64px; height:64px; }
  .feat-icon img{ width:56px; height:56px; }
}

/* HERO: mostrar PNGs tal cual, sin recorte ni redondeo extra */
.hero__decor .avatar{
  position:absolute;             /* como ya los usabas */
  display:block;
  max-width:none !important;     /* ignora img{max-width:100%} si lo tuvieras */
  height:auto !important;        /* mantiene la proporción original */
  border:0 !important;
  border-radius:0 !important;    /* NO redondear: tus PNG ya traen el círculo */
  object-fit:contain !important; /* nunca recorta */
  box-shadow:none;
}

/* Elegí SOLO el ancho de cada una (la altura se ajusta sola) */
.hero__decor .avatar.tl{ width:120px; top:8%;  left:6%;  }
.hero__decor .avatar.tr{ width:120px; top:10%; right:6%; }
.hero__decor .avatar.bl{ width:140px; bottom:18%; left:14%; }
.hero__decor .avatar.br{ width:135px; bottom:10%; right:12%; }

/* En móviles podés ocultar/ajustar como ya hacías */
@media (max-width: 760px){
  .hero__decor .avatar.tl, .hero__decor .avatar.tr { display:none; }
  .hero__decor .avatar.bl{ left:6%; width:120px; }
  .hero__decor .avatar.br{ right:6%; width:120px; }
}

/* 1) Asegurar jerarquía: CTAs arriba, decorativos atrás y sin capturar clicks */
.hero { position: relative; }
.hero__cta { position: relative; z-index: 2; }          /* botones por encima */
.hero__decor { position: absolute; inset: 0; z-index: 0; pointer-events: none; }

/* 2) Mobile: evita que crucen los botones */
@media (max-width: 640px){
  /* opción segura: ocultar los inferiores */
  .hero__decor .avatar.bl,
  .hero__decor .avatar.br { display: none; }

  /* si además querés achicar los superiores: */
  .hero__decor .avatar { width: 90px; }  /* ajusta a gusto */
}

/* 05/09 */ 
/* HERO: recuadro de fondo full-width sin mover nada */
#hero { position: relative; }

#hero::before{
  content:"";
  position: absolute;
  top: 0;
  bottom: 0;                 /* alto = alto del hero (según su contenido) */
  left: 50%;
  width: 100vw;              /* ocupa TODO el ancho de la ventana */
  transform: translateX(-50%);
  background: #EFF3FA;       /* color del fondo */
  pointer-events: none;
  z-index: -1;               /* detrás de TODO (no afecta avatares ni CTAs) */
}

#escenario {
  margin-bottom: 1rem; /* o lo que necesites */
}

#dashboard {
  margin-top: 0; /* eliminar padding superior si lo hubiera */
}

/* === Escenario (nuevo) === */
.escenario__wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;  /* dos columnas iguales */
  gap: 2rem;
  align-items: center;
}

.escenario__text {
  color: #fff; /* texto claro sobre panel azul */
}

.escenario__title {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.escenario__lead {
  margin-bottom: 1.5rem;
}

.escenario__image img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Responsive */
@media (max-width: 768px) {
  .escenario__wrap {
    grid-template-columns: 1fr; /* una columna */
    text-align: center;
  }
  
  .escenario__image {
    margin-top: 2rem;
  }
}

#dinamico h2 {
  line-height: 1.1; /* reduce el espacio entre líneas */
}
