/* ============================================================
   BALANCE RX — Medical & Performance Center
   Sistema de diseño "Premium Clinical Light"
   ============================================================ */

:root{
  /* Base clara premium */
  --cream:#f8f6f1;
  --cream-deep:#efe9de;
  --paper:#ffffff;
  --ink:#12161f;
  --ink-soft:#4b5566;
  --ink-mute:#5f6878;

  /* Marca (ajustado a AA: >=4.5:1 sobre blanco/crema) */
  --red:#d93327;
  --red-deep:#a8231a;
  --red-glow:rgba(217,51,39,0.28);
  --teal:#0d9a90;
  --teal-deep:#0a746c;
  --teal-glow:rgba(13,154,144,0.24);
  --navy:#0e1726;
  --navy-soft:#182238;
  --amber:#e08a1e;
  --green:#25D366;

  /* Vidrio */
  --glass:rgba(255,255,255,0.62);
  --glass-strong:rgba(255,255,255,0.86);
  --glass-border:rgba(255,255,255,0.9);
  --glass-dark:rgba(14,23,38,0.88);
  --glass-dark-soft:rgba(14,23,38,0.68);
  --line:rgba(18,22,31,0.09);

  --shadow-sm:0 4px 18px rgba(20,24,35,0.06);
  --shadow-md:0 18px 46px rgba(20,24,35,0.10);
  --shadow-lg:0 34px 80px rgba(20,24,35,0.16);
  --shadow-red:0 16px 40px rgba(232,56,44,0.30);
  --shadow-teal:0 16px 40px rgba(13,154,144,0.24);

  --ease:cubic-bezier(0.16,1,0.3,1);
  --spring:cubic-bezier(0.34,1.56,0.64,1);

  --font-display:'Fraunces', 'Times New Roman', serif;
  --font-body:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono:'Space Grotesk', monospace;
}

*{box-sizing:border-box; margin:0; padding:0;}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
html{scroll-behavior:smooth;}
section[id], header[id], div[id], footer[id]{
  scroll-margin-top:115px;
}
@media (max-width:768px){
  section[id], header[id], div[id], footer[id]{
    scroll-margin-top:90px;
  }
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}
body{
  font-family:var(--font-body);
  background:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
::selection{background:var(--red); color:#fff;}
.wrap{max-width:1240px; margin:0 auto; padding:0 24px; position:relative; z-index:2;}
button{font-family:inherit;}

/* ---------- FONDO AMBIENTAL (Optimizado con aceleración por hardware GPU) ---------- */
.ambient-scene{
  position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden;
  contain:strict; transform:translateZ(0);
}
.ambient-scene::before,
.ambient-scene::after{
  content:''; position:absolute; border-radius:50%; filter:blur(70px); opacity:0.55;
  will-change:transform, opacity; transform:translateZ(0);
  animation:driftA 24s ease-in-out infinite alternate, heartbeatGlow 3.2s ease-in-out infinite;
}
.ambient-scene::before{
  width:720px; height:720px; top:-140px; right:-120px;
  background:radial-gradient(circle, rgba(13,154,144,0.35) 0%, rgba(13,154,144,0.10) 50%, transparent 70%);
}
.ambient-scene::after{
  width:680px; height:680px; bottom:-160px; left:-140px;
  background:radial-gradient(circle, rgba(217,51,39,0.28) 0%, rgba(217,51,39,0.06) 50%, transparent 70%);
  animation-name:driftB, heartbeatGlow;
  animation-duration:28s, 3.2s;
  animation-delay:0s, 0.4s;
}
.ambient-orb-amber{
  content:''; position:absolute; border-radius:50%; filter:blur(80px); opacity:0.32;
  will-change:transform, opacity; transform:translateZ(0);
  width:540px; height:540px; top:35%; left:38%;
  background:radial-gradient(circle, rgba(224,138,30,0.35) 0%, rgba(224,138,30,0.08) 50%, transparent 70%);
  animation:driftC 30s ease-in-out infinite alternate, heartbeatGlow 3.2s ease-in-out infinite 0.8s;
}
@keyframes driftA{0%{transform:translate3d(0,0,0) scale(1);} 100%{transform:translate3d(-60px,50px,0) scale(1.08);}}
@keyframes driftB{0%{transform:translate3d(0,0,0) scale(1);} 100%{transform:translate3d(50px,-40px,0) scale(1.1);}}
@keyframes driftC{0%{transform:translate3d(0,0,0) scale(1);} 100%{transform:translate3d(-70px,40px,0) scale(1.15);}}
/* Pulso cardíaco vivo y suave */
@keyframes heartbeatGlow{
  0%, 100%{opacity:0.42; transform:scale(1);}
  10%{opacity:0.75; transform:scale(1.05);}
  20%{opacity:0.48; transform:scale(1.01);}
  30%{opacity:0.68; transform:scale(1.04);}
  45%{opacity:0.42; transform:scale(1);}
}
.grain-texture{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:0.03; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
#particleCanvas{position:fixed; inset:0; z-index:1; pointer-events:none; width:100%; height:100%; opacity:0.65; transform:translateZ(0);}

/* ---------- DEGRADADOS AMBIENTALES DINÁMICOS ---------- */
.wash-teal, .wash-coral, .wash-navy, .wash-mix{background-repeat:no-repeat; background-size:180% 180%; will-change:background-position;}
.wash-teal{
  background-image:
    radial-gradient(ellipse 65% 55% at 10% 0%, rgba(13,154,144,0.10), transparent 60%),
    radial-gradient(ellipse 55% 50% at 90% 100%, rgba(224,138,30,0.06), transparent 60%);
  animation:auroraDrift 26s ease-in-out infinite alternate;
}
.wash-coral{
  background-image:
    radial-gradient(ellipse 65% 55% at 90% 0%, rgba(217,51,39,0.08), transparent 60%),
    radial-gradient(ellipse 55% 50% at 10% 100%, rgba(13,154,144,0.07), transparent 60%);
  animation:auroraDrift 28s ease-in-out infinite alternate; animation-delay:-5s;
}
.wash-navy{
  background-image:
    radial-gradient(ellipse 65% 55% at 20% 10%, rgba(14,23,38,0.06), transparent 60%),
    radial-gradient(ellipse 55% 50% at 85% 85%, rgba(13,154,144,0.06), transparent 60%);
  animation:auroraDrift 30s ease-in-out infinite alternate; animation-delay:-10s;
}
.wash-mix{
  background-image:
    radial-gradient(ellipse 65% 55% at 15% 15%, rgba(13,154,144,0.09), transparent 55%),
    radial-gradient(ellipse 60% 50% at 85% 80%, rgba(217,51,39,0.06), transparent 55%);
  animation:auroraDrift 26s ease-in-out infinite alternate; animation-delay:-14s;
}
@keyframes auroraDrift{
  0%{background-position:0% 0%, 100% 100%;}
  50%{background-position:25% 18%, 75% 82%;}
  100%{background-position:8% 28%, 92% 72%;}
}

/* ---------- FONDO CON PULSO CRISTALINO ---------- */
.pulse-crystal{position:relative; overflow:hidden;}
.pulse-crystal::before{
  content:''; position:absolute; inset:-10%; z-index:0; pointer-events:none;
  background:
    radial-gradient(circle at 18% 22%, rgba(13,154,144,0.18), transparent 45%),
    radial-gradient(circle at 82% 80%, rgba(217,51,39,0.12), transparent 48%),
    radial-gradient(circle at 50% 50%, rgba(224,138,30,0.10), transparent 50%);
  filter:blur(18px); transform:translateZ(0); will-change:transform, opacity;
  animation:crystalDrift 18s ease-in-out infinite alternate, crystalPulse 4.5s ease-in-out infinite;
}
.pulse-crystal::after{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(115deg, transparent 25%, rgba(255,255,255,0.12) 42%, transparent 58%);
  background-size:200% 200%;
  animation:crystalShimmer 10s linear infinite;
}
.pulse-crystal > .wrap{position:relative; z-index:2;}
@keyframes crystalPulse{
  0%,100%{opacity:0.65; transform:scale(1);}
  20%{opacity:0.95; transform:scale(1.04);}
  35%{opacity:0.70; transform:scale(1.01);}
  50%{opacity:0.90; transform:scale(1.03);}
  70%{opacity:0.65; transform:scale(1);}
}
@keyframes crystalDrift{
  0%{transform:translate3d(0,0,0);}
  50%{transform:translate3d(-2%, 3%, 0);}
  100%{transform:translate3d(3%, -2%, 0);}
}
@keyframes crystalShimmer{
  0%{background-position:0% 0%, 100% 100%;}
  100%{background-position:100% 100%, 0% 0%;}
}

/* ---------- CANVAS DE PULSO EN HERO Y FOOTER (late-dub ECG, como el logo) ---------- */
.hero-bg-ecg-canvas{
  position:absolute; inset:0; width:100%; height:100%;
  pointer-events:none; z-index:1; opacity:0.4;
}
.footer-bg-ecg-canvas{
  position:absolute; inset:0; width:100%; height:100%;
  pointer-events:none; z-index:1; opacity:0.3;
}

/* ---------- SCROLL REVEAL ---------- */
[data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 0.8s var(--ease), transform 0.8s var(--ease);}
[data-reveal].in-view{opacity:1; transform:translateY(0);}
[data-reveal="scale"]{transform:translateY(18px) scale(0.96);}
[data-reveal="scale"].in-view{transform:translateY(0) scale(1);}
[data-reveal="left"]{transform:translateX(-32px);}
[data-reveal="left"].in-view{transform:translateX(0);}
[data-reveal="right"]{transform:translateX(32px);}
[data-reveal="right"].in-view{transform:translateX(0);}
[data-stagger] > *{transition-delay:calc(var(--i,0) * 90ms);}

/* ---------- NAV DE CRISTAL (casi transparente, se mimetiza con el fondo pero se nota vidrioso) ---------- */
nav.crystal-nav{
  position:fixed; top:16px; left:50%; transform:translateX(-50%); z-index:300;
  width:min(1180px, calc(100% - 32px));
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(28px) saturate(220%);
  -webkit-backdrop-filter:blur(28px) saturate(220%);
  border:1px solid rgba(255,255,255,0.45);
  border-radius:100px;
  padding:9px 14px;
  box-shadow:0 8px 32px rgba(14,23,38,0.10), inset 0 1px 1px rgba(255,255,255,0.7), inset 0 -1px 6px rgba(255,255,255,0.12);
  display:flex; align-items:center; justify-content:space-between;
  transition:all 0.4s var(--ease);
  overflow:hidden;
}
nav.crystal-nav::before{
  content:''; position:absolute; inset:-60% -10%; z-index:0; pointer-events:none;
  background:
    radial-gradient(circle at 15% 30%, rgba(13,154,144,0.14), transparent 45%),
    radial-gradient(circle at 85% 70%, rgba(217,51,39,0.10), transparent 45%),
    radial-gradient(circle at 50% 100%, rgba(240,180,60,0.08), transparent 50%);
  filter:blur(8px);
  opacity:0.7;
  animation:crystalDrift 12s ease-in-out infinite alternate, crystalPulse 4s ease-in-out infinite;
}
nav.crystal-nav.collapsed::before{opacity:0.25;}
.nav-logo-wrap, .nav-links-wrap{position:relative; z-index:1;}
nav.crystal-nav.scrolled{top:10px; box-shadow:var(--shadow-lg), inset 0 1px 1px rgba(255,255,255,0.9);}
nav.crystal-nav.scrolled{
  top:10px;
  box-shadow:var(--shadow-lg), inset 0 1px 1px rgba(255,255,255,0.9);
}
/* Al hacer scroll o estar colapsado, ocultar inmediatamente Performance Lab y el divisor */
nav.crystal-nav.scrolled .nav-brand-subtitle,
nav.crystal-nav.scrolled .nav-brand-divider,
nav.crystal-nav.collapsed .nav-brand-subtitle,
nav.crystal-nav.collapsed .nav-brand-divider{
  display:none !important;
  opacity:0 !important;
  max-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  pointer-events:none !important;
  visibility:hidden !important;
}
nav.crystal-nav.collapsed{
  width:auto; max-width:max-content; padding:5px 8px;
  background:linear-gradient(155deg, rgba(13,154,144,0.38) 0%, rgba(14,23,38,0.92) 55%, rgba(232,56,44,0.28) 100%);
  backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-color:rgba(255,255,255,0.24);
  border-radius:100px;
  box-shadow:0 10px 30px rgba(14,23,38,0.4), inset 0 1px 1px rgba(255,255,255,0.18);
}
.nav-logo-wrap{display:flex; align-items:center; gap:12px; transition:all 0.3s ease;}
nav.crystal-nav.collapsed .nav-logo-wrap{gap:0; margin:0; padding:0;}
.nav-brand-divider{width:1px; height:18px; background:rgba(255,255,255,0.22); margin:0 2px; transition:all 0.3s ease;}
.nav-brand-subtitle{
  font-family:var(--font-mono); font-size:12px; font-weight:800; letter-spacing:0.06em;
  text-transform:uppercase; color:#3ecfae; text-decoration:none; white-space:nowrap;
  transition:all 0.3s ease;
}
.nav-brand-subtitle:hover{
  color:#ffffff; text-shadow:0 0 12px rgba(62,207,174,0.6);
}
.nav-logo-btn{display:flex; align-items:center; padding:6px 10px; border-radius:100px; cursor:pointer; transition:transform 0.3s var(--spring), background 0.3s; user-select:none;}
.nav-logo-btn:hover{background:rgba(18,22,31,0.05); transform:scale(1.03);}
nav.crystal-nav.collapsed .nav-logo-btn{cursor:pointer; padding:4px 8px;}
nav.crystal-nav.collapsed .nav-logo-btn:hover{background:rgba(255,255,255,0.08);}
.nav-logo-btn img{height:32px; width:auto; transition:opacity 0.2s;}
nav.crystal-nav.collapsed .nav-logo-btn img{height:28px;}
.nav-links-wrap{display:flex; align-items:center; gap:24px; transition:all 0.45s var(--ease); overflow:hidden;}
nav.crystal-nav.collapsed .nav-links-wrap{display:none !important; max-width:0; opacity:0; pointer-events:none; transform:translateX(24px); margin:0;}
.nav-menu{display:flex; list-style:none; gap:18px; font-size:13px; font-weight:700; color:var(--ink-soft); transition:color 0.35s ease;}
.nav-menu li a{position:relative; padding:6px 2px; transition:all 0.25s ease;}
.nav-menu li a::after{content:''; position:absolute; bottom:0; left:50%; width:0; height:2px; background:linear-gradient(90deg,var(--teal),var(--red)); border-radius:2px; transform:translateX(-50%); transition:width 0.3s var(--ease);}
.nav-menu li a:hover{
  background:linear-gradient(90deg, #3ecfae 0%, #ffffff 50%, #ff9a90 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:0 0 16px rgba(62,207,174,0.4);
}
.nav-menu li a:hover::after{width:100%;}

/* Nav sobre fondo oscuro */
nav.crystal-nav.on-dark{background:rgba(10,16,26,0.34); border-color:rgba(255,255,255,0.22);}
nav.crystal-nav.on-dark .nav-menu{color:rgba(255,255,255,0.82);}
nav.crystal-nav.on-dark .nav-menu li a:hover{
  background:linear-gradient(90deg, #3ecfae 0%, #ffffff 50%, #ff9a90 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:0 0 16px rgba(62,207,174,0.4);
}
nav.crystal-nav.on-dark .nav-menu li a.active{
  color:#3ecfae;
  font-weight:800;
}
nav.crystal-nav.on-dark .nav-logo-btn:hover{background:rgba(255,255,255,0.10);}
.nav-actions{display:flex; align-items:center; gap:10px;}
.nav-cta{background:linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%); color:#fff; font-size:12.5px; font-weight:800; padding:10px 20px; border-radius:100px; box-shadow:var(--shadow-red); transition:all 0.35s var(--ease); white-space:nowrap;}
.nav-cta:hover{transform:translateY(-2px) scale(1.02); box-shadow:0 20px 46px rgba(232,56,44,0.4);}

/* ---------- BOTÓN FLOTANTE Y ARRASTRABLE PARA MÓVILES (CÍRCULO CON 3 LÍNEAS) ---------- */
.mobile-float-menu-btn{
  display:none;
  position:fixed;
  bottom:22px;
  right:20px;
  z-index:9990;
  width:54px;
  height:54px;
  border-radius:50%;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg, rgba(14,24,40,0.94) 0%, rgba(8,14,24,0.98) 100%);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border:1.5px solid rgba(62,207,174,0.65);
  box-shadow:0 14px 40px rgba(0,0,0,0.75), 0 0 25px rgba(13,154,144,0.4);
  cursor:grab;
  touch-action:none;
  user-select:none;
  transition:transform 0.15s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease;
}
.mobile-float-menu-btn.dragging{
  cursor:grabbing;
  transform:scale(1.12);
  box-shadow:0 20px 50px rgba(0,0,0,0.85), 0 0 40px rgba(62,207,174,0.65);
  border-color:#3ecfae;
}
.mobile-float-menu-btn:active{
  cursor:grabbing;
}
.mfb-burger-icon{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:4.5px;
  width:22px;
  pointer-events:none;
}
.mfb-burger-icon span{
  display:block;
  width:100%;
  height:2.5px;
  background:#ffffff;
  border-radius:3px;
  box-shadow:0 0 8px rgba(62,207,174,0.6);
  transition:all 0.3s ease;
}
.mfb-glow{
  position:absolute; inset:-4px; border-radius:50%; z-index:-1; pointer-events:none;
  background:radial-gradient(circle, rgba(62,207,174,0.45) 0%, transparent 70%);
  animation:pulseGlow 2s infinite alternate;
}

/* Breakpoint Móvil / Tablet: Logotipo centrado en la parte superior cubriendo el espacio limpiamente */
@media(max-width:900px){
  nav.crystal-nav{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    position:fixed !important;
    top:12px !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    width:auto !important;
    max-width:calc(100vw - 32px) !important;
    padding:6px 18px !important;
    border-radius:100px !important;
    background:rgba(10, 16, 26, 0.82) !important;
    backdrop-filter:blur(24px) saturate(180%) !important;
    -webkit-backdrop-filter:blur(24px) saturate(180%) !important;
    border:1px solid rgba(255,255,255,0.18) !important;
    box-shadow:0 10px 30px rgba(0,0,0,0.5), 0 0 20px rgba(13,154,144,0.2) !important;
    z-index:999 !important;
  }
  nav.crystal-nav .nav-logo-wrap{
    justify-content:center !important;
    margin:0 auto !important;
    gap:0 !important;
  }
  nav.crystal-nav .nav-logo-btn{
    padding:2px 4px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
  nav.crystal-nav .nav-logo-btn img{
    height:28px !important;
    width:auto !important;
  }
  /* Ocultar texto y links del crystal-nav en móvil porque el menú vive en el botón flotante */
  nav.crystal-nav .nav-brand-subtitle,
  nav.crystal-nav .nav-brand-divider,
  nav.crystal-nav .nav-links-wrap{
    display:none !important;
  }
  .mobile-float-menu-btn{
    display:flex !important;
  }
}

/* ---------- MENÚ MÓVIL FULLSCREEN A PANTALLA COMPLETA ---------- */
.mobile-menu{
  position:fixed; inset:0; z-index:99999;
  width:100vw; height:100vh; height:100dvh;
  background:rgba(6,10,18,0.97);
  backdrop-filter:blur(35px) saturate(180%);
  -webkit-backdrop-filter:blur(35px) saturate(180%);
  display:flex; flex-direction:column;
  opacity:0; pointer-events:none;
  transition:opacity 0.35s cubic-bezier(0.16,1,0.3,1);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.mobile-menu.open{
  opacity:1; pointer-events:auto;
}

/* Atmósfera de fondo con orbes y fórmulas médicas */
.mm-ambient{position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0;}
.mm-orb{
  position:absolute; border-radius:50%; pointer-events:none; will-change:transform, opacity;
}
.mm-orb-teal{
  width:420px; height:420px; top:-100px; left:-100px;
  background:radial-gradient(circle, rgba(13,154,144,0.38) 0%, rgba(13,154,144,0.06) 55%, transparent 75%);
  filter:blur(85px);
  animation:mmSmallPulse 3s ease-in-out infinite;
}
.mm-orb-coral{
  width:380px; height:380px; bottom:-90px; right:-90px;
  background:radial-gradient(circle, rgba(217,51,39,0.30) 0%, rgba(217,51,39,0.05) 55%, transparent 75%);
  filter:blur(85px);
  animation:mmSmallPulse 3.4s ease-in-out infinite 0.6s;
}
.mm-orb-amber{
  width:320px; height:320px; top:42%; right:8%;
  background:radial-gradient(circle, rgba(224,138,30,0.22) 0%, transparent 70%);
  filter:blur(75px);
  animation:mmSmallPulse 3.8s ease-in-out infinite 1.2s;
}
@keyframes mmSmallPulse{
  0%, 100%{transform:scale(1); opacity:0.75;}
  14%{transform:scale(1.06); opacity:1;}
  28%{transform:scale(1.02); opacity:0.85;}
  42%{transform:scale(1.05); opacity:0.95;}
  60%{transform:scale(1); opacity:0.75;}
}
.mm-formula-bg{
  position:absolute; inset:-20% -30%; pointer-events:none; z-index:0;
  display:flex; flex-wrap:wrap; gap:36px 56px; justify-content:space-around; align-content:space-around;
  transform:rotate(-11deg);
  opacity:0.075;
  user-select:none;
}
.mm-formula-bg span{
  font-family:var(--font-mono); font-size:14px; font-weight:700; letter-spacing:2px;
  color:#ffffff; white-space:nowrap;
}

/* Contenedor Fullscreen del Menú Móvil */
.mobile-menu-container{
  position:relative; z-index:10;
  width:100%;
  max-width:540px;
  min-height:100%;
  margin:0 auto;
  padding:22px 24px 34px;
  display:flex; flex-direction:column; justify-content:space-between;
  box-sizing:border-box;
}

/* Encabezado con Logo Centrado + Botón Cerrar Flotante */
.mm-header-center{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding-top:12px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,0.12);
  text-align:center;
}
.mm-close-trigger-float{
  position:absolute;
  top:6px;
  right:0;
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.2);
  color:#ffffff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:all 0.25s ease;
}
.mm-close-trigger-float:hover,
.mm-close-trigger-float:active{
  background:var(--red);
  border-color:var(--red);
  transform:scale(1.08) rotate(90deg);
  box-shadow:0 0 20px rgba(217,51,39,0.5);
}
.mm-brand-center{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}
.mm-logo-img-center{
  height:34px;
  width:auto;
  filter:drop-shadow(0 0 16px rgba(62,207,174,0.4));
}
.mm-brand-tag{
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#3ecfae;
}

/* Lista de navegación vertical con números clínicos */
.mm-nav-links{
  list-style:none; display:flex; flex-direction:column; gap:8px;
  margin:24px 0; padding:0; flex:1; justify-content:center;
}
.mm-link{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px; border-radius:16px;
  color:#ffffff; font-family:var(--font-body);
  font-size:15.5px; font-weight:800; letter-spacing:0.03em; text-transform:uppercase;
  transition:all 0.22s var(--ease);
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  text-decoration:none;
}
.mm-link:hover, .mm-link:focus, .mm-link:active{
  background:rgba(13,154,144,0.22);
  border-color:#3ecfae;
  color:#ffffff;
  padding-left:22px;
  transform:translateX(4px);
  box-shadow:0 8px 24px rgba(13,154,144,0.3);
}
.mm-num{
  font-family:var(--font-mono); font-size:12px; color:#3ecfae;
  font-weight:900; margin-right:12px; opacity:0.95;
}
.mm-txt{flex:1;}
.mm-arrow{
  font-size:18px; opacity:0.5; transform:translateX(-2px);
  transition:all 0.22s var(--ease); color:#ff9a90;
}
.mm-link:hover .mm-arrow, .mm-link:focus .mm-arrow{
  opacity:1; transform:translateX(3px);
}

/* Footer del Menú Móvil */
.mm-footer{
  display:flex; flex-direction:column; gap:12px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,0.12);
}
.mm-cta-btn{
  font-size:14px; font-weight:800; padding:15px 20px;
  letter-spacing:0.04em; text-align:center;
  box-shadow:0 12px 32px rgba(217,51,39,0.45);
}
.mm-contact-shortcuts{
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
}
.mm-chip-btn{
  display:flex; align-items:center; justify-content:center; gap:6px;
  padding:12px 14px; border-radius:12px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.14);
  color:rgba(255,255,255,0.92);
  font-size:12.5px; font-weight:700;
  text-decoration:none; transition:all 0.2s ease;
}
.mm-chip-btn:hover, .mm-chip-btn:active{
  background:rgba(255,255,255,0.14);
  color:#ffffff;
  border-color:#3ecfae;
}
.mm-close-icon{
  width:20px; height:20px; border-radius:50%;
  background:rgba(255,255,255,0.2);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:900; line-height:1;
}

/* ---------- RETRATO DE LA DOCTORA & MODAL FOTO EN GRANDE (SIN ZOOM) ---------- */
.doctor-portrait.clickable-portrait{
  cursor:zoom-in;
  position:relative;
  transition:transform 0.3s var(--spring), box-shadow 0.3s ease, border-color 0.3s ease;
}
.doctor-portrait.clickable-portrait:hover{
  transform:scale(1.025);
  border-color:var(--teal) !important;
  box-shadow:0 18px 45px rgba(13,154,144,0.35) !important;
}
.doc-zoom-hint{
  position:absolute; top:12px; right:12px; z-index:3;
  background:rgba(9,14,24,0.85); backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.25);
  color:#ffffff; font-size:10px; font-weight:800;
  letter-spacing:0.04em; text-transform:uppercase;
  padding:5px 12px; border-radius:100px;
  display:inline-flex; align-items:center; gap:5px;
  opacity:0.88; transition:all 0.25s ease;
  pointer-events:none;
}
.doctor-portrait.clickable-portrait:hover .doc-zoom-hint{
  opacity:1; background:var(--teal); border-color:var(--teal);
  transform:scale(1.06); box-shadow:0 0 12px rgba(13,154,144,0.5);
}

/* Modal Lightbox de Foto de la Doctora */
.doctor-photo-modal{
  position:fixed; inset:0; z-index:1000;
  width:100vw; height:100vh;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition:opacity 0.28s cubic-bezier(0.16,1,0.3,1);
  cursor:zoom-out;
  touch-action:none;
  user-select:none;
}
.doctor-photo-modal.open{
  opacity:1; pointer-events:auto;
}
.doctor-modal-backdrop{
  position:absolute; inset:0; z-index:0;
  background:radial-gradient(circle at center, rgba(13, 22, 38, 0.94) 0%, rgba(6, 10, 18, 0.98) 100%);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
}
.doctor-modal-card{
  position:relative; z-index:10;
  max-width:min(520px, 90vw);
  max-height:90vh;
  display:flex; flex-direction:column; align-items:center;
  transform:scale(0.92);
  transition:transform 0.28s cubic-bezier(0.16,1,0.3,1);
  touch-action:none;
}
.doctor-photo-modal.open .doctor-modal-card{
  transform:scale(1);
}
.doctor-modal-img{
  width:auto; max-width:100%;
  max-height:74vh;
  border-radius:24px;
  border:2.5px solid rgba(13, 154, 144, 0.6);
  box-shadow:0 30px 80px rgba(0,0,0,0.85), 0 0 45px rgba(13,154,144,0.35);
  object-fit:contain;
  pointer-events:none;
}
.doctor-modal-footer{
  margin-top:16px; text-align:center; color:#ffffff;
}
.doctor-modal-meta strong{
  display:block; font-family:var(--font-display);
  font-size:20px; font-weight:600; color:#ffffff; margin-bottom:3px;
}
.doctor-modal-meta span{
  font-size:13px; color:#3ecfae; font-weight:700;
}
.doctor-modal-close-hint{
  display:block; margin-top:8px;
  font-size:12px; color:rgba(255,255,255,0.7);
  font-family:var(--font-mono);
}

@media(prefers-reduced-motion:reduce){
  .mm-orb, .mobile-menu-panel{animation:none !important;}
}
@media(max-width:1020px){
  .nav-menu{display:none;}
  .nav-burger{display:flex;}
}
@media(min-width:1021px){
  .mobile-menu{display:none !important;}
}
@media(max-width:480px){
  .nav-ig-btn{display:none;}
  .nav-cta{font-size:11.5px; padding:9px 15px;}
  .nav-actions{gap:8px;}
}
@media(max-width:360px){
  .nav-cta{padding:9px 12px; font-size:11px;}
  .mobile-menu-panel{padding:14px 16px 18px;}
}

/* ---------- HERO: DARK LUXURY CYBER-CLINICAL ---------- */
.hero{
  position:relative;
  min-height:96vh;
  display:flex;
  align-items:center;
  padding:150px 0 70px;
  overflow:hidden;
  background-color:#080d16;
  color:#ffffff;
}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr; text-align:center;}}

.status-pill{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(13,154,144,0.18);
  border:1.5px solid rgba(13,154,144,0.45);
  padding:8px 20px; border-radius:100px;
  font-size:11px; font-weight:800; letter-spacing:0.09em; text-transform:uppercase;
  color:#3ecfae; margin-bottom:22px;
  box-shadow:0 0 20px rgba(13,154,144,0.2);
}
.pulse-dot{width:7px; height:7px; border-radius:50%; background:#3ecfae; box-shadow:0 0 10px #3ecfae; animation:liveDot 1.6s infinite;}
@keyframes liveDot{0%,100%{opacity:1; transform:scale(1);} 50%{opacity:0.35; transform:scale(0.75);}}

.hero h1{font-family:var(--font-display); font-size:clamp(38px,5vw,64px); font-weight:600; letter-spacing:-0.02em; line-height:1.08; color:#ffffff; margin-bottom:22px;}
.hero h1 em{font-style:italic; font-weight:500; background:linear-gradient(120deg,#ff5b4f 0%,#d93327 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.hero h1 em .split-word-inner{background:linear-gradient(120deg,#ff5b4f 0%,#d93327 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.hero p.lead{font-size:clamp(16px,1.6vw,18.5px); color:rgba(255,255,255,0.85); line-height:1.65; max-width:540px; margin-bottom:34px;}
@media(max-width:980px){.hero p.lead{margin-left:auto; margin-right:auto;}}
.hero p.lead strong{color:#ffffff; font-weight:800;}

.btn-row{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:36px;}
@media(max-width:980px){.btn-row{justify-content:center;}}
.btn{padding:15px 30px; border-radius:100px; font-size:14.5px; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; gap:10px; transition:all 0.35s var(--ease); border:none;}
.btn-primary{background:linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%); color:#fff; box-shadow:var(--shadow-red);}
.btn-primary:hover{transform:translateY(-3px) scale(1.015); box-shadow:0 22px 50px rgba(232,56,44,0.4);}
.btn-outline{background:rgba(255,255,255,0.08); border:1.5px solid rgba(255,255,255,0.22); color:#ffffff; box-shadow:0 8px 24px rgba(0,0,0,0.3);}
.btn-outline:hover{background:rgba(255,255,255,0.16); border-color:var(--teal); color:#ffffff; transform:translateY(-3px); box-shadow:0 12px 30px rgba(13,154,144,0.3);}
.btn-dark{background:var(--navy); color:#fff; box-shadow:0 16px 40px rgba(14,23,38,0.35);}
.btn-dark:hover{transform:translateY(-3px); background:var(--navy-soft);}
.btn-whatsapp{background:linear-gradient(135deg,#25D366 0%,#128C7E 100%); color:#fff; box-shadow:0 14px 34px rgba(37,211,102,0.35);}
.btn-whatsapp:hover{transform:translateY(-3px) scale(1.015); box-shadow:0 20px 44px rgba(37,211,102,0.5);}
.btn-block{width:100%; justify-content:center;}

.trust-strip{
  display:flex; gap:28px; flex-wrap:wrap; align-items:center;
  background:rgba(15, 23, 38, 0.82);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:20px; padding:14px 24px;
  box-shadow:0 16px 40px rgba(0,0,0,0.35), inset 0 1px 1.5px rgba(255,255,255,0.12);
}
@media(max-width:980px){.trust-strip{justify-content:center;}}
.trust-item{display:flex; flex-direction:column;}
.trust-item b{font-family:var(--font-mono); font-size:22px; font-weight:700; color:#ffffff;}
.trust-item span{font-size:11px; color:rgba(255,255,255,0.65); font-weight:700; text-transform:uppercase; letter-spacing:0.06em;}

/* Visual del hero: video enmarcado como "dispositivo" flotante */
.hero-visual{position:relative;}
.hero-frame{
  position:relative; border-radius:28px; overflow:hidden; aspect-ratio:4/5;
  border:1.5px solid rgba(13,154,144,0.4);
  box-shadow:0 24px 60px rgba(0,0,0,0.6), 0 0 35px rgba(13,154,144,0.22);
  background:var(--navy);
}
.hero-frame{--py:0px;}
.hero-frame video{width:100%; height:100%; object-fit:cover; filter:saturate(1.08) contrast(1.04); transform:translateY(var(--py)) scale(1.1);}
.hero-frame::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,23,38,0) 55%, rgba(14,23,38,0.75) 100%);}
.hero-float-card{
  position:absolute; z-index:5;
  background:rgba(15,23,38,0.88);
  backdrop-filter:blur(28px) saturate(200%);
  -webkit-backdrop-filter:blur(28px) saturate(200%);
  border:1.5px solid rgba(255,255,255,0.16);
  border-radius:20px; padding:16px 18px;
  box-shadow:0 20px 50px rgba(0,0,0,0.55), inset 0 1px 1.5px rgba(255,255,255,0.18);
  animation:floatCard 5s ease-in-out infinite;
}
@keyframes floatCard{0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);}}
.hero-float-card.top{top:22px; left:22px;}
.hero-float-card.bottom{bottom:22px; right:22px; animation-delay:1.2s;}
.hfc-label{font-size:10px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.65); margin-bottom:4px;}
.hfc-value{font-family:var(--font-mono); font-size:20px; font-weight:700; color:#ffffff; display:flex; align-items:center; gap:8px;}
.hfc-value .dot{width:7px; height:7px; border-radius:50%; background:var(--red); box-shadow:0 0 8px var(--red); animation:liveDot 1s infinite;}

/* Osciloscopio en vivo: versión Dark Cyber-Clinical */
.osc-bar{
  position:relative; overflow:hidden; margin-top:26px; min-height:150px;
  background:linear-gradient(155deg, rgba(14,24,40,0.92) 0%, rgba(9,15,26,0.96) 100%);
  backdrop-filter:blur(28px) saturate(200%);
  -webkit-backdrop-filter:blur(28px) saturate(200%);
  border:1.5px solid rgba(13,154,144,0.45);
  border-radius:22px; padding:0;
  box-shadow:0 20px 50px rgba(0,0,0,0.55), 0 0 25px rgba(13,154,144,0.18), inset 0 1px 1.5px rgba(255,255,255,0.14);
  transition:border-color 0.4s ease, box-shadow 0.4s ease;
}
.osc-bar.stress-active{border-color:var(--red); box-shadow:0 22px 50px rgba(232,56,44,0.4), inset 0 1px 1.5px rgba(255,255,255,0.2);}
#liveCanvas{position:absolute; inset:0; width:100%; height:100%; display:block; z-index:0; transition:opacity 0.4s ease;}
.osc-bar-overlay{
  position:relative; z-index:1; height:100%; min-height:150px;
  display:flex; flex-direction:column; justify-content:space-between; gap:16px;
  padding:16px 20px; background:linear-gradient(180deg, rgba(9,15,26,0.1) 0%, rgba(9,15,26,0.6) 60%, rgba(9,15,26,0.9) 100%);
}
.osc-bar-top{display:flex; align-items:center; gap:12px;}
.osc-bar-title h4{font-size:13.5px; font-weight:800; color:#ffffff; margin:0 0 2px;}
.osc-bar-title p{font-size:11.5px; color:rgba(255,255,255,0.7); margin:0;}
@media(max-width:640px){.osc-bar-top{flex-direction:column; text-align:center;} .osc-meta{align-items:center;}}
.bpm-btn{
  width:56px; height:56px; flex-shrink:0; border-radius:16px; cursor:pointer; user-select:none;
  background:linear-gradient(145deg, rgba(217,51,39,0.25), rgba(217,51,39,0.45));
  backdrop-filter:blur(6px);
  border:2px solid rgba(217,51,39,0.6);
  display:flex; flex-direction:column; align-items:center; justify-content:center; color:#ffffff;
  transition:transform 0.15s var(--spring), border-color 0.4s ease, background 0.4s ease;
  box-shadow:0 0 16px rgba(217,51,39,0.35);
}
.bpm-btn:hover{transform:scale(1.06);}
.bpm-btn.beating{animation:heartPump 0.6s infinite ease-in-out;}
@keyframes heartPump{0%,100%{transform:scale(1);} 25%{transform:scale(1.12);} 40%{transform:scale(0.96);} 60%{transform:scale(1.06);}}
.bpm-btn .bpm-val{font-size:19px; font-weight:900; font-family:var(--font-mono); line-height:1; color:#ffffff;}
.bpm-btn .bpm-tag{font-size:8px; font-weight:900; letter-spacing:0.06em; color:#ff9a90;}
.osc-meta{font-family:var(--font-mono); font-size:11.5px; color:#3ecfae; font-weight:700; display:flex; flex-direction:column; align-items:flex-end; gap:5px; min-width:190px; align-self:flex-end;}
.zone-chip{font-size:10px; font-weight:900; letter-spacing:0.05em; text-transform:uppercase; padding:3px 10px; border-radius:100px; background:rgba(13,154,144,0.22); backdrop-filter:blur(6px); border:1px solid #3ecfae; color:#3ecfae; transition:background 0.4s ease, border-color 0.4s ease, color 0.4s ease;}

/* ---------- SECCIONES ---------- */
.section{padding:96px 0; position:relative;}
.section-alt{background:linear-gradient(180deg, transparent, rgba(14,23,38,0.02) 12%, rgba(14,23,38,0.02) 88%, transparent);}
.kicker{display:inline-flex; align-items:center; gap:10px; font-size:11px; font-weight:800; letter-spacing:0.16em; text-transform:uppercase; color:#ff9a90;}
.kicker .n{font-family:var(--font-mono); color:rgba(255,255,255,0.55);}
.heading{font-family:var(--font-display); font-size:clamp(28px,3.6vw,44px); font-weight:600; letter-spacing:-0.02em; line-height:1.16; color:#ffffff; margin:10px 0 14px;}
.sub{font-size:16px; color:rgba(255,255,255,0.78); line-height:1.65; max-width:600px;}
.center{text-align:center; margin-left:auto; margin-right:auto;}
.section-head{margin-bottom:48px;}

/* ---------- PERFORMANCE LAB (Tarjetas Dark Luxury Cyber-Clinical) ---------- */
.lab-hero-grid{display:grid; grid-template-columns:1.15fr 1fr; gap:24px; margin-bottom:26px;}
@media(max-width:960px){.lab-hero-grid{grid-template-columns:1fr;}}
.media-card{position:relative; border-radius:26px; overflow:hidden; height:380px; border:1.5px solid rgba(13,154,144,0.4); box-shadow:0 24px 60px rgba(0,0,0,0.6), 0 0 35px rgba(13,154,144,0.22); background:var(--navy); --py:0px;}
.media-card video, .media-card img{width:100%; height:100%; object-fit:cover; filter:saturate(1.08) contrast(1.04); transform:translateY(var(--py)) scale(1.08);}
.media-badge{position:absolute; bottom:16px; left:16px; background:rgba(15,23,38,0.85); backdrop-filter:blur(16px); padding:8px 16px; border-radius:100px; font-size:11.5px; font-weight:800; color:#ffffff; border:1px solid rgba(255,255,255,0.16); box-shadow:0 8px 24px rgba(0,0,0,0.4); display:flex; align-items:center; gap:8px;}

.card-grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media(max-width:1000px){.card-grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:540px){.card-grid-4{grid-template-columns:1fr;}}

.glass-card{
  background:rgba(15, 23, 38, 0.84);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:22px; padding:28px 24px;
  box-shadow:0 16px 40px rgba(0,0,0,0.4), inset 0 1px 1.5px rgba(255,255,255,0.14);
  transition:transform 0.22s var(--ease), box-shadow 0.22s var(--ease), border-color 0.22s var(--ease);
  position:relative; overflow:hidden;
  contain:paint; transform:translateZ(0); will-change:transform;
}
.glass-card:hover{
  transform:translate3d(0, -6px, 0);
  background:rgba(20, 31, 50, 0.94);
  border-color:var(--teal);
  box-shadow:0 24px 50px rgba(0,0,0,0.5), 0 0 28px rgba(13,154,144,0.3), inset 0 1px 1.5px rgba(255,255,255,0.22);
}
.tag-pill{display:inline-block; font-size:10px; font-weight:800; letter-spacing:0.07em; text-transform:uppercase; padding:4px 10px; border-radius:100px; margin-bottom:14px; background:rgba(13,154,144,0.2); color:#3ecfae; border:1px solid rgba(13,154,144,0.4);}
.card-grid-4 .glass-card{position:relative; overflow:hidden; transition:border-color 0.3s var(--ease), box-shadow 0.3s var(--ease), transform 0.3s var(--ease);}
.card-grid-4 .glass-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3.5px; z-index:3;
}
.card-grid-4 .glass-card:nth-child(4n+1)::before{background:linear-gradient(90deg, var(--red) 0%, var(--amber,#f0b43c) 100%);}
.card-grid-4 .glass-card:nth-child(4n+2)::before{background:linear-gradient(90deg, var(--amber,#f0b43c) 0%, #ffd76a 100%);}
.card-grid-4 .glass-card:nth-child(4n+3)::before{background:linear-gradient(90deg, var(--teal) 0%, #7fe0d6 100%);}
.card-grid-4 .glass-card:nth-child(4n+4)::before{background:linear-gradient(90deg, #8a7bff 0%, var(--teal) 100%);}
.card-grid-4 .glass-card h4{font-size:17.5px; font-weight:800; color:#ffffff; margin-bottom:8px;}
.card-grid-4 .glass-card p{font-size:13.5px; color:rgba(255,255,255,0.78); line-height:1.6;}

/* Soporte Tap-to-Expand para Celulares */
.card-expand-head{display:flex; justify-content:space-between; align-items:flex-start; width:100%;}
.card-expand-icon{display:none; font-family:var(--font-mono); font-size:18px; font-weight:900; color:var(--teal); transition:transform 0.25s ease;}
.card-expand-body{transition:all 0.3s cubic-bezier(0.16,1,0.3,1);}

@media(max-width:900px){
  .card-grid-4 .glass-card.tap-expand{
    cursor:pointer;
    padding:16px 18px;
    border-radius:16px;
  }
  .card-grid-4 .glass-card.tap-expand .tag-pill{
    margin-bottom:6px;
  }
  .card-grid-4 .glass-card.tap-expand h4{
    margin-bottom:0;
    font-size:15px;
  }
  .card-expand-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px; height:28px;
    border-radius:50%;
    background:rgba(13,154,144,0.14);
    border:1px solid rgba(13,154,144,0.3);
    margin-left:10px;
    flex-shrink:0;
  }
  .card-grid-4 .glass-card.tap-expand:not(.open) .card-expand-body{
    max-height:0;
    opacity:0;
    overflow:hidden;
    margin-top:0;
  }
  .card-grid-4 .glass-card.tap-expand.open .card-expand-body{
    max-height:160px;
    opacity:1;
    margin-top:10px;
    border-top:1px dashed rgba(255,255,255,0.12);
    padding-top:8px;
  }
  .card-grid-4 .glass-card.tap-expand.open .card-expand-icon{
    background:var(--teal);
    color:#ffffff;
  }
}

/* ---------- COMPARADOR CIENTÍFICO ---------- */
.comp-mobile-tabs{
  display:none !important;
  grid-template-columns:1fr 1fr;
  gap:8px;
  background:rgba(10, 16, 26, 0.85);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  padding:6px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.14);
  margin-bottom:20px;
}
.comp-mtab-btn{
  padding:10px 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.14);
  background:rgba(255,255,255,0.06);
  color:rgba(255,255,255,0.85);
  font-family:var(--font-body);
  font-size:12.5px;
  font-weight:800;
  cursor:pointer;
  transition:all 0.22s var(--ease);
  text-align:center;
  outline:none;
}
.comp-mtab-btn.active{
  background:linear-gradient(135deg, rgba(13,154,144,0.6) 0%, rgba(14,24,40,0.95) 100%);
  color:#ffffff;
  border:1px solid rgba(62,207,174,0.8);
  box-shadow:0 4px 14px rgba(13,154,144,0.3);
}

.comp-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:22px;}
@media(max-width:960px){.comp-grid{grid-template-columns:1fr;}}

@media(max-width:900px){
  .comp-mobile-tabs{display:grid !important;}
  .comp-grid:not(.tab-std) #compBoxStd{display:none !important;}
  .comp-grid:not(.tab-std) #compBoxRx{display:block !important;}
  .comp-grid.tab-std #compBoxRx{display:none !important;}
  .comp-grid.tab-std #compBoxStd{display:block !important;}
}

.comp-box{border-radius:26px; padding:36px 30px; position:relative; overflow:hidden;}
.comp-box.standard{background:rgba(20, 18, 28, 0.85); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:1px solid rgba(217,51,39,0.3); box-shadow:0 20px 50px rgba(0,0,0,0.45); color:#fff;}
.comp-box.standard h3{color:#ffffff;}
.comp-box.rx{background:linear-gradient(155deg, rgba(14,26,42,0.92) 0%, rgba(9,15,26,0.96) 100%); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); color:#fff; box-shadow:0 24px 60px rgba(0,0,0,0.55), 0 0 35px rgba(13,154,144,0.25); border:1.5px solid rgba(13,154,144,0.5); position:relative; overflow:hidden;}
.comp-box.rx::before{
  content:''; position:absolute; top:-60%; left:-30%; width:160%; height:220%; z-index:0; pointer-events:none;
  background:conic-gradient(from 0deg, rgba(13,154,144,0.3), rgba(13,154,144,0.06), rgba(13,154,144,0.3));
  filter:blur(60px); animation:rotateHalo 12s linear infinite;
}
.comp-box.rx > *{position:relative; z-index:1;}
.comp-header{display:flex; justify-content:space-between; align-items:center; margin-bottom:22px;}
.comp-header h3{font-family:var(--font-display); font-size:21px; font-weight:600;}
.comp-badge{padding:4px 12px; border-radius:100px; font-size:10px; font-weight:800; letter-spacing:0.05em; text-transform:uppercase;}
.comp-badge.std{background:rgba(217,51,39,0.22); color:#ff9a90; border:1px solid rgba(217,51,39,0.45);}
.comp-badge.rx{background:rgba(13,154,144,0.25); color:#3ecfae; border:1px solid var(--teal);}
.comp-list{list-style:none; display:flex; flex-direction:column; gap:16px;}
.comp-item{display:flex; gap:14px; font-size:14.5px; line-height:1.55;}
.comp-item .icon{width:24px; height:24px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:12px; margin-top:2px;}
.comp-box.standard .icon{background:rgba(217,51,39,0.25); color:#ff9a90;}
.comp-box.standard p{color:rgba(255,255,255,0.78);}
.comp-box.rx .icon{background:linear-gradient(135deg,var(--teal),#3ecfae); color:#090e17; box-shadow:0 0 14px rgba(13,154,144,0.6);}
.comp-box.rx p{color:rgba(255,255,255,0.92);}
.comp-item p strong{color:#ffffff; font-weight:800;}

/* ---------- SECCIONES CON DEGRADADO SUAVE (SEAMLESS SECTION BLENDING) ---------- */
.section-dark-foto2{
  position:relative; overflow:hidden;
  background-color:#080d16;
  color:#ffffff;
  padding:96px 0;
}

/* Orbes y resplandores con difuminado suave en los bordes para transición continua sin choques */
.section-dark-foto2::before{
  content:''; position:absolute; inset:-10%; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 750px 580px at 18% 18%, rgba(13,154,144,0.30) 0%, transparent 65%),
    radial-gradient(ellipse 700px 520px at 18% 88%, rgba(234,92,42,0.28) 0%, rgba(224,138,30,0.12) 35%, transparent 65%),
    radial-gradient(ellipse 550px 450px at 85% 50%, rgba(13,154,144,0.18) 0%, transparent 60%);
  filter:blur(36px);
  will-change:transform, opacity;
  transform:translateZ(0);
  animation:foto2Heartbeat 2.4s ease-in-out infinite;
  mask-image:linear-gradient(to bottom, transparent 0%, black 12%, black 88%, transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 12%, black 88%, transparent 100%);
}

/* Líneas y refracciones luminosas con máscara de desvanecimiento en extremos para eliminar bordes duros */
.section-dark-foto2::after{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  opacity:0.65;
  mask-image:linear-gradient(to bottom, transparent 0%, black 15%, black 85%, transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 15%, black 85%, transparent 100%);
}

/* Patrones diferenciados y variados por sección (cero repetición monótona) */
.theme-hero::before{
  background:
    radial-gradient(ellipse 850px 650px at 20% 25%, rgba(0,240,208,0.32) 0%, transparent 65%),
    radial-gradient(ellipse 750px 550px at 80% 75%, rgba(234,92,42,0.28) 0%, transparent 65%);
}
.theme-hero::after{
  background-image:linear-gradient(125deg, transparent 40%, rgba(0,240,208,0.18) 40.2%, transparent 40.6%),
                   linear-gradient(125deg, transparent 75%, rgba(234,92,42,0.15) 75.2%, transparent 75.6%);
}

.theme-lab::before{
  background:
    radial-gradient(ellipse 800px 600px at 15% 20%, rgba(0,240,208,0.32) 0%, transparent 65%),
    radial-gradient(ellipse 700px 500px at 85% 80%, rgba(13,154,144,0.26) 0%, transparent 65%);
}
.theme-lab::after{
  background-image:linear-gradient(45deg, transparent 35%, rgba(0,240,208,0.18) 35.2%, transparent 35.6%),
                   linear-gradient(45deg, transparent 68%, rgba(13,154,144,0.16) 68.2%, transparent 68.6%);
}

.theme-comparador::before{
  background:
    radial-gradient(ellipse 750px 550px at 15% 85%, rgba(217,51,39,0.30) 0%, transparent 65%),
    radial-gradient(ellipse 700px 520px at 85% 15%, rgba(13,154,144,0.30) 0%, transparent 65%);
}
.theme-comparador::after{
  background-image:linear-gradient(155deg, transparent 30%, rgba(217,51,39,0.18) 30.2%, transparent 30.6%),
                   linear-gradient(155deg, transparent 70%, rgba(13,154,144,0.20) 70.2%, transparent 70.6%);
}

.theme-simulador::before{
  background:
    radial-gradient(ellipse 800px 600px at 18% 18%, rgba(13,154,144,0.35) 0%, transparent 65%),
    radial-gradient(ellipse 750px 520px at 82% 85%, rgba(234,92,42,0.30) 0%, rgba(224,138,30,0.14) 35%, transparent 65%),
    radial-gradient(ellipse 550px 450px at 50% 50%, rgba(13,154,144,0.18) 0%, transparent 60%);
}
.theme-simulador::after{
  background-image:linear-gradient(90deg, transparent 45%, rgba(13,154,144,0.16) 45.2%, transparent 45.6%),
                   linear-gradient(90deg, transparent 80%, rgba(234,92,42,0.14) 80.2%, transparent 80.6%);
}

.theme-metodologia::before{
  background:
    radial-gradient(ellipse 750px 550px at 15% 15%, rgba(62,207,174,0.30) 0%, transparent 65%),
    radial-gradient(ellipse 700px 520px at 85% 85%, rgba(234,92,42,0.26) 0%, transparent 65%);
}
.theme-metodologia::after{
  background-image:linear-gradient(135deg, transparent 32%, rgba(62,207,174,0.18) 32.2%, transparent 32.6%),
                   linear-gradient(135deg, transparent 66%, rgba(234,92,42,0.15) 66.2%, transparent 66.6%);
}

.theme-servicios::before{
  background:
    radial-gradient(ellipse 700px 550px at 15% 20%, rgba(139,111,214,0.26) 0%, transparent 65%),
    radial-gradient(ellipse 650px 500px at 85% 75%, rgba(47,184,201,0.26) 0%, transparent 65%),
    radial-gradient(ellipse 550px 450px at 50% 50%, rgba(255,91,79,0.20) 0%, transparent 60%);
}
.theme-servicios::after{
  background-image:linear-gradient(60deg, transparent 38%, rgba(139,111,214,0.16) 38.2%, transparent 38.6%),
                   linear-gradient(60deg, transparent 72%, rgba(47,184,201,0.16) 72.2%, transparent 72.6%);
}

.theme-doctora::before{
  background:
    radial-gradient(ellipse 750px 580px at 20% 30%, rgba(224,138,30,0.30) 0%, transparent 65%),
    radial-gradient(ellipse 700px 520px at 80% 80%, rgba(13,154,144,0.28) 0%, transparent 65%);
}
.theme-doctora::after{
  background-image:radial-gradient(circle at 75% 35%, rgba(224,138,30,0.15) 0%, transparent 55%),
                   linear-gradient(120deg, transparent 65%, rgba(13,154,144,0.16) 65.2%, transparent 65.6%);
}

.theme-testimonios::before{
  background:
    radial-gradient(ellipse 750px 550px at 15% 80%, rgba(112,80,224,0.26) 0%, transparent 65%),
    radial-gradient(ellipse 700px 500px at 85% 20%, rgba(47,184,201,0.26) 0%, transparent 65%);
}
.theme-testimonios::after{
  background-image:linear-gradient(160deg, transparent 28%, rgba(112,80,224,0.16) 28.2%, transparent 28.6%),
                   linear-gradient(160deg, transparent 75%, rgba(47,184,201,0.16) 75.2%, transparent 75.6%);
}

.theme-planes::before{
  background:
    radial-gradient(ellipse 800px 600px at 50% 20%, rgba(224,138,30,0.30) 0%, transparent 65%),
    radial-gradient(ellipse 700px 500px at 15% 85%, rgba(217,51,39,0.26) 0%, transparent 65%);
}
.theme-planes::after{
  background-image:linear-gradient(140deg, transparent 35%, rgba(224,138,30,0.18) 35.2%, transparent 35.6%),
                   linear-gradient(140deg, transparent 70%, rgba(217,51,39,0.16) 70.2%, transparent 70.6%);
}

.theme-faq::before{
  background:
    radial-gradient(ellipse 750px 550px at 20% 20%, rgba(13,154,144,0.28) 0%, transparent 65%),
    radial-gradient(ellipse 700px 500px at 80% 80%, rgba(224,138,30,0.20) 0%, transparent 65%);
}
.theme-faq::after{
  background-image:linear-gradient(30deg, transparent 40%, rgba(13,154,144,0.18) 40.2%, transparent 40.6%),
                   linear-gradient(30deg, transparent 75%, rgba(224,138,30,0.14) 75.2%, transparent 75.6%);
}

.theme-contacto::before{
  background:
    radial-gradient(ellipse 800px 600px at 25% 25%, rgba(13,154,144,0.35) 0%, transparent 65%),
    radial-gradient(ellipse 750px 500px at 75% 75%, rgba(234,92,42,0.28) 0%, transparent 65%);
}
.theme-contacto::after{
  background-image:linear-gradient(135deg, transparent 42%, rgba(13,154,144,0.20) 42.2%, transparent 42.6%),
                   linear-gradient(135deg, transparent 78%, rgba(234,92,42,0.16) 78.2%, transparent 78.6%);
}

/* Pulso Cardíaco Rápido y Enérgico (2.4s) */
@keyframes foto2Heartbeat{
  0%, 100%{opacity:0.65; transform:scale(1);}
  14%{opacity:0.98; transform:scale(1.05);}
  24%{opacity:0.72; transform:scale(1.01);}
  36%{opacity:0.92; transform:scale(1.04);}
  50%{opacity:0.65; transform:scale(1);}
}

/* Tipografía Global en Secciones Oscuras */
.section-dark-foto2 .heading{color:#ffffff !important;}
.section-dark-foto2 .sub{color:rgba(255,255,255,0.78) !important;}
.section-dark-foto2 .kicker{color:#ff8e82 !important;}
.section-dark-foto2 .kicker .n{color:rgba(255,255,255,0.55) !important;}

/* Tarjetas Estilo Dark Luxury Glass */
.section-dark-foto2 .step-tile,
.section-dark-foto2 .service-card,
.section-dark-foto2 .testi-card,
.section-dark-foto2 .plan-card:not(.featured),
.section-dark-foto2 .faq-unit,
.section-dark-foto2 .doctor-card{
  background:rgba(15, 23, 38, 0.78) !important;
  border:1px solid rgba(255, 255, 255, 0.14) !important;
  backdrop-filter:blur(16px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(180%) !important;
  color:#ffffff !important;
  box-shadow:0 16px 40px rgba(0,0,0,0.35), inset 0 1px 1px rgba(255,255,255,0.15) !important;
  transition:all 0.22s var(--ease) !important;
}
.section-dark-foto2 .step-tile h4,
.section-dark-foto2 .service-card h4,
.section-dark-foto2 .plan-card h4,
.section-dark-foto2 .doctor-info h3,
.section-dark-foto2 .faq-head span,
.section-dark-foto2 .testi-who b{
  color:#ffffff !important;
}
.section-dark-foto2 .step-tile p,
.section-dark-foto2 .service-card p,
.section-dark-foto2 .plan-desc,
.section-dark-foto2 .plan-list li,
.section-dark-foto2 .doctor-info p,
.section-dark-foto2 .faq-drawer,
.section-dark-foto2 .testi-card p.quote{
  color:rgba(255,255,255,0.78) !important;
}
.section-dark-foto2 .step-num{
  background:rgba(255,255,255,0.08) !important;
  border-color:rgba(255,255,255,0.2) !important;
  color:var(--teal) !important;
}
.section-dark-foto2 .step-tile:hover,
.section-dark-foto2 .service-card:hover,
.section-dark-foto2 .testi-card:hover,
.section-dark-foto2 .plan-card:not(.featured):hover,
.section-dark-foto2 .faq-unit:hover{
  background:rgba(20, 31, 50, 0.92) !important;
  border-color:var(--teal) !important;
  transform:translate3d(0, -6px, 0) !important;
  box-shadow:0 22px 50px rgba(13,154,144,0.25), inset 0 1px 1px rgba(255,255,255,0.25) !important;
}
.section-dark-foto2 .step-tile.active-step{
  background:linear-gradient(135deg, rgba(13,154,144,0.35) 0%, rgba(15,23,38,0.92) 100%) !important;
  border-color:var(--teal) !important;
  transform:translate3d(0, -8px, 0) scale(1.02) !important;
  box-shadow:0 22px 50px rgba(13,154,144,0.35), inset 0 0 20px rgba(13,154,144,0.2) !important;
}
.section-dark-foto2 .step-tile.active-step .step-num{
  background:var(--teal) !important;
  color:#ffffff !important;
  border-color:var(--teal) !important;
}
.section-dark-foto2 .doc-tag{
  background:rgba(255,255,255,0.08) !important;
  border-color:rgba(255,255,255,0.18) !important;
  color:#ffffff !important;
}
.section-dark-foto2 .doc-specialty{
  color:var(--teal) !important;
}
.section-dark-foto2 .plan-price{
  color:#ff9a90 !important;
}
.section-dark-foto2 .plan-list li span.chk{
  color:var(--teal) !important;
}
.section-dark-foto2 .doc-quote{
  background:rgba(255,255,255,0.05) !important;
  color:#ffffff !important;
  border-left-color:var(--red) !important;
}

/* ---------- SIMULADOR METABÓLICO (FULL RESPONSIVE & LUXURY) ---------- */
.sim-console{
  background:linear-gradient(160deg, #101725 0%, #0d131f 100%);
  border:1px solid rgba(255,255,255,0.16);
  border-radius:clamp(20px, 3.5vw, 30px);
  padding:clamp(18px, 3.5vw, 38px) clamp(16px, 3vw, 34px);
  box-shadow:0 24px 60px rgba(0,0,0,0.45);
  position:relative; overflow:hidden;
}
.sim-bg-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; filter:saturate(1.1) brightness(0.45); opacity:0.65;}
.sim-bg-overlay{position:absolute; inset:0; z-index:1; background:linear-gradient(155deg, rgba(9,14,23,0.85) 0%, rgba(13,19,31,0.72) 55%, rgba(9,14,23,0.90) 100%);}
.sim-split{position:relative; z-index:2; display:grid; grid-template-columns:1fr 1.3fr; gap:clamp(20px, 3vw, 34px); align-items:start;}
@media(max-width:980px){.sim-split{grid-template-columns:1fr;}}

/* Pestañas de Navegación del Simulador en Móviles (Menú Táctil) */
.sim-mobile-nav{
  display:none;
  position:relative; z-index:5;
  grid-template-columns:1fr 1fr;
  gap:8px;
  background:rgba(10, 16, 26, 0.85);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  padding:6px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.14);
  margin-bottom:18px;
}
.sim-mnav-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:10px 12px;
  border-radius:10px;
  border:none;
  background:transparent;
  color:rgba(255,255,255,0.7);
  font-family:var(--font-body);
  font-size:12.5px;
  font-weight:800;
  cursor:pointer;
  transition:all 0.22s var(--ease);
  white-space:nowrap;
}
.sim-mnav-btn.active{
  background:linear-gradient(135deg, rgba(13,154,144,0.4) 0%, rgba(14,24,40,0.95) 100%);
  color:#ffffff;
  border:1px solid rgba(62,207,174,0.5);
  box-shadow:0 4px 14px rgba(13,154,144,0.25);
}
.sim-calc-btn,
.sim-back-btn{
  display:none;
  width:100%;
  padding:12px 18px;
  margin-top:14px;
  border-radius:12px;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  text-align:center;
  transition:all 0.25s var(--ease);
}
.sim-calc-btn{
  background:linear-gradient(135deg, var(--teal) 0%, var(--teal-deep) 100%);
  color:#ffffff;
  border:none;
  box-shadow:0 8px 20px rgba(13,154,144,0.35);
}
.sim-back-btn{
  background:rgba(255,255,255,0.06);
  color:rgba(255,255,255,0.85);
  border:1px solid rgba(255,255,255,0.18);
}
.sim-back-btn:hover{
  background:rgba(255,255,255,0.12);
  color:#ffffff;
}

@media(max-width:980px){
  .sim-mobile-nav{
    display:grid;
  }
  .sim-calc-btn,
  .sim-back-btn{
    display:block;
  }
  /* En celulares por defecto o en tab-params solo se muestra el formulario */
  .sim-split:not(.tab-zones) #simHudPanel{
    display:none !important;
  }
  .sim-split:not(.tab-zones) #simFormBox{
    display:block !important;
  }
  /* Cuando se activa la pestaña de zonas se oculta el formulario y se ve el mapa */
  .sim-split.tab-zones #simFormBox{
    display:none !important;
  }
  .sim-split.tab-zones #simHudPanel{
    display:block !important;
  }
}

.sim-form-box{background:rgba(18,28,44,0.65); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,0.14); border-radius:20px; padding:clamp(18px, 2.5vw, 24px); min-width:0;}
.sim-group{margin-bottom:18px;}
.sim-group:last-of-type{margin-bottom:12px;}
.sim-group label{display:flex; justify-content:space-between; align-items:center; font-size:13px; font-weight:800; color:#fff; margin-bottom:8px; flex-wrap:wrap; gap:4px;}
.sim-group select{width:100%; background:rgba(255,255,255,0.96); color:var(--ink); border:1px solid rgba(255,255,255,0.2); padding:12px 16px; border-radius:12px; font-size:15px; font-weight:600; font-family:inherit; cursor:pointer; min-height:46px;}
.sim-group select:focus{outline:none; border-color:var(--teal);}
.sim-slider{width:100%; height:8px; border-radius:100px; accent-color:var(--red); cursor:pointer; background:rgba(255,255,255,0.2); margin:8px 0;}
.sim-form-box p{color:rgba(255,255,255,0.68) !important; font-size:12px; line-height:1.5; margin-top:8px;}

.hud-panel{background:rgba(18,28,44,0.65); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,0.14); border-radius:20px; padding:clamp(18px, 2.5vw, 24px); position:relative; min-width:0;}
.hud-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:16px; flex-wrap:wrap; gap:8px 12px;}
.hud-top h4{font-size:clamp(16px, 3.5vw, 18px); font-weight:800; color:#fff; margin-bottom:2px;}
.hud-top span{color:rgba(255,255,255,0.75) !important; font-size:12px;}
.hud-pill{font-size:10.5px; font-weight:800; color:var(--teal); background:rgba(13,154,144,0.18); border:1px solid var(--teal); padding:4px 12px; border-radius:100px; white-space:nowrap;}
.fuel-box{background:rgba(255,255,255,0.96); border-radius:14px; padding:12px 16px; margin-bottom:16px; border:1px solid var(--line); min-width:0;}
.fuel-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:4px 10px; font-size:clamp(11.5px, 2.8vw, 13px); font-weight:800; margin-bottom:8px;}
.fuel-track{height:9px; border-radius:100px; background:rgba(18,22,31,0.08); overflow:hidden; display:flex;}
.fuel-fat{background:linear-gradient(90deg,var(--teal),#3ecfae); height:100%; width:75%; transition:width 0.35s var(--spring);}
.fuel-carb{background:linear-gradient(90deg,var(--red),var(--amber)); height:100%; width:25%; transition:width 0.35s var(--spring);}

/* Lista de Zonas: Acción de Marcar y Adaptabilidad Total */
.zone-list{display:flex; flex-direction:column; gap:9px; margin-bottom:16px;}
.zone-row{
  background:rgba(255,255,255,0.96);
  border:1.5px solid rgba(255,255,255,0.85);
  border-left:5px solid transparent;
  border-radius:14px;
  padding:11px 16px;
  cursor:pointer;
  text-align:left;
  transition:transform 0.2s var(--spring), background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  position:relative;
  box-shadow:0 4px 14px rgba(14,23,38,0.06);
  user-select:none;
  min-width:0;
}
.zone-row:hover{
  background:#ffffff;
  border-color:rgba(13,154,144,0.6);
  border-left-color:rgba(13,154,144,0.8);
  transform:translateX(4px);
  box-shadow:0 8px 24px rgba(13,154,144,0.22);
}
.zone-row:hover .zone-marker{
  border-color:var(--teal);
  background:rgba(13,154,144,0.12);
  color:var(--teal-deep);
}
.zone-row:hover .click-hint{
  background:var(--teal);
  color:#ffffff;
  border-color:var(--teal);
}
.zone-row.active{
  background:#ffffff !important;
  border:1.5px solid var(--teal) !important;
  border-left:6px solid var(--teal) !important;
  box-shadow:0 8px 28px rgba(13,154,144,0.30), inset 0 0 0 1px var(--teal) !important;
  transform:translateX(4px);
}
.zone-row.active .zone-marker{
  background:var(--teal) !important;
  border-color:var(--teal) !important;
  color:#ffffff !important;
  transform:scale(1.06);
  box-shadow:0 0 10px rgba(13,154,144,0.5);
}
.zone-row.active .zone-marker svg{
  opacity:1;
}
.zone-row.active .zone-marked-tag{
  display:inline-flex;
}
.zone-title-group{display:flex; align-items:center; flex-wrap:wrap; gap:4px 8px; min-width:0;}
.zone-marker{
  width:20px; height:20px; border-radius:50%; border:2px solid rgba(18,22,31,0.28);
  display:inline-flex; align-items:center; justify-content:center;
  color:transparent; transition:all 0.2s var(--ease); flex-shrink:0;
}
.zone-marker svg{
  width:12px; height:12px; opacity:0; transition:opacity 0.15s;
}
.zone-name{font-size:clamp(12.5px, 2.8vw, 13.5px); font-weight:800; color:var(--ink) !important; line-height:1.3;}
.zone-row.active .zone-name{color:var(--ink) !important; font-weight:900;}
.zone-marked-tag{
  display:none; font-size:9px; font-weight:900; letter-spacing:0.06em;
  background:rgba(13,154,144,0.14); color:var(--teal-deep);
  border:1px solid rgba(13,154,144,0.3); border-radius:100px;
  padding:2px 7px; animation:badgePop 0.2s var(--spring);
}
@keyframes badgePop{from{opacity:0; transform:scale(0.8);} to{opacity:1; transform:scale(1);}}
.zone-meta-group{display:flex; align-items:center; gap:8px 12px; flex-shrink:0;}
.zone-bpm{font-family:var(--font-mono); font-size:clamp(12px, 2.5vw, 13.5px); font-weight:800; color:var(--ink) !important; white-space:nowrap;}
.zone-row.active .zone-bpm{color:var(--teal-deep) !important; font-weight:900;}
.click-hint{
  font-size:11px; color:var(--teal-deep); font-weight:800;
  padding:3px 9px; border-radius:100px; background:rgba(18,22,31,0.04);
  border:1px solid rgba(18,22,31,0.1); cursor:pointer; transition:all 0.2s; white-space:nowrap;
}
.zone-top{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:6px; flex-wrap:wrap; gap:6px 10px;
}
.zone-progress{height:6px; background:rgba(18,22,31,0.1); border-radius:100px; overflow:hidden;}
.zone-fill{height:100%; border-radius:100px;}
.hud-tip{
  background:rgba(255,255,255,0.96);
  border-left:4px solid var(--red);
  border-radius:0 12px 12px 0;
  padding:12px 16px;
  font-size:13px;
  color:var(--ink);
  line-height:1.5;
  box-shadow:0 4px 14px rgba(14,23,38,0.06);
}

/* ---------- REDISEÑO DE FICHA POPUP (DARK CYBER CLINICAL LUXURY & RESPONSIVE) ---------- */
.zone-popup{
  position:absolute; inset:0; z-index:15;
  background:linear-gradient(155deg, rgba(13, 22, 38, 0.98) 0%, rgba(8, 14, 24, 0.99) 100%);
  backdrop-filter:blur(28px) saturate(190%);
  -webkit-backdrop-filter:blur(28px) saturate(190%);
  border-radius:20px; padding:clamp(16px, 3vw, 28px) clamp(16px, 3vw, 30px);
  display:none; flex-direction:column; justify-content:space-between;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  animation:popupIn 0.25s var(--ease) forwards;
  border:1.5px solid rgba(13, 154, 144, 0.55);
  box-shadow:0 24px 70px rgba(0,0,0,0.85), 0 0 35px rgba(13,154,144,0.25), inset 0 1px 1px rgba(255,255,255,0.2);
}
@keyframes popupIn{from{opacity:0; transform:scale(0.96);} to{opacity:1; transform:scale(1);}}
.zone-popup.show{display:flex;}
.popup-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px;}
.popup-close{
  width:36px; height:36px; border-radius:50%; flex-shrink:0;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.2);
  color:#ffffff; font-size:16px; font-weight:900;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all 0.2s;
}
.popup-close:hover{background:var(--red); border-color:var(--red); color:#fff; transform:rotate(90deg);}
.popup-body h3{font-family:var(--font-display); font-size:clamp(18px, 3.5vw, 22px); font-weight:600; color:#ffffff !important; margin-bottom:8px; line-height:1.3;}
.popup-meta{display:inline-block; font-size:10.5px; font-weight:800; color:#3ecfae !important; background:rgba(13,154,144,0.22) !important; padding:4px 12px; border-radius:100px; margin-bottom:10px; border:1px solid rgba(13,154,144,0.45) !important;}
.popup-body p{font-size:clamp(13px, 2.5vw, 14.5px); color:rgba(255,255,255,0.85) !important; line-height:1.6; margin-bottom:14px;}
.popup-metric-box{
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
  background:rgba(255,255,255,0.06) !important;
  border:1px solid rgba(255,255,255,0.14) !important;
  padding:12px 14px; border-radius:12px; margin-bottom:14px;
}
@media(max-width:480px){.popup-metric-box{grid-template-columns:1fr; gap:8px;}}
.popup-metric-box span{font-size:11px; color:rgba(255,255,255,0.6) !important;}
.popup-metric-box strong{font-size:13.5px;}
.popup-metric-box .pop-fuel-val{color:#3ecfae !important; font-weight:900;}
.popup-metric-box .pop-range-val{color:#ffffff !important; font-weight:900;}

/* ---------- METODOLOGÍA ---------- */
.pipeline{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:26px;}
@media(max-width:960px){.pipeline{grid-template-columns:repeat(2,1fr);}}
@media(max-width:540px){.pipeline{grid-template-columns:1fr;}}
.step-tile{
  background:rgba(15,23,38,0.78);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:22px; padding:26px 22px; cursor:pointer;
  box-shadow:0 16px 40px rgba(0,0,0,0.30), inset 0 1px 1.5px rgba(255,255,255,0.14);
  transition:all 0.2s var(--ease);
  position:relative; overflow:hidden;
  contain:paint; transform:translateZ(0); will-change:transform;
}
.step-tile:hover{transform:translate3d(0, -6px, 0); background:rgba(20,31,50,0.92); border-color:var(--teal); box-shadow:0 22px 48px rgba(13,154,144,0.25), inset 0 1px 1.5px rgba(255,255,255,0.25);}
.step-tile.active-step{background:linear-gradient(135deg, rgba(13,154,144,0.35) 0%, rgba(15,23,38,0.92) 100%); color:#fff; border-color:var(--teal); transform:translate3d(0, -8px, 0) scale(1.02); box-shadow:0 22px 48px rgba(13,154,144,0.35), inset 0 0 20px rgba(13,154,144,0.2);}
.step-num{width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:14px; font-weight:900; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.2); color:var(--teal); margin-bottom:14px; transition:all 0.2s;}
.step-tile.active-step .step-num{background:var(--teal); color:#ffffff; border-color:var(--teal);}
.step-tile h4{font-size:18px; font-weight:800; margin-bottom:8px; color:#ffffff;}
.step-tile.active-step h4{color:#fff;}
.step-tile p{font-size:13.5px; color:rgba(255,255,255,0.78); line-height:1.55;}
.step-tile.active-step p{color:rgba(255,255,255,0.88);}
.progress-track{height:5px; background:rgba(255,255,255,0.1); border-radius:100px; overflow:hidden; margin-bottom:6px;}
.progress-fill{height:100%; background:linear-gradient(90deg,var(--teal),var(--red)); width:25%; border-radius:100px; transition:width 0.35s var(--ease);}

/* Soporte Acordeón Metodología para Móviles */
.step-top-line{display:flex; align-items:center; width:100%; gap:12px;}
.step-toggle-icon{display:none; margin-left:auto; font-size:15px; color:var(--teal); transition:transform 0.25s;}
.step-desc-wrap{transition:all 0.3s cubic-bezier(0.16,1,0.3,1);}

@media(max-width:900px){
  .pipeline{grid-template-columns:1fr; gap:10px;}
  .step-tile.tap-expand-step{
    padding:14px 18px;
    border-radius:16px;
    transform:none !important;
  }
  .step-tile.tap-expand-step .step-num{
    margin-bottom:0;
    width:32px; height:32px;
    font-size:12px;
  }
  .step-tile.tap-expand-step h4{
    margin-bottom:0;
    font-size:15px;
  }
  .step-toggle-icon{display:inline-block;}
  .step-tile.tap-expand-step:not(.active-step) .step-desc-wrap{
    max-height:0;
    opacity:0;
    overflow:hidden;
    margin-top:0;
  }
  .step-tile.tap-expand-step.active-step .step-desc-wrap{
    max-height:140px;
    opacity:1;
    margin-top:10px;
    border-top:1px dashed rgba(255,255,255,0.12);
    padding-top:8px;
  }
  .step-tile.tap-expand-step.active-step .step-toggle-icon{
    transform:rotate(180deg);
    color:#ffffff;
  }
}

/* ---------- SERVICIOS ---------- */
.service-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media(max-width:1100px){.service-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.service-grid{grid-template-columns:1fr;}}
.service-card{
  background:rgba(15,23,38,0.78);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:24px; padding:28px 22px;
  box-shadow:0 16px 40px rgba(0,0,0,0.30), inset 0 1px 1.5px rgba(255,255,255,0.14);
  transition:all 0.22s var(--ease);
  position:relative; overflow:hidden;
  contain:paint; transform:translateZ(0); will-change:transform;
}
.service-card:hover{
  transform:translate3d(0, -6px, 0);
  background:rgba(20,31,50,0.92);
  box-shadow:0 22px 48px rgba(18,24,38,0.4), 0 0 24px rgba(232,56,44,0.2), inset 0 1px 1.5px rgba(255,255,255,0.25);
  border-color:rgba(232,56,44,0.5);
}
.icon-wrap{width:50px; height:50px; border-radius:15px; margin-bottom:16px; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); transition:transform 0.25s var(--spring);}
.service-card:hover .icon-wrap{transform:scale(1.1) rotate(-4deg);}
.icon-wrap svg{width:26px; height:26px; fill:none; stroke-linecap:round; stroke-linejoin:round;}
.service-card h4{font-size:17px; font-weight:800; color:#ffffff; margin-bottom:8px;}
.service-card p{font-size:13.5px; color:rgba(255,255,255,0.76); line-height:1.55;}
.soon-badge{display:inline-block; font-size:9.5px; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; color:#ffb84d; background:rgba(224,138,30,0.18); border:1px solid rgba(224,138,30,0.4); padding:3px 9px; border-radius:100px; margin-top:10px;}

/* Soporte Acordeón Servicios para Celulares */
.srv-expand-head{display:flex; justify-content:space-between; align-items:center; width:100%;}
.srv-head-left{display:flex; align-items:center; gap:12px;}
.srv-expand-icon{display:none; font-family:var(--font-mono); font-size:18px; font-weight:900; color:var(--teal); transition:transform 0.25s;}
.srv-expand-body{transition:all 0.3s cubic-bezier(0.16,1,0.3,1);}
.srv-link-cta{
  display:inline-block;
  font-size:12.5px;
  font-weight:800;
  color:#3ecfae;
  margin-top:10px;
  text-decoration:none;
  transition:color 0.2s;
}
.srv-link-cta:hover{color:#ffffff;}

@media(max-width:900px){
  .service-grid{grid-template-columns:1fr; gap:10px;}
  .service-card.tap-expand-srv{
    padding:14px 18px;
    border-radius:16px;
    cursor:pointer;
  }
  .service-card.tap-expand-srv .icon-wrap{
    width:38px; height:38px;
    border-radius:10px;
    margin-bottom:0;
  }
  .service-card.tap-expand-srv .icon-wrap svg{
    width:20px; height:20px;
  }
  .service-card.tap-expand-srv h4{
    margin-bottom:0;
    font-size:15px;
  }
  .srv-expand-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px; height:28px;
    border-radius:50%;
    background:rgba(13,154,144,0.14);
    border:1px solid rgba(13,154,144,0.3);
    flex-shrink:0;
  }
  .service-card.tap-expand-srv:not(.open) .srv-expand-body{
    max-height:0;
    opacity:0;
    overflow:hidden;
    margin-top:0;
  }
  .service-card.tap-expand-srv.open .srv-expand-body{
    max-height:180px;
    opacity:1;
    margin-top:12px;
    border-top:1px dashed rgba(255,255,255,0.12);
    padding-top:10px;
  }
  .service-card.tap-expand-srv.open .srv-expand-icon{
    background:var(--teal);
    color:#ffffff;
  }
}

/* ---------- DOCTORA ---------- */
.doctor-card{
  background:rgba(15,23,38,0.85);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  border:1.5px solid rgba(224,138,30,0.35);
  border-radius:32px; padding:46px 42px; display:grid; grid-template-columns:290px 1fr; gap:44px; align-items:center;
  box-shadow:0 24px 60px rgba(0,0,0,0.45), 0 0 35px rgba(224,138,30,0.16), inset 0 1px 1.5px rgba(255,255,255,0.18);
  position:relative; overflow:hidden;
  contain:paint; transform:translateZ(0);
}
.doctor-card::before{
  content:''; position:absolute; top:-60%; left:-30%; width:160%; height:220%; z-index:0; pointer-events:none;
  background:conic-gradient(from 45deg, rgba(224,138,30,0.22), rgba(224,138,30,0.03), rgba(224,138,30,0.22));
  filter:blur(60px);
  animation:rotateHalo 16s linear infinite;
}
.doctor-card > *{position:relative; z-index:1;}
@media(max-width:920px){.doctor-card{grid-template-columns:1fr; text-align:center; padding:32px 22px;}}
.doctor-portrait{width:270px; height:340px; border-radius:24px; margin:0 auto; border:2.5px solid rgba(13,154,144,0.45); box-shadow:var(--shadow-lg); position:relative; overflow:hidden; background:var(--navy);}
.doctor-portrait img{width:100%; height:100%; object-fit:cover; object-position:center 12%;}
.doc-pill{position:absolute; bottom:14px; left:50%; transform:translateX(-50%); background:rgba(9,14,24,0.85); color:#3ecfae; backdrop-filter:blur(12px); border:1px solid var(--teal); font-size:10px; font-weight:900; letter-spacing:0.07em; text-transform:uppercase; padding:6px 16px; border-radius:100px; white-space:nowrap; box-shadow:var(--shadow-sm);}
.doctor-info h3{font-family:var(--font-display); font-size:30px; font-weight:600; color:#ffffff; margin-bottom:4px;}
.doc-specialty{font-size:14.5px; color:var(--teal); font-weight:800; margin-bottom:16px;}
.doctor-info p{color:rgba(255,255,255,0.82); font-size:15px; line-height:1.65; margin-bottom:18px;}
.doc-quote{background:rgba(255,255,255,0.06); border-left:3.5px solid var(--red); border-radius:0 14px 14px 0; padding:16px 20px; font-family:var(--font-display); font-style:italic; font-size:15.5px; color:#ffffff; line-height:1.55; margin-bottom:20px;}
.doc-tags{display:flex; flex-wrap:wrap; gap:8px;}
@media(max-width:920px){.doc-tags{justify-content:center;}}
.doc-tag{background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18); padding:6px 14px; border-radius:100px; font-size:12px; font-weight:700; color:#ffffff;}

/* ---------- TESTIMONIOS: CARRUSEL 3D COVERFLOW INTERACTIVO ---------- */
.testi-3d-wrapper{
  position:relative;
  max-width:1080px;
  margin:10px auto 38px;
  padding:20px 0 10px;
  perspective:1200px;
  user-select:none;
}
.testi-3d-viewport{
  position:relative;
  width:100%;
  min-height:380px;
  overflow:visible;
  display:flex;
  align-items:center;
  justify-content:center;
  touch-action:pan-y;
  cursor:grab;
}
.testi-3d-viewport:active{cursor:grabbing;}
.testi-3d-stage{
  position:relative;
  width:100%;
  height:360px;
  transform-style:preserve-3d;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Tarjeta 3D Individual */
.testi-card-3d{
  position:absolute;
  width:min(490px, 86vw);
  will-change:transform, opacity;
  transition:transform 0.48s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.48s ease, filter 0.48s ease, box-shadow 0.48s ease;
  transform-origin:center center;
  cursor:pointer;
}

/* Estados de Posicionamiento 3D */
.testi-card-3d.pos-active{
  transform:translateX(0) translateZ(0) rotateY(0deg) scale(1);
  opacity:1;
  z-index:10;
  pointer-events:auto;
  filter:blur(0);
}
.testi-card-3d.pos-next{
  transform:translateX(68%) translateZ(-160px) rotateY(-28deg) scale(0.88);
  opacity:0.75;
  z-index:6;
  filter:blur(0.5px);
}
.testi-card-3d.pos-prev{
  transform:translateX(-68%) translateZ(-160px) rotateY(28deg) scale(0.88);
  opacity:0.75;
  z-index:6;
  filter:blur(0.5px);
}
.testi-card-3d.pos-far-next{
  transform:translateX(130%) translateZ(-300px) rotateY(-45deg) scale(0.74);
  opacity:0.25;
  z-index:2;
  pointer-events:none;
}
.testi-card-3d.pos-far-prev{
  transform:translateX(-130%) translateZ(-300px) rotateY(45deg) scale(0.74);
  opacity:0.25;
  z-index:2;
  pointer-events:none;
}
.testi-card-3d.pos-hidden{
  transform:translateX(0) translateZ(-400px) scale(0.6);
  opacity:0;
  z-index:1;
  pointer-events:none;
}

/* Diseño Interior de la Tarjeta */
.testi-card-inner{
  background:linear-gradient(155deg, rgba(16, 26, 44, 0.94) 0%, rgba(9, 15, 26, 0.97) 100%);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border:1.5px solid rgba(255, 255, 255, 0.16);
  border-radius:26px;
  padding:32px 30px;
  box-shadow:0 20px 50px rgba(0, 0, 0, 0.55), inset 0 1px 1.5px rgba(255, 255, 255, 0.18);
  transition:border-color 0.3s ease, box-shadow 0.3s ease;
  position:relative;
  overflow:hidden;
}
.testi-card-3d.pos-active .testi-card-inner{
  border-color:rgba(13, 154, 144, 0.65);
  box-shadow:0 28px 70px rgba(0,0,0,0.65), 0 0 35px rgba(13, 154, 144, 0.22), inset 0 1px 2px rgba(255, 255, 255, 0.3);
}
.testi-top-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:16px;
}
.testi-stars{
  color:#ffb84d;
  font-size:15px;
  letter-spacing:3px;
  text-shadow:0 0 10px rgba(255,184,77,0.4);
}
.testi-tag-badge{
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:#3ecfae;
  background:rgba(13, 154, 144, 0.18);
  border:1px solid rgba(13, 154, 144, 0.4);
  padding:4px 12px;
  border-radius:100px;
}
.testi-card-3d p.quote{
  font-size:15px;
  color:#ffffff !important;
  line-height:1.65;
  font-style:italic;
  margin-bottom:20px;
  font-weight:400;
}
.testi-who{
  display:flex;
  align-items:center;
  gap:12px;
}
.testi-avatar{
  width:42px;
  height:42px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--teal), var(--red));
  display:flex;
  align-items:center;
  justify-content:center;
  color:#ffffff;
  font-weight:900;
  font-size:13.5px;
  flex-shrink:0;
  box-shadow:0 0 14px rgba(13,154,144,0.4);
}
.testi-who b{
  font-size:14.5px;
  color:#ffffff !important;
  font-weight:800;
  display:block;
  margin-bottom:2px;
}
.testi-who span{
  font-size:12px;
  color:#3ecfae !important;
  font-weight:600;
}

/* Flechas de Navegación 3D */
.testi-3d-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border-radius:50%;
  background:rgba(15, 24, 40, 0.85);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1.5px solid rgba(255, 255, 255, 0.2);
  color:#ffffff;
  font-size:24px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:20;
  transition:all 0.25s var(--spring);
  box-shadow:0 8px 24px rgba(0,0,0,0.4);
}
.testi-3d-arrow:hover{
  background:var(--teal);
  border-color:var(--teal);
  color:#ffffff;
  transform:translateY(-50%) scale(1.1);
  box-shadow:0 10px 28px rgba(13,154,144,0.45);
}
.testi-3d-arrow.prev{left:-10px;}
.testi-3d-arrow.next{right:-10px;}
@media(max-width:768px){
  .testi-3d-arrow{display:none;}
}

/* Paginación Dots 3D */
.testi-3d-dots{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  margin-top:20px;
}
.testi-3d-dot{
  width:10px;
  height:10px;
  border-radius:100px;
  background:rgba(255, 255, 255, 0.25);
  border:none;
  padding:0;
  cursor:pointer;
  transition:all 0.3s var(--spring);
}
.testi-3d-dot:hover{background:rgba(255, 255, 255, 0.6);}
.testi-3d-dot.active{
  width:28px;
  background:linear-gradient(90deg, var(--teal), #3ecfae);
  box-shadow:0 0 12px rgba(13,154,144,0.6);
}

/* Nota Inferior Rediseñada con Máxima Legibilidad */
.testi-note-box{
  max-width:720px;
  margin:28px auto 0;
  background:linear-gradient(135deg, rgba(13, 24, 42, 0.92) 0%, rgba(9, 16, 28, 0.95) 100%);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1.5px solid rgba(13, 154, 144, 0.45);
  border-radius:18px;
  padding:16px 22px;
  display:flex;
  align-items:center;
  gap:14px;
  box-shadow:0 12px 34px rgba(0,0,0,0.45), 0 0 20px rgba(13,154,144,0.12);
  text-align:left;
}
.testi-note-icon{
  font-size:22px;
  flex-shrink:0;
}
.testi-note-text{
  font-size:13.5px;
  color:#ffffff !important;
  line-height:1.55;
  font-weight:500;
}
.testi-note-text strong{
  color:#3ecfae !important;
  font-weight:800;
}

/* ---------- PLANES ---------- */
.plans-mobile-tabs{
  display:none !important;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  background:rgba(10,16,26,0.85);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  padding:6px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.14);
  margin-bottom:22px;
}
.plan-mtab-btn{
  padding:10px 6px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.14);
  background:rgba(255,255,255,0.06);
  color:rgba(255,255,255,0.85);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  transition:all 0.22s var(--ease);
  text-align:center;
  white-space:nowrap;
  outline:none;
}
.plan-mtab-btn.active{
  background:linear-gradient(135deg, rgba(232,56,44,0.6) 0%, rgba(14,24,40,0.95) 100%);
  color:#ffffff;
  border:1px solid rgba(232,56,44,0.8);
  box-shadow:0 4px 14px rgba(232,56,44,0.3);
}

.plans-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:1000px){.plans-grid{grid-template-columns:1fr;}}

@media(max-width:900px){
  .plans-mobile-tabs{display:grid !important;}
  /* Por defecto en celulares solo se muestra el plan Gold destacado */
  .plans-grid:not(.tab-p1):not(.tab-p3) #planCard1,
  .plans-grid:not(.tab-p1):not(.tab-p3) #planCard3{
    display:none !important;
  }
  .plans-grid:not(.tab-p1):not(.tab-p3) #planCard2{
    display:flex !important;
  }
  /* Pestaña Esencial */
  .plans-grid.tab-p1 #planCard1{display:flex !important;}
  .plans-grid.tab-p1 #planCard2,
  .plans-grid.tab-p1 #planCard3{display:none !important;}

  /* Pestaña Integral */
  .plans-grid.tab-p3 #planCard3{display:flex !important;}
  .plans-grid.tab-p3 #planCard1,
  .plans-grid.tab-p3 #planCard2{display:none !important;}
}

.plan-card{
  background:rgba(15,23,38,0.78);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:26px; padding:36px 28px; display:flex; flex-direction:column; justify-content:space-between;
  box-shadow:0 16px 40px rgba(0,0,0,0.30), inset 0 1px 1.5px rgba(255,255,255,0.14);
  transition:all 0.22s var(--ease);
  position:relative; overflow:hidden;
  contain:paint; transform:translateZ(0); will-change:transform;
}
.plan-card:hover{transform:translate3d(0, -6px, 0); background:rgba(20,31,50,0.92); border-color:var(--teal); box-shadow:0 24px 52px rgba(13,154,144,0.25), inset 0 1px 1.5px rgba(255,255,255,0.25);}
.plan-card.featured{background:linear-gradient(160deg, #162438 0%, #0d1624 100%); color:#fff; border:1.5px solid var(--red); box-shadow:0 24px 60px rgba(0,0,0,0.5), 0 0 30px rgba(217,51,39,0.3);}
.plan-halo-mask{position:absolute; inset:0; z-index:0; overflow:hidden; border-radius:inherit; pointer-events:none;}
.plan-halo-mask::before{
  content:''; position:absolute; top:-70%; left:-40%; width:180%; height:240%;
  background:conic-gradient(from 90deg, rgba(217,51,39,0.28), rgba(217,51,39,0.05), rgba(217,51,39,0.28));
  filter:blur(54px); animation:rotateHalo 12s linear infinite reverse;
}
.plan-card.featured > *:not(.plan-halo-mask){position:relative; z-index:1;}

/* Slot simétrico para badges en todas las tarjetas (alineación horizontal perfecta de títulos) */
.plan-badge-slot{
  min-height:34px;
  display:flex;
  align-items:center;
  margin-bottom:14px;
}
.plan-tag-subtle{
  display:inline-flex; align-items:center;
  font-size:10px; font-weight:800; letter-spacing:0.08em;
  text-transform:uppercase; color:rgba(255,255,255,0.65);
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  padding:4px 12px; border-radius:100px;
}
.plan-card.featured .plan-ribbon{
  display:inline-flex; align-items:center; gap:7px;
  background:linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%);
  color:#ffffff; font-size:11px; font-weight:900; letter-spacing:0.08em;
  text-transform:uppercase; padding:6px 16px; border-radius:100px;
  box-shadow:0 4px 16px rgba(217,51,39,0.5);
  border:1px solid rgba(255,255,255,0.3);
  position:relative; z-index:2;
}
.plan-card h4{font-family:var(--font-display); font-size:22px; font-weight:600; color:#ffffff; margin-bottom:6px;}
.plan-card.featured h4{color:#fff;}
.plan-price{font-family:var(--font-mono); font-size:14px; font-weight:700; color:#ff9a90; margin-bottom:14px;}
.plan-card.featured .plan-price{color:#ffb4ae;}
p.plan-desc{font-size:13.5px; color:rgba(255,255,255,0.78); line-height:1.55; margin-bottom:22px;}
.plan-card.featured p.plan-desc{color:rgba(255,255,255,0.85);}
.plan-list{list-style:none; display:flex; flex-direction:column; gap:12px; margin-bottom:26px; font-size:13.5px;}
.plan-list li{display:flex; gap:10px; align-items:flex-start; color:rgba(255,255,255,0.85);}
.plan-card.featured .plan-list li{color:#fff;}
.plan-list li span.chk{color:var(--teal); font-weight:900;}
.plan-card.featured .plan-list li span.chk{color:#3ecfae;}

/* ---------- SELECTOR DE CATEGORÍA DE PLANES (EVALUACIONES VS ENTRENAMIENTO) ---------- */
.plans-category-switch{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  max-width:560px;
  margin:0 auto 34px;
  background:rgba(10,16,26,0.85);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  padding:6px;
  border-radius:100px;
  border:1px solid rgba(255,255,255,0.14);
  box-shadow:0 12px 36px rgba(0,0,0,0.35), inset 0 1px 1px rgba(255,255,255,0.12);
}
.plan-cat-btn{
  flex:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 20px;
  border-radius:100px;
  border:1px solid transparent;
  background:transparent;
  color:rgba(255,255,255,0.75);
  font-family:var(--font-body);
  font-size:13.5px;
  font-weight:700;
  cursor:pointer;
  transition:all 0.25s var(--ease);
  outline:none;
  white-space:nowrap;
}
.plan-cat-btn:hover{
  color:#ffffff;
  background:rgba(255,255,255,0.06);
}
.plan-cat-btn.active{
  background:linear-gradient(135deg, rgba(232,56,44,0.85) 0%, rgba(180,20,20,0.95) 100%);
  color:#ffffff;
  border-color:rgba(255,120,100,0.4);
  box-shadow:0 6px 20px rgba(232,56,44,0.35), inset 0 1px 1px rgba(255,255,255,0.3);
}
.plan-cat-btn.active.cat-train{
  background:linear-gradient(135deg, rgba(13,154,144,0.9) 0%, rgba(10,100,95,0.95) 100%);
  border-color:rgba(62,207,174,0.5);
  box-shadow:0 6px 20px rgba(13,154,144,0.35), inset 0 1px 1px rgba(255,255,255,0.3);
}
.plans-cat-panel{
  display:none;
  animation:fadeInPanel 0.35s var(--ease);
}
.plans-cat-panel.active{
  display:block;
}
@keyframes fadeInPanel{
  from{opacity:0; transform:translateY(8px);}
  to{opacity:1; transform:translateY(0);}
}

/* ---------- PROGRAMAS DE ENTRENAMIENTO (BALANCE MED & BALANCE FIT) ---------- */
.training-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:26px;
  max-width:1080px;
  margin:0 auto;
}
.train-card{
  background:rgba(15,23,38,0.82);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:26px;
  padding:34px 30px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  box-shadow:0 16px 40px rgba(0,0,0,0.35), inset 0 1px 1.5px rgba(255,255,255,0.14);
  transition:all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  position:relative;
  overflow:hidden;
  cursor:pointer;
}

.train-card:hover,
.train-card.selected-train-card{
  transform:translate3d(0, -8px, 0);
  background:rgba(20,31,50,0.95);
  box-shadow:0 26px 60px rgba(0,0,0,0.5), inset 0 1px 1.5px rgba(255,255,255,0.25);
}

#trainCardMed{
  border:1.5px solid rgba(62,207,174,0.4);
}
#trainCardMed:hover,
#trainCardMed.selected-train-card{
  border-color:rgba(62,207,174,0.9);
  box-shadow:0 26px 60px rgba(0,0,0,0.5), 0 0 35px rgba(13,154,144,0.35), inset 0 1px 1.5px rgba(255,255,255,0.25);
}

#trainCardFit{
  border:1.5px solid rgba(255,255,255,0.14);
}
#trainCardFit:hover,
#trainCardFit.selected-train-card{
  border-color:rgba(255,120,100,0.9);
  box-shadow:0 26px 60px rgba(0,0,0,0.5), 0 0 35px rgba(232,56,44,0.35), inset 0 1px 1.5px rgba(255,255,255,0.25);
}

.train-card.featured-med{
  background:linear-gradient(160deg, #132738 0%, #0d1825 100%);
  box-shadow:0 24px 60px rgba(0,0,0,0.5), 0 0 32px rgba(13,154,144,0.25);
}

.train-card h4{
  font-family:var(--font-display);
  font-size:24px;
  font-weight:700;
  color:#ffffff;
  margin-bottom:6px;
  display:flex;
  align-items:center;
  gap:8px;
}
.train-card-subtitle{
  font-family:var(--font-mono);
  font-size:13.5px;
  font-weight:700;
  color:#3ecfae;
  margin-bottom:14px;
}
.train-card p.train-desc{
  font-size:13.5px;
  color:rgba(255,255,255,0.82);
  line-height:1.55;
  margin-bottom:18px;
}

/* Botones CTA en Tarjetas de Entrenamiento con Hover Sincronizado */
.train-cta-btn{
  position:relative;
  overflow:hidden;
  transition:all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  letter-spacing:0.02em;
  font-weight:800;
}

/* Hover de Botón Balance MED */
#trainCardMed .train-cta-btn{
  background:linear-gradient(135deg, var(--red) 0%, var(--red-deep) 100%);
  color:#ffffff;
  border:1px solid rgba(255,255,255,0.25);
  box-shadow:0 8px 22px rgba(217,51,39,0.35);
}

#trainCardMed:hover .train-cta-btn,
#trainCardMed.selected-train-card .train-cta-btn,
#trainCardMed .train-cta-btn:hover{
  background:linear-gradient(135deg, #ff4c3b 0%, #d93327 100%);
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 14px 34px rgba(217,51,39,0.6), 0 0 24px rgba(255,76,59,0.4);
  border-color:rgba(255,255,255,0.6);
  color:#ffffff;
}

/* Hover de Botón Balance FIT */
#trainCardFit .train-cta-btn{
  background:rgba(255,255,255,0.06);
  color:#ffffff;
  border:1px solid rgba(255,255,255,0.2);
  box-shadow:0 6px 18px rgba(0,0,0,0.25);
}

#trainCardFit:hover .train-cta-btn,
#trainCardFit.selected-train-card .train-cta-btn,
#trainCardFit .train-cta-btn:hover{
  background:linear-gradient(135deg, #0d9a90 0%, #0a746c 100%);
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 14px 34px rgba(13,154,144,0.6), 0 0 24px rgba(62,207,174,0.45);
  border-color:rgba(62,207,174,0.85);
  color:#ffffff !important;
}

/* Toggle Modalidad Individual vs Pareja */
.train-mode-toggle-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  background:rgba(8,14,24,0.6);
  border:1px solid rgba(255,255,255,0.1);
  padding:8px 12px;
  border-radius:14px;
  margin-bottom:16px;
}
.tmt-label{
  font-size:11.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:rgba(255,255,255,0.65);
}
.tmt-pills{
  display:flex;
  gap:6px;
}
.tmt-pill{
  padding:5px 12px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.05);
  color:rgba(255,255,255,0.75);
  font-size:11.5px;
  font-weight:700;
  cursor:pointer;
  transition:all 0.2s var(--ease);
  outline:none;
}
.tmt-pill:hover{
  color:#fff;
  background:rgba(255,255,255,0.1);
}
.tmt-pill.active{
  background:linear-gradient(135deg, rgba(13,154,144,0.8) 0%, rgba(10,100,95,0.9) 100%);
  color:#ffffff;
  border-color:#3ecfae;
  box-shadow:0 2px 10px rgba(13,154,144,0.4);
}

/* Frecuencias y Costos en Cajas */
.train-prices-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-bottom:22px;
}
.train-prices-row.tp-fit{
  grid-template-columns:repeat(2,1fr);
}
.tp-box{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:12px;
  padding:10px 8px;
  text-align:center;
  transition:all 0.22s var(--ease);
}
.tp-box:hover{
  background:rgba(255,255,255,0.08);
  border-color:rgba(255,255,255,0.2);
}
.tp-box.featured-tp{
  background:rgba(13,154,144,0.12);
  border-color:rgba(62,207,174,0.45);
}
.tp-freq{
  display:block;
  font-size:10.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:rgba(255,255,255,0.7);
  margin-bottom:4px;
}
.tp-cost{
  display:block;
  font-family:var(--font-mono);
  font-size:15px;
  font-weight:800;
  color:#3ecfae;
}
.tp-cost small{
  font-size:10.5px;
  color:rgba(255,255,255,0.6);
  font-weight:500;
  margin-left:2px;
}

/* Target & Features List */
.train-section-title{
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:rgba(255,255,255,0.55);
  margin-bottom:10px;
}
.train-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:24px;
  font-size:13px;
}
.train-list li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:rgba(255,255,255,0.85);
  line-height:1.45;
}
.train-list li span.chk{
  color:#3ecfae;
  font-weight:900;
  flex-shrink:0;
  margin-top:1px;
}
.train-list li span:not(.chk){
  flex:1;
}

/* Guidance Box */
.training-guidance-card{
  margin-top:30px;
  background:rgba(15,23,38,0.85);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(62,207,174,0.35);
  border-radius:20px;
  padding:24px 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  box-shadow:0 16px 40px rgba(0,0,0,0.3), 0 0 24px rgba(13,154,144,0.15);
}
.tg-left{
  display:flex;
  align-items:center;
  gap:18px;
}
.tg-icon{
  font-size:32px;
  line-height:1;
  flex-shrink:0;
}
.tg-content h4{
  font-family:var(--font-display);
  font-size:18px;
  font-weight:600;
  color:#ffffff;
  margin-bottom:4px;
}
.tg-content p{
  font-size:13.5px;
  color:rgba(255,255,255,0.8);
  line-height:1.5;
  margin:0;
}
.tg-action{
  flex-shrink:0;
}

/* Mobile Tabs for Training Programs */
.train-mobile-tabs{
  display:none !important;
  grid-template-columns:repeat(2,1fr);
  gap:6px;
  background:rgba(10,16,26,0.85);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  padding:6px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.14);
  margin-bottom:22px;
}
.train-mtab-btn{
  padding:10px 6px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.14);
  background:rgba(255,255,255,0.06);
  color:rgba(255,255,255,0.85);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  transition:all 0.22s var(--ease);
  text-align:center;
  white-space:nowrap;
  outline:none;
}
.train-mtab-btn.active{
  background:linear-gradient(135deg, rgba(13,154,144,0.8) 0%, rgba(10,100,95,0.95) 100%);
  color:#ffffff;
  border:1px solid rgba(62,207,174,0.8);
  box-shadow:0 4px 14px rgba(13,154,144,0.35);
}

@media(max-width:900px){
  .training-grid{
    grid-template-columns:1fr;
  }
  .train-mobile-tabs{
    display:grid !important;
  }
  .training-grid:not(.tab-fit) #trainCardMed{
    display:flex !important;
  }
  .training-grid:not(.tab-fit) #trainCardFit{
    display:none !important;
  }
  .training-grid.tab-fit #trainCardFit{
    display:flex !important;
  }
  .training-grid.tab-fit #trainCardMed{
    display:none !important;
  }
  .training-guidance-card{
    flex-direction:column;
    text-align:center;
    padding:22px 18px;
  }
  .tg-left{
    flex-direction:column;
    gap:10px;
  }
  .tg-action{
    width:100%;
  }
  .tg-action .btn{
    width:100%;
  }
}

@media(max-width:600px){
  .plans-category-switch{
    border-radius:16px;
    flex-direction:column;
    gap:6px;
  }
  .plan-cat-btn{
    width:100%;
    border-radius:12px;
    font-size:12.5px;
    padding:10px 14px;
  }
  .train-prices-row{
    grid-template-columns:1fr;
    gap:8px;
  }
  .train-prices-row.tp-fit{
    grid-template-columns:1fr;
  }
}

/* ---------- FAQ ---------- */
.faq-stack{max-width:800px; margin:0 auto; display:flex; flex-direction:column; gap:12px;}
.faq-unit{
  background:rgba(15,23,38,0.78);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:20px; overflow:hidden;
  box-shadow:0 12px 30px rgba(0,0,0,0.25), inset 0 1px 1.5px rgba(255,255,255,0.14);
  transition:all 0.22s var(--ease);
  contain:paint; transform:translateZ(0);
}
.faq-unit:hover{background:rgba(20,31,50,0.92); border-color:rgba(13,154,144,0.55); box-shadow:0 16px 40px rgba(13,154,144,0.16), inset 0 1px 1.5px rgba(255,255,255,0.25);}
.faq-head{padding:18px 22px; font-size:15.5px; font-weight:800; color:#ffffff; cursor:pointer; display:flex; justify-content:space-between; align-items:center; user-select:none;}
.faq-head span{color:#ffffff !important;}
.faq-head .plus{font-size:20px; color:var(--teal); transition:transform 0.25s var(--spring); font-weight:700;}
.faq-drawer{max-height:0; overflow:hidden; transition:max-height 0.3s var(--ease), padding 0.3s; padding:0 22px; color:rgba(255,255,255,0.78); font-size:14.5px; line-height:1.65;}
.faq-unit.open{border-color:var(--teal); background:rgba(18,28,46,0.94); box-shadow:0 18px 44px rgba(13,154,144,0.22), inset 0 1px 1.5px rgba(255,255,255,0.22);}
.faq-unit.open .faq-drawer{max-height:260px; padding:0 22px 20px;}
.faq-unit.open .plus{transform:rotate(45deg); color:#ff9a90;}

/* ---------- CONTACTO: LAYOUT DIVIDIDO ---------- */
.contact-split{display:grid; grid-template-columns:0.95fr 1.15fr; gap:48px; align-items:center;}
@media(max-width:900px){.contact-split{grid-template-columns:1fr; gap:34px;}}
.contact-info .kicker{color:#ff9a90; justify-content:flex-start;}
.contact-info .kicker .n{color:rgba(255,255,255,0.55);}
.contact-heading{font-size:clamp(30px,4vw,44px); font-weight:800; color:#fff; line-height:1.12; margin:14px 0 16px; letter-spacing:-0.01em;}
.contact-sub{font-size:15.5px; color:rgba(255,255,255,0.78); line-height:1.65; max-width:460px; margin-bottom:30px;}
.contact-detail-list{display:flex; flex-direction:column; gap:14px;}
.contact-detail{display:flex; align-items:center; gap:12px; font-size:15px; font-weight:700; color:#fff; text-decoration:none; transition:color 0.2s, transform 0.2s;}
a.contact-detail:hover{color:var(--teal); transform:translateX(4px);}
.contact-icon{display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:rgba(13,154,144,0.18); border:1px solid rgba(13,154,144,0.35); color:#3ecfae; box-shadow:0 0 12px rgba(13,154,144,0.2); font-size:15px; flex-shrink:0;}

/* ---------- LEAD FORM: GLASSMORFISMO CRISTALIZADO CON SOMBREADO & NEÓN ---------- */
.lead-shell{
  max-width:600px; margin:0;
  background:linear-gradient(160deg, rgba(20,33,52,0.85) 0%, rgba(12,20,34,0.92) 55%, rgba(18,14,24,0.92) 100%);
  backdrop-filter:blur(32px) saturate(200%);
  -webkit-backdrop-filter:blur(32px) saturate(200%);
  border:1.5px solid rgba(13,154,144,0.45);
  border-radius:30px; padding:42px 38px;
  box-shadow:
    0 30px 80px rgba(0,0,0,0.7),
    0 0 35px rgba(13,154,144,0.28),
    0 0 70px rgba(13,154,144,0.14),
    inset 0 1px 2px rgba(255,255,255,0.25),
    inset 0 0 20px rgba(13,154,144,0.10);
  position:relative;
  z-index:2;
}
.lead-shell::before{
  content:''; position:absolute; inset:-5px; border-radius:34px; z-index:-1; pointer-events:none;
  background:conic-gradient(from 45deg, rgba(13,154,144,0.45), rgba(217,51,39,0.3), rgba(13,154,144,0.45));
  filter:blur(22px); opacity:0.65;
  animation:rotateHalo 10s linear infinite;
}
@media(max-width:900px){.lead-shell{max-width:100%;}}
@media(max-width:640px){.lead-shell{padding:28px 22px;}}
.f-2col{
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap:18px;
  align-items:start;
  width:100%;
}
.f-2col > div{
  min-width:0;
  width:100%;
}
@media(max-width:640px){.f-2col{grid-template-columns:1fr;}}
.f-label{display:block; font-size:11.5px; font-weight:800; letter-spacing:0.06em; text-transform:uppercase; color:rgba(255,255,255,0.92); margin:14px 0 7px;}
.lead-shell input, .lead-shell select, .lead-shell textarea{
  width:100%; min-width:0; box-sizing:border-box; background:rgba(8,14,24,0.75); border:1.5px solid rgba(255,255,255,0.18); color:#ffffff;
  padding:13px 16px; border-radius:14px; font-size:14.5px; font-family:inherit; transition:all 0.3s;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.lead-shell input::placeholder, .lead-shell textarea::placeholder{color:rgba(255,255,255,0.45);}
.lead-shell input:focus, .lead-shell select:focus, .lead-shell textarea:focus{
  outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(13,154,144,0.35), 0 0 20px rgba(13,154,144,0.25);
  background:rgba(12,20,34,0.95);
}
.lead-shell select option{background:#0b1320; color:#ffffff;}

/* ---------- SELECTOR DE FORMULARIO CUSTOM LUXURY (NO MÁS CUADRO GRIS NATIVO) ---------- */
.custom-select-wrap{
  position:relative;
  width:100%;
  min-width:0;
}
.custom-select-wrap select{
  display:none !important;
}
.custom-select-trigger{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  background:rgba(8,14,24,0.75);
  border:1.5px solid rgba(255,255,255,0.18);
  color:#ffffff;
  padding:13px 16px;
  border-radius:14px;
  font-size:14.5px;
  font-family:inherit;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:all 0.3s var(--ease);
  user-select:none;
}
.custom-select-trigger:hover,
.custom-select-wrap.open .custom-select-trigger{
  border-color:var(--teal);
  background:rgba(12,20,34,0.95);
  box-shadow:0 0 0 3px rgba(13,154,144,0.3), 0 0 20px rgba(13,154,144,0.2);
}
.custom-select-trigger .cst-text{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#ffffff;
  font-weight:600;
  flex:1 1 auto;
  min-width:0;
}
.custom-select-trigger .cst-text.placeholder{
  color:rgba(255,255,255,0.45);
  font-weight:400;
}
.custom-select-trigger .cst-arrow{
  font-size:11px;
  color:#3ecfae;
  transition:transform 0.3s var(--spring);
  flex-shrink:0;
}
.custom-select-wrap.open .custom-select-trigger .cst-arrow{
  transform:rotate(180deg);
  color:#ff9a90;
}

/* Menú flotante de opciones (Dark Glass + Cyan Specular Glow) */
.custom-select-dropdown{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  width:100%;
  max-height:280px;
  overflow-y:auto;
  background:linear-gradient(165deg, rgba(14,24,40,0.96) 0%, rgba(8,14,24,0.98) 100%);
  backdrop-filter:blur(28px) saturate(180%);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
  border:1.5px solid rgba(13,154,144,0.5);
  border-radius:18px;
  padding:8px;
  box-shadow:0 24px 60px rgba(0,0,0,0.85), 0 0 35px rgba(13,154,144,0.25), inset 0 1px 2px rgba(255,255,255,0.2);
  z-index:100;
  opacity:0;
  transform:translateY(-8px) scale(0.98);
  pointer-events:none;
  transition:opacity 0.28s var(--ease), transform 0.28s var(--spring);
  list-style:none;
}
.custom-select-wrap.open .custom-select-dropdown{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}

/* Opciones individuales con Hover de Letra Gradiente y Luz Neón */
.custom-select-option{
  padding:11px 16px;
  border-radius:12px;
  font-size:14px;
  font-weight:600;
  color:rgba(255,255,255,0.88);
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:10px;
  transition:all 0.22s var(--ease);
  position:relative;
}
.custom-select-option .opt-bullet{
  font-size:10px;
  color:#3ecfae;
  opacity:0;
  transform:scale(0.5);
  transition:all 0.22s var(--spring);
}
.custom-select-option .opt-text{
  transition:all 0.22s ease;
}

/* EFECTO HOVER EXCLUSIVO: Letra en gradiente de color brillante, resalte suave sin fondo gris */
.custom-select-option:hover,
.custom-select-option.focused{
  background:rgba(13,154,144,0.14);
  padding-left:20px;
  border-left:3px solid #3ecfae;
}
.custom-select-option:hover .opt-text,
.custom-select-option.focused .opt-text{
  background:linear-gradient(90deg, #3ecfae 0%, #ffffff 50%, #ff9a90 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:0 0 16px rgba(62,207,174,0.5);
  font-weight:800;
}
.custom-select-option:hover .opt-bullet,
.custom-select-option.focused .opt-bullet{
  opacity:1;
  transform:scale(1);
}
.custom-select-option.selected{
  background:rgba(13,154,144,0.22);
  border-left:3px solid #3ecfae;
}
.custom-select-option.selected .opt-text{
  color:#3ecfae;
  font-weight:800;
}
.custom-select-option.selected .opt-bullet{
  opacity:1;
  transform:scale(1);
}

.consent-row{display:flex; align-items:flex-start; gap:12px; margin-top:18px;}
.consent-row input{width:18px; height:18px; accent-color:var(--teal); margin-top:2px;}
.consent-row span{font-size:12.5px; color:rgba(255,255,255,0.85); line-height:1.5;}
.consent-row span a{color:#3ecfae !important;}
.privacy-note{font-size:11.5px; color:rgba(255,255,255,0.55); margin-top:8px; line-height:1.5;}
.form-actions{margin-top:24px; display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.contact-hours-note{font-size:12px; color:rgba(255,255,255,0.62);}
.lead-shell .btn-primary{background:linear-gradient(90deg, var(--teal) 0%, var(--teal-deep) 45%, var(--red-deep) 100%); background-size:180% 100%; width:100%; justify-content:center; box-shadow:0 16px 34px rgba(13,154,144,0.35);}
.lead-shell .btn-primary:hover{background-position:100% 0;}
/* Barra de Progreso Dinámica de Llenado del Formulario con Etapas */
.form-progress-wrap{
  margin-bottom:16px;
  background:rgba(8,14,24,0.75);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:16px;
  padding:12px 16px;
  backdrop-filter:blur(12px);
  box-shadow:0 8px 24px rgba(0,0,0,0.35);
}
.form-progress-header{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:8px;
}
.form-progress-label{
  font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.06em;
  color:#ffffff; display:inline-flex; align-items:center; gap:6px;
}
.form-progress-pct{
  font-family:var(--font-mono); font-size:12px; font-weight:900; color:#3ecfae;
}
.form-progress-track{
  width:100%; height:6px; background:rgba(255,255,255,0.12); border-radius:100px;
  overflow:hidden; position:relative; margin-bottom:8px;
}
.form-progress-bar{
  height:100%; width:0%;
  background:linear-gradient(90deg, #0d9a90 0%, #3ecfae 50%, #ff5b4f 100%);
  border-radius:100px;
  transition:width 0.35s var(--spring);
  box-shadow:0 0 12px rgba(62,207,174,0.7);
}
.form-steps-mini{
  display:flex; justify-content:space-between; align-items:center; gap:4px;
}
.fs-dot{
  font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.04em;
  color:rgba(255,255,255,0.45); transition:all 0.3s ease;
}
.fs-dot.active{
  color:#ffffff; text-shadow:0 0 8px rgba(255,255,255,0.5);
}
.fs-dot.done{
  color:#3ecfae; text-shadow:0 0 8px rgba(62,207,174,0.6);
}

/* Alerta de Acción / Plan Seleccionado */
.form-action-alert{
  display:flex; align-items:center; gap:10px;
  background:linear-gradient(135deg, rgba(13,154,144,0.22) 0%, rgba(13,154,144,0.08) 100%);
  border:1.5px solid #3ecfae;
  border-radius:14px; padding:10px 16px; margin-bottom:16px;
  box-shadow:0 8px 25px rgba(13,154,144,0.3);
  animation:alertSlideIn 0.35s var(--spring);
}
@keyframes alertSlideIn{
  from{opacity:0; transform:translateY(-8px);}
  to{opacity:1; transform:translateY(0);}
}
.faa-icon{
  font-size:12px; color:#3ecfae; animation:liveDot 1.5s infinite;
}
.faa-text{
  font-size:12.5px; font-weight:800; color:#ffffff; line-height:1.4;
}

/* Animación de Pulso Luminoso en el Trigger al Preseleccionar */
.custom-select-trigger.cst-highlight-pulse{
  animation:triggerPulseGlow 1.2s ease-out;
}
@keyframes triggerPulseGlow{
  0%{border-color:#3ecfae; box-shadow:0 0 0 0 rgba(62,207,174,0.8), 0 0 30px rgba(62,207,174,0.5);}
  70%{border-color:#3ecfae; box-shadow:0 0 0 8px rgba(62,207,174,0), 0 0 15px rgba(62,207,174,0.2);}
  100%{border-color:var(--teal); box-shadow:none;}
}

/* Toast de confirmación con difuminado suave */
.form-status{
  font-size:13px; font-weight:700; padding:14px 18px; border-radius:14px; margin-top:18px;
  display:none; opacity:0; transform:translateY(8px);
  transition:opacity 0.6s ease, transform 0.6s ease;
}
.form-status.show{
  display:flex; align-items:center; gap:10px;
  opacity:1; transform:translateY(0);
}
.form-status.fading{
  opacity:0; transform:translateY(-6px);
  transition:opacity 1s ease, transform 1s ease;
}
.form-status.ok{
  background:rgba(13,154,144,0.22); color:#8bf0e4;
  border:1.5px solid rgba(13,154,144,0.55);
  box-shadow:0 8px 24px rgba(13,154,144,0.25);
}
.form-status.err{
  background:rgba(232,56,44,0.20); color:#ffb3ab;
  border:1.5px solid rgba(232,56,44,0.5);
  box-shadow:0 8px 24px rgba(232,56,44,0.25);
}

/* ---------- INTRO CINEMATOGRÁFICA "CORREO ENVIADO" ---------- */
.cinematic-success-overlay{
  position:fixed; inset:0; z-index:1500;
  width:100vw; height:100vh;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition:opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.cinematic-success-overlay.open{
  opacity:1; pointer-events:auto;
}
.cso-backdrop{
  position:absolute; inset:0;
  background:radial-gradient(circle at center, rgba(14,24,42,0.96) 0%, rgba(6,10,18,0.98) 100%);
  backdrop-filter:blur(30px);
  -webkit-backdrop-filter:blur(30px);
}
.cso-shockwave{
  position:absolute; width:120px; height:120px; border-radius:50%;
  border:2px solid rgba(62,207,174,0.8);
  opacity:0; pointer-events:none;
}
.cinematic-success-overlay.open .cso-shockwave{
  animation:shockwavePulse 1.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes shockwavePulse{
  0%{transform:scale(0.5); opacity:0.9;}
  60%{opacity:0.5;}
  100%{transform:scale(7); opacity:0;}
}
.cso-card{
  position:relative; z-index:10;
  max-width:min(500px, 90vw);
  padding:40px 32px;
  text-align:center;
  background:linear-gradient(160deg, rgba(20,34,54,0.92) 0%, rgba(10,17,28,0.96) 100%);
  backdrop-filter:blur(24px);
  border:1.5px solid rgba(13,154,144,0.6);
  border-radius:28px;
  box-shadow:0 30px 90px rgba(0,0,0,0.85), 0 0 50px rgba(13,154,144,0.35), inset 0 1px 2px rgba(255,255,255,0.3);
  transform:scale(0.85);
  transition:transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.cinematic-success-overlay.open .cso-card{
  transform:scale(1);
}
.cso-icon-wrap{
  position:relative; width:80px; height:80px; margin:0 auto 20px;
  display:flex; align-items:center; justify-content:center;
}
.cso-icon-glow{
  position:absolute; inset:-10px; border-radius:50%;
  background:radial-gradient(circle, rgba(62,207,174,0.6) 0%, transparent 70%);
  animation:pulseGlow 1.6s infinite alternate;
}
@keyframes pulseGlow{from{opacity:0.5; transform:scale(0.9);} to{opacity:1; transform:scale(1.15);}}
.cso-check-svg{
  width:72px; height:72px; position:relative; z-index:2;
}
.cso-check-circle{
  stroke:#3ecfae; stroke-width:2.5; stroke-dasharray:166; stroke-dashoffset:166;
  transition:stroke-dashoffset 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.1s;
}
.cso-check-path{
  stroke:#ffffff; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:48; stroke-dashoffset:48;
  transition:stroke-dashoffset 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.5s;
}
.cinematic-success-overlay.open .cso-check-circle{stroke-dashoffset:0;}
.cinematic-success-overlay.open .cso-check-path{stroke-dashoffset:0;}

.cso-kicker{
  font-family:var(--font-mono); font-size:11px; font-weight:800; letter-spacing:0.14em;
  text-transform:uppercase; color:#3ecfae; margin-bottom:8px;
}
.cso-title{
  font-family:var(--font-display); font-size:clamp(28px, 4.5vw, 38px); font-weight:600;
  color:#ffffff; margin-bottom:12px; letter-spacing:-0.02em;
  text-shadow:0 0 20px rgba(255,255,255,0.4);
}
.cso-desc{
  font-size:15px; color:rgba(255,255,255,0.85); line-height:1.6; max-width:420px; margin:0 auto;
}
.cso-logo-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.12);
}
.cso-brand-logo{
  height:28px;
  width:auto;
  filter:drop-shadow(0 0 12px rgba(62,207,174,0.45));
  opacity:0.92;
}

/* ---------- MOVIMIENTO PREMIUM: shine en botones, tilt + glow en tarjetas, spotlight de cursor ---------- */
.btn, .nav-cta, .btn-whatsapp{position:relative; overflow:hidden;}
.btn::before, .nav-cta::before, .btn-whatsapp::before{
  content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,0.55), transparent);
  transform:skewX(-20deg); transition:left 0.65s var(--ease); pointer-events:none; z-index:1;
}
.btn:hover::before, .nav-cta:hover::before, .btn-whatsapp:hover::before{left:130%;}
.btn-outline::before{background:linear-gradient(115deg, transparent, rgba(13,154,144,0.28), transparent);}

.tilt-card{position:relative; transform-style:preserve-3d; will-change:transform; transition:transform 0.5s var(--ease), box-shadow 0.5s var(--ease), border-color 0.5s var(--ease);}
.tilt-card::after{
  content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,0.4), transparent 60%);
  transition:opacity 0.4s ease; z-index:3;
}
.tilt-card:hover::after{opacity:1;}
.doctor-card.tilt-card::after{background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,0.22), transparent 60%);}

.media-card video, .media-card img{transition:transform 1s var(--ease), filter 1s var(--ease);}
.media-card:hover video, .media-card:hover img{transform:translateY(var(--py)) scale(1.14);}

/* Spotlight de cursor en el hero: sensación de vidrio iluminado que sigue el mouse */
.hero{--spot-x:50%; --spot-y:38%;}
.hero::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(560px circle at var(--spot-x) var(--spot-y), rgba(13,154,144,0.14), transparent 62%);
  transition:background 0.2s ease;
}

/* Indicador de scroll, estilo "DESCUBRIR" */
.scroll-cue{position:absolute; right:28px; bottom:26px; z-index:2; display:flex; align-items:center; gap:10px; font-family:var(--font-mono); font-size:10px; font-weight:800; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-mute); opacity:0.85;}
.scroll-cue .cue-line{width:38px; height:1px; background:rgba(18,22,31,0.15); position:relative; overflow:hidden; border-radius:2px;}
.scroll-cue .cue-line::after{content:''; position:absolute; left:-40%; top:0; width:40%; height:100%; background:linear-gradient(90deg, var(--teal), var(--red)); animation:cueSlide 2.4s ease-in-out infinite;}
@keyframes cueSlide{0%{left:-40%;} 50%{left:100%;} 100%{left:100%;}}
@media(max-width:980px){.scroll-cue{display:none;}}

/* ---------- FOOTER ULTRA PREMIUM DARK LUXURY & ANIMADO ---------- */
footer.site-footer{
  background-color:#060a12;
  color:#ffffff;
  border-top:1.5px solid rgba(13,154,144,0.4);
  box-shadow:0 -15px 50px rgba(13,154,144,0.12);
  padding:80px 0 34px;
  position:relative;
  overflow:hidden;
}
footer.site-footer::before{
  content:''; position:absolute; inset:-10%; pointer-events:none; z-index:0;
  background:
    radial-gradient(ellipse 700px 500px at 15% 20%, rgba(13,154,144,0.22) 0%, transparent 65%),
    radial-gradient(ellipse 650px 450px at 85% 80%, rgba(217,51,39,0.20) 0%, transparent 65%);
  filter:blur(36px);
  animation:foto2Heartbeat 3s ease-in-out infinite;
}
.footer-bg-ecg-canvas{
  position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:0.14; pointer-events:none;
}
.footer-grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.8fr 1fr 1.1fr 1.3fr; gap:44px;
  padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.12);
}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr 1fr; gap:36px;}}
@media(max-width:580px){.footer-grid{grid-template-columns:1fr; gap:28px;}}

.footer-brand-logo{
  height:38px; width:auto; margin-bottom:16px;
  filter:drop-shadow(0 0 12px rgba(255,255,255,0.3));
}
.footer-tagline{
  color:rgba(255,255,255,0.76); font-size:14px; line-height:1.65; max-width:340px; margin-bottom:20px;
}
.footer-doc-badge{
  display:inline-flex; align-items:center; gap:12px;
  background:rgba(15,24,40,0.85); backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,0.16); border-radius:16px;
  padding:10px 16px; margin-bottom:20px; box-shadow:0 8px 24px rgba(0,0,0,0.4);
}
.doc-badge-icon{font-size:20px;}
.footer-doc-badge strong{display:block; font-size:13.5px; color:#ffffff; font-weight:800;}
.footer-doc-badge span{font-size:11.5px; color:#3ecfae; font-weight:700;}

.footer-social-row{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.footer-pill-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 18px; border-radius:100px; font-size:12px; font-weight:800;
  text-transform:uppercase; letter-spacing:0.04em; color:#ffffff; text-decoration:none;
  transition:all 0.25s var(--spring);
}
.footer-pill-btn.ig{
  background:linear-gradient(135deg,#833ab4 0%,#fd1d1d 50%,#fcb045 100%);
  box-shadow:0 6px 20px rgba(253,29,29,0.35);
}
.footer-pill-btn.ig:hover{transform:translateY(-3px) scale(1.05); box-shadow:0 10px 28px rgba(253,29,29,0.5);}
.footer-pill-btn.wa{
  background:linear-gradient(135deg,#25D366 0%,#128C7E 100%);
  box-shadow:0 6px 20px rgba(37,211,102,0.35);
}
.footer-pill-btn.wa:hover{transform:translateY(-3px) scale(1.05); box-shadow:0 10px 28px rgba(37,211,102,0.5);}
.dot-live{width:7px; height:7px; border-radius:50%; background:#fff; box-shadow:0 0 8px #fff; animation:liveDot 1.4s infinite;}

footer h5{
  font-family:var(--font-display); font-size:16px; font-weight:600;
  letter-spacing:0.02em; color:#ffffff; margin-bottom:20px;
  position:relative; display:inline-block;
}
footer h5::after{
  content:''; position:absolute; bottom:-6px; left:0; width:24px; height:2px;
  background:var(--teal); border-radius:2px;
}
.footer-links{list-style:none; display:flex; flex-direction:column; gap:10px; font-size:14px;}
.footer-links li a{
  color:rgba(255,255,255,0.76); font-weight:600; display:inline-flex; align-items:center; gap:8px;
  transition:all 0.22s var(--ease);
}
.fl-bullet{color:var(--teal); font-size:16px; transition:transform 0.22s var(--ease);}
.footer-links li a:hover{
  color:#ffffff; transform:translateX(5px);
}
.footer-links li a:hover .fl-bullet{color:var(--red); transform:translateX(3px);}

.footer-contact-card{
  background:rgba(15,24,40,0.8); backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,0.14); border-radius:20px;
  padding:20px 18px; display:flex; flex-direction:column; gap:12px;
  box-shadow:0 12px 30px rgba(0,0,0,0.4);
}
.fc-row{display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:rgba(255,255,255,0.85);}
.fc-icon{flex-shrink:0; font-size:15px;}
.fc-row a{color:#ffffff; text-decoration:none; font-weight:700; transition:color 0.2s;}
.fc-row a:hover{color:#3ecfae;}
.fc-schedule{
  border-top:1px solid rgba(255,255,255,0.1); padding-top:10px; margin-top:4px;
}
.sched-tag{
  display:inline-block; font-size:10px; font-weight:900; letter-spacing:0.06em;
  text-transform:uppercase; color:#3ecfae; margin-bottom:4px;
}
.fc-schedule p{font-size:12px; color:rgba(255,255,255,0.7); line-height:1.5; margin:0;}

/* Franja Inferior con Créditos Requeridos */
.footer-bottom-bar{
  position:relative; z-index:2;
  display:flex; justify-content:space-between; align-items:center;
  padding-top:28px; font-size:13px; color:rgba(255,255,255,0.65);
  flex-wrap:wrap; gap:16px;
}
.fb-left{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.fb-status-pill{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(13,154,144,0.18); border:1px solid rgba(13,154,144,0.4);
  color:#3ecfae; font-size:11px; font-weight:800; padding:4px 12px; border-radius:100px;
}

/* Powered by José Correa Link */
.powered-by-box{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(15,24,40,0.85); backdrop-filter:blur(12px);
  border:1.5px solid rgba(255,255,255,0.18); border-radius:100px;
  padding:6px 14px 6px 16px;
  box-shadow:0 8px 24px rgba(0,0,0,0.45);
  transition:all 0.25s var(--spring);
}
.powered-by-box:hover{
  border-color:var(--teal);
  box-shadow:0 10px 30px rgba(13,154,144,0.35);
  transform:translateY(-2px);
}
.pb-label{font-size:11.5px; color:rgba(255,255,255,0.65); font-weight:600;}
.powered-by-link{
  display:inline-flex; align-items:center; gap:8px; text-decoration:none;
}
.pb-name{font-size:12.5px; font-weight:900; color:#ffffff; letter-spacing:0.02em;}
.pb-btn-pill{
  background:linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%);
  color:#ffffff; font-size:10.5px; font-weight:900; letter-spacing:0.04em;
  padding:3px 10px; border-radius:100px; box-shadow:0 4px 12px rgba(217,51,39,0.4);
  transition:transform 0.2s ease;
}
.powered-by-box:hover .pb-btn-pill{transform:scale(1.06);}

/* ---------- WHATSAPP FLOTANTE ---------- */
.wa-float{position:fixed; right:22px; bottom:22px; z-index:400; width:58px; height:58px; border-radius:50%; background:linear-gradient(135deg,#25D366 0%,#128C7E 100%); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 32px rgba(37,211,102,0.45); animation:waPulse 3.2s infinite ease-in-out; transition:all 0.35s var(--spring);}
@keyframes waPulse{0%,100%{box-shadow:0 8px 20px rgba(37,211,102,0.4); transform:scale(1);} 50%{box-shadow:0 14px 34px rgba(37,211,102,0.65); transform:scale(1.04);}}
.wa-float:hover{transform:translateY(-4px) scale(1.1);}
.wa-float svg{width:29px; height:29px; fill:#fff;}

/* ---------- BARRA DE PROGRESO DE SCROLL ---------- */
.scroll-progress{position:fixed; top:0; left:0; height:3px; width:0%; z-index:500; background:linear-gradient(90deg, var(--teal), var(--red)); box-shadow:0 0 10px rgba(217,51,39,0.4); transition:width 0.1s linear; pointer-events:none;}

/* ---------- TEXTO CON REVEAL PALABRA POR PALABRA ---------- */
.split-word{display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:0.08em; margin-bottom:-0.08em;}
.split-word-inner{display:inline-block; transform:translateY(112%); transition:transform 0.75s var(--ease); transition-delay:calc(var(--w, 0) * 0.045s);}
.split-words.in-view .split-word-inner{transform:translateY(0);}

/* ---------- CONTADORES NUMÉRICOS ---------- */
[data-count-to]{font-variant-numeric:tabular-nums;}

/* ---------- MARQUEE DE CREDIBILIDAD ---------- */
.marquee-strip{position:relative; overflow:hidden; background:var(--navy); padding:14px 0; white-space:nowrap; z-index:2;}
.marquee-track{display:inline-flex; align-items:center; gap:0; animation:marqueeScroll 32s linear infinite;}
.marquee-track span{display:inline-flex; align-items:center; font-family:var(--font-mono); font-size:12.5px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.85); padding:0 28px;}
.marquee-track span::after{content:'✦'; margin-left:28px; color:var(--red); font-size:10px;}
@keyframes marqueeScroll{0%{transform:translateX(0);} 100%{transform:translateX(-50%);}}

/* ---------- NAV: INDICADOR DE SECCIÓN ACTIVA (scrollspy) ---------- */
.nav-menu li a.active{color:var(--ink);}
.nav-menu li a.active::after{width:100%;}

/* ---------- ICONOS DE SERVICIO: TRAZO SVG ANIMADO ---------- */
.icon-wrap svg path, .icon-wrap svg circle, .icon-wrap svg line, .icon-wrap svg rect{
  transition:stroke-dashoffset 1.1s var(--ease);
}

/* ---------- LOGO SINCRONIZADO CON EL BPM ---------- */
.nav-logo-btn img{transition:transform 0.12s ease-out;}
.nav-logo-btn.beat img{animation:logoBeat 0.5s ease-in-out;}
@keyframes logoBeat{0%{transform:scale(1);} 35%{transform:scale(1.09);} 60%{transform:scale(0.98);} 100%{transform:scale(1);}}

/* ---------- RITMO OSCURO: secciones full-bleed dark para romper la monotonía clara ---------- */
.section-dark{background:var(--navy); position:relative; overflow:hidden;}
.section-dark .kicker{color:#ff9a90;}
.section-dark .kicker .n{color:rgba(255,255,255,0.5);}
.section-dark .heading{color:#fff;}
.section-dark .sub{color:rgba(255,255,255,0.72);}
.section-dark .step-tile{background:rgba(255,255,255,0.06); backdrop-filter:blur(20px); border-color:rgba(255,255,255,0.14);}
.section-dark .step-tile h4{color:#fff;}
.section-dark .step-tile p{color:rgba(255,255,255,0.68);}
.section-dark .step-num{background:rgba(255,255,255,0.1); color:#fff; border-color:rgba(255,255,255,0.25);}
.section-dark .step-tile.active-step{background:linear-gradient(135deg,var(--teal),var(--teal-deep)); border-color:var(--teal); box-shadow:0 20px 46px rgba(13,154,144,0.35);}
.section-dark .step-tile.active-step h4, .section-dark .step-tile.active-step p{color:#fff;}
.section-dark .step-tile.active-step .step-num{background:#fff; color:var(--teal-deep); border-color:#fff;}
.section-dark .progress-track{background:rgba(255,255,255,0.12);}

/* Brillo que recorre la barra de progreso del proceso, como una señal viajando por el pipeline */
.progress-fill{position:relative; overflow:hidden;}
.progress-fill::after{
  content:''; position:absolute; inset:0; width:44%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.65), transparent);
  animation:progressShimmer 1.9s ease-in-out infinite;
}
@keyframes progressShimmer{0%{transform:translateX(-120%);} 100%{transform:translateX(260%);}}

/* ---------- FRANJA CINEMATOGRÁFICA (divisor full-bleed con video) ---------- */
.cinematic-band{position:relative; overflow:hidden; min-height:58vh; display:flex; align-items:center; background:var(--navy);}
.cinematic-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; filter:saturate(1.12) brightness(0.5);}
.cinematic-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(14,23,38,0.8) 0%, rgba(14,23,38,0.5) 45%, rgba(14,23,38,0.85) 100%);
}
.cinematic-content{position:relative; z-index:2; text-align:center; max-width:760px; margin:0 auto; padding:100px 24px;}
.cinematic-kicker{display:inline-flex; align-items:center; gap:10px; font-size:11px; font-weight:800; letter-spacing:0.16em; text-transform:uppercase; color:#ff9a90; margin-bottom:14px;}
.cinematic-heading{font-family:var(--font-display); font-size:clamp(30px,4.2vw,50px); font-weight:600; letter-spacing:-0.02em; color:#fff; line-height:1.16; margin:0 0 18px;}
.cinematic-sub{color:rgba(255,255,255,0.78); font-size:16.5px; line-height:1.6; max-width:560px; margin:0 auto 30px;}

/* ---------- VIDEO DE FONDO EN CONTACTO ---------- */
.video-bg-section{position:relative; overflow:hidden;}
.section-bg-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; filter:saturate(1.05) brightness(0.5);}
.section-bg-overlay{position:absolute; inset:0; z-index:1; background:linear-gradient(160deg, rgba(14,23,38,0.86) 0%, rgba(14,23,38,0.68) 55%, rgba(14,23,38,0.88) 100%);}
#contacto.video-bg-section .kicker{color:#ff9a90;}
#contacto.video-bg-section .heading{color:#fff;}
#contacto.video-bg-section .sub{color:rgba(255,255,255,0.75);}

/* ---------- OVERLAY OSCURO TESTIMONIOS ---------- */
.section-bg-video.crystal-video{filter:saturate(1.1) brightness(0.5) blur(1px);}
.section-bg-overlay.crystal-overlay{
  background:linear-gradient(160deg, rgba(9,14,24,0.92) 0%, rgba(13,20,34,0.85) 55%, rgba(9,14,24,0.94) 100%);
  backdrop-filter:blur(8px);
}

/* ---------- KEN BURNS EN EL RETRATO DE LA DOCTORA ---------- */
.doctor-portrait img{animation:kenBurns 22s ease-in-out infinite alternate;}
@keyframes kenBurns{
  0%{transform:scale(1) translate(0,0);}
  100%{transform:scale(1.14) translate(-2%, -3%);}
}

/* ============================================================
   OPTIMIZACIÓN RESPONSIVE AVANZADA (Móviles, Tablets & Touch)
   ============================================================ */

/* Prevenir cualquier tipo de desbordamiento horizontal y garantizar quiebre fluido de palabras */
html, body {
  max-width: 100vw;
  overflow-x: hidden;
  position: relative;
}

p, h1, h2, h3, h4, h5, h6, span, a, li, label, strong, b, em {
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* Tablet y Teléfonos Grandes (<= 900px) */
@media (max-width: 900px) {
  .wrap {
    padding: 0 clamp(16px, 4vw, 24px);
  }
  .section {
    padding: clamp(54px, 8vw, 80px) 0;
  }
  .section-head {
    margin-bottom: clamp(26px, 5vw, 40px);
  }
  .heading {
    font-size: clamp(24px, 6.2vw, 36px);
    line-height: 1.18;
    letter-spacing: -0.02em;
  }
  .sub {
    font-size: clamp(14px, 3.4vw, 15.5px);
    line-height: 1.6;
  }
  .kicker {
    font-size: clamp(10px, 2.5vw, 11px);
    letter-spacing: 0.12em;
  }
}

/* Teléfonos y Pantallas Típicas (<= 768px) */
@media (max-width: 768px) {
  .wrap {
    padding: 0 16px;
  }
  .section {
    padding: 58px 0;
  }
  .section-head {
    margin-bottom: 28px;
  }
  .heading {
    font-size: clamp(23px, 6.8vw, 32px);
    line-height: 1.18;
  }
  .sub {
    font-size: 14.5px;
    line-height: 1.6;
  }

  /* Hero Mobile */
  .hero {
    padding: max(120px, 14vh) 0 44px;
    min-height: auto;
  }
  .hero h1 {
    font-size: clamp(26px, 7.5vw, 38px);
    line-height: 1.14;
    margin-bottom: 14px;
    color: #ffffff;
    letter-spacing: -0.02em;
  }
  .hero p.lead {
    font-size: clamp(14px, 3.8vw, 15.5px);
    line-height: 1.6;
    margin-bottom: 22px;
    color: rgba(255, 255, 255, 0.88);
  }
  .btn-row {
    flex-direction: column;
    width: 100%;
    gap: 10px;
    margin-bottom: 24px;
  }
  .btn-row .btn {
    width: 100%;
    justify-content: center;
    padding: 13px 18px;
    font-size: 13.5px;
  }
  .trust-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    background: rgba(15, 23, 38, 0.88);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 16px;
    padding: 12px 10px;
    text-align: center;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4);
  }
  .trust-item b {
    font-size: clamp(15px, 4.2vw, 18px);
    color: #ffffff;
  }
  .trust-item span {
    font-size: clamp(9px, 2.3vw, 10px);
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.7);
  }

  /* Telemetría Cardiopulmonar Live Bar en Hero */
  .osc-bar {
    margin-top: 18px;
    border-radius: 18px;
    background: linear-gradient(155deg, rgba(14, 24, 40, 0.94) 0%, rgba(9, 15, 26, 0.98) 100%);
    border: 1.5px solid rgba(13, 154, 144, 0.5);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.6), 0 0 20px rgba(13, 154, 144, 0.2);
  }
  .osc-bar-overlay {
    padding: 12px 14px;
    gap: 10px;
    background: linear-gradient(180deg, rgba(9, 15, 26, 0.1) 0%, rgba(9, 15, 26, 0.7) 60%, rgba(9, 15, 26, 0.95) 100%);
  }
  .osc-bar-top {
    display: flex;
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 10px;
  }
  .bpm-btn {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(145deg, rgba(217, 51, 39, 0.3), rgba(217, 51, 39, 0.5));
    border: 2px solid rgba(217, 51, 39, 0.7);
  }
  .bpm-btn .bpm-val {
    font-size: 16px;
    color: #ffffff;
  }
  .bpm-btn .bpm-tag {
    font-size: 7px;
    color: #ff9a90;
  }
  .osc-bar-title h4 {
    font-size: 12px;
    color: #ffffff;
  }
  .osc-bar-title p {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.7);
  }
  .osc-meta {
    width: 100%;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    font-size: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 8px;
    color: #3ecfae;
  }

  /* Hero Visual & Float Cards */
  .hero-visual {
    margin-top: 20px;
  }
  .hero-frame {
    aspect-ratio: 16/11;
    border-radius: 20px;
  }
  .hero-float-card {
    padding: 8px 12px;
    border-radius: 12px;
  }
  .hero-float-card.top {
    top: 10px;
    left: 10px;
  }
  .hero-float-card.bottom {
    bottom: 10px;
    right: 10px;
  }
  .hfc-label {
    font-size: 8px;
  }
  .hfc-value {
    font-size: 13.5px;
  }

  /* Performance Lab */
  .media-card {
    height: 220px;
    border-radius: 18px;
  }
  .media-badge {
    bottom: 10px;
    left: 10px;
    font-size: 9.5px;
    padding: 5px 10px;
  }

  /* Comparador Móvil */
  .comp-box {
    padding: 22px 18px;
    border-radius: 20px;
  }
  .comp-header h3 {
    font-size: 17px;
  }
  .comp-item p {
    font-size: 13px;
    line-height: 1.5;
  }

  /* Simulador Console Mobile */
  .sim-console {
    border-radius: 20px;
    padding: 20px 14px;
  }
  .sim-form-box, .hud-panel {
    padding: 16px 14px;
    border-radius: 16px;
  }
  .hud-top h4 {
    font-size: 14.5px;
  }
  .fuel-row {
    font-size: 10.5px;
  }
  .zone-row {
    padding: 10px 12px;
  }
  .zone-top {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .zone-title-group {
    width: 100%;
    flex-wrap: wrap;
    gap: 4px;
  }
  .zone-name {
    font-size: 12px !important;
  }
  .zone-meta-group {
    width: 100%;
    justify-content: space-between;
    border-top: 1px dashed rgba(18, 22, 31, 0.08);
    padding-top: 5px;
    margin-top: 2px;
  }
  .zone-bpm {
    font-size: 11.5px !important;
  }
  .click-hint {
    font-size: 9.5px;
    padding: 2px 7px;
  }
  .foto2-watermark {
    font-size: 10px;
    opacity: 0.07;
  }

  /* Doctora Alexandra Winter */
  .doctor-card {
    padding: 22px 16px;
    border-radius: 20px;
  }
  .doctor-portrait {
    width: 180px;
    height: 230px;
    border-radius: 18px;
  }
  .doctor-info h3 {
    font-size: clamp(21px, 5.5vw, 25px);
  }
  .doc-specialty {
    font-size: 12.5px;
  }
  .doctor-info p {
    font-size: 13.5px;
    line-height: 1.6;
  }
  .doc-quote {
    font-size: 13.5px;
    line-height: 1.5;
    padding: 12px 14px;
  }
  .doc-tag {
    font-size: 11px;
    padding: 5px 12px;
  }

  /* Testimonios */
  .testi-card-inner {
    padding: 20px 18px;
  }
  .testi-card-3d .quote {
    font-size: 13px;
    line-height: 1.55;
  }
  .testi-who b {
    font-size: 13.5px;
  }
  .testi-who span {
    font-size: 11px;
  }

  /* Planes */
  .plan-card {
    padding: 24px 18px;
    border-radius: 20px;
  }
  .plan-card h4 {
    font-size: 20px;
  }
  .plan-price {
    font-size: 13.5px;
  }
  .plan-desc {
    font-size: 13px;
    line-height: 1.55;
  }
  .plan-list li {
    font-size: 12.5px;
  }

  /* Lead Form Inputs (iOS 16px fix to prevent auto-zoom) */
  .lead-shell {
    padding: 22px 16px;
    border-radius: 20px;
  }
  .lead-shell label.f-label {
    font-size: 12.5px;
  }
  .lead-shell input,
  .lead-shell select,
  .lead-shell textarea {
    font-size: 16px !important;
    padding: 11px 13px;
  }
  .lead-shell select {
    background-color: #ffffff;
  }
  .consent-row span {
    font-size: 11.5px;
    line-height: 1.45;
  }
  .privacy-note {
    font-size: 11px;
    line-height: 1.45;
  }
  .form-actions {
    flex-direction: column;
    gap: 10px;
  }
  .lead-shell .btn-primary {
    width: 100%;
    justify-content: center;
    font-size: 14px;
    padding: 13px 18px;
  }

  /* Footer Mobile */
  .footer-tagline {
    font-size: 13px;
    line-height: 1.6;
  }
  .footer-links li a {
    font-size: 13px;
  }
  .footer-contact-card .fc-row {
    font-size: 12.5px;
  }
  .footer-bottom-bar {
    font-size: 11.5px;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
  }
}

/* Pantallas Extra Pequeñas (<= 380px) */
@media (max-width: 380px) {
  .wrap {
    padding: 0 12px;
  }
  .trust-strip {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .hero h1 {
    font-size: 24px;
  }
  .heading {
    font-size: 22px;
  }
  .doctor-portrait {
    width: 150px;
    height: 195px;
  }
  .lead-shell {
    padding: 18px 12px;
  }
  .plans-mobile-tabs {
    gap: 4px;
    padding: 4px;
  }
  .plan-mtab-btn {
    font-size: 11px;
    padding: 8px 4px;
  }
}

/* ---------- RENDERING & COMPOSITING SPEED OPTIMIZATIONS ---------- */
#servicios,
#doctora,
#testimonios,
#planes,
#faq,
#contacto,
.cinematic-band {
  content-visibility: auto;
  contain-intrinsic-size: 650px;
}
