/* ─────────────────────────────────────────────
   REVOLUCIÓN DENTAL · v2 · Tech & Futuristic
   ───────────────────────────────────────────── */
:root{
  --bg:        #07070a;
  --bg-2:      #0d0d10;
  --bg-3:      #131318;
  --line:      rgba(212,175,55,.22);
  --line-soft: rgba(255,255,255,.08);
  --gold:      #d4af37;
  --gold-2:    #f5d57e;
  --gold-deep: #a17e1c;
  --ink:       #f3efe6;
  --ink-soft:  rgba(243,239,230,.72);
  --ink-faint: rgba(243,239,230,.5);
  --max:       1280px;
  --pad:       clamp(20px, 5vw, 60px);
  --radius:    18px;
  --display:   'Geist', 'Inter', system-ui, sans-serif;
  --sans:      'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --mono:      'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --serif:     'Geist', 'Inter', sans-serif; /* legacy alias, ahora sans */
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--ink);
  font:400 16px/1.6 var(--display);
  font-feature-settings:"ss01","cv11","liga","kern";
  letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  cursor:default;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.container{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.mono{font-family:var(--mono)}
.serif{font-family:var(--display);font-weight:500;font-style:normal}
.italic{font-style:normal}  /* legacy: italic ya no aplica */

.eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--mono);font-size:11px;letter-spacing:.32em;
  text-transform:uppercase;color:var(--gold);
  margin-bottom:22px;
}
.eyebrow::before{content:"";width:28px;height:1px;background:linear-gradient(90deg, var(--gold), transparent)}
.section-title{
  font:700 clamp(32px, 5.6vw, 64px)/1 var(--display);
  letter-spacing:-.04em;
  margin-bottom:56px;max-width:960px;
}
.section-title .serif{font-weight:700;color:var(--gold-2);letter-spacing:-.04em}

/* ── GRAIN OVERLAY ───────────────────────────── */
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:30;mix-blend-mode:overlay;opacity:.06;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ── AURORA (nebulosa espacial — colores que cambian lento) ─── */
.aurora{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  overflow:hidden;
  filter:blur(100px) saturate(1.5);
  opacity:.7;
  animation:aurHue 120s linear infinite; /* hue shift muy lento */
}
@keyframes aurHue{
  0%{filter:blur(100px) saturate(1.5) hue-rotate(0deg)}
  100%{filter:blur(100px) saturate(1.5) hue-rotate(360deg)}
}
.aurora-blob{
  position:absolute;border-radius:50%;mix-blend-mode:screen;
  will-change:transform;
  animation:aurFloat 60s ease-in-out infinite;
}
.aurora-blob.a1{
  width:60vmax;height:60vmax;top:-20%;left:-20%;
  background:radial-gradient(circle, rgba(212,175,55,.55), rgba(212,175,55,0) 65%);
  animation-duration:75s;
}
.aurora-blob.a2{
  width:55vmax;height:55vmax;top:20%;right:-20%;
  background:radial-gradient(circle, rgba(180,90,255,.5), rgba(180,90,255,0) 65%);
  animation-duration:85s;animation-delay:-10s;
}
.aurora-blob.a3{
  width:50vmax;height:50vmax;top:50%;left:-15%;
  background:radial-gradient(circle, rgba(0,140,255,.45), rgba(0,140,255,0) 65%);
  animation-duration:95s;animation-delay:-20s;
}
.aurora-blob.a4{
  width:45vmax;height:45vmax;top:70%;right:10%;
  background:radial-gradient(circle, rgba(255,90,140,.4), rgba(255,90,140,0) 65%);
  animation-duration:100s;animation-delay:-30s;
}
.aurora-blob.a5{
  width:48vmax;height:48vmax;bottom:-15%;left:25%;
  background:radial-gradient(circle, rgba(0,210,180,.4), rgba(0,210,180,0) 65%);
  animation-duration:110s;animation-delay:-40s;
}
.aurora-blob.a6{
  width:42vmax;height:42vmax;top:120%;right:-10%;
  background:radial-gradient(circle, rgba(255,180,90,.35), rgba(255,180,90,0) 65%);
  animation-duration:90s;animation-delay:-50s;
}
.aurora-blob.a7{
  width:38vmax;height:38vmax;top:180%;left:30%;
  background:radial-gradient(circle, rgba(140,0,255,.4), rgba(140,0,255,0) 65%);
  animation-duration:105s;animation-delay:-60s;
}
@keyframes aurFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  20%{transform:translate(12vw,-8vh) scale(1.15)}
  40%{transform:translate(-10vw,6vh) scale(.88)}
  60%{transform:translate(8vw,12vh) scale(1.08)}
  80%{transform:translate(-6vw,-10vh) scale(.95)}
}

/* Aurora pegada a la página (no fixed) para acompañar el scroll */
.aurora{
  position:absolute;height:300vh;top:0;left:0;right:0;
}
body{position:relative;background:#040408}

/* Layering */
section, footer, .nav, .marquee, .form-section, .academy, .hero, .diff, .services, .portfolio, .process, .pagos, .contact, .stats{
  position:relative;z-index:1;
}
/* TODAS las secciones semi-transparentes — aurora atraviesa toda la página */
.hero{background:transparent}
.diff{background:rgba(13,13,16,.45);backdrop-filter:blur(12px)}
.services{background:transparent}
.portfolio{background:rgba(13,13,16,.5);backdrop-filter:blur(12px)}
.process{background:transparent}
.academy{background:transparent}
.form-section{background:rgba(13,13,16,.45);backdrop-filter:blur(12px)}
.pagos{background:rgba(13,13,16,.5);backdrop-filter:blur(12px)}
.contact{background:transparent}
.stats{background:transparent}
.footer{background:rgba(5,5,7,.75);backdrop-filter:blur(12px)}
.marquee{background:linear-gradient(180deg, rgba(212,175,55,.04), rgba(0,0,0,.2))}

/* ── AUDIO TOGGLE ────────────────────────────── */
.audio-toggle{
  position:fixed;bottom:22px;left:22px;z-index:60;
  width:auto;height:46px;padding:0 14px;
  border-radius:999px;
  background:rgba(13,13,16,.85);backdrop-filter:blur(10px);
  border:1px solid var(--line);color:var(--ink-soft);
  display:flex;align-items:center;gap:10px;
  font:500 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;
  cursor:pointer;transition:all .3s;
}
.audio-toggle:hover{border-color:var(--gold);color:var(--gold)}
.audio-icon{display:none;align-items:center;justify-content:center}
.audio-toggle .audio-off{display:flex}
.audio-toggle.is-on .audio-on{display:flex;color:var(--gold-2)}
.audio-toggle.is-on .audio-off{display:none}
.audio-toggle::after{content:"AMBIENT";opacity:.9}
.audio-bars{display:none;align-items:flex-end;gap:2px;height:14px;margin-left:2px}
.audio-bars i{
  width:2px;background:var(--gold);border-radius:1px;
  animation:audioBars 1.2s ease-in-out infinite;
}
.audio-bars i:nth-child(1){height:50%;animation-delay:0s}
.audio-bars i:nth-child(2){height:90%;animation-delay:.2s}
.audio-bars i:nth-child(3){height:60%;animation-delay:.4s}
@keyframes audioBars{
  0%,100%{transform:scaleY(.3)}
  50%{transform:scaleY(1)}
}
.audio-toggle.is-on .audio-bars{display:inline-flex}
.audio-toggle.is-on{
  border-color:var(--gold);
  background:rgba(212,175,55,.1);
  color:var(--gold-2);
}

/* ── LOADER ──────────────────────────────────── */
.loader{
  position:fixed;inset:0;z-index:100;background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .6s ease, visibility .6s;
}
.loader.hide{opacity:0;visibility:hidden}
.loader-inner{text-align:center}
.loader-logo{width:96px;height:96px;margin:0 auto 28px;border-radius:50%;
  filter:drop-shadow(0 0 30px rgba(212,175,55,.5));animation:loaderSpin 2.2s linear infinite}
@keyframes loaderSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.loader-bar{width:220px;height:2px;background:rgba(255,255,255,.1);margin:0 auto;overflow:hidden}
.loader-bar-fill{height:100%;background:linear-gradient(90deg, var(--gold-2), var(--gold), var(--gold-deep));
  animation:loaderFill 1.4s ease forwards}
@keyframes loaderFill{from{width:0}to{width:100%}}
.loader-text{margin-top:16px;font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:var(--ink-faint)}
.loader-dots{display:inline-block;width:24px;text-align:left;color:var(--gold)}

/* ── CUSTOM CURSOR ───────────────────────────── */
.cursor{display:none;position:fixed;top:0;left:0;z-index:200;pointer-events:none;mix-blend-mode:difference}
.cursor-dot{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--gold-2)}
.cursor-ring{position:absolute;left:-15px;top:-15px;width:30px;height:30px;border:1px solid var(--gold);border-radius:50%;
  transition:transform .25s ease, opacity .25s, border-color .25s}
.cursor.hover .cursor-ring{transform:scale(2);border-color:var(--gold-2);opacity:.6}
@media (hover:hover) and (pointer:fine){ .cursor{display:block} body{cursor:none} a,button{cursor:none} }

/* ── NAV ─────────────────────────────────────── */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:50;
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  background:rgba(7,7,10,.55);
  border-bottom:1px solid var(--line-soft);
  transition:background .3s;
}
.nav-wrap{
  max-width:var(--max);margin:0 auto;
  padding:14px var(--pad);
  display:flex;align-items:center;gap:24px;
}
.nav-logo img{height:38px;width:auto;border-radius:50%}
.nav nav{display:none;gap:28px;margin-left:auto;font-size:13.5px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.15em}
.nav nav a{color:var(--ink-soft);transition:color .25s;position:relative}
.nav nav a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold);transition:width .3s}
.nav nav a:hover{color:var(--gold)}
.nav nav a:hover::after{width:100%}
.nav .btn{margin-left:auto}
.nav-ig{
  display:none;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line-soft);color:var(--ink-soft);
  transition:color .25s, border-color .25s, background .25s;
}
.nav-ig:hover{color:var(--gold);border-color:var(--gold);background:rgba(212,175,55,.05)}

@media (min-width:920px){
  .nav nav{display:flex}
  .nav .btn{margin-left:0}
  .nav-ig{display:inline-flex}
}

/* ── BUTTONS ─────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 24px;border-radius:999px;
  font:600 13.5px/1 var(--sans);letter-spacing:.04em;
  cursor:pointer;border:1px solid transparent;
  transition:transform .28s, background .28s, color .28s, box-shadow .28s, border-color .28s;
  white-space:nowrap;text-transform:uppercase;
}
.btn-pill{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-pill:hover{border-color:var(--gold);color:var(--gold)}
.btn-gold{
  background:linear-gradient(135deg, var(--gold-2), var(--gold) 50%, var(--gold-deep));
  color:#1a1408;
  box-shadow:0 8px 24px -10px rgba(212,175,55,.6), inset 0 1px 0 rgba(255,255,255,.35);
  letter-spacing:.06em;
}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 18px 40px -14px rgba(212,175,55,.75)}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.18);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-outline{background:transparent;border-color:var(--gold);color:var(--gold)}
.btn-outline:hover{background:var(--gold);color:#1a1408}
.btn-lg{padding:17px 32px;font-size:14px}

/* ── HERO ────────────────────────────────────── */
.hero{
  position:relative;min-height:100svh;
  padding:120px var(--pad) 80px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;isolation:isolate;
}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.65}
.hero-bg{position:absolute;inset:0;pointer-events:none;z-index:1}
.hero-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(212,175,55,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(212,175,55,.06) 1px, transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse at center, #000 30%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at center, #000 30%, transparent 75%);
  opacity:.5;
}
.hero-glow{
  position:absolute;inset:auto;left:50%;top:50%;
  width:min(900px, 90vw);height:min(900px, 90vw);
  transform:translate(-50%,-50%);
  background:radial-gradient(closest-side, rgba(212,175,55,.20), rgba(212,175,55,.05) 40%, transparent 70%);
  filter:blur(20px);
  animation:hero-pulse 8s ease-in-out infinite;
}
@keyframes hero-pulse{
  0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.95}
  50%{transform:translate(-50%,-50%) scale(1.06);opacity:1}
}
.hero-corner{position:absolute;width:60px;height:60px;border:1px solid var(--gold);opacity:.4}
.hero-corner.tl{top:24px;left:24px;border-right:none;border-bottom:none}
.hero-corner.tr{top:24px;right:24px;border-left:none;border-bottom:none}
.hero-corner.bl{bottom:24px;left:24px;border-right:none;border-top:none}
.hero-corner.br{bottom:24px;right:24px;border-left:none;border-top:none}

.hero-content{position:relative;text-align:center;max-width:920px;z-index:2}
.hero-tag{
  display:inline-flex;align-items:center;gap:12px;
  padding:7px 16px;border-radius:999px;
  border:1px solid var(--line);background:rgba(212,175,55,.05);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--ink-soft);margin-bottom:32px;
}
.hero-tag .dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 12px #22c55e;animation:tagPulse 1.6s ease-in-out infinite}
@keyframes tagPulse{50%{opacity:.4}}
.hero-tag .divider{width:1px;height:12px;background:var(--line)}
.hero-tag .mono{color:var(--gold)}

.hero-logo{position:relative;width:fit-content;margin:0 auto 28px}
.hero-logo img{width:clamp(110px, 16vw, 160px);height:auto;border-radius:50%;
  filter:drop-shadow(0 10px 40px rgba(212,175,55,.4));
  position:relative;z-index:2;
}
.hero-logo-ring{
  position:absolute;inset:-14px;border-radius:50%;
  border:1px dashed var(--gold);opacity:.55;
  animation:ringRotate 22s linear infinite;
}
.hero-logo-ring::before{
  content:"";position:absolute;inset:-12px;border-radius:50%;
  border:1px solid var(--line);
}
@keyframes ringRotate{to{transform:rotate(360deg)}}

.hero-title{
  font:800 clamp(56px, 13vw, 150px)/.92 var(--display);
  letter-spacing:-.055em;
  display:flex;flex-direction:column;align-items:center;gap:.02em;
}
.hero-title .serif{
  font:800 1em/1 var(--display);font-style:normal;
  letter-spacing:-.055em;
  background:linear-gradient(180deg, #ffffff 0%, #e0d3a3 65%, var(--gold) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-title .line2{
  letter-spacing:.42em;font-size:.18em;font-weight:600;
  color:var(--ink-soft);padding-left:.4em;
  font-family:var(--mono);margin-top:.6em;
}
.hero-kicker{font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);margin-top:30px;font-family:var(--mono)}
.hero-tagline{font:400 clamp(17px, 2vw, 22px)/1.5 var(--display);color:var(--ink-soft);margin-top:18px;letter-spacing:-.015em}
.hero-tagline b{color:var(--gold-2);font-weight:600}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:36px}

.hero-meta{
  display:flex;gap:0;justify-content:center;flex-wrap:wrap;
  margin-top:52px;padding-top:30px;
  border-top:1px solid var(--line-soft);max-width:600px;margin-left:auto;margin-right:auto;
}
.meta-cell{flex:1 1 auto;padding:0 20px;text-align:center;border-right:1px solid var(--line-soft);min-width:130px}
.meta-cell:last-child{border-right:none}
.meta-k{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:var(--ink-faint);text-transform:uppercase;margin-bottom:6px}
.meta-v{font:600 clamp(20px, 3vw, 26px)/1 var(--sans);color:var(--gold-2)}
.meta-unit{font-size:.55em;color:var(--ink-soft);font-weight:400;margin-left:4px;letter-spacing:.06em}

.hero-scroll{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  width:24px;height:38px;border:1px solid var(--line);border-radius:14px;
  display:none;z-index:2;
}
.hero-scroll span{
  position:absolute;left:50%;top:8px;transform:translateX(-50%);
  width:3px;height:8px;border-radius:2px;background:var(--gold);
  animation:scroll 1.8s ease-in-out infinite;
}
@keyframes scroll{
  0%{transform:translate(-50%,0);opacity:1}
  100%{transform:translate(-50%,14px);opacity:0}
}
@media (min-width:860px){ .hero-scroll{display:block} }

/* ── MARQUEE ─────────────────────────────────── */
.marquee{
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  background:linear-gradient(180deg, rgba(212,175,55,.03), rgba(0,0,0,0));
  padding:18px 0;overflow:hidden;
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee-track{
  display:inline-flex;white-space:nowrap;
  animation:marquee 35s linear infinite;
  font-family:var(--mono);font-size:13px;letter-spacing:.3em;color:var(--ink-soft);
}
.marquee-track span{padding:0 22px}
.marquee-track span:nth-child(odd){color:var(--gold-2);font-weight:500}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ── GLOW BORDER (conic) ─────────────────────── */
.glow{position:relative;isolation:isolate}
.glow::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;
  background:conic-gradient(from 0deg, transparent 60%, rgba(212,175,55,.6) 75%, transparent 90%);
  z-index:-1;opacity:0;transition:opacity .4s;
  animation:rotateBorder 6s linear infinite;
}
.glow:hover::before{opacity:1}
@keyframes rotateBorder{to{transform:rotate(360deg)}}

/* ── DIFERENCIADORES ─────────────────────────── */
.diff{padding:100px 0;background:var(--bg-2);position:relative}
.diff-grid{
  display:grid;gap:16px;grid-template-columns:1fr;
}
@media (min-width:680px){ .diff-grid{grid-template-columns:repeat(2, 1fr)} }
@media (min-width:1020px){ .diff-grid{grid-template-columns:repeat(4, 1fr)} }
.diff-card{
  position:relative;
  padding:32px 28px;border-radius:var(--radius);
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,0));
  border:1px solid var(--line-soft);
  transition:transform .4s, border-color .4s, background .4s;
  backdrop-filter:blur(10px);
}
.diff-card:hover{
  transform:translateY(-6px);
  border-color:var(--line);
  background:linear-gradient(180deg, rgba(212,175,55,.06), rgba(212,175,55,0));
}
.diff-num{
  font-family:var(--mono);font-size:12px;letter-spacing:.25em;
  color:var(--gold);margin-bottom:22px;
}
.diff-card h3{font:600 20px/1.2 var(--display);margin-bottom:10px;letter-spacing:-.02em}
.diff-card p{color:var(--ink-soft);font-size:14.5px;line-height:1.6}

/* ── STATS ───────────────────────────────────── */
.stats{padding:80px 0;background:var(--bg);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.stats-grid{
  display:grid;gap:20px;
  grid-template-columns:repeat(2, 1fr);
}
@media (min-width:860px){ .stats-grid{grid-template-columns:repeat(4, 1fr)} }
.stat{text-align:center;padding:20px}
.stat-num{
  font:700 clamp(48px, 8vw, 84px)/1 var(--display);
  letter-spacing:-.06em;color:var(--ink);
  background:linear-gradient(180deg, #ffffff 0%, #e0d3a3 65%, var(--gold) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.stat-num .plus{font-size:.55em;color:var(--gold);-webkit-text-fill-color:var(--gold);margin-left:2px}
.stat-label{font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint);margin-top:10px}

/* ── SERVICIOS ───────────────────────────────── */
.services{padding:110px 0;background:var(--bg)}
.services-grid{
  display:grid;gap:14px;grid-template-columns:1fr;
}
@media (min-width:560px){ .services-grid{grid-template-columns:repeat(2, 1fr)} }
@media (min-width:860px){ .services-grid{grid-template-columns:repeat(4, 1fr)} }
.svc{
  padding:28px 24px;border-radius:var(--radius);
  background:var(--bg-3);
  border:1px solid var(--line-soft);
  transition:transform .4s, border-color .4s, background .4s;
  position:relative;overflow:hidden;
}
.svc::before{
  content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;
  background:radial-gradient(circle, rgba(212,175,55,.08), transparent 50%);
  opacity:0;transition:opacity .5s;
}
.svc:hover{transform:translateY(-4px);border-color:var(--gold);background:var(--bg-3)}
.svc:hover::before{opacity:1}
.svc>*{position:relative;z-index:1}
.svc-icon{
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;color:var(--gold);
  background:rgba(212,175,55,.08);
  border:1px solid var(--line);
  margin-bottom:18px;
}
.svc h4{font:600 17px/1.2 var(--display);margin-bottom:8px;letter-spacing:-.02em}
.svc p{font-size:13.5px;color:var(--ink-soft);line-height:1.55}

/* ── PORTAFOLIO ──────────────────────────────── */
.portfolio{padding:110px 0;background:var(--bg-2)}
.port-hint{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);margin:-20px 0 30px;display:flex;align-items:center;gap:10px}
.port-hint .arrow{color:var(--gold);font-size:14px;animation:hintSlide 2s ease-in-out infinite}
@keyframes hintSlide{50%{transform:translateX(6px)}}

/* Before/After slider */
.case{margin-bottom:24px}
.case-tag{
  font-family:var(--mono);font-size:11px;letter-spacing:.25em;
  color:var(--gold);margin-bottom:14px;
  display:inline-flex;align-items:center;gap:12px;
}
.case-tag::before{content:"";width:24px;height:1px;background:var(--gold)}
.ba{
  position:relative;width:100%;
  aspect-ratio:16/10;max-height:640px;
  border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line);
  user-select:none;touch-action:none;
  background:#000;
}
/* Slider con fotos en portrait — usa 4:5 y un ancho máximo para mantener proporción */
.ba.ba-portrait{
  aspect-ratio:4/5;max-height:840px;max-width:680px;margin:0 auto;
}
.ba.ba-portrait img{object-position:center top}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-after{z-index:1}
.ba-before-wrap{position:absolute;inset:0;width:50%;overflow:hidden;z-index:2;will-change:width}
.ba-before-wrap img{width:200%}
.ba-divider{
  position:absolute;top:0;bottom:0;left:50%;width:2px;
  background:var(--gold);z-index:3;transform:translateX(-50%);
  box-shadow:0 0 12px rgba(212,175,55,.6);will-change:left;
}
.ba-handle{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:48px;height:48px;border-radius:50%;
  background:var(--gold);display:flex;align-items:center;justify-content:center;gap:4px;
  box-shadow:0 6px 18px rgba(0,0,0,.5), 0 0 0 4px rgba(212,175,55,.18);
  cursor:ew-resize;
}
.ba-handle span{width:0;height:0;border:6px solid transparent}
.ba-handle span:first-child{border-right-color:#1a1408}
.ba-handle span:last-child{border-left-color:#1a1408}
.ba-label{
  position:absolute;top:14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.32em;
  padding:5px 10px;border-radius:999px;z-index:3;
  background:rgba(7,7,10,.7);backdrop-filter:blur(6px);border:1px solid var(--line);
}
.ba-label-before{left:14px;color:var(--ink)}
.ba-label-after{right:14px;color:var(--gold)}

/* Portfolio gallery — uniforme, 3 columnas, mismo aspect ratio */
.portfolio-grid{
  display:grid;gap:16px;grid-template-columns:1fr;margin-top:36px;
}
@media (min-width:680px){ .portfolio-grid{grid-template-columns:repeat(2, 1fr)} }
@media (min-width:980px){ .portfolio-grid{grid-template-columns:repeat(3, 1fr)} }
.port-item{
  position:relative;overflow:hidden;border-radius:var(--radius);
  background:#000;cursor:pointer;
  border:1px solid var(--line-soft);
  aspect-ratio:4/5;
}
.port-item img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  position:absolute;inset:0;
  transition:transform .8s ease, filter .8s ease;
  filter:saturate(.95) contrast(1.02);
}
.port-item:hover img{transform:scale(1.06);filter:saturate(1.05) contrast(1.05)}
.port-item::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.85) 100%);
}
.port-item figcaption{
  position:absolute;left:22px;right:22px;bottom:20px;z-index:1;
  color:#fff;font-size:14px;line-height:1.4;
}
.port-item figcaption span{
  display:block;color:var(--gold-2);font-family:var(--mono);font-size:10.5px;letter-spacing:.32em;
  text-transform:uppercase;margin-bottom:6px;
}

/* ── PROCESO ─────────────────────────────────── */
.process{padding:110px 0;background:var(--bg);position:relative;overflow:hidden}
.steps{
  list-style:none;display:grid;gap:18px;
  grid-template-columns:1fr;position:relative;
}
@media (min-width:860px){ .steps{grid-template-columns:repeat(3, 1fr)} }
.steps-line{display:none}
@media (min-width:860px){
  .steps-line{
    display:block;position:absolute;left:0;right:0;top:20px;bottom:50%;
    width:100%;height:2px;pointer-events:none;
  }
}
.step{
  position:relative;padding:32px 28px 30px;
  border-radius:var(--radius);border:1px solid var(--line-soft);
  background:linear-gradient(180deg, rgba(212,175,55,.05), rgba(255,255,255,0));
  backdrop-filter:blur(10px);
  transition:transform .4s, border-color .4s;
}
.step:hover{transform:translateY(-4px);border-color:var(--gold)}
.step-num{
  width:54px;height:54px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:14px;letter-spacing:.1em;
  background:linear-gradient(135deg, var(--gold-2), var(--gold-deep));
  color:#1a1408;margin-bottom:22px;
  box-shadow:0 6px 16px -6px rgba(212,175,55,.5);
}
.step h3{font:700 24px/1.15 var(--display);margin-bottom:10px;letter-spacing:-.03em}
.step p{color:var(--ink-soft);font-size:14.5px;line-height:1.6;margin-bottom:14px}
.link-gold{color:var(--gold);font-size:13px;font-weight:600;letter-spacing:.04em;font-family:var(--mono);text-transform:uppercase}
.link-gold:hover{color:var(--gold-2)}
.process-cta{text-align:center;margin-top:56px}

/* ── ACADEMY & STORE ─────────────────────────── */
.academy{padding:110px 0;background:var(--bg);position:relative;overflow:hidden}
.academy::before{
  content:"";position:absolute;left:50%;top:50%;
  width:120%;height:600px;transform:translate(-50%,-50%);
  background:radial-gradient(ellipse at center,
    rgba(180,90,255,.08),
    rgba(0,160,255,.06) 30%,
    rgba(212,175,55,.05) 55%,
    transparent 75%);
  filter:blur(40px);pointer-events:none;
}
.academy .container{position:relative;z-index:1}
.academy-intro{
  font:400 17px/1.6 var(--display);color:var(--ink-soft);
  margin:-30px 0 50px;max-width:600px;letter-spacing:-.012em;
}
.academy-grid{
  display:grid;gap:18px;
  grid-template-columns:1fr;
}
@media (min-width:680px){ .academy-grid{grid-template-columns:repeat(2, 1fr)} }
@media (min-width:1100px){ .academy-grid{grid-template-columns:repeat(4, 1fr)} }

.acad-card{
  position:relative;overflow:hidden;
  padding:30px 28px 30px;border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  border:1px solid var(--line-soft);
  backdrop-filter:blur(10px);
  min-height:300px;
  transition:transform .45s cubic-bezier(.22,1,.36,1), border-color .35s, background .35s;
}
.acad-card:hover{
  transform:translateY(-6px);
  border-color:var(--gold);
  background:linear-gradient(180deg, rgba(212,175,55,.05), rgba(212,175,55,0));
}
.acad-content{position:relative;z-index:2;display:flex;flex-direction:column;gap:8px;height:100%}
.acad-num{
  font-size:11px;letter-spacing:.3em;color:var(--gold);font-weight:500;
  margin-bottom:14px;
}
.acad-card h3{font:600 20px/1.2 var(--display);letter-spacing:-.025em;margin-bottom:4px}
.acad-card p{color:var(--ink-soft);font-size:14px;line-height:1.55;flex:1}
.acad-soon{
  display:inline-block;align-self:flex-start;
  margin-top:14px;padding:6px 12px;border-radius:999px;
  font-size:10.5px;letter-spacing:.25em;color:var(--gold-2);
  background:rgba(212,175,55,.08);
  border:1px solid var(--line);
}

/* 3D shapes (CSS-only abstract glassy forms, like Profico) */
.acad-shape{
  position:absolute;right:-30px;bottom:-30px;
  width:140px;height:140px;
  border-radius:50%;
  filter:blur(.5px);opacity:.85;
  pointer-events:none;z-index:1;
  transition:transform .6s ease;
}
.acad-card:hover .acad-shape{transform:scale(1.08) rotate(8deg)}

.acad-shape-1{
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,.7), transparent 45%),
    linear-gradient(135deg, #4a8aff, #d63ad6);
  clip-path:polygon(50% 0, 100% 38%, 82% 100%, 18% 100%, 0 38%);
  border-radius:0;
}
.acad-shape-2{
  background:
    radial-gradient(circle at 25% 25%, rgba(255,255,255,.7), transparent 45%),
    linear-gradient(135deg, #d4af37, #a17e1c);
  border-radius:50%;
}
.acad-shape-3{
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,.6), transparent 45%),
    linear-gradient(135deg, #00d4d4, #4a8aff);
  clip-path:polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  border-radius:0;
}
.acad-shape-4{
  background:
    radial-gradient(circle at 25% 25%, rgba(255,255,255,.7), transparent 45%),
    linear-gradient(135deg, #ff7a5c, #d63ad6);
  border-radius:30% 70% 50% 50% / 50% 50% 30% 70%;
}

.academy-cta{
  margin-top:46px;text-align:center;
  padding:30px;border-radius:14px;
  border:1px solid var(--line-soft);
  background:rgba(212,175,55,.03);
}
.academy-cta p{color:var(--ink-soft);font-size:15px;margin-bottom:16px;letter-spacing:-.01em}

/* ── FORMULARIO NATIVO ───────────────────────── */
.form-section{padding:110px 0;background:var(--bg);position:relative;overflow:hidden}
.form-section::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(212,175,55,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(212,175,55,.04) 1px, transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse 70% 50% at 50% 50%, #000, transparent);
  -webkit-mask-image:radial-gradient(ellipse 70% 50% at 50% 50%, #000, transparent);
}
.form-section .container{position:relative;z-index:1}
.form-intro{
  font:400 17px/1.6 var(--display);color:var(--ink-soft);
  margin:-30px 0 40px;max-width:560px;letter-spacing:-.012em;
}
.case-form{
  max-width:880px;
  padding:44px 40px;border-radius:24px;
  background:linear-gradient(180deg, rgba(212,175,55,.04), rgba(255,255,255,0));
  border:1px solid var(--line);
  backdrop-filter:blur(12px);
}
@media (max-width:680px){ .case-form{padding:30px 22px} }

.form-grid{
  display:grid;gap:22px 18px;
  grid-template-columns:repeat(2, 1fr);
}
@media (max-width:680px){ .form-grid{grid-template-columns:1fr} .span-2{grid-column:1!important} }
.span-2{grid-column:span 2}

.field{display:flex;flex-direction:column;gap:8px;position:relative}
.field-label{
  font-size:10.5px;letter-spacing:.25em;color:var(--gold);font-weight:500;
}
.field input,
.field select,
.field textarea{
  width:100%;
  padding:13px 16px;border-radius:10px;
  background:rgba(7,7,10,.55);
  border:1px solid var(--line-soft);
  color:var(--ink);
  font:400 15px/1.4 var(--sans);
  transition:border-color .25s, background .25s, box-shadow .25s;
  outline:none;
  font-family:inherit;
}
.field input::placeholder,
.field textarea::placeholder{color:var(--ink-faint);font-style:italic}
.field input:hover,
.field select:hover,
.field textarea:hover{border-color:var(--line)}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--gold);
  background:rgba(7,7,10,.85);
  box-shadow:0 0 0 4px rgba(212,175,55,.12);
}
.field textarea{resize:vertical;min-height:90px;font-family:var(--sans)}
.field select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23d4af37' stroke-width='2'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:38px;
  cursor:pointer;
}
.field select option{background:#0d0d10;color:var(--ink)}

.field input:invalid:not(:placeholder-shown){border-color:#ea4335}
.field input[type="date"]{color-scheme:dark}

.form-foot{
  margin-top:32px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.form-required{font-size:10.5px;letter-spacing:.25em;color:var(--ink-faint)}
.btn .btn-spinner{
  display:none;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;
  border-radius:50%;animation:btnSpin .8s linear infinite;
}
@keyframes btnSpin{to{transform:rotate(360deg)}}
.btn.is-loading .btn-label{opacity:.6}
.btn.is-loading .btn-spinner{display:inline-block}
.btn.is-loading .btn-arrow{display:none}

.form-status{margin-top:22px;min-height:24px}
.form-status.success{
  padding:18px 22px;border-radius:12px;
  background:linear-gradient(135deg, rgba(15,157,88,.18), rgba(15,157,88,.06));
  border:1px solid rgba(15,157,88,.45);
  color:#a4e0bd;
  font-size:14px;line-height:1.5;
}
.form-status.success strong{color:#34d278;font-family:var(--mono);letter-spacing:.06em}
.form-status.error{
  padding:14px 18px;border-radius:10px;
  background:rgba(234,67,53,.1);border:1px solid rgba(234,67,53,.4);
  color:#f4b6b0;font-size:13.5px;
}

/* STL block */
.stl-block{margin-top:8px}
.stl-tabs{
  display:flex;gap:4px;margin-bottom:12px;
  background:rgba(7,7,10,.6);padding:4px;border-radius:12px;
  border:1px solid var(--line-soft);width:fit-content;
}
.stl-tab{
  background:transparent;border:none;color:var(--ink-soft);
  padding:9px 16px;border-radius:8px;cursor:pointer;
  font:500 12px/1 var(--display);letter-spacing:-.005em;
  transition:all .25s;
}
.stl-tab:hover{color:var(--ink)}
.stl-tab.is-active{background:rgba(212,175,55,.12);color:var(--gold-2)}
.stl-pane{display:none}
.stl-pane.is-active{display:block;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.stl-drop{
  display:block;cursor:pointer;
  padding:30px 20px;border-radius:14px;
  background:rgba(7,7,10,.4);
  border:2px dashed var(--line);
  text-align:center;
  transition:border-color .25s, background .25s;
}
.stl-drop:hover,.stl-drop.is-drag{
  border-color:var(--gold);
  background:rgba(212,175,55,.05);
}
.stl-drop-inner svg{color:var(--gold);margin:0 auto 10px;display:block}
.stl-drop-inner p{font-size:14px;color:var(--ink-soft);margin:0}
.stl-drop-inner strong{color:var(--ink);font-weight:600}
.stl-hint{font-size:11.5px;color:var(--ink-faint);margin-top:6px!important;letter-spacing:.02em}

.stl-file-list{margin-top:14px;display:flex;flex-direction:column;gap:6px}
.stl-file-list:empty{display:none}
.stl-file{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:8px;
  background:rgba(212,175,55,.07);border:1px solid var(--line);
  font-size:13px;
}
.stl-file .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stl-file .size{color:var(--ink-faint);font-family:var(--mono);font-size:11px}
.stl-file .remove{
  background:transparent;border:none;color:var(--ink-soft);cursor:pointer;
  font-size:18px;line-height:1;padding:0 4px;
}
.stl-file .remove:hover{color:#ea4335}

.stl-pane[data-stl-pane="link"] input{
  width:100%;padding:13px 16px;border-radius:10px;
  background:rgba(7,7,10,.55);border:1px solid var(--line-soft);
  color:var(--ink);font:400 14px/1.4 var(--display);outline:none;
  transition:border-color .25s, background .25s;
}
.stl-pane[data-stl-pane="link"] input:focus{
  border-color:var(--gold);background:rgba(7,7,10,.85);
  box-shadow:0 0 0 4px rgba(212,175,55,.12);
}

.stl-email-note{
  padding:22px 24px;border-radius:12px;
  background:rgba(212,175,55,.04);border:1px solid var(--line-soft);
}
.stl-email-note p{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.5}
.stl-email-link{
  display:inline-block;margin:10px 0;
  font:600 17px/1 var(--display);color:var(--gold-2);
  letter-spacing:-.02em;
}
.stl-email-link:hover{color:var(--gold)}

/* ── PAGOS ───────────────────────────────────── */
.pagos{padding:110px 0;background:var(--bg-2);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.pay-grid{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:760px){ .pay-grid{grid-template-columns:repeat(2, 1fr)} }
.pay-card{
  padding:40px 32px;border-radius:var(--radius);
  background:var(--bg-3);border:1px solid var(--line-soft);
  transition:border-color .4s, transform .4s;
  position:relative;overflow:hidden;
}
.pay-card:hover{border-color:var(--gold);transform:translateY(-4px)}
.pay-card h3{font:700 24px/1.15 var(--display);margin-bottom:12px;letter-spacing:-.03em}
.pay-card p{color:var(--ink-soft);font-size:14.5px;line-height:1.6;margin-bottom:24px}
.pay-icon{
  width:52px;height:52px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font:500 26px/1 var(--serif);color:var(--gold);
  background:rgba(212,175,55,.08);border:1px solid var(--line);
  margin-bottom:22px;
}
.pay-mp::before{
  content:"";position:absolute;top:-30%;right:-20%;
  width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle, rgba(0,170,255,.18), transparent 65%);
  pointer-events:none;
}
.pay-note{color:var(--ink-faint);font-size:12px;margin-top:30px;text-align:center;letter-spacing:.04em}

/* ── CONTACTO ────────────────────────────────── */
.contact{padding:110px 0;background:var(--bg)}
.contact-grid{display:grid;gap:32px;grid-template-columns:1fr}
@media (min-width:860px){ .contact-grid{grid-template-columns:1.1fr 1fr;gap:60px} }
.ci-block{padding:18px 0;border-bottom:1px solid var(--line-soft)}
.ci-block:last-child{border-bottom:none}
.ci-label{display:block;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.ci-value{font-size:17px;color:var(--ink);line-height:1.5}
.ci-link:hover{color:var(--gold)}
.contact-cta{
  padding:44px 36px;border-radius:var(--radius);
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(212,175,55,.06), rgba(212,175,55,0));
  backdrop-filter:blur(10px);
}
.contact-cta h3{font:700 28px/1.1 var(--display);margin-bottom:14px;letter-spacing:-.035em}
.contact-cta p{color:var(--ink-soft);margin-bottom:26px}
.contact-cta .btn{margin-right:10px;margin-bottom:10px}

/* ── FOOTER ──────────────────────────────────── */
.footer{padding:50px 0 40px;background:#050507;border-top:1px solid var(--line-soft)}
.footer-row{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.footer-logo{width:50px;height:50px;border-radius:50%}
.footer-name{font:700 17px/1 var(--display);letter-spacing:-.025em}
.footer-sub{font-size:11px;color:var(--ink-faint);margin-top:4px;letter-spacing:.2em}
.footer-copy{font-size:11.5px;color:var(--ink-faint);letter-spacing:.04em}
.to-top{
  margin-left:auto;width:42px;height:42px;border-radius:50%;
  background:transparent;border:1px solid var(--line);color:var(--gold);
  font-size:18px;cursor:pointer;transition:all .3s;
}
.to-top:hover{background:var(--gold);color:#1a1408}

/* ── FAB ─────────────────────────────────────── */
.fab-wa{
  position:fixed;bottom:22px;right:22px;z-index:60;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 30px -8px rgba(37,211,102,.55);
  transition:transform .25s, box-shadow .25s;
}
.fab-wa:hover{transform:scale(1.08);box-shadow:0 16px 40px -8px rgba(37,211,102,.7)}
.fab-wa::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:#25D366;opacity:.6;z-index:-1;
  animation:waPulse 2s ease-out infinite;
}
@keyframes waPulse{
  0%{transform:scale(1);opacity:.55}
  100%{transform:scale(1.7);opacity:0}
}

/* ── REVEAL ──────────────────────────────────── */
.reveal{
  opacity:0;transform:translateY(28px);
  transition:opacity 1s ease, transform 1s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--d, 0s);
}
.reveal.show{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .reveal{opacity:1;transform:none}
}
