:root{
  /* superficie clara (dominante) */
  --superficie:#EDE9E1;
  --papel:#F7F4EE;
  --tinta:#15171C;
  --tinta-2:#4b4d54;
  --linea:#d8d2c6;
  /* espacio profundo (beats dramáticos) */
  --espacio:#0B0E16;
  --espacio-2:#161C28;
  --linea-osc:#2b3446;
  /* señal + baliza + luz */
  --cobalto:#2C4FD9;
  --cobalto-prof:#1F3A5F;
  --azul-medio:#4A6FA5;
  --acero:#6E87A3;
  --baliza:#CE9A4E;
  --luz-luna:#DDE6F0;
  /* estados (solo detalles técnicos) */
  --exito:#35B27A;
  --alerta:#D6453F;
  --alien:#9BFF3C;

  --ease:cubic-bezier(0.16,1,0.3,1);

  /* escala tipográfica completa: 6 tamaños en toda la landing.
     h1/h2 usan clamp propio (responsive), el resto son fijos. */
  --fs-lead:1.2rem;
  --fs-body:1rem;
  --fs-small:0.85rem;
  --fs-h3:1.25rem;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

/* ---- foco visible (navegación con teclado) ---- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--cobalto);
  outline-offset:3px;
}
html.cap .hero{min-height:640px}
html.cap *{animation:none !important}

/* ---- reducir movimiento: respeta la preferencia del sistema ---- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
    scroll-behavior:auto !important;
  }
}

body{
  margin:0;
  font-family:'Inter',sans-serif;
  font-weight:400;
  color:var(--tinta);
  background:var(--superficie);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.wrap{max-width:1180px;margin:0 auto;padding:0 1.75rem;position:relative;z-index:2}

h1,h2,h3{font-weight:600;line-height:1.05;margin:0 0 1.4rem;letter-spacing:-0.03em}
h1{font-size:clamp(2.6rem,5.8vw,5.2rem)}
h2{font-size:clamp(2.2rem,5vw,4rem)}
h3{font-size:var(--fs-h3);font-weight:600}
p{margin:0 0 1rem;font-size:var(--fs-body)}
strong{font-weight:600;color:var(--cobalto-prof)}

/* ---- etiquetas técnicas (Inter, tracking amplio simula el look técnico) ---- */
.eyebrow{
  display:inline-flex;align-items:center;gap:0.55rem;
  font-family:'Inter',sans-serif;font-weight:600;
  font-size:var(--fs-small);letter-spacing:0.14em;text-transform:uppercase;
  color:var(--azul-medio);margin-bottom:1.5rem;
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--baliza);flex-shrink:0}
.reg-mark{
  position:absolute;z-index:5;bottom:2.25rem;right:1.75rem;
  font-family:'Inter',sans-serif;font-weight:500;font-size:var(--fs-small);letter-spacing:0.1em;
  color:var(--acero);text-transform:uppercase;pointer-events:none;white-space:nowrap;
}
.reg-mark .alerta{color:var(--alerta)}
.readout{
  font-family:'Inter',sans-serif;font-weight:500;font-size:var(--fs-small);letter-spacing:0.06em;
  color:var(--acero);line-height:1.9;text-transform:uppercase;
}
.readout b{color:var(--tinta);font-weight:700}
.readout .ok{color:var(--exito)}
.readout .warn{color:var(--baliza)}

.lead{font-size:var(--fs-lead);max-width:600px;color:var(--tinta-2)}

/* cruz de mira decorativa */
.crosshair{position:absolute;z-index:5;width:14px;height:14px;pointer-events:none;opacity:0.55}
.crosshair::before,.crosshair::after{content:"";position:absolute;background:var(--acero)}
.crosshair::before{top:50%;left:0;width:100%;height:1px}
.crosshair::after{left:50%;top:0;height:100%;width:1px}

/* ---- header ---- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:30;padding:1.15rem 0;
  background:rgba(237,233,225,0.85);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--linea);
  opacity:0;transform:translateY(-10px);
  transition:opacity .25s var(--ease),transform .25s var(--ease);pointer-events:none;
}
.site-header.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
.header-inner{display:flex;align-items:center;justify-content:space-between}
.logo{height:22px;width:auto;display:block}

.header-cta{
  display:inline-flex;align-items:center;text-decoration:none;
  font-family:'Inter',sans-serif;font-weight:600;font-size:var(--fs-small);
  padding:0.55rem 1.3rem;border-radius:100px;
  background:var(--cobalto);color:#fff;
  box-shadow:0 8px 18px rgba(44,79,217,0.22);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
.header-cta:hover,.header-cta:focus-visible{transform:translateY(-1px);box-shadow:0 12px 24px rgba(44,79,217,0.3);color:#fff}

/* ---- HERO ---- */
.hero{
  position:relative;min-height:100vh;
  background:radial-gradient(ellipse 55% 60% at 80% 40%,rgba(44,79,217,0.10) 0%,rgba(44,79,217,0) 60%),var(--superficie);
  display:flex;align-items:center;overflow:hidden;padding:7rem 0 4rem;
}
.hero-inner{width:100%;position:relative;z-index:2}
.hero-logo{height:34px;display:block;margin:0 0 3.25rem;animation:fadeUp 1.2s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.hero-grid{max-width:1180px;display:flex;align-items:flex-start;justify-content:space-between;gap:2rem}
.hero-copy{max-width:660px;flex-shrink:0}
.hero-astro-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding-top:0.5rem}
.hero-astro{
  height:clamp(528px,68.2vh,836px);width:auto;
  pointer-events:none;
  animation:fadeUp 1.4s var(--ease) both;animation-delay:.2s;
}
.hero-astro-ground{
  width:80%;height:1px;background:var(--linea);
  pointer-events:none;
}
.hero-cta{margin-top:2.25rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.hero-scroll{position:absolute;bottom:2.25rem;left:1.75rem;font-family:'Inter',sans-serif;font-weight:500;font-size:var(--fs-small);letter-spacing:0.2em;text-transform:uppercase;color:var(--acero);z-index:3}
.hero-scroll::after{content:"";display:block;width:1px;height:30px;background:var(--acero);margin-top:0.6rem;animation:pulse 2s var(--ease) infinite}
@keyframes pulse{0%,100%{opacity:0.25;transform:scaleY(0.5);transform-origin:top}50%{opacity:1;transform:scaleY(1)}}

/* ---- botones ---- */
.btn{
  font-family:'Inter',sans-serif;font-weight:600;font-size:var(--fs-small);
  padding:1.05rem 2.1rem;border-radius:100px;border:none;cursor:pointer;text-decoration:none;
  display:inline-flex;align-items:center;gap:0.6rem;transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.btn-cobalto{background:var(--cobalto);color:#fff;box-shadow:0 14px 30px rgba(44,79,217,0.28)}
.btn-cobalto:hover{transform:translateY(-2px);box-shadow:0 20px 40px rgba(44,79,217,0.36)}
.btn[disabled]{cursor:not-allowed;opacity:0.55}
.btn-ghost{background:transparent;border:1.5px solid var(--acero);color:var(--cobalto-prof);font-family:'Inter',sans-serif;font-weight:600;font-size:var(--fs-small);border-radius:100px;padding:0.9rem 1.4rem}

/* ---- secciones ---- */
.section{padding:8rem 0;position:relative;overflow:hidden}
.section--light{background:var(--superficie);color:var(--tinta)}
.section-inner{max-width:640px;position:relative;z-index:2}
.section-inner.narrow{max-width:560px}

/* beats oscuros (espacio profundo) */
.section--dark{background:var(--espacio);color:var(--luz-luna);padding:9rem 0}
.section--dark .lead,.section--dark p{color:#aeb6c4}
.section--dark strong{color:var(--luz-luna)}
.section--dark .eyebrow{color:var(--acero)}
.section--dark .anchor{color:var(--luz-luna)}
.section--dark h2{color:#fff}
/* halos de señal en los beats oscuros */
.mecanismo{background:#000}
.puente{background:radial-gradient(ellipse 60% 70% at 15% 45%,rgba(31,58,95,0.55) 0%,rgba(31,58,95,0) 62%),var(--espacio)}
.faq{background:radial-gradient(ellipse 65% 80% at 85% 20%,rgba(44,79,217,0.35) 0%,rgba(44,79,217,0) 60%),var(--espacio)}
/* estática sutil sobre el mecanismo (señal inestable) */
.mecanismo::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(221,230,240,0.05) 0,rgba(221,230,240,0.05) 1px,transparent 1px,transparent 3px);
  animation:drift 9s linear infinite}
@keyframes drift{to{transform:translateY(-40px)}}

/* decoración de geometría (arcos/órbitas por sección) */
.deco{position:absolute;pointer-events:none;z-index:1;opacity:0.9}
.deco--arco{right:-6%;bottom:-10%;width:min(46vw,520px)}
.deco--radar{right:4%;top:12%;width:min(30vw,320px);opacity:0.5}
.deco--crater{right:-12%;bottom:-4%;width:min(81vw,1275px);height:auto;transform:translate(-3cm,-2cm)}
.deco--astro-metodo{right:4%;top:6%;width:min(68vw,920px);height:auto;opacity:0.95;transform:translateX(-5cm)}
.deco--satelite{right:-6%;top:8%;width:min(90vw,1116px);height:auto;transform:translate(-4cm,0cm)}
.section--dark .deco{opacity:0.7}
#mecanismo .deco--crater{opacity:0.5}

/* faq como beat oscuro: componentes hardcodeados para fondo claro, override específico */
.faq .eyebrow{color:var(--luz-luna)}
.faq .faq-item{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.16)}
.faq .faq-q{color:#fff}
.faq .faq-a{color:#cdd8e8}
.faq .faq-num{color:var(--luz-luna)}

/* qué es + metodología — texto y los 4 pasos conectados por una línea */
.categoria{position:relative}
.categoria .section-inner h2{color:var(--cobalto-prof)}
.categoria-grid{display:flex;flex-direction:column;gap:2.5rem}
.categoria-transicion{max-width:640px;color:var(--tinta-2);margin:1.5rem 0 0;font-size:var(--fs-lead)}

.metodo-lista{max-width:640px;display:flex;flex-direction:column;gap:1.1rem}
.metodo-paso{position:relative;display:flex;align-items:baseline;gap:1.6rem;padding:1.75rem 2rem;border-radius:16px;background:var(--papel);border:1px solid var(--linea)}
.metodo-num{flex-shrink:0;width:2.6rem;font-weight:300;font-size:2.1rem;line-height:1;color:var(--azul-medio);opacity:0.6;font-variant-numeric:tabular-nums}
.metodo-content{flex:1;min-width:0;position:relative;padding-right:3rem}
.metodo-content h3{margin:0 0 0.3rem;font-size:var(--fs-h3);font-weight:600;color:var(--cobalto-prof)}
.metodo-sub{margin:0 0 0.6rem;font-size:var(--fs-body);font-weight:500;color:var(--azul-medio)}
.metodo-content p:last-child{margin:0;font-size:var(--fs-body);color:var(--tinta-2);line-height:1.6}

/* paso 3 · lado oculto — panel oscuro, el diferencial se ve literalmente distinto */
.metodo-paso--oculto{background:var(--espacio);border-color:var(--linea-osc)}
.metodo-paso--oculto .metodo-num{color:var(--acero);opacity:0.8}
.metodo-icon{position:absolute;right:1.5rem;top:1.75rem;width:32px;height:32px}
.metodo-paso--oculto h3{color:var(--luz-luna)}
.metodo-paso--oculto .metodo-sub{color:var(--acero)}
.metodo-paso--oculto .metodo-content p:last-child{color:#aeb6c4}
.metodo-paso--oculto strong{color:var(--luz-luna)}

.align-center{margin-left:auto;margin-right:auto;text-align:center}
.align-center .eyebrow{justify-content:center}

/* ---- etapas de negocio: trayectoria de misión (¿aplica para ti?) ---- */
.etapas-selector{margin-top:4rem}
.etapas-hint{text-align:center;font-size:var(--fs-lead);font-weight:600;color:var(--tinta-2);margin:0 0 2.5rem}
.mision-track{position:relative;height:200px}
.mision-path{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible}
.mision-seg{fill:none;stroke:var(--cobalto);stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke;transition:stroke-dashoffset .5s var(--ease)}
.mnode{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);z-index:1;background:none;border:none;cursor:pointer;padding:0;font-family:'Inter',sans-serif}
.mnode-dot{position:relative;width:58px;height:58px;border-radius:50%;background:var(--papel);border:1px solid var(--linea);display:flex;align-items:center;justify-content:center;transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease)}
/* pulso único al entrar en pantalla (señala que los nodos son interactivos, no un loop) */
.etapas-selector.is-visible .mnode-dot::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;box-shadow:0 0 0 0 rgba(44,79,217,0.4);animation:nodePing 1.1s var(--ease) both}
@keyframes nodePing{0%{box-shadow:0 0 0 0 rgba(44,79,217,0.4)}70%{box-shadow:0 0 0 12px rgba(44,79,217,0)}100%{box-shadow:0 0 0 0 rgba(44,79,217,0)}}
.etapas-selector.is-visible .mnode:nth-of-type(2) .mnode-dot::after{animation-delay:.15s}
.etapas-selector.is-visible .mnode:nth-of-type(3) .mnode-dot::after{animation-delay:.3s}
.etapas-selector.is-visible .mnode:nth-of-type(4) .mnode-dot::after{animation-delay:.45s}
.mnode-dot svg{width:27px;height:27px;color:var(--acero);transition:color .35s var(--ease)}
.mnode-label{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:var(--fs-small);font-weight:500;color:var(--tinta-2);transition:color .3s var(--ease)}
.mnode:hover .mnode-dot{border-color:var(--acero);transform:translateY(-3px)}
.mnode.is-active .mnode-dot{background:var(--cobalto);border-color:var(--cobalto);box-shadow:0 0 0 6px rgba(44,79,217,0.12),0 14px 30px rgba(44,79,217,0.28)}
.mnode.is-active .mnode-dot svg{color:#fff}
.mnode.is-active .mnode-label{color:var(--tinta);font-weight:600}

.etapa-panel{margin-top:2.75rem}
.etapa-panel-content{display:none}
.etapa-panel-content.is-active{display:block;animation:panelIn .5s var(--ease)}
@keyframes panelIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.etapa-situacion{max-width:640px;margin-left:auto;margin-right:auto}
.etapa-tag{display:inline-flex;align-items:center;gap:0.5rem;font-family:'Inter',sans-serif;font-weight:600;font-size:var(--fs-small);letter-spacing:0.08em;text-transform:uppercase;color:var(--acero);margin-bottom:0.7rem}
.etapa-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--baliza);flex-shrink:0}
.etapa-situacion h3{font-size:var(--fs-h3);color:var(--tinta);margin-bottom:0.7rem}
.etapa-mision{font-size:var(--fs-body);font-weight:500;color:var(--cobalto);margin-bottom:1.3rem;display:flex;align-items:center;gap:0.6rem}
.etapa-mision::before{content:"";width:20px;height:1px;background:var(--cobalto);flex-shrink:0}
.etapa-quote{
  position:relative;padding:0.1em 0 0 1.6rem;font-style:italic;color:var(--cobalto-prof);
  font-size:var(--fs-body);line-height:1.5;margin-bottom:1.3rem;
  background:repeating-linear-gradient(to bottom,var(--cobalto) 0 5px,transparent 5px 11px) 0 0.45em/2px calc(100% - 0.45em) no-repeat;
}
.etapa-quote::before{
  content:"";position:absolute;left:-3px;top:0.35em;width:8px;height:8px;border-radius:50%;
  background:var(--cobalto);box-shadow:0 0 0 3px var(--papel);
}
.etapa-desc{color:var(--tinta-2);font-size:var(--fs-body);margin:0}

/* respuesta: apilada bajo la situación, no en columna paralela. Barra sólida marca la transición */
.etapa-servicio{
  position:relative;max-width:640px;margin:2.75rem auto 0;padding:0.3rem 0 0.3rem 1.75rem;
  background:repeating-linear-gradient(to bottom,var(--cobalto) 0 5px,transparent 5px 11px) 0 0.5rem/2px calc(100% - 1rem) no-repeat;
}
.etapa-servicio::before{
  content:"";position:absolute;left:-3px;top:0.4rem;width:10px;height:10px;border-radius:50%;
  background:var(--cobalto);box-shadow:0 0 0 3px var(--papel);
}
.etapa-servicio-label{display:block;font-size:var(--fs-small);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--cobalto);margin-bottom:0.6rem}
.etapa-servicio h4{font-size:var(--fs-h3);font-weight:600;color:var(--tinta);margin:0 0 0.7rem;letter-spacing:-0.015em}
.etapa-servicio>p{color:var(--tinta-2);font-size:var(--fs-body);line-height:1.65;margin:0 0 1.4rem}
.etapa-tags-label{display:block;font-size:var(--fs-small);font-weight:500;letter-spacing:0.07em;text-transform:uppercase;color:var(--acero);margin-bottom:0.6rem}
.etapa-tags{font-size:var(--fs-body);color:var(--tinta-2)}
.etapa-servicio-tag{color:var(--cobalto-prof);font-weight:500}
.etapa-servicio-tag:not(:last-child)::after{content:" · ";color:var(--acero);font-weight:400}

.etapas-cta{margin-top:3.5rem;text-align:center}
#etapas{padding-bottom:4rem}
.etapas-cta p{margin:0;font-size:var(--fs-lead);color:var(--tinta-2);display:flex;align-items:center;justify-content:center;gap:0.75rem;flex-wrap:wrap}
.etapas-cta .btn{margin:0}

/* ---- preguntas frecuentes (acordeón) ---- */
.faq{padding-top:5rem}
.faq-list{max-width:720px;margin:2.5rem auto 0;display:flex;flex-direction:column;gap:0.85rem;text-align:left}
.faq-item{border:1px solid var(--linea);border-radius:14px;background:var(--papel);overflow:hidden;transition:border-color .3s var(--ease)}
.faq-item[open]{border-color:var(--azul-medio)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:1.1rem;padding:1.25rem 1.5rem;-webkit-tap-highlight-color:transparent}
.faq-item summary::-webkit-details-marker{display:none}
.faq-num{font-weight:300;font-size:var(--fs-body);color:var(--azul-medio);font-variant-numeric:tabular-nums;flex-shrink:0}
.faq-q{flex:1;font-weight:600;color:var(--tinta);font-size:var(--fs-body)}
.faq-toggle{position:relative;width:16px;height:16px;flex-shrink:0;transition:transform .3s var(--ease)}
.faq-toggle::before,.faq-toggle::after{content:"";position:absolute;background:var(--cobalto)}
.faq-toggle::before{top:50%;left:0;width:100%;height:1.5px;transform:translateY(-50%)}
.faq-toggle::after{left:50%;top:0;height:100%;width:1.5px;transform:translateX(-50%)}
.faq-item[open] .faq-toggle{transform:rotate(45deg)}
.faq-a{margin:0;padding:0 1.5rem 1.35rem;color:var(--tinta-2);font-size:var(--fs-body)}

/* ---- formulario de contacto ---- */
.form-lead{max-width:460px;margin:2.5rem auto 0;display:flex;flex-direction:column;gap:1.1rem;text-align:left}
.form-row label{display:block;font-size:var(--fs-small);font-weight:500;color:var(--tinta-2);margin-bottom:0.4rem}
.form-row input,.form-row select,.form-row textarea{
  width:100%;font-family:'Inter',sans-serif;font-size:var(--fs-body);color:var(--tinta);
  padding:0.85rem 1rem;border:1px solid var(--linea);border-radius:10px;background:var(--papel);
  transition:border-color .25s var(--ease);
}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--cobalto)}
.form-row input:focus:not(:focus-visible),.form-row select:focus:not(:focus-visible),.form-row textarea:focus:not(:focus-visible){outline:none}
.form-consent label{display:flex;align-items:flex-start;gap:0.6rem;font-size:var(--fs-small);color:var(--tinta-2);line-height:1.5;cursor:pointer}
.form-consent input[type="checkbox"]{flex-shrink:0;width:16px;height:16px;margin-top:0.15em;accent-color:var(--cobalto);cursor:pointer}
.form-row textarea{resize:vertical;min-height:80px}
.form-lead .btn{align-self:flex-start;margin-top:0.25rem}
.form-lead .btn[disabled]{cursor:progress}
.hidden-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{font-size:var(--fs-small);min-height:1.2em;margin:0}
.form-status.ok{color:var(--exito)}
.form-status.error{color:var(--alerta)}

/* ---- CTA final ---- */
.cta-final{background:radial-gradient(ellipse 70% 100% at 50% 0%,rgba(44,79,217,0.10) 0%,rgba(44,79,217,0) 55%),var(--superficie);padding:8.5rem 0;text-align:center;position:relative;overflow:hidden}
.cta-final .section-inner{margin:0 auto}
.cta-head{position:relative}
.cta-orbit{position:absolute;left:50%;top:-30%;transform:translate(-50%,-6cm);width:min(70vw,760px);z-index:1;opacity:0.5}
.cta-final h2{color:var(--cobalto-prof)}
.cta-final .lead{color:var(--tinta-2);margin:0 auto}
.cta-logo{height:30px;margin-bottom:2.25rem}
.cta-final .readout{margin-top:2rem}

/* ---- footer ---- */
.site-footer{padding:2.5rem 0;background:var(--espacio);color:var(--acero)}
.site-footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.site-footer .readout{color:var(--acero)}
.site-footer .logo{height:18px}

/* grano de película */
body::after{content:"";position:fixed;inset:0;z-index:999;pointer-events:none;opacity:0.45;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E")}

/* ---- reveal + parallax (progressive enhancement) ---- */
.has-js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.has-js .reveal.is-visible{opacity:1;transform:none}
.has-js .reveal.stagger{opacity:1;transform:none}
.has-js .stagger>*{opacity:0;transform:translateY(26px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.has-js .stagger.is-visible>*{opacity:1;transform:none}
.has-js .stagger.is-visible>*:nth-child(2){transition-delay:.09s}
.has-js .stagger.is-visible>*:nth-child(3){transition-delay:.18s}
.has-js .stagger.is-visible>*:nth-child(4){transition-delay:.27s}
[data-parallax]{will-change:transform}

/* ---- responsive ---- */
@media(max-width:900px){
  .mision-path{display:none}
  .mision-track{height:auto;display:flex;flex-wrap:wrap;gap:2rem 0;justify-content:space-around}
  .mnode{position:static;transform:none;flex:0 0 46%;display:flex;flex-direction:column;align-items:center;gap:0.75rem}
  .mnode-label{position:static;transform:none;text-align:center}
  .etapa-situacion{max-width:100%}
  .etapa-servicio{max-width:100%;padding-left:1.25rem}
  .hero-grid{flex-direction:column}
  .hero-copy{text-align:center;max-width:100%}
  .hero-cta{justify-content:center}
  .hero-logo{margin:0 auto 3.25rem}
  .hero-astro-wrap{width:100%;padding-top:2rem;padding-right:2rem}
  .hero-astro{height:clamp(220px,38vh,340px)}
  .hero-scroll{display:none}
  .reg-mark{bottom:0.75rem}
  .categoria-grid{flex-direction:column;gap:2rem}
  .deco--astro-metodo{display:none}
  .deco--crater{transform:none;right:-15%;bottom:-2%}
  .deco--satelite{transform:none;right:-12%;top:auto;bottom:-6%;width:58vw;opacity:0.55}
  h1{font-size:clamp(2.1rem,9vw,2.6rem)}
  h2{font-size:clamp(1.9rem,8vw,2.2rem)}
  .metodo-lista{max-width:100%;width:100%}
  .metodo-paso{gap:1rem}
  .metodo-num{width:1.9rem;font-size:1.5rem}
  .metodo-paso{padding:1.4rem 1.4rem}
  .metodo-content{padding-right:2.2rem}
  .metodo-icon{width:28px;height:28px;right:-0.2rem}
  .align-center{text-align:left;margin:0}
  .align-center .eyebrow{justify-content:flex-start}
}
