/* MUNDIAL — camada de movimento (preloader, transição, ticker, vídeo)
   Sem JS: nada disto aparece e o site fica estático e legível. */

/* ---------- preloader ---------- */
.preloader { display: none; }
.js .preloader {
  display: grid; place-items: center; position: fixed; inset: 0; z-index: 200;
  background: var(--navy-950); color: var(--fg);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%);
}
.js .preloader.is-done { display: none; }
.pl-gold { position: fixed; inset: 0; z-index: 199; background: var(--gold-grad); display: none; pointer-events: none;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%); }
.js .pl-gold { display: block; }
.js .pl-gold.is-done { display: none; }
.pl-core { display: grid; justify-items: center; gap: 26px; }
.pl-mono { width: clamp(84px, 9vw, 120px); height: auto; overflow: visible; }
.pl-mono .s { fill: none; stroke: var(--gold-hi); stroke-width: 6; stroke-linejoin: miter; }
.pl-mono .f { opacity: 0; }
.pl-word { display: flex; gap: .02em; font: 600 clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem)/1 var(--f-brand); letter-spacing: .32em; padding-left: .32em; overflow: hidden; }
.pl-word span { display: inline-block; }
.pl-sub { font: 500 .66rem/1 var(--f-brand); letter-spacing: .42em; color: var(--gold-hi); padding-left: .42em; overflow: hidden; }
.pl-sub span { display: inline-block; }
.pl-meta { position: absolute; left: var(--gut); right: var(--gut-r); bottom: calc(28px + env(safe-area-inset-bottom, 0px));
  display: flex; justify-content: space-between; align-items: end; gap: 16px; font: 500 .72rem/1 var(--f-data); color: var(--fg-faint); letter-spacing: .08em; }
.pl-count { font: 500 clamp(2.4rem, 1.6rem + 3vw, 4.6rem)/.8 var(--f-data); color: var(--fg); letter-spacing: -.02em; }
.pl-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: rgba(232,236,243,.08); }
.pl-bar i { position: absolute; inset: 0; background: var(--gold-grad); transform: scaleX(0); transform-origin: left; }
[dir="rtl"] .pl-bar i { transform-origin: right; }


/* ---------- vídeo do hero ---------- */
.hero-media video { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-media .poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.js .hero-media img, .js .hero-media video { animation: none; }
.hero-seal { opacity: .07; }
.hero-cue { position: absolute; right: var(--gut-r); bottom: calc(100% + 22px); display: flex; align-items: center; gap: 14px;
  font: 500 .72rem/1 var(--f-data); color: var(--fg-soft); letter-spacing: .06em; }
.hero-cue .n { color: var(--gold-hi); }
.hero-cue .bar { width: 64px; height: 1px; background: rgba(232,236,243,.2); position: relative; overflow: hidden; }
.hero-cue .bar i { position: absolute; inset: 0; background: var(--gold-hi); transform: scaleX(0); transform-origin: left; }
[dir="rtl"] .hero-cue { right: auto; left: var(--gut); }
[dir="rtl"] .hero-cue .bar i { transform-origin: right; }
.hero-rail { position: relative; }
.hero-rail .wrap { position: relative; }
@media (max-width: 860px) { .hero-cue { display: none; } }
.scroll-hint { position: absolute; left: 50%; bottom: calc(100% + 18px); width: 1px; height: 46px; background: rgba(232,236,243,.18); overflow: hidden; }
.scroll-hint::after { content: ""; position: absolute; left: 0; top: -40%; width: 1px; height: 40%; background: var(--gold-hi); animation: hint 2.2s var(--ease) infinite; }
@keyframes hint { to { top: 100%; } }
@media (max-width: 860px) { .scroll-hint { display: none; } }

/* ---------- ticker (mesa de operações) ---------- */
.ticker { border-block: 1px solid var(--line); background: var(--navy-900); overflow: hidden; position: relative; direction: ltr; }
.ticker::before, .ticker::after { content: ""; position: absolute; top: 0; bottom: 0; width: 80px; z-index: 1; pointer-events: none; }
.ticker::before { left: 0; background: linear-gradient(90deg, var(--navy-900), transparent); }
.ticker::after { right: 0; background: linear-gradient(-90deg, var(--navy-900), transparent); }
.ticker-track { display: flex; width: max-content; }
.ticker-row { display: flex; flex: none; }
.tick { display: inline-flex; align-items: center; gap: 14px; padding: 18px 34px; white-space: nowrap; border-right: 1px solid var(--line); }
.tick b { font: 600 .78rem/1 var(--f-brand); letter-spacing: .16em; text-transform: uppercase; color: var(--fg); }
.tick span { font: 500 .72rem/1 var(--f-data); color: var(--gold-hi); letter-spacing: .04em; }
.tick i { width: 7px; height: 7px; background: var(--gold); transform: rotate(45deg); flex: none; }

/* ---------- utilitários de animação ---------- */
.w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.wi { display: inline-block; will-change: transform; }
.gold-text .wi { background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gold-text:has(.wi) { background: none; color: inherit; }
.js .fade.pre { transform: none; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.site-head { transition: transform .5s var(--ease), background .4s var(--ease), border-color .4s, backdrop-filter .4s; }
.site-head.is-hidden { transform: translateY(-110%); }
.chain { --p: 0; }
.chain.is-anim::before { transform: scaleX(var(--p)); transform-origin: left; }
[dir="rtl"] .chain.is-anim::before { transform-origin: right; }
.step .node { transition: background .4s var(--ease), color .4s, border-color .4s, box-shadow .4s; }
.step.is-on .node { background: var(--gold) !important; color: var(--navy-950); box-shadow: 0 0 0 6px rgba(217,162,58,.16); }
@media (max-width: 980px) { .chain.is-anim::before { transform: scaleY(var(--p)); transform-origin: top; } }

/* ---------- seletor de idioma ---------- */
.lang { position: relative; }
.lang-btn { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 12px; background: transparent; border: 1px solid var(--line); color: var(--fg);
  font: 600 .72rem/1 var(--f-brand); letter-spacing: .14em; cursor: pointer; }
.lang-btn::after { content: ""; width: 7px; height: 5px; background: currentColor; clip-path: polygon(0 0, 100% 0, 50% 100%); }
.lang-list { position: absolute; top: calc(100% + 8px); inset-inline-end: 0; min-width: 180px; background: var(--navy-900); border: 1px solid var(--line); padding: 6px; display: none; z-index: 5; }
.lang.is-open .lang-list { display: grid; }
.lang-list a { display: flex; justify-content: space-between; gap: 16px; padding: 12px 12px !important; font: 500 .9rem/1 var(--f-body) !important; letter-spacing: 0 !important; color: var(--fg-soft); text-decoration: none; border: 0 !important; }
.lang-list a::after { display: none !important; }
.lang-list a small { font: 500 .7rem/1 var(--f-data); color: var(--fg-faint); }
.lang-list a:hover, .lang-list a[aria-current="true"] { color: var(--fg); background: rgba(245,186,86,.08); }
@media (max-width: 1120px) {
  .lang { order: 99; margin-top: 18px; }
  .lang-btn { display: none; }
  .lang-list { position: static; display: flex !important; flex-wrap: wrap; gap: 6px; background: none; border: 0; padding: 0; }
  .lang-list a { border: 1px solid var(--line) !important; padding: 10px 12px !important; }
}

/* ---------- línguas ---------- */
html[lang="zh"] { --f-brand: "Montserrat", "Noto Sans SC", "PingFang SC", sans-serif; --f-body: "IBM Plex Sans", "Noto Sans SC", "PingFang SC", sans-serif; }
html[lang="zh"] h1, html[lang="zh"] h2, html[lang="zh"] h3 { letter-spacing: 0; line-break: strict; }
html[lang="ar"] { --f-brand: "IBM Plex Sans Arabic", "Montserrat", Tahoma, sans-serif; --f-body: "IBM Plex Sans Arabic", "IBM Plex Sans", Tahoma, sans-serif; }
html[lang="ar"] body * { letter-spacing: 0 !important; }
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3 { line-height: 1.3; }
html[lang="ru"] h1 { font-size: clamp(2.2rem, 1.2rem + 4.4vw, 4.8rem); }

/* RTL: espelha o que é direcional; mapa e ticker continuam LTR (geografia/dados) */
[dir="rtl"] .eyebrow::before, [dir="rtl"] .btn .chev, [dir="rtl"] .front .go, [dir="rtl"] .link-arrow::after { transform: scaleX(-1); }
[dir="rtl"] .hero::before { background:
    linear-gradient(180deg, rgba(1,17,42,.55) 0%, rgba(1,17,42,.15) 30%, rgba(1,17,42,.6) 62%, var(--navy-950) 100%),
    linear-gradient(270deg, rgba(1,17,42,.88) 0%, rgba(1,17,42,.35) 60%, rgba(1,17,42,.1) 100%); }
[dir="rtl"] .page-hero::before { background: linear-gradient(270deg, rgba(1,17,42,.95) 0%, rgba(1,17,42,.72) 55%, rgba(1,17,42,.35) 100%), linear-gradient(0deg, var(--navy-950) 0%, rgba(1,17,42,0) 45%); }
[dir="rtl"] .band::before { background: linear-gradient(270deg, rgba(1,17,42,.96) 0%, rgba(1,17,42,.82) 45%, rgba(1,17,42,.25) 100%); }
[dir="rtl"] .hero-seal { right: auto; left: -6vw; }
[dir="rtl"] .rail-row > div { padding: 22px 0 26px 24px; }
[dir="rtl"] .rail-row > div + div { padding-left: 0; padding-right: 24px; border-left: 0; border-right: 1px solid var(--line); }
[dir="rtl"] .regions > div { padding: 24px 0 8px 22px; }
[dir="rtl"] .regions > div + div { padding-left: 0; padding-right: 22px; border-left: 0; border-right: 1px solid var(--line); }
[dir="rtl"] .facts > div:nth-child(odd) { padding-right: 0; padding-left: 20px; }
[dir="rtl"] .facts > div:nth-child(even) { padding-left: 0; padding-right: 20px; border-left: 0; border-right: 1px solid var(--line-ink); }
[dir="rtl"] .addr { border-left: 0; padding-left: 0; border-right: 2px solid var(--gold); padding-right: 18px; }
[dir="rtl"] .nav a::after { transform-origin: right; }
[dir="rtl"] .card::after { right: auto; left: 0; clip-path: polygon(0 0, 100% 0, 0 100%); transform: translate(-20px, -20px); }
[dir="rtl"] .card:hover::after { transform: none; }
[dir="rtl"] .map { direction: ltr; }
@media (max-width: 860px) {
  [dir="rtl"] .rail-row > div:nth-child(3) { padding-right: 0; border-right: 0; }
}
@media (max-width: 980px) {
  [dir="rtl"] .regions > div:nth-child(odd) { padding-right: 0; border-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .js .preloader, .js .pl-gold { display: none !important; }
  .scroll-hint::after { animation: none; }
}

/* hero com vídeo: menos véu, mais imagem */
.hero:has(video) .hero-tint { opacity: .18; }
.hero:has(video)::before { background:
    linear-gradient(180deg, rgba(1,17,42,.5) 0%, rgba(1,17,42,0) 26%, rgba(1,17,42,.08) 55%, rgba(1,17,42,.7) 82%, var(--navy-950) 100%),
    linear-gradient(90deg, rgba(1,17,42,.86) 0%, rgba(1,17,42,.5) 38%, rgba(1,17,42,.06) 72%, rgba(1,17,42,0) 100%); }
[dir="rtl"] .hero:has(video)::before { background:
    linear-gradient(180deg, rgba(1,17,42,.5) 0%, rgba(1,17,42,0) 26%, rgba(1,17,42,.08) 55%, rgba(1,17,42,.7) 82%, var(--navy-950) 100%),
    linear-gradient(270deg, rgba(1,17,42,.86) 0%, rgba(1,17,42,.5) 38%, rgba(1,17,42,.06) 72%, rgba(1,17,42,0) 100%); }
@media (max-width: 760px) {
  .hero:has(video)::before { background: linear-gradient(180deg, rgba(1,17,42,.62) 0%, rgba(1,17,42,.6) 30%, rgba(1,17,42,.8) 58%, var(--navy-950) 100%); }
}

/* mobile: faixa com foto fica mais escura para o texto */
@media (max-width: 760px) { .band::before, [dir="rtl"] .band::before { background: linear-gradient(180deg, rgba(1,17,42,.9) 0%, rgba(1,17,42,.84) 60%, rgba(1,17,42,.9) 100%); } }
