/*
  Estilos base para VIDIKA
  Paleta: azul VIDIKA, acento amarillo y neutros claros para dar aire y legibilidad.
*/
:root{
  /* Colores base mejorados */
  --bg:linear-gradient(135deg, #F8FAFF 0%, #F0F4FF 100%);
  --surface:rgba(255,255,255,.95);
  --surface-2:rgba(241,245,253,.8);
  --text:#0F172A;
  --muted:#475569;
  /* Colores corporativos con gradientes modernos */
  --accent:#4285F4;    /* Azul VIDIKA */
  --accent-2:#3B7CEC;  /* Gradiente de apoyo */
  --accent-gradient:linear-gradient(135deg, #4285F4 0%, #3B7CEC 50%, #2563EB 100%);
  --brand:#FFD54A;     /* Acento amarillo (punto de la "i") */
  --brand-gradient:linear-gradient(135deg, #FFD54A 0%, #FFC107 100%);
  /* Otros con efectos modernos */
  --border:rgba(15,23,42,.08);
  --card:rgba(255,255,255,.9);
  --radius:20px;
  --shadow:0 20px 40px rgba(2,6,23,.08), 0 4px 12px rgba(66,133,244,.12), 0 1px 0 rgba(255,255,255,.8) inset;
  --shadow-hover:0 32px 64px rgba(2,6,23,.12), 0 8px 24px rgba(66,133,244,.2), 0 2px 0 rgba(255,255,255,.9) inset;
  /* Fondos con gradientes modernos */
  --hero-bg:linear-gradient(135deg, #F8FAFF 0%, #EAF4FF 50%, #F0F4FF 100%);
  --section-bg-alt:linear-gradient(135deg, #F4F7FD 0%, #F8FAFF 100%);
  /* Efectos de glassmorphism */
  --glass-bg:rgba(255,255,255,.1);
  --glass-border:rgba(255,255,255,.2);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  font-feature-settings:'cv02','cv03','cv04','cv11';
  letter-spacing:-0.01em;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

/* Mejoras de tipografía para móviles */
@media (max-width: 768px) {
  body {
    font-size: 15px;
    line-height: 1.5;
  }
}

@media (max-width: 480px) {
  body {
    font-size: 14px;
    line-height: 1.4;
  }
}

/* Focus visible states for accessibility */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.container{max-width:1160px;margin:0 auto;padding:0 22px}
a{text-decoration:none;color:inherit}
button{font:inherit;cursor:pointer}

/* Topbar */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.85);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,.05)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px}
.brand img.logo{height:65px;margin-bottom:12px}
.menu{display:flex;align-items:center;gap:22px}
.menu a{padding:10px 12px;border-radius:12px;color:var(--muted);font-weight:500}
.menu a:hover{background:rgba(2,6,23,.06);color:var(--text)}

.menu a.cta-primary:hover{background:var(--accent-gradient);color:var(--brand);transform:translateY(-2px);box-shadow:0 20px 48px rgba(66,133,244,.4), 0 8px 24px rgba(66,133,244,.3);}
.cta-primary{background:var(--accent-gradient);color:white !important;border:0;padding:14px 24px;border-radius:16px;box-shadow:0 12px 32px rgba(66,133,244,.3), 0 4px 12px rgba(66,133,244,.2);font-weight:700;transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);position:relative;overflow:hidden}
.cta-primary:hover{transform:translateY(-2px);box-shadow:0 20px 48px rgba(66,133,244,.4), 0 8px 24px rgba(66,133,244,.3);color:var(--brand) !important;}
/* Secondary call-to-action: outlined button */
.cta-secondary{display:inline-flex;align-items:center;border:1px solid rgba(66,133,244,.3);color:var(--accent);padding:14px 24px;border-radius:16px;font-weight:700;transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);box-shadow:0 8px 24px rgba(66,133,244,.15), 0 2px 8px rgba(66,133,244,.1);background:rgba(255,255,255,.8);backdrop-filter:blur(10px)}
.cta-secondary:hover{background:var(--accent-gradient);color:var(--brand);box-shadow:0 16px 40px rgba(66,133,244,.3), 0 8px 24px rgba(66,133,244,.2);transform:translateY(-2px);border-color:transparent}
.burger{
  display:none;
  background:transparent;
  border:0;
  font-size:26px;
  line-height:1;
  color:var(--text);
  padding:8px;
  border-radius:8px;
  transition:all .2s ease;
  cursor:pointer;
}

.burger:hover{
  background:rgba(66,133,244,.1);
  color:var(--accent);
}

/* Mobile menu styles */
.menu.open{
  display:flex !important;
  position:fixed;
  top:74px;
  left:0;
  right:0;
  background:var(--surface);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  box-shadow:0 8px 32px rgba(0,0,0,.1);
  z-index:100;
  flex-direction:column;
  padding:20px;
  gap:16px;
  animation:slideDown 0.3s ease-out;
}

@keyframes slideDown {
  from {
    opacity:0;
    transform:translateY(-20px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

.menu.open a{
  padding:12px 16px;
  border-radius:12px;
  color:var(--text);
  font-weight:500;
  text-align:center;
  transition:all .2s ease;
}

.menu.open a:hover{
  background:rgba(66,133,244,.1);
  color:var(--accent);
}

.menu.open .cta-primary{
  background:var(--accent-gradient);
  color:white !important;
  border:0;
  margin-top:8px;
}

.menu.open .cta-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 24px rgba(66,133,244,.3);
  color:var(--brand) !important;
}

/* Sections */
.section{padding:80px 0}
.section h2{font-size:clamp(28px,4vw,40px);margin:0 0 16px;letter-spacing:-.02em;line-height:1.3;color:var(--text);font-weight:700}
.section .kicker{color:var(--brand);font-weight:800;letter-spacing:.15em;text-transform:uppercase;font-size:13px;margin-bottom:12px;background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* Hero */
.hero{
  padding:80px 0 80px;
  background: var(--hero-bg);
  border-radius: 0;
  box-shadow: none;
  position: relative;
  overflow: hidden;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
}
.hero::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at 30% 20%, rgba(66,133,244,.1) 0%, transparent 50%),
              radial-gradient(circle at 70% 80%, rgba(255,213,74,.08) 0%, transparent 50%);
  pointer-events: none;
}
.hero h1{font-size:clamp(42px,6vw,64px);line-height:1.1;margin:0 0 20px;letter-spacing:-.03em;color:var(--text);font-weight:800;background:linear-gradient(135deg, var(--text) 0%, var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero .subtitle{font-size:20px;color:var(--muted);max-width:600px;margin:0 0 32px;line-height:1.6;font-weight:500}
.hero-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:40px;
  align-items:center;
  /* Center the hero content within the full‑width section and limit its maximum width */
  max-width:1160px;
  margin:0 auto;
  padding:0 22px;
}
.hero-visual{
  display:flex;
  justify-content:flex-end;
}
.hero-visual img{width:105%;height:auto;border-radius:20px;transition:transform .3s ease;position:relative;z-index:1}
.hero-visual img:hover{transform:scale(1.05)}
.hero .cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;align-items:center}

/* Badge / pill */
.badges{display:flex;flex-wrap:nowrap;gap:10px;margin:0 0 24px 0;overflow-x:visible;padding:0;background:rgba(255,255,255,.02);backdrop-filter:blur(10px);position:relative;z-index:10;width:100%;justify-content:flex-start}
.badge{
  font-size: 10px;
  border: 1px solid rgba(66,133,244,.15);
  background: rgba(255,255,255,.8);
  padding: 6px 12px;
  border-radius: 12px;
  color: var(--text);
  font-weight: 600;
  backdrop-filter: blur(16px);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 
    0 2px 8px rgba(0,0,0,.04), 
    0 1px 4px rgba(0,0,0,.02),
    inset 0 1px 0 rgba(255,255,255,.7);
  position: relative;
  overflow: hidden;
  letter-spacing: 0.1px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: fit-content;
  text-transform: uppercase;
}
.badge:hover{
  background: rgba(66,133,244,.08);
  border-color: rgba(66,133,244,.25);
  transform: translateY(-1px);
  box-shadow: 
    0 4px 12px rgba(66,133,244,.1), 
    0 2px 6px rgba(0,0,0,.04),
    inset 0 1px 0 rgba(255,255,255,.8);
  color: var(--accent);
}

.badge::before{
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255,255,255,.4) 50%, 
    transparent 100%);
  transition: left 0.4s ease;
  z-index: 1;
}

.badge:hover::before{
  left: 100%;
}

/* Cards + columns mejoradas */
.cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:24px;
}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:24px;
  padding:28px;
  box-shadow:var(--shadow);
  transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
  backdrop-filter:blur(10px);
  position:relative;
  overflow:hidden;
  min-height:fit-content;
}

.card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow-hover);
  border-color:rgba(66,133,244,.2);
}

.card h3{
  margin:8px 0 12px;
  font-size:20px;
  color:var(--text);
  line-height:1.2;
  font-weight:700;
}

.card p{
  color:var(--muted);
  font-size:15px;
  margin:0 0 12px;
  line-height:1.45;
}

.columns-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  align-items:stretch;
}

/* Mejoras específicas para tarjetas de servicios */
.cards .card .icon{
  margin-bottom:16px;
}

/* Tarjetas en sección de diferenciadores con altura igual */
#diferenciadores .columns-2 .card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

#diferenciadores .columns-2 .card .icon {
  margin-bottom: 16px;
}

#diferenciadores .columns-2 .card h3 {
  margin: 0 0 16px 0;
}

#diferenciadores .columns-2 .card .check {
  margin: 4px 0;
}

.cards .card .icon svg{
  width:48px;
  height:48px;
  transition:transform .2s ease;
}

.card:hover .icon svg{
  transform:scale(1.1);
}

/* Layout mejorado para tarjetas en diferentes tamaños */
@media (max-width: 1200px) {
  .cards {
    gap: 20px;
  }
  
  .card {
    padding: 24px;
  }
}

@media (max-width: 1024px) {
  .cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
  }
  
  .card {
    padding: 22px;
  }
  
  .card h3 {
    font-size: 18px;
  }
  
  .card p {
    font-size: 14px;
  }
}

@media (max-width: 768px) {
  .cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  
  .card {
    padding: 20px;
  }
  
  .card h3 {
    font-size: 18px;
    margin: 6px 0 10px;
  }
  
  .card p {
    font-size: 14px;
    margin-bottom: 10px;
  }
  
  .card .icon svg {
    width: 40px;
    height: 40px;
  }
}

@media (max-width: 640px) {
  .card {
    padding: 16px;
    border-radius: 16px;
  }
  
  .card h3 {
    font-size: 16px;
    margin: 4px 0 8px;
  }
  
  .card p {
    font-size: 13px;
    margin-bottom: 8px;
  }
  
  .card .icon {
    margin-bottom: 12px;
  }
  
  .card .icon svg {
    width: 36px;
    height: 36px;
  }
}

@media (max-width: 480px) {
  .card {
    padding: 12px;
  }
  
  .card h3 {
    font-size: 15px;
  }
  
  .card p {
    font-size: 12px;
  }
  
  .card .icon svg {
    width: 32px;
    height: 32px;
  }
}

/* Baseline info at bottom of service cards */
.baseline{font-size:12px;color:var(--muted);margin-top:6px;font-style:italic;text-align:center}
.baseline em{color:#fbbf24 !important;font-size:11px}

/* Check list style */
.check{display:flex;gap:10px;align-items:center;margin:4px 0}
.check:before{content:"✔";font-weight:800;color:var(--accent);flex-shrink:0;width:16px}

/* Small note text */
.note{font-size:11px;color:#fbbf24;margin-top:12px;font-style:italic;line-height:1.4}

/* Timeline (plan) */
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}
.stage{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;text-align:center;font-size:14px;color:var(--text);line-height:1.4;box-shadow:var(--shadow)}

/* FAQ */
.faq{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:16px;margin-top:12px;box-shadow:var(--shadow)}
.faq h4{margin:0 0 6px;font-size:16px;color:var(--text)}
.faq p{margin:0;font-size:14px;color:var(--muted);line-height:1.45}

/* Casos */
.caso-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:32px;
  align-items:center;
}
.caso-info p,
.caso-info ul{
  margin:0 0 8px;
  font-size:16px;
  color:var(--text);
}
.caso-info ul{
  padding-left:20px;
}
.caso-info li{
  margin-bottom:6px;
  color:var(--text);
}
.caso-info .nota{
  font-size:13px;
  color:var(--muted);
  margin-top:8px;
  font-style:italic;
}
.caso-metrics{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.metric-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:16px;
  padding:18px 20px;
  box-shadow:var(--shadow);
  flex:1;
  min-width:140px;
  text-align:center;
}
.metric-card h3{
  margin:0;
  font-size:22px;
  color:var(--text);
  font-weight:800;
}
.metric-card span{
  display:block;
  margin-top:4px;
  font-size:14px;
  color:var(--muted);
  font-weight:500;
}
@media (max-width:1000px){
  .caso-grid{
    grid-template-columns:1fr;
  }
  .caso-metrics{
    justify-content:flex-start;
  }
  .metric-card{
    flex:0 0 auto;
  }
}

/* Formulario mejorado */
.form{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:18px;
  padding:20px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
}

.form label{
  display:block;
  font-size:13px;
  margin-top:12px;
  color:#334155;
  font-weight:600;
  transition:color .2s ease;
}

.form input,
.form textarea{
  width:100%;
  margin-top:6px;
  padding:12px 12px;
  border-radius:12px;
  background:var(--surface-2);
  border:1px solid var(--border);
  color:var(--text);
  font-size:14px;
  font-family:inherit;
  transition:all .2s ease;
  -webkit-appearance:none;
  appearance:none;
}

.form input:focus,
.form textarea:focus{
  outline:none;
  border-color:var(--border);
  background:var(--surface);
  box-shadow:none;
  transform:translateY(-1px);
}

.form textarea{
  min-height:120px;
  resize:vertical;
}

.form input::placeholder,
.form textarea::placeholder{
  color:var(--muted);
  opacity:0.7;
}

.actions button.cta-primary{
  flex-shrink:0;
}

.actions button.cta-primary:hover{
  color:var(--brand) !important;
}

/* Mejoras para dispositivos táctiles */
@media (hover: none) and (pointer: coarse) {
  .form input,
  .form textarea {
    padding: 14px 12px;
    font-size: 16px; /* Evita zoom en iOS */
  }
  
  .form input:focus,
  .form textarea:focus {
    transform: none;
  }
}

/* Footer */
footer{margin-top:64px;padding:40px 0;background:linear-gradient(180deg,var(--accent),var(--accent-2));color:white;font-size:14px}
footer .row{display:flex;gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap}
footer nav{display:flex;gap:14px;flex-wrap:wrap}
footer a{color:white;opacity:.95;font-weight:500}
footer a:hover{opacity:1;text-decoration:underline}

/* Icon wrapper and icons */
.icon{display:flex;align-items:center;justify-content:center;margin:0 auto 12px auto;}
.icon svg{width:40px;height:40px;color:var(--accent);}

/* Secciones con fondo alterno */
.section.alt-bg{
  background: var(--section-bg-alt);
  border-radius: 0;
  position: relative;
}
.section.alt-bg::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at 20% 30%, rgba(66,133,244,.05) 0%, transparent 40%),
              radial-gradient(circle at 80% 70%, rgba(255,213,74,.03) 0%, transparent 40%);
  pointer-events: none;
  z-index: 0;
}
.section.alt-bg > *{
  position: relative;
  z-index: 1;
}

/* Animaciones de aparición para las secciones */
.animate{
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s ease-out, transform .8s ease-out;
}
.animate.visible{
  opacity: 1;
  transform: translateY(0);
}

/* Responsive queries - Mobile First Approach */

/* Large tablets and small desktops */
@media (max-width: 1200px) {
  .container {
    max-width: 100%;
    padding: 0 24px;
  }
  
  .hero-grid {
    gap: 32px;
  }
  
  .cards {
    gap: 20px;
  }
}

/* Tablets */
@media (max-width: 1024px) {
  .container {
    padding: 0 20px;
  }
  
  .section {
    padding: 60px 0;
  }
  
  .hero {
    padding: 60px 0;
  }
  
  .hero h1 {
    font-size: clamp(36px, 5vw, 48px);
  }
  
  .hero .subtitle {
    font-size: 18px;
  }
  
  .cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
  }
  
  .columns-2 {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
    text-align: center;
  }
  
  .hero-visual {
    order: -1;
    justify-content: center;
  }
  
  .hero-visual img {
    width: 90%;
    max-width: 500px;
  }
}

/* Large mobile and small tablets */
@media (max-width: 768px) {
  .container {
    padding: 0 18px;
  }
  
  .section {
    padding: 50px 0;
  }
  
  .hero {
    padding: 50px 0;
  }
  
  .topbar .nav {
    height: 64px;
  }
  
  .brand img.logo {
    height: 55px;
  }
  
  .hero h1 {
    font-size: clamp(32px, 6vw, 42px);
    margin-bottom: 16px;
  }
  
  .hero .subtitle {
    font-size: 16px;
    margin-bottom: 24px;
  }
  
  .hero .cta-row {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  
  .cta-primary,
  .cta-secondary {
    width: 100%;
    max-width: 280px;
    justify-content: center;
  }
  
  .badges {
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
  }
  
  .badge {
    font-size: 9px;
    padding: 5px 10px;
  }
  
  .cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  
  .card {
    padding: 20px;
  }
  
  .card h3 {
    font-size: 18px;
  }
  
  .card p {
    font-size: 14px;
  }
  
  .vida-timeline {
    padding-left: 16px;
    margin-top: 32px;
  }
  
  .vida-marker {
    width: 40px;
    height: 40px;
    font-size: 18px;
    left: -16px;
  }
  
  .vida-content h3 {
    font-size: 18px;
  }
  
  .vida-content p {
    font-size: 14px;
  }
  
  .kpis {
    gap: 10px;
  }
  
  .kpis li {
    padding: 10px 12px;
    font-size: 12px;
    min-width: 120px;
  }
  
  .kpis li strong {
    font-size: 16px;
  }
  
  .case {
    padding: 20px 16px;
  }
  
  .case-header {
    flex-direction: column;
    text-align: center;
    gap: 12px;
  }
  
  .case-logo {
    width: 80px;
    height: 80px;
  }
  
  .faq {
    padding: 14px;
  }
  
  .faq h4 {
    font-size: 15px;
  }
  
  .faq p {
    font-size: 13px;
  }
}

/* Mobile devices */
@media (max-width: 640px) {
  .menu {
    display: none;
  }
  
  .burger {
    display: block;
  }
  
  .container {
    padding: 0 16px;
  }
  
  .section {
    padding: 40px 0;
  }
  
  .hero {
    padding: 40px 0;
  }
  
  .topbar .nav {
    height: 60px;
  }
  
  .brand img.logo {
    height: 50px;
  }
  
  .hero h1 {
    font-size: clamp(28px, 7vw, 36px);
    line-height: 1.2;
  }
  
  .hero .subtitle {
    font-size: 15px;
    margin-bottom: 20px;
  }
  
  .section h2 {
    font-size: clamp(24px, 5vw, 32px);
    margin-bottom: 12px;
  }
  
  .section .kicker {
    font-size: 11px;
    margin-bottom: 10px;
  }
  
  .card {
    padding: 16px;
    border-radius: 16px;
  }
  
  .card h3 {
    font-size: 16px;
    margin: 6px 0 10px;
  }
  
  .card p {
    font-size: 13px;
    margin-bottom: 10px;
  }
  
  .check {
    font-size: 13px;
  }
  
  .check:before {
    width: 14px;
  }
  
  .baseline {
    font-size: 11px;
  }
  
  .note {
    font-size: 10px;
  }
  
  .vida-timeline {
    padding-left: 12px;
    gap: 24px;
  }
  
  .vida-timeline::before {
    left: 12px;
    width: 2px;
  }
  
  .vida-marker {
    width: 36px;
    height: 36px;
    font-size: 16px;
    left: -12px;
  }
  
  .vida-content h3 {
    font-size: 16px;
  }
  
  .vida-content p {
    font-size: 13px;
  }
  
  .kpis {
    gap: 8px;
    flex-direction: column;
  }
  
  .kpis li {
    padding: 8px 10px;
    font-size: 11px;
    min-width: auto;
  }
  
  .kpis li strong {
    font-size: 14px;
  }
  
  .form {
    padding: 16px;
  }
  
  .form label {
    font-size: 12px;
    margin-top: 10px;
  }
  
  .form input,
  .form textarea {
    padding: 10px;
    font-size: 13px;
  }
  
  .actions {
    flex-direction: column;
    gap: 10px;
  }
  
  .cta-primary,
  .cta-secondary {
    width: 100%;
    padding: 12px 20px;
    font-size: 14px;
  }
  
  .case {
    padding: 16px 12px;
  }
  
  .case-header {
    gap: 10px;
  }
  
  .case-logo {
    width: 60px;
    height: 60px;
  }
  
  .case h3 {
    font-size: 16px;
  }
  
  .faq {
    padding: 12px;
    margin-top: 10px;
  }
  
  .faq h4 {
    font-size: 14px;
    margin-bottom: 6px;
  }
  
  .faq p {
    font-size: 12px;
  }
  
  footer {
    padding: 32px 0;
  }
  
  footer .row {
    flex-direction: column;
    gap: 16px;
    text-align: center;
  }
  
  footer nav {
    justify-content: center;
  }
  
  /* Expandir secciones alternas a ancho completo en móviles */
  .section.alt-bg {
    margin-left: -16px;
    margin-right: -16px;
    padding-left: 16px;
    padding-right: 16px;
  }
  
  .hero {
    margin-left: -16px;
    margin-right: -16px;
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* Extra small devices */
@media (max-width: 480px) {
  .container {
    padding: 0 12px;
  }
  
  .section {
    padding: 32px 0;
  }
  
  .hero {
    padding: 32px 0;
  }
  
  .hero h1 {
    font-size: clamp(24px, 8vw, 32px);
  }
  
  .hero .subtitle {
    font-size: 14px;
  }
  
  .section h2 {
    font-size: clamp(20px, 6vw, 28px);
  }
  
  .card {
    padding: 12px;
  }
  
  .card h3 {
    font-size: 15px;
  }
  
  .card p {
    font-size: 12px;
  }
  
  .badge {
    font-size: 8px;
    padding: 4px 8px;
  }
  
  .vida-marker {
    width: 32px;
    height: 32px;
    font-size: 14px;
  }
  
  .vida-content h3 {
    font-size: 15px;
  }
  
  .vida-content p {
    font-size: 12px;
  }
  
  .kpis li {
    padding: 6px 8px;
    font-size: 10px;
  }
  
  .kpis li strong {
    font-size: 13px;
  }
  
  .form {
    padding: 12px;
  }
  
  .cta-primary,
  .cta-secondary {
    padding: 10px 16px;
    font-size: 13px;
  }
  
  .section.alt-bg {
    margin-left: -12px;
    margin-right: -12px;
    padding-left: 12px;
    padding-right: 12px;
  }
  
  .hero {
    margin-left: -12px;
    margin-right: -12px;
    padding-left: 12px;
    padding-right: 12px;
  }
}

/* Mejoras para dispositivos táctiles */
@media (hover: none) and (pointer: coarse) {
  /* Aumentar área de toque para botones */
  .cta-primary,
  .cta-secondary {
    min-height: 44px;
    padding: 12px 24px;
  }
  
  .menu a {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .burger {
    min-height: 44px;
    min-width: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  /* Eliminar efectos hover en dispositivos táctiles */
  .card:hover {
    transform: none;
  }
  
  .cta-primary:hover,
  .cta-secondary:hover {
    transform: none;
  }
  
  .badge:hover {
    transform: none;
  }
  
  .card:hover .icon svg {
    transform: none;
  }
}

/* Mejoras de accesibilidad y usabilidad */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}

/* Mejoras para pantallas de alta densidad */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .hero-visual img {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
  }
}

/* Optimizaciones para landscape en móviles */
@media (max-width: 768px) and (orientation: landscape) {
  .hero {
    padding: 30px 0;
  }
  
  .section {
    padding: 30px 0;
  }
  
  .hero h1 {
    font-size: clamp(24px, 5vw, 32px);
  }
  
  .hero .subtitle {
    font-size: 14px;
  }
}

/* Mejoras de contraste para mejor legibilidad */
@media (prefers-contrast: high) {
  :root {
    --border: rgba(15,23,42,.2);
    --text: #000000;
    --muted: #374151;
  }
  
  .card {
    border: 2px solid var(--border);
  }
  
  .form input,
  .form textarea {
    border: 2px solid var(--border);
  }
}

/* Tema claro forzado - sin modo oscuro automático */

/* Case studies */
.case{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:24px 22px;box-shadow:var(--shadow);margin:24px 0;width:100%;text-align:left}
.case-header{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.case-logo{width:112px;height:112px;border-radius:26px;margin-bottom:8px}
.case h3{margin:0;font-size:18px;color:var(--text);font-weight:700}
.kpis{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 12px 0;padding:0;list-style:none}
.kpis li{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:12px 16px;font-size:14px;color:var(--text);font-weight:600;flex:1;min-width:0;text-align:center}
.kpis li strong{font-size:18px;display:block;margin-bottom:4px;color:var(--accent);font-weight:800}

/* V.I.D.A timeline con animaciones */
.vida-timeline{
  position: relative;
  margin-top: 40px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  padding-left: 24px;
}

/* Línea de conexión animada - atraviesa las pelotas por detrás */
.vida-timeline::before{
  content: '';
  position: absolute;
  left: 24px;
  top: 0;
  height: calc(100% - 24px);
  width: 3px;
  background: linear-gradient(180deg, var(--accent) 0%, var(--accent-2) 100%);
  border-radius: 2px;
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 0;
}

.vida-timeline.animate-line::before{
  transform: scaleY(1);
}

.vida-step{
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.vida-step.animate-in{
  opacity: 1;
  transform: translateY(0);
}

.vida-marker{
  background: var(--accent-gradient);
  color: #ffffff;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 22px;
  flex-shrink: 0;
  box-shadow: 0 8px 24px rgba(66,133,244,.3), 0 4px 12px rgba(66,133,244,.2), inset 0 1px 0 rgba(255,255,255,.3);
  position: relative;
  z-index: 20;
  transform: scale(0);
  transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  border: 2px solid rgba(255,255,255,.2);
  left: -24px;
}

.vida-marker.animate-in{
  transform: scale(1);
}

.vida-content{
  opacity: 0;
  transform: translateX(-20px);
  transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.2s;
  position: relative;
  z-index: 5;
}

.vida-content.animate-in{
  opacity: 1;
  transform: translateX(0);
}

.vida-content h3{
  margin: 0;
  font-size: 22px;
  color: var(--text);
  font-weight: 700;
  background: linear-gradient(135deg, var(--text) 0%, var(--accent) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.vida-content p{
  margin: 8px 0 0;
  font-size: 16px;
  color: var(--muted);
  line-height: 1.5;
  font-weight: 500;
}

/* Animaciones escalonadas */
.vida-step-1{ transition-delay: 0.1s; }
.vida-step-2{ transition-delay: 0.3s; }
.vida-step-3{ transition-delay: 0.5s; }
.vida-step-4{ transition-delay: 0.7s; }

.vida-marker-1{ transition-delay: 0.2s; }
.vida-marker-2{ transition-delay: 0.4s; }
.vida-marker-3{ transition-delay: 0.6s; }
.vida-marker-4{ transition-delay: 0.8s; }

.vida-content-1{ transition-delay: 0.3s; }
.vida-content-2{ transition-delay: 0.5s; }
.vida-content-3{ transition-delay: 0.7s; }
.vida-content-4{ transition-delay: 0.9s; }


/* --- Stack & Partners refinements --- */
.under-h2{ color:#5b667a; margin: 4px 0 22px; max-width: 70ch; }
.cards-duo .card{ position: relative; }

.card--stack{
  border-left: 4px solid rgba(77,136,255,.45);
  background:
    radial-gradient(120% 120% at -20% 0%, rgba(77,136,255,.06), transparent 60%),
    #ffffff;
}

.card--partners{
  border-left: 4px solid rgba(47, 142, 110, .45);
  background:
    radial-gradient(120% 120% at 120% 0%, rgba(47,142,110,.07), transparent 60%),
    #ffffff;
}

.card-head{
  display:flex; align-items:center; gap:.6rem; margin-bottom: .25rem;
}
.card-icon{
  display:inline-grid; place-items:center;
  width:34px; height:34px; border-radius:999px;
  background: rgba(77,136,255,.12); color:#2a59ff;
}

.checks{ list-style:none; padding:0; margin:.5rem 0 0; }
.checks li{ padding:.5rem 0; color:#2a3244; }

.partners-card, .card--partners { text-align:left; }
.logo-top{ text-align:center; margin-bottom: 6px; }
.logo-top img{ max-height: 44px; width:auto; display:inline-block; }

.powered{ margin-top: 8px; font-size: .85rem; color:#6b7385; text-align:center; }

/* Responsive: partners first on mobile */
@media (max-width: 900px){
  .cards-duo{ display:grid; grid-template-columns: 1fr; }
  .card--partners{ order: -1; }
}
