/* Kike Digital — tokens de marca (tomados de su landing real) */
:root{
  --bg:#0a0a0f;
  --bg-card:#13131a;
  --border:#1e1e2e;
  --text:#e4e4ed;
  --text-dim:#8888a0;
  --accent:#00d4aa;
  --accent2:#7c3aed;
  --hero-zoom:1.06;
}

*{box-sizing:border-box}
html{scroll-behavior:auto} /* Lenis controla el scroll; sin esto se pelean */
html,body{overflow-x:hidden} /* red de seguridad: nada debe poder empujar la pagina a lo ancho */
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:'Inter',system-ui,sans-serif;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* ===== CAPA 0: video ===== */
.hero-video-layer{position:fixed;inset:0;z-index:0;overflow:hidden;background:var(--bg)}
.hero-video-layer video{
  width:100%;height:100%;object-fit:cover;
  transform:scale(var(--hero-zoom));
  will-change:transform;
  opacity:0;transition:opacity .6s ease;
}
.hero-video-layer video.is-ready{opacity:1}

.hero-scrim{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(0,0,0,0) 35%, rgba(0,0,0,.55) 100%),
    linear-gradient(to bottom, rgba(10,10,15,.35), rgba(10,10,15,.15) 45%, rgba(10,10,15,.75));
}

/* ===== CAPA 2: contenido ===== */
main{position:relative;z-index:1}

.hero{
  min-height:100vh;display:grid;
  /* minmax(0,1fr) es CLAVE: con `place-content:center` a secas la columna se dimensiona a
     max-content, el contenido mas ancho la estira y la pagina entera desborda a lo ancho
     (el navegador se aleja para encajar y todo se ve "cargado hacia un lado"). */
  grid-template-columns:minmax(0,1fr);
  place-content:center;justify-items:center;
  text-align:center;padding:120px 1.5rem 80px;gap:.6rem;
}
.hero > *{max-width:100%}
.badge{
  display:inline-block;padding:.4rem .9rem;border-radius:999px;
  border:1px solid rgba(0,212,170,.35);background:rgba(0,212,170,.08);
  color:var(--accent);font-size:.82rem;font-weight:600;letter-spacing:.02em;
}
.hero h1{
  font-size:clamp(2rem,6vw,4.4rem);line-height:1.05;font-weight:900;
  margin:1rem 0 .4rem;max-width:18ch;letter-spacing:-.02em;
}
.gradient{
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero p{max-width:60ch;color:var(--text-dim);font-size:clamp(1rem,2vw,1.15rem);margin:0 0 1rem}
.btn-group{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.btn{
  padding:.85rem 1.7rem;border-radius:999px;text-decoration:none;
  font-weight:700;font-size:.95rem;transition:transform .2s,box-shadow .2s;
}
.btn-primary{
  background:var(--accent);color:#06231d;
  box-shadow:0 0 0 rgba(0,212,170,0);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,212,170,.35)}
.btn-outline{border:1px solid var(--border);color:var(--text);background:rgba(19,19,26,.6)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}
.scroll-hint{margin-top:2.4rem;color:var(--text-dim);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}

.panel{
  min-height:100vh;display:grid;
  grid-template-columns:minmax(0,1fr); /* ver comentario en .hero: evita el desborde a lo ancho */
  place-content:center;justify-items:center;
  padding:8vw 1.5rem;
  background:linear-gradient(to bottom, rgba(10,10,15,.86), rgba(10,10,15,.96));
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border-top:1px solid var(--border);
}
.panel > *{max-width:100%}
.panel.final{text-align:center;justify-items:center}
.section-header{max-width:760px;margin:0 auto 3rem;text-align:center}
.section-header .label{
  color:var(--accent);font-size:.8rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:.8rem;
}
.section-header h2{font-size:clamp(1.6rem,4vw,2.8rem);line-height:1.15;margin:0 0 .8rem;font-weight:800}
.section-header p{color:var(--text-dim);font-size:1.05rem;margin:0}

.cards{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));width:100%;max-width:1080px}
.card{
  background:rgba(19,19,26,.92);border:1px solid var(--border);border-radius:18px;
  padding:1.8rem 1.5rem;transition:transform .25s,border-color .25s;
}
.card:hover{transform:translateY(-4px);border-color:rgba(0,212,170,.4)}
.card .icon{font-size:1.8rem;margin-bottom:.6rem}
.card h3{margin:0 0 .5rem;font-size:1.1rem}
.card .price{font-size:1.7rem;font-weight:800;color:var(--accent)}
.card .price span{font-size:.85rem;font-weight:500;color:var(--text-dim)}
.card .subtitle{color:var(--text-dim);font-size:.9rem}
.card.wide{grid-column:1/-1}
.card ul{margin:.8rem 0 0;padding-left:1.1rem;color:var(--text-dim)}
.card ul li{margin:.35rem 0}
.panel.final .btn{margin-top:2rem}

/* ===== Accesibilidad: quien pide menos movimiento ve el poster, no el video ===== */
@media (prefers-reduced-motion: reduce){
  .hero-video-layer{display:none}
  body{background:var(--bg) url('public/hero-poster.jpg') center/cover no-repeat fixed}
  .scroll-hint{display:none}
}

@media (max-width:640px){
  .hero{padding:100px 1.2rem 60px}
  .panel{padding:14vw 1.2rem}
  /* Con la version vertical del video el encuadre ya encaja: sobra poco, no hace
     falta el overscale grande que se usaba con el video horizontal. */
  .hero-video-layer video{--hero-zoom:1.04}
}
