/* ============================================================
   sections.css — Estilos de cada sección de la landing
   Calandria Mora © 2025
   ============================================================ */

/* ── Hero ────────────────────────────────────────────────── */

.hero {
  min-height: 100svh;
  display: flex;
  align-items: center;
  padding: 120px 0 80px;
  position: relative;
  overflow: hidden;
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(123, 92, 240, .15);
  border: 1px solid rgba(123, 92, 240, .3);
  border-radius: 100px;
  padding: .3rem 1rem;
  font-size: .8rem;
  font-weight: 600;
  color: var(--cm-violet);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}
.hero-eyebrow .dot {
  width: 7px;
  height: 7px;
  background: var(--cm-teal);
  border-radius: 50%;
  animation: pulse 2s infinite;
}

.hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 6vw, 5rem);
  line-height: 1.1;
  letter-spacing: -.03em;
  color: #fff;
  margin-bottom: 1.5rem;
}

.hero-sub {
  font-size: 1.125rem;
  color: var(--cm-muted);
  max-width: 520px;
  margin-bottom: 2.5rem;
  line-height: 1.8;
}

.hero-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* Hero visual - card de código */
.hero-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-card {
  background: var(--cm-card);
  border: 1px solid var(--cm-border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  width: 100%;
  max-width: 420px;
  position: relative;
  overflow: hidden;
}
.hero-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(123, 92, 240, .1), transparent 60%);
  pointer-events: none;
}

/* Código animado */
.code-lines {
  font-family: var(--font-mono);
  font-size: .8rem;
}
.code-line {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .35rem 0;
}
.line-num  { color: var(--cm-muted); min-width: 20px; text-align: right; font-size: .75rem; }
.code-kw   { color: #a78bfa; }
.code-fn   { color: var(--cm-teal); }
.code-str  { color: #fb923c; }
.code-cm   { color: var(--cm-muted); font-style: italic; }
.code-dot  { color: #f472b6; }

.cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  background: var(--cm-teal);
  animation: blink 1s infinite;
  vertical-align: text-top;
  margin-left: 2px;
}

/* Stats dentro de la hero card */
.stats-row {
  display: flex;
  gap: 1.5rem;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--cm-border);
}
.stat-item { flex: 1; }
.stat-num {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  background: var(--cm-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.stat-label {
  font-size: .7rem;
  color: var(--cm-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* ── Servicios ───────────────────────────────────────────── */

.services { padding: var(--section-py) 0; }

.service-card {
  background: var(--cm-card);
  border: 1px solid var(--cm-border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  height: 100%;
  position: relative;
  overflow: hidden;
  transition: border-color .3s, transform .3s, box-shadow .3s;
}
.service-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(123, 92, 240, .05), transparent 70%);
  opacity: 0;
  transition: opacity .3s;
}
.service-card:hover {
  border-color: rgba(123, 92, 240, .4);
  transform: translateY(-6px);
  box-shadow: var(--shadow-card);
}
.service-card:hover::after { opacity: 1; }

.service-icon {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-md);
  display: grid;
  place-items: center;
  font-size: 1.4rem;
  margin-bottom: 1.25rem;
}
.service-icon.v { background: rgba(123, 92, 240, .18); color: var(--cm-violet); }
.service-icon.t { background: rgba(45, 212, 191, .15); color: var(--cm-teal);   }
.service-icon.i { background: rgba(79, 70, 229, .18);  color: #818cf8;          }
.service-icon.r { background: rgba(244, 63, 140, .15); color: var(--cm-rose);   }
.service-icon.a { background: rgba(251, 191, 36, .12); color: #fbbf24;          }
.service-icon.m { background: rgba(34, 211, 238, .12); color: #22d3ee;          }

.service-card h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: #fff;
  margin-bottom: .6rem;
}
.service-card p {
  font-size: .875rem;
  color: var(--cm-muted);
  line-height: 1.75;
}
.service-tag {
  display: inline-block;
  margin-top: 1.25rem;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cm-violet);
  background: rgba(123, 92, 240, .1);
  border-radius: 6px;
  padding: .25rem .65rem;
}

/* ── Proceso (How it works) ──────────────────────────────── */

.how {
  padding: var(--section-py) 0;
  background: linear-gradient(180deg, transparent, rgba(79, 70, 229, .04), transparent);
}

.step-wrap { position: relative; }

.step-num {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--cm-card);
  border: 2px solid rgba(123, 92, 240, .4);
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: var(--cm-violet);
  margin: 0 auto 1.25rem;
  position: relative;
  z-index: 1;
  box-shadow: var(--shadow-glow);
}
.step-title {
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: #fff;
  margin-bottom: .5rem;
}
.step-desc {
  font-size: .85rem;
  color: var(--cm-muted);
  line-height: 1.75;
}

/* ── Por qué Calandria Mora ──────────────────────────────── */

.why { padding: var(--section-py) 0; }

.why-card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.5rem;
  background: var(--cm-card);
  border: 1px solid var(--cm-border);
  border-radius: var(--radius-md);
  transition: border-color .3s;
  margin-bottom: 1rem;
}
.why-card:hover { border-color: rgba(45, 212, 191, .3); }
.why-icon { font-size: 1.5rem; color: var(--cm-teal); flex-shrink: 0; margin-top: .1rem; }
.why-card h4  { font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: .3rem; }
.why-card p   { font-size: .85rem; color: var(--cm-muted); margin: 0; line-height: 1.7; }

/* Ventana de terminal de IA */
.feature-window {
  background: var(--cm-card);
  border: 1px solid var(--cm-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.window-bar {
  background: rgba(255, 255, 255, .04);
  padding: .75rem 1.25rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  border-bottom: 1px solid var(--cm-border);
}
.wdot { width: 10px; height: 10px; border-radius: 50%; }
.wdot:nth-child(1) { background: #ff5f56; }
.wdot:nth-child(2) { background: #ffbd2e; }
.wdot:nth-child(3) { background: #27c93f; }
.window-title { margin-left: .5rem; font-size: .75rem; color: var(--cm-muted); }

.window-body {
  padding: 1.5rem;
  font-family: var(--font-mono);
  font-size: .8rem;
}
.ai-output { display: flex; flex-direction: column; gap: .5rem; }
.ai-line {
  padding: .5rem .75rem;
  border-radius: 8px;
  font-size: .8rem;
  line-height: 1.5;
}
.ai-line.sys  { background: rgba(123, 92, 240, .15); color: #c4b5fd; }
.ai-line.out  { background: rgba(45, 212, 191, .10); color: #5eead4; }
.ai-line.info { background: rgba(79, 70, 229, .12);  color: #a5b4fc; }
.ai-line.warn { background: rgba(251, 191, 36, .10); color: #fcd34d; }

/* ── Stack tecnológico ───────────────────────────────────── */

.tech {
  padding: var(--section-py) 0;
  background: linear-gradient(180deg, transparent, rgba(45, 212, 191, .03), transparent);
}

.tech-card {
  background: var(--cm-card);
  border: 1px solid var(--cm-border);
  border-radius: var(--radius-md);
  padding: 1.5rem 1.25rem;
  text-align: center;
  transition: transform .3s, border-color .3s, box-shadow .3s;
}
.tech-card:hover {
  transform: translateY(-4px);
  border-color: rgba(45, 212, 191, .3);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .25);
}
.tech-card i    { font-size: 2rem; margin-bottom: .75rem; display: block; }
.tech-card span { font-size: .8rem; color: var(--cm-muted); font-weight: 500; }

/* ── CTA ─────────────────────────────────────────────────── */

.cta-section { padding: var(--section-py) 0; }

.cta-box {
  background: linear-gradient(135deg, rgba(123, 92, 240, .2), rgba(45, 212, 191, .12));
  border: 1px solid rgba(123, 92, 240, .25);
  border-radius: var(--radius-xl);
  padding: 5rem 3rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-box::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(123, 92, 240, .2), transparent 70%);
  pointer-events: none;
}
.cta-box h2 {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 3rem);
  color: #fff;
  margin-bottom: 1rem;
}
.cta-box p {
  color: var(--cm-muted);
  font-size: 1.05rem;
  max-width: 480px;
  margin: 0 auto 2rem;
}

/* ── Responsive ──────────────────────────────────────────── */

@media (max-width: 768px) {
  .hero { padding-top: 100px; }
  .cta-box { padding: 3rem 1.5rem; }
}
