
/* Headings on dark sections stay light (the v2 heading colour would otherwise win) */
.v2 :is(.sp-hero,.page-hero,.ab-hero,.section--dark,.cta-band,.svc--feat,.aside-card:not(.aside-card--soft),.mission,.mv-card,.lead-card,.sp-when,.mega-promo,.mg-promo,.when-tech,.chal-grid) :is(h1,h2,h3,h4) { color: #fff; }
.v2 :is(.sp-hero,.page-hero,.ab-hero) h1 em { color: inherit; }

/* No sideways scrolling: the tilted marquee and floating chips can poke past the edge */
html, body.v2 { overflow-x: clip; }
.v2 .h2-marquee { max-width: 100vw; }

/* Clean hover underline for post titles (wraps nicely over two lines, clears descenders) */
.v2 .h2-post b { line-height: 1.24; }
.v2 .h2-post:hover b { text-decoration: underline; text-decoration-color: #0b3b2c; text-decoration-thickness: 2px; text-underline-offset: .2em; text-decoration-skip-ink: auto; }
/* smaller custom-cursor halo so it does not cover the text */
.h2-cur.big { width: 40px; height: 40px; margin: -20px 0 0 -20px; }

/* footer headings stay light on the dark footer */
.v2 .ft h2, .v2 .ft h3, .v2 .ft .ft-cta h2 { color: #fff; }

/* Kenny fixes: clean word rotation (no overlap, no clipped descenders) */
.v2 .rot { height: 1.2em; padding-bottom: .06em; }
.v2 .rot-w { transform: translateY(110%); transition: transform .38s cubic-bezier(.2,.8,.2,1), opacity .38s; }
.v2 .rot-w.is-on { transform: none; opacity: 1; }
.v2 .rot-w.is-out { transform: translateY(-110%); opacity: 0; }
.v2 .rot::after { bottom: .14em; }
.h2-globe { max-width: 520px; margin-left: auto; }


/* Globe centred in its frame (the globe sits ~70% across the video, so shift the square crop) */
.v2 .h2-globe { background-position: 96% 50%; margin: 0 auto; }
.v2 .h2-globe video { object-position: 96% 50%; }
.v2 .h2-hero-media { justify-self: center; width: 100%; max-width: 520px; }

.v2 .rot-w { transition: transform .3s cubic-bezier(.2,.8,.2,1), opacity .3s; }

/* No underlines on links anywhere (hover included) */
.v2 a, .v2 a:hover, .v2 a:focus, .v2 a:focus-visible, .v2 a:hover b, .v2 a:hover span, .v2 .h2-post:hover b, .v2 .e2-post:hover b { text-decoration: none; }

/* Italic words overhang their box (the "g" of "go global"): give the clip box side room, keep text aligned */
.v2 .rot { padding: 0 .16em .06em .16em; margin-left: -.16em; }
.v2 .rot-w { left: .16em; }
.v2 .rot::after { left: .16em; right: .16em; }

/* ---- Footer: own tone so it doesn't melt into the dark contact section, Jakarta type, no underlines ---- */
.v2 .ft { font-family: var(--body), system-ui, sans-serif; background-color: #072a1f; margin-top: -1px;
  background-image: radial-gradient(520px 320px at 92% 0%, rgba(201,242,107,.13), transparent 70%), radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px); background-size: auto, 26px 26px; }
.v2 .ft-wrap { padding-top: 76px; }
.v2 .ft-logo, .v2 .ft-btn, .v2 .ft-cta h2 { font-family: var(--disp), system-ui, sans-serif; }
.v2 .ft-col h3 { font-family: var(--body), system-ui, sans-serif; font-size: .74rem; font-weight: 700; letter-spacing: .16em; color: #c9f26b; margin-bottom: 22px; }
.v2 .ft-col li { margin-bottom: 14px; }
.v2 .ft-addr a, .v2 .ft-mail { border-bottom: 0; color: #c9f26b; }
.v2 .ft-addr a:hover, .v2 .ft-mail:hover { color: #fff; }
.v2 .ft-bar { border-top-color: rgba(255,255,255,.14); }
@media (max-width: 760px) { .v2 .ft-wrap { padding-top: 56px; } }
