@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap');

:root{
  --purple-950:#160620;
  --purple-900:#220833;
  --purple-800:#2F1049;
  --purple-700:#3A1256;
  --purple-600:#552189;
  --violet-500:#8A3FD1;
  --orange-500:#F05613;
  --orange-400:#FF7A3D;
  --orange-700:#C2430C;
  --lavender-100:#F7F1FA;
  --cream-100:#FBF3EE;
  --peach-100:#FFE1CF;
  --lilac-300:#C3AFD6;
  --green-500:#3DDC84;
  --gold-500:#D9A73B;
  --rose-500:#FB6F92;
  --teal-500:#2DD4BF;
  --blue-500:#5B8DEF;
  --ef-red:#E53945;
  --white:#FFFFFF;
  --ink:#1B0628;
  --max:1240px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%;}
body{
  font-family:'Montserrat',sans-serif;
  background:var(--cream-100);
  color:var(--ink);
  overflow-x:hidden;
  width:100%;
  position:relative;
  -webkit-font-smoothing:antialiased;
}
/* aurora blob keyframes */
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(40px,-30px) scale(1.08);}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-50px,25px) scale(1.1);}}
@keyframes spin-slow{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.aurora{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none;z-index:0;}
@keyframes blob-morph{
  0%,100%{border-radius:44% 56% 62% 38% / 45% 40% 60% 55%;}
  50%{border-radius:60% 40% 38% 62% / 55% 62% 38% 45%;}
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 32px;}
::selection{background:var(--orange-500);color:#fff;}

/* scrollbar */
::-webkit-scrollbar{width:8px;}
::-webkit-scrollbar-track{background:var(--cream-100);}
::-webkit-scrollbar-thumb{background:var(--lilac-300);border-radius:10px;}
::-webkit-scrollbar-thumb:hover{background:var(--violet-500);}

/* ---------- NAV ---------- */
.nav{
  position:fixed;top:18px;left:0;right:0;z-index:1000;
  padding:0 20px;
  transition:all .5s cubic-bezier(.22,1,.36,1);
}
.nav .wrap{
  max-width:1180px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:11px 14px 11px 20px;
  border-radius:100px;
  background:#2a0e3d;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
  transition:all .5s cubic-bezier(.22,1,.36,1);
}
.nav.scrolled .wrap{
  background:#1c0729;
  box-shadow:0 16px 45px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.2);
}
.nav-logo{display:flex;align-items:center;gap:9px;flex-shrink:0;}
.nav-logo img{height:30px;width:auto;object-fit:contain;flex-shrink:0;}
.nav-logo-wordmark{font-weight:700;font-size:14px;letter-spacing:.03em;color:#fff;line-height:1.1;white-space:nowrap;}
.nav-logo-wordmark span{display:block;font-weight:500;font-size:9.5px;letter-spacing:.16em;color:var(--peach-100);opacity:.75;}
.nav-links{display:flex;gap:19px;list-style:none;}
.nav-links a{
  font-size:13px;font-weight:500;color:#e9dcf4;letter-spacing:.01em;
  position:relative;padding:6px 0;transition:color .25s;
}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--orange-500),var(--violet-500));
  transition:width .3s cubic-bezier(.22,1,.36,1);
}
.nav-links a:hover{color:#fff;}
.nav-links a:hover::after{width:100%;}
.nav-cta{
  display:flex;align-items:center;gap:7px;
  background:linear-gradient(135deg,var(--orange-500),var(--orange-700));
  color:#fff;font-weight:600;font-size:13px;
  padding:10px 20px;border-radius:100px;white-space:nowrap;
  box-shadow:0 6px 18px rgba(240,86,19,.4), inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s;
}
.nav-cta:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 10px 26px rgba(240,86,19,.55);}
.burger{display:none;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);align-items:center;justify-content:center;flex-shrink:0;}
.burger span,.burger span::before,.burger span::after{
  content:'';display:block;width:16px;height:1.5px;background:#fff;position:relative;transition:.3s;border-radius:2px;
}
.burger span::before{position:absolute;top:-5px;}
.burger span::after{position:absolute;top:5px;}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  background:var(--purple-900);overflow:hidden;
  padding-top:160px;padding-bottom:0;
  width:100%;
}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-mosaic{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(4,1fr);gap:2px;}
.hero-mosaic .tile{overflow:hidden;position:relative;}
.hero-mosaic .tile i{
  position:absolute;inset:0;width:100%;height:100%;background-size:cover;background-position:50% 18%;
  filter:grayscale(.15) contrast(1.05);opacity:0;transform:scale(1.06);
}
.hero-mosaic .tile i{animation-name:tileFade4;animation-timing-function:ease-in-out;animation-iteration-count:infinite;}
/* catalogo del mosaico: cada foto embebida una sola vez */
.hero-mosaic .hm00{background-image:url(/images/0955492ee6c1.jpg);}
.hero-mosaic .hm01{background-image:url(/images/3b9d3a843d57.jpg);}
.hero-mosaic .hm02{background-image:url(/images/79d477b5664d.jpg);}
.hero-mosaic .hm03{background-image:url(/images/113b71e126a5.jpg);}
.hero-mosaic .hm04{background-image:url(/images/0d5e9c0c9192.jpg);}
.hero-mosaic .hm05{background-image:url(/images/50ac17b6ec6e.jpg);}
.hero-mosaic .hm06{background-image:url(/images/659ec8d89597.jpg);}
.hero-mosaic .hm07{background-image:url(/images/5bbad61546f8.jpg);}
.hero-mosaic .hm08{background-image:url(/images/6190f65821be.jpg);}
.hero-mosaic .hm09{background-image:url(/images/ce2ff06ae67c.jpg);}
.hero-mosaic .hm10{background-image:url(/images/e97e5ef948b3.jpg);}
.hero-mosaic .hm11{background-image:url(/images/51f46a576b40.jpg);}
.hero-mosaic .hm12{background-image:url(/images/4e34e322b2fa.jpg);}
.hero-mosaic .hm13{background-image:url(/images/d63dee148070.jpg);}
.hero-mosaic .hm14{background-image:url(/images/1fae9e95a628.jpg);}
.hero-mosaic .hm15{background-image:url(/images/9a2856d56332.jpg);}
.hero-mosaic .hm16{background-image:url(/images/b9dc20a0dcac.jpg);}
.hero-mosaic .hm17{background-image:url(/images/afa7a3e6c504.jpg);}
.hero-mosaic .hm18{background-image:url(/images/3cec011aec3d.jpg);}
.hero-mosaic .hm19{background-image:url(/images/959be913c491.jpg);}
@keyframes tileFade4{
  0%{opacity:0;transform:scale(1.06);}
  4%{opacity:.62;transform:scale(1);}
  21%{opacity:.62;transform:scale(1);}
  25%{opacity:0;transform:scale(1.06);}
  100%{opacity:0;transform:scale(1.06);}
}
.circuit-layer{position:absolute;inset:0;z-index:1;opacity:.8;mix-blend-mode:screen;pointer-events:none;}
.circuit-svg{width:100%;height:100%;}
.neural-layer{position:absolute;inset:-4%;width:108%;height:108%;}
.neural-layer svg{width:100%;height:100%;}
.neural-layer.na{animation:neuralA 15s ease-in-out infinite;}
.neural-layer.nb{animation:neuralB 15s ease-in-out infinite;}
.neural-layer.nc{animation:neuralC 15s ease-in-out infinite;}
@keyframes neuralA{
  0%,4%{opacity:1;transform:translate(0,0) scale(1);}
  30%{opacity:1;transform:translate(1.5%,-1%) scale(1.02);}
  34%,100%{opacity:0;transform:translate(1.5%,-1%) scale(1.02);}
}
@keyframes neuralB{
  0%,30%{opacity:0;transform:translate(-1.5%,1%) scale(1.02);}
  34%{opacity:1;transform:translate(-1.5%,1%) scale(1.02);}
  63%{opacity:1;transform:translate(0,1.5%) scale(1);}
  67%,100%{opacity:0;transform:translate(0,1.5%) scale(1);}
}
@keyframes neuralC{
  0%,63%{opacity:0;transform:translate(1%,-1.5%) scale(1.02);}
  67%{opacity:1;transform:translate(1%,-1.5%) scale(1.02);}
  96%{opacity:1;transform:translate(0,0) scale(1);}
  100%{opacity:0;transform:translate(0,0) scale(1);}
}
.hero-bg::after{
  content:'';position:absolute;inset:0;z-index:2;
  background:
    radial-gradient(ellipse 70% 55% at 50% 0%, rgba(138,63,209,.32), transparent 65%),
    linear-gradient(180deg, rgba(22,6,32,.40) 0%, rgba(22,6,32,.80) 62%, var(--purple-900) 100%);
}
.cursor-glow{
  position:absolute;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle, rgba(240,86,19,.22), rgba(138,63,209,.12) 45%, transparent 70%);
  pointer-events:none;z-index:1;filter:blur(10px);
  transform:translate(-50%,-50%);
  transition:opacity .4s;
}
.hero-content{position:relative;z-index:3;width:100%;max-width:100%;}
.hero-center{max-width:780px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--peach-100);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  padding:8px 16px 8px 12px;border-radius:100px;margin-bottom:26px;
  opacity:0;animation:fadeUp .8s .1s cubic-bezier(.22,1,.36,1) forwards;
}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--green-500);box-shadow:0 0 0 4px rgba(61,220,132,.18);}
.hero h1{
  font-size:clamp(30px,4.6vw,54px);font-weight:800;line-height:1.14;letter-spacing:-.02em;
  color:#fff;margin-bottom:22px;
  opacity:0;animation:fadeUp .9s .22s cubic-bezier(.22,1,.36,1) forwards;
  max-width:16ch;
}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(100deg,var(--orange-400),var(--orange-500) 40%,var(--violet-500));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p.lead{
  font-size:16.5px;line-height:1.65;color:#d8c8e6;max-width:600px;margin:0 auto 38px;font-weight:400;
  opacity:0;animation:fadeUp .9s .34s cubic-bezier(.22,1,.36,1) forwards;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-bottom:56px;
  opacity:0;animation:fadeUp .9s .46s cubic-bezier(.22,1,.36,1) forwards;}
.btn{
  position:relative;display:inline-flex;align-items:center;gap:9px;
  font-weight:600;font-size:14px;padding:15px 28px;border-radius:100px;
  transition:transform .15s ease-out;letter-spacing:.01em;
}
.btn-primary{
  background:linear-gradient(135deg,var(--orange-400),var(--orange-500) 55%,var(--orange-700));
  color:#fff;box-shadow:0 10px 28px rgba(240,86,19,.38), inset 0 1px 0 rgba(255,255,255,.3);
}
.btn-ghost{
  background:rgba(255,255,255,.07);color:#fff;border:1px solid rgba(255,255,255,.2);
}
.btn-ghost:hover{background:rgba(255,255,255,.13);}
.btn svg{width:17px;height:17px;}

.hero-stats{
  width:100%;max-width:900px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
  opacity:0;animation:fadeUp .9s .58s cubic-bezier(.22,1,.36,1) forwards;
}
.hero-stat{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:20px;padding:22px 16px;text-align:center;
}
.hero-stat b{display:block;font-size:clamp(22px,3.2vw,32px);font-weight:800;color:#fff;line-height:1.1;margin-bottom:6px;}
.hero-stat span{font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--peach-100);text-transform:uppercase;}

@keyframes fadeUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}

/* ---- organic curved dividers (layered, 3D feel) ---- */
.divider{position:relative;height:110px;margin-top:-2px;z-index:3;line-height:0;}
.divider svg{width:100%;height:100%;display:block;}
.divider.flip{transform:scaleX(-1);}

/* ---------- MARQUEE ---------- */
.marquee-section{background:var(--purple-950);padding:22px 0;overflow:hidden;position:relative;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);}
.marquee-track{display:flex;width:max-content;animation:scrollLeft 32s linear infinite;}
.marquee-track:hover{animation-play-state:paused;}
.marquee-item{display:flex;align-items:center;gap:14px;padding:0 40px;white-space:nowrap;}
.marquee-item .num{font-size:20px;font-weight:800;color:#fff;}
.marquee-item .lbl{font-size:12.5px;font-weight:600;color:var(--peach-100);letter-spacing:.03em;}
.marquee-item .sep{width:6px;height:6px;border-radius:50%;background:var(--orange-500);margin-left:34px;}
@keyframes scrollLeft{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- SECTION GENERIC ---------- */
section{position:relative;overflow-x:hidden;max-width:100vw;}
.section-pad{padding:120px 0;}
.section-head{max-width:640px;margin-bottom:64px;}
.section-eyebrow{
  display:inline-block;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--orange-700);background:var(--peach-100);padding:7px 16px;border-radius:100px;margin-bottom:20px;
}
.section-head h2{font-size:clamp(30px,4vw,46px);font-weight:800;line-height:1.08;letter-spacing:-.02em;color:var(--purple-900);}
.section-head p{font-size:16.5px;color:#5c4a6b;margin-top:16px;line-height:1.6;font-weight:500;}
.reveal{opacity:0;transform:translateY(36px);transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);}
.reveal.in{opacity:1;transform:translateY(0);}

/* ---------- SERVICES ---------- */
.services{background:var(--cream-100);}
.service-row{
  display:grid;grid-template-columns:.95fr 1.05fr;gap:70px;align-items:center;
  padding:60px 0;border-bottom:1px solid rgba(34,8,51,.08);
}
.service-row:last-child{border-bottom:none;}
.service-row.rev .service-media{order:2;}
.service-row.rev .service-text{order:1;}

/* ---- rotating photo showcase (crossfade, one to front at a time) ---- */
.photo-stack{position:relative;height:440px;border-radius:22px;overflow:hidden;box-shadow:0 30px 60px rgba(34,8,51,.28);}
.ps-card{
  position:absolute;inset:0;
  opacity:0;transform:translateX(6%);
  animation:psRotate 15s infinite;
}
.ps-card:nth-child(1){animation-delay:0s;}
.ps-card:nth-child(2){animation-delay:5s;}
.ps-card:nth-child(3){animation-delay:10s;}
@keyframes psRotate{
  0%{opacity:0;transform:translateX(6%) scale(1.03);}
  4%{opacity:1;transform:translateX(0) scale(1);}
  30%{opacity:1;transform:translateX(0) scale(1);}
  36%{opacity:0;transform:translateX(-6%) scale(1.03);}
  100%{opacity:0;transform:translateX(-6%) scale(1.03);}
}
.ps-card img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;display:block;}
.ps-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,6,32,0) 50%,rgba(22,6,32,.55) 100%);}
/* two-photo variant: tighter, gapless crossfade */
.photo-stack-2 .ps-card{animation:psRotate2 10s infinite;}
.photo-stack-2 .ps-card:nth-child(1){animation-delay:0s;}
.photo-stack-2 .ps-card:nth-child(2){animation-delay:5s;}
@keyframes psRotate2{
  0%{opacity:0;transform:translateX(6%) scale(1.03);}
  6%{opacity:1;transform:translateX(0) scale(1);}
  44%{opacity:1;transform:translateX(0) scale(1);}
  50%{opacity:0;transform:translateX(-6%) scale(1.03);}
  100%{opacity:0;transform:translateX(-6%) scale(1.03);}
}
.ps-card-badge{
  position:absolute;bottom:18px;left:18px;z-index:5;
  background:rgba(22,6,32,.7);backdrop-filter:blur(8px);
  padding:9px 16px;border-radius:100px;font-size:11px;font-weight:700;
  letter-spacing:.03em;color:#fff;
  display:flex;align-items:center;gap:7px;max-width:calc(100% - 36px);
}
.ps-card-badge .d{width:6px;height:6px;border-radius:50%;background:var(--green-500);flex-shrink:0;}
.ps-card-badge .sub{display:block;font-weight:500;color:#c7b6d6;font-size:9.5px;letter-spacing:.02em;}

/* ---- DIRECTORS / disruptive premium module ---- */
.directors-section{
  position:relative;background:radial-gradient(120% 90% at 50% -10%,#3A1256 0%,var(--purple-900) 45%,var(--purple-950) 100%);
  overflow:hidden;padding:100px 0 90px;
}
.directors-section::before{
  content:'';position:absolute;top:-20%;left:50%;transform:translateX(-50%);
  width:900px;height:900px;border-radius:50%;
  background:radial-gradient(circle,rgba(217,167,59,.16) 0%,rgba(217,167,59,0) 65%);
  pointer-events:none;
}
.directors-head{text-align:center;max-width:720px;margin:0 auto 56px;position:relative;z-index:2;}
.directors-eyebrow{
  display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:100px;
  background:rgba(217,167,59,.12);border:1px solid rgba(217,167,59,.35);
  color:var(--gold-500);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:20px;
}
.directors-eyebrow svg{width:13px;height:13px;}
.directors-head h2{
  font-size:clamp(28px,4vw,44px);font-weight:800;color:#fff;line-height:1.15;margin-bottom:16px;
}
.directors-head h2 em{font-style:normal;color:var(--gold-500);}
.directors-head p{color:#c7b6d6;font-size:15.5px;line-height:1.65;font-weight:500;}

.directors-collage{
  position:relative;max-width:640px;margin:0 auto 44px;height:440px;z-index:2;
}
.dir-photo{
  position:absolute;width:290px;height:370px;border-radius:22px;overflow:hidden;
  box-shadow:0 30px 60px rgba(0,0,0,.45);border:5px solid var(--purple-800);
}
.dir-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.dir-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,6,32,0) 55%,rgba(22,6,32,.7) 100%);}
.dir-photo-a{left:10px;top:0;transform:rotate(-5deg);z-index:2;}
.dir-photo-b{right:10px;top:34px;transform:rotate(5deg);z-index:3;border-color:var(--gold-500);}
.dir-tag{
  position:absolute;bottom:16px;left:16px;right:16px;z-index:4;
  background:rgba(22,6,32,.75);backdrop-filter:blur(6px);border-radius:14px;padding:10px 14px;
}
.dir-tag strong{display:block;color:#fff;font-size:14px;font-weight:800;}
.dir-tag span{display:block;color:var(--gold-500);font-size:10.5px;font-weight:600;letter-spacing:.02em;margin-top:1px;}
.dir-link{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5;
  width:76px;height:76px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold-500),var(--orange-500));
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  box-shadow:0 14px 34px rgba(217,167,59,.45),0 0 0 6px var(--purple-900);
  color:var(--purple-950);text-align:center;
}
.dir-link strong{font-size:15px;font-weight:900;line-height:1;}
.dir-link span{font-size:8px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-top:2px;}

.directors-tags{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:720px;margin:0 auto 40px;position:relative;z-index:2;
}
.directors-tags span{
  padding:9px 18px;border-radius:100px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  color:#e9defa;font-size:12.5px;font-weight:600;letter-spacing:.01em;
}

.directors-services{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:1080px;margin:0 auto 44px;position:relative;z-index:2;
}
.dir-svc{
  background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  border:1px solid rgba(217,167,59,.3);border-radius:16px;padding:22px 18px;text-align:left;
  transition:transform .2s ease, border-color .2s ease;
}
.dir-svc:hover{transform:translateY(-3px);border-color:var(--gold-500);}
.dir-svc-icon{
  width:38px;height:38px;border-radius:10px;background:rgba(217,167,59,.15);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--gold-500);
}
.dir-svc-icon svg{width:19px;height:19px;}
.dir-svc h4{color:#fff;font-size:14.5px;font-weight:800;margin-bottom:6px;line-height:1.25;}
.dir-svc p{color:#b9a8cc;font-size:12px;line-height:1.55;font-weight:500;}

.directors-credential{
  display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto 36px;position:relative;z-index:2;
  flex-wrap:wrap;
}
.directors-credential .pill{
  display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:100px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:12px;font-weight:700;
}
.directors-credential .pill svg{width:14px;height:14px;color:var(--gold-500);}

.directors-foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:28px;position:relative;z-index:2;
}
.directors-stat{display:flex;align-items:center;gap:12px;}
.directors-stat-num{
  font-size:30px;font-weight:900;color:var(--gold-500);line-height:1;
}
.directors-stat-label{color:#c7b6d6;font-size:12px;font-weight:600;max-width:150px;line-height:1.35;}

/* ---- VIDEO GALLERY ---- */
.vgallery{position:relative;background:var(--purple-950);overflow:hidden;padding-top:40px;padding-bottom:40px;}
.vgallery-badge{
  display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:100px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);
  color:#fff;font-size:12px;font-weight:700;margin-top:18px;
}
.vgallery-badge svg{width:15px;height:15px;color:var(--orange-400);flex-shrink:0;}
.vgallery-main{
  position:relative;max-width:920px;margin:44px auto 26px;border-radius:20px;overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,.5);background:#000;aspect-ratio:16/9;
}
.vgallery-main iframe{width:100%;height:100%;border:0;display:block;}
.vgallery-main .vg-cover{
  position:absolute;inset:0;cursor:pointer;display:flex;align-items:flex-end;
  background-size:cover;background-position:center;transition:opacity .25s ease;
}
.vgallery-main .vg-cover::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,6,32,0) 40%,rgba(22,6,32,.85) 100%);}
.vgallery-main .vg-cover-info{position:relative;z-index:2;padding:26px 30px;color:#fff;}
.vgallery-main .vg-cover-info .tag{
  display:inline-block;background:rgba(217,167,59,.9);color:var(--purple-950);font-weight:800;font-size:10.5px;
  letter-spacing:.04em;text-transform:uppercase;padding:5px 12px;border-radius:100px;margin-bottom:10px;
}
.vgallery-main .vg-cover-info h3{font-size:22px;font-weight:800;margin-bottom:4px;}
.vgallery-main .vg-cover-info p{font-size:13px;color:#d9c8e8;font-weight:600;}
.vgallery-main .vg-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;
  width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);
  border:2px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;
  transition:transform .2s ease, background .2s ease;
}
.vgallery-main .vg-play svg{width:26px;height:26px;color:#fff;margin-left:4px;}
.vgallery-main .vg-cover:hover .vg-play{transform:translate(-50%,-50%) scale(1.08);background:rgba(255,255,255,.26);}

.vgallery-thumbs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:920px;margin:0 auto 20px;position:relative;z-index:2;
}
.vg-thumb{
  position:relative;border-radius:14px;overflow:hidden;cursor:pointer;aspect-ratio:16/10;
  background-size:cover;background-position:center;border:2px solid transparent;transition:border-color .2s ease, transform .2s ease;
}
.vg-thumb::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,6,32,0) 45%,rgba(22,6,32,.88) 100%);}
.vg-thumb.active{border-color:var(--gold-500);}
.vg-thumb:hover{transform:translateY(-2px);}
.vg-thumb-info{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:12px 14px;color:#fff;}
.vg-thumb-info .loc{font-size:10px;font-weight:700;color:var(--gold-500);letter-spacing:.03em;text-transform:uppercase;margin-bottom:2px;}
.vg-thumb-info .name{font-size:13.5px;font-weight:800;line-height:1.2;}
.vg-thumb-play{
  position:absolute;top:10px;right:10px;z-index:2;width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.18);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;
}
.vg-thumb-play svg{width:12px;height:12px;color:#fff;margin-left:1px;}

.vgallery-note{
  max-width:720px;margin:6px auto 0;text-align:center;position:relative;z-index:2;
  color:#c7b6d6;font-size:13.5px;line-height:1.65;font-weight:500;
}
.vgallery-note strong{color:#fff;}
.ps-badge{
  position:absolute;bottom:18px;left:18px;z-index:5;
  background:rgba(22,6,32,.7);backdrop-filter:blur(8px);
  padding:9px 16px;border-radius:100px;font-size:11px;font-weight:700;
  letter-spacing:.03em;color:#fff;
  display:flex;align-items:center;gap:7px;
}
.ps-badge .d{width:6px;height:6px;border-radius:50%;background:var(--green-500);}
.ps-glow{
  position:absolute;inset:-10%;z-index:0;border-radius:30px;
  background:linear-gradient(135deg,var(--violet-500),var(--orange-400));
  opacity:.18;filter:blur(30px);
}
.service-row.rev .ps-glow{background:linear-gradient(135deg,var(--orange-400),var(--violet-500));}

.service-icon{
  width:58px;height:58px;border-radius:18px;margin-bottom:24px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--purple-900),var(--purple-700));
  box-shadow:0 10px 24px rgba(34,8,51,.25);
}
.service-icon svg{width:28px;height:28px;color:var(--orange-400);}
.service-text h3{font-size:30px;font-weight:800;color:var(--purple-900);margin-bottom:14px;letter-spacing:-.01em;}
.service-text p.desc{font-size:15.5px;line-height:1.65;color:#5c4a6b;margin-bottom:22px;font-weight:500;}
.service-feats{list-style:none;margin-bottom:26px;}
.service-feats li{
  display:flex;align-items:flex-start;gap:10px;font-size:14.5px;color:#3d2a4d;font-weight:600;
  padding:7px 0;
}
.service-feats li svg{width:17px;height:17px;flex-shrink:0;margin-top:2px;color:var(--orange-500);}
.service-price{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--lavender-100);border:1px solid var(--lilac-300);
  padding:12px 20px;border-radius:100px;margin-bottom:22px;
}
.service-price svg{width:16px;height:16px;color:var(--violet-500);flex-shrink:0;}
.service-price .amt{font-size:14px;font-weight:700;color:var(--purple-900);}
.service-link{
  display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px;color:var(--orange-600,#C2430C);
  position:relative;
}
.service-link svg{width:16px;height:16px;transition:transform .3s cubic-bezier(.22,1,.36,1);}
.service-link:hover svg{transform:translateX(5px);}

/* ---------- A LA CARTA ---------- */
.a-la-carta{background:var(--lavender-100);}
.carte-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.carte-item{
  background:#fff;border-radius:24px;padding:28px 26px;
  border:1px solid rgba(34,8,51,.07);
  transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s;
}
.carte-item:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(34,8,51,.12);}
.carte-icon{
  width:46px;height:46px;border-radius:14px;margin-bottom:16px;
  display:flex;align-items:center;justify-content:center;
  background:var(--peach-100);
}
.carte-icon svg{width:22px;height:22px;color:var(--orange-700);}
.carte-item h4{font-size:16px;font-weight:700;color:var(--purple-900);margin-bottom:8px;line-height:1.3;}
.carte-item p{font-size:13.5px;color:#6b5a7a;line-height:1.55;font-weight:500;}

/* ---------- UBICACION ---------- */
.ubicacion{background:var(--purple-950);}
.ubicacion .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding:36px 32px;}
.ubi-left{display:flex;align-items:center;gap:16px;}
.ubi-icon{
  width:52px;height:52px;border-radius:16px;flex-shrink:0;
  background:linear-gradient(135deg,var(--orange-500),var(--violet-500));
  display:flex;align-items:center;justify-content:center;
}
.ubi-icon svg{width:24px;height:24px;color:#fff;}
.ubi-left b{color:#fff;font-size:15.5px;display:block;}
.ubi-left span{color:#a691b5;font-size:13.5px;}
.ubi-right{display:flex;gap:14px;flex-wrap:wrap;}
/* ---------- FUNNEL / EMBUDO ---------- */
.funnel{background:var(--purple-900);position:relative;overflow:hidden;}
.funnel-neural{position:absolute;inset:0;z-index:0;opacity:.55;pointer-events:none;}
.funnel-neural svg{width:100%;height:100%;}
.funnel > .wrap{position:relative;z-index:1;}
.funnel-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
.funnel-stat-card{
  display:flex;align-items:center;gap:16px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:20px;padding:22px 24px;
}
.fs-icon{
  width:48px;height:48px;border-radius:14px;flex-shrink:0;
  background:linear-gradient(135deg,var(--orange-500),var(--violet-500));
  display:flex;align-items:center;justify-content:center;
}
.fs-icon svg{width:22px;height:22px;color:#fff;}
.funnel-stat-card b{color:#fff;font-size:16px;display:block;margin-bottom:3px;}
.funnel-stat-card span{color:#c7b6d6;font-size:12.5px;line-height:1.4;font-weight:500;}
.funnel-hint{color:#a691b5;font-size:13px;font-weight:600;margin-bottom:36px;text-align:center;}

.funnel-road{position:relative;max-width:720px;margin:0 auto;padding-left:70px;}
.funnel-wave{position:absolute;left:0;top:6px;bottom:6px;width:56px;z-index:0;opacity:.6;}
.funnel-wave svg{width:100%;height:100%;}
.flow-dot{
  position:absolute;left:27px;width:9px;height:9px;margin-left:-3.5px;top:0;
  border-radius:50%;background:var(--orange-400);
  box-shadow:0 0 10px 2px rgba(255,122,61,.7);
  animation:flowDown 6s linear infinite;z-index:1;
}
@keyframes flowDown{
  0%{top:0%;opacity:0;}
  8%{opacity:1;}
  92%{opacity:1;}
  100%{top:100%;opacity:0;}
}
.funnel-node{position:relative;margin-bottom:20px;z-index:1;}
.funnel-num{
  position:absolute;left:-70px;top:0;width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#fff;
  box-shadow:0 0 0 6px rgba(240,86,19,.1), 0 10px 24px rgba(0,0,0,.3);z-index:2;
}
.funnel-num svg{width:24px;height:24px;}
.funnel-num.p0{background:linear-gradient(135deg,var(--violet-500),var(--purple-600));}
.funnel-num.p1{background:linear-gradient(135deg,var(--orange-400),var(--orange-700));}
.funnel-num.p2{background:linear-gradient(135deg,var(--gold-500),#a9791f);}
.funnel-num.p3{background:linear-gradient(135deg,var(--rose-500),#c94769);}
.funnel-num.p4{background:linear-gradient(135deg,var(--blue-500),#3560c9);}
.funnel-num.p5{background:linear-gradient(135deg,var(--teal-500),#159485);}
.funnel-num.p6{background:linear-gradient(135deg,var(--orange-500),var(--rose-500));}
.funnel-num.p7{background:linear-gradient(135deg,var(--violet-500),var(--blue-500));}
.funnel-num.p8{background:linear-gradient(135deg,var(--gold-500),var(--orange-500));}
.funnel-num.pf{background:linear-gradient(135deg,var(--green-500),#1FAF57);font-size:22px;font-weight:800;}
.funnel-fase-tag{
  display:inline-block;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--peach-100);opacity:.7;margin-bottom:6px;
}
.funnel-card{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  border-radius:22px;padding:22px 24px;cursor:pointer;
  transition:background .3s, transform .3s;
}
.funnel-card:hover{background:rgba(255,255,255,.07);}
.funnel-card-final{background:rgba(61,220,132,.08);border-color:rgba(61,220,132,.3);cursor:default;}
.funnel-card h4{
  color:#fff;font-size:16.5px;font-weight:700;margin-bottom:8px;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.funnel-badge{
  font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:4px 10px;border-radius:100px;background:rgba(255,122,61,.15);color:var(--orange-400);
}
.funnel-card p{color:#c7b6d6;font-size:13.5px;line-height:1.6;font-weight:500;}
.funnel-options{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.funnel-opt{
  font-size:11.5px;font-weight:600;color:#fff;background:rgba(255,255,255,.08);
  padding:6px 12px;border-radius:100px;
}
.funnel-detail{
  max-height:0;overflow:hidden;opacity:0;
  transition:max-height .4s ease, opacity .3s ease, margin-top .4s ease;
}
.funnel-card.open .funnel-detail{max-height:320px;opacity:1;margin-top:14px;}
.funnel-detail ul{list-style:none;border-top:1px solid rgba(255,255,255,.1);padding-top:12px;}
.funnel-detail li{
  color:#e9dcf4;font-size:13px;font-weight:500;padding:5px 0 5px 20px;position:relative;
}
.funnel-detail li::before{
  content:'';position:absolute;left:0;top:12px;width:6px;height:6px;border-radius:50%;
  background:var(--orange-400);
}
.funnel-cta{
  text-align:center;margin-top:56px;padding-top:44px;border-top:1px solid rgba(255,255,255,.1);
}
.funnel-cta p{color:#e9dcf4;font-size:16px;font-weight:600;margin-bottom:20px;}

/* ---------- PROCESS ---------- */
.process{background:var(--purple-900);position:relative;overflow:hidden;}
.process::before{
  content:'';position:absolute;top:-10%;right:-10%;width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(138,63,209,.25),transparent 70%);pointer-events:none;
}
.process .section-eyebrow{background:rgba(255,255,255,.08);color:var(--peach-100);}
.process .section-head h2{color:#fff;}
.process .section-head p{color:#c7b6d6;}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:rgba(255,255,255,.1);border-radius:28px;overflow:hidden;}
.process-step{background:var(--purple-800);padding:38px 30px;position:relative;transition:background .4s;}
.process-step:hover{background:var(--purple-700);}
.process-num{
  font-size:13px;font-weight:800;color:var(--orange-400);letter-spacing:.05em;margin-bottom:22px;
  display:flex;align-items:center;gap:8px;
}
.process-num::before{content:'';width:24px;height:1px;background:var(--orange-400);}
.process-step h4{font-size:18px;font-weight:800;color:#fff;margin-bottom:10px;}
.process-step p{font-size:13.5px;color:#c7b6d6;line-height:1.55;font-weight:500;}
.process-grid-2{grid-template-columns:1fr 1fr;margin-top:16px;}

/* ---------- VERTICALS ---------- */
.verticals{background:var(--lavender-100);}
.vert-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:44px;}
.vert-tab{
  padding:11px 20px;border-radius:100px;font-size:13px;font-weight:600;
  background:#fff;color:var(--purple-900);border:1px solid rgba(34,8,51,.1);
  transition:all .3s cubic-bezier(.22,1,.36,1);
}
.vert-tab.active,.vert-tab:hover{
  background:var(--purple-900);color:#fff;border-color:var(--purple-900);
  transform:translateY(-2px);
}
.vert-panels{position:relative;min-height:200px;}
.vert-panel{
  display:none;grid-template-columns:1fr 1fr;gap:50px;align-items:center;
  background:#fff;border-radius:28px;padding:48px;
  box-shadow:0 20px 50px rgba(34,8,51,.08);
}
.vert-panel.active{display:grid;animation:fadeUp .5s cubic-bezier(.22,1,.36,1);}
.vert-panel h4{font-size:24px;font-weight:800;color:var(--purple-900);margin-bottom:12px;}
.vert-panel p{font-size:15px;color:#5c4a6b;line-height:1.6;margin-bottom:18px;font-weight:500;}
.vert-badge{
  display:inline-flex;align-items:center;gap:8px;background:var(--peach-100);color:var(--orange-700);
  font-weight:800;font-size:13px;padding:9px 16px;border-radius:100px;
}
.vert-stat-box{
  background:linear-gradient(135deg,var(--purple-900),var(--purple-700));
  border-radius:22px;padding:32px;text-align:center;
}
.vert-stat-box .big{font-size:44px;font-weight:800;color:#fff;line-height:1;margin-bottom:8px;}
.vert-stat-box .small{font-size:12.5px;color:var(--peach-100);font-weight:600;letter-spacing:.03em;text-transform:uppercase;}

/* ---------- STATS ---------- */
.stats{position:relative;background:var(--purple-950);overflow:hidden;}
.stats-bg{position:absolute;inset:0;}
.stats-bg img{width:100%;height:100%;object-fit:cover;opacity:.22;}
.stats-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--purple-950) 0%,rgba(22,6,32,.75) 50%,var(--purple-950) 100%);}
.stats-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:40px;text-align:center;}
.stat-item .num{
  font-size:clamp(38px,5vw,60px);font-weight:800;color:#fff;line-height:1;
  background:linear-gradient(120deg,#fff,var(--peach-100));-webkit-background-clip:text;background-clip:text;
}
.stat-item .num-text{
  font-size:clamp(26px,3.4vw,38px);font-weight:800;color:#fff;line-height:1.1;
  background:linear-gradient(120deg,#fff,var(--peach-100));-webkit-background-clip:text;background-clip:text;
}
.stat-item .lbl{font-size:13px;font-weight:600;color:var(--peach-100);margin-top:10px;letter-spacing:.02em;}
.stats-countries{
  text-align:center;margin-top:40px;font-size:14px;font-weight:600;color:#c7b6d6;letter-spacing:.03em;
  position:relative;z-index:2;
}

/* ---------- RESULTADOS (bento grid + neural bg) ---------- */
.resultados-clientes{background:var(--purple-950);position:relative;overflow:hidden;border-top:1px solid rgba(255,255,255,.06);}
.rc-neural{position:absolute;inset:0;z-index:0;opacity:.6;pointer-events:none;}
.rc-neural svg{width:100%;height:100%;}
.resultados-clientes > .wrap{position:relative;z-index:1;}

.results-grid{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;
  grid-auto-flow:dense;gap:16px;
}
.rc-card{
  position:relative;border-radius:22px;overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,.35);
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.rc-card:hover{transform:translateY(-6px) scale(1.01);}
.rc-card.sz-lg{grid-column:span 2;grid-row:span 2;}
.rc-card.sz-wide{grid-column:span 2;grid-row:span 1;}
.rc-card.sz-full{grid-column:span 4;grid-row:span 2;}
.rc-photos{position:absolute;inset:0;}
.rc-photos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;opacity:0;transition:transform .6s cubic-bezier(.22,1,.36,1);}
.rc-photos.single img{opacity:1;}
.rc-photos.dual img{animation:rcRotate2 9s infinite;}
.rc-photos.dual img:nth-child(1){animation-delay:0s;}
.rc-photos.dual img:nth-child(2){animation-delay:4.5s;}
.rc-photos.trio img{animation:rcRotate3 13.5s infinite;}
.rc-photos.trio img:nth-child(1){animation-delay:0s;}
.rc-photos.trio img:nth-child(2){animation-delay:4.5s;}
.rc-photos.trio img:nth-child(3){animation-delay:9s;}
@keyframes rcRotate2{0%{opacity:0;transform:translateX(4%);}5%{opacity:1;transform:translateX(0);}45%{opacity:1;transform:translateX(0);}50%{opacity:0;transform:translateX(-4%);}100%{opacity:0;transform:translateX(-4%);}}
@keyframes rcRotate3{0%{opacity:0;transform:translateX(4%);}3%{opacity:1;transform:translateX(0);}30%{opacity:1;transform:translateX(0);}33%{opacity:0;transform:translateX(-4%);}100%{opacity:0;transform:translateX(-4%);}}
.rc-card:hover .rc-photos img{transform:scale(1.06);}
.rc-card::after{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(10,3,15,0) 45%,rgba(10,3,15,.75) 75%,rgba(10,3,15,.97) 100%);
}
.rc-content{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 16px;}
.rc-eyebrow{
  display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:800;
  letter-spacing:.05em;text-transform:uppercase;color:var(--peach-100);opacity:.85;margin-bottom:3px;
}
.rc-stat{
  font-size:clamp(17px,2vw,24px);font-weight:800;color:#fff;line-height:1.1;
  background:linear-gradient(120deg,#fff,var(--peach-100));-webkit-background-clip:text;background-clip:text;
  margin-bottom:2px;
}
.rc-title{font-size:12.5px;font-weight:700;color:#fff;margin-bottom:2px;}
.rc-desc{font-size:12px;color:#c7b6d6;line-height:1.5;font-weight:500;display:none;}
.rc-card.sz-lg .rc-desc, .rc-card.sz-full .rc-desc{display:block;margin-top:4px;}
.rc-card.sz-lg .rc-content, .rc-card.sz-full .rc-content{padding:20px 22px;}
.rc-card.sz-lg .rc-stat, .rc-card.sz-full .rc-stat{font-size:clamp(22px,2.6vw,30px);}
.rc-card.sz-lg .rc-title, .rc-card.sz-full .rc-title{font-size:14.5px;}
.rc-card.sz-full .rc-content{padding:28px 32px;max-width:640px;}
.rc-card.sz-full .rc-stat{font-size:clamp(26px,3.4vw,38px);}
.rc-badge-partner{
  position:absolute;top:18px;right:18px;z-index:3;
  background:rgba(255,255,255,.14);backdrop-filter:blur(8px);
  padding:7px 14px;border-radius:100px;font-size:10.5px;font-weight:700;color:#fff;
  border:1px solid rgba(255,255,255,.25);
}

/* ---------- TESTIMONIALS ---------- */
.testi{background:var(--purple-900);position:relative;overflow:hidden;border-top:1px solid rgba(255,255,255,.06);}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.testi-card{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:26px;padding:34px;transition:transform .4s cubic-bezier(.22,1,.36,1), background .4s;
}
.testi-card:hover{transform:translateY(-8px);background:rgba(255,255,255,.08);}
.testi-stars{display:flex;gap:3px;margin-bottom:20px;}
.testi-stars svg{width:16px;height:16px;color:var(--orange-400);}
.testi-card p{font-size:15px;line-height:1.65;color:#e9dcf4;font-weight:500;margin-bottom:24px;}
.testi-author{display:flex;align-items:center;gap:12px;}
.testi-avatar{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--orange-500),var(--violet-500));
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;
}
.testi-author b{color:#fff;font-size:14px;display:block;}
.testi-author span{color:var(--peach-100);font-size:12px;}

/* ---------- ECOSYSTEM ---------- */
.ecosystem{background:var(--lavender-100);}
.eco-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.eco-grid-3{grid-template-columns:repeat(3,1fr);gap:18px;}
.eco-card{
  background:#fff;border-radius:28px;padding:38px;border:1px solid rgba(34,8,51,.08);
  transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s;
}
.eco-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(34,8,51,.12);}
.eco-label{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--violet-500);margin-bottom:14px;}
.eco-card h4{font-size:22px;font-weight:800;color:var(--purple-900);margin-bottom:12px;}
.eco-card p{font-size:14.5px;color:#5c4a6b;line-height:1.6;font-weight:500;margin-bottom:18px;}
.eco-team-photo{border-radius:16px;overflow:hidden;margin-bottom:18px;position:relative;aspect-ratio:16/10;}
.eco-team-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;display:block;}
.eco-team-photo span{
  position:absolute;bottom:10px;left:10px;background:rgba(22,6,32,.72);color:#fff;
  font-size:10.5px;font-weight:700;padding:5px 12px;border-radius:100px;
}
.eco-expertise{
  max-width:1000px;margin:44px auto 0;text-align:center;padding:28px 34px;
  background:linear-gradient(135deg,var(--purple-900),var(--purple-950));border-radius:22px;
}
.eco-expertise .eyebrow{
  display:inline-block;color:var(--gold-500);font-size:11px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:12px;
}
.eco-expertise p{
  color:#e9defa;font-size:15px;line-height:1.75;font-weight:500;margin:0;
}
.eco-expertise strong{color:#fff;}

/* ---------- EVENTFLOW TECH PARTNER (DARK / FLOW DIAGRAM) ---------- */
.ef-section{
  position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 50% -10%,#3A1256 0%,var(--purple-900) 45%,var(--purple-950) 100%);
}
.ef-section::before{
  content:'';position:absolute;top:-15%;right:-10%;width:700px;height:700px;border-radius:50%;
  background:radial-gradient(circle,rgba(229,57,69,.16) 0%,rgba(229,57,69,0) 65%);pointer-events:none;
}
.ef-head{max-width:780px;margin:0 auto 36px;text-align:center;position:relative;z-index:2;}
.ef-partner-badge{
  display:inline-flex;align-items:center;gap:10px;padding:8px 18px 8px 10px;border-radius:100px;
  background:#fff;border:1px solid rgba(229,57,69,.3);box-shadow:0 10px 26px rgba(0,0,0,.35);
  margin-bottom:22px;
}
.ef-partner-badge img{height:19px;width:auto;display:block;}
.ef-partner-badge span{font-size:11.5px;font-weight:800;letter-spacing:.03em;color:var(--ef-red);text-transform:uppercase;}
.ef-head h2{color:#fff;}
.ef-head p{color:#c7b6d6;}
.ef-exclusive{
  display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:100px;
  background:rgba(229,57,69,.14);border:1px solid rgba(229,57,69,.4);color:#fff;font-size:12px;font-weight:700;margin-top:18px;
}
.ef-exclusive svg{width:14px;height:14px;color:var(--ef-red);flex-shrink:0;}

/* Flow diagram strip */
.ef-flow{
  display:flex;align-items:center;justify-content:center;gap:0;max-width:900px;margin:0 auto 44px;
  position:relative;z-index:2;flex-wrap:wrap;
}
.ef-flow-node{
  display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 6px;position:relative;z-index:2;
}
.ef-flow-node .ico{
  width:56px;height:56px;border-radius:16px;background:rgba(255,255,255,.06);border:1.5px solid rgba(229,57,69,.45);
  display:flex;align-items:center;justify-content:center;color:var(--ef-red);
}
.ef-flow-node .ico svg{width:24px;height:24px;}
.ef-flow-node span{font-size:11.5px;font-weight:700;color:#fff;text-align:center;max-width:90px;line-height:1.25;}
.ef-flow-line{
  flex:1;min-width:36px;height:2px;background:repeating-linear-gradient(90deg,rgba(229,57,69,.6) 0 6px,transparent 6px 12px);
  position:relative;margin:0 -2px;top:-13px;
}
.ef-flow-line::after{
  content:'';position:absolute;right:-1px;top:50%;transform:translateY(-50%);
  width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid rgba(229,57,69,.75);
}

.ef-bottleneck{
  max-width:1000px;margin:0 auto 52px;position:relative;z-index:2;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:24px;overflow:hidden;
  display:grid;grid-template-columns:280px 1fr;align-items:stretch;
}
.ef-bottleneck-photo{background-size:cover;background-position:center;position:relative;min-height:220px;}
.ef-bottleneck-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,6,32,.15) 0%,rgba(22,6,32,.85) 100%);}
.ef-bottleneck-photo .tag{
  position:absolute;bottom:14px;left:14px;z-index:2;background:rgba(229,57,69,.92);color:#fff;
  font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:5px 11px;border-radius:100px;
}
.ef-bottleneck-body{padding:30px 34px;display:flex;flex-direction:column;justify-content:center;gap:10px;}
.ef-bottleneck-body .eyebrow{color:var(--ef-red);font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.ef-bottleneck-body h4{font-size:19px;font-weight:800;color:#fff;line-height:1.3;}
.ef-bottleneck-body p{font-size:14px;color:#c7b6d6;line-height:1.65;font-weight:500;margin:0;}

.ef-grid{
  display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:start;gap:0;max-width:1180px;margin:0 auto 44px;position:relative;z-index:2;
}
.ef-card{
  background:rgba(255,255,255,.05);border-radius:22px;padding:28px 26px;border:1px solid rgba(255,255,255,.1);
  transition:border-color .2s ease, transform .2s ease;
}
.ef-card:hover{border-color:rgba(229,57,69,.5);transform:translateY(-3px);}
.ef-card-num{
  display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;
  background:var(--ef-red);color:#fff;font-size:12px;font-weight:900;margin-bottom:12px;
}
.ef-card-phase{
  display:block;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ef-red);margin-bottom:8px;
}
.ef-card h4{font-size:17px;font-weight:800;color:#fff;margin-bottom:14px;}
.ef-card ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.ef-card li{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:#c7b6d6;font-weight:500;line-height:1.5;}
.ef-card li svg{width:14px;height:14px;color:var(--ef-red);flex-shrink:0;margin-top:2px;}
.ef-connector{
  display:flex;align-items:center;justify-content:center;padding-top:60px;color:rgba(229,57,69,.6);
}
.ef-connector svg{width:22px;height:22px;}

.ef-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:1000px;margin:0 auto 44px;position:relative;z-index:2;
}
.ef-stat{background:rgba(255,255,255,.05);border-radius:16px;padding:22px 14px;text-align:center;border:1px solid rgba(255,255,255,.1);}
.ef-stat .num{font-size:27px;font-weight:900;color:var(--ef-red);margin-bottom:4px;}
.ef-stat .lbl{font-size:11px;color:#c7b6d6;font-weight:600;line-height:1.35;}

.ef-closing{
  max-width:1000px;margin:0 auto;position:relative;z-index:2;
  background:linear-gradient(135deg,rgba(229,57,69,.16),rgba(229,57,69,.04));
  border:1px solid rgba(229,57,69,.35);border-radius:24px;padding:34px 38px;color:#fff;
  display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;
}
.ef-closing h4{font-size:19px;font-weight:800;margin-bottom:8px;}
.ef-closing p{font-size:13.5px;color:#c7b6d6;line-height:1.6;font-weight:500;}
.ef-closing .btn{white-space:nowrap;background:linear-gradient(135deg,var(--ef-red),#c72836);box-shadow:0 10px 28px rgba(229,57,69,.4);}

/* ---------- DIRECTORS: on-stage photo strip ---------- */
.dir-stage{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:900px;margin:0 auto 44px;position:relative;z-index:2;
}
.dir-stage-item{border-radius:16px;overflow:hidden;position:relative;aspect-ratio:3/4;}
.dir-stage-item img{width:100%;height:100%;object-fit:cover;display:block;}
.dir-stage-item::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,6,32,0) 55%,rgba(22,6,32,.75) 100%);}
.dir-stage-item span{
  position:absolute;bottom:10px;left:10px;right:10px;z-index:2;color:#fff;font-size:11.5px;font-weight:700;
}

/* ---------- CTA / FORM ---------- */
.cta-section{
  background:linear-gradient(160deg,var(--purple-900),var(--purple-950));
  position:relative;overflow:hidden;
}
.cta-section::before{
  content:'';position:absolute;top:-20%;left:-10%;width:700px;height:700px;border-radius:50%;
  background:radial-gradient(circle,rgba(240,86,19,.22),transparent 70%);
}
.cta-section::after{
  content:'';position:absolute;bottom:-30%;right:-10%;width:700px;height:700px;border-radius:50%;
  background:radial-gradient(circle,rgba(138,63,209,.28),transparent 70%);
}
.cta-grid{position:relative;z-index:2;display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start;}
.cta-left h2{font-size:clamp(30px,4vw,44px);font-weight:800;color:#fff;line-height:1.1;margin-bottom:20px;letter-spacing:-.02em;}
.cta-left p{font-size:16px;color:#c7b6d6;line-height:1.65;margin-bottom:34px;font-weight:500;}
.cta-points{list-style:none;}
.cta-points li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid rgba(255,255,255,.1);font-size:14.5px;color:#e9dcf4;font-weight:600;}
.cta-points li svg{width:18px;height:18px;color:var(--green-500);flex-shrink:0;margin-top:1px;}

.form-card{
  background:#fff;border-radius:30px;padding:40px;box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.form-card h3{font-size:20px;font-weight:800;color:var(--purple-900);margin-bottom:6px;}
.form-card .sub{font-size:13.5px;color:#7a6a89;margin-bottom:26px;font-weight:500;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--purple-900);margin-bottom:7px;letter-spacing:.01em;}
.field input,.field textarea{
  width:100%;padding:13px 16px;border-radius:12px;border:1.5px solid #e6dcee;
  font-family:inherit;font-size:14.5px;color:var(--ink);background:var(--cream-100);
  transition:border-color .25s, background .25s;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--orange-500);background:#fff;}
.field textarea{resize:vertical;min-height:80px;}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.check-item{
  display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:12px;
  border:1.5px solid #e6dcee;cursor:pointer;transition:all .25s;font-size:13px;font-weight:600;color:var(--purple-900);
}
.check-item:has(input:checked){background:var(--peach-100);border-color:var(--orange-500);}
.check-item input{width:15px;height:15px;accent-color:var(--orange-500);flex-shrink:0;}
.submit-btn{
  width:100%;margin-top:8px;padding:16px;border-radius:100px;
  background:linear-gradient(135deg,#2fe077,#1FAF57);color:#fff;font-weight:600;font-size:15px;
  display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 14px 34px rgba(37,211,102,.35), inset 0 1px 0 rgba(255,255,255,.3);
  transition:transform .15s ease-out;letter-spacing:.01em;
}
.submit-btn svg{width:22px;height:22px;}
.form-note{font-size:11.5px;color:#9c8bab;margin-top:14px;text-align:center;font-weight:500;line-height:1.5;}
.field-error{border-color:#e2264d !important;}

/* ---------- FOOTER ---------- */
footer{background:var(--purple-950);padding:64px 0 30px;}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.08);}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.footer-brand img{height:30px;}
.footer-brand b{color:#fff;font-weight:800;font-size:15px;}
.footer-col p, .footer-col a{font-size:13.5px;color:#a691b5;line-height:2;font-weight:500;}
.footer-col a:hover{color:#fff;}
.footer-col h5{color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;flex-wrap:wrap;gap:14px;}
.footer-bottom p{font-size:12.5px;color:#7a6a89;font-weight:500;}
.footer-logos{display:flex;gap:16px;align-items:center;opacity:.7;}
.footer-logos img{height:20px;filter:grayscale(1) brightness(2);}

/* whatsapp float button */
.wa-float{
  position:fixed;bottom:28px;right:28px;z-index:999;
  width:62px;height:62px;border-radius:50%;
  background:linear-gradient(135deg,#25D366,#1FAF57);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 30px rgba(37,211,102,.45);
  animation:pulse 2.4s infinite;
}
.wa-float svg{width:30px;height:30px;color:#fff;}
@keyframes pulse{
  0%{box-shadow:0 12px 30px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,.5);}
  70%{box-shadow:0 12px 30px rgba(37,211,102,.45),0 0 0 16px rgba(37,211,102,0);}
  100%{box-shadow:0 12px 30px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,0);}
}

/* counter reveal helper */
[data-count]{font-variant-numeric:tabular-nums;}

/* ---------- RESPONSIVE ---------- */

/* ---------- BARRA DE NAVEGACION: once entradas en una sola linea ---------- */
.nav-links{gap:14px;}
.nav-links li{flex-shrink:0;}
.nav-links a{white-space:nowrap;}

/* ---------- MENU MOVIL: desplazable y sin escapes solapados ---------- */
body.menu-abierto{overflow:hidden;}
body.menu-abierto .burger{display:none!important;}
.mobile-menu{justify-content:flex-start;overflow-y:auto;padding:84px 20px 40px;-webkit-overflow-scrolling:touch;}
.mobile-menu a{font-size:21px;padding:11px 0;}
.mobile-menu .mm-close{position:fixed;}

/* ---------- ENTRADA AL EMBUDO: MASTERCLASS ---------- */
.nav-mc{color:#fff!important;}
.nav-mc::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--orange-400);margin-right:7px;vertical-align:middle;box-shadow:0 0 0 0 rgba(240,86,19,.6);animation:mcPulse 2.6s infinite;}
.mm-mc{display:flex;flex-direction:column;align-items:center;line-height:1.1;}
.mm-mc small{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-400);margin-top:6px;}

.mc-section{position:relative;background:var(--purple-950);overflow:hidden;padding:104px 0 96px;}
.mc-section::before{content:'';position:absolute;top:-32%;right:-8%;width:660px;height:660px;border-radius:50%;background:radial-gradient(circle,rgba(240,86,19,.20),transparent 68%);pointer-events:none;}
.mc-section::after{content:'';position:absolute;bottom:-30%;left:-12%;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(138,63,209,.24),transparent 70%);pointer-events:none;}
.mc-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;}
.mc-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--peach-100);background:rgba(240,86,19,.15);border:1px solid rgba(240,86,19,.34);padding:7px 16px;border-radius:100px;margin-bottom:22px;}
.mc-eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--orange-400);animation:mcPulse 2.6s infinite;}
@keyframes mcPulse{0%{box-shadow:0 0 0 0 rgba(240,86,19,.55)}70%{box-shadow:0 0 0 11px rgba(240,86,19,0)}100%{box-shadow:0 0 0 0 rgba(240,86,19,0)}}
.mc-left h2{font-size:clamp(30px,4vw,46px);font-weight:800;line-height:1.06;letter-spacing:-.02em;color:#fff;}
.mc-left h2 em{font-style:normal;color:var(--orange-400);}
.mc-lead{color:#c7b6d6;font-size:16.5px;line-height:1.62;font-weight:500;margin-top:18px;max-width:520px;}
.mc-locks{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 10px;}
.mc-lock{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:#e9dcf4;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.12);padding:8px 13px;border-radius:11px;}
.mc-lock svg{width:12px;height:12px;color:var(--gold-500);flex-shrink:0;}
.mc-hint{color:#a691b5;font-size:13px;font-weight:600;margin-bottom:30px;}
.mc-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.mc-note{color:#a691b5;font-size:13px;font-weight:600;}
.mc-card{position:relative;z-index:2;border-radius:26px;padding:24px;background:linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.14);box-shadow:0 34px 74px rgba(0,0,0,.5);}
.mc-screen{position:relative;aspect-ratio:16/10;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:radial-gradient(120% 110% at 50% 0%,#3A1256 0%,#160620 72%);display:flex;align-items:center;justify-content:center;}
.mc-play{position:relative;z-index:2;width:74px;height:74px;border-radius:50%;background:linear-gradient(135deg,var(--orange-400),var(--orange-700));display:flex;align-items:center;justify-content:center;box-shadow:0 16px 36px rgba(240,86,19,.5);}
.mc-play svg{width:26px;height:26px;color:#fff;margin-left:4px;}
.mc-bars{position:absolute;left:0;right:0;bottom:0;height:70px;display:flex;align-items:flex-end;gap:3px;padding:0 16px 14px;opacity:.45;}
.mc-bars span{flex:1;height:20%;background:linear-gradient(180deg,var(--violet-500),rgba(138,63,209,0));border-radius:2px 2px 0 0;animation:mcBar 2.2s ease-in-out infinite;}
@keyframes mcBar{0%,100%{height:16%}50%{height:78%}}
.mc-screen-tag{position:absolute;top:14px;left:14px;z-index:2;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(22,6,32,.7);border:1px solid rgba(255,255,255,.16);padding:6px 11px;border-radius:8px;}
.mc-meta{display:flex;align-items:center;gap:13px;margin-top:20px;}
.mc-avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;color:var(--purple-950);background:linear-gradient(135deg,var(--gold-500),var(--orange-500));}
.mc-meta b{display:block;color:#fff;font-size:14.5px;font-weight:800;}
.mc-meta span{display:block;color:var(--gold-500);font-size:11px;font-weight:600;letter-spacing:.02em;margin-top:2px;}
.mc-rows{margin-top:20px;border-top:1px solid rgba(255,255,255,.1);padding-top:6px;}
.mc-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.07);}
.mc-row:last-child{border-bottom:0;}
.mc-row span{color:#a691b5;font-size:12.5px;font-weight:600;}
.mc-row b{color:#fff;font-size:13px;font-weight:700;}
.mc-row b.gift{color:var(--gold-500);}
@media(max-width:980px){
  .mc-grid{grid-template-columns:1fr;gap:40px;}
  .mc-section{padding:76px 0 70px;}
  .mc-card{max-width:520px;}
}
@media(max-width:600px){
  .mc-section{padding:64px 0 60px;}
  .mc-card{padding:18px;}
  .mc-play{width:60px;height:60px;}
  .mc-play svg{width:22px;height:22px;}
  .mc-actions{flex-direction:column;align-items:stretch;}
  .mc-actions .btn{justify-content:center;}
  .mc-note{text-align:center;}
}
@media(prefers-reduced-motion:reduce){
  .mc-bars span,.mc-eyebrow i,.nav-mc::before{animation:none;}
}

@media(max-width:1260px){
  .nav-links{display:none;}
  .burger{display:flex;}
}
@media(max-width:980px){
  .directors-collage{height:400px;max-width:500px;}
  .directors-services{grid-template-columns:1fr 1fr;}
  .vgallery-thumbs{gap:12px;}
  .dir-photo{width:230px;height:300px;}
  .dir-photo-a{left:0;}
  .dir-photo-b{right:0;top:60px;}
  .dir-link{width:64px;height:64px;}
  .dir-link strong{font-size:13px;}
  .service-row{grid-template-columns:1fr;gap:28px;}
  .service-row.rev .service-media{order:1;}
  .service-row.rev .service-text{order:2;}
  .process-grid{grid-template-columns:1fr 1fr;}
  .stats-grid{grid-template-columns:1fr 1fr;gap:30px;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .testi-grid{grid-template-columns:1fr;}
  .eco-grid{grid-template-columns:1fr;}
  .ef-grid{grid-template-columns:1fr;gap:16px;}
  .dir-stage{grid-template-columns:1fr;max-width:320px;}
  .ef-connector{padding:0;transform:rotate(90deg);}
  .ef-stats{grid-template-columns:1fr 1fr;}
  .ef-bottleneck{grid-template-columns:1fr;text-align:center;}
  .ef-bottleneck-photo{min-height:160px;}
  .ef-closing{grid-template-columns:1fr;text-align:center;}
  .cta-grid{grid-template-columns:1fr;gap:44px;}
  .footer-top{grid-template-columns:1fr 1fr;}
  .carte-grid{grid-template-columns:1fr 1fr;}
  .ubicacion .wrap{justify-content:center;text-align:center;flex-direction:column;}
  .results-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:130px;}
  .rc-card.sz-lg{grid-column:span 2;grid-row:span 2;}
  .rc-card.sz-wide{grid-column:span 2;}
  .rc-card.sz-full{grid-column:span 2;}
  .photo-stack{height:360px;}
}
@media(max-width:600px){
  .directors-collage{position:static;height:auto;max-width:330px;margin:0 auto 40px;display:flex;flex-direction:column;align-items:stretch;gap:12px;}
  .directors-services{grid-template-columns:1fr;}
  .vgallery-thumbs{grid-template-columns:1fr;gap:10px;}
  .vgallery-main .vg-cover-info h3{font-size:18px;}
  .dir-photo{position:relative;width:100%;height:auto;aspect-ratio:3/4;transform:none;}
  .dir-photo-a{left:auto;right:auto;top:auto;order:1;}
  .dir-link{position:static;transform:none;order:2;margin:0 auto;width:54px;height:54px;}
  .dir-photo-b{left:auto;right:auto;top:auto;order:3;}
  .dir-link strong{font-size:11px;}
  .dir-link span{font-size:6.5px;}
  .directors-section{padding:70px 0 60px;}
  .ef-stats{grid-template-columns:1fr 1fr;}
  .ef-bottleneck-body{padding:22px 20px;}
  .ef-flow-node span{max-width:70px;font-size:10.5px;}
  .results-grid{grid-template-columns:1fr;grid-auto-rows:200px;}
  .rc-card.sz-lg,.rc-card.sz-wide,.rc-card.sz-full{grid-column:span 1;grid-row:span 1;height:200px;}
  .rc-card.sz-full{grid-row:span 1;}
  .photo-stack{height:300px;}
  .ps-main{width:100%;}
  .ps-side-a,.ps-side-b{display:none;}
  .wrap{padding:0 18px;}
  .nav{top:12px;padding:0 14px;}
  .nav .wrap{padding:9px 10px 9px 16px;}
  .nav-logo-wordmark{font-size:12.5px;}
  .nav-logo img{height:26px;}
  .nav-cta{padding:9px 15px;font-size:12px;}
  .nav-cta span{display:none;}
  .section-pad{padding:70px 0;}
  .hero{padding-top:130px;padding-bottom:0;}
  .eyebrow{font-size:10px;padding:7px 13px 7px 11px;text-align:center;}
  .hero h1{font-size:clamp(26px,7.5vw,38px);max-width:100%;}
  .hero p.lead{font-size:15px;}
  .hero-actions{flex-direction:column;align-items:stretch;width:100%;}
  .hero-actions .btn{justify-content:center;}
  .hero-stats{grid-template-columns:1fr;gap:10px;}
  .hero-stat{padding:16px;}
  .process-grid{grid-template-columns:1fr;}
  .check-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:100px;}
  .carte-grid{grid-template-columns:1fr;}
  .vert-panel{grid-template-columns:1fr;padding:28px 22px;}
  .stats-grid{grid-template-columns:1fr 1fr;gap:22px;}
  .divider{height:60px;}
  .funnel-stats{grid-template-columns:1fr;}
  .funnel-road{padding-left:56px;}
  .funnel-wave{width:44px;}
  .flow-dot{left:21px;}
  .funnel-num{left:-56px;width:44px;height:44px;}
  .funnel-num svg{width:19px;height:19px;}
  .funnel-card{padding:18px 18px;}
}

/* ---------- MOBILE MENU ---------- */
.mobile-menu{
  position:fixed;inset:0;z-index:1500;
  background:rgba(22,6,32,.97);backdrop-filter:blur(10px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  opacity:0;pointer-events:none;transition:opacity .35s ease;
}
.mobile-menu.open{opacity:1;pointer-events:auto;}
.mobile-menu a{
  color:#fff;font-size:24px;font-weight:700;padding:14px 0;
}
.mobile-menu .mm-close{
  position:absolute;top:24px;right:24px;width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;
}
.mobile-menu .mm-close svg{width:20px;height:20px;color:#fff;}
.mobile-menu .btn{margin-top:18px;}

/* ---------- 07/10/2026 · MENU MOVIL: ningun enlace fuera de pantalla, boton accesible y tactil >=44 px ---------- */
.mobile-menu{justify-content:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:84px 20px 40px;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s;}
.mobile-menu.open{visibility:visible;transition:opacity .35s ease;}
.mobile-menu::before{content:"";margin-bottom:auto;}
.mobile-menu::after{content:"";margin-top:auto;}
.mobile-menu .mm-close{position:fixed;top:20px;right:20px;z-index:2;cursor:pointer;}
.burger,.mobile-menu .mm-close{cursor:pointer;}
.burger:focus-visible,.mobile-menu .mm-close:focus-visible{outline:2px solid #fff;outline-offset:3px;}
@media(max-width:1100px){.burger{width:44px;height:44px;}}
@media(max-width:420px){.nav .wrap{gap:8px;padding:9px 8px 9px 14px;}.nav-cta{padding:9px 12px;}}

/* 17/10/2026 SEO: cada pagina de marketing tiene un H1; se ve igual que el titular de seccion que sustituye */
.section-head h1{font-size:clamp(30px,4vw,46px);font-weight:800;line-height:1.08;letter-spacing:-.02em;color:var(--purple-900);}
.process .section-head h1{color:#fff;}
.cta-left h1{font-size:clamp(30px,4vw,44px);font-weight:800;color:#fff;line-height:1.1;margin-bottom:20px;}
