/* Ruta Maestra — logo 3D, animaciones 3D y transiciones de página (v1) */

/* ===== Logo 3D ===== */
.logo3d{--s:44px; width:var(--s); height:var(--s); perspective:calc(var(--s)*9); display:block; flex-shrink:0; position:relative;}
.logo3d:empty{background:url(images/logo-mark.svg) center/contain no-repeat;}
.logo3d .l3{position:relative; display:block; width:100%; height:100%; transform-style:preserve-3d; animation:rm-l3spin 11s cubic-bezier(.6,0,.3,1) infinite; transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));}
.logo3d.tilt .l3{animation:none;}
.logo3d .l3 i{position:absolute; inset:0; background:url(images/logo-mark.svg) center/contain no-repeat; transform:translateZ(calc(var(--z)*var(--s)*.014 - var(--s)*.07)); filter:brightness(.5) saturate(1.2);}
.logo3d .l3 i.f{transform:translateZ(calc(var(--s)*.075)); filter:none; backface-visibility:hidden;}
.logo3d .l3 i.b{transform:rotateY(180deg) translateZ(calc(var(--s)*.075)); filter:none; backface-visibility:hidden;}
.logo3d .sheen{position:absolute; inset:0; transform:translateZ(calc(var(--s)*.08)); background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%); mix-blend-mode:soft-light; -webkit-mask:url(images/logo-mark.svg) center/contain no-repeat; mask:url(images/logo-mark.svg) center/contain no-repeat; animation:rm-sheen 11s linear infinite;}
@keyframes rm-l3spin{0%{transform:rotateY(0)}12%{transform:rotateY(0)}62%{transform:rotateY(360deg)}100%{transform:rotateY(360deg)}}
@keyframes rm-sheen{0%,12%{opacity:0}30%{opacity:1}62%,100%{opacity:0}}
.brand .logo3d{--s:46px;}
@media(max-width:640px){.brand .logo3d{--s:36px;}}

/* Logo grande en el hero (fondo marfil) */
.hero-logo3d{display:none;}
@media(min-width:1100px){
  /* ícono del hero más compacto para dejar espacio al logo debajo */
  .hero-slide-visual{top:112px; width:min(190px,17vw);}
  .hero-logo3d{display:grid; place-items:center; position:absolute; z-index:2; right:7%; top:372px; width:min(240px,21vw); height:min(256px,22.5vw); border-radius:24px;
    background:radial-gradient(closest-side at 50% 42%,#ffffff 0,#f3f0e8 70%,#e7e2d6 100%); border:1px solid rgba(255,255,255,.35); box-shadow:0 40px 70px -30px rgba(0,0,0,.6);
    opacity:0; transform:perspective(900px) rotateY(-24deg) rotateX(8deg) translateY(30px); animation:rm-stage-in 1.3s var(--ease) .9s forwards;}
  .hero-logo3d::after{content:""; position:absolute; bottom:9%; width:54%; height:18px; background:radial-gradient(closest-side,rgba(15,30,51,.38),transparent);}
  .hero-logo3d .logo3d{--s:min(170px,14vw); z-index:1; filter:drop-shadow(0 16px 12px rgba(15,30,51,.28));}
}
@keyframes rm-stage-in{to{opacity:1; transform:perspective(900px) rotateY(0) rotateX(0) translateY(0);}}

/* ===== Iconos del hero en 3D ===== */
.hero-slide-visual{perspective:900px;}
.hero-slide-visual svg{transform-style:preserve-3d; filter:drop-shadow(0 18px 14px rgba(0,0,0,.45));}
.hero-slide.active .hero-slide-visual svg{animation:rm-float3d 9s ease-in-out infinite;}
@keyframes rm-float3d{
  0%{transform:rotateY(-72deg) rotateX(16deg) scale(.82)}
  18%{transform:rotateY(-22deg) rotateX(9deg) scale(1)}
  59%{transform:rotateY(22deg) rotateX(-5deg) translateY(-8px)}
  100%{transform:rotateY(-22deg) rotateX(9deg) translateY(0)}}

/* ===== Tarjetas con inclinación 3D ===== */
.rm-tilt{transform-style:preserve-3d; will-change:transform;}
.rm-tilt.rm-tilting{transition:transform .18s ease-out, box-shadow .4s var(--ease) !important; box-shadow:0 30px 46px -22px rgba(15,30,51,.35);}

/* ===== Transición de página (cortina 3D) ===== */
body::after{content:""; position:fixed; inset:0; z-index:9999; pointer-events:none; background:linear-gradient(160deg,var(--navy-2,#152A47),var(--navy,#0F1E33)); transform-origin:50% 0; transform:perspective(1200px) rotateX(0) scaleY(0); animation:rm-curtain-in .8s cubic-bezier(.7,0,.2,1) both;}
@keyframes rm-curtain-in{0%{transform:perspective(1200px) rotateX(0) scaleY(1)}100%{transform:perspective(1200px) rotateX(-18deg) scaleY(0); opacity:.2}}
html.rm-leaving body::after{animation:rm-curtain-out .5s cubic-bezier(.7,0,.84,0) forwards; transform-origin:50% 100%; pointer-events:all;}
@keyframes rm-curtain-out{0%{transform:perspective(1200px) rotateX(18deg) scaleY(0); opacity:.4}100%{transform:perspective(1200px) rotateX(0) scaleY(1); opacity:1}}

@media (prefers-reduced-motion:reduce){
  .logo3d .l3,.logo3d .sheen,.hero-slide.active .hero-slide-visual svg{animation:none !important;}
  .hero-logo3d{animation:none !important; opacity:1; transform:none;}
  body::after{display:none;}
}

/* ===== Logo pequeño del hero para pantallas < 1100 px ===== */
@media(max-width:1099px){
  .hero-logo3d{display:grid; place-items:center; position:absolute; z-index:1; top:112px; right:calc(6% + min(180px,38vw) + 12px); width:96px; height:104px; border-radius:18px;
    background:radial-gradient(closest-side at 50% 42%,#ffffff 0,#f3f0e8 72%,#e7e2d6 100%); border:1px solid rgba(255,255,255,.35); box-shadow:0 20px 34px -18px rgba(0,0,0,.6);
    opacity:0; transform:perspective(600px) rotateY(-24deg) translateY(16px); animation:rm-stage-in 1.1s var(--ease) .8s forwards;}
  .hero-logo3d .logo3d{--s:72px;}
}
@media(max-width:560px){
  .hero-logo3d{width:64px; height:70px; right:auto; left:16px; top:72px; border-radius:14px;}
  .hero-logo3d .logo3d{--s:48px;}
  .hero-content{padding-top:96px;}
}

/* ===== Ajuste responsivo: encabezado, títulos y espacios ===== */
@media(min-width:1000px) and (max-width:1599px){
  .mega-nav{margin-left:10px;}
  .mega-trigger{font-size:13px; padding:7px 8px;}
  .top-right{gap:12px;}
  .cta-pill{max-width:180px; padding:8px 16px; font-size:13px;}
}
@media(min-width:1000px) and (max-width:1319px){ .brand-text{display:none;} }
@media(min-width:1000px) and (max-width:1149px){ .cta-pill{display:none;} }

.hero-content h1{font-size:clamp(32px,min(5.2vw,8.8vh),72px); line-height:1.1;}
.svc-hero h1{font-size:clamp(32px,min(4.8vw,8.4vh),60px); line-height:1.12;}
.svc-hero{padding:clamp(120px,21vh,180px) 0 clamp(48px,9vh,90px);}
@media(max-height:760px){
  .hero-sub{font-size:16px; margin-bottom:22px;}
  .hero-ctas{margin-bottom:30px;}
  .hero-stats{padding-top:18px;}
}
/* tarjetas de cifras en pantallas muy angostas */
@media(max-width:420px){ .cifras-grid{grid-template-columns:1fr !important;} .cifra{padding:26px 20px;} }
img,video{max-width:100%;}
.article-stats{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr)) !important;}
.article-stats div{min-width:0; overflow-wrap:anywhere;}

/* ===== Ajuste de escala a la pantalla (escritorio) ===== */
:root{--rz:1;}
@media(min-width:1000px) and (max-width:1699px){ :root{--rz:.9;} body{zoom:.9;} }
@media(min-width:1000px) and (max-width:1279px){ :root{--rz:.86;} body{zoom:.86;} }
@media(min-width:1000px){
  #hero{min-height:calc(100vh / var(--rz));}
  section{padding-top:clamp(56px,9vh,104px); padding-bottom:clamp(56px,9vh,104px);}
  .section-head{margin-bottom:clamp(28px,5.5vh,52px);}
}
#hero{box-sizing:border-box; padding-top:92px;}
.hero-content h1{font-size:clamp(32px,min(4.6vw,7.6vh),68px); max-width:900px;}
