/* Norgrid Oy – Lenis + GSAP -animaatioiden tyylit */

/* Lenis hoitaa pehmeän vierityksen, joten selaimen oma smooth-scroll pois */
html.lenis, html.lenis body { height: auto; }
html { scroll-behavior: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* Piilotetaan animoitavat elementit ennen kuin GSAP ottaa ne hallintaan (vältetään välähdys).
   main.js / motion.js poistaa luokan, jos kirjastot eivät lataudu. */
html.motion-ready .hero .kicker,
html.motion-ready .hero h1,
html.motion-ready .hero .lead,
html.motion-ready .hero .btn-row,
html.motion-ready .hero-art,
html.motion-ready .site-header .brand,
html.motion-ready .site-header .main-nav,
html.motion-ready .site-header .nav-toggle { visibility: hidden; }

/* Vierityksen edistymispalkki */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 50;
  background: var(--orange); transform-origin: 0 50%; transform: scaleX(0);
  pointer-events: none;
}

/* Kiinteä yläpalkki, joka piiloutuu alas vieritettäessä */
.site-header { position: sticky; top: 0; z-index: 40; transition: box-shadow .3s ease; }
.site-header.is-scrolled { box-shadow: 0 8px 24px rgba(22, 31, 54, 0.25); }
.site-header .brand img { transition: width .3s ease; }
@media (min-width: 901px) {
  .site-header.is-scrolled { padding-top: 12px; padding-bottom: 12px; }
  .site-header.is-scrolled .brand img { width: 132px; height: auto; }
}
.site-header { transition: box-shadow .3s ease, padding .3s ease; }

/* Navigaation alleviivaus */
.main-nav a:not(.btn) { position: relative; }
@media (min-width: 901px) {
  .main-nav a:not(.btn):hover { text-decoration: none; }
  .main-nav a:not(.btn):not(.lang a)::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px;
    background: var(--orange); transform: scaleX(0); transform-origin: right center;
    transition: transform .35s cubic-bezier(.65, 0, .35, 1);
  }
  .main-nav a:not(.btn):hover::after,
  .main-nav a.is-active::after { transform: scaleX(1); transform-origin: left center; }
}

/* Painikkeiden mikrointeraktiot */
.btn { transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.btn--primary:hover { box-shadow: 0 10px 24px rgba(245, 124, 0, 0.32); }
.btn--green:hover, .btn--green:focus-visible { box-shadow: 0 10px 24px rgba(0, 157, 24, 0.38); }

/* Hero: taustan hehku */
.hero { position: relative; overflow: hidden; isolation: isolate; }
.hero::before {
  content: ""; position: absolute; z-index: -1; width: 60vw; height: 60vw; max-width: 820px; max-height: 820px;
  right: -12vw; top: 50%; transform: translateY(-50%);
  background: radial-gradient(closest-side, rgba(48, 78, 150, 0.35), rgba(0, 157, 24, 0.06) 60%, transparent);
  pointer-events: none;
}
.hero-art img { will-change: transform; }

/* SplitText-rivien maski */
.line-mask { overflow: hidden; padding-bottom: 0.08em; margin-bottom: -0.08em; }

/* Kortit */
.service, .partner, .example, .facts li, .model, .vv-services li, .post { will-change: transform; }
.partner { transition: box-shadow .3s ease; }
.partner:hover { box-shadow: 0 16px 36px rgba(22, 31, 54, 0.10); }
.partner-logo { transition: scale .4s ease; }
.partner:hover .partner-logo { scale: 1.04; }


/* Koulutuksen aiheiden viivat piirretään animaatiolla */
.topics li { position: relative; border-bottom-color: transparent; }
.topics li::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: var(--navy-line); transform-origin: left center; transform: scaleX(var(--line, 1));
}

/* Pilotti-osion viivat */
.pilot { position: relative; border-color: transparent; }
.pilot::before, .pilot::after {
  content: ""; position: absolute; left: 0; right: 0; height: 1px; background: var(--border);
  transform: scaleX(var(--line, 1)); transform-origin: left center;
}
.pilot::before { top: 0; }
.pilot::after { bottom: 0; transform-origin: right center; }

@media (prefers-reduced-motion: reduce) {
  html.motion-ready * { visibility: visible !important; }
  .scroll-progress { display: none; }
}

/* Lisätietoja-alavalikon linkit ilman yläpalkin alleviivausanimaatiota */
.main-nav .nav-sub a::after { content: none; }
