/* ═══════════════════════════════════════════════════════════════
   NUBE PLATFORM · Hoja de estilos
   Paleta: azul abisal + luz fría · Animaciones vectoriales y canvas
   ═══════════════════════════════════════════════════════════════ */

:root{
  /* Profundidades (de más oscuro a más claro) */
  --void:#04060c;
  --deep:#070b14;
  --surface:#0c1322;
  --surface-2:#111a2c;

  /* Acentos */
  --blue:#4d8ff5;
  --blue-bright:#7ab5ff;
  --cyan:#6fe3f5;
  --violet:#8b7ff5;
  --green:#3ddc97;

  /* Texto */
  --ink:#e9f0fc;
  --muted:#8ba0c2;
  --dim:#5d7091;

  /* Líneas y velos */
  --line:rgba(125,175,255,.11);
  --line-strong:rgba(125,175,255,.22);
  --glass:rgba(14,24,42,.62);

  /* Compatibilidad con nombres previos */
  --navy:#0c1322;
  --navy-2:#111a2c;
  --sky:rgba(125,175,255,.09);
  --sky-2:#070b14;
  --white:#e9f0fc;

  --radius:16px;
  --shadow:0 24px 70px rgba(0,0,0,.55);
  --shadow-sm:0 8px 26px rgba(0,0,0,.4);
  --glow:0 0 40px rgba(77,143,245,.25);
  /* El logo es un PNG azul oscuro: sobre fondo abisal hay que subirle la luz */
  --logo-lift:brightness(1.85) saturate(1.05);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--void)}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);
  background:var(--void);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.brand-text{font-family:'Sora',sans-serif;line-height:1.12;color:var(--ink)}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.container{width:min(1140px,92%);margin-inline:auto}
::selection{background:rgba(77,143,245,.3);color:#fff}
.grad{
  background:linear-gradient(100deg,var(--blue-bright),var(--cyan) 55%,var(--violet));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ─── Campo de partículas (canvas a pantalla completa) ─────── */
.fx-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;display:block}
/* Todo el contenido vive por encima del fondo animado */
.hero,.section,.site-footer,.legal,.inc-wrap,.inc-support{position:relative;z-index:3}

/* Velo de viñeta: hunde los bordes y concentra la mirada al centro */
.fx-veil{position:fixed;inset:0;z-index:2;pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% 0%,rgba(77,143,245,.10),transparent 60%),
    radial-gradient(100% 70% at 50% 100%,rgba(139,127,245,.08),transparent 65%),
    radial-gradient(78% 64% at 50% 50%,transparent 35%,rgba(4,6,12,.55) 100%)}

/* ─── Fondo con órbitas suaves (nebulosa) ──────────────────── */
.bg-orbits{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.orbit{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;mix-blend-mode:screen}
.o1{width:620px;height:620px;top:-220px;right:-160px;
  background:radial-gradient(circle,rgba(77,143,245,.5),transparent 70%);
  animation:drift 34s var(--ease) infinite alternate}
.o2{width:520px;height:520px;bottom:-200px;left:-160px;
  background:radial-gradient(circle,rgba(139,127,245,.42),transparent 70%);
  animation:drift 42s var(--ease) infinite alternate-reverse}
.o3{width:380px;height:380px;top:38%;left:52%;
  background:radial-gradient(circle,rgba(111,227,245,.3),transparent 70%);
  animation:drift 50s var(--ease) infinite alternate}
@keyframes drift{to{transform:translate(60px,-44px) scale(1.18)}}

/* ─── Header ───────────────────────────────────────────────── */
.site-header{position:sticky;top:0;z-index:50;
  background:rgba(6,10,18,.72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid transparent;transition:border-color .4s,background .4s}
.site-header.scrolled{border-bottom-color:var(--line);background:rgba(5,8,15,.88)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;align-items:center;gap:10px}
.brand-logo{height:56px;width:auto;display:block;filter:var(--logo-lift);
  transition:transform .5s var(--ease),filter .5s}
.brand:hover .brand-logo{transform:translateY(-2px);
  filter:var(--logo-lift) drop-shadow(0 0 14px rgba(122,181,255,.55))}
.brand-text{font-weight:600;font-size:1.18rem;letter-spacing:-.01em}
.brand-text strong{color:var(--blue-bright);font-weight:800}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links>a{font-weight:500;color:var(--muted);font-size:.96rem;position:relative;transition:color .25s}
.nav-links>a:not(.btn-support)::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;
  background:linear-gradient(90deg,var(--blue-bright),var(--cyan));transition:width .4s var(--ease)}
.nav-links>a:not(.btn-support):hover{color:var(--ink)}
.nav-links>a:not(.btn-support):hover::after{width:100%}
.nav-links a.btn-support{display:inline-flex;align-items:center;gap:8px;
  background:rgba(125,175,255,.08);border:1px solid var(--line-strong);
  color:var(--ink);padding:11px 22px;border-radius:30px;
  font-weight:600;font-size:.95rem;transition:transform .25s var(--ease),box-shadow .3s,background .3s,border-color .3s}
.nav-links a.btn-support:hover{background:rgba(77,143,245,.16);border-color:rgba(122,181,255,.45);
  transform:translateY(-2px);box-shadow:0 10px 30px rgba(77,143,245,.25)}
.nav-links a.btn-support::after{display:none}
.nav-links a.btn-support svg{transition:transform .6s var(--ease)}
.nav-links a.btn-support:hover svg{transform:rotate(180deg)}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.nav-toggle span{width:24px;height:2px;background:var(--ink);border-radius:2px;transition:.3s}

/* ─── Botones ──────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;
  font-weight:600;font-family:'Sora',sans-serif;font-size:.98rem;cursor:pointer;border:0;
  padding:14px 26px;border-radius:12px;transition:transform .25s var(--ease),box-shadow .35s,background .3s,border-color .3s}
.btn-primary{background:linear-gradient(100deg,var(--blue),var(--blue-bright));color:#04060c;
  box-shadow:0 12px 34px rgba(77,143,245,.32)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 46px rgba(77,143,245,.45)}
/* Barrido de luz al pasar el cursor */
.btn-primary::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.45) 50%,transparent 80%);
  transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.btn-ghost:hover{border-color:rgba(122,181,255,.5);color:var(--blue-bright);transform:translateY(-2px);
  box-shadow:0 10px 30px rgba(77,143,245,.16)}
.btn-block{width:100%}

/* ─── Hero ─────────────────────────────────────────────────── */
.hero{position:relative;padding:96px 0 130px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:9px;
  background:rgba(125,175,255,.07);border:1px solid var(--line-strong);
  color:var(--blue-bright);font-weight:600;font-size:.82rem;letter-spacing:.04em;
  padding:7px 16px;border-radius:30px;margin-bottom:24px}
/* Punto que late dentro de la píldora */
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 10px var(--cyan);animation:beacon 2.6s ease-in-out infinite}
@keyframes beacon{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
.hero h1{font-size:clamp(2.4rem,5.2vw,3.7rem);font-weight:800;letter-spacing:-.03em}
.hero-sub{font-family:'Sora',sans-serif;font-weight:500;font-size:1.14rem;color:var(--muted);margin:22px 0 0;max-width:36ch}
.lead{font-size:1.1rem;color:var(--muted);margin:14px 0 30px;max-width:42ch}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}

/* arte hero */
.hero-art{display:flex;justify-content:center}
.art-svg{width:min(460px,100%);overflow:visible;transform-origin:center center}
.pulse-glow{transform-origin:center;animation:pulseGlow 6s ease-in-out infinite}
@keyframes pulseGlow{0%,100%{opacity:.45;transform:scale(.94)}50%{opacity:.9;transform:scale(1.06)}}
.net-lines line{stroke-dasharray:6 8;animation:dash 4s linear infinite}
@keyframes dash{to{stroke-dashoffset:-28}}
.node{transform-origin:center;animation:nodePulse 3s ease-in-out infinite}
.node.n2{animation-delay:.4s}.node.n3{animation-delay:.8s}
.node.n4{animation-delay:1.2s}.node.n5{animation-delay:1.6s}.node.n6{animation-delay:2s}
@keyframes nodePulse{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.4);opacity:1}}

/* Capas con parallax interactivo del mouse + scroll */
.nn-plane,.particles,.orrery-layer{transition:transform .45s var(--ease)}

/* ─── Orrery: instrumento de anillos (arte del hero) ───────── */
.orrery{width:min(470px,100%);overflow:visible}
.orr-ring{fill:none;stroke-linecap:round;transform-box:fill-box;transform-origin:center}
.orr-ring.r1{animation:spinCW 34s linear infinite}
.orr-ring.r2{animation:spinCCW 46s linear infinite}
.orr-ring.r3{animation:spinCW 62s linear infinite}
@keyframes spinCW{to{transform:rotate(360deg)}}
@keyframes spinCCW{to{transform:rotate(-360deg)}}
/* Arcos que se dibujan y se borran, como una lectura en curso */
.orr-arc{fill:none;stroke-linecap:round;stroke-dasharray:120 480;animation:arcTrace 9s var(--ease) infinite}
.orr-arc.a2{animation-delay:-3s}
.orr-arc.a3{animation-delay:-6s}
@keyframes arcTrace{0%{stroke-dashoffset:600;opacity:0}
  15%{opacity:.9}70%{opacity:.9}100%{stroke-dashoffset:0;opacity:0}}
.orr-core{transform-box:fill-box;transform-origin:center;animation:corePulse 4.5s ease-in-out infinite}
@keyframes corePulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.14);opacity:1}}
.orr-sat{transform-box:fill-box;transform-origin:center;animation:satPulse 3.2s ease-in-out infinite}
.orr-sat.s2{animation-delay:.7s}.orr-sat.s3{animation-delay:1.4s}
.orr-sat.s4{animation-delay:2.1s}.orr-sat.s5{animation-delay:2.8s}
@keyframes satPulse{0%,100%{transform:scale(.85);opacity:.5}50%{transform:scale(1.3);opacity:1}}
.orr-tick{stroke-linecap:round;opacity:.35}
.orr-glyph{transform-box:fill-box;transform-origin:center;animation:glyphFade 7s ease-in-out infinite}
.orr-glyph.g2{animation-delay:-2.3s}.orr-glyph.g3{animation-delay:-4.6s}
@keyframes glyphFade{0%,100%{opacity:0;transform:scale(.7)}50%{opacity:.55;transform:scale(1)}}

.particle{transform-box:fill-box;transform-origin:center}
.particle.pa{animation:floatA 7s ease-in-out infinite}
.particle.pb{animation:floatB 9s ease-in-out infinite}
.shape{transform-box:fill-box;transform-origin:center}
.shape.sh1{animation:floatA 7s ease-in-out infinite}
.shape.sh2{animation:floatB 9s ease-in-out infinite}
.shape.sh3{animation:floatA 8s ease-in-out infinite reverse}
.shape.sh4{animation:floatB 6.5s ease-in-out infinite}
@keyframes floatA{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-12px) rotate(20deg)}}
@keyframes floatB{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(10px) rotate(-16deg)}}

/* Filo luminoso que separa el hero del resto */
.hero-edge{position:absolute;bottom:0;left:0;width:100%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(122,181,255,.45),rgba(111,227,245,.3),transparent)}

/* ─── Secciones ────────────────────────────────────────────── */
.section{padding:104px 0;position:relative}
.section-alt{background:linear-gradient(180deg,rgba(125,175,255,.035),transparent)}
.section-alt::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;
  background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}
.section-head{max-width:720px;margin-bottom:56px}
.tag{display:inline-block;color:var(--blue-bright);font-weight:600;font-size:.76rem;
  letter-spacing:.22em;text-transform:uppercase;margin-bottom:16px}
.section-head h2,.contact-copy h2{font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:800;letter-spacing:-.025em}

/* Nosotros */
.about-lead{font-size:1.12rem;color:var(--muted);max-width:62ch;margin-bottom:48px}
.about-lead strong{color:var(--ink);font-weight:600}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cards-4{grid-template-columns:repeat(4,1fr)}
.cards-4 .card{padding:28px 24px}
.cards-4 .card h3{font-size:1.06rem}

/* Chips de sectores */
.sector-chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.sector-chips li{background:rgba(125,175,255,.05);border:1px solid var(--line);border-radius:30px;
  padding:10px 20px;font-weight:500;font-size:.9rem;color:var(--muted);
  transition:transform .3s var(--ease),border-color .3s,color .3s,background .3s}
.sector-chips li:hover{transform:translateY(-3px);border-color:rgba(122,181,255,.4);
  color:var(--ink);background:rgba(77,143,245,.12)}

/* Tarjetas de vidrio con halo que sigue al cursor */
.card{position:relative;background:rgba(13,22,39,.72);border:1px solid var(--line);border-radius:var(--radius);
  padding:32px 28px;overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s,border-color .4s}
.card::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .45s;pointer-events:none;
  background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),rgba(77,143,245,.16),transparent 70%)}
.card:hover::before{opacity:1}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.card-ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:18px;
  background:linear-gradient(140deg,rgba(77,143,245,.2),rgba(139,127,245,.08));
  border:1px solid var(--line-strong);color:var(--blue-bright);transition:box-shadow .4s,color .4s}
.card:hover .card-ic{box-shadow:0 0 26px rgba(77,143,245,.35);color:var(--cyan)}
.card-ic svg{width:26px;height:26px}
.card h3{font-size:1.16rem;margin-bottom:10px}
.card p{color:var(--muted);font-size:.96rem}

.stats{display:flex;flex-wrap:wrap;gap:18px;margin-top:54px}
.stat{flex:1;min-width:160px;background:linear-gradient(140deg,var(--surface-2),var(--surface));
  border:1px solid var(--line);color:var(--ink);border-radius:var(--radius);padding:28px 26px;box-shadow:var(--shadow-sm)}
.stat .num{font-family:'Sora',sans-serif;font-size:2.4rem;font-weight:800;display:block;line-height:1;color:var(--blue-bright)}
.stat .lbl{font-size:.92rem;color:var(--muted)}

/* Cómo lo hacemos */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.step{position:relative;background:rgba(13,22,39,.72);border:1px solid var(--line);border-radius:var(--radius);
  padding:34px 26px;overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s,border-color .4s}
.step::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;
  background:linear-gradient(90deg,var(--blue-bright),var(--cyan));transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease)}
.step:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.step:hover::before{transform:scaleX(1)}
.step-n{font-family:'Sora',sans-serif;font-size:2.4rem;font-weight:800;display:block;margin-bottom:8px;
  color:rgba(125,175,255,.24)}
@supports (-webkit-text-stroke:1px red){
  .step-n{color:transparent;-webkit-text-stroke:1px rgba(125,175,255,.28);
    transition:-webkit-text-stroke-color .35s}
  .step:hover .step-n{-webkit-text-stroke-color:rgba(122,181,255,.75)}
}
.step h3{font-size:1.1rem;margin-bottom:8px}
.step p{color:var(--muted);font-size:.94rem}

/* ─── Contacto ─────────────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:54px;align-items:start}
.contact-copy p{color:var(--muted);font-size:1.06rem;margin:18px 0 26px}
.contact-points{list-style:none;display:grid;gap:12px}
.contact-points li{display:flex;align-items:center;gap:10px;font-weight:400;color:var(--muted)}
.contact-points a{color:var(--blue-bright);font-weight:600}
.contact-points svg{width:20px;height:20px;color:var(--cyan);flex:0 0 auto}

.contact-form{background:var(--glass);border:1px solid var(--line);border-radius:20px;
  padding:34px;box-shadow:var(--shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.field{position:relative;margin-bottom:18px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field input,.field textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;
  padding:20px 16px 8px;font-size:1rem;font-family:inherit;color:var(--ink);background:rgba(4,8,16,.5);
  transition:border-color .3s,box-shadow .3s,background .3s;resize:vertical}
.field textarea{padding-top:24px}
.field input::placeholder,.field textarea::placeholder{color:transparent}
.field label{position:absolute;left:16px;top:16px;color:var(--dim);font-size:1rem;pointer-events:none;
  transition:.25s var(--ease)}
.field input:focus,.field textarea:focus{outline:none;border-color:rgba(122,181,255,.6);
  background:rgba(8,14,26,.7);box-shadow:0 0 0 4px rgba(77,143,245,.12),0 0 26px rgba(77,143,245,.14) inset}
.field input:focus+label,.field input:not(:placeholder-shown)+label,
.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label{
  top:6px;font-size:.72rem;letter-spacing:.06em;color:var(--blue-bright);font-weight:600}
.field input:-webkit-autofill,.field input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 1000px #0a1120 inset;caret-color:var(--ink)}
.captcha-field input{font-weight:600}

/* Honeypot oculto */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.btn-spinner{width:18px;height:18px;border:2.5px solid rgba(4,6,12,.35);border-top-color:#04060c;
  border-radius:50%;display:none;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.btn.loading .btn-label{opacity:.55}
.btn.loading .btn-spinner{display:inline-block}
.form-msg{margin-top:14px;font-size:.94rem;font-weight:500;text-align:center;min-height:1.2em}
.form-msg.ok{color:var(--green)}
.form-msg.err{color:#ff7b7b}

/* ─── Footer ───────────────────────────────────────────────── */
.site-footer{background:linear-gradient(180deg,transparent,rgba(125,175,255,.04));
  border-top:1px solid var(--line);color:var(--muted);padding:64px 0 0;margin-top:40px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;align-items:start}
.footer-brand{display:grid;gap:10px;justify-items:start}
.footer-logo{height:60px;width:auto;opacity:.85;filter:var(--logo-lift)}
.footer-tag{color:var(--dim);font-size:.92rem;margin-top:6px;max-width:34ch}
.footer-links{display:flex;flex-direction:column;gap:12px}
.footer-links a{color:var(--muted);font-size:.95rem;transition:color .25s,padding-left .25s}
.footer-links a:hover{color:var(--ink);padding-left:6px}

.jalisco-badge{display:flex;align-items:center;gap:14px;background:rgba(125,175,255,.05);
  border:1px solid var(--line);border-radius:16px;padding:16px 20px}
.agave-img{width:56px;height:auto;flex:0 0 auto}
.jalisco-text strong{display:block;color:var(--ink);font-family:'Sora',sans-serif;font-size:1rem}
.jalisco-text span{font-size:.85rem;color:var(--dim)}

.footer-bottom{border-top:1px solid var(--line);margin-top:48px;padding:22px 0}
.footer-bottom .container{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-size:.84rem;color:var(--dim)}
.footer-bottom .container a{color:var(--dim);transition:color .2s}
.footer-bottom .container a:hover{color:var(--ink)}

/* ─── Reveal al hacer scroll ───────────────────────────────── */
.reveal{opacity:0;transform:translateY(30px);filter:blur(4px);
  transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.reveal.in{opacity:1;transform:none;filter:none}

/* ─── Consentimiento del formulario ────────────────────────── */
.consent{margin:4px 0 18px}
.consent-check{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--muted);cursor:pointer}
.consent-check input{margin-top:3px;width:18px;height:18px;accent-color:var(--blue);flex:0 0 auto;cursor:pointer}
.link-privacy{background:none;border:0;padding:0;color:var(--blue-bright);font-weight:600;cursor:pointer;
  font-family:inherit;font-size:inherit;text-decoration:underline;text-underline-offset:2px}
.link-privacy:hover{color:var(--cyan)}

/* ─── Modal Aviso de Privacidad (en página) ────────────────── */
.privacy-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(2,4,9,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s}
.privacy-overlay.show{opacity:1;visibility:visible}
.privacy-overlay[hidden]{display:none}
.privacy-card{background:linear-gradient(160deg,var(--surface-2),var(--surface));
  border:1px solid var(--line-strong);border-radius:20px;max-width:560px;width:100%;max-height:88vh;overflow:auto;
  padding:34px;box-shadow:0 40px 100px rgba(0,0,0,.7);position:relative;
  transform:translateY(26px) scale(.97);transition:transform .4s var(--ease)}
.privacy-overlay.show .privacy-card{transform:none}
.privacy-close{position:absolute;top:14px;right:16px;background:rgba(125,175,255,.1);border:1px solid var(--line);
  border-radius:50%;width:36px;height:36px;font-size:1.4rem;line-height:1;color:var(--ink);cursor:pointer;
  transition:background .25s,border-color .25s}
.privacy-close:hover{background:rgba(77,143,245,.24);border-color:var(--line-strong)}
.pv-head{margin-bottom:14px}
.pv-badge{display:inline-block;background:rgba(77,143,245,.14);color:var(--blue-bright);border:1px solid var(--line);
  font-weight:600;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
  padding:5px 12px;border-radius:20px;margin-bottom:12px}
.pv-head h3{font-size:1.5rem}
.pv-sub{color:var(--dim);font-size:.9rem;margin-top:2px}
.pv-body{font-size:.93rem;color:var(--muted);line-height:1.7}
.pv-body p{margin-bottom:12px}
.pv-body strong{color:var(--ink)}
.pv-body a{color:var(--blue-bright);font-weight:600}
.pv-more{font-size:.87rem;color:var(--dim)}
.pv-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.pv-actions .btn{flex:1;min-width:160px;padding:12px 18px}
body.modal-open{overflow:hidden}

/* ─── Notificación de éxito ────────────────────────────────── */
.success-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(2,4,9,.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s}
.success-overlay.show{opacity:1;visibility:visible}
.success-card{background:linear-gradient(160deg,var(--surface-2),var(--surface));
  border:1px solid var(--line-strong);border-radius:22px;padding:40px 34px;max-width:380px;width:100%;
  text-align:center;box-shadow:0 40px 100px rgba(0,0,0,.7);
  transform:translateY(22px) scale(.94);transition:transform .5s var(--ease)}
.success-overlay.show .success-card{transform:none}
.success-check{width:88px;height:88px;margin:0 auto 20px;border-radius:50%;
  background:rgba(61,220,151,.1);box-shadow:0 0 40px rgba(61,220,151,.2);
  display:grid;place-items:center;animation:scPop .45s var(--ease) both}
@keyframes scPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.success-check svg{width:54px;height:54px}
.sc-circle{fill:none;stroke:var(--green);stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;
  animation:scCircle .55s var(--ease) .15s forwards}
.sc-check{fill:none;stroke:var(--green);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:40;stroke-dashoffset:40;animation:scCheck .35s var(--ease) .6s forwards}
@keyframes scCircle{to{stroke-dashoffset:0}}
@keyframes scCheck{to{stroke-dashoffset:0}}
.success-card h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.5rem;color:var(--ink);margin-bottom:8px}
.success-msg{color:var(--muted);font-size:.95rem;line-height:1.6}

/* ─── Banner de cookies (discreto) ─────────────────────────── */
.cookie-banner{position:fixed;left:20px;bottom:20px;z-index:150;max-width:430px;width:calc(100% - 40px);
  display:flex;align-items:center;gap:14px;background:rgba(10,18,32,.9);border:1px solid var(--line-strong);
  border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.6);padding:14px 16px;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transform:translateY(160%);opacity:0;transition:transform .6s var(--ease),opacity .6s}
.cookie-banner.show{transform:none;opacity:1}
.cookie-banner[hidden]{display:none}
.cookie-ic{flex:0 0 auto;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;
  background:rgba(77,143,245,.14);color:var(--blue-bright)}
.cookie-ic svg{width:22px;height:22px}
.cookie-text{font-size:.83rem;color:var(--muted);line-height:1.5;margin:0}
.cookie-text strong{color:var(--ink)}
.cookie-text a{color:var(--blue-bright);font-weight:600}
.cookie-ok{flex:0 0 auto;cursor:pointer;border:0;font-family:'Sora',sans-serif;font-weight:600;
  font-size:.86rem;color:#04060c;background:linear-gradient(100deg,var(--blue),var(--blue-bright));
  padding:10px 18px;border-radius:10px;transition:transform .25s var(--ease),box-shadow .3s}
.cookie-ok:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(77,143,245,.4)}
@media(max-width:560px){
  .cookie-banner{left:12px;right:12px;bottom:12px;flex-wrap:wrap}
  .cookie-ok{width:100%}
  /* A pantalla completa el banner taparía el botón de enviar: se le hace sitio. */
  body.cookie-visible .inc-wrap{padding-bottom:230px}
  body.cookie-visible .site-footer{padding-bottom:210px}
}

/* ─── Página legal (Aviso de Privacidad integral) ──────────── */
.legal{padding:60px 0 80px;min-height:70vh}
.legal-wrap{max-width:820px}
.legal-back{display:inline-block;color:var(--blue-bright);font-weight:600;margin-bottom:18px;font-size:.94rem}
.legal-wrap .tag{display:block}
.legal-back:hover{text-decoration:underline}
.legal h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;margin:8px 0 6px}
.legal-updated{color:var(--dim);font-size:.9rem;margin-bottom:24px}
.legal-intro{font-size:1.02rem;color:var(--muted);background:var(--glass);border:1px solid var(--line);
  border-left:2px solid var(--blue);border-radius:12px;padding:18px 20px;margin-bottom:30px}
.legal-sec{margin-bottom:26px}
.legal-sec h2{font-size:1.16rem;color:var(--ink);margin-bottom:8px}
.legal-sec p{color:var(--muted);margin-bottom:10px;line-height:1.75}
.legal-sec ul{margin:0 0 10px 22px;color:var(--muted);line-height:1.75}
.legal-sec li{margin-bottom:4px}
.legal-sec strong{color:var(--ink)}
.legal-sec a,.legal-intro a{color:var(--blue-bright);font-weight:600}
.legal-foot{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);color:var(--dim);font-size:.87rem}

/* ═══════════ Modo incógnito (discreción) ═══════════ */
body.incognito{background:var(--void)}
.inc-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.inc-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;mix-blend-mode:screen;
  transition:transform .8s var(--ease)}
.inc-orb.io1{width:620px;height:620px;top:-200px;left:-160px;
  background:radial-gradient(circle,rgba(77,143,245,.55),transparent 70%);
  animation:drift 36s var(--ease) infinite alternate}
.inc-orb.io2{width:540px;height:540px;bottom:-200px;right:-160px;
  background:radial-gradient(circle,rgba(139,127,245,.45),transparent 70%);
  animation:drift 44s var(--ease) infinite alternate-reverse}
.inc-orb.io3{width:400px;height:400px;top:40%;left:52%;
  background:radial-gradient(circle,rgba(111,227,245,.3),transparent 70%);
  animation:drift 52s var(--ease) infinite alternate}

/* Halo que respira detrás del logo */
.inc-halo{position:absolute;top:50%;left:50%;width:min(760px,120vw);aspect-ratio:1;
  transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(77,143,245,.16),rgba(111,227,245,.05) 45%,transparent 68%);
  animation:halo 11s ease-in-out infinite}
@keyframes halo{0%,100%{transform:translate(-50%,-50%) scale(.9);opacity:.55}
  50%{transform:translate(-50%,-50%) scale(1.08);opacity:1}}

.inc-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:16px;padding:22px;max-width:560px;margin:0 auto}
.inc-logo{width:150px;max-width:46%;height:auto;
  filter:var(--logo-lift) drop-shadow(0 0 26px rgba(77,143,245,.35));
  animation:logoBreath 7s ease-in-out infinite}
@keyframes logoBreath{
  0%,100%{filter:var(--logo-lift) drop-shadow(0 0 22px rgba(77,143,245,.28))}
  50%{filter:var(--logo-lift) drop-shadow(0 0 42px rgba(111,227,245,.55))}}

/* Eslogan revelado palabra por palabra (los <span> los crea main.js) */
.inc-slogan{font-family:'Sora',sans-serif;font-weight:600;font-size:clamp(1.2rem,3vw,1.9rem);
  color:var(--ink);letter-spacing:-.015em;max-width:22ch;line-height:1.28;margin:0}
.inc-slogan .w{display:inline-block;opacity:0;transform:translateY(14px);filter:blur(9px);
  animation:wordIn 1.1s var(--ease) forwards}
@keyframes wordIn{to{opacity:1;transform:none;filter:none}}
/* Línea fina que se dibuja bajo el eslogan */
.inc-rule{width:0;height:1px;margin:2px auto 4px;
  background:linear-gradient(90deg,transparent,rgba(122,181,255,.7),rgba(111,227,245,.5),transparent);
  animation:ruleIn 1.6s var(--ease) 1.2s forwards}
@keyframes ruleIn{to{width:min(320px,70%)}}

.inc-form{width:100%;max-width:410px;background:var(--glass);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid var(--line);border-radius:18px;padding:20px 22px;box-shadow:var(--shadow);
  text-align:left;margin-top:4px;
  opacity:0;transform:translateY(18px);animation:wordIn 1.1s var(--ease) 1.1s forwards}
.inc-form .field{margin-bottom:11px}
.inc-form .consent{margin:2px 0 13px}

/* Botón de soporte fijo en la esquina superior derecha */
.inc-support{position:fixed;top:18px;right:18px;z-index:120;display:inline-flex;align-items:center;gap:8px;
  background:rgba(125,175,255,.08);border:1px solid var(--line-strong);backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);color:var(--ink);padding:10px 18px;border-radius:30px;
  font-family:'Sora',sans-serif;font-weight:600;font-size:.88rem;
  transition:transform .25s var(--ease),box-shadow .3s,background .3s,border-color .3s}
.inc-support:hover{background:rgba(77,143,245,.2);border-color:rgba(122,181,255,.45);
  transform:translateY(-2px);box-shadow:0 10px 28px rgba(77,143,245,.3)}
.inc-support svg{flex:0 0 auto}
.inc-privacy-link{font-size:.79rem;color:var(--dim);transition:color .25s}
.inc-privacy-link:hover{color:var(--blue-bright)}

@media(max-width:520px){
  .inc-support{padding:10px;gap:0}
  .inc-support-text{display:none}
  .inc-wrap{gap:13px;padding:16px}
  .inc-logo{width:120px}
  .inc-slogan{font-size:1.2rem;max-width:24ch}
  .inc-form{padding:16px 16px}
  .inc-form .field{margin-bottom:10px}
  .inc-form .consent{margin:2px 0 11px}
}

/* ─── Responsive ───────────────────────────────────────────── */
@media(max-width:920px){
  .hero-grid,.contact-grid{grid-template-columns:1fr}
  .hero-art{order:-1}
  .cards,.steps{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .nav-links{position:fixed;inset:72px 0 auto 0;background:rgba(6,10,18,.97);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    flex-direction:column;gap:0;padding:8px 0;border-bottom:1px solid var(--line);
    box-shadow:var(--shadow);transform:translateY(-130%);transition:transform .4s var(--ease);align-items:stretch}
  .nav-links.open{transform:none}
  .nav-links>a{padding:14px 24px}
  .nav-links>a:not(.btn-support)::after{display:none}
  .nav-links a.btn-support{margin:10px 24px;justify-content:center}
  .nav-toggle{display:flex}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
@media(max-width:680px){
  .cards,.steps,.field-row,.footer-grid,.footer-bottom .container{grid-template-columns:1fr}
  .footer-bottom .container{display:flex;flex-direction:column;text-align:center}
  .section{padding:70px 0}
  .hero{padding:64px 0 90px}
}

/* Respeta preferencia de movimiento reducido */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none;filter:none}
  .inc-slogan .w{opacity:1;transform:none;filter:none}
  .inc-form{opacity:1;transform:none}
  .inc-rule{width:min(320px,70%)}
}
