/* ============================================================
   MexCap Partners — sistema de diseño
   Paleta: azul navy #2d4a8a · naranja #df7426
   ============================================================ */
:root{
  --purple:#112347;
  --purple-700:#1d3568;
  --purple-900:#0c1a38;
  --purple-950:#060f24;
  --purple-soft:#7a8db3;
  --purple-tint:#ecf0f6;
  --blue-vivid:#2d4a8a;
  --blue-glow:#3f5fa8;
  --orange:#df7426;
  --orange-bright:#ee8a3c;
  --orange-deep:#bf601a;
  --cream:#fbeada;
  --cream-soft:#fdf4ea;
  --paper:#fbfcff;
  --bone:#f3f6fc;
  --ink:#272231;
  --ink-soft:#5d5670;
  --ink-faint:#928da0;
  --warm-gray:#a8a7a2;
  --line:#e7e3ee;
  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-soft:cubic-bezier(.33,1,.68,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Hanken Grotesk',sans-serif;
  background:var(--purple-950);
  color:var(--ink);
  font-weight:400;line-height:1.7;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
section{scroll-margin-top:84px;position:relative}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--orange);color:#fff}

.display{
  font-family:'Fraunces',serif;font-optical-sizing:auto;
  font-weight:400;line-height:1.08;letter-spacing:-.01em;
}
.eyebrow{
  font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;
  font-weight:700;color:var(--orange);
  display:inline-flex;align-items:center;gap:.85rem;
}
.eyebrow::before{content:"";width:28px;height:2px;
  background:var(--orange);display:inline-block;border-radius:2px}
.eyebrow.center::after{content:"";width:28px;height:2px;
  background:var(--orange);display:inline-block;border-radius:2px}

#progress{position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--orange-deep),var(--orange-bright));
  z-index:200;transition:width .12s linear}

/* ============================ NAV ============================ */
nav{
  position:fixed;top:0;left:0;right:0;z-index:120;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.35rem clamp(1.4rem,5vw,5rem);
  background:rgba(45,74,138,.18);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  transition:background .55s var(--ease),padding .55s var(--ease),
             box-shadow .55s var(--ease);
}
nav.scrolled{
  background:var(--purple);
  padding:.85rem clamp(1.4rem,5vw,5rem);
  box-shadow:0 14px 40px -22px rgba(0,0,0,.65);
}
.nav-logo img{height:42px;width:auto;transition:height .55s var(--ease);
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.25))}
nav.scrolled .nav-logo img{height:34px}
.nav-links{display:flex;align-items:center;gap:2.3rem}
.nav-links a{
  font-size:.83rem;letter-spacing:.04em;font-weight:600;color:#fff;
  position:relative;padding:.25rem 0;transition:color .35s var(--ease);
}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-3px;
  height:2px;width:0;background:var(--orange);
  transition:width .4s var(--ease-soft);border-radius:2px}
.nav-links a:hover{color:var(--orange-bright)}
.nav-links a:hover::after{width:100%}
.nav-lang{
  border:1.5px solid rgba(255,255,255,.45);border-radius:999px;
  padding:.42rem 1.05rem !important;font-size:.74rem !important;
  letter-spacing:.12em;transition:all .4s var(--ease) !important;
}
.nav-lang::after{display:none}
.nav-lang:hover{background:var(--orange);border-color:var(--orange);color:#fff}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;
  background:none;border:none;padding:6px;z-index:130}
.nav-toggle span{width:26px;height:2px;background:#fff;display:block;
  border-radius:2px;transition:transform .4s var(--ease),opacity .3s}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobile-menu{
  position:fixed;inset:0;z-index:115;
  background:linear-gradient(165deg,var(--purple),var(--purple-950));
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  gap:1.7rem;opacity:0;pointer-events:none;transition:opacity .5s var(--ease);
}
.mobile-menu.open{opacity:1;pointer-events:auto}
.mobile-menu a{
  font-family:'Fraunces',serif;font-size:1.95rem;color:#fff;font-style:italic;
  opacity:0;transform:translateY(18px);transition:all .6s var(--ease);
}
.mobile-menu.open a{opacity:1;transform:none}
.mobile-menu.open a:nth-child(1){transition-delay:.1s}
.mobile-menu.open a:nth-child(2){transition-delay:.17s}
.mobile-menu.open a:nth-child(3){transition-delay:.24s}
.mobile-menu.open a:nth-child(4){transition-delay:.31s}
.mobile-menu.open a:nth-child(5){transition-delay:.38s}
.mobile-menu a:hover{color:var(--orange-bright)}

/* ============================ HÉROE ============================ */
.hero{
  min-height:100vh;display:flex;align-items:center;
  padding:9rem clamp(1.4rem,5vw,5rem) 6rem;
  position:relative;overflow:hidden;background:var(--purple-950);
}
.hero-bg{position:absolute;inset:0;will-change:transform;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center;display:block}
.hero-veil{position:absolute;inset:0;
  background:
    linear-gradient(105deg,rgba(6,15,36,.94) 0%,rgba(45,74,138,.82) 42%,rgba(45,74,138,.55) 100%),
    linear-gradient(to top,rgba(6,15,36,.85),transparent 55%);
}
.hero-orb{position:absolute;border-radius:50%;filter:blur(80px);
  pointer-events:none;will-change:transform}
.orb-1{width:560px;height:560px;top:-200px;right:-140px;
  background:radial-gradient(circle,rgba(223,116,38,.34),transparent 66%);
  animation:drift1 26s ease-in-out infinite}
.orb-2{width:520px;height:520px;bottom:-220px;left:-160px;
  background:radial-gradient(circle,rgba(63,95,168,.55),transparent 68%);
  animation:drift2 32s ease-in-out infinite}
@keyframes drift1{50%{transform:translate(-46px,56px) scale(1.12)}}
@keyframes drift2{50%{transform:translate(56px,-38px) scale(1.1)}}
.hero-grid{position:absolute;inset:0;pointer-events:none;opacity:.4;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:clamp(72px,9vw,128px) clamp(72px,9vw,128px);
  -webkit-mask-image:radial-gradient(ellipse 80% 80% at 30% 45%,#000,transparent);
  mask-image:radial-gradient(ellipse 80% 80% at 30% 45%,#000,transparent);
}
.hero-inner{position:relative;z-index:5;max-width:1180px;margin:0 auto;width:100%}
.hero-eyebrow{opacity:0;transform:translateY(20px)}
.hero h1{
  font-size:clamp(2.7rem,6.6vw,5.7rem);margin:1.7rem 0 2rem;
  max-width:17ch;color:#fff;font-weight:300;font-style:italic;
}
.hero h1 .word{display:inline-block;opacity:0;transform:translateY(28px)}
.hero h1 .accent{
  background:linear-gradient(108deg,var(--orange-bright),var(--orange) 60%,var(--orange-deep));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-weight:400;
}
.hero-sub{max-width:52ch;font-size:1.08rem;color:rgba(255,255,255,.85);
  font-weight:300;opacity:0;transform:translateY(20px)}
.hero-cta{display:flex;gap:1.05rem;margin-top:2.7rem;flex-wrap:wrap;
  opacity:0;transform:translateY(20px)}

.btn{
  position:relative;display:inline-flex;align-items:center;gap:.7rem;
  padding:1.02rem 2.05rem;font-size:.85rem;font-weight:700;letter-spacing:.04em;
  border-radius:3px;overflow:hidden;cursor:pointer;
  transition:transform .4s var(--ease),box-shadow .5s var(--ease),color .4s;
}
.btn span,.btn svg{position:relative;z-index:2}
.btn svg{transition:transform .45s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn-primary{background:var(--orange);color:#fff;
  box-shadow:0 16px 38px -16px rgba(223,116,38,.85)}
.btn-primary::before{content:"";position:absolute;inset:0;z-index:1;
  background:var(--orange-bright);transform:translateX(-101%);
  transition:transform .5s var(--ease)}
.btn-primary:hover{transform:translateY(-3px);
  box-shadow:0 24px 50px -16px rgba(223,116,38,.9)}
.btn-primary:hover::before{transform:translateX(0)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.5);color:#fff}
.btn-ghost::before{content:"";position:absolute;inset:0;z-index:1;
  background:#fff;transform:translateX(-101%);transition:transform .5s var(--ease)}
.btn-ghost:hover{color:var(--purple);transform:translateY(-3px)}
.btn-ghost:hover::before{transform:translateX(0)}

.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.55rem;
  font-size:.65rem;letter-spacing:.26em;text-transform:uppercase;
  color:rgba(255,255,255,.55);z-index:5;opacity:0;animation:fadeIn 1s 1.7s forwards}
.scroll-cue .line{width:1px;height:46px;
  background:linear-gradient(rgba(255,255,255,.6),transparent);
  position:relative;overflow:hidden}
.scroll-cue .line::after{content:"";position:absolute;top:-46px;left:0;
  width:1px;height:46px;background:var(--orange-bright);
  animation:scrollDot 2.4s var(--ease) infinite}
@keyframes scrollDot{0%{top:-46px}60%,100%{top:46px}}
@keyframes fadeIn{to{opacity:1}}

/* ====================== SECCIONES BASE ====================== */
.section-pad{padding:clamp(5.5rem,11vw,9.5rem) clamp(1.4rem,5vw,5rem)}
.wrap{max-width:1180px;margin:0 auto}
.light{background:var(--bone)}
.white{background:var(--paper)}

.section-head{max-width:32ch}
.section-head.center{margin:0 auto;text-align:center;max-width:40ch}
.section-title{font-size:clamp(2rem,4.3vw,3.5rem);font-weight:300;
  margin-top:1.25rem;color:var(--purple)}
.section-title em{font-style:italic;color:var(--orange)}
.lead{font-size:clamp(1.05rem,1.6vw,1.26rem);font-weight:300;line-height:1.78;
  margin-top:1.5rem;max-width:62ch;color:var(--ink-soft)}

.js .reveal{opacity:0;transform:translateY(36px);
  transition:opacity 1s var(--ease-soft),transform 1s var(--ease-soft)}
.js .reveal.in-view{opacity:1;transform:none}
.reveal.d1{transition-delay:.09s}
.reveal.d2{transition-delay:.18s}
.reveal.d3{transition-delay:.27s}

/* ====================== OFERTA DE VALOR ====================== */
.offer-group{margin-top:clamp(3.4rem,7vw,5.6rem)}
.group-head{display:flex;align-items:baseline;gap:1.4rem;
  padding-bottom:1.5rem;margin-bottom:2.6rem;
  border-bottom:1px solid var(--line)}
.group-num{font-family:'Fraunces',serif;font-size:1rem;font-style:italic;
  color:var(--orange);font-weight:500}
.group-name{font-family:'Fraunces',serif;
  font-size:clamp(1.5rem,3vw,2.15rem);font-weight:400;color:var(--purple)}
.group-tag{margin-left:auto;font-size:.73rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-faint);font-weight:700}
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.svc-card{
  position:relative;padding:2.3rem 1.7rem 2rem;background:var(--paper);
  border:1px solid var(--line);border-radius:6px;overflow:hidden;
  transition:transform .55s var(--ease),box-shadow .55s var(--ease),
             border-color .55s var(--ease);
}
.svc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--orange),var(--orange-bright));
  transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.svc-card:hover{transform:translateY(-10px);border-color:#e0d3ea;
  box-shadow:0 30px 60px -32px rgba(45,74,138,.4)}
.svc-card:hover::before{transform:scaleX(1)}
.svc-icon{
  width:58px;height:58px;border-radius:50%;background:var(--orange);
  display:flex;align-items:center;justify-content:center;color:#fff;
  margin-bottom:1.5rem;
  box-shadow:0 12px 26px -12px rgba(223,116,38,.7);
  transition:transform .55s var(--ease),background .55s var(--ease);
}
.svc-card:hover .svc-icon{transform:rotate(-8deg) scale(1.08);
  background:var(--orange-bright)}
.svc-icon svg{width:28px;height:28px}
.svc-card h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;
  color:var(--purple);line-height:1.3;margin-bottom:.55rem}
.svc-card p{font-size:.92rem;color:var(--ink-soft);font-weight:300}
.svc-card p em{color:var(--orange-deep);font-style:italic}

/* ============================ IVSC ============================ */
.ivsc-section{background:
  linear-gradient(160deg,var(--purple) 0%,var(--purple-900) 100%);
  position:relative;overflow:hidden}
.ivsc-section::after{content:"";position:absolute;width:520px;height:520px;
  top:-220px;left:-160px;border-radius:50%;
  background:radial-gradient(circle,rgba(223,116,38,.18),transparent 66%)}
.ivsc-grid{display:grid;grid-template-columns:1fr 1.15fr;
  gap:clamp(2.5rem,6vw,5.5rem);align-items:center;position:relative;z-index:2}
.ivsc-card{background:var(--paper);border-radius:8px;padding:3rem 2.5rem;
  display:flex;flex-direction:column;align-items:center;gap:1.5rem;
  box-shadow:0 44px 80px -40px rgba(0,0,0,.6)}
.ivsc-card img{max-height:84px;width:auto}
.ivsc-card .tag{font-size:.69rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:700;text-align:center}
.ivsc-section .eyebrow{color:var(--orange-bright)}
.ivsc-section .section-title{color:#fff}
.ivsc-section .section-title em{color:var(--orange-bright)}
.ivsc-note{margin-top:1.4rem;font-size:.99rem;color:rgba(255,255,255,.82);
  font-weight:300}
.ivsc-pillars{display:flex;gap:1.3rem;margin-top:2.3rem;flex-wrap:wrap}
.pillar{flex:1;min-width:130px}
.pillar-mark{width:46px;height:46px;border-radius:50%;
  background:rgba(223,116,38,.16);border:1.5px solid rgba(223,116,38,.5);
  display:flex;align-items:center;justify-content:center;
  color:var(--orange-bright);margin-bottom:.85rem}
.pillar-mark svg{width:24px;height:24px}
.pillar h4{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;
  color:#fff;margin-bottom:.25rem}
.pillar p{font-size:.84rem;color:rgba(255,255,255,.6);font-weight:300}
.ivsc-foot{margin-top:2.3rem;padding-top:1.9rem;
  border-top:1px solid rgba(255,255,255,.14);
  font-size:.95rem;color:rgba(255,255,255,.7);font-weight:300}

/* ====================== ASESOR DE CONFIANZA ====================== */
.advisor{position:relative;overflow:hidden;background:#0c1a38}
.advisor-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;display:block}
.advisor::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(6,15,36,.93),rgba(12,26,56,.9))}
.advisor>.wrap{position:relative;z-index:2}
.advisor .eyebrow{color:var(--orange-bright)}
.advisor-grid{display:grid;grid-template-columns:.92fr 1.08fr;
  gap:clamp(2.5rem,6vw,5rem);margin-top:3rem}
.advisor h2{font-size:clamp(2rem,4.3vw,3.4rem);font-weight:300;
  color:#fff;margin-top:1.25rem}
.advisor h2 em{font-style:italic;color:var(--orange-bright)}
.advisor-copy p{font-size:1rem;color:rgba(255,255,255,.8);font-weight:300;
  margin-bottom:1.4rem}
.advisor-copy p strong{color:#fff;font-weight:600}
.advisor-copy .q{font-family:'Fraunces',serif;font-style:italic;
  color:#fff;font-weight:300;font-size:1.12rem}
.pullquote{position:relative;padding:2.7rem 2.5rem;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  border-radius:8px;backdrop-filter:blur(6px);align-self:start;overflow:hidden}
.pullquote::before{content:"\201C";position:absolute;top:-1.6rem;left:1.1rem;
  font-family:'Fraunces',serif;font-size:9rem;color:rgba(223,116,38,.32)}
.pullquote .qt{font-family:'Fraunces',serif;font-size:1.4rem;line-height:1.46;
  font-weight:300;color:#fff;position:relative;z-index:2}
.pullquote .qt em{color:var(--orange-bright);font-style:italic}
.values-row{display:flex;gap:1.4rem;margin-top:1.9rem;flex-wrap:wrap;
  position:relative;z-index:2}
.value-chip{display:flex;align-items:center;gap:.55rem;font-size:.77rem;
  letter-spacing:.09em;text-transform:uppercase;color:var(--orange-bright);
  font-weight:700}
.value-chip svg{width:19px;height:19px}

/* ====================== TRACK RECORD ====================== */
.track{background:
   radial-gradient(115% 80% at 10% 2%, #20396e 0%, rgba(32,57,110,0) 52%),
   radial-gradient(95% 95% at 90% 16%, #2d4a8a 0%, rgba(45,74,138,0) 46%),
   radial-gradient(130% 120% at 50% 112%, #0a1834 0%, rgba(10,24,52,0) 60%),
   linear-gradient(168deg,#112347 0%,#070f24 100%);
  overflow:hidden;position:relative}
.track .section-title,.track .lead{color:#fff}
.track .lead.center{margin-left:auto;margin-right:auto}

.track-stats{display:flex;justify-content:center;
  gap:clamp(1.4rem,5vw,4.4rem);flex-wrap:wrap;
  margin-top:clamp(2rem,4vw,3rem)}
.track-stats .stat{text-align:center;padding:0 .4rem}
.stat-num{font-family:'Fraunces',serif;font-weight:400;
  font-size:clamp(2.5rem,6vw,3.7rem);color:var(--orange-bright);
  line-height:1;display:block}
.stat-lab{display:block;margin-top:.5rem;font-size:.71rem;
  letter-spacing:.15em;text-transform:uppercase;
  color:rgba(255,255,255,.58);font-weight:600}

.track-filter{display:flex;justify-content:center;gap:.65rem;
  flex-wrap:wrap;margin-top:clamp(2.3rem,5vw,3.3rem)}
.tf-btn{font-family:'Hanken Grotesk',sans-serif;font-size:.81rem;
  font-weight:600;letter-spacing:.03em;color:rgba(255,255,255,.7);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.16);
  padding:.7rem 1.5rem;border-radius:999px;cursor:pointer;
  transition:color .35s var(--ease),background .35s var(--ease),
             border-color .35s var(--ease),box-shadow .35s var(--ease)}
.tf-btn:hover{color:#fff;border-color:rgba(255,255,255,.4)}
.tf-btn.active{background:var(--orange);border-color:var(--orange);
  color:#fff;box-shadow:0 12px 30px -12px rgba(223,116,38,.75)}

.marquee-wrap{margin-top:clamp(2.6rem,5vw,3.6rem);
  display:flex;flex-direction:column;gap:1.35rem;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.mq-row{display:flex;overflow:hidden}
.mq-track{display:flex;flex-shrink:0;
  animation:mq-scroll var(--dur,64s) linear infinite;
  will-change:transform}
.mq-row.rev .mq-track{animation-direction:reverse}
.mq-row:hover .mq-track{animation-play-state:paused}
@keyframes mq-scroll{from{transform:translateX(0)}
  to{transform:translateX(-50%)}}

.deal-chip{flex-shrink:0;width:212px;margin-right:1.1rem;
  cursor:pointer;text-align:center;
  background:linear-gradient(165deg,#ffffff,#efebf5);
  border:1px solid rgba(255,255,255,.16);border-radius:13px;
  padding:1.45rem 1.25rem 1rem;position:relative;
  transition:transform .5s var(--ease);
  box-shadow:0 20px 42px -28px rgba(0,0,0,.85)}
.deal-chip:hover{transform:translateY(-10px)}
.deal-chip::after{content:"";position:absolute;inset:0;border-radius:13px;
  box-shadow:0 0 0 1.5px var(--orange),
             0 22px 52px -20px rgba(223,116,38,.62);
  opacity:0;transition:opacity .42s var(--ease);pointer-events:none}
.deal-chip:hover::after{opacity:1}
.chip-logo{height:82px;display:flex;align-items:center;
  justify-content:center;overflow:hidden}
.chip-logo img{max-width:100%;max-height:100%;object-fit:contain}
.chip-name{font-family:'Fraunces',serif;font-size:.95rem;
  color:var(--purple);line-height:1.26;font-weight:500;
  display:flex;align-items:center;justify-content:center;
  min-height:82px;padding:0 .2rem}
.chip-foot{display:flex;align-items:center;justify-content:space-between;
  margin-top:.95rem;padding-top:.65rem;border-top:1px solid var(--line)}
.chip-yr{font-size:.77rem;font-weight:700;color:var(--ink-soft)}
.chip-cur{font-size:.66rem;letter-spacing:.1em;font-weight:700;
  color:var(--orange-deep);text-transform:uppercase}

.track-hint{text-align:center;margin-top:2rem;font-size:.79rem;
  letter-spacing:.04em;color:rgba(255,255,255,.5)}
.track-hint svg{width:14px;height:14px;vertical-align:-2px;
  margin-right:.35rem}

/* ---- dossier (detalle de operación) ---- */
.dossier{position:fixed;inset:0;z-index:300;display:flex;
  align-items:center;justify-content:center;padding:1.5rem;
  opacity:0;pointer-events:none;transition:opacity .42s var(--ease)}
.dossier.open{opacity:1;pointer-events:auto}
.dossier-veil{position:absolute;inset:0;background:rgba(8,15,34,.84);
  -webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px)}
.dossier-card{position:relative;width:min(540px,100%);
  background:
   radial-gradient(120% 100% at 18% 0%, #20396e 0%, rgba(32,57,110,0) 55%),
   radial-gradient(100% 100% at 92% 100%, #2d4a8a 0%, rgba(45,74,138,0) 50%),
   linear-gradient(168deg,#112347,#060f24);
  border:1px solid rgba(255,255,255,.13);border-radius:18px;
  padding:clamp(2rem,5vw,3rem);text-align:center;
  transform:translateY(28px) scale(.95);
  transition:transform .55s var(--ease-soft);
  box-shadow:0 54px 96px -30px rgba(0,0,0,.88)}
.dossier.open .dossier-card{transform:none}
.dossier-card::before{content:"";position:absolute;top:0;left:50%;
  transform:translateX(-50%);width:66px;height:3px;
  background:var(--orange);border-radius:0 0 3px 3px}
.dz-close{position:absolute;top:1rem;right:1rem;width:38px;height:38px;
  border-radius:50%;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.06);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .35s var(--ease),border-color .35s var(--ease),
             transform .35s var(--ease)}
.dz-close:hover{background:var(--orange);border-color:var(--orange);
  transform:rotate(90deg)}
.dz-close svg{width:15px;height:15px}
.dz-eyebrow{font-size:.69rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--orange-bright);font-weight:700}
.dz-logo{height:104px;margin:1.1rem auto 0;background:#fff;
  border-radius:12px;width:min(252px,76%);display:flex;
  align-items:center;justify-content:center;padding:1.1rem}
.dz-logo img{max-width:100%;max-height:100%;object-fit:contain}
.dz-logo.txt{background:none;height:auto;padding:0;width:auto}
.dz-logo.txt span{font-family:'Fraunces',serif;font-size:1.55rem;
  color:#fff;font-weight:500;line-height:1.3}
.dz-type{font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(1.08rem,3vw,1.4rem);color:#fff;
  margin:1.5rem auto 0;line-height:1.42;max-width:32ch}
.dz-amount{font-family:'Fraunces',serif;font-weight:400;
  font-size:clamp(2.3rem,7vw,3.4rem);color:#fff;line-height:1;
  margin-top:1.5rem}
.dz-amount .cur{font-size:.4em;color:var(--orange-bright);
  vertical-align:.55em;letter-spacing:.05em;margin-right:.3em}
.dz-amount .suf{font-size:.4em;color:rgba(255,255,255,.55);
  letter-spacing:.05em;margin-left:.15em}
.dz-meta{display:flex;justify-content:center;gap:1.6rem;flex-wrap:wrap;
  margin-top:1.7rem;padding-top:1.35rem;
  border-top:1px solid rgba(255,255,255,.13)}
.dz-meta div{text-align:center}
.dz-meta dt{font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(255,255,255,.45);font-weight:700}
.dz-meta dd{font-size:.91rem;color:#fff;font-weight:600;margin-top:.32rem}
.dz-nav{position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);background:rgba(8,15,34,.7);
  color:#fff;cursor:pointer;display:flex;align-items:center;
  justify-content:center;
  transition:background .35s var(--ease),border-color .35s var(--ease)}
.dz-nav:hover{background:var(--orange);border-color:var(--orange)}
.dz-nav svg{width:16px;height:16px}
.dz-prev{left:-22px}
.dz-next{right:-22px}
.dz-count{margin-top:1.4rem;font-size:.73rem;letter-spacing:.1em;
  color:rgba(255,255,255,.42);font-weight:600}

/* ---- banda del lema ---- */
.tagline-band{background:var(--warm-gray);
  border-top:2px solid var(--orange);border-bottom:2px solid var(--orange);
  padding:clamp(2.8rem,6vw,4.2rem) 1.6rem;text-align:center}
.tagline-band p{font-family:'Fraunces',serif;font-style:italic;
  font-weight:300;font-size:clamp(1.35rem,3vw,2.05rem);color:#fff;
  line-height:1.42;text-shadow:0 1px 14px rgba(0,0,0,.18);
  max-width:34ch;margin:0 auto}

@media(max-width:620px){
  .deal-chip{width:170px;padding:1.2rem 1rem .85rem}
  .chip-logo,.chip-name{height:66px;min-height:66px}
  .dz-prev{left:8px}.dz-next{right:8px}
  .dz-nav{width:38px;height:38px;background:rgba(8,15,34,.85)}
}

/* ============================ CONTACTO ============================ */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;
  gap:clamp(2.5rem,6vw,5rem);align-items:stretch;margin-top:3rem}
.office{margin-bottom:2rem}
.office-label{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--orange-deep);font-weight:700;margin-bottom:.65rem;
  display:flex;align-items:center;gap:.55rem}
.office-label svg{width:17px;height:17px}
.office address,.office .city2{font-style:normal;font-size:1.02rem;
  color:var(--ink-soft);font-weight:300;line-height:1.7}
.contact-cta{margin-top:2.2rem;padding-top:1.9rem;
  border-top:1px solid var(--line)}
.contact-cta p{font-size:.97rem;color:var(--ink-soft);font-weight:300;
  margin-bottom:.95rem}
.mail-link{display:inline-flex;align-items:center;gap:.7rem;
  font-family:'Fraunces',serif;font-size:1.42rem;color:var(--purple);
  font-weight:500;transition:color .4s var(--ease)}
.mail-link svg{width:22px;height:22px;color:var(--orange);
  transition:transform .45s var(--ease)}
.mail-link:hover{color:var(--orange-deep)}
.mail-link:hover svg{transform:translateX(4px) translateY(-4px)}
.map-frame{border-radius:8px;overflow:hidden;min-height:392px;
  border:1px solid var(--line);
  box-shadow:0 36px 70px -42px rgba(45,74,138,.45);position:relative}
.map-frame iframe{width:100%;height:100%;min-height:392px;border:0;display:block;
  filter:grayscale(.45) contrast(1.04);transition:filter .8s var(--ease)}
.map-frame:hover iframe{filter:none}

/* ====================== PRE-PIE Y PIE ====================== */
.prefooter{background:var(--paper);text-align:center;
  padding:clamp(3rem,6vw,4.5rem) 1.4rem}
.prefooter .pre-line{font-size:.97rem;color:var(--ink-soft);font-weight:300;
  margin-bottom:1.6rem}
.prefooter .mail{font-family:'Fraunces',serif;font-style:italic;
  font-size:1.15rem;color:var(--orange-deep);margin-bottom:2rem}
.prefooter img{height:62px;width:auto;margin:0 auto;opacity:.95}
footer{background:
   radial-gradient(110% 150% at 0% 0%, #1d3568 0%, rgba(29,53,104,0) 56%),
   linear-gradient(180deg,#112347,#0a1834);
  padding:clamp(3rem,6vw,4.2rem) clamp(1.4rem,5vw,5rem) 2.2rem}
.footer-addr{text-align:center;font-size:.96rem;color:rgba(255,255,255,.78);
  font-weight:300;max-width:62ch;margin:0 auto}
.footer-social{display:flex;justify-content:center;gap:1rem;margin-top:1.8rem}
.footer-social a{width:46px;height:46px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;color:var(--purple);
  transition:all .4s var(--ease)}
.footer-social a:hover{background:var(--orange);color:#fff;
  transform:translateY(-4px)}
.footer-social svg{width:19px;height:19px}
.footer-bottom{margin-top:2.4rem;padding-top:1.7rem;
  border-top:1px solid rgba(255,255,255,.16);
  display:flex;justify-content:center;align-items:center;gap:.6rem 1.6rem;
  flex-wrap:wrap;font-size:.82rem;color:rgba(255,255,255,.62)}
.footer-bottom a{transition:color .35s var(--ease)}
.footer-bottom a:hover{color:var(--orange-bright)}

#totop{position:fixed;right:1.5rem;bottom:1.5rem;z-index:90;
  width:50px;height:50px;border-radius:50%;background:var(--orange);
  color:#fff;border:none;cursor:pointer;display:flex;align-items:center;
  justify-content:center;opacity:0;transform:translateY(20px) scale(.8);
  pointer-events:none;transition:all .5s var(--ease);
  box-shadow:0 14px 32px -12px rgba(223,116,38,.85)}
#totop.show{opacity:1;transform:none;pointer-events:auto}
#totop:hover{transform:translateY(-4px);background:var(--orange-bright)}
#totop svg{width:18px;height:18px}

/* ============================ RESPONSIVO ============================ */
@media(max-width:980px){
  .ivsc-grid,.advisor-grid,.contact-grid{grid-template-columns:1fr}
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .pullquote{order:-1}
  .advisor{background-attachment:scroll}
}
@media(max-width:760px){
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .group-head{flex-wrap:wrap;gap:.4rem 1.1rem}
  .group-tag{margin-left:0;width:100%}
  .tx-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}
@media(max-width:520px){
  .card-grid{grid-template-columns:1fr}
  .hero-cta{flex-direction:column;align-items:stretch}
  .btn{justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;
    animation-iteration-count:1 !important;transition-duration:.01ms !important;
    scroll-behavior:auto !important}
  .reveal{opacity:1;transform:none}
  .hero-bg{transform:none !important}
}

/* ---- logos vectoriales HD + animaciones premium ---- */
.marquee-wrap{perspective:1500px}
.deal-chip{transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease}
.deal-chip:hover{transform:translateY(-12px) scale(1.035)}
.deal-chip::before{content:"";position:absolute;inset:0;border-radius:13px;
  background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.6) 48%,transparent 64%);
  background-size:260% 260%;background-position:150% 0;opacity:0;
  transition:opacity .35s ease;pointer-events:none}
.deal-chip:hover::before{opacity:1;animation:chipShine 1.05s ease forwards}
@keyframes chipShine{to{background-position:-50% 0}}
.chip-logo.recon{height:82px}
.lg{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.lg-funo,.lg-next{gap:3px}
.lg-funo .sq,.lg-next .sq{display:flex;align-items:center;justify-content:center;
  width:33px;height:33px;border-radius:5px;color:#fff;
  font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:500;font-size:21px}
.lg .sq.r{background:#df4a31}.lg .sq.g{background:#7c787c}
.lg-stack{display:flex;flex-direction:column;gap:4px}
.lg-stack .sq{width:25px;height:25px;font-size:15px;border-radius:4px}
.lg-word{font-family:'Fraunces',serif;font-weight:500;color:#1f2a3b;
  letter-spacing:.04em;white-space:nowrap;line-height:1}
.lg-sls{font-size:30px;letter-spacing:.34em}
.lg-hyatt{font-size:18px;letter-spacing:.2em}
.lg-mayor{font-size:18px;letter-spacing:.07em}
.lg-escala{font-size:21px}
.lg-diana-wrap{background:#14305a;padding:9px 15px;border-radius:3px}
.lg-diana{font-family:'Fraunces',serif;font-weight:500;color:#fff;
  font-size:17px;letter-spacing:.05em;white-space:nowrap;line-height:1}
.dz-logo.recon{padding:1.5rem}
.dz-logo.recon .lg .sq{width:46px;height:46px;font-size:30px;border-radius:7px}
.dz-logo.recon .lg-stack .sq{width:34px;height:34px;font-size:21px}
.dz-logo.recon .lg-sls{font-size:42px}
.dz-logo.recon .lg-hyatt{font-size:26px}
.dz-logo.recon .lg-mayor{font-size:26px}
.dz-logo.recon .lg-escala{font-size:30px}
.dz-logo.recon .lg-diana-wrap{padding:12px 22px}
.dz-logo.recon .lg-diana{font-size:24px}

.chip-logo .lg-img{max-width:100%;max-height:82px;object-fit:contain;border-radius:4px}
.lg-stack-img{display:flex;flex-direction:column;gap:5px;align-items:center}
.chip-logo .lg-stack-img .lg-img{max-height:33px}
.dz-logo.img .lg-stack-img .lg-img{max-height:42px}
.dz-logo.img{background:#fff;padding:1.1rem}
.dz-logo.recon{background:#fff !important;border-radius:10px}
.dz-logo.img .lg-img{max-height:104px;max-width:100%;object-fit:contain}
.lg-execon{font-size:19px;letter-spacing:.06em;color:#3a6e3a}
.lg-mayor{color:#17424a !important;background:none !important;font-variant:small-caps;letter-spacing:.04em}
.lg-diana{color:#14305a !important;background:none !important;padding:0 !important;font-size:19px}
.lg-igs{font-size:20px;letter-spacing:.05em;color:#2c7bc0;font-weight:600}
/* galeria del complejo */
.complex{background:linear-gradient(168deg,#0c1a38,#070f24);overflow:hidden}
.complex .section-title,.complex .lead{color:#fff}
.complex .lead.center{margin-left:auto;margin-right:auto}
.gallery{margin-top:clamp(2.4rem,5vw,3.4rem);display:grid;gap:16px;
  grid-template-columns:1.15fr .85fr;grid-auto-rows:clamp(300px,42vw,440px)}
.gphoto{position:relative;overflow:hidden;border-radius:16px;
  border:1px solid rgba(255,255,255,.1)}
.gphoto img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.gphoto:hover img{transform:scale(1.06)}
.gphoto::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(7,15,36,.55));
  opacity:0;transition:opacity .5s ease}
.gphoto:hover::after{opacity:1}
@media(max-width:760px){.gallery{grid-template-columns:1fr;grid-auto-rows:clamp(240px,70vw,360px)}}

/* equipo */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:clamp(2.2rem,4.5vw,3rem)}
.tm-card{display:flex;align-items:center;gap:1.05rem;background:#fff;
  border:1px solid rgba(17,35,71,.09);border-radius:16px;padding:1.3rem 1.4rem;
  box-shadow:0 18px 38px -30px rgba(12,26,56,.35);
  transition:transform .45s var(--ease),box-shadow .45s ease}
.tm-card:hover{transform:translateY(-5px);box-shadow:0 26px 48px -28px rgba(12,26,56,.45)}
.tm-ini{width:52px;height:52px;flex-shrink:0;border-radius:50%;display:flex;
  align-items:center;justify-content:center;color:#fff;font-weight:600;
  font-size:.95rem;letter-spacing:.06em;
  background:linear-gradient(135deg,var(--purple),var(--blue-vivid))}
.tm-card h3{font-size:1rem;font-weight:650;margin:0 0 .2rem;color:#1d2840}
.tm-role{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--orange)}
@media(max-width:980px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.team-grid{grid-template-columns:1fr}}
/* grupo de 3 tarjetas */
.card-grid.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:980px){.card-grid.three{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.card-grid.three{grid-template-columns:1fr}}
/* stat agregado */
.stat-solo{max-width:780px;text-align:center}
.stat-solo .stat-num.agg{font-size:clamp(1.7rem,4.4vw,3.05rem);line-height:1.18}
/* contacto: logo a la derecha */
.contact-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.contact-logo{height:clamp(54px,7vw,82px);width:auto}
@media(max-width:760px){.contact-head{align-items:center}.contact-logo{height:48px}}

/* micro-interacciones */
.tm-ini{transition:transform .5s var(--ease)}
.tm-card:hover .tm-ini{transform:scale(1.08) rotate(-4deg)}
.chip-logo img,.chip-logo .lg-word,.chip-logo .lg-stack-img{transition:transform .5s var(--ease)}
.deal-chip:hover .chip-logo img{transform:scale(1.06)}
.deal-chip:hover .lg-word{transform:scale(1.05)}
.contact-logo{transition:transform .6s var(--ease)}
.contact-logo:hover{transform:translateY(-4px)}
.stat-solo .stat-lab{position:relative;padding-top:1rem;display:inline-block}
.stat-solo .stat-lab::before{content:"";position:absolute;top:0;left:50%;
  transform:translateX(-50%);height:2px;width:0;border-radius:2px;
  background:var(--orange);transition:width 1.1s var(--ease) .45s}
.reveal.in-view .stat-lab::before,.track-stats.solo.in-view .stat-lab::before{width:74px}

/* nav mas grande + logo dual */
.nav-logo{position:relative;display:inline-flex;align-items:center}
.nav-logo img{height:60px}
nav.scrolled .nav-logo img{height:47px}
.nav-logo .lg-w{position:absolute;left:0;top:50%;transform:translateY(-50%) !important;opacity:0;transition:opacity .45s ease,height .55s var(--ease)}
.nav-logo .lg-c{transition:opacity .45s ease,height .55s var(--ease)}
nav.scrolled .lg-c{opacity:0}
nav.scrolled .lg-w{opacity:1}
.nav-links{gap:2.5rem}
.nav-links a{font-size:1.04rem}
.nav-lang{font-size:.92rem !important;padding:.5rem 1.2rem !important}
.mobile-menu a{font-size:2.3rem}
@media(max-width:940px){.nav-links{display:none}.nav-toggle{display:flex}}
/* aire en tarjetas de logos */
.chip-logo{padding:5px 13px;box-sizing:border-box}
.deal-chip{margin-right:1.35rem}
.dz-logo.img{padding:1.3rem}
/* tarjetas de equipo -> LinkedIn */
a.tm-card{position:relative;color:inherit;text-decoration:none;cursor:pointer}
.tm-tip{position:absolute;left:50%;bottom:calc(100% - 4px);
  transform:translate(-50%,10px) scale(.9);opacity:0;pointer-events:none;
  background:var(--purple);color:#fff;font-size:.72rem;font-weight:600;
  letter-spacing:.05em;padding:.45rem .78rem;border-radius:9px;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.45rem;
  box-shadow:0 14px 30px -14px rgba(12,26,56,.6);
  transition:opacity .35s ease,transform .5s cubic-bezier(.34,1.56,.64,1);z-index:6}
.tm-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:6px solid transparent;border-top-color:var(--purple)}
.tm-tip svg{width:13px;height:13px;flex-shrink:0}
.tm-tip i{font-style:normal}
a.tm-card:hover .tm-tip,a.tm-card:focus-visible .tm-tip{opacity:1;transform:translate(-50%,0) scale(1)}

.dz-amount .amt2{display:block;font-size:.4em;letter-spacing:.06em;
  color:var(--orange);margin-top:.4rem;font-weight:600}

.nav-logo img{filter:drop-shadow(0 2px 10px rgba(0,0,0,.45))}


/* aviso de privacidad */
.pv-overlay{position:fixed;inset:0;background:rgba(8,16,38,.66);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;padding:1.2rem;z-index:220;
  opacity:0;pointer-events:none;transition:opacity .4s ease}
.pv-overlay.open{opacity:1;pointer-events:auto}
.pv-card{background:#fff;color:#243046;max-width:700px;width:100%;max-height:84vh;overflow:auto;
  border-radius:18px;padding:2.2rem 2.4rem;position:relative;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.55);
  transform:translateY(14px) scale(.98);transition:transform .45s var(--ease)}
.pv-overlay.open .pv-card{transform:none}
.pv-card h3{font-family:'Fraunces',serif;font-size:1.5rem;margin:0 0 1.1rem;color:#112347}
.pv-card p{font-size:.85rem;line-height:1.65;margin:0 0 .9rem}
.pv-card .pv-note{font-size:.72rem;opacity:.6;margin-top:1.2rem}
.pv-close{position:absolute;top:14px;right:16px;width:34px;height:34px;border:0;border-radius:50%;
  background:rgba(17,35,71,.08);color:#112347;font-size:1.15rem;cursor:pointer;transition:background .3s}
.pv-close:hover{background:rgba(17,35,71,.16)}
.footer-bottom a{cursor:pointer}
@media(max-width:560px){.pv-card{padding:1.6rem 1.3rem}}
