/* Efectos COMEX (inspirados en Skiper UI, implementados en CSS/JS puro) */
.fx-lang-wrap{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;padding:20px;overflow:hidden;
  background:#0A120D;clip-path:circle(150% at 50% 50%);transition:clip-path 1.1s cubic-bezier(.7,0,.2,1),opacity .6s .5s}
html.fx-lang .fx-lang-wrap{display:flex}
html.fx-lang{overflow:hidden}
.fx-lang-wrap.out{clip-path:circle(0% at 50% 50%);opacity:0;pointer-events:none}
.fx-lang-wrap.out .fx-lang-box{transform:scale(1.15);opacity:0;transition:transform .8s,opacity .5s}
.fx-lang-bg{position:absolute;inset:0;background:radial-gradient(55% 50% at 50% 38%,rgba(79,122,94,.28),transparent 70%)}
.fx-lang-bg i{position:absolute;left:50%;top:38%;width:min(120vw,900px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(169,190,149,.16);
  transform:translate(-50%,-50%) scale(.3);opacity:0;animation:fxring 7s linear infinite}
.fx-lang-bg i:nth-child(2){animation-delay:2.3s}.fx-lang-bg i:nth-child(3){animation-delay:4.6s}
@keyframes fxring{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}15%{opacity:.9}100%{transform:translate(-50%,-50%) scale(1.3);opacity:0}}
.fx-lang-box{position:relative;text-align:center;color:#fff;max-width:640px;width:100%;transition:transform .8s,opacity .5s}
.fx-lang-mark{height:46px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;animation:fxpop .9s cubic-bezier(.2,.9,.3,1.3) both}
.fx-lang-mark img{height:46px;width:auto;filter:drop-shadow(0 0 14px rgba(143,174,134,.9))}
@keyframes fxpop{from{transform:scale(.3) rotate(-12deg);opacity:0}}
.fx-hello{height:1.25em;font-size:clamp(40px,8vw,68px);font-weight:800;letter-spacing:-.02em;line-height:1.25;overflow:hidden;margin-bottom:6px;
  background:linear-gradient(90deg,#C9A55C,#C9A55C);-webkit-background-clip:text;background-clip:text;color:transparent}
.fx-hello span{display:block;animation:fxin .6s cubic-bezier(.2,.8,.2,1) both}
.fx-hello span.o{animation:fxout .35s ease-in both}
@keyframes fxin{from{transform:translateY(100%);opacity:0}}
@keyframes fxout{to{transform:translateY(-100%);opacity:0}}
.fx-lang-t{font-weight:600;font-size:13.5px;line-height:1.8;letter-spacing:.05em;color:#A9AC98;margin:8px 0 30px;animation:fxup .9s .3s both}
.fx-lang-btns{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;text-align:left}
@media(min-width:620px){.fx-lang-btns{grid-template-columns:repeat(3,1fr)}}
.fx-lang-btns a{display:flex;align-items:center;gap:12px;padding:16px 16px;border-radius:16px;color:#fff;text-decoration:none;position:relative;overflow:hidden;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);backdrop-filter:blur(6px);
  animation:fxup .7s calc(.45s + var(--i)*.07s) cubic-bezier(.2,.8,.2,1) both;transition:transform .3s,border-color .3s,box-shadow .3s}
.fx-lang-btns a::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(169,190,149,.28),transparent 70%);
  transform:translateX(-120%);transition:transform .7s}
.fx-lang-btns a:hover::before,.fx-lang-btns a:focus-visible::before{transform:translateX(120%)}
.fx-lang-btns a .flag{width:30px;height:20px;border-radius:3px;flex:none}
.fx-lang-btns a .nm{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.fx-lang-btns a b{font-size:15px;font-weight:800;white-space:nowrap}
.fx-lang-btns a small{font-size:10.5px;letter-spacing:.2em;color:#A9BE95;font-weight:700}
.fx-lang-btns a .ar{margin-left:auto;font-style:normal;opacity:0;transform:translateX(-6px);transition:.3s;color:#C9A55C}
.fx-lang-btns a:hover,.fx-lang-btns a:focus-visible,.fx-lang-btns a.cur{transform:translateY(-3px);border-color:#8FAE86;outline:0;box-shadow:0 12px 36px -10px rgba(143,174,134,.7)}
.fx-lang-btns a:hover .ar,.fx-lang-btns a:focus-visible .ar{opacity:1;transform:none}
.fx-lang-hint{margin-top:26px;font-size:11px;letter-spacing:.28em;color:#5E645A;font-weight:700;animation:fxup .9s 1.2s both}
@keyframes fxup{from{opacity:0;transform:translateY(22px)}}
/* pestaña flotante de idioma */
.fx-tab{position:fixed;left:18px;bottom:18px;z-index:900;font-family:inherit}
.fx-tab>button{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid rgba(40,85,60,.25);
  background:rgba(255,255,255,.92);backdrop-filter:blur(10px);color:#12201A;font-weight:800;font-size:13px;cursor:pointer;
  box-shadow:0 8px 26px rgba(18,32,25,.18);transition:transform .25s}
.fx-tab>button:hover{transform:translateY(-2px)}
.fx-tab-menu{position:absolute;bottom:52px;left:0;display:none;flex-direction:column;min-width:150px;padding:6px;border-radius:16px;
  background:#fff;box-shadow:0 14px 40px rgba(18,32,25,.25)}
.fx-tab.open .fx-tab-menu{display:flex;animation:fxup .3s both}
.fx-tab-menu a{padding:10px 14px;border-radius:10px;color:#12201A;text-decoration:none;font-weight:700;font-size:14px}
.fx-tab-menu a:hover,.fx-tab-menu a[aria-current]{background:#F0EAD8;color:#28553C}
.globe-stage.is-intro canvas{filter:drop-shadow(0 0 60px rgba(40,85,60,.55))}
.fx-scroll{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,#28553C,#A9BE95);z-index:9990}
/* reveal con blur */
.fx-rev{opacity:0;filter:blur(10px);transform:translateY(26px);transition:opacity .8s ease,filter .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--d,0s)}
.fx-rev.in{opacity:1;filter:none;transform:none}
/* rolling text */
.fx-roll{display:inline-block;overflow:hidden;vertical-align:bottom;height:1.25em;line-height:1.25em}
.fx-roll span{display:block;transition:transform .45s cubic-bezier(.7,0,.2,1)}
.fx-roll span::after{content:attr(data-t);display:block}
a:hover>.fx-roll span,button:hover>.fx-roll span,.btn:hover .fx-roll span{transform:translateY(-100%)}
/* glow que sigue al mouse */
.card,.trust-item{position:relative}
.fx-glow::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(40,85,60,.16),transparent 60%)}
.fx-glow:hover::after{opacity:1}
/* marquee de mercados */
.fx-marquee{overflow:hidden;background:#12201A;color:#E6E1CA;padding:14px 0;white-space:nowrap;border-top:1px solid rgba(255,255,255,.08)}
.fx-marquee div{display:inline-flex;gap:46px;padding-left:46px;animation:fxm 38s linear infinite;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:12.5px}
.fx-marquee b{color:#A9BE95;font-weight:700}
@keyframes fxm{to{transform:translateX(-50%)}}
/* estrellas tras el globo */
.fx-stars{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.fx-stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;opacity:.5;animation:fxt 3.5s ease-in-out infinite}
@keyframes fxt{50%{opacity:.05}}
@media (prefers-reduced-motion:reduce){
  .fx-rev{opacity:1;filter:none;transform:none;transition:none}
  .fx-marquee div,.fx-stars i{animation:none}
  .fx-lang-box{animation:none}
}
html.fx-pre .fx-pre-wrap{display:flex}
.flag{width:20px;height:14px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.12);vertical-align:-2px;margin-right:6px;flex:none}
.fx-lang-btns{grid-template-columns:repeat(3,1fr)}
.fx-lang-btns .flag{width:44px;height:30px;border-radius:5px;margin:0 auto 8px}
.fx-lang-btns a{align-items:center}
@media (max-width:520px){.fx-lang-btns{grid-template-columns:repeat(2,1fr)}}
.lang-switch .flag{margin-right:4px}
.fx-tab-menu a{display:flex;align-items:center}
.lang-switch a{font-size:0;display:inline-flex;align-items:center;padding:6px 7px}
.lang-switch .flag{width:22px;height:15px;margin:0}
.lang-switch a[aria-current]{background:rgba(40,85,60,.14);border-radius:8px}
