/* =====================================================================
   v1.2 — layout from the approved mockup
   ===================================================================== */
.ico { width: 1.25em; height: 1.25em; flex-shrink: 0; }
.script { font-family: var(--script); font-weight: 400; letter-spacing: 0; }
.label { margin: 0 0 .5rem; display: inline-flex; align-items: center; gap: .6rem; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--orange-deep); }
.label::before { content: ""; width: 2rem; height: 2px; background: var(--orange); }
.page-head--dark .label, .cta .label { color: var(--orange); }

/* ---------- Header ---------- */
.masthead { background: var(--paper); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; }
.masthead__inner { display: flex; align-items: center; gap: 1.75rem; min-height: 4.25rem; }
.brand { display: inline-flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.brand img { height: 40px; width: auto; }
.wordmark { display: inline-flex; align-items: stretch; font-weight: 800; line-height: 1; font-size: 1.35rem; letter-spacing: .01em; border: 2px solid var(--night); border-radius: 3px; overflow: hidden; }
.wordmark__usol { padding: .28rem .45rem .26rem .5rem; color: var(--night); background: #fff; }
.wordmark__vn { padding: .28rem .55rem .26rem .45rem; color: var(--on-orange); background: var(--orange-btn); font-weight: 700; }
.wordmark--light { border-color: #fff; }
.site-nav { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.nav-list, .subnav, .footer-links, .chips, .tags, .social, .partner-list { list-style: none; margin: 0; padding: 0; }
.nav-list { display: flex; gap: .1rem; }
.nav-item { position: relative; }
.nav-item > a { display: flex; align-items: center; gap: .3rem; padding: .55rem .7rem; color: var(--night); text-decoration: none; font-weight: 500; font-size: .9rem; border-radius: 6px; }
.nav-item.has-children > a::after { content: ""; width: .38rem; height: .38rem; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity: .6; }
.nav-item > a:hover { color: var(--orange-deep); }
.nav-item.is-active > a { color: var(--orange-deep); font-weight: 700; }
.subnav { position: absolute; top: calc(100% + 2px); left: 0; min-width: 15rem; background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--orange); border-radius: 0 0 8px 8px; padding: .35rem; box-shadow: 0 18px 40px -18px rgba(14,26,43,.35); visibility: hidden; opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s, visibility .15s; }
.nav-item:hover > .subnav, .nav-item:focus-within > .subnav { visibility: visible; opacity: 1; transform: none; }
.subnav a { display: block; padding: .5rem .8rem; color: var(--night); text-decoration: none; font-size: .9rem; border-radius: 6px; }
.subnav a:hover, .subnav a[aria-current] { background: var(--orange-tint); color: var(--orange-deep); }
.masthead__tools { display: flex; align-items: center; gap: 1.1rem; }
.lang-switch { display: flex; align-items: center; gap: .35rem; color: var(--steel); font-size: .82rem; }
.lang-switch .ico { width: 1.1rem; height: 1.1rem; margin-right: .25rem; }
.lang-switch a { color: var(--steel); text-decoration: none; font-weight: 600; padding: .1rem .15rem; }
.lang-switch a.is-current, .lang-switch a:hover { color: var(--orange-deep); }
.lang-switch__sep { opacity: .4; }
.nav-toggle { display: none; }
@media (max-width: 1100px) {
  .masthead__inner { gap: 1rem; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; margin-left: auto; width: 2.75rem; height: 2.75rem; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); cursor: pointer; }
  .nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after { display: block; width: 1.2rem; height: 2px; background: var(--night); position: relative; transition: transform .2s; }
  .nav-toggle__bar::before, .nav-toggle__bar::after { content: ""; position: absolute; left: 0; }
  .nav-toggle__bar::before { top: -6px; }
  .nav-toggle__bar::after { top: 6px; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__bar { background: transparent; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__bar::before { transform: translateY(6px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle__bar::after { transform: translateY(-6px) rotate(-45deg); }
  .site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--paper); border-bottom: 1px solid var(--line); padding: .5rem var(--gutter) 1.25rem; flex-direction: column; align-items: stretch; gap: 1rem; max-height: calc(100vh - 4.25rem); overflow-y: auto; }
  .site-nav.is-open { display: flex; }
  .nav-list { flex-direction: column; }
  .nav-item > a { border-radius: 0; border-bottom: 1px solid var(--line); padding: .85rem 0; font-size: 1rem; }
  .nav-item.has-children > a::after { display: none; }
  .subnav { position: static; visibility: visible; opacity: 1; transform: none; border: 0; box-shadow: none; padding: 0 0 .5rem .75rem; min-width: 0; }
  .masthead__tools { justify-content: space-between; }
}

/* ---------- Hero ---------- */
.hero { position: relative; color: #fff; background: var(--night); overflow: hidden; min-height: clamp(26rem, 46vw, 36rem); display: flex; align-items: center; }
.hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center right; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,26,43,.92) 0%, rgba(14,26,43,.78) 35%, rgba(14,26,43,.15) 70%, rgba(14,26,43,0) 100%); }
.hero__inner { position: relative; z-index: 1; padding-top: 3.5rem; padding-bottom: 3.5rem; width: 100%; }
.hero__eyebrow { margin: 0 0 1rem; font-size: .95rem; font-weight: 600; letter-spacing: .3em; }
.hero__title { margin: 0; font-size: clamp(2.2rem, 5.2vw, 4rem); font-weight: 800; line-height: 1.05; letter-spacing: -.02em; display: flex; flex-direction: column; }
.hero__accent { color: var(--orange); }
.hero__script { margin: .35rem 0 2rem; font-size: clamp(2rem, 4vw, 3.1rem); color: var(--orange); line-height: 1.1; transform: rotate(-2deg); transform-origin: left; }
.play { display: inline-flex; align-items: center; gap: 1rem; background: none; border: 0; padding: 0; color: #fff; font: inherit; cursor: pointer; text-align: left; }
.play__btn { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; border: 2px solid rgba(255,255,255,.85); transition: background .15s, border-color .15s; }
.play__btn .ico { width: 1.6rem; height: 1.6rem; margin-left: 3px; }
.play:hover .play__btn { background: var(--orange-btn); border-color: var(--orange-btn); color: var(--on-orange); }
.play__text { display: flex; flex-direction: column; font-size: .92rem; line-height: 1.4; }
.play__text strong { font-weight: 600; }
.play__text span { color: rgba(255,255,255,.8); }
.play--center { position: absolute; inset: 0; margin: auto; width: max-content; height: max-content; }
.play--center .play__btn { width: 4rem; height: 4rem; background: rgba(255,255,255,.95); color: var(--night); border: 0; }
.play--center:hover .play__btn { color: var(--on-orange); }

/* ---------- Stats bar ---------- */
.stats { background: var(--night); color: #fff; border-bottom: 3px solid var(--orange); }
.stats__list { list-style: none; margin: 0; padding: 1.5rem 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat { display: flex; align-items: center; gap: 1.1rem; padding: .25rem 1.5rem; border-left: 1px solid rgba(255,255,255,.15); }
.stat:first-child { border-left: 0; padding-left: 0; }
.stat__ico { width: 2.6rem; height: 2.6rem; color: var(--orange); }
.stat > div { display: flex; flex-direction: column; line-height: 1.3; }
.stat__num { font-size: 1.9rem; font-weight: 800; line-height: 1.05; }
.stat__label { font-size: .88rem; margin-top: .2rem; }
.stat__sub { font-size: .78rem; color: var(--on-night); }
@media (max-width: 900px) { .stats__list { grid-template-columns: 1fr 1fr; gap: 1.25rem 0; } .stat:nth-child(3) { border-left: 0; padding-left: 0; } }
@media (max-width: 480px) { .stats__list { grid-template-columns: 1fr; } .stat { border-left: 0; padding-left: 0; } }

/* Hero typewriter (site.js). Invisible full copies of each line reserve the space, so nothing below jumps while typing. */
.hero__typer-box { display: inline-grid; max-width: 100%; }
.hero__typer-box > * { grid-area: 1 / 1; }
.hero__typer-ghost { visibility: hidden; }
.hero__typer-live { white-space: pre-wrap; }
.hero__line:not(.is-typing) .hero__typer-caret { visibility: hidden; }
.hero__typer-caret { display: inline-block; width: .07em; height: .9em; margin-left: .06em; vertical-align: -.06em; background: currentColor; animation: hero-caret 1s steps(1) infinite; }
.is-al-center .hero__typer-live { justify-self: center; }
.is-al-right .hero__typer-live { justify-self: end; }
@keyframes hero-caret { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .hero__typer-caret { display: none; } }

/* Stats count-up (site.js): the invisible final value keeps the width, so the row does not jiggle while counting */
.stat__box { display: inline-grid; }
.stat__box > * { grid-area: 1 / 1; }
.stat__ghost { visibility: hidden; }
.stat__num--count { font-variant-numeric: tabular-nums; }
